乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 56|回复: 3

[编程交流] AutoLISP脚本在旧版本上工作

[复制链接]

25

主题

62

帖子

37

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
125
发表于 2022-7-6 06:22:09 | 显示全部楼层 |阅读模式
代码如下:
 
  1. (defun C:PDFPUBLISH()
  2. (command "ctab" "model")
  3. (command "_autoPUBLISH" "")
  4. (setq acadObject (vlax-get-acad-object))
  5. (setq acadDocument (vla-get-ActiveDocument acadObject))
  6. (setq dProps (vlax-get-Property acadDocument 'SummaryInfo))
  7. (vla-GetCustomByKey dProps "project" 'project)
  8. (vla-GetCustomByKey dProps "revision" 'revisionnumber)
  9. (command "ctab" "model")
  10. (setq time (rtos (getvar "CDATE") 2 6))
  11. (setq yr (substr time 1 4))
  12. (setq mo (substr time 5 2))
  13. (setq dy (substr time 7 2))
  14. (setq hr (substr time 10 2))
  15. (setq mn (substr time 12 2))
  16. (setq sc (substr time 14 2))
  17. (setq dwgname (GETVAR "dwgname"))
  18. (setq len (strlen dwgname))
  19. (setq dwgname (substr dwgname 1 (- len 4)))
  20. (setq oldpdfname (strcat (getvar "dwgprefix") "DWF and PDF\" dwgname ".pdf"))
  21. (setq newpdfname (strcat (getvar "dwgprefix") "DWF and PDF\" project " - rev" revisionnumber " - " yr "-" mo "-" dy "@" hr "." mn "." sc ".pdf"))
  22. (vl-file-rename oldpdfname newpdfname)
  23. (princ)
  24. ) ;End defun PDFPUBLISH

 
基本上,我在新电脑上设置了与旧电脑相同的文件结构,但这个脚本并不像以前那样生成pdf文件。现在,我得到了一个不同的文件类型(记不起头顶上的类型),它与文件放在同一个文件夹中。dwg,而不是文件所在的“DWF和PDF”文件夹。dwg为。
 
不幸的是,我现在在一台没有AutoCAD的计算机上,所以我无法测试它,但我怀疑这与\u autoPUBLISH命令和一些与之相关的设置有关。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 06:48:33 | 显示全部楼层
尝试此未经测试的程序:
  1. (defun c:pdfpublish ( / sum old pro pth rev )
  2.    (setvar 'ctab "Model")
  3.    (setq sum (vla-get-summaryinfo (vla-get-activedocument (vlax-get-acad-object))))
  4.    (if
  5.        (and
  6.            (setq pro (getcustombykey sum "project"))
  7.            (setq rev (getcustombykey sum "revision"))
  8.        )
  9.        (progn
  10.            (vl-mkdir (setq pth (strcat (getvar 'dwgprefix) "DWF and PDF")))
  11.            (command "_.autopublish" "_L" pth)
  12.            (if (findfile (setq old (strcat pth "\" (vl-filename-base (getvar 'dwgname)) ".pdf")))
  13.                (vl-file-rename old (strcat pth "\" pro " - rev" rev " - " (menucmd "m=$(edtime,$(getvar,date),yyyy-mo-dd@hh.mm.ss)") ".pdf"))
  14.                (princ (strcat "\nFile "" old "" not found."))
  15.            )
  16.        )
  17.        (princ "\nCustom properties not found.")
  18.    )
  19.    (princ)
  20. )
  21. (defun getcustombykey ( sum key / rtn )
  22.    (vl-catch-all-apply 'vla-getcustombykey (list sum key 'rtn))
  23.    rtn
  24. )
  25. (vl-load-com) (princ)
回复

使用道具 举报

25

主题

62

帖子

37

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
125
发表于 2022-7-6 07:04:37 | 显示全部楼层
谢谢,但我找到了解决办法。由于这是一个新的AutoCAD安装,我的旧设置不太正确。在“选项”下,然后是“打印和发布”,然后是“自动发布”设置,我更改了所有设置以匹配之前的设置,我的原始脚本现在运行良好。谢谢你!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:24:46 | 显示全部楼层
尽管如此,我建议您查看我的代码,因为在错误捕获和提高代码简洁性和可读性方面,您的代码可能会有一些改进。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-10 17:46 , Processed in 0.355554 second(s), 60 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表