明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6398|回复: 29

[【高飞鸟】] PIA文件大师(已开源)

    [复制链接]
发表于 2024-3-10 18:13:31 | 显示全部楼层 |阅读模式
本帖最后由 highflybird 于 2024-3-15 01:07 编辑

拜读了 baitang36 这个帖子:【原创】用纯lisp实现打印任意尺寸pdf  以及 惊惊大侠的:cad.net 读写pc3,pmp打印机文件。为他们的钻研精神和高超技术叹服!
为了探索PIA文件的秘密,我花了一点时间,了解到一些知识,特此把我的一些研究发上来,以供大家探讨。
我这里说的PIA 文件指的是绘图仪配置文件 (从 文件--绘图仪管理器中下的目录可以找到它们,它们的格式一般是pc3. pmp,) ,或者是打印样式配置文件 (从 文件--打印样式管理器中下的目录可以找到它们,它们的格式一般是ctb. stb) ,这一类的文件头部是“PIAFILEVERSION_2.0,PC3VER1”,数据部分经过zlib压缩。

我用C++编写了一个程序,作为解析和生成PIA文件的小工具
程序在此:

现在我已经把此程序开源了!!!
源码:https://gitee.com/highflybird_highflybird/AnalysePC3.git
为了CAD版本的缘故,我采用了zlib-1.2.10 ,其实这个程序不用zlib库也可以完成的,AutoCAD自带 zlib.dll(名字可能不是这个),但一定有zlib库在里面。其中有部分代码来自LibrePIA,特此致谢!



本程序用法如图:


对于一些绘图仪,不能使用自定义图纸尺寸,譬如Adobe PDF, 那么我们用这个程序添加自定义的尺寸。
以Adobe PDF 为例:
1、首先生成它的PC3文件,如下图。如果已经有了,此步骤略过。



2、生成Adobe PDF的pmp文件,如下图。



3、然后在CAD打印的时候选择你添加的纸张即可。



这样,就可以实现各种打印机的自定义尺寸了。
以后有空做个批量打印的演示。




本帖子中包含更多资源

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

x

点评

感谢分享好工具!!! 因为不会c++, 能否在pia转文本时,自动在文本第一行加上“PIAFILEVERSION_2.0,PC3VER1” 能否做个命令行版本的,方便在lisp中直接调用修改片文件  发表于 2024-5-9 09:31

评分

参与人数 15明经币 +17 金钱 +230 收起 理由
edata + 1 + 50
magicheno + 1 很给力!
cghdy + 1 很给力!
baitang36 + 1 很给力!
bloodtempt + 1 感谢分享
cjrun + 1 + 50 山寨
jltx123456 + 1 神马都是浮云
言戲無軍 + 1 大师出手就是厉害,如果能用lisp发送命令自.
Gu_xl + 3 + 30 赞一个!
ptime + 1 很给力!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2024-3-11 04:52:56 | 显示全部楼层
紫苏炒黄瓜 发表于 2024-3-11 00:55
https://www.bilibili.com/video/BV18W421c7JA/?vd_source=2a29e2714123e0b492111083d6d8e911

虽然说 ...

但是这个功能成为我博客最高阅读量,说明了大家都喜欢,没有人想手动输入范围(嘻)
回复 支持 1 反对 0

使用道具 举报

发表于 2024-3-11 00:55:27 | 显示全部楼层
本帖最后由 紫苏炒黄瓜 于 2024-3-11 01:03 编辑


https://www.bilibili.com/video/B ... 0b492111083d6d8e911

虽然说以前搞这个也花了点时间,但自身经历来看,生成自定义尺寸纸张是加分项,但不是必须项。
因为绝大部分还是标准图幅,而标准图幅也就十多二十个,手工制作一个就行,以后也都能用。
回复 支持 1 反对 0

使用道具 举报

发表于 2024-3-23 14:14:11 | 显示全部楼层
用的福昕PDF软件的虚拟打印机,Foxit Reader PDF Printer.pmp,生成的文件最后面有一点乱码

media{
  size_max_x=320000.00000
  size_max_y=320000.00000
  size{
    0{
    caps_type=2
    name="UserDefinedMetric (420.00 x 297.00姣背)
    localized_name="鐢ㄦ埛1-420x297
    media_description_name="UserDefinedMetric 妯悜 420.00W x 297.00H - (0, 0) x (420.00, 297.00)=124740.00 姣背
    media_group=15
    landscape_mode=TRUE
   }
  }
  description{
    0{
    caps_type=2
    name="UserDefinedMetric 妯悜 420.00W x 297.00H - (0, 0) x (420.00, 297.00)=124740.00 姣背
发表于 2024-3-10 18:48:37 | 显示全部楼层
为你们的钻研精神和高超技术叹服!
发表于 2024-3-10 19:16:57 | 显示全部楼层
为你们的钻研精神和高超技术叹服!
发表于 2024-3-10 20:12:49 | 显示全部楼层
为大师的钻研精神和高超技术叹服!希望能给出实现方法
发表于 2024-3-10 20:13:58 | 显示全部楼层

为你们的钻研精神和高超技术叹服!
发表于 2024-3-10 20:19:39 | 显示全部楼层
为你们的钻研精神和高超技术叹服!
发表于 2024-3-10 20:30:54 | 显示全部楼层
高飞大神,有空了把批量打印的教程放出来,本来今天加了一天班,不打算在家开电脑,看到此贴,果断开机
发表于 2024-3-11 08:08:26 | 显示全部楼层
高人想的问题、干的活就是不一样。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-23 11:27 , Processed in 0.197151 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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