htlaser 发表于 2022-4-28 10:24:36

框选对齐 改造align命令

引用:关于align的命令 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz! (mjtd.com)

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) )

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

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

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

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

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

确实要关闭捕捉才能对齐

htlaser 发表于 2022-4-28 10:26:03

给源码区 增加点人气

lxl217114 发表于 2022-4-29 07:17:28

谢谢分享,下载试试

完整武器 发表于 2022-4-29 08:50:25

试用了一下好像和AL命令没有啥区别

htlaser 发表于 2022-4-29 09:04:50

完整武器 发表于 2022-4-29 08:50
试用了一下好像和AL命令没有啥区别

align要手动指定4个点    简化一点   

qazxswk 发表于 2022-4-29 19:19:22

试验了一下,如果从水平状态对齐倾斜的直线,不行。

完整武器 发表于 2022-4-29 19:31:06

斜的图块对齐水平直线 也有问题

htlaser 发表于 2022-4-30 09:39:32

我测试了下没什么问题    如果有问题应该取点的问题了!

czb203 发表于 2022-4-30 17:41:52


谢谢分享,下载试试

lxl217114 发表于 2022-5-3 11:44:59

非常好用,感谢分享
页: [1] 2
查看完整版本: 框选对齐 改造align命令