乐筑天下

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

[编程交流] 合并打印lisp

[复制链接]

9

主题

23

帖子

14

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-5 23:45:17 | 显示全部楼层 |阅读模式
你好
 
我有2个lisp张贴在下面,一个用于打印pdf在纵向模式和另一个用于打印在横向模式。
 
是否可以将它们组合在一个lisp中。我的意思是,该程序可以自动检测选定对象(多段线)在纵向视图(210X297)或横向视图(297X210)中,并执行打印任务。
 
等待你有价值的回答。
 
 
  1. ; Batch plot using object in landscape mode a4 sheet
  2. (defun c:prl (/ ss mn mx)
  3. (setq num (getint "\nHow many plots to do ?:"))
  4. (repeat num
  5.      (vl-load-com)
  6.      (if (setq ss  (ssget "_:S:E" '((0 . "INSERT,LWPOLYLINE"))))
  7.          (progn
  8. (vla-getboundingbox (vlax-ename->vla-object (ssname ss 0)) 'mn'mx)
  9.     (command "-plot" "Y" "model" "ABXPDF Writer.pc3" "A4" "Millimeters" "Landscape" "Y" "Window" (trans (vlax-safearray->list mn) 0 1)
  10.         (trans (vlax-safearray->list mx) 0 1)
  11. "Fit" "0.00, 0.00" "Y" "monochrome.ctb" "Y" "Wireframe" "N" "N" "Y")
  12.                )
  13.          )
  14.      )
  15. )
  1. ; Batch plot using object in portrait mode a4 sheet
  2. (defun c:prp (/ ss mn mx)
  3. (setq num (getint "\nHow many plots to do ?:"))
  4. (repeat num
  5.      (vl-load-com)
  6.      (if (setq ss  (ssget "_:S:E" '((0 . "INSERT,LWPOLYLINE"))))
  7.          (progn
  8. (vla-getboundingbox (vlax-ename->vla-object (ssname ss 0)) 'mn'mx)
  9.     (command "-plot" "Y" "model" "ABXPDF Writer.pc3" "A4" "Millimeters" "Portrait" "N" "Window" (trans (vlax-safearray->list mn) 0 1)
  10.         (trans (vlax-safearray->list mx) 0 1)
  11. "Fit" "0.00, 0.00" "Y" "monochrome.ctb" "Y" "Wireframe" "N" "N" "Y")
  12.                )
  13.          )
  14.      )
  15. )
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-6 00:32:50 | 显示全部楼层
  1. ; Batch plot using object in landscape mode a4 sheet
  2. (defun prl ( mnp mxp / num )
  3. (setq num (getint "\nHow many plots to do ?: "))
  4. (repeat num
  5.    (command "-plot" "Y" "model" "ABXPDF Writer.pc3" "A4" "Millimeters" "Landscape" "Y" "Window" mnp mxp "Fit" "0.00, 0.00" "Y" "monochrome.ctb" "Y" "Wireframe" "N" "N" "Y")
  6. )
  7. )
  8. ; Batch plot using object in portrait mode a4 sheet
  9. (defun prp ( mnp mxp / num )
  10. (setq num (getint "\nHow many plots to do ?: "))
  11. (repeat num
  12.    (command "-plot" "Y" "model" "ABXPDF Writer.pc3" "A4" "Millimeters" "Portrait" "N" "Window" mnp mxp "Fit" "0.00, 0.00" "Y" "monochrome.ctb" "Y" "Wireframe" "N" "N" "Y")
  13. )
  14. )
  15. (defun c:pr ( / ss mn mx mnp mxp )
  16. (vl-load-com)
  17. (if (setq ss (ssget "_:S:E" '((0 . "INSERT,LWPOLYLINE"))))
  18.    (progn
  19.      (vla-getboundingbox (vlax-ename->vla-object (ssname ss 0)) 'mn 'mx)
  20.      (setq mnp (trans (vlax-safearray->list mn) 0 1))
  21.      (setq mxp (trans (vlax-safearray->list mx) 0 1))
  22.      (if (< (car (mapcar '- mxp mnp)) (cadr (mapcar '- mxp mnp)))
  23.        (prp mnp mxp)
  24.        (prl mnp mxp)
  25.      )
  26.    )
  27. )
  28. (princ)
  29. )

 
HTH,M.R。
回复

使用道具 举报

9

主题

23

帖子

14

银币

初来乍到

Rank: 1

铜币
45
发表于 2022-7-6 01:02:29 | 显示全部楼层
谢谢marko,你的代码适合我。
 
请删除这个“(setq num(getint“\n要做多少个绘图?:”)并将命令放入循环中,这样除非我们取消它,否则它不会结束吗?
 
我想知道,有没有其他的可能性,而不是一次选择一个对象,它可以选择多个对象,并保存在pdf的?
 
如果能做到这一点,我将非常感谢你的努力。
 
再次感谢。
 
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 21:21 , Processed in 0.786271 second(s), 69 queries .

© 2020-2025 乐筑天下

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