JPlanera 发表于 2022-7-6 06:19:30

使用GetField

我用位代码9设置了一个getfield例程。如果我理解正确,我应该能够用这个设置覆盖现有文件。它不会覆盖我选择的文件。它将覆盖当前图形。有什么想法吗?
 
杰森

Tharwat 发表于 2022-7-6 06:36:28

我认为1号文件将取代再次写入的文件。请试试看。

JPlanera 发表于 2022-7-6 06:49:05

 
没有运气。。它仍然不会覆盖文件

Tharwat 发表于 2022-7-6 07:05:43

对不起,这是帮助文档中的解释,应该是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.

JPlanera 发表于 2022-7-6 07:11:00

嗯,它的工作原理是警告框没有显示,但它仍然没有覆盖文件!令人沮丧的。。。这是我到目前为止的代码。。
 

(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")
    )
   ))

 
因此,活动图形应保存到新文件中,并绑定和清除。。。但是,如果我选择了一个存在的图形名称,该命令将在活动图形中完成,并且不会保存到我选择的图形名称。。。

rayg11757 发表于 2022-7-6 07:30:27

 
我认为,如果将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]
查看完整版本: 使用GetField