Install
openclaw skills install @lgx281227231/cad2pdfopenclaw skills install @lgx281227231/cad2pdfCAD图纸发过来,一条命令出多页矢量PDF——自动按图框拆页、完整渲染填充/标注/中文。
\M+5CDE2 → "外",中文不乱码pip install ezdxf matplotlib --break-system-packages
# ODA File Converter
wget "https://www.opendesign.com/guestfiles/get?filename=ODAFileConverter_QT6_lnxX64_8.3dll_27.1.deb" -O /tmp/ODAFileConverter.deb
sudo dpkg -i /tmp/ODAFileConverter.deb
sudo apt-get install -y libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xkb1
# 中文字体
sudo apt-get install -y fonts-noto-cjk
# DXF转PDF
python3 scripts/dxf2pdf.py 图纸.dxf 输出.pdf
# 指定纸张和DPI
python3 scripts/dxf2pdf.py 图纸.dxf 输出.pdf --paper A3 --dpi 300
# DWG文件(自动先转DXF)
bash cad2pdf.sh 图纸.dwg 输出.pdf
bash cad2pdf.sh 图纸.dxf # 自动命名输出
bash cad2pdf.sh 图纸.dxf 输出.pdf --paper A2
--paper SIZE - 纸张大小:A0/A1/A2/A3/A4(默认A3,宽度固定,高度按图框比例自适应)--dpi N - 输出分辨率(默认300)输入DXF
↓
[预处理]
├─ MBCS解码: \M+XXXXX → GBK中文
├─ Unicode解码: \U+XXXX → 字符
├─ %%编码: %%c→Ø, %%d→°, %%p→±
├─ DIMENSION修复: insert(0,0) → 实际位置
├─ 字体替换: STXIHEI.SHX → Noto Sans CJK
└─ 圆圈编号补全: 空圆圈 → 自动编号
↓
[页面检测]
├─ 粉紫色图框(颜色6) → 主图页
└─ 实体聚集区域聚类 → 大样图页
↓
[ezdxf原生渲染]
├─ HATCH填充(完整保留)
├─ DIMENSION标注
├─ TEXT/MTEXT文字
├─ LINE/ARC/CIRCLE
└─ INSERT块引用
↓
[多页PDF输出]
├─ 宽度固定A3
├─ 高度按图框比例自适应
└─ 视图裁剪到图框范围
\M+编码)无法显示为中文名cad2pdf/
├── SKILL.md # 本文档
├── cad2pdf.sh # Shell封装(支持DWG/DXF)
└── scripts/
└── dxf2pdf.py # 核心Python脚本