ketxu 发表于 2011-9-22 11:07:18

创建类似pline命令的acadlwpolyline

您好,
我想创建一个子对象,该子对象创建类似于pline命令的LWDOLYLINE
也就是说:
我拾取第一个点(创建线段)我拾取第二个点(已创建线段)然后拾取第三个点(已经创建第二个线段),依此类推…
可以创建一个对象数组,将所有这些线段(acadline)放置在子段的末尾,并将其删除。然后使用拾取点的坐标创建我的LWD多段线
但是有没有更简单的方法来进行同样的手术呢
谢谢

Matt__W 发表于 2011-9-22 20:25:24

您应该尝试使用Sendcommand来使用内置Pline命令^^

Matt__W 发表于 2011-9-23 06:03:19

Sendcommand应该始终是最后一个选项

Matt__W 发表于 2011-9-23 08:58:06


Public Sub Main()
    Dim startPnt As Variant
    Dim returnPnt As Variant
    Dim returnPntList(0 To 5) As Double
    Dim plineObj As AcadPolyline
    startPnt = ThisDrawing.Utility.GetPoint(, "Pick starting point: ")
    ' Return a point using a prompt
    On Error Resume Next
   
    returnPnt = ThisDrawing.Utility.GetPoint(startPnt, "Pick the next point: ")
    If Err Then GoTo SubEnd
   
    returnPntList(0) = startPnt(0)
    returnPntList(1) = startPnt(1)
    returnPntList(2) = startPnt(2)
   
    returnPntList(3) = returnPnt(0)
    returnPntList(4) = returnPnt(1)
    returnPntList(5) = returnPnt(2)
    Set plineObj = ThisDrawing.ModelSpace.AddPolyline(returnPntList)
   
   
    While IsNull(returnPnt) = False
      returnPnt = ThisDrawing.Utility.GetPoint(returnPnt, "Pick the next point: ")
   
      If Err Then GoTo SubEnd
   
      plineObj.AppendVertex returnPnt
      ThisDrawing.Regen (acActiveViewport)
    Wend
   
SubEnd:
    ' Exit the command
End Sub

Matt__W 发表于 2011-9-23 09:31:54

谢谢Matt,整洁多了

Matt__W 发表于 2011-9-23 09:33:25

你'欢迎再次光临。
页: [1]
查看完整版本: 创建类似pline命令的acadlwpolyline