创建弧形多段线(polyline)
Imports ZwSoft.ZwCAD.Runtime
Imports ZwSoft.ZwCAD.ApplicationServices
Imports ZwSoft.ZwCAD.DatabaseServices
Imports ZwSoft.ZwCAD.Geometry
Imports ZwSoft.ZwCAD.EditorInput
Public Class ZwApps
<CommandMethod(“vbatest”)> _
Public Shared Sub CreateTable()
Dim ZwDoc As Document = Application.DocumentManager.MdiActiveDocument
Dim ZwDb As Database = ZwDoc.Database
Using ZcTran As Transaction = ZwDb.TransactionManager.StartTransaction
Dim ZcBLT As BlockTable = ZcTran.GetObject(ZwDb.BlockTableId, OpenMode.ForRead)
Dim ZcBLTR As BlockTableRecord = ZcTran.GetObject(ZcBLT(BlockTableRecord.ModelSpace), OpenMode.ForWrite)
Dim pl As Polyline = New Polyline()
pl.AddVertexAt(0, New Point2d(0, 0), 0, 0, 0)
pl.AddVertexAt(1, New Point2d(10, 10), -2, 0, 0)
pl.AddVertexAt(2, New Point2d(2, -5), 0, 0, 0)
ZcBLTR.AppendEntity(pl)
ZcTran.AddNewlyCreatedDBObject(pl, True)
ZcTran.Commit()
End Using
End Sub
End Class
原型为:
public void AddVertexAt(Int32 index,Point2d pt,Double
bulge,Double startWidth,Double endWidth);
bulge是弓高的两倍和弦长的比值,或者是弧所对应圆心角的四分之一的正切值。
另外需要一提的是,凸度为正时绘制的圆弧都是逆时针方向的,所以在绘图时一定要规划好,如果确实需要绘制顺时针方向的圆弧,只需将该值变为负数即可。
转载自:https://blog.csdn.net/jingxuan84/article/details/22378867