选择需要在屏幕上可见?
似乎对于要在VB(A)中选择的对象,它们需要在屏幕上完全可见。objSetLaterals.SelectByPolygon acSelectionSetFence, arr3DVertices, FilterType, FilterData
在前面的代码中,我只得到在屏幕上
完全
可见的选择实体。如果在运行代码之前缩放范围,则所有实体都会越过围栏。
有没有办法获取所有实体而不让它们在屏幕上可见?
如果没有办法用VB(A)做到这一点,我对其他方法持开放态度。
**** Hidden Message ***** 据我所知,这是AutoCAD的一个已知问题,我还没有找到解决方法。Lisp选择显示相同的行为。
'er在哪里 这是可能的,我很久以前就用逻辑过滤器做过,但由于某些原因,我找不到任何样本…
这里有一个指向约翰·乌登大师的链接(嘿,约翰,你是谁?)
http://www.cadlantic.com/Freebies.htm
并寻找ssgetends。zip-我想它会给你一个想法-如果不是,请忽略我的帖子 如果使用任何需要点来确定边界的选择方法,如果边界内的对象当前在屏幕上不可见,则将导致选择失败。这包括位于冻结图层和关闭图层上的对象,或者其可见性设置为关闭的对象。对于这些图元,您需要使用其他方法选择它们,例如,在图形过滤中为要抓取的对象选择所有对象。
这就是我所担心的。 *YUCK*
感谢您的回复! 包含的不是最好的样本,但试一试是在平面上jane lisp hth
Steps:
1.定义点P1 P2,因为它们在绘图中
2.缩放窗口到矩形区域
3.加载并运行命令TST
4.缩放到范围并调用命令SELECT P
(defun c:tst(/ ss)
(if (and (setq ss (ssget "X"
(list
'(-4 . "")
'(-4 . ",>,*")
(cons 10 p1)
'(-4 . ""))))
(> (sslength ss) 0))
(print (sslength ss))))
页:
[1]