lisp源码:生成任意尺寸的pdf纸张
本帖最后由 陨落 于 2024-3-19 21:58 编辑根据baitang36老师的帖子:http://bbs.mjtd.com/thread-189458-1-1.html
以及帖子下各位大神(如mj000,直接大白话讲出了实现这个功能的原理)的讨论,我写出了生成任意尺寸pdf纸张的lisp程序。纯lisp源码
包含两个函数:pc3_add_pdfsize----生成pc3和与其绑定的pmp文件,其中包含自定义的图纸尺寸和名称
pmp_add_picsize-----生成pmp文件,其中包含自定义的图纸尺寸和名称
在写批量打印程序的时候,有了这两个函数,就可以随心所欲地添加自定义尺寸了
;;感谢 baitang36 陨落 mj000 等等大神,我做个实际使用的例子。
本帖最后由 wudechao 于 2024-6-24 23:19 编辑
把2008的custom分离出来,单独加载,终于解决了cad2008,2009崩溃问题(cad2007崩溃,无法找到崩溃原因,且使用的人太少,故放弃支持)。完美收官之作。cad2011无法测试,只测试了cad2008,cad2009,cad2010,cad2012,cad2016,cad2017,cad2020,cad2022,cad2024,cad2025. xinxirong 发表于 2024-3-20 10:55
这个pmp pc3不需要zip压缩一下?
妙就妙在这里,根本不需要压缩。。这就是baitang36和mj000两位高手公布出来的秘密。 本帖最后由 kucha007 于 2024-3-21 21:40 编辑
感谢大佬分享,梳理了一遍代码
rtos会受到DIMZIN的影响,做了点调整。
感觉生成PMP改一下就可以生成多个图纸了~
这分享奉献精神就很棒 本帖最后由 你有种再说一遍 于 2024-3-20 16:20 编辑
其实不光是这样打印,而是全程自动化,
首先要制作标准目录,标准图框(可拉伸,但是块名要有共同前缀),然后标准图签(字段),制作它们是为了好搜索,达到O(1)时间复杂度.
然后发送给服务器,
服务器自动创建多个cad进程进行切割任务,
然后会进入最后一次校验目录和图签是否对应(是否一个图框内存在多个图签,是否和目录不匹配等等),
再开图纸,乱序单张打印,因为图名是PDF名,完成后通过目录序号合并PDF,
服务器再根据配置自动发送PDF附件到邮箱,给自己和他人检查,
服务器邮箱等待回复,通过回复指定编号的打印机,进行纸张打印...
小小一个打印就可以降低人力检查图签和目录不一致的情况.
然后你又想检查平立剖的面号剖号...
可以制作一个json存储一个map用来校验.
选中图纸图签,右键新建索引,产生一个可超链接的图块.
这样简化了超链接的使用,重点是出图时候校验索引是否存在断开冲突...
所以还需要什么个图纸集...
万物皆可校验...
越做越大...
逃...
感谢分享感谢分享感谢分享 本帖最后由 wudechao 于 2024-3-20 08:36 编辑
感谢分享,如果用cad默认pc3和pmp目录,可以改为如下。
(defun c:tt ()
(setq wid (getdist "\n输入宽度")
hit (getdist "\n 输入高度")
)
(princ (strcat (rtos wid 2 2) " x " (rtos hit 2 2)))
(setq path-rootfolder (vl-registry-read (strcat "HKEY_CURRENT_USER\\" (vlax-product-key)) "RoamableRootFolder"))
(setq path-pc3 (strcat path-rootfolder "Plotters\\"))
(setq path-pmp (strcat path-pc3 "PMP Files\\"))
(setq pmp-name (strcat path-pmp "zpdf.pmp"))
(setq pc3-name (strcat path-pc3 "zpdf.pc3"))
(pc3_add_pdfsize pmp-name "mysize123" wid hit pc3-name)
)
厉害,佩服楼主的钻研精神,原来不一定非要解密再加密,直接明码就行。 本帖最后由 sandyvs 于 2024-3-20 10:34 编辑
感谢各位大神!话说怎么增加像素尺寸?就是要打印成图片 富有且慷慨 这个pmp pc3不需要zip压缩一下?