tranney 发表于 2018-8-17 08:27:52

非常好用的镜像功能,但是还缺先选择物体可以执行,请大神修改一下

本镜像功能非常好用,但是还缺先选择物体可以执行,请大神修改一下

(defun c:ww (/ ss en p1 p2 loop code test)

(princ "修改工具   我的镜像 左键、空格,X键 保留,右键删除\n")
      (setq ss (ssget))

      (initget 1 "X")
      (setq p1 (getpoint "\n指定镜像线的第一点或[选镜像线(X)]:"))
      (cond ( (= p1 "X")
                        (setq test t)
(setq ent1 (entsel "\n请选择中心直线:")
         e1   (car ent1)
         ss1(entget e1))
      (setq p1 (Cdr (Assoc 10 ss1))
            p2 (Cdr (Assoc 11 ss1)))
(command "mirror" ss ""p1 p2 "N")(princ)

                        (princ "\n我的镜像 左键、空格,X键 保留,右键删除!" )
                        (setq loop T)
                        (while loop
                              (setq code (grread T 8))
                              (cond
                                        ((= (car code) 25)   (command "erase" ss "") (setq loop nil));右键
                                        ((= (cadr code) 32)    (setq loop nil));空格
                                        ((= (car code) 3)    (setq loop nil));左键
                  ((or (= (cadr code) 88)(= (cadr code) 120)) (setq loop nil));88为大写X120为小写x
                              );cond
                        );while
                )
                (t
                        (setq p2 (getpoint p1 "\n指定镜像线的第二点:"))
                        (command "mirror" ss "" p1 p2 "N")
                        (princ "\n我的镜像 左键、空格,X键 保留,右键删除!" )
                        (setq loop T)
                        (while loop
                              (setq code (grread T 8))
                              (cond
                                        ((= (car code) 25)   (command "erase" ss "") (setq loop nil));右键
                                        ((= (cadr code) 32)    (setq loop nil));空格
                                        ((= (car code) 3)    (setq loop nil));左键
                  ((or (= (cadr code) 88)(= (cadr code) 120)) (setq loop nil));88为大写X120为小写x
                              );cond
                        );while
                )
      );cond

      (princ)
);end


evayleung 发表于 2018-8-17 20:21:48

有图看看吗

jin1114 发表于 2018-8-17 21:35:23

先选物体再镜象,这代码本来就可以实现啊,你再试试
页: [1]
查看完整版本: 非常好用的镜像功能,但是还缺先选择物体可以执行,请大神修改一下