几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   ObjectARX(AutoLISP) (http://www.dimcax.com/hust/forumdisplay.php?f=178)
-   -   [讨论]关于多重复制及其撤销的问题 (http://www.dimcax.com/hust/showthread.php?t=11391)

yang686526 2009-04-26 03:24 PM

[讨论]关于多重复制及其撤销的问题
 
[讨论]关于多重复制及其撤销的问题
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


所有的时间均为北京时间。 现在的时间是 04:58 PM.