[讨论]关于多重复制及其撤销的问题
www.dimcax.com
[讨论]关于多重复制及其撤销的问题
04版的多重复制要输入关键字m,撤销的时候,在同一视口完成的操作算作一步。
06版默认为多重复制,撤销的时候是一下全部撤销。
我想要实现逐步撤销,编了两个小程序,都有不足之处,望高手能够解决,关键是如何实现在键盘输入空格和回车终止程序的问题。
;改进的多重复制,空格或回车可以退出,但是复制过程中不能动态显示复制对象。
(defun c:cc ()
(setq css (ssget))
(setq pt0 (getpoint "指定基点"))
(setq pt t)
(while pt
(setq pt (getpoint pt0 "\n指定目标点"))
(command "copy" css "" pt0 pt)
)
(prin1)
)
;改进的多重复制,只能按esc退出,空格或回车仍然继续复制。
(defun c:ccc ()
(setq css (ssget))
(setq pt0 (getpoint "指定基点"))
(setq pt t)
(while pt
(command "copy" css "" pt0 pause)
)
(prin1)
)
d
帮你转到lisp版块
d
无预览.可以一步步undo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21( c:c ( aa bb copycl)
( "\n选择要拷贝的物体: ")
( ( copycl ( ":l"))
(
( bb ( "\n指定基点:"))
( 1;( ( aa) 'list)
( 2 "u")
( aa ( "\n指定基点或位移或[放弃(u)]:"))
( (( ( aa) 'str)
( "undo" "")
)
(( ( aa) 'list)
( "copy" copycl "" bb aa)
)
( ())
)
)
)
)
)
d
感谢明总移帖,也谢谢楼上这位热心的大哥。
d