@bill_nee/dwg-reader

中文文档
1.5.3发布于 2026/11/03GPL-3.0-onlyES Module近 30 天下载 2173

* 自动CAD DWG/DXF/PDF =======================================================================================================================================================================================需本机已安装 Python 与 zdxf:,PDF 基于 pdf-parse,图片基于内置 tsesseract.js WASM OCR,支持本地 tsdata 多语言,GPL-3.0)。

中文使用文档
文档目录9 节
  1. 安装
  2. 工具与参数
  3. 主要能力
  4. 前置依赖(重要)
  5. 使用示例
  6. 测试实例
  7. 文件结构
  8. 许可
  9. 安装路径

@bill_nee/dwg-reader

DSH(DeepSeek Harness)插件:直接读取 DWG/DXF 图纸、PDF 与图片/截屏,无需安装 AutoCAD、Tesseract 等外部软件。

基于 libredwg-web 0.8.2 WASM 解析 DWG;DXF 经 Python ezdxf 桥接;PDF 用 pdf-parse;图片 OCR 使用内置 tesseract.js(WASM),语言包可指向本地 tessdata,也可按需联网下载,支持 Tesseract 全量语言(100+ 种)。

安装

在 DSH 工作台或终端执行:

dsh plugin --profile desktop add @bill_nee/[email protected]

安装后在 DSH 工作台插件管理中启用插件,即可使用 read_dwg、read_dxf、read_pdf、ocr_image 四个工具(read_image 为 DSH 内置看图工具,本插件用 ocr_image 与其并存,避免同名冲突)。

工具与参数

工具说明
read_dwg解析 DWG:版本/代码页/图层/块/实体统计与明细,可导出 SVG 预览
read_dxf解析 DXF(ezdxf 桥接):版本、图层、块、实体统计与明细(需本机已安装 Python 与 ezdxf)
read_pdf解析 PDF:页数、元数据、可选全文文本
ocr_image图片/截屏 OCR:格式、像素尺寸、颜色模式 + 识别文字(PNG/JPEG/WebP/BMP/GIF/TIFF)

ocr_image 关键参数:

{
  "file_path": "F:\\HAYNESS 工作区1\\测试用资源\\截屏.png",
  "ocr": true,
  "lang": "chi_sim+eng",
  "tessdata_prefix": "D:\\Tools\\Tesseract-OCR\\tessdata"
}
  • lang:Tesseract 语言码,+ 或逗号连接,默认 chi_sim+eng;如 eng、chi_tra、jpn、kor、deu、fra、rus、spa、ara、vie、tha 等。
  • tessdata_prefix:本地 traineddata 目录。提供后只读本地语言包、不联网;目录缺包会报错并列出缺项。
  • 未提供 tessdata_prefix 时,依次探测 TESSDATA_PREFIX 环境变量、D:\Tools\Tesseract-OCR\tessdata、C:\Program Files\Tesseract-OCR\tessdata、/usr/share/tesseract-ocr/4.00/tessdata 等常见目录;均未命中才联网下载并缓存到系统临时目录。

主要能力

能力说明
读取 DWG支持 AutoCAD R14~R2018 等常见版本(AC1015~AC1032)
图层信息返回所有图层名称、颜色、冻结/关闭/锁定状态
实体统计返回实体总数及按类型(LINE/TEXT/INSERT/HATCH/DIMENSION 等)分类统计
INSERT 明细返回块名、插入点、旋转、缩放及块属性(tag/text/value)
图纸版本返回 ACADVER、版本号、版本描述(如 r2007/AC1021)
图幅信息返回 EXTMIN/EXTMAX 边界框
导出 SVG可将 DWG 内容导出为 SVG 预览文件到指定路径
内置 OCRtesseract.js WASM,无需安装 Tesseract 可执行文件;多语言、可离线
错误处理对无效/损坏/非目标格式文件给出明确错误提示

前置依赖(重要)

  • DWG / PDF / 图片 OCR:纯 JavaScript + WASM,无需安装 AutoCAD 或 Tesseract,直接可用。
  • DXF:基于 Python ezdxf 桥接,需本机已安装 Python 3 与 ezdxf 包。Python 解释器优先读环境变量 DXF_PYTHON_EXE,其次 DSH_HOME\dsh-runtimes\dsh-primary-runtime\dependencies\python\python.exe,再次回退系统 python。缺少 ezdxf 时会给明确报错,请先 pip install ezdxf。

使用示例

{
  "file_path": "E:\\2026 工程资料\\16 天喔蜜饯工厂\\03 CAD DESIGN\\02 HVAC DESIGN PLAN.dwg",
  "entities": true,
  "entity_limit": 50,
  "export_svg": true,
  "svg_output_path": "F:\\HAYNESS 工作区1\\hvac-plan.svg"
}

测试实例

  • 天喔蜜饯工厂暖通图纸(r2018/AC1032):1514 个实体、126 个图层。
  • 植本清源空调设备图(r2007/AC1021):1762 个实体、14 个图层。
  • 截屏 OCR:本地 tessdata(chi_sim+eng)约 4 秒识别 4500+ 字符;ocr=false 仅解析尺寸不识别。
  • 无效/损坏文件:返回明确错误,不崩溃。

文件结构

dwg-reader-plugin/
├── lib/index.js          # 插件入口,注册 read_dwg / read_dxf / read_pdf / ocr_image
├── scripts/read_dxf.py   # DXF 解析桥接(ezdxf)
├── cordis.patch.yml      # DSH bundle 插件清单
├── package.json          # npm 包清单
├── LICENSE               # GPL-3.0-only
├── README.md             # 本文件
├── icon.svg              # 插件图标
├── locale/en.json        # 英文元数据
├── locale/zh.json        # 中文元数据
└── vendor/libredwg-web/  # libredwg-web 0.8.2 WASM 库(已 vendored)
    ├── lib/              # JS 封装层
    └── wasm/             # libredwg-web.wasm(WebAssembly 解析核心)

许可

GPL-3.0-only。依赖 libredwg-web 为 GPL,tesseract.js 为 Apache-2.0;公开分发请保留 LICENSE 并提供对应源码。

安装路径

  • npm 公开包:@bill_nee/[email protected]
  • 安装命令:dsh plugin --profile desktop add @bill_nee/[email protected]
  • GitHub 源码:https://github.com/NIDEXIANG/dwg-reader-plugin-20261029

版本与发布记录

@bill_nee/dwg-reader 共发布 11 个版本,首次发布于 2026/10/29;过去 12 个月发布了 11 个版本。

版本发布日期距今
1.5.3latest2026/11/035 天前
1.5.22026/11/016 天前
1.5.12026/10/309 天前
1.5.02026/10/309 天前
1.4.02026/10/309 天前
1.3.02026/10/309 天前

关于 @bill_nee/dwg-reader 的常见问题

@bill_nee/dwg-reader 是什么?

* 自动CAD DWG/DXF/PDF =======================================================================================================================================================================================需本机已安装 Python 与 zdxf:,PDF 基于 pdf-parse,图片基于内置 tsesseract.js WASM OCR,支持本地 tsdata 多语言,GPL-3.0)。

如何安装 @bill_nee/dwg-reader?

在项目目录运行 npm install @bill_nee/dwg-reader,或使用 pnpm add / yarn add / bun add。

@bill_nee/dwg-reader 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/bill_nee__dwg-reader 是否存在。

@bill_nee/dwg-reader 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@bill_nee/dwg-reader 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@bill_nee/dwg-reader 可以商用吗?

@bill_nee/dwg-reader 使用 GPL-3.0-only 许可。强 Copyleft:分发包含该代码的软件时,整个作品需以 GPL-3.0 兼容许可开源,并附带专利与反锁定条款。仅内部使用不触发此义务。以上为概括,不构成法律意见,请以许可原文为准。

@bill_nee/dwg-reader 的下载量有多少?

根据 npm 官方下载统计,@bill_nee/dwg-reader 在 2026/10/08 – 2026/11/06 这 30 天内被下载 2,173 次,日均约 72 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@bill_nee/dwg-reader 还在维护吗?

最新版本 1.5.3 发布于 2026/11/03(5 天前);至今共发布 11 个版本,其中过去 12 个月发布了 11 个;首次发布于 2026/10/29。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。