# drawing-generation **Repository Path**: challenge-the-world/drawing-generation ## Basic Information - **Project Name**: drawing-generation - **Description**: 图纸生成项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-12 - **Last Updated**: 2026-06-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Drawing Generation 本仓库用于验证 STEP/SolidWorks 工程图三视图生成流程。 ## Phase 0:STEP 三视图 CAD Spike 目标:先验证 STEP/AP242 单零件是否能稳定生成主视图、左视图、俯视图、诊断 JSON 和评审报告,再决定是否进入 Web/API 阶段。 ### 环境要求 - Python 3.11+ - pytest - FreeCAD,需能运行 `FreeCADCmd` 如果 `FreeCADCmd` 不在 PATH 中,可以设置环境变量: ```powershell $env:FREECADCMD="C:\Program Files\FreeCAD 1.0\bin\FreeCADCmd.exe" ``` ### 安装开发依赖 ```powershell python -m pip install -e .[dev] ``` ### 检查环境 ```powershell python -m cad_worker.cli check-env ``` ### 准备样件 复制示例清单: ```powershell Copy-Item packages/cad-fixtures/manifest.example.json packages/cad-fixtures/manifest.local.json ``` 把真实 STEP 文件放入: ```text packages/cad-fixtures/private/ ``` 然后修改 `manifest.local.json` 中的 `source_file`、导出设置和验收标准。 ### 校验样件清单 ```powershell python -m cad_worker.cli validate-fixtures packages/cad-fixtures/manifest.local.json ``` ### 处理单个样件 ```powershell python -m cad_worker.cli process-fixture packages/cad-fixtures/manifest.local.json sample-bracket ``` ### 批量处理样件 ```powershell python -m cad_worker.cli process-fixtures packages/cad-fixtures/manifest.local.json ``` 输出目录默认在: ```text artifacts/cad-worker/ ``` 每个样件会生成: - `diagnostic.json` - `review.md` - `front.svg` - `left.svg` - `top.svg` - `sheet.svg` - `sheet.pdf` - `sheet.html` ### 测试 ```powershell python -m pytest tests/cad_worker -v ``` ## Docker Compose:Linux CAD Worker 环境 最终交付时,用户电脑不需要安装 FreeCAD。FreeCAD 运行在服务端 Linux worker 容器里,用户只通过 Web 系统上传文件。 本仓库提供了本地 compose 环境用于验证这个部署形态: ```powershell docker compose build cad-worker docker compose run --rm cad-worker ``` 默认命令会运行: ```bash python -m cad_worker.cli check-env ``` 如果容器内 FreeCAD 安装正常,应看到 `status_code` 为 `OK`。 准备好 `packages/cad-fixtures/manifest.local.json` 和真实 STEP 文件后,可以在容器内批量处理: ```powershell docker compose run --rm cad-worker python -m cad_worker.cli validate-fixtures packages/cad-fixtures/manifest.local.json docker compose run --rm cad-worker python -m cad_worker.cli process-fixtures packages/cad-fixtures/manifest.local.json ``` compose 会挂载: - `./packages/cad-fixtures` 到容器的 `/workspace/packages/cad-fixtures` - `./artifacts` 到容器的 `/workspace/artifacts` 处理结果会落到本机 `artifacts/cad-worker/`,不会要求用户电脑安装 FreeCAD。 先准备样件清单: cp packages/cad-fixtures/manifest.example.json packages/cad-fixtures/manifest.local.json 把真实 STEP 文件放到: packages/cad-fixtures/private/ 然后编辑: packages/cad-fixtures/manifest.local.json 确认里面的 source_file 指向你的 STEP 文件。 再用容器校验清单: docker compose run --rm cad-worker python -m cad_worker.cli validate-fixtures packages/cad-fixtures/manifest.local.json 处理样件: docker compose run --rm cad-worker python -m cad_worker.cli process-fixtures packages/cad-fixtures/manifest.local.json 结果会输出到服务器当前项目目录下: artifacts/cad-worker/ ## Phase 1:Web Demo(路线 A) 路线 A 的目标是先提供一个可本地运行的 Web Demo:用户上传 STEP/STP 文件,Web 服务创建作业,CAD worker 生成三视图,页面预览 `sheet.svg`,并提供 `sheet.pdf`、`sheet.svg`、`sheet.html`、`diagnostic.json`、`review.md` 下载。 第一版支持: - 上传 `.step` / `.stp` 单零件文件。 - 通过 Web 页面创建生成作业。 - 由 CAD worker 生成主视图、左视图、俯视图和工程图预览。 - 在线预览 `sheet.svg`。 - 下载 `sheet.pdf`、`sheet.svg`、`sheet.html`、`diagnostic.json`、`review.md`。 第一版不支持: - 第一版不导出 .slddrw。 - 不编辑 SolidWorks 原生工程图模板。 - 不支持装配体 BOM、复杂剖视图和尺寸标注自动补全。 - 不保证所有 STEP 几何都能通过首版规则生成可交付图纸。 启动 Web Demo: ```powershell docker compose build web docker compose up web ``` 访问地址: ```text http://localhost:8000 ``` Web 作业结果目录: ```text artifacts/web/jobs/ ```