简易导出 PDF
本帖最后由 统一网名 于 2023-9-6 07:52 编辑代码是通过学习自己拼凑的,如果有侵权请联系删除。PDF 直接导出到桌面 xxxx 文件夹中。
配合 pdftk 软件和一个 bat 文件可以把导出的 PDF 文件直接合并,有人需要了我可以发上来。
谢谢大家支持,现在把 pdftk 和 bat 文件发上来,有啥问题了可以问我,pdffk 需要安装,
bat 文件和 lsp 文件放一起,还有这一行代码 :(command ".shell" "合并.bat|exit");运行批处理文件
要取消注释 ,
本帖最后由 qazxswk 于 2023-9-10 17:19 编辑
文件打印顺序,可以参考这个帖子http://bbs.mjtd.com/forum.php?mo ... 2%D3%A1%CB%B3%D0%F2
另外,文件名有点乱,我做了如下修改:
(setq en (ssget '((0 . "INSERT")(2 . "块名1,块名2,块名3"))));只选取图块
(if (= en nil)(exit))
(setq i 0)
(setq en (sort-se en 10 0 5 nil));顺序从左到右,再从上到下
(setq en (sort-se en 10 1 3 t))
(setq L 0);记录打印的次数
(repeat(sslength en)
(setq mz (rtos i));导出PDF的文件名。
(setq end (ssname en i))
(vla-getboundingbox(vlax-ename->vla-object end) 'minp 'maxp)
(setq p1 (vlax-safearray->list minp)p2 (vlax-safearray->list maxp) );获得包围框,左上角点 P1,右下角点P2
(setq x (abs (- (car p2) (car p1))))
(setq y (abs (- (cadr p2) (cadr p1))))
(if (> y x) (setq st "p") (setq st "l"));判断横向还是纵向,p纵向,l横向
(setq wenjian (strcat wj "\\" mz))
(dayinp1 p2 tufu wenjian)
(setq L (1+ L));记录打印的次数
(setq i (1+ i))
)
那个sort-se函数,在那个链接里。
本帖最后由 统一网名 于 2023-9-6 20:21 编辑
p-3-ianlcc 发表于 2023-9-6 08:56
请教一下,如果只是单纯想要导出pdf的话
没有要合并pdf的功能
是不是也要安装pdftk呢?
合并的话要 装 pdftk, 不合并可以下要以下代码
(setq f (open ls "w"))
(setq cs (list L));输出的是以表的形式
(princ cs f)
(close f)
(command ".shell" "合并.bat|exit");运行批处理文件
本帖最后由 统一网名 于 2023-9-6 09:59 编辑
烟盒迷唇 发表于 2023-9-6 09:39
我安装了pdftk也是不成功,和楼上这位一样,Windows11系统
lsp运行成功在xxxx 文件夹下会有 导出的pdf文件,xxx.txt 里存放的是 导出的 pdf 的数量,bat 根据这个数量来合并的,
1、如果有pdf文件和数量,有数量说明lsp运行成功,没有pdf 说明 lsp 没有运行成功。
2、如果没有合并成功应该是 pdftk 有问题,可以从网上下一个安装一下
我的系统 是 win7,cad是2020 本帖最后由 sowin 于 2023-9-5 21:21 编辑
支持,支持.楼主.bat也发上来啊 厉害的,不少人苦不能合并久已,fac工厂虚拟打印质量不好,秋枫啥的加上这个科技fac差不多就退场了。 谢谢楼主的分享!
这个实在是有需要,期待楼的分享!
另外,请问可以增加A1的尺寸吗? 能都发上来吗{:1_1:} 发来吧,太需要了 p-3-ianlcc 发表于 2023-9-6 00:24
谢谢楼主的分享!
这个实在是有需要,期待楼的分享!
另外,请问可以增加A1的尺寸吗?
加了A1的,因为我的打印机只支持A3、A4的纸张,所以A1和A2的实际打印出来是多大我并没有试过。
复合型人才,搞LSP兼BAT 高人,感谢分享 统一网名 发表于 2023-9-6 08:13
加了A1的,因为我的打印机只支持A3、A4的纸张,所以A1和A2的实际打印出来是多大我并没有试过。
感谢楼主的分享!
下载来试试看