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就靠不住了?我又不想关闭捕捉,如何解决呢?
你可以求教下老迈,他的程序把捕捉打开都能和CAD的一样,不过这种程序非常复杂 polar就靠不住了?
Polar ok 啦!
是在 Command 下受 自动捕捉 的影响
不想关闭捕捉,就别用command啦!用函数来制造物体! (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)
)
) 临时关闭对操作没影响吧 本帖最后由 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)
)
) 回楼上:可靠。 谢谢版主,在每一个command里加上“NON”后,使用到现在完全正常。照此看来,用这个方法可以在绝大多数情况下避免关闭捕捉了?毕竟在实际操作中,自动捕捉是很有用处的。 本帖最后由 mandala 于 2010-12-28 14:32 编辑
lixdu 发表于 2010-12-28 11:37 http://bbs.mjtd.com/static/image/common/back.gif
嗯,也是个非常好的思路,试过了运行正常。谢谢lixdu。
用这种方法的问题就是如果中途出现问题退出,以前的捕捉设置会丢失。
页:
[1]
2