(grread T 15 0)
主题:
http://www.cadtutor.net/forum/showthread.php?77110-vla移动和OSMODE问题。 我认为,在圆作为测试实体的情况下,应该考虑将孔径sys变量更改为更高的值,因为这个小代码为捕捉提供了不同的结果。。。
(while (setq gr (grread t))
(print (osnap (cadr gr) "_cen,_qua"))
)
当光圈小时,这将只返回圆的象限点,但当您将光圈设置为更高的值(我最大值为50)时,上述代码也将返回象限点之间的值和圆中心的坐标。。。注意,主要捕捉将是零点,因为实体圆周围的空间比OSNAP孔径操作的空间更宽、更大。。。 孔径=10,不是预期结果,我将尝试5。
谢谢你的想法。 我找到了一个解决方案:
计算每个鼠标点和OSMODE所需列表之间的距离。根据此距离,进行区分:
(setq liosnap nil) ;_ end of setq
(foreach el litos (if (setq op (osnap p el))
(progn
(setq d (distance p op)d (cond ((= el "_cen") (/ d 4.)) ((= el "_nea") (* d 10.)) (T d)) )
(setq liosnap (cons (list d op el) liosnap)) ))) ;_ end of f
(if liosnap
(setq liobs (car (vl-sort liosnap '(lambda (s1 s2) (< (car s1) (car s2)) ) ) )op (nth 1 liobs)mod (nth 2 liobs) ) ;_ end of setq
(setq op nil) ;_ end of setq
) ;_ end of if liosnap
OSNAP的某些方式更“敏感”(qua,snow),因此必须加以抑制。
页:
1
[2]