To insert a cylindrical solid object into the AutoCAD database, you can use a Solid3d database object. To define a cylinder, you use the Solid3d.CreateFrustum() method. Remember to call RecordHistory to record solid history.
<CommandMethod("CreateCylinder")> _
Public Shared Sub CreateCylinder()
Dim radius As Double = 1.2345
Dim height As Double = 2.3456
Dim doc As Document = _
Application.DocumentManager.MdiActiveDocument
Dim db As Database = _
doc.Database
Dim tm As Transaction = _
db.TransactionManager.StartTransaction()
Using tm
Dim solid As New Solid3d()
solid.RecordHistory = True
solid.CreateFrustum(height, radius, radius, radius)
Dim bt As BlockTable = _
tm.GetObject(db.BlockTableId, OpenMode.ForRead)
Dim btr As BlockTableRecord = _
tm.GetObject(bt(BlockTableRecord.ModelSpace), _
OpenMode.ForWrite)
btr.AppendEntity(solid)
tm.AddNewlyCreatedDBObject(solid, True)
tm.Commit()
End Using
End Sub

Leave a Reply