给出面积范围选定多段线
例如:选择面积在990到1100之间多段线(一个极端的例子是明知道面积是1000,但按等于1000却选不上,只能利用快速选择选两次:>999和<1001) 可以个别验证用 = / equal 分出其差异性 Andyhon 发表于 2015-10-22 20:16 static/image/common/back.gif
可以个别验证
用 = / equal分出其差异性
请问:类似(ssget "X" '((0 . "LWpolyline") ...990...1010...))的表达式怎么写? 没有这样的表达式,ssget的这种选择基本上是基于组码的,而实体是没有直接的关于面积的组码的。 先全选,再分别计算排除equal,and<<可以考虑 如果作为比较条件的东东没有相应的组码,那么无法用ssget直接得到,只能先选择出来再进行二次判断
至于用别的方法是不是可以不清楚 llsheng_73 发表于 2015-10-23 16:20
如果作为比较条件的东东没有相应的组码,那么无法用ssget直接得到,只能先选择出来再进行二次判断
至于用别 ...
看来需要二次判断才能确定了。其实获取多段线的面积也不容易。 谢谢指点。好像是这个样子:
(defun aqujm(amin amax / ss1 ent)
(SETQ SS1 NIL)
(vl-load-com)
(if (setq ss (ssget '((0 . "LWpolyline"))))
(progn
(setq i -1 ss1 (ssadd))
(repeat (sslength ss)
(setq ent(ssname ss (setq i (1+ i))))
(setq mmji (vla-get-area (vlax-ename->vla-object ent)))
(if (and (> mmji amin)(< mmji amax))
(ssadd ent ss1)
)
)
)
)
(sssetfirst nil ss1)
) 顶一个,想学习一下
页:
[1]