乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 119|回复: 9

[LISP]如何设置undo步数?

[复制链接]

13

主题

34

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
86
发表于 2004-3-31 23:45:00 | 显示全部楼层 |阅读模式
(defun c:3circle()
;位置1
(setq pre_cmdecho (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq i 1)
(command "undo" "be")
(repeat 3
         (command ".circle" '(0 0 0) (* 10 i))
         (setq i (1+ i))
)
(command "undo" "e")
(setvar "cmdecho" pre_cmdecho)
)
为了一次u能够取消绘制的三个圆,设置了undo的起点和终点,但是这样无法恢复系统变量cmdecho的值。如果将undo的起点移至位置1,则无法屏蔽(command "undo" "be")的回显,可以不使用undo命令而使用系统变量实现期望功能吗?或有其他解决方案吗?
回复

使用道具 举报

20

主题

872

帖子

10

银币

中流砥柱

Rank: 25

铜币
952
发表于 2004-4-1 00:00:00 | 显示全部楼层
看看表的结构(。。。(。。。(。。。         )。。。)。。。)
undo的位置也是一样的。在哪一环进,从哪一环出
回复

使用道具 举报

13

主题

34

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
86
发表于 2004-4-1 07:14:00 | 显示全部楼层
拜托无痕多解释几句嘛,不要惜字如金
回复

使用道具 举报

63

主题

1203

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1455
发表于 2004-4-1 08:34:00 | 显示全部楼层
我這里調試時cmdecho的值是可以返回. 我就搞不明你的怎麼不返回了. 但你的程序最后那里應加上(princ)結束才完美點吧.
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-4-1 08:36:00 | 显示全部楼层
你把(setvar "cmdecho" 0)也包含在undo的标记之内不就可以了吗?
回复

使用道具 举报

13

主题

34

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
86
发表于 2004-4-1 20:12:00 | 显示全部楼层
meflying的办法无法屏蔽(command "undo" "be")的回显。
BDYCAD,我试了,一旦用户u,的确无法恢复cmdecho的原值。
有没有别的方法,只能使用(command "undo" ...)吗?有没有实现同样功能的系统变量?
回复

使用道具 举报

13

主题

34

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
86
发表于 2004-4-2 07:34:00 | 显示全部楼层
为了实现当用户u时可以撤销一组命令,有无其他方法呢?
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-4-2 08:29:00 | 显示全部楼层
其实我通过使用发现,这个变量其实不需要恢复,因为它不会影响平常的应用,而程序中如果要用它时,都会在程序中设定,,,
如果非要恢复,可以用ACTIVEX来设置
(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(vla-StartUndoMark doc)
...
(vla-EndUndoMark doc)
回复

使用道具 举报

13

主题

34

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
86
发表于 2004-4-2 10:32:00 | 显示全部楼层
收到
回复

使用道具 举报

7

主题

16

帖子

3

银币

初来乍到

Rank: 1

铜币
44
发表于 2004-4-2 12:45:00 | 显示全部楼层
用vlax-add-cmd将你的程序加载到CAD的命令栈中不是很方便吗!
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-8-15 17:28 , Processed in 2.483753 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表