明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2285|回复: 45

[经验] lisp源码:生成任意尺寸的pdf纸张

  [复制链接]
发表于 2024-3-19 21:54 | 显示全部楼层 |阅读模式
本帖最后由 陨落 于 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文件,其中包含自定义的图纸尺寸和名称
在写批量打印程序的时候,有了这两个函数,就可以随心所欲地添加自定义尺寸了





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 16明经币 +15 金钱 +180 收起 理由
edata + 1 + 50 神马都是浮云
伪书虫86 + 1 很给力!
jh1005 + 1 很给力!
言戲無軍 + 1 很给力!
baitang36 + 1 很给力!
masterlong + 1 + 50 先评分再下载
叮咚 + 1 很给力!
magicheno + 1 很给力!
Bao_lai + 1 神马都是浮云
sandyvs + 1 很给力!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2024-3-21 09:40 | 显示全部楼层
;;感谢 baitang36 陨落 mj000 等等大神,我做个实际使用的例子。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 2 反对 0

使用道具 举报

发表于 2024-3-20 23:35 | 显示全部楼层
本帖最后由 kucha007 于 2024-3-21 21:40 编辑

感谢大佬分享,梳理了一遍代码
rtos会受到DIMZIN的影响,做了点调整。
感觉生成PMP改一下就可以生成多个图纸了~


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 1 反对 0

使用道具 举报

发表于 2024-3-22 12:56 | 显示全部楼层
sandyvs 发表于 2024-3-22 09:09
看27楼,一个是桌面文件夹的位置,一个是打印机配置搜索路径只保留默认那一个

我改成下面的样子,cad2020、2024依然是提示“错误:发生意外。”


                        ;;临时截图放在桌面,方便取用
;                        (vla-plottofile plot (strcat (getenv "UserProfile") "\\Desktop\\临时截图.png"))   ;截图保存至C:\Users\Administrator\Desktop\临时截图.png
                        (vla-plottofile plot (strcat (vla-item (vlax-get (vlax-create-object "WScript.Shell" ) 'SpecialFolders) "Desktop") "\\临时截图.png"))   ;截图保存至D:\Personal\Desktop\临时截图.png
                        (if (and pc3fname (setq pc3fname (findfile pc3fname)))
                                (vl-file-delete pc3fname)
                        )
                        (if (and pmpfname (setq pmpfname (findfile pmpfname)))
                                (vl-file-delete pmpfname)
                        )
发表于 2024-3-19 22:31 | 显示全部楼层
这分享奉献精神就很棒
发表于 2024-3-20 00:17 | 显示全部楼层
本帖最后由 你有种再说一遍 于 2024-3-20 16:20 编辑

其实不光是这样打印,而是全程自动化,
首先要制作标准目录,标准图框(可拉伸,但是块名要有共同前缀),然后标准图签(字段),制作它们是为了好搜索,达到O(1)时间复杂度.


然后发送给服务器,
服务器自动创建多个cad进程进行切割任务,
然后会进入最后一次校验目录和图签是否对应(是否一个图框内存在多个图签,是否和目录不匹配等等),
再开图纸,乱序单张打印,因为图名是PDF名,完成后通过目录序号合并PDF,
服务器再根据配置自动发送PDF附件到邮箱,给自己和他人检查,
服务器邮箱等待回复,通过回复指定编号的打印机,进行纸张打印...

小小一个打印就可以降低人力检查图签和目录不一致的情况.


然后你又想检查平立剖的面号剖号...
可以制作一个json存储一个map用来校验.
选中图纸图签,右键新建索引,产生一个可超链接的图块.
这样简化了超链接的使用,重点是出图时候校验索引是否存在断开冲突...

所以还需要什么个图纸集...
万物皆可校验...
越做越大...
逃...
发表于 2024-3-20 07:55 | 显示全部楼层
感谢分享感谢分享感谢分享
发表于 2024-3-20 08:13 | 显示全部楼层
本帖最后由 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)
)


发表于 2024-3-20 08:40 | 显示全部楼层
厉害,佩服楼主的钻研精神,原来不一定非要解密再加密,直接明码就行。
发表于 2024-3-20 08:42 | 显示全部楼层
本帖最后由 sandyvs 于 2024-3-20 10:34 编辑

感谢各位大神!话说怎么增加像素尺寸?就是要打印成图片
发表于 2024-3-20 09:18 | 显示全部楼层
富有且慷慨
发表于 2024-3-20 10:55 | 显示全部楼层
这个pmp pc3不需要zip压缩一下?
 楼主| 发表于 2024-3-20 11:31 | 显示全部楼层
xinxirong 发表于 2024-3-20 10:55
这个pmp pc3不需要zip压缩一下?

妙就妙在这里,根本不需要压缩。。这就是baitang36和mj000两位高手公布出来的秘密。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-27 20:33 , Processed in 0.576259 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表