Costinbos77 发表于 2022-7-6 06:53:57

OSNAP函数

你好,
 
如何找出哪些模式有效?
 
 

(setq pp (osnap p "_end,_mid,_cen,_nod") )

 
4种模式中哪一种对pp有影响?
 
提前谢谢。

GP_ 发表于 2022-7-6 06:58:45

请参阅OSMODE的值。

Costinbos77 发表于 2022-7-6 07:03:49

GP_,
 
OSMODE变量的值是一个整数,但它们的反应是什么?

dbroada 发表于 2022-7-6 07:09:56

OSMODE是GP_给出的所有活动捕捉的总和

Lee Mac 发表于 2022-7-6 07:11:18

 
点捕捉到的对象捕捉模式无法从组合了多种模式的单个osnap表达式中确定,因为osnap函数仅返回捕捉的点坐标或零,而不返回任何补充信息。
 
您需要分别测试每个模式,例如:
(vl-some '(lambda ( m ) (if (setq pp (osnap p m)) m) '("_end" "_mid" "_cen" "_nod")))

Costinbos77 发表于 2022-7-6 07:17:45

谢谢李,
 
你的想法更简洁。
 
我在想这样的事情:
 

(setq litos (list "_end,_mid,_cen,_nod")) ; has a variable content
   (setq llitos (length litos)i -1op nil) ;_ end of setq
   (while (< (setq i (1+ i)) llitos)
    (setq el (nth i litos)) ;_ end of setq
    (if (setq op (osnap p el)) (setq i llitos)) ;_ end of if
   ) ;_ end of wh <


 
但是当litos列表呈现出这种形式时,我无法获得ENDP,
或者,如果列表中有直线、象限和圆心,则无法获得圆心等的OSMODE。
 
本主题是以下内容的继续:
 
http://www.cadtutor.net/forum/showthread.php?77110-vla移动和OSMODE问题。
 
因为我必须重新发明OSMODE标志。
 
如何将字符串显示为鼠标光标附近的注释(例如OSMODE值)?

marko_ribar 发表于 2022-7-6 07:23:54

打字错误:
 

(vl-some '(lambda ( m ) (if (setq pp (osnap p m)) m)) '("_end" "_mid" "_cen" "_nod"))

 
在我的ACAD中,当选取点p作为圆的象限时,李的示例返回“u cen”witch is true(圆没有结束、中间和点头捕捉)

Costinbos77 发表于 2022-7-6 07:25:23

 
应及时填写Litos清单:
 

(setq litos (list "_end,_mid,_cen,_qua,_nod"))

marko_ribar 发表于 2022-7-6 07:30:53


(vl-remove-if-not '(lambda ( m ) (if (setq pp (osnap p m)) m)) '("_end" "_mid" "_cen" "_nod" "_qua"))
=>("_cen" "_qua")

Costinbos77 发表于 2022-7-6 07:33:48

1.好的,但我想知道到底是哪一个导致了OSMODE点?
 
2.如果我想在“cen”上获得OSMODE,我不能,因为“qua”和最后一个OSMODE在它上面。
页: [1] 2
查看完整版本: OSNAP函数