AutoLISP脚本在旧版本上工作
代码如下:(defun C:PDFPUBLISH()
(command "ctab" "model")
(command "_autoPUBLISH" "")
(setq acadObject (vlax-get-acad-object))
(setq acadDocument (vla-get-ActiveDocument acadObject))
(setq dProps (vlax-get-Property acadDocument 'SummaryInfo))
(vla-GetCustomByKey dProps "project" 'project)
(vla-GetCustomByKey dProps "revision" 'revisionnumber)
(command "ctab" "model")
(setq time (rtos (getvar "CDATE") 2 6))
(setq yr (substr time 1 4))
(setq mo (substr time 5 2))
(setq dy (substr time 7 2))
(setq hr (substr time 10 2))
(setq mn (substr time 12 2))
(setq sc (substr time 14 2))
(setq dwgname (GETVAR "dwgname"))
(setq len (strlen dwgname))
(setq dwgname (substr dwgname 1 (- len 4)))
(setq oldpdfname (strcat (getvar "dwgprefix") "DWF and PDF\\" dwgname ".pdf"))
(setq newpdfname (strcat (getvar "dwgprefix") "DWF and PDF\\" project " - rev" revisionnumber " - " yr "-" mo "-" dy "@" hr "." mn "." sc ".pdf"))
(vl-file-rename oldpdfname newpdfname)
(princ)
) ;End defun PDFPUBLISH
基本上,我在新电脑上设置了与旧电脑相同的文件结构,但这个脚本并不像以前那样生成pdf文件。现在,我得到了一个不同的文件类型(记不起头顶上的类型),它与文件放在同一个文件夹中。dwg,而不是文件所在的“DWF和PDF”文件夹。dwg为。
不幸的是,我现在在一台没有AutoCAD的计算机上,所以我无法测试它,但我怀疑这与\u autoPUBLISH命令和一些与之相关的设置有关。 尝试此未经测试的程序:
(defun c:pdfpublish ( / sum old pro pth rev )
(setvar 'ctab "Model")
(setq sum (vla-get-summaryinfo (vla-get-activedocument (vlax-get-acad-object))))
(if
(and
(setq pro (getcustombykey sum "project"))
(setq rev (getcustombykey sum "revision"))
)
(progn
(vl-mkdir (setq pth (strcat (getvar 'dwgprefix) "DWF and PDF")))
(command "_.autopublish" "_L" pth)
(if (findfile (setq old (strcat pth "\\" (vl-filename-base (getvar 'dwgname)) ".pdf")))
(vl-file-rename old (strcat pth "\\" pro " - rev" rev " - " (menucmd "m=$(edtime,$(getvar,date),yyyy-mo-dd@hh.mm.ss)") ".pdf"))
(princ (strcat "\nFile \"" old "\" not found."))
)
)
(princ "\nCustom properties not found.")
)
(princ)
)
(defun getcustombykey ( sum key / rtn )
(vl-catch-all-apply 'vla-getcustombykey (list sum key 'rtn))
rtn
)
(vl-load-com) (princ)
谢谢,但我找到了解决办法。由于这是一个新的AutoCAD安装,我的旧设置不太正确。在“选项”下,然后是“打印和发布”,然后是“自动发布”设置,我更改了所有设置以匹配之前的设置,我的原始脚本现在运行良好。谢谢你! 尽管如此,我建议您查看我的代码,因为在错误捕获和提高代码简洁性和可读性方面,您的代码可能会有一些改进。
页:
[1]