江南十笑 发表于 2019-9-30 14:58:13

这样修改copy的快捷键为何不能连续复制

(defun c:C()
(command "COPY" )
   (princ)
)

代码如上按C可以复制 但是不能连续复制就是一次性选择可以连续放好几个位置

caoyin 发表于 2019-10-4 09:07:34

需要注意的是:
INITCOMMANDVERSION 是 AutoCAD 2009 新增的函数,因此支持此函数的最低版本是 17.2

caoyin 发表于 2019-10-1 00:29:54

AutoCAD为了兼容早期LISP使用command函数调用命令,在后台仍保留老版本的命令指令。例如早期版本的COPY命令,缺省状态下是没有多重复制的。这样确保早期的LISP代码在后续版本中不至于出错。
因此在后续的LISP版本中,增加了一个函数:initcommandversion,功能:强制使用指定版本运行下一个命令
假设你当前使用的AutoCAD版本是2018,2018的版本号是22,那么这样调用:
(initcommandversion 22)
(commad "_.copy")
这时候你会发现多重复制的可用的。。。。。。

Andyhon 发表于 2019-9-30 15:39:13

可以用对映的方法

即 Lisp 串接命令的回应内容

先在CAD 完成 连续复制 看看使用者需回应些什么...

start4444 发表于 2019-9-30 17:57:17

(command "copy" (ssget) "" "m")

andyhua 发表于 2019-10-1 08:55:28

谢谢楼上的,又学一招……

江南十笑 发表于 2019-10-2 09:52:46

caoyin 发表于 2019-10-1 00:29
AutoCAD为了兼容早期LISP使用command函数调用命令,在后台仍保留老版本的命令指令。例如早期版本的COPY命令 ...

谢谢 大佬 确实可以了

e2002 发表于 2019-10-4 00:05:08

Fillet 也是如此,如果需要再调用中使用新版功能,必须先用initcommandversion函数指定一下

二更更二 发表于 2020-3-7 22:34:17

start4444 发表于 2019-9-30 17:57
(command "copy" (ssget) "" "m")

那我接下来想输入陈列A,然后操作数目,再然后布满F,该怎么写呢

magicheno 发表于 2021-8-7 13:38:02

学习了~~~~~
页: [1]
查看完整版本: 这样修改copy的快捷键为何不能连续复制