明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1782|回复: 9

怎么删除特点条件的多段线呢?

[复制链接]
发表于 2004-5-7 21:51:00 | 显示全部楼层 |阅读模式
比如我要删除4条边的封闭多段线。谢谢啦
发表于 2004-5-7 22:07:00 | 显示全部楼层
过滤出只有封闭的多段线,然后判断多段线是否为4个顶点,如果是则删除。
 楼主| 发表于 2004-5-7 23:53:00 | 显示全部楼层
hehe ~~谢谢 Dim pl As AcadEntity
Dim sss As AcadSelectionSet
Set sss = ThisDrawing.SelectionSets.Add("123")
Dim Gpcode(0) As Integer
Gpcode(0) = 0
Dim Datavalue(0) As Variant
Datavalue(0) = "lwpolyline"
sss.Select acSelectionSetAll, , , Gpcode, Datavalue
MsgBox sss.count
For Each pl In sss
If (UBound(pl.Coordinates) + 1) / 2 = 4 Then
pl.Delete
End If
Next
发表于 2004-5-8 07:58:00 | 显示全部楼层
你获取的多段线是模型空间最后3个,不需要建选择集
 楼主| 发表于 2004-5-8 11:20:00 | 显示全部楼层
哦 这个呢 炸开轮廓线并保存到选择集 Dim explodedObjects As Variant
Dim outlinearr() As Variant
Dim outliness As AcadSelectionSet
Set outliness = ThisDrawing.SelectionSets.Add("ss")
explodedObjects = plent.Explode
For j = 0 To UBound(explodedObjects) - 1
explodedObjects(j).Update
Set outlinearr(j) = explodedObjects(j) 'subscript out of range ?????
explodedObjects(j).Update
Next
outliness.AddItems outlinearr
发表于 2004-5-8 11:22:00 | 显示全部楼层
 楼主| 发表于 2004-5-8 12:20:00 | 显示全部楼层
这也有问题?


outliness.AddItems outlinearr


说 Invalid argument        pselset in        additems
发表于 2004-5-8 12:27:00 | 显示全部楼层
我这样没问题呀 Sub test()
Dim a As Variant
a = ThisDrawing.ModelSpace(0).Explode
Dim ss As AcadSelectionSet
Set ss = ThisDrawing.ActiveSelectionSet
ss.AddItems a
MsgBox ss.Count
ss.Clear
End Sub
 楼主| 发表于 2004-5-8 12:32:00 | 显示全部楼层
你的可以


发现炸开以后pline还在
发表于 2004-5-8 12:45:00 | 显示全部楼层
一个Bug,块引用也一样


要在Explode方法后调用Delete方法干掉它
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-2-21 03:49 , Processed in 0.162068 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表