mandala 发表于 2010-12-27 22:44:24

polar 捕捉的问题:

本帖最后由 mandala 于 2010-12-27 22:45 编辑

一段简单的lsp:



(defun c:bbb()
(setq p1(getpoint"First:"))(command"circle"p1"0.5")
(while(setq p2(getpoint p1" Next:"))
    (setq a (polar p1 (angle p1 p2) 0.5))
    (setq b (polar p2 (angle p2 p1) 0.5))
    (command"line"a b"")(command"circle"p2"0.5")
    (setq p1 p2)
)
)

是用来画连线的电杆的,要求是圆圈中心空白,如下图。在关闭自动捕捉情况下运行正常,但打开自动捕捉就出问题,线都连到圆心去了。是不是在捕捉开启的情况下polar就靠不住了?我又不想关闭捕捉,如何解决呢?

crazylsp 发表于 2010-12-27 22:53:30

你可以求教下老迈,他的程序把捕捉打开都能和CAD的一样,不过这种程序非常复杂

Andyhon 发表于 2010-12-27 22:53:54

polar就靠不住了?
Polar ok 啦!
是在 Command 下受 自动捕捉 的影响

Gu_xl 发表于 2010-12-27 23:04:40

不想关闭捕捉,就别用command啦!用函数来制造物体!

lixdu 发表于 2010-12-28 11:37:17

(defun c:bbb()
(setq sa (getvar "osmode"))
(setq p1(getpoint"First:"))
(setvar "osmode" 0 )
(command"circle"p1"0.5")
(setvar "osmode" sa )
(while(setq p2(getpoint p1" Next:"))
    (setq a (polar p1 (angle p1 p2) 0.5))
    (setq b (polar p2 (angle p2 p1) 0.5))
    (setvar "osmode" 0 )
    (command"line"a b"")
    (command"circle"p2"0.5")
    (setvar "osmode" sa )
    (setq p1 p2)
)
)

lixdu 发表于 2010-12-28 11:37:42

临时关闭对操作没影响吧

mandala 发表于 2010-12-28 11:55:46

本帖最后由 mandala 于 2010-12-28 15:51 编辑

Gu_xl 发表于 2010-12-27 23:04 http://bbs.mjtd.com/static/image/common/back.gif
不想关闭捕捉,就别用command啦!用函数来制造物体!

我试着用了加“non”的办法,似乎解决了问题,请问这种方法可靠吗? (defun c:bbb()
(setq p1(getpoint"First:"))(command" circle"“_NON”p1"0.5")
(while(setq p2(getpoint p1" Next:"))
    (setq a (polar p1 (angle p1 p2) 0.5))
    (setq b (polar p2 (angle p2 p1) 0.5))
   (command "_.LINE" "_NON" a "_NON"b "")(command"circle" "_NON"p2"0.5")
    (setq p1 p2)
)
)

ZZXXQQ 发表于 2010-12-28 13:34:13

回楼上:可靠。

mandala 发表于 2010-12-28 14:19:08

谢谢版主,在每一个command里加上“NON”后,使用到现在完全正常。照此看来,用这个方法可以在绝大多数情况下避免关闭捕捉了?毕竟在实际操作中,自动捕捉是很有用处的。

mandala 发表于 2010-12-28 14:30:22

本帖最后由 mandala 于 2010-12-28 14:32 编辑

lixdu 发表于 2010-12-28 11:37 http://bbs.mjtd.com/static/image/common/back.gif


嗯,也是个非常好的思路,试过了运行正常。谢谢lixdu。

用这种方法的问题就是如果中途出现问题退出,以前的捕捉设置会丢失。
页: [1] 2
查看完整版本: polar 捕捉的问题: