乐筑天下

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

[编程交流] 保存PDF的LISP函数

[复制链接]

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:44:41 | 显示全部楼层
谢谢Roy_043希望它能起作用
 
回到格林拉,若上面的帖子不起作用,你们需要去麦克洛尔寻求帮助。http://www.m-color.com/我想是你买的。
回复

使用道具 举报

28

主题

95

帖子

73

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
137
发表于 2022-7-5 17:47:41 | 显示全部楼层
很抱歉偏离了讨论,但我仍在寻找一种方法,将已发布PDF的默认保存位置设置为与dwg相同的位置。
每次都需要找到这个文件夹真是浪费时间。。。
如果有人能建议如何做到这一点,我们将不胜感激
回复

使用道具 举报

37

主题

264

帖子

236

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
185
发表于 2022-7-5 17:50:58 | 显示全部楼层
我曾经认为这是一个需要遵循dwgprefix的注册表项。但我没能成功。也在寻找固溶体。。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:53:52 | 显示全部楼层
如果忽略“Publish”并返回lisp,则可以实现同样的效果。
 
下面是一个例子
绘图3pdfrange。lsp
getvals。lsp
回复

使用道具 举报

28

主题

95

帖子

73

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
137
发表于 2022-7-5 17:56:42 | 显示全部楼层
我想我正朝着正确的方向前进。但是
当我加载它时,它会询问我开始和结束标签号。
在指定之后,它似乎无法正常工作。。
我做错了什么?
 
绘图3pdfrange。lsp已成功加载。

命令:重新生成模型。
重新生成布局。
再生模型。
是或否。
函数取消将绘图写入文件[是/否]:
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 18:00:27 | 显示全部楼层
如果你仔细看plotpdfrange,它是硬编码的,将pdf放入一个名为pdf的目录中,该目录位于dwg目录“design”下。这是我同事的请求。它可能正在工作,但找不到此目录。最初的verison将其放在同一位置。版本2使用Ghost脚本并将创建的pdf连接到一个脚本中。如果你想要的话就贴出来。
 
\项目\ 1234 \设计\ pdf
 
  1. (setq pdfname (strcat (getvar "dwgprefix") "pdf\" dwgname "-" (getvar "ctab"))) ; sub directory pdf
  2. (setq pdfname (strcat (getvar "dwgprefix")  dwgname "-" (getvar "ctab"))) ; no pdf directory saved same as dwg
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 18:02:41 | 显示全部楼层
格林拉,有什么进展吗?
回复

使用道具 举报

28

主题

95

帖子

73

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
137
发表于 2022-7-5 18:06:15 | 显示全部楼层
好的,经过一点测试后,我无法使plotpdfrange lsp文件正常运行。。我确实找到了一个似乎有效的替代方案。它将所有PDF保存到与dwg相同的位置,但作为单个图纸
你提到的BIGAL有一种方法可以把这些结合起来吗?
 
  1. ;; Prints All Layout Tabs and names the new PDFs with the name of the
  2. ;; drawing followed by the layout tab name.
  3. ;;
  4. ;; Adjust the paper size and .ctb file as needed.
  5. ;;
  6. ;; The PDFs will be placed in the folder where the drawing resides
  7. ;;
  8. (defun c:PA ()
  9. (foreach lay (layoutlist)
  10. (setvar 'CTab lay)
  11. (COMMAND         "-PLOT"
  12.         "Y"
  13.         ""
  14.         "DWG To PDF.pc3"
  15.         "ANSI full bleed A (8.50 x 11.00 Inches)"
  16.         "Inches"
  17.         "PORTRAIT"
  18.         "N"
  19.         "E"
  20.         "f"
  21.         "C"
  22.         "Y"
  23.         "monochrome.ctb"
  24.         "Y"
  25.         "N"
  26.         "N"
  27.         "N"
  28.         ""; Name of file
  29.         "N"
  30.         "y"      )
  31.    )
  32. )
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 18:10:59 | 显示全部楼层
唯一应该停止plotpdfrange工作的是绘图位置下方的pdf目录,请使用我上一篇文章中的第二行更改代码。你需要正确的参数大小表等等。像你发布的代码masterfal一样,有很多例子,都有很小的改动。
 
这是一个合并pdf的lisp,它使用了需要单独下载的ghostscript。
 
plotpdf的版本在一个步骤中完成单个和单个合并。
 
以上为后期编辑。
 
  1. ;MergePdfs
  2. ;Merges multiple pdf (or eps) files into one
  3. ;
  4. ; make a batch file ?
  5. ;gs -sDEVICE=pdfwrite \
  6. ;    -dNOPAUSE -dBATCH -dSAFER \
  7. ;    -sOutputFile=combined.pdf \
  8. ;    first.pdf \
  9. ;    second.pdf \
  10. ;    third.pdf [...]
  11. ;Ghostscript (http://www.ghostscript.com/) can be used to combine PDFs.
  12. ; Something like this should work: by Roy_043
  13. (defun KGA_String_Join (strLst delim)
  14. (if strLst
  15. (apply
  16. 'strcat
  17. (cons
  18. (car strLst)
  19. (mapcar '(lambda (a) (strcat delim a)) (cdr strLst))
  20. )
  21. )
  22. ""
  23. )
  24. )
  25. ; (CombinePdf
  26. (setq gsexe "C:\\Program Files\\gs\\gs9.19\\bin\\gswin64c.exe")
  27. ; (setq srcFilelst  '("D:\\Tmp\\A.pdf" "D:\\Tmp\\B.pdf"))
  28. ; (setq trgfile "C:\\Acadtemp\\Total.pdf")
  29. ; )
  30. ; Note: Existing trgFile will be overwritten.
  31. (defun CombinePdf (gsExe srcFileLst trgFile)
  32. (startapp
  33. (strcat
  34. gsExe " "
  35. "-sDEVICE=pdfwrite -dBATCH -dNOPAUSE -dQUIET  "
  36. "-sOutputFile="" trgFile "" "
  37. """ (KGA_String_Join srcFileLst "" "") """
  38. )
  39. )
  40. )

 
绘图3PDFRANGE2。lsp
回复

使用道具 举报

28

主题

95

帖子

73

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
137
发表于 2022-7-5 18:13:46 | 显示全部楼层
是的,我已经做了很多,但仍然不能正常运行。。我已修改,因此使用绘图仪名称/样式。不确定我还做错了什么?
 
  1. ;Plots layouts by range
  2. ; By Alan H Feb 2014
  3. (defun AH:pltlays ( / lay numlay numend)
  4. (SETVAR "PDMODE" 0)
  5. (setvar "fillmode" 1)
  6. (setvar "textfill" 1)
  7. (if (not AH:getval2) (load "getvals"))
  8. (ah:getval2 "Enter start tab number" 6 4 "Enter end tab number" 6 4)
  9. (setq numlay (ATOI val1))
  10. (setq numend (ATOI val2))
  11. (setq len (+ (- numend numlay) 1))
  12. (setq dwgname (GETVAR "dwgname"))
  13. (setq lendwg (strlen dwgname))
  14. (setq dwgname (substr dwgname 1 (- lendwg 4)))
  15. (repeat len
  16. (vlax-for lay (vla-get-Layouts (vla-get-activedocument (vlax-get-acad-object)))
  17. (if (= numlay (vla-get-taborder lay))
  18. (setvar "ctab" (vla-get-name lay))
  19. ) ; if
  20. (setq pdfname (strcat (getvar "dwgprefix")  dwgname "-" (getvar "ctab"))) ; no pdf directory saved same as dwg
  21. ) ; for
  22. (setq lay nil)
  23. (setvar "textfill" 1)
  24. (setvar "fillmode" 1)
  25.    (COMMAND "-PLOT"  "Y"  "" "adobe pdf"
  26.        "A3" "m" "LANDSCAPE"  "N"   "W"  "-6,-6" "807,560" "1=2"  "C"
  27.        "y" "EP Full Mono - NEW.ctb" "Y"        "n" "n" "n" pdfName "N" "y"
  28.    )
  29.    
  30. (setq numlay (+ numlay 1))
  31. ) ; end repeat
  32. ) ; defun
  33. (AH:pltlays)
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 10:03 , Processed in 0.557118 second(s), 70 queries .

© 2020-2025 乐筑天下

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