【求助】如何通过过滤器选择多段线?
Sub Ch4_FilterOrTest()Dim element As AcadEntity
Dim pl As AcadPolyline
Dim sstext As AcadSelectionSet
Dim FilterType(3) As Integer
Dim FilterData(3) As Variant
Set sstext = ThisDrawing.SelectionSets.Add("SS6")
FilterType(0) = -4
FilterData(0) = "<and"
FilterType(1) = 0
FilterData(1) = "3dpolyline"
FilterType(2) = 8
FilterData(2) = "0"
FilterType(3) = -4
FilterData(3) = "and>"
sstext.SelectOnScreen FilterType, FilterData
Count = sstext.Count
MsgBox Count
For Each element In sstext
element.color = acGreen
Next element
sstext.Delete
End Sub
MsgBox 返回的值为0
没有"3dpolyline"这种东西,只有"polyline" woaishuijia 发表于 2019-4-15 15:59
没有"3dpolyline"这种东西,只有"polyline"
有的 vb参考中的对象中就有 本帖最后由 woaishuijia 于 2019-4-16 06:03 编辑
hellomoshi 发表于 2019-4-15 17:19
有的 vb参考中的对象中就有
过滤器使用的是DXF组码,要到DXF参考中去找,而不是VB参考
你要的东西在这里,它叫“POLYLINE”
感谢楼上老哥 我用了POLYLINE也不行 ,最后用LWPOLYLINE成功了。不知道他们的区别在哪里。 CAD有两种“多段线”:
一种是“多段线”(优化多段线,LWPOLYLINE),只能在二维平面画,每个节点坐标都是二维坐标(只有X、Y,没有Z);在图形界面画多段线用“pline”命令;多段线可以包括“圆弧”。
另一种是“三维多段线”(DXF对象类型POLYLINE,ActiveX对象类型3DPolyline),每个节点坐标都是三维坐标;在图形界面画三维多段线用“3dpoly”命令;三维多段线可以在三维空间任意转折,但各段只能由直线组成,没有“圆弧”。
你用LWPOLYLINE成功了,说明你在图形界面选择的是用“pline”命令画的多段线,而不是用“3dpoly”命令画的三维多段线;P
woaishuijia 发表于 2019-4-16 11:45
CAD有两种“多段线”:
一种是“多段线”(优化多段线,LWPOLYLINE),只能在二维平面画,每个节点坐标都 ...
感谢老哥 分析的很透彻 确实是用pline画的 楼上讲的真叫透彻,瞬间醍醐灌顶!
页:
[1]