偏移和删除源
向所有人致意,我试图建立一个lisp来抵消一条线。以下是我所拥有的:
(defun c:off ()
(Command "_offset" "e" "yes" pause)
(princ)
)
唯一的问题是,我找不到auto存储原始设置的变量,一旦我退出自定义命令,auto cad会将“擦除”源保留为yes。
显然,我还不太熟悉lisp,所以任何帮助都将不胜感激。
提前谢谢。 发布lisp代码时请使用代码标记。此外,您可以使用每篇文章中“其他选项”下的复选框禁用笑脸。
现在回到原来的问题。我认为没有一个变量可以控制擦除选项。但是,您可以使用此行关闭擦除功能
(command "._offset" "_E" "_No" "" "_E")
看看这个,真快又脏。
(defun c:OFF (/ offset_dist obj_2_offset offset_side)
(setvar 'cmdecho 0)
(while (= offset_dist nil)
(setq offset_dist (getdist "\nOffset distance: "))
);while
(while
(while (= obj_2_offset nil)
(setq obj_2_offset (entsel (strcat "\nPick object to offset <" (rtos offset_dist) ">: ")))
);while
(while (= offset_side nil)
(setq offset_side (getpoint "\nSide to offset on: "))
);while
(command "offset" offset_dist obj_2_offset offset_side "")
(command "erase" obj_2_offset "")
(setq obj_2_offset nil)
(setq offset_side nil)
);while
(princ)) 谢谢你的代码和微笑信息。我试过你的方法,但行不通。alanjt脚本可以工作,但它会循环到最后,一旦输入距离并偏移线,命令就会保持不变,不会接受任何其他距离。
谢谢你的回复
什么不起作用?
它只是关闭了“擦除”选项,就是这样。 很抱歉,我在没有激活擦除选项的情况下运行了测试。它确实有效。谢谢 哎呀,我想我加的太多了
试试这个:
(defun c:OFF (/ offset_dist obj_2_offset offset_side)
(setvar 'cmdecho 0)
(while (= offset_dist nil)
(setq offset_dist (getdist "\nOffset distance: "))
);while
(while (= obj_2_offset nil)
(setq obj_2_offset (entsel (strcat "\nPick object to offset <" (rtos offset_dist) ">: ")))
);while
(while (= offset_side nil)
(setq offset_side (getpoint "\nSide to offset on: "))
);while
(command "offset" offset_dist obj_2_offset offset_side "")
(command "erase" obj_2_offset "")
(setq obj_2_offset nil)
(setq offset_side nil)
(princ)) 谢谢alanjt,很有魅力。 没问题。如果这个周末我有机会的话,我会坐下来抓一些更好的东西。我昨晚做得很快,没有测试。
嗨,艾伦,
我用小数点偏移量尝试了这个方法,但返回到以前使用的偏移量。
我试图抵消72.5,但没有成功。谢谢
页:
[1]
2