andyhua 发表于 2023-4-18 08:35:21

如果让CAD2020打开只读文件,LISP误保存,能有提示?

不知道是不是发现了CAD2014及以上的BUG?
在CAD2014,2020中,比如我只读打开一个DWG,按CTRL+S,保存,会弹出一个对话框:图形文件被写保护。
但是如果用:命令: (command "qsave")
nil
返回一个nil,并不会弹出:图形文件被写保护的对话框。同样的操作在CAD2012中,则会弹出图形文件被写保护对话框。所以我觉得这是不是BUG啊。也就是说CAD2014,2020,当打开只读文件时,如果用LISP来保存,则没有任何反应。要怎么办,才能让他弹出只读文件写保护对话框呢?
谢谢

pzweng 发表于 2023-4-18 11:41:06

(defun c:qsave2        (/ getfileatt fp1)
(defun getfileatt (fp / fp1 code)
    (setq fp1 (vlax-invoke-method (vlax-create-object "Scripting.FileSystemObject") 'getfile fp))
    (setq code (vlax-get-property fp1 'attributes))
    (vlax-release-object fp1)
    code
)
(setq fp1 (vla-get-fullname (vla-get-activedocument (vlax-get-acad-object))))
(if (= 33 (getfileatt fp1))
    (alert "当前图形文件被写保护。")
    (command "qsave")
)
)

andyhua 发表于 2023-4-18 11:45:02

谢谢楼上的出手,但是也不幸,程序加载到CAD2020中,保存后,还是nil,并没有当前文件被写保护弹出。
页: [1]
查看完整版本: 如果让CAD2020打开只读文件,LISP误保存,能有提示?