xiaocainiao 发表于 2025-5-5 20:39:48

求教!使用lisp重定义复制命令无法连续执行怎么搞

(defun c:CCC()
(command "copy")
)求教一下各位大神!



我想用lisp来设置CAD本身的快捷键
但是给复制命令设置快捷键以后,
不能连续执行、不知道什么鬼

想请教一下大家有没有办法可以保证,
重定义以后的快捷键和改pgp文件是一样的效果

xiaocainiao 发表于 2025-5-6 09:21:39

kozmosovia 发表于 2025-5-5 23:26
copy多次复制好像有copymode的系统变量控制。

(defun c:CCC ()
        (vl-load-com)
        (vla-sendcommand
                (vla-get-ActiveDocument (vlax-get-acad-object))
                "COPY "
        )
        (princ)
)

搞定了、用这种方式就可以了

xiaocainiao 发表于 2025-5-5 22:26:55

寒潮大冬瓜 发表于 2025-5-5 21:48
(defun c:CCC ()
(while T; 添加循环实现连续执行
    (command "_.copy" pause "")


我可能没表达清楚、我不是要写连续复制的功能、是想用lisp直接给copy设置一个快捷键、这个快捷键的执行效果和直接输入copy是一样的

寒潮大冬瓜 发表于 2025-5-5 23:20:27

本帖最后由 寒潮大冬瓜 于 2025-5-6 01:00 编辑

(defun c:CCC ()
(princ "kjj内COPY(CAD拷贝复制)")
;(os2024)
(command "COPY")
(princ)
;(princ)
) ;COPY(CAD拷贝复制)
我自己就是这样用的快捷键!楼主自己的不成功→估计是cad哪个设置的出了问题?

kozmosovia 发表于 2025-5-5 21:18:28

本帖最后由 kozmosovia 于 2025-5-5 21:27 编辑

不能连续执行什么意思?

寒潮大冬瓜 发表于 2025-5-5 21:48:44

(defun c:CCC ()
(while T; 添加循环实现连续执行
    (command "_.copy" pause "")
    (princ "\n继续复制或按ESC退出..."); 提示信息
)
(princ)
)

牛仔key 发表于 2025-5-5 22:02:32

; 连续复制
(defun c:C (/ ent)
(setq ent (ssget))
(Command-s ".copy" ent "" "m")
)

xiaocainiao 发表于 2025-5-5 22:25:49

kozmosovia 发表于 2025-5-5 21:18
不能连续执行什么意思?

就是复制一个后命令直接终止了、不像直接执行copy一样可以复制多个

寒潮大冬瓜 发表于 2025-5-5 22:30:28

你试用过→效果就是输入ccc就实现copy的功能哟!

xiaocainiao 发表于 2025-5-5 22:31:31

牛仔key 发表于 2025-5-5 22:02
; 连续复制
(defun c:C (/ ent)
(setq ent (ssget))


我是想用lisp给CAD本身命令设置快捷键、其他命令可以直接重定义、但是copy命令设置后、不能连续复制图形

xiaocainiao 发表于 2025-5-5 22:32:59

寒潮大冬瓜 发表于 2025-5-5 22:30
你试用过→效果就是输入ccc就实现copy的功能哟!

谢谢!但是你没明白我的问题、连续复制我自己会写代码、我的问题是重定义CAD本身的copy后不能连续复制、复制一个命令就结束了
页: [1] 2
查看完整版本: 求教!使用lisp重定义复制命令无法连续执行怎么搞