yuangw1234 发表于 2006-6-8 20:53:00

删除图形中指定的東西

本人想删除图中半径为0.01的面域出错(两种方法都不行),请指教
法一:
Public Sub mc()
Dim ssetobj1 As AcadSelectionSet, ftyp(1) As Integer, fdat(1) As Variant, selobj As AcadEntity
ThisDrawing.SelectionSets("mc").Delete
Set ssetobj1 = ThisDrawing.SelectionSets.Add("mc")
ftyp(0) = 0: fdat(0) = "*"
ftyp(1) = 40: fdat(1) = 0.01
ssetobj1.Select acSelectionSetAll, , , ftyp, fdat
For I = 0 To ssetobj1.Count - 1
Set selobj = ssetobj1.Item(I)
selobj.Delete
Next
End Sub
法二:
Public Sub mc()
Dim mic As AcadRegion
For Each mic In ThisDrawing.ModelSpace
If mic.Radius = 0.01 Then
mic.Delete
End If
Next
End Sub

xinghesnak 发表于 2006-6-9 16:51:00

ftyp(1) = 40: fdat(1) = 0.01这句话是过滤半径的条件,DXF码40表示半径。。。?
法一中如果把这句过滤条件去掉,选择后再判断半径是不是更妥?在我这,加上这个条件后就选不上面域了
法二中除非你模型空间所有的块都是面域,要不然会报错吧。。。
不知道你要的半径是0.01的面域是什么做成的,要是圆的画为什么不用周长作为检索条件呢?

雪山飞狐_lzh 发表于 2006-6-9 17:43:00

面域没有半径属性,用面积

yuangw1234 发表于 2006-6-10 18:32:00

周长和面积都是和3.1415926.................................有关系,找不到一样的

zxj_76 发表于 2006-6-11 14:01:00

删除实体的命令是   .erase

yuangw1234 发表于 2006-6-15 08:22:00

在此先谢谢大家了

xinghesnak 发表于 2006-6-15 09:33:00

你可以判断面积大于0.01 X2X 3.1415926 并且小于 0.01 X 2 X 3.1415927,灵活一下
页: [1]
查看完整版本: 删除图形中指定的東西