name: dxf-engineering description: "图片转DXF工程图生成器。用户发来工程图片,自动提取参数,生成带尺寸标注的预览供确认,确认后生成1:1 DXF文件,再去除标注生成纯净版。触发词:DXF、工程图、dxf、转DXF、生成工程图、图片转DXF、CAD文件。" description_zh: "图片转DXF工程图生成器" description_en: "Image to DXF Engineering Drawing Generator" version: 1.0.0
从工程图片自动生成 DXF 文件。支持矩形、圆形、多边形、槽孔、圆弧等常见机械零件图形。
完整流程分为 5 个阶段:
--preview)根据用户反馈修正参数: - 调整尺寸数值 - 增减孔/槽等特征 - 修改位置/角度 - 修正单位(mm/inch)
scripts/generate_dxf.py 生成完整 DXF--preview 生成最终预览scripts/clean_dxf.py 去除所有标注、中心线、文字# 从参数 JSON 生成 DXF
python scripts/generate_dxf.py --params params.json --output output.dxf
# 同时生成预览图
python scripts/generate_dxf.py --params params.json --output output.dxf --preview
# 直接生成纯净版(无标注)
python scripts/generate_dxf.py --params params.json --output output.dxf --clean
参数 JSON 格式:
{
"title": "零件名称",
"drawing_number": "DWG-001",
"material": "Steel 304",
"scale": "1:1",
"shapes": [
{"type": "rectangle", "x": 0, "y": 0, "width": 100, "height": 50, "layer": "OUTLINE"},
{"type": "circle", "cx": 25, "cy": 25, "radius": 5, "layer": "HOLE"},
{"type": "slot", "cx": 75, "cy": 25, "length": 20, "width": 8, "angle": 0, "layer": "HOLE"},
{"type": "arc", "cx": 50, "cy": 0, "radius": 50, "start_angle": 0, "end_angle": 180, "layer": "OUTLINE"}
],
"dimensions": [
{"type": "linear", "p1": [0, 0], "p2": [100, 0], "offset": 10, "text": "100"},
{"type": "diameter", "center": [25, 25], "radius": 5, "text": "10"}
],
"settings": {
"unit": "mm",
"line_width": 1.0
}
}
支持的图形类型:
| 类型 | 必填参数 | 可选参数 |
|---|---|---|
rectangle |
x, y, width, height | angle, layer |
circle |
cx, cy, radius | layer |
polygon |
points (数组 [[x,y],...]) | layer, closed |
slot |
cx, cy, length, width | angle, layer |
arc |
cx, cy, radius, start_angle, end_angle | layer |
line |
x1, y1, x2, y2 | layer |
支持的标注类型:
| 类型 | 必填参数 | 说明 |
|---|---|---|
linear |
p1, p2 | 线性尺寸 |
diameter |
center, radius | 直径标注(自动加%%C前缀) |
radius |
center, radius | 半径标注(自动加R前缀) |
# 去除标注,只保留轮廓
python scripts/clean_dxf.py input.dxf output_clean.dxf
保留的图层: 0, OUTLINE, INNER, HOLE 删除的图层: DIMENSION, CENTER, TEXT, HIDDEN
# 查看可用模板
python scripts/extract_params.py --list-templates
# 从模板生成参数文件
python scripts/extract_params.py --template plate_with_holes --output params.json
# 验证已有参数文件
python scripts/extract_params.py --validate params.json
可用模板:
- rectangular_plate - 矩形板
- plate_with_holes - 带孔板
- flanged_part - 法兰件
| 图层 | 颜色 | 线型 | 线宽 | 用途 |
|---|---|---|---|---|
| 0 | 白(7) | 实线 | 1.0 | 默认轮廓 |
| OUTLINE | 白(7) | 实线 | 1.0 | 外轮廓 |
| INNER | 白(7) | 实线 | 0.5 | 内轮廓 |
| HOLE | 白(7) | 实线 | 0.5 | 孔 |
| CENTER | 红(1) | 中心线 | 0.18 | 中心线(纯净版删除) |
| DIMENSION | 绿(3) | 实线 | 0.18 | 标注(纯净版删除) |
| TEXT | 白(7) | 实线 | 0.25 | 文字(纯净版删除) |
运行脚本前需确保安装以下 Python 依赖:
pip install ezdxf matplotlib
文档写得非常详细,看起来功能很完善,但实际只有一个说明文件,没有可以运行的程序代码。对于普通用户来说,这是一个"看起来很美但用不了"的 Skill,需要开发者补充完整的代码才能真正使用。