乐筑天下

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

[编程交流] 帮助我创建lisp to expo

[复制链接]

26

主题

210

帖子

184

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-6 04:20:04 | 显示全部楼层 |阅读模式
大家好
有人能帮我创建lisp,将多个DWG导出为单独的PDF,而不是通过我想从lisp中执行的发布命令吗
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 04:31:31 | 显示全部楼层
你需要两样东西:一个脚本和一个plot lisp
 
搜索这里有许多使用lisp进行多布局的绘图例程示例等搜索BIGAL+绘图
回复

使用道具 举报

6

主题

122

帖子

118

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 04:33:36 | 显示全部楼层
下面是使用script和script pro创建PDF的分解。
如果您有一个已经设置了打印到PDF的lisp例程,只需加载它并从脚本中运行它。
http://www.cadtutor.net/forum/showthread.php?76974-使用2013-Core-Console启动并运行&高亮显示=scriptpro
 
~格雷格
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 04:45:08 | 显示全部楼层
快速搜索在沼泽中找到了三个不同的例程,都在同一个线程中,用于通过lisp打印到PDF。
回复

使用道具 举报

26

主题

210

帖子

184

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-6 04:52:38 | 显示全部楼层
谢谢合作
我认为这是一件困难的事
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 04:56:35 | 显示全部楼层
我不一定同意你的意见。
 
您是否尝试过使用“DWG to PDF”+“lisp”作为搜索标准?
回复

使用道具 举报

26

主题

210

帖子

184

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-6 05:05:52 | 显示全部楼层
评论
谢谢,我会的
回复

使用道具 举报

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 05:10:05 | 显示全部楼层
Mostafa,你想打印多少DWG,以及获得它们的列表有多难/容易。它总是像某个项目一样的一组图形,还是每次都是动态的?我最近在一个项目中工作,我们需要将一个DWG的几页打印成一个PDF,这与您想要的相反,但也许我们的方法会奏效。事实上,我们确实使用了发布例程,我作弊了,并用LSP编写了一个DSD。您可以手动进行发布设置,保存该DSD,然后修改下面的代码以编写满足您需要的DSD。
 
  1. (defun c:PUBLISH_PDF ( / file ;file name for TEMP.DSD
  2.            OldFda ;system variable FILEDIA
  3.            pathtxt ;path where drawing is saved to write TEMP.DSD
  4.            nosheets ;number of PDF pages to print
  5.            *error* ;error trap
  6.            ) ;end variables
  7. (vl-load-com)
  8. (defun *error* ( msg )
  9.    (setvar "FILEDIA" OldFda) ;sets system variable FILEDIA back to original value
  10.    (setvar "EXPERT" Save_Expert) ;sets system variable EXPERT back to original value
  11.        (princ "error: ")
  12.        (princ msg)
  13.        (princ)
  14.    )
  15. (setvar "CTAB" "Layout1") ;changes to paperspace and tab named Layout1
  16. (setq OldFda (getvar "FILEDIA")) ;reads current system variable FILEDIA value
  17. (setvar "FILEDIA" 0) ;sets FILEDIA to 0 so no dialog boxes popup
  18. (setq Save_Expert (getvar "EXPERT")) ;reads current system variable EXPERT value
  19. (setvar "EXPERT" 2) ;sets EXPERT to 2 so no dialog boxes popup
  20. (command "._-PSETUPIN" "c:\\folder\\template.dwt" "*") ;imports all page setups from drawing template c:\folder\template.dwt
  21. (setvar "EXPERT" Save_Expert) ;sets system variable EXPERT back to original value
  22. (setq pathtxt (strcat (getvar "dwgprefix") "TEMP.DSD")) ;sets path for DSD file from current drawing saved location
  23. (setq file (open (strcat (getvar "dwgprefix") "TEMP.DSD") "w")) ;opens DSD file for writing
  24. ;I USED A SELECTION SET HERE TO PICK A BORDER IN PAPERSPACE TO RECOGNIZE HOW MANY PAGES TO PRINT
  25. ;YOU'll NEED YOUR WAY OF SELECTING YOUR MULTIPLE DRAWINGS
  26. ;**********START OF DSD FILE**********
  27. ;**********START HEADER**********
  28. (write-line "[DWF6Version]" file)
  29. (write-line "Ver=1" file)
  30. (write-line "[DWF6MinorVersion]" file)
  31. (write-line "MinorVer=1" file)
  32. ;**********END OF HEADER**********
  33. ;**********START OF LAYOUTS/DWG TO PLOT********** !!!repeat this section for each of your layouts or dwgs to plot
  34. (write-line "[DWF6Sheet:PDF Sheet 1]" file)
  35. (write-line (strcat "DWG=" (getvar "dwgprefix")(substr (getvar "dwgname") 1 (- (strlen (getvar "dwgname")) 4)) ".dwg")file)
  36. (write-line "Layout=Layout1" file) ;layout to plot
  37. (write-line "Setup=Sheet_1" file) ;page setup name to use
  38. (write-line (strcat "OriginalSheetPath=" (strcat(getvar "dwgprefix")(substr (getvar "dwgname") 1 (- (strlen (getvar "dwgname")) 4))".dwg") )file)
  39. (write-line "Has Plot Port=0" file)
  40. (write-line "Has3DDWF=0" file)
  41. ;**********END OF 'ONE' LAYOUT TO PLOT********** !!!repeat previous section for each of your layouts or dwgs to plot
  42. ;**********START OF DSD FOOTER**********
  43. (write-line "[Target]" file)
  44. (write-line "Type=6" file) ;change to "TYPE=5" for multiple output files, "TYPE=6" for single output file
  45. (write-line (strcat "DWF=" (strcat(getvar "dwgprefix")(substr (getvar "dwgname") 1 (- (strlen (getvar "dwgname")) 4))".pdf") )file)
  46. (write-line (strcat "OUT="(strcat(getvar "dwgprefix")  )) file)
  47. (write-line "PWD=" file)
  48. ;**********END OF DSD FOOTER**********
  49. ;**********END OF DSD FILE**********
  50. (close file) ;closes DSD file
  51. (command "_.delay" 2000) ;system delay before starting publish command so DSD file closes
  52. (command "-Publish" pathtxt ) ;start publish command with TEMP.DSD file just created
  53. (setvar "FILEDIA" OldFda) ;sets system variable FILEDIA back to original value
  54. (command "_.delay" 2000) ;system delay before deleting TEMP.DSD so publish routine has time to release it
  55. (vl-file-delete pathtxt) ;deletes TEMP.DSD file
  56. ;  (startapp "explorer /e," (getvar "dwgprefix")) ;comment out this line if you don't want file explorer to open with PDF location
  57. (princ)
  58. );defun

 
希望这能为你指明正确的方向。我很快就会发布一篇帖子,询问如何优化我的代码,因为我的选择集例程(这里没有显示)效率很低。
 
~霍维兹
回复

使用道具 举报

26

主题

210

帖子

184

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-6 05:17:44 | 显示全部楼层
谢谢你好
我将尝试代码并告诉你结果
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 05:26:03 | 显示全部楼层
另一个例子http://www.cadtutor.net/forum/showthread.php?69132-正在打印LISP帮助&高亮显示=打印LISP
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 18:34 , Processed in 0.392776 second(s), 72 queries .

© 2020-2025 乐筑天下

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