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

删除图形中指定的東西

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

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

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

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

<P>面域没有半径属性,用面积</P>

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

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

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]
查看完整版本: 删除图形中指定的東西