Atook 发表于 2006-11-17 12:38:20

选择需要在屏幕上可见?

似乎对于要在VB(A)中选择的对象,它们需要在屏幕上完全可见。
objSetLaterals.SelectByPolygon acSelectionSetFence, arr3DVertices, FilterType, FilterData
在前面的代码中,我只得到在屏幕上
完全
可见的选择实体。如果在运行代码之前缩放范围,则所有实体都会越过围栏。
有没有办法获取所有实体而不让它们在屏幕上可见?
如果没有办法用VB(A)做到这一点,我对其他方法持开放态度。
**** Hidden Message *****

ronjonp 发表于 2006-11-17 13:09:48

据我所知,这是AutoCAD的一个已知问题,我还没有找到解决方法。Lisp选择显示相同的行为。
'er在哪里

Keith™ 发表于 2006-11-17 13:48:23

这是可能的,我很久以前就用逻辑过滤器做过,但由于某些原因,我找不到任何样本…
这里有一个指向约翰·乌登大师的链接(嘿,约翰,你是谁?)
http://www.cadlantic.com/Freebies.htm
并寻找ssgetends。zip-我想它会给你一个想法-如果不是,请忽略我的帖子

Atook 发表于 2006-11-18 00:28:35

如果使用任何需要点来确定边界的选择方法,如果边界内的对象当前在屏幕上不可见,则将导致选择失败。这包括位于冻结图层和关闭图层上的对象,或者其可见性设置为关闭的对象。对于这些图元,您需要使用其他方法选择它们,例如,在图形过滤中为要抓取的对象选择所有对象。

ronjonp 发表于 2006-11-20 17:12:09


这就是我所担心的。 *YUCK*
感谢您的回复!

Keith™ 发表于 2006-11-20 18:52:14

包含的不是最好的样本,但试一试是在平面上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]
查看完整版本: 选择需要在屏幕上可见?