qazxswk 发表于 2022-5-3 15:32:50

htlaser 发表于 2022-4-30 09:39
我测试了下没什么问题    如果有问题应该取点的问题了!

可能是取点时没有精确到对象吧。另外代码中(setq en1 (car e))与(setq en2 (car e2)) 没有用吧,可以删除的。

白色微風1991 发表于 2022-5-4 07:29:01

謝謝分享,下載試試

qazxswk 发表于 2022-6-30 03:43:31

本帖最后由 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) )

andyzha 发表于 2022-8-3 19:21:30

我一直想找的这样的对齐
简单快捷,选直线对齐直线,很方便。

cjf160204 发表于 2023-1-13 10:45:34




感谢分享

Ming131564 发表于 2023-1-17 09:15:42

我一直想找的这样的对齐
简单快捷,选直线对齐直线,很方便。

xumingvs 发表于 2023-3-26 19:05:31

qazxswk 发表于 2022-6-30 03:43
很认真地测试了你的代码,发现,在对齐时,关闭捕捉,能避免一些错误。另外,最好把end点改为mid点,这样对 ...

确实要关闭捕捉才能对齐

xumingvs 发表于 2023-3-26 19:08:32

htlaser 发表于 2022-4-29 09:04
align要手动指定4个点    简化一点

要说明一下,用这个命令不能打开捕捉,不然会对齐失败
页: 1 [2]
查看完整版本: 框选对齐 改造align命令