第一种方法:将顶点坐标数组逐点由UCS转换为WCS,再画线
- Sub Example_AddPolyline()
- ' This example creates a polyline in model space.
- Dim plineObj As AcadPolyline
- Dim points(0 To 14) As Double
- ' Define the 2D polyline points
- points(0) = 1: points(1) = 1: points(2) = 0
- points(3) = 1: points(4) = 2: points(5) = 0
- points(6) = 2: points(7) = 2: points(8) = 0
- points(9) = 3: points(10) = 2: points(11) = 0
- points(12) = 4: points(13) = 4: points(14) = 0
-
- Dim P1(2) As Double, P2 As Variant, I As Integer
- For I = 0 To 12 Step 3
- P1(0) = points(I): P1(1) = points(I + 1): P1(2) = points(I + 2)
- P2 = ThisDrawing.Utility.TranslateCoordinates(P1, acUCS, acWorld, 0)
- points(I) = P2(0): points(I + 1) = P2(1): points(I + 2) = P2(2)
- Next
- ' Create a lightweight Polyline object in model space
- Set plineObj = ThisDrawing.ModelSpace.AddPolyline(points)
- ZoomAll
- End Sub
第二种方法:先按WCS画线,再将其移动到UCS的相应位置.这种方法要求UCS要命名
- Sub Example_AddPolyline()
- ' This example creates a polyline in model space.
- Dim plineObj As AcadPolyline
- Dim points(0 To 14) As Double
- ' Define the 2D polyline points
- points(0) = 1: points(1) = 1: points(2) = 0
- points(3) = 1: points(4) = 2: points(5) = 0
- points(6) = 2: points(7) = 2: points(8) = 0
- points(9) = 3: points(10) = 2: points(11) = 0
- points(12) = 4: points(13) = 4: points(14) = 0
- ' Create a lightweight Polyline object in model space
- Set plineObj = ThisDrawing.ModelSpace.AddPolyline(points)
-
- plineObj.TransformBy ThisDrawing.UserCoordinateSystems("UCS名称").GetUCSMatrix
- ZoomAll
- End Sub
|