zyxi19 发表于 2024-9-21 15:35:09

求大佬修改复制旋转代码实现选择基点和连续复制功能

复制前,不能任意拾取基点,且不能连续复制。此外,拾取基点后,能先执行TAB旋转,再指定插入点就更好了,目前是指定插入点,再按住TAB旋转。

(defun c:copydreh ()
      (setvar "cmdecho" 0)
(while(setq el (car (entsel)))
      (setq el1 (entget el))
      (setq p1 (cdr (assoc 10 el1)))
      (command "_copy" (ssadd el) "" (trans p1 0 1) pause)
      ;(setq en (entget (entlast)))
      (setq en (vlax-ename->vla-object (entlast)))
      (princ "\nPress to Rotate Text <Accept>: ")
       (while (= 9 (cadr (grread nil 2)));;(while (= 9 (cadr (grread nil 2)))
          (setq rt (vla-get-rotation en))
             ;   en
             ;(entmod (subst (cons 50 (rem (+ (/ pi 2.) (cdr rt)) (+ pi pi))) rt en))
            (vla-put-rotation en (rem (+ (/ pi 2.) rt) (+ pi pi)) )
          ;)
       );while

qazxswk 发表于 2024-9-21 17:09:03

你给的代码,最后少了两个括号吧。
复制前,想任意拾取基点,就不要(setq p1 (cdr (assoc 10 el1))),自己设置一个基点。比如(setq p1 (getpoint "\n指定基点:" )),如果想连续复制,还需要完善很多代码。

寒潮大冬瓜 发表于 2024-9-22 08:10:33

'贱人工具箱'5.8有这个功能

kozmosovia 发表于 2024-9-22 10:13:05

CAD的ET有MoCoRo命令。https://www.bilibili.com/video/BV1JG411U7pr/?spm_id_from=333.788&vd_source=ffcc1d0ea5d9a99d581f415694161402

zyxi19 发表于 2024-10-3 16:48:40

已通过其他方式解决,烦请版主闭贴
页: [1]
查看完整版本: 求大佬修改复制旋转代码实现选择基点和连续复制功能