Costinbos77 发表于 2022-7-5 23:14:30

ssGet函数

你好
 
如果要在指定位置选择特定类型的对象,当多个对象在该位置重叠时,ssGet函数将失败。
 


(setq ss (ssGet '(0 0) '((0 . "circle")) ))


 
如何解决这一缺陷?
 
提前谢谢。
Costin

MSasu 发表于 2022-7-5 23:27:21

它没有失败,这也不是缺陷,Costin!它只是复制AutoCAD在拾取选择时的行为(即检索一个图元)。

MSasu 发表于 2022-7-5 23:39:25

请注意,这一声明将需要用户的互动,这可能不是OP正在寻找的。

Costinbos77 发表于 2022-7-5 23:41:54

我需要通过坐标进行选择。
我想找到所有具有属性的圆、点或块,这些属性位于多段线的顶点,而不是绿色的圆。但在这些顶点中,其他对象正在阻止选择。

mostafa badran 发表于 2022-7-5 23:55:37

对不起,MSasu误解了。

MSasu 发表于 2022-7-6 00:03:14

Costin,我注意到你在帖子中添加了一张图片。请你澄清一下,那个圆的中心坐标是什么?如果它们是0,0,0,那么您不能像上面的语句那样选择它,因为在该点上拾取将需要非常小的缩放因子或非常大的拾取框来与其周长相交。
而是尝试过滤中心坐标:
(setq ss (ssget "_X" '((0 . "CIRCLE") (10 0.0 0.0 0.0))))

Costinbos77 发表于 2022-7-6 00:09:03

谢谢米尔恰。作品
 
我又试了一次,但没有成功,我可能忘了放大这个区域。
 



(setq ss (ssget "_X" '((0 . "CIRCLE") (cons 10 p))))


where p = (x y) , automatically z = 0 .
or
(x y z)


 
如果圆是三维坐标,多段线是二维的(即使有高程),
或者,如果圆是二维坐标,多段线是三维坐标,
然后不要选择任何内容。
 
 
然后在这里解决:
 

(setq ss (ssGet "_X" (list '(0 . "Circle") '(-4 . "=,=,*") (cons 10 p))) )

BIGAL 发表于 2022-7-6 00:16:19

对于圆不完全精确地位于直线垂直上的问题,如果这是您在下面使用的搜索点,则窗口必须略大于圆直径。
 

(setq ss (ssget "_W" pt1 pt2 '((0 . "CIRCLE") )))
页: [1]
查看完整版本: ssGet函数