Helchan 发表于 2022-7-5 18:32:02

如何获取所需的对象

我们可以使用ssget通过坐标点获取视口中的对象,但它无法获取视口外的对象。那么谁能告诉我解决这个问题的方法呢?

pBe 发表于 2022-7-5 18:46:33

不确定,但请尝试反转选择。选择所有/删除坐标内的对象

Lt Dan's l 发表于 2022-7-5 18:53:05

获取屏幕范围。然后检查每个对象边界框是否在屏幕范围内
 
 

(defun screenextents ( / ll ur )
(setq ll
   (polar
   (polar (getvar 'viewctr) pi
       (* 0.5
         (/ (getvar 'viewsize)
         (apply (function /)
             (reverse (getvar 'screensize))
         )
         )
       )
   )(* pi 1.5)(* 0.5 (getvar 'viewsize))
   )
   ur
   (polar
   (polar (getvar 'viewctr) 0.
       (* 0.5
         (/ (getvar 'viewsize)
         (apply (function /)
             (reverse (getvar 'screensize))
         )
         )
       )
   )(* pi 0.5)(* 0.5 (getvar 'viewsize))
   )
)
(list ll (list (car ur)(cadr ll)) ur (list (car ll)(cadr ur)))
)

Helchan 发表于 2022-7-5 19:07:22

这是一个解决方案。但是如果有大量的对象,效率将非常低

Helchan 发表于 2022-7-5 19:12:49

我认为你的代码不能解决我的问题。我想得到在移动视口之前无法在屏幕上看到的对象

Lt Dan's l 发表于 2022-7-5 19:27:46

是的,如果你有很多物体,它会很慢。Screenextents将为您提供一个工作要点。也许你可以发布你所拥有的,我们可以对其进行扩展

pBe 发表于 2022-7-5 19:35:02

等等,这个项目的目的是什么?
页: [1]
查看完整版本: 如何获取所需的对象