Hi,
Solid3d.CreateFrustum() creates a cylinder which centroid is on WCS origin and axis on the WCS Z axis (as most Solid3d.CreateXxxx() methods do), so, after created, you have to align the cylinder to the specified points using TransformBy() method.
Another way is to create a temporary circle, a temporary region from the circle and a temporary line to be able to use Solid3d.ExtrudeAlongPath() method.
You can also, still using temporary entities, call the Solid3d.CreateSweptSolid() method.