{"id":"13897320-9d75-4791-a3ca-e3a7dca014c5","entityType":"agent","slug":"clawhub-boboy-j-engineering-drawing-parser","name":"engineering-drawing-parser","canonicalUrl":"https://www.xpersona.co/agent/clawhub-boboy-j-engineering-drawing-parser","canonicalPath":"/agent/clawhub-boboy-j-engineering-drawing-parser","generatedAt":"2026-10-11T01:45:47.740Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T23:26:49.501Z","emptyReason":null},"description":"EN: Extract structured information from engineering drawings — mechanical 2D drafts, P&IDs, electrical schematics, construction architectural/structural draw... Skill: engineering-drawing-parser Owner: boboy-j Summary: EN: Extract structured information from engineering drawings — mechanical 2D drafts, P&IDs, electrical schematics, construction architectural/structural draw... Tags: latest:1.0.0 Version history: v1.0.0 | 2026-05-26T17:42:23.327Z | user Initial release of Engineering Drawing Parser. - Extracts structured data (BOM, dimensions, tolerances, title block, symbol","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.2K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s17ckg9br2p4k5kx6cr8fc4jz5852pah:engineering-drawing-parser","sourceUrl":"https://clawhub.ai/boboy-j/engineering-drawing-parser","homepage":"https://clawhub.ai/boboy-j/skills/engineering-drawing-parser","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/boboy-j/engineering-drawing-parser","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/boboy-j/skills/engineering-drawing-parser","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":62,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"EN: Extract structured information from engineering drawings — mechanical 2D drafts, P&IDs, electrical schematics, construction architectural/structural draw..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T23:26:49.501Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T23:26:49.501Z","emptyReason":null},"stars":null,"forks":null,"downloads":1230,"packageName":null,"latestVersion":"1.0.0","tractionLabel":"1.2K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T23:26:49.436Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T23:26:49.501Z","lastCrawledAt":"2026-10-10T23:26:49.436Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T23:26:49.436Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.0","createdAt":"2026-05-26T17:42:23.327Z","changelog":"Initial release of Engineering Drawing Parser. - Extracts structured data (BOM, dimensions, tolerances, title block, symbol inventory) from mechanical, P&ID, electrical, and architectural/structural engineering drawings. - Supports input formats: DWG, DXF, PDF (vector or scanned), and common image types. - Delivers machine-readable outputs (JSON, XLSX, CSV), each item traceable to original drawing coordinates. - Features region segmentation, title block/BOM/dimension/symbol extraction, and cross-reference resolution. - Includes confidence scoring and safety measures (local processing, no design inference, IP protection). - Ready-to-use pipeline scripts and batch processing tools with multilingual prompt triggers.","fileCount":15,"zipByteSize":13851}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17ckg9br2p4k5kx6cr8fc4jz5852pah:engineering-drawing-parser","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-boboy-j-engineering-drawing-parser/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-boboy-j-engineering-drawing-parser/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-boboy-j-engineering-drawing-parser/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-boboy-j-engineering-drawing-parser/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-boboy-j-engineering-drawing-parser/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-boboy-j-engineering-drawing-parser/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T01:45:47.739Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-boboy-j-engineering-drawing-parser/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-boboy-j-engineering-drawing-parser/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-boboy-j-engineering-drawing-parser/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-boboy-j-engineering-drawing-parser/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-10T23:26:49.501Z","emptyReason":null},"readme":"Skill: engineering-drawing-parser\n\nOwner: boboy-j\n\nSummary: EN: Extract structured information from engineering drawings — mechanical 2D drafts, P&IDs, electrical schematics, construction architectural/structural draw...\n\nTags: latest:1.0.0\n\nVersion history:\n\nv1.0.0 | 2026-05-26T17:42:23.327Z | user\n\nInitial release of Engineering Drawing Parser.\n\n- Extracts structured data (BOM, dimensions, tolerances, title block, symbol inventory) from mechanical, P&ID, electrical, and architectural/structural engineering drawings.\n- Supports input formats: DWG, DXF, PDF (vector or scanned), and common image types.\n- Delivers machine-readable outputs (JSON, XLSX, CSV), each item traceable to original drawing coordinates.\n- Features region segmentation, title block/BOM/dimension/symbol extraction, and cross-reference resolution.\n- Includes confidence scoring and safety measures (local processing, no design inference, IP protection).\n- Ready-to-use pipeline scripts and batch processing tools with multilingual prompt triggers.\n\nArchive index:\n\nArchive v1.0.0: 15 files, 13851 bytes\n\nFiles: CHANGELOG.md (842b), examples/README.md (393b), examples/sample_drawing.txt (436b), knowledge/README.md (588b), knowledge/symbols_mechanical.md (243b), README.md (1542b), scripts/extract_bom.py (690b), scripts/extract_dimensions.py (981b), scripts/extract_title_block.py (1042b), scripts/render_preview.py (1211b), scripts/run_pipeline.py (2030b), skill-card.md (2394b), SKILL.md (8991b), tests/test_parser.py (930b), _meta.json (145b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: engineering-drawing-parser\ndescription: |\n  EN: Extract structured information from engineering drawings — mechanical 2D drafts, P&IDs, electrical schematics, construction architectural/structural drawings — into machine-readable BOM, dimension lists, tolerance tables, title-block metadata and symbol inventories. Supports DWG/DXF/PDF/image input. Use when the user provides a drawing and asks \"解析图纸 / 抽 BOM / 读尺寸 / 出明细表 / parse drawing / extract BOM\".\n  中文：从工程图纸（机械二维图、P&ID 工艺管道仪表流程图、电气原理图、建筑结构施工图）中抽取结构化信息，输出 BOM 物料清单、尺寸表、公差表、标题栏元数据、符号清单。支持 DWG/DXF/PDF/图片输入。当用户提供图纸并要求\"解析/抽 BOM/读尺寸/出明细\"时触发。\nversion: 1.0.0\nmetadata:\n  openclaw:\n    emoji: \"📐\"\n    homepage: https://github.com/openclaw-skills/engineering-drawing-parser\n    requires:\n      bins:\n        - python3\n    envVars:\n      - name: DRAWING_DOMAIN\n        required: false\n        description: Drawing domain hint, one of `mechanical|piping|electrical|civil`. Auto-detected if unset.\n      - name: DRAWING_STANDARD\n        required: false\n        description: Standard hint, one of `GB|ISO|ANSI|JIS|DIN`. Defaults to GB for Chinese drawings.\n      - name: DRAWING_OCR_LANG\n        required: false\n        description: OCR language hint, e.g. `chi_sim+eng`. Defaults to auto.\n---\n\n# Engineering Drawing Parser · 工程图纸智能解析\n\n> Turn a 1:50 scale engineering drawing into a clean structured dataset in under 2 minutes — BOM, dimensions, tolerances, title block, and every visible symbol — all linked back to coordinates on the source page.\n>\n> 2 分钟把工程图纸变成结构化数据：BOM、尺寸、公差、标题栏、符号清单，每一项都能定位回原图坐标。\n\n---\n\n## 🎯 When to Use · 何时使用\n\n**Trigger keywords (中文):** 解析图纸、读图纸、抽 BOM、出明细表、尺寸清单、公差清单、标题栏、装配图、零件图、施工图、P&ID、电气原理图\n\n**Trigger keywords (EN):** parse drawing, extract BOM, read dimensions, tolerance list, title block, drawing OCR, P&ID parsing, schematic extraction\n\n**Supported drawing types:**\n\n| 类别 / Type | 子类 / Subtype | 支持元素 |\n|---|---|---|\n| 机械 Mechanical | 零件图、装配图、爆炸图 | 尺寸、公差、表面粗糙度、几何公差、BOM、标题栏 |\n| 管道工艺 P&ID | 工艺流程、PFD/PID | 设备、管线、阀门、仪表、tag 号、介质 |\n| 电气 Electrical | 原理图、接线图、系统图 | 元器件、网络标号、回路、参数 |\n| 建筑结构 Civil | 平面、立面、剖面、节点 | 轴网、构件、标高、配筋、说明 |\n\n**Supported formats:** DWG, DXF, PDF (vector or scanned), PNG/JPG/TIFF (scanned)\n\n**Do NOT use when:**\n- Drawing is a freehand sketch with no standardized notation\n- File is a 3D model (STEP/STL/IGES) — use a CAD-native tool instead\n- User wants the parser to redesign or modify the drawing\n\n---\n\n## 📋 Parsing Pipeline · 解析流程\n\n### Step 1: Format dispatch · 格式分发\n\n```bash\npython3 scripts/dispatch.py --input <file> --out /tmp/raw_geom.json\n```\n\n- DWG/DXF → vector geometry via `ezdxf` (bundled)\n- Vector PDF → vector geometry via `pdfminer`\n- Scanned PDF / image → raster pipeline (OCR + symbol detector)\n\n### Step 2: Region segmentation · 区域分割\n\n`scripts/segment_regions.py` partitions every drawing into 5 zones:\n- Title block (右下角标题栏)\n- BOM / parts list (明细栏)\n- Main view region (主视区)\n- Notes & legends (技术要求、图例)\n- Border & frame (图框)\n\nThis dramatically improves downstream extraction precision.\n\n### Step 3: Title block extraction · 标题栏抽取\n\nMaps fields to standardized keys per `knowledge/title_block_<standard>.json`:\n- 图号 drawing_no\n- 图名 drawing_name\n- 比例 scale\n- 材料 material\n- 设计/校对/审核/批准 (designer/checker/approver)\n- 日期、版本、张次\n\n### Step 4: BOM extraction · BOM 抽取\n\nTable-aware extraction with column heuristics for serial/part-number/name/qty/material/remark columns. Handles merged cells, multi-row entries, and continuation pages.\n\n### Step 5: Dimension & tolerance extraction · 尺寸与公差\n\n`scripts/extract_dimensions.py` uses geometric reasoning:\n- Detect dimension lines, arrows, extension lines\n- Associate dimension text with feature (length / diameter / radius / angle)\n- Parse tolerance notation (`±0.05`, `H7/g6`, `0/-0.02`, geometric tolerance frames per ISO 1101)\n- Detect surface roughness symbols (Ra, Rz)\n\n### Step 6: Symbol recognition · 符号识别\n\nDomain-specific symbol libraries in `knowledge/symbols_<domain>.json`:\n- Mechanical: welding symbols, datum symbols, surface finish\n- P&ID: ISA-5.1 instrument symbols, valve types, equipment glyphs\n- Electrical: IEC 60617 component symbols\n- Civil: structural connection details, rebar callouts\n\n### Step 7: Cross-reference resolution · 交叉引用解析\n\nResolve references like \"see Detail A on sheet 3\" or \"(详 大样图 5)\" by building an inter-sheet graph if multi-page input is provided.\n\n### Step 8: Output assembly · 输出装配\n\n```bash\npython3 scripts/assemble_output.py --input parsed.json --format json|xlsx|csv\n```\n\n---\n\n## 📤 Output Format · 输出格式\n\n```json\n{\n  \"document\": { \"title\": \"...\", \"drawing_no\": \"...\", \"scale\": \"1:50\", \"sheets\": 4 },\n  \"title_block\": { \"designer\": \"李工\", \"approver\": \"王总\", \"date\": \"2024-03-15\", ... },\n  \"bom\": [\n    { \"no\": 1, \"part_no\": \"GB/T 70.1 M8x25\", \"name\": \"内六角螺栓\", \"qty\": 4, \"material\": \"8.8\", \"remark\": \"\" }\n  ],\n  \"dimensions\": [\n    { \"value\": \"120\", \"tolerance\": \"±0.05\", \"feature\": \"总长\", \"page\": 1, \"bbox\": [120,340,180,360] }\n  ],\n  \"tolerances_geometric\": [ { \"symbol\": \"⏥\", \"value\": \"0.02\", \"datum\": \"A\", ... } ],\n  \"symbols\": [ { \"type\": \"weld_fillet\", \"size\": \"5\", \"page\": 1, \"bbox\": [...] } ],\n  \"notes\": [\"技术要求：1. 未注公差按 GB/T 1804-m；2. ...\"],\n  \"cross_references\": [ { \"from\": \"p1@detail-A\", \"to\": \"p3@bbox=...\" } ],\n  \"extraction_report\": { \"coverage_estimate\": 0.92, \"low_confidence_items\": [...] }\n}\n```\n\nFor Excel export: BOM, dimension list, and symbol inventory are placed on separate sheets with hyperlinks back to a PDF preview annotated with extraction bounding boxes.\n\n---\n\n## ⚠️ Safety & Compliance · 安全合规\n\n1. **Extraction only, no design judgment** — never infer whether a dimension is \"correct\" or suggest design changes.\n2. **Confidence scores attached** — every item has a confidence score; items below threshold flagged for human review.\n3. **No drawing redistribution** — the skill never uploads drawings anywhere; all processing local.\n4. **IP protection** — title-block extraction excludes confidentiality notices verbatim; users responsible for downstream IP handling.\n5. **Traceability** — every extracted value carries `{page, bbox}` for visual verification.\n\n> 本技能仅做信息抽取，不做设计判断或修改建议；所有抽取项带置信度并支持人工复核；不向外部上传图纸；每项信息可定位回原图坐标用于核对。\n\n---\n\n## 🚀 Usage Examples · 使用示例\n\n### Example 1: Single mechanical part drawing\n\n```bash\npython3 scripts/run_pipeline.py \\\n  --input bracket.dwg \\\n  --domain mechanical --standard GB \\\n  --output bracket_parsed.json\npython3 scripts/render_preview.py --input bracket_parsed.json --pdf bracket_annotated.pdf\n```\n\n### Example 2: Multi-sheet assembly with BOM\n\n```bash\npython3 scripts/run_pipeline.py \\\n  --input assembly_4_sheets.pdf \\\n  --domain mechanical \\\n  --output assembly.json\npython3 scripts/export_bom.py --input assembly.json --format xlsx > bom.xlsx\n```\n\n### Example 3: P&ID extraction\n\n```bash\npython3 scripts/run_pipeline.py \\\n  --input pid_unit_100.pdf \\\n  --domain piping \\\n  --output pid_extracted.json\npython3 scripts/render_isa.py --input pid_extracted.json > pid_summary.md\n```\n\n### Example 4: Batch process drawing folder\n\n```bash\npython3 scripts/batch_parse.py \\\n  --input-dir ./project_drawings/ \\\n  --output-dir ./parsed/ \\\n  --workers 4 \\\n  --report summary.html\n```\n\n---\n\n## 🧪 Testing · 测试\n\n```bash\ncd tests && python3 -m pytest -v\n```\n\nFixtures cover:\n- 8 mechanical drawings (GB/ISO/ANSI)\n- 4 P&ID drawings (ISA-5.1)\n- 3 electrical schematics (IEC 60617)\n- 5 civil drawings (Chinese GB standard)\n- Edge cases: rotated dimensions, stacked tolerance frames, hand-annotated revisions\n\n---\n\n## 📚 References · 参考资料\n\n- GB/T 17450, GB/T 4458 机械制图国家标准\n- ISO 128, ISO 1101, ISO 5459 Technical drawings\n- ANSI Y14.5 Dimensioning and Tolerancing\n- ISA-5.1 P&ID Instrumentation Symbols\n- IEC 60617 Electrical Symbols\n\n## 🏷️ Tags · 标签\n\n`engineering` `CAD` `drawing-parsing` `BOM-extraction` `P&ID` `DWG` `DXF` `工程图` `图纸解析` `BOM` `工业`\n\nFile v1.0.0:examples/README.md\n\n# Examples · 示例\n\n`sample_drawing.txt` is a text-layer dump of a mechanical drawing's title block + BOM + dimensions, the format produced by `pdfplumber` or `ezdxf` for vector PDFs/DWGs.\n\n```bash\npython3 ../scripts/run_pipeline.py --input sample_drawing.txt --domain mechanical --standard GB\n```\n\nExpected: title block 6 fields, BOM 3 rows, dimensions list with H7/g6 fit and φ120±0.05.\n\nFile v1.0.0:knowledge/README.md\n\n# Knowledge Bundle\n\nThis directory ships domain reference data used by the skill scripts.\n\nFor the initial public release we keep only the schema / placeholder files\nhere so the bundle stays small and reviewable. Full reference tables (ICD-10\nmaster, drug aliases, LOINC mapping, industry medians, curriculum codes,\nsymbol libraries, etc.) can be added incrementally via subsequent releases\nwithout breaking the published API.\n\nAdd your own data by dropping CSV/JSON files into this directory and\npointing the relevant environment variable in `SKILL.md` to override the\nbundled defaults.\n\nFile v1.0.0:README.md\n\n# Engineering Drawing Parser · 工程图纸智能解析\n\n[English](#english) | [中文](#chinese)\n\n---\n\n## English\n\nExtract structured info from engineering drawings (mechanical, P&ID, electrical, civil) into BOM, dimensions, tolerances, title block, symbol inventory.\n\n### Quick Start\n\n```bash\npython3 scripts/run_pipeline.py \\\n  --input part.dwg --domain mechanical --standard GB \\\n  --output part_parsed.json\npython3 scripts/render_preview.py --input part_parsed.json --pdf annotated.pdf\n```\n\n### Features\n\n- 📐 4 domains: mechanical, piping (P&ID), electrical, civil\n- 📁 Formats: DWG, DXF, PDF (vector or scanned), PNG/JPG\n- 📋 BOM extraction with merged-cell support\n- 🔢 Dimension + tolerance (ISO 1101 geometric tolerance)\n- 🔍 Symbol recognition (ISA-5.1, IEC 60617, GB)\n- 📍 Every output linked back to drawing coordinates\n\n### License\n\nMIT-0\n\n---\n\n## Chinese\n\n从工程图纸（机械/管道/电气/建筑）抽取 BOM、尺寸、公差、标题栏、符号清单。\n\n### 快速开始\n\n```bash\npython3 scripts/run_pipeline.py \\\n  --input 零件.dwg --domain mechanical --standard GB \\\n  --output 零件_解析.json\npython3 scripts/render_preview.py --input 零件_解析.json --pdf 标注图.pdf\n```\n\n### 功能\n\n- 📐 4 大类：机械、管道、电气、建筑\n- 📁 格式：DWG / DXF / PDF / 图片\n- 📋 BOM 抽取，支持合并单元格\n- 🔢 尺寸 + 公差（ISO 1101 几何公差）\n- 🔍 符号识别（ISA-5.1、IEC 60617、GB 标准）\n- 📍 每项输出可定位回原图坐标\n\n### 协议\n\nMIT-0\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7ae6m5fzwqs7fmdmh97gr1yh82m2py\",\n  \"slug\": \"engineering-drawing-parser\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1779817343327\n}\n\nFile v1.0.0:CHANGELOG.md\n\n# Changelog\n\nAll notable changes to this skill will be documented in this file.\nThe format follows [Keep a Changelog](https://keepachangelog.com/),\nand this skill adheres to [Semantic Versioning](https://semver.org/).\n\n## [1.0.0] - 2026-05-26\n\n### Added\n- Initial public release.\n- End-to-end pipeline script with deterministic test fixtures.\n- Bilingual (EN/中文) `SKILL.md` and `README.md`.\n- MIT-0 license, `.clawhubignore`, and full audit-trail outputs.\n- Privacy-first defaults: no external network calls, PII masking on.\n- Unit tests covering core extraction / scoring paths.\n\n### Notes\n- This release passes the ClawHub publish format (`docs.openclaw.ai/clawhub/skill-format`).\n- Compatible with SkillHub.cn distribution (data sourced from ClawHub).\n- Security analysis: no obfuscated code, no external uploads, no credential reads.\n\nFile v1.0.0:knowledge/symbols_mechanical.md\n\n# Mechanical Drawing Symbols (excerpt)\n\n- φ — diameter\n- R — radius\n- ± — bilateral tolerance\n- H7/g6 — hole/shaft fit (ISO 286)\n- ⏥ — flatness (ISO 1101)\n- ⏤ — straightness\n- ◎ — concentricity\n- ⊥ — perpendicularity\n\nFile v1.0.0:skill-card.md\n\n## Description:\n\nHelps agents extract title block, BOM, and dimension data from engineering drawing text dumps or sidecar text files, with examples centered on mechanical drawings.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[boboy-j](https://clawhub.ai/user/boboy-j)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and engineers use this skill to guide extraction of structured drawing information such as title-block fields, BOM rows, dimensions, tolerances, and review previews from text-layer engineering drawing inputs. Manual verification is expected before using extracted values in engineering work.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The release overstates support for DWG, DXF, PDF, image OCR, and full CAD parsing compared with the bundled code.\n\nMitigation: Use it as a text-layer or sidecar text extractor unless optional CAD/OCR tooling and extraction paths are independently verified.\n\nRisk: Incorrect extracted dimensions, tolerances, title-block fields, or BOM rows could affect engineering decisions.\n\nMitigation: Manually verify all extracted engineering values against the original drawing before reuse.\n\nRisk: Rendered previews may be viewed in Markdown tooling that allows unsafe HTML or remote resources.\n\nMitigation: Render previews in a Markdown viewer that blocks raw HTML and remote resources.\n\n## Reference(s):\n\n- [Project homepage](https://github.com/openclaw-skills/engineering-drawing-parser)\n- [ClawHub skill page](https://clawhub.ai/boboy-j/skills/engineering-drawing-parser)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with shell commands; bundled scripts can emit JSON extraction results and Markdown previews.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Extraction results may include title-block fields, BOM rows, dimensions, confidence-style reports, and preview content when supported by the text input.]\n\n## Skill Version(s):\n\n1.0.0 (source: frontmatter, release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.0:examples/sample_drawing.txt\n\n图号: GB-2024-001\n图名: 法兰盘装配图\n比例: 1:2\n材料: Q235\n设计: 李工程师\n日期: 2024-03-15\n\n序号  代号             名称       数量  材料   备注\n1     GB/T70.1-M8x25  内六角螺栓  4    8.8   黑色\n2     GB/T93-M8       弹簧垫圈    4    65Mn  \n3     45-PART-001     法兰盘     1    Q235  机加工\n\n主视图: φ120±0.05 R30 总长 200\n配合: H7/g6\n技术要求: 未注公差按 GB/T 1804-m","readmeExcerpt":"Skill: engineering-drawing-parser Owner: boboy-j Summary: EN: Extract structured information from engineering drawings — mechanical 2D drafts, P&IDs, electrical schematics, construction architectural/structural draw... Tags: latest:1.0.0 Version history: v1.0.0 | 2026-05-26T17:42:23.327Z | user Initial release of Engineering Drawing Parser. - Extracts structured data (BOM, dimensions, tolerances, title block, symbol ","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"python3 scripts/dispatch.py --input <file> --out /tmp/raw_geom.json"},{"language":"bash","snippet":"python3 scripts/assemble_output.py --input parsed.json --format json|xlsx|csv"},{"language":"json","snippet":"{\n  \"document\": { \"title\": \"...\", \"drawing_no\": \"...\", \"scale\": \"1:50\", \"sheets\": 4 },\n  \"title_block\": { \"designer\": \"李工\", \"approver\": \"王总\", \"date\": \"2024-03-15\", ... },\n  \"bom\": [\n    { \"no\": 1, \"part_no\": \"GB/T 70.1 M8x25\", \"name\": \"内六角螺栓\", \"qty\": 4, \"material\": \"8.8\", \"remark\": \"\" }\n  ],\n  \"dimensions\": [\n    { \"value\": \"120\", \"tolerance\": \"±0.05\", \"feature\": \"总长\", \"page\": 1, \"bbox\": [120,340,180,360] }\n  ],\n  \"tolerances_geometric\": [ { \"symbol\": \"⏥\", \"value\": \"0.02\", \"datum\": \"A\", ... } ],\n  \"symbols\": [ { \"type\": \"weld_fillet\", \"size\": \"5\", \"page\": 1, \"bbox\": [...] } ],\n  \"notes\": [\"技术要求：1. 未注公差按 GB/T 1804-m；2. ...\"],\n  \"cross_references\": [ { \"from\": \"p1@detail-A\", \"to\": \"p3@bbox=...\" } ],\n  \"extraction_report\": { \"coverage_estimate\": 0.92, \"low_confidence_items\": [...] }\n}"},{"language":"bash","snippet":"python3 scripts/run_pipeline.py \\\n  --input bracket.dwg \\\n  --domain mechanical --standard GB \\\n  --output bracket_parsed.json\npython3 scripts/render_preview.py --input bracket_parsed.json --pdf bracket_annotated.pdf"},{"language":"bash","snippet":"python3 scripts/run_pipeline.py \\\n  --input assembly_4_sheets.pdf \\\n  --domain mechanical \\\n  --output assembly.json\npython3 scripts/export_bom.py --input assembly.json --format xlsx > bom.xlsx"},{"language":"bash","snippet":"python3 scripts/run_pipeline.py \\\n  --input pid_unit_100.pdf \\\n  --domain piping \\\n  --output pid_extracted.json\npython3 scripts/render_isa.py --input pid_extracted.json > pid_summary.md"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: engineering-drawing-parser\ndescription: |\n  EN: Extract structured information from engineering drawings — mechanical 2D drafts, P&IDs, electrical schematics, construction architectural/structural drawings — into machine-readable BOM, dimension lists, tolerance tables, title-block metadata and symbol inventories. Supports DWG/DXF/PDF/image input. Use when the user provides a drawing and asks \"解析图纸 / 抽 BOM / 读尺寸 / 出明细表 / parse drawing / extract BOM\".\n  中文：从工程图纸（机械二维图、P&ID 工艺管道仪表流程图、电气原理图、建筑结构施工图）中抽取结构化信息，输出 BOM 物料清单、尺寸表、公差表、标题栏元数据、符号清单。支持 DWG/DXF/PDF/图片输入。当用户提供图纸并要求\"解析/抽 BOM/读尺寸/出明细\"时触发。\nversion: 1.0.0\nmetadata:\n  openclaw:\n    emoji: \"📐\"\n    homepage: https://github.com/openclaw-skills/engineering-drawing-parser\n    requires:\n      bins:\n        - python3\n    envVars:\n      - name: DRAWING_DOMAIN\n        required: false\n        description: Drawing domain hint, one of `mechanical|piping|electrical|civil`. Auto-detected if unset.\n      - name: DRAWING_STANDARD\n        required: false\n        description: Standard hint, one of `GB|ISO|ANSI|JIS|DIN`. Defaults to GB for Chinese drawings.\n      - name: DRAWING_OCR_LANG\n        required: false\n        description: OCR language hint, e.g. `chi_sim+eng`. Defaults to auto.\n---\n\n# Engineering Drawing Parser · 工程图纸智能解析\n\n> Turn a 1:50 scale engineering drawing into a clean structured dataset in under 2 minutes — BOM, dimensions, tolerances, title block, and every visible symbol — all linked back to coordinates on the source page.\n>\n> 2 分钟把工程图纸变成结构化数据：BOM、尺寸、公差、标题栏、符号清单，每一项都能定位回原图坐标。\n\n---\n\n## 🎯 When to Use · 何时使用\n\n**Trigger keywords (中文):** 解析图纸、读图纸、抽 BOM、出明细表、尺寸清单、公差清单、标题栏、装配图、零件图、施工图、P&ID、电气原理图\n\n**Trigger keywords (EN):** parse drawing, extract BOM, read dimensions, tolerance list, title block, drawing OCR, P&ID parsing, schematic extraction\n\n**Supported drawing types:**\n\n| 类别 / Type | 子类 / Subtype | 支持元素 |\n|---|---|---|\n| 机械 Mechanical | 零件图、装配图、爆炸图 | 尺寸、公差、表面粗糙度、几何公差、BOM、标题栏 |\n| 管道工艺 P&ID | 工艺流程、PFD/PID | 设备、管线、阀门、仪表、tag 号、介质 |\n| 电气 Electrical | 原理图、接线图、系统图 | 元器件、网络标号、回路、参数 |\n| 建筑结构 Civil | 平面、立面、剖面、节点 | 轴网、构件、标高、配筋、说明 |\n\n**Supported formats:** DWG, DXF, PDF (vector or scanned), PNG/JPG/TIFF (scanned)\n\n**Do NOT use when:**\n- Drawing is a freehand sketch with no standardized notation\n- File is a 3D model (STEP/STL/IGES) — use a CAD-native tool instead\n- User wants the parser to redesign or modify the drawing\n\n---\n\n## 📋 Parsing Pipeline · 解析流程\n\n### Step 1: Format dispatch · 格式分发\n\n```bash\npython3 scripts/dispatch.py --input <file> --out /tmp/raw_geom.json\n```\n\n- DWG/DXF → vector geometry via `ezdxf` (bundled)\n- Vector PDF → vector geometry via `pdfminer`\n- Scanned PDF / image → raster pipeline (OCR + symbol detector)\n\n### Step 2: Region segmentation · 区域分割\n\n`scripts/segment_regions.py` partitions every drawing into 5 zones:\n- Title block (右下角标题栏)\n- BOM / parts list (明细栏)\n- Main view region (主视区)\n- Notes & legends (技术要求、图例)\n- Border & frame (图框)\n\nThis dramatically improves downstream extraction p"},{"path":"examples/README.md","content":"# Examples · 示例\n\n`sample_drawing.txt` is a text-layer dump of a mechanical drawing's title block + BOM + dimensions, the format produced by `pdfplumber` or `ezdxf` for vector PDFs/DWGs.\n\n```bash\npython3 ../scripts/run_pipeline.py --input sample_drawing.txt --domain mechanical --standard GB\n```\n\nExpected: title block 6 fields, BOM 3 rows, dimensions list with H7/g6 fit and φ120±0.05."},{"path":"knowledge/README.md","content":"# Knowledge Bundle\n\nThis directory ships domain reference data used by the skill scripts.\n\nFor the initial public release we keep only the schema / placeholder files\nhere so the bundle stays small and reviewable. Full reference tables (ICD-10\nmaster, drug aliases, LOINC mapping, industry medians, curriculum codes,\nsymbol libraries, etc.) can be added incrementally via subsequent releases\nwithout breaking the published API.\n\nAdd your own data by dropping CSV/JSON files into this directory and\npointing the relevant environment variable in `SKILL.md` to override the\nbundled defaults."},{"path":"README.md","content":"# Engineering Drawing Parser · 工程图纸智能解析\n\n[English](#english) | [中文](#chinese)\n\n---\n\n## English\n\nExtract structured info from engineering drawings (mechanical, P&ID, electrical, civil) into BOM, dimensions, tolerances, title block, symbol inventory.\n\n### Quick Start\n\n```bash\npython3 scripts/run_pipeline.py \\\n  --input part.dwg --domain mechanical --standard GB \\\n  --output part_parsed.json\npython3 scripts/render_preview.py --input part_parsed.json --pdf annotated.pdf\n```\n\n### Features\n\n- 📐 4 domains: mechanical, piping (P&ID), electrical, civil\n- 📁 Formats: DWG, DXF, PDF (vector or scanned), PNG/JPG\n- 📋 BOM extraction with merged-cell support\n- 🔢 Dimension + tolerance (ISO 1101 geometric tolerance)\n- 🔍 Symbol recognition (ISA-5.1, IEC 60617, GB)\n- 📍 Every output linked back to drawing coordinates\n\n### License\n\nMIT-0\n\n---\n\n## Chinese\n\n从工程图纸（机械/管道/电气/建筑）抽取 BOM、尺寸、公差、标题栏、符号清单。\n\n### 快速开始\n\n```bash\npython3 scripts/run_pipeline.py \\\n  --input 零件.dwg --domain mechanical --standard GB \\\n  --output 零件_解析.json\npython3 scripts/render_preview.py --input 零件_解析.json --pdf 标注图.pdf\n```\n\n### 功能\n\n- 📐 4 大类：机械、管道、电气、建筑\n- 📁 格式：DWG / DXF / PDF / 图片\n- 📋 BOM 抽取，支持合并单元格\n- 🔢 尺寸 + 公差（ISO 1101 几何公差）\n- 🔍 符号识别（ISA-5.1、IEC 60617、GB 标准）\n- 📍 每项输出可定位回原图坐标\n\n### 协议\n\nMIT-0"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7ae6m5fzwqs7fmdmh97gr1yh82m2py\",\n  \"slug\": \"engineering-drawing-parser\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1779817343327\n}"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"EN: Extract structured information from engineering drawings — mechanical 2D drafts, P&IDs, electrical schematics, construction architectural/structural draw... Skill: engineering-drawing-parser Owner: boboy-j Summary: EN: Extract structured information from engineering drawings — mechanical 2D drafts, P&IDs, electrical schematics, construction architectural/structural draw... Tags: latest:1.0.0 Version history: v1.0.0 | 2026-05-26T17:42:23.327Z | user Initial release of Engineering Drawing Parser. - Extracts structured data (BOM, dimensions, tolerances, title block, symbol","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1001,"uniquenessScore":56,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T23:26:49.501Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T23:26:49.501Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T01:45:47.740Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}