使用GetField
我用位代码9设置了一个getfield例程。如果我理解正确,我应该能够用这个设置覆盖现有文件。它不会覆盖我选择的文件。它将覆盖当前图形。有什么想法吗?杰森 我认为1号文件将取代再次写入的文件。请试试看。
没有运气。。它仍然不会覆盖文件 对不起,这是帮助文档中的解释,应该是32。
32 (bit 5) If this bit is set and bit 0 is set (indicatingthat a new file is being specified), users will not be warned if
they are aboutto overwrite an existing file.
The alert box to warn users that a file of thesame name already exists will not be displayed; the old file will just bereplaced.
嗯,它的工作原理是警告框没有显示,但它仍然没有覆盖文件!令人沮丧的。。。这是我到目前为止的代码。。
(DEFUN C:ARCHIVER ( / FN QF CMD)
(alert "THIS COMMAND CAN NOT OVERWRITE AN\n EXISTING DRAWING.SPECIFY A NEW DRAWING NAME.")
(setq CMD (getvar "cmdecho"))
(setq FN (getfiled "Save Archive As" "" "dwg" 1))
(if (= FN nil )
(progn
(princ)(princ "...ARCHIVER ABORTED...")(princ))
(progn
(command "saveas" "" FN "")
(command "-xref" "b" "*" "")
(command "zoom" "e")
(alert "MAKE SURE ALL XREFS HAVE BEEN BOUND.\nTYPE XREF AT THE COMMAND LINE.")
(princ)
(setvar "cmdecho" CMD)
(command "-purge" "all" "*" "N")
(COMMAND "QSAVE")
)
))
因此,活动图形应保存到新文件中,并绑定和清除。。。但是,如果我选择了一个存在的图形名称,该命令将在活动图形中完成,并且不会保存到我选择的图形名称。。。
我认为,如果将getfield标志从1更改为9(请参阅下面的代码),save命令可能适用于新的或现有的文件。请参阅LeeMac在所附cadtutor链接中的帖子,“我将使用位代码9(8+1)来表示现有/或创建新的。”
http://www.cadtutor.net/forum/showthread.php?36805-GetField公司
希望这有帮助。
(setq FN (getfiled "Save Archive As" "" "dwg" 9))
页:
[1]