明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 菜卷鱼

[已解答] 怎样在使用_.UNDO时取消命令栏提示?

[复制链接]
发表于 2013-12-19 11:04 | 显示全部楼层
菜卷鱼 发表于 2013-12-19 10:57
可以一次撤销,就是撤销的时候出现很多“(LISP 表达式)”

可以用 PRINC
回复

使用道具 举报

发表于 2013-12-19 12:56 | 显示全部楼层
问题出在使用了command函数,但不知怎样解决。
回复

使用道具 举报

 楼主| 发表于 2013-12-19 14:27 | 显示全部楼层
自贡黄明儒 发表于 2013-12-19 14:16
;;你这样试试

麻烦黄大师了,这样我也试过了,还是一样,实在弄不清原因,有人说事command的原因,但是我有另外的程序用了command,但是撤销的时候不会有很多“(LISP 表达式)”提示。
虽然这样不影响程序使用,但是我想知道到底什么原因。

点评

12程序我试了,没有你说的情况  发表于 2013-12-19 14:35
回复

使用道具 举报

 楼主| 发表于 2013-12-19 15:26 | 显示全部楼层
菜卷鱼 发表于 2013-12-19 14:27
麻烦黄大师了,这样我也试过了,还是一样,实在弄不清原因,有人说事command的原因,但是我有另外的程序用 ...

可能是我CAD哪个参数跟你们设置的不同,麻烦黄大师了,我再慢慢找原因吧
回复

使用道具 举报

 楼主| 发表于 2013-12-20 14:16 | 显示全部楼层
这问题恐怕是没人解决了
回复

使用道具 举报

发表于 2013-12-20 15:01 | 显示全部楼层
菜卷鱼 发表于 2013-12-20 14:16
这问题恐怕是没人解决了

你使用(vla-StartUndoMark *DOC*)替代(command "_.undo" "be")试试
回复

使用道具 举报

 楼主| 发表于 2013-12-20 17:02 | 显示全部楼层
自贡黄明儒 发表于 2013-12-20 15:01
你使用(vla-StartUndoMark *DOC*)替代(command "_.undo" "be")试试

Vla函数不会用,直接替代的话出错 “函数中出错参数类型错误: VLA-OBJECT nil”
回复

使用道具 举报

 楼主| 发表于 2013-12-20 17:13 | 显示全部楼层
本帖最后由 菜卷鱼 于 2013-12-20 17:19 编辑
自贡黄明儒 发表于 2013-12-20 15:01
你使用(vla-StartUndoMark *DOC*)替代(command "_.undo" "be")试试

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=93046
参考了您这个帖子里的vla-EndUndoMark用法,但是没有效果,还是出现很多“(LISP 表达式)”提示

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

发表于 2013-12-21 08:08 | 显示全部楼层
本帖最后由 自贡黄明儒 于 2013-12-21 08:45 编辑
菜卷鱼 发表于 2013-12-20 17:13
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=93046
参考了您这个帖子里的vla-EndUndoMark用法,但 ...


;;是不是这样的
  1. (defun c:et ()
  2.   (vl-load-com)
  3.   (or *DOC*
  4.       (setq *DOC* (vla-get-ActiveDocument (vlax-get-acad-object)))
  5.   )
  6.   (vla-StartUndoMark *DOC*)
  7.   (setvar "cmdecho" 0)
  8.   (setq ptlist1 nil)
  9.   (setq ss (ssget '((0 . "INSERT"))))
  10.   (setq ss0 (sort-se (sort-se ss 10 1 50 nil) 10 0 2 nil))
  11.   (setq sct (sslength ss))
  12.   (setq        x1 0
  13.         x2 0
  14.   )
  15.   (setq        ss1 ss0
  16.         ss2 ss0
  17.   )
  18.   (repeat sct
  19.     (setq sent (entget (ssname ss1 x1)))
  20.     (setq ascd10 (assoc 10 sent))
  21.     (setq ptlist1 (cons ascd10 ptlist1))
  22.     (setq x1 (1+ x1))
  23.   )
  24.   (etmove)
  25.   (vla-EndUndoMark *DOC*)
  26.   (princ)
  27. )
  28. (defun etmove ()
  29.   (setvar "cmdecho" 0)
  30.   (setq ptlist2 ptlist1)
  31.   (repeat sct
  32.     (setq acx10 (cdr (car ptlist2)))
  33.     (setq ptlist2 (cdr ptlist2))
  34.     (setq sn (ssname ss2 x2))
  35.     (setq sent2 (entget sn))
  36.     (setq acy10 (cdr (assoc 10 sent2)))
  37.     (command "_move" sn "" acy10 acx10)
  38.     (setq x2 (1+ x2))
  39.   )
  40.   (setvar "cmdecho" 1)
  41. )
回复

使用道具 举报

 楼主| 发表于 2013-12-21 08:34 | 显示全部楼层
自贡黄明儒 发表于 2013-12-21 08:08
;;是不是这样的

这样的话就不能一步返回

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

点评

19楼漏(vla-StartUndoMark *DOC*)  发表于 2013-12-21 08:46
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-17 16:16 , Processed in 0.150485 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表