lanjqka 发表于 2013-12-12 23:15:53

自定义复制

;;更改AutoCAD的复制命令
;;目标是:在初始选择集合为空时,不需按"P"键,而是点鼠标右键就可以获取上一次选择集
;;一是懒,二是嫌"P"太远
(defun C:C1 (/ SS) ;复制
(if (not (setq SS (ssget)))
    (if (not (setq SS (ssget "_P")))
      (exit)
    )
)
(command ".COPY" SS "" "Multiple")
(princ)
)
;;后来发现select命令扩展更好,"P"之后,还可以对选择集增删
(defun C:C2 () ;复制
(if (not (ssget))(command ".SELECT" "Previous" PAUSE))
(command ".COPY" (ssget "_P") "" "Multiple")
(princ)
)

bpf19880323 发表于 2013-12-13 15:48:46

怎么那么复杂,看不懂。这样貌似也可以:
(defun c:c11 ()
(setq en (ssget))
(if (= en nil)
   (setq en (ssget "p"))
)
(command "copy" EN "" "m")
(princ)
)

香田里浪人 发表于 2013-12-13 07:48:29

有特色,连续复制。

lanjqka 发表于 2013-12-13 11:47:01

本帖最后由 lanjqka 于 2013-12-13 13:05 编辑

;;C2在上一次空选连续右键,command "" "Multiple"会出问题 改进
(defun C:C3 (/ SS) ;复制
(if (not (ssget))
(progn(command ".SELECT" "Previous" PAUSE)(command))
);可以扩展到其他命令上
    (if (setq SS (ssget "_P"))
(command ".COPY" SS "" "Multiple"))
(princ)
)

adc 发表于 2013-12-13 15:35:52

用得着那么复杂吗?
(defun c:tt()
(command "copy" "p" "" "m")
)

混沌初开 发表于 2013-12-13 18:46:29

原来可以这么简单!

zmzk 发表于 2022-12-24 19:14:39

收藏了!有一天可能会用到
页: [1]
查看完整版本: 自定义复制