乐筑天下

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

[编程交流] 正在打印LISP帮助。。。

[复制链接]

12

主题

31

帖子

19

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-6 07:56:27 | 显示全部楼层 |阅读模式
我需要帮助写一些例程。。。
我真的不知道从哪里开始,但下面是我需要的:
 
而不是执行典型的打印例程(键入plot,选择plotter,选择纸张大小,选择笔设置,选择比例,最后打印)
我想能够只键入几个字母,并得到相同的结果。。。因此节省时间。
 
如果我在图纸空间中,标题栏位于0,0。。。我希望能够键入以下内容并获得列出的结果:
 
30x42绘图页
PDF11:使用正确的笔设置创建11x17 PDF,并将文件保存到桌面上名为PDF的预定文件夹中
 
PDF30:使用正确的笔设置创建全尺寸PDF,并将文件保存到桌面上名为PDF的预定文件夹中
 
PDF8:使用正确的笔设置创建8 1/2x11 PDF,并将文件保存到桌面上名为PDF的预定文件夹中
 
24x36绘图页
PDF2411:使用正确的笔设置创建11x17 PDF,并将文件保存到桌面上名为PDF的预定文件夹中
 
PDF24:使用正确的笔设置创建全尺寸PDF,并将文件保存到桌面上名为PDF的预定文件夹中
 
PDF248:使用正确的笔设置创建8 1/2x11 PDF,并将文件保存到桌面上名为PDF的预定文件夹中
 
 
我知道我要求很多。。。任何帮助都将不胜感激。
 
提前感谢!
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 08:01:20 | 显示全部楼层
下面是一个代码示例。
 
 
  1. ; plotpdf2 ver 2 with filename and directory as output oct 2011
  2. (PROMPT ".....PRINTING DRAWING TO pdf's....")
  3. (setvar "cmddia" 0)
  4. (setvar "filedia" 0)
  5. (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  6. (vlax-for lay (vla-get-Layouts doc)
  7. (setq plotabs (cons (vla-get-name lay) plotabs))
  8. )
  9. (setq dwgname (GETVAR "dwgname"))
  10. (setq len (strlen dwgname))
  11. (setq dwgname (substr dwgname 1 (- len 4)))
  12. (setq plottablist (acad_strlsort plotabs))
  13. (setq len (length plottablist))
  14. (setq x 0)
  15. (repeat len
  16. (setq name (nth x plottablist))
  17. (princ name)
  18. (setq pdfname (strcat (getvar "dwgprefix") dwgname "-" name))
  19. (if (/= name "Model")
  20.    (progn
  21.      (setvar "ctab" name)
  22.      
  23.      (COMMAND "-PLOT"  "Y"  "" "dwg to Pdf"
  24.        "Iso full bleed A3 (420.00 x 297.00 MM)" "m"    "LANDSCAPE"  "N"   "W"  "-6,-6"    "807,560" "1=2"  "C"
  25.        "y"   "Designlasercolour.ctb" "Y" "n"    "n"    "n"   pdfName "N" "y"      )
  26.    )
  27. )
  28. (setq x (+ x 1))
  29. )
  30. (setvar "cmddia" 1)
  31. (setvar "filedia" 1)
  32. (setq DWGNAME nil
  33.      LEN nil
  34.      NAME nil
  35.      PLOTTABLIST nil)
  36. (princ)
回复

使用道具 举报

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-6 08:03:48 | 显示全部楼层
嗨,Bigal,这个例程在哪里存储pdf。我找不到它们。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 08:08:28 | 显示全部楼层
 
看看这个。。。。
  1. (getvar "dwgprefix")
回复

使用道具 举报

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-6 08:11:28 | 显示全部楼层
Tharwat,你是否建议将它们存储在与图纸相同的文件夹中?但我创建了一个新文件夹,将绘图保存在那里并运行了它,但没有任何乐趣。这是我使用的修改后的lisp。
 
  1. ; plotpdf2 ver 2 with filename and directory as output oct 2011
  2. ; from Bigal
  3. (defun c:A3_dwg_pdf ()  
  4. (if (findfile "T:/Drawing Tools/Templates/CCC2009.dwt")
  5.    (progn
  6.      (command "_.psetupin" (findfile "T:/Drawing Tools/Templates/CCC2009.dwt") "A3-dwg-pdf")
  7.      (while (wcmatch (getvar "cmdnames") "*PSETUPIN*")
  8.        (command "_yes")
  9.      ) ;_ while
  10.      T
  11.    ) ;_ progn
  12. ) ;_ if
  13. (PROMPT ".....PRINTING DRAWING TO pdf's....")
  14. (setvar "cmddia" 0)
  15. (setvar "filedia" 0)
  16. (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  17. (vlax-for lay (vla-get-Layouts doc)
  18. (setq plotabs (cons (vla-get-name lay) plotabs))
  19. )
  20. (setq dwgname (GETVAR "dwgname"))
  21. (setq len (strlen dwgname))
  22. (setq dwgname (substr dwgname 1 (- len 4)))
  23. (setq plottablist (acad_strlsort plotabs))
  24. (setq len (length plottablist))
  25. (setq x 0)
  26. (repeat len
  27. (setq name (nth x plottablist))
  28. (princ name)
  29. (setq pdfname (strcat (getvar "dwgprefix") dwgname "-" name))
  30. (if (/= name "Model")
  31.    (progn
  32.      (setvar "ctab" name)
  33.      
  34. (command "-plot" "n" "" "A3-dwg-pdf" "" "n" "y" "y")
  35.    )
  36. )
  37. (setq x (+ x 1))
  38. )
  39. (setvar "cmddia" 1)
  40. (setvar "filedia" 1)
  41. (setq DWGNAME nil
  42.      LEN nil
  43.      NAME nil
  44.      PLOTTABLIST nil)
  45. (princ)
  46. )
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 08:13:34 | 显示全部楼层
 
我不是在暗示,但这就是系统变量的作用。
回复

使用道具 举报

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-6 08:17:46 | 显示全部楼层
Tharwat,我已经从plot命令中删除了pdfname变量。
 
谢谢
回复

使用道具 举报

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-6 08:22:41 | 显示全部楼层
我已经安装了cutepdf打印机,正在使用lisp打印图形的pdf副本。这已经运行了几年,没有出现任何问题。我接受了Bigal上面提供的代码,并对其进行了修改,以创建pdf的批处理图。我遇到的问题是,“dwg到pdf”中的纸张大小不允许我们的图纸适合页面,即使它使用可爱的pdf。我修改了“dwg到pdf”以包含我们的论文,与可爱的打印机一样,现在它打印得很好,但它就像每个布局重复打印大约5到6次,然后进入循环,我必须退出它。
 
有人能看看我哪里出错了吗?谢谢
 
  1. ; plotpdf2 ver 2 with filename and directory as output oct 2011
  2. ; from Bigal
  3. (defun c:A3_dwg_pdf ()  
  4. (if (findfile "T:/Drawing Tools/Templates/CCC2009.dwt")
  5.    (progn
  6.      (command "_.psetupin" (findfile "T:/Drawing Tools/Templates/CCC2009.dwt") "A1")
  7.      (while (wcmatch (getvar "cmdnames") "*PSETUPIN*")
  8.        (command "_yes")
  9.      ) ;_ while
  10.      T
  11.    ) ;_ progn
  12. ) ;_ if
  13. (PROMPT ".....PRINTING DRAWING TO pdf's....")
  14. (setvar "cmddia" 0)
  15. (setvar "filedia" 0)
  16. (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  17. (vlax-for lay (vla-get-Layouts doc)
  18. (setq plotabs (cons (vla-get-name lay) plotabs))
  19. )
  20. (setq dwgname (GETVAR "dwgname"))
  21. (setq len (strlen dwgname))
  22. (setq dwgname (substr dwgname 1 (- len 4)))
  23. (setq plottablist (acad_strlsort plotabs))
  24. (setq len (length plottablist))
  25. (setq x 0)
  26. (repeat len
  27. (setq name (nth x plottablist))
  28. (princ name)
  29. (setq pdfname (strcat (getvar "dwgprefix") dwgname "-" name))
  30. (if (/= name "Model")
  31.    (progn
  32.      (setvar "ctab" name)
  33.      
  34. (command "-plot" "y" "" "dwg to pdf" "A3" "m" "Landscape" "n" "Layout" "1=2" "0,0" "n" "." "y" "n" "n" "n" pdfname "n" "y")
  35.    )
  36. )
  37. (setq x (+ x 1))
  38. )
  39. (setvar "cmddia" 1)
  40. (setvar "filedia" 1)
  41. (setq DWGNAME nil
  42.      LEN nil
  43.      NAME nil
  44.      PLOTTABLIST nil)
  45. (princ)
  46. )

 
添加了文件:
dwg到pdf。拉链
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 08:24:16 | 显示全部楼层
我不是专家,我会看一下这段代码,也许放一条虚线来测试它唯一的地方,我可以看到在旧代码之外的循环,它可以正常工作
 
  1. (setq x 1)
  2. (while (wcmatch (getvar "cmdnames") "*PSETUPIN*")
  3.        (command "_yes")
  4. (princ x)(setq x (+ x 1))
  5.      ) ;_ while
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 08:28:07 | 显示全部楼层
有了这个(setvar’Expert 5),你可以摆脱它
 
  1. (while (wcmatch (getvar "cmdnames") "*PSETUPIN*")
  2.        (command "_yes")
  3.      )

 
并改用:
 
  1. (if (setq dwtfile (findfile "T:/Drawing Tools/Templates/CCC2009.dwt"))
  2.    (progn
  3.      (command "_.psetupin" dwtfile "A1")
  4.      .....
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 21:18 , Processed in 0.551636 second(s), 72 queries .

© 2020-2025 乐筑天下

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