乐筑天下

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

[分享]StartUndoMark、EndUndoMark应用。

[复制链接]

26

主题

589

帖子

10

银币

中流砥柱

Rank: 25

铜币
693
发表于 2003-5-25 21:51:00 | 显示全部楼层 |阅读模式
;;; 如果发生error (例如 ctrl-c)
;;; 激活本命令...
(defun $yb_error (st)
  (if (/= st "函数已取消")
    ;;(princ (strcat "\n错误: " st))
    (princ "\n*取消*")
  )
  (yb:end)
  (princ)
)
;;初始化命令,保存系统变量,标记程序开始
(defun yb:begin (sysvarlst /)           
  (setq $yb_HostAcad (vla-get-activedocument (vlax-get-acad-object)))
  (vla-startundomark $yb_hostacad)      ; 保存系统变量
  (setq $yb_sysvar_mlst (mapcar
                          '(lambda (x)
                             (list x (getvar x))
                           )
                          sysvarlst
                        )
  )
  (setq $yb_olderr *error*
        *error* $yb_error
  )
  (princ)
)
(defun yb:end ()
  (mapcar '(lambda (x)
             (eval (cons 'setvar x)))
          $yb_sysvar_mlst
  )
  (vla-endundomark $yb_hostacad)
  (setq *error* $yb_olderr)
  (setq $yb_sysvar_mlst nil $yb_hostacad nil $yb_olderr nil)
  (princ)
)
回复

使用道具 举报

0

主题

10

帖子

7

银币

初来乍到

Rank: 1

铜币
12
发表于 2003-5-27 13:05:00 | 显示全部楼层
StartUndoMark和EndUndoMark是成对使用的,就是说在它们之间进行的操作,比如添加了一个或者多个实体、修改实休等,做为一个操作组来对待,可以整体的取消(Undo),避免了一个个的取消。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-2 15:40 , Processed in 0.708953 second(s), 56 queries .

© 2020-2025 乐筑天下

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