我现在有个问题:
就是我单选图形中的一个圆,如它和其它实体相交有三个交点的话就用红色将它显示出来,代码如下:
ThisDrawing.Utility.GetEntity cir, pt, "Pick a text" '单选一个圆
For Each objPolys In selpoints ‘遍历selpoints选择集中的实体 intPoints = cir.IntersectWith(objPolys, acExtendNone) '相交 If UBound(intPoints) <> -1 Then For l = LBound(intPoints) To UBound(intPoints) l = l + 2 n = n + 3 k = k + 1 Next End If Next objPolys If k > 2 Then '判断有2个以上交点的圆 cir.Color = acRed End If
单选个圆,然后上面的结果都正确,有二个交点以上时就显示为红色,如没有则不变
那好,现在我想在这个基础上,想遍历一个圆选择集而不是一个个的去单选
'ThisDrawing.Utility.GetEntity cir, pt, "Pick a text" '这一句注销 For Each cir In selcir '遍历selcir选择集中的圆 For Each objPolys In selpoints 'For Each cir In selcir intPoints = cir.IntersectWith(objPolys, acExtendNone) If UBound(intPoints) <> -1 Then For l = LBound(intPoints) To UBound(intPoints) l = l + 2 n = n + 3 k = k + 1 Next End If Next objPolys If k > 2 Then '判断有2个以上交点的圆 cir.Color = acRed End If Next cir
运行的结果:所有的圆都为红色了,而不是只有相交点2个以上的才显示为红色!不知是错在那里,大家帮忙看一下 |