JamCAD 发表于 2022-7-5 23:28:24

关闭d时抑制警报

只是一个快速的。
 
我有两个快捷键,用于关闭图形,同时抑制“Do you want to save”警报,从而在不使用任何鼠标单击的情况下关闭图形。一个用于关闭和保存图形(如果在图纸空间中,则进行最大化,从而在windows资源管理器中更新预览缩略图),另一个用于关闭图形而不保存更改。
 
基本上,我在加载到所有图形的快捷方式lisp例程中使用以下函数:
 
(命令“VBASTMT”“ThisDrawing.Close(FALSE/TRUE)”)
 
根据是否要保存图形,使用FALSE或TRUE的位置。
 
简而言之,我的计算机上不再安装VBA模块,快捷方式会弹出一个警报,指向VBA模块的下载页面。然而,我仍然希望能够使用我的快捷方式。
 
我试过:
(vlax invoke方法(vla get activedocument(vlax get acad object))'关闭:vlax false)

(vla close(vla get activedocument(vlax get acad object)):vlax false)
 
但我得到了以下错误:
 
; 错误:自动化错误。绘图正忙。
 
我是否在语法上做错了什么,或者根本不可能做到?

BlackBox 发表于 2022-7-5 23:50:41


(defun c:CloseWithoutSave ()
(if (< 0 (getvar 'dbmod))
   (command "._close" "_y")
   (command "._close")
)
(princ)
)

(defun c:CloseWithSave ()
(command "._qsave" "._close")
(princ)
)

JamCAD 发表于 2022-7-6 00:04:32

谢谢,如果我没有记错的话,我首先使用VBA的原因是因为我不需要检查图形的更改,但您已经通过检查dbmod变量来完成了。然而,我仍然很好奇为什么我尝试使用的vlax/vla代码不起作用。

Bhull1985 发表于 2022-7-6 00:14:36

试着用vlax结束:真的?

BIGAL 发表于 2022-7-6 00:33:09

您还可以使用上面的黑匣子之类的东西重新定义键入的“Close”。甚至编辑CUI,将“Close”再次更改为所需,也可以添加两个版本“Close Y”和“Close N”。
页: [1]
查看完整版本: 关闭d时抑制警报