跳到主要内容
Vecaria

DXF 转 JSON

本地处理

在线把 DXF 解析为结构化 JSON(entities/tables/blocks),用于二次开发、调试与数据接入;浏览器本地处理、不上传、免登录。

当前为示例数据,可直接点「导出 JSON」试用

使用方法

  1. 载入或粘贴 ASCII DXF 文本(或用示例)
  2. 点击「导出 JSON」
  3. 查看结构概览(实体类型分布/图层清单),复制或下载 drawing.json

功能说明

  • 输出 dxf-parser 的解析结构(entities/tables/blocks 等);解析器不支持的实体类型(如 HATCH)不会出现在结果中
  • 输出区上方附结构概览(实体类型分布 + 图层清单);超大输出(约 1MB 以上)概览自动让位,不影响导出
  • 适合调试与二次开发
  • 浏览器本地完成

常见问题

报「检测到二进制 DXF」或解析出零实体? 本工具仅支持 ASCII DXF:二进制 DXF 与 DWG 不在解析范围,请先在 CAD 软件中另存/导出为 ASCII DXF 格式再载入。解析器不支持的实体类型(如 HATCH)不会进入输出,输出区按原始文本普查给出跳过计数。

ARC 的起止角为什么是小数? DXF 文件内 ARC 角度以度记录,解析器输出时换算为弧度(如 90° 输出 1.5708);部分字段(如 handle)为解析器补齐的默认值。需要度数请乘 180/π 换回。

其实想把图纸导入 GIS? 请用「DXF 转 GeoJSON」:它把线/面转成 GeoJSON 要素、图层名保留为属性,可直接加载进 QGIS/Mapbox/Leaflet。本工具输出解析器原始结构,面向调试与数据接入。

很大的 DXF 会怎样? 解析全程在浏览器内完成:数十 MB、数十万实体的图纸会耗时更长、占用更多内存;结构概览对约 1MB 以上的输出自动让位(导出不受影响)。

和「DXF 转 CSV」有什么区别? 「DXF 转 CSV」把每个实体压成一行扁平表格(类型、图层、坐标),适合电子表格与统计;本工具保留解析器的嵌套结构——header、tables、blocks 和带完整字段的 entities——给代码、调试与数据管道用。给 Excel 选 CSV,给脚本选 JSON。

怎么在 Python 或 jq 里用这个 JSON? 输出就是普通的缩进 JSON:Python 里 json.load(open(“drawing.json”)) 取 entities 数组;jq 可用 jq ‘[.entities[].type] | group_by(.) | map({type: .[0], count: length})’ drawing.json 做实体类型统计。注意 ARC 起止角是弧度(乘 180/π 换度),个别字段(如 handle)是解析器补的默认值,读取时做防御性判断。

文件大小有限制吗? 没有上传限制——文件不上传,真正的上限是设备内存。解析全程在浏览器完成;结构概览对约 1MB 以上的输出自动让位,导出与下载不受影响。

隐私

本工具在浏览器本地处理,输入内容不会上传服务器。

TL;DR: 粘贴或载入 ASCII DXF 文本,导出结构化 JSON(header/tables/blocks/entities),附实体类型分布与图层概览,便于二次开发、调试与数据接入;免费免登录,浏览器本地解析,不上传,解析器不支持的实体类型(如 HATCH)计入跳过。

如何使用

  1. 载入或粘贴 ASCII DXF 文本(或用示例)
  2. 点击「导出 JSON」
  3. 查看结构概览(实体类型分布/图层清单),复制或下载 drawing.json

示例

  • 粘贴 DXF → 得到 JSON

支持的格式

DXFJSON

限制说明

  • 仅支持 ASCII DXF(二进制 DXF/DWG 请先在 CAD 中另存为 ASCII)
  • 输出为解析器结构(entities/tables/blocks 等);解析器不支持的实体类型(如 HATCH)不会进入输出,输出区显示「已转换/跳过」计数(原始文本普查口径,含解析器静默丢弃的类型)
  • ARC 角度以弧度输出(DXF 文件内为度);部分字段(如 handle)为解析器补齐的默认值
  • 输出为缩进美化的 JSON,体积大于压缩格式
  • 浏览器本地处理,不上传