乐筑天下

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

[编程交流] (命令“关闭”)请求c

[复制链接]

77

主题

298

帖子

232

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
394
发表于 2022-7-5 17:23:28 | 显示全部楼层 |阅读模式
大家好,
 
我有一个例程,它执行QSAVE、SAVE,然后关闭一个图形(代码如下)。但我遇到了一个问题(仅在1张图纸中),最后一个悬而未决的问题是要求确认“真的想放弃对图纸的所有更改吗?”。
 
只要我有这个习惯(一年多),它就一直很有效,但在这张1号图纸中,它绊倒了。
 
我将专家系统变量设置为5。
 
  1. (DEFUN C:qq (/ newname)
  2.   (setvar "CMDECHO" 0)
  3.   (SETQ EXPERTO (GETVAR "EXPERT"))
  4.   (setvar "EXPERT" 0)
  5.   (COMMAND "ZOOM" "e")
  6.   (COMMAND "UCS" "w")
  7.   (SETQ QSDATE (RTOS (GETVAR "CDATE") 2 0))
  8.   (SETQ QSTIMEh (SUBSTR (RTOS (GETVAR "CDATE") 2 4) 10 2))
  9.   (SETQ QSTIMEm (SUBSTR (RTOS (GETVAR "CDATE") 2 4) 12 2))
  10.   (if (zerop (getvar "dwgtitled"))
  11.     (command "._qsave" (getstring "\n Enter drawing name: "))
  12.     (command "_.qsave")
  13.   )
  14.   (setvar "filedia" 0)
  15.   (vl-mkdir (strcat "D:/_DWGBackup/" QSDATE "/"))
  16.   (vl-mkdir (strcat "D:/_DWGBackup/" QSDATE "/Exit/"))
  17.   (setq newname
  18.         (strcat
  19.           "D:/_DWGBackup/" QSDATE "/Exit/"
  20.           (vl-filename-base (getvar 'dwgname)) ".dwg"
  21.         )
  22.   )  
  23.   (if (findfile (strcat newname))
  24.     (command "_.save" newname "_Y")
  25.     (command "_.save" newname)
  26.   )
  27.   (setvar "filedia" 1)
  28.   (setvar "EXPERT" EXPERTO)
  29.   (COMMAND "CLOSE")
  30.   (princ)
  31. )

 
即使忽略LISP例程,如果执行QSAVE,然后输入“(命令“close”)它仍然会请求确认。而在其他图纸中,我可以在QSAVE后立即关闭而无需确认。
 
以前有人见过这个吗?
 
非常感谢您的帮助。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:31:57 | 显示全部楼层
试图记住,但两者之间存在差异。save和save等通常情况下,层关闭了dilouge,因此不需要filedia,也可以使用save和close进行播放,非常确定还有VL close。
回复

使用道具 举报

77

主题

298

帖子

232

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
394
发表于 2022-7-5 17:34:39 | 显示全部楼层
嗨,比格尔,
 
非常感谢您的回复。
 
在这个阶段,我对修改例程不太在意,我认为只要将(命令“CLOSE”)更改为(命令“CLOSE”“Y”,修复就足够简单了。
 
我更好奇的是,为什么绘画之间的行为有差异。这套套路很长一段时间都很好,直到今天才在几张不同的图纸上开始发挥作用。我监控了我在这些特定图画中的所有活动,没有任何东西能够解释行为的变化。
 
再次感谢。
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 17:40:38 | 显示全部楼层
查看sysvar DBMOD,它控制QSAVE确认需求-大卫
回复

使用道具 举报

77

主题

298

帖子

232

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
394
发表于 2022-7-5 17:45:23 | 显示全部楼层
嗨,大卫,
 
是的,这似乎就是原因。每次保存后(在错误的图形中),DBMOD不会重置为零。
 
关于这件事的原因有什么想法吗?我在谷歌上做了一些快速搜索,但结果不多。
 
谢谢你的回复。
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 17:52:30 | 显示全部楼层
看看这些是否有帮助
 
http://www.cadtutor.net/forum/showthread.php?4029-重置DBMOD以避免保存提示
 
http://forums.autodesk.com/t5/objectarx/reset-dbmod/td-p/324001
 
http://www.cadforum.cz/cadforum_en/how-to-avoid-save-prompt-after-zooming-or-other-operations-tip8408
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 17:54:49 | 显示全部楼层
数据库被修改了。可能是_u。缩放(E)
 
对于简单的解决方案,可能:
 
  1. (defun c:qq ()
  2. (cond ((zerop (getvar "DWGTITLED"))
  3.       (setvar "CMDECHO" 1)
  4.       (command "_.QSAVE")
  5.       (while (> (getvar "CMDACTIVE") 0)
  6.              (command pause))
  7.       (setvar "CMDECHO" 0))
  8.      ((> (getvar "DBMOD") 0)
  9.       (command "_.QSAVE" "_Yes"))
  10.      (T
  11.       (command "_.QSAVE")))
  12. (prin1))

 
HTH-David
回复

使用道具 举报

77

主题

298

帖子

232

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
394
发表于 2022-7-5 18:01:42 | 显示全部楼层
大家好,
 
谢谢你的帮助(很抱歉反应太晚)。
 
David-我同意解决方法是调整例程以检查DBMOD。
 
SLW210-感谢链接。
 
你们知道是什么导致DBMOD在QSAVE后不能重置为零吗?忽略LISP例程(为了参数)。
 
--------编辑-----------
 
所以我刚刚做了一些实验来删除对象并测试QSAVE,发现在这个图形中有一些不同的元素可以删除,在QSAVE之后,DBMOD系统变量将重置为零。
 
例如,假设有3个对象似乎会影响这种行为(项目A、B和C)。我可以删除这些项目中的任何一个,然后清除,然后QSAVE,然后DBMOD将设置为零。我可以删除项目A,将B和C留在图纸>QSAVE>DBMOD=0中。我可以删除项目B,将A和C留在图纸>QSAVE>DBMOD=0中。看起来很奇怪。顺便说一句,审核>清除>审核>清除和/或恢复两者都不能解决损坏问题。
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 18:06:02 | 显示全部楼层
他们能成为团队的一员吗?
 
它们可能与反应堆有关吗?
 
他们有xadta吗?
 
是否存在仅在所有3个实体中引用的层?
 
我可能会选择变通方法,因为它在任何情况下都应该有效。我的0.02美元-David
回复

使用道具 举报

77

主题

298

帖子

232

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
394
发表于 2022-7-5 18:09:38 | 显示全部楼层
嗨,大卫,
 
其中两个元素是ProSteel对象,另一个是标题栏。
 
我不确定ProSteel元素到底是什么(就扩展数据等而言),但它们确实有这种类型的东西。标题栏没有扩展数据。图形中没有组。它们也不共享公共层。我对反应堆的情况不太确定,我明天再查。
 
我将继续工作,它将覆盖所有基础。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 04:50 , Processed in 0.367860 second(s), 72 queries .

© 2020-2025 乐筑天下

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