我测试了下没什么问题 如果有问题应该取点的问题了!
可能是取点时没有精确到对象吧。另外代码中(setq en1 (car e))与(setq en2 (car e2)) 没有用吧,可以删除的。 謝謝分享,下載試試 本帖最后由 qazxswk 于 2022-6-30 04:15 编辑
很认真地测试了你的代码,发现,在对齐时,关闭捕捉,能避免一些错误。另外,最好把end点改为mid点,这样对齐后的对象不会偏到一边去。
(defun c:tt(/ osm ss e1 pt1 pt2 e2 pt3 pt4)
(setvar "cmdecho" 0)
(setq osm (getvar "osmode"))
(setvar "osmode" 0)
(setq ss (ssget))
(setq e1(entsel "\n选择要对齐的边线"))
(while (= e1 nil) (setq e1 (entsel "\n选择要对齐的边线")));while
(setq pt1 (osnap (cadr e1) "mid"))
(setq pt2 (osnap (cadr e1) "nea"))
(setq e2 (entsel "\n对齐参照线"))
(while (= e2 nil) (setq e2 (entsel "\n对齐参照线")));while
(setq pt3 (osnap (cadr e2) "mid"))
(setq pt4 (osnap (cadr e2) "nea"))
(command "_.align" ss "" pt1 pt3 pt2 pt4 "" "n")
(setvar "osmode" osm)
(setvar "cmdecho" 1)
(princ) )
我一直想找的这样的对齐
简单快捷,选直线对齐直线,很方便。
感谢分享 我一直想找的这样的对齐
简单快捷,选直线对齐直线,很方便。 qazxswk 发表于 2022-6-30 03:43
很认真地测试了你的代码,发现,在对齐时,关闭捕捉,能避免一些错误。另外,最好把end点改为mid点,这样对 ...
确实要关闭捕捉才能对齐 htlaser 发表于 2022-4-29 09:04
align要手动指定4个点 简化一点
要说明一下,用这个命令不能打开捕捉,不然会对齐失败
页:
1
[2]