DOCS / 02 · SVG EXTRACTION & RENDERING

SVG 提取与渲染

SVG 提取是标准转换流程的一部分,默认 candidate 模式:每个 run 在 <run>/svg-candidates/ 生成三个产物——symbols.sqlite3correspondence.jsoncorrespondence.html。候选不自动应用到交付 QML 或 GIS 业务数据;reviewed 模式尚未开放。

本页画廊的 759 个 SVG 全部来自真实 DWG 交付包 svg-review/drawing-01..09/source-symbols,一个不少。

§1 · 提取流水线

从 DWG 实体到 QGIS 渲染的七步

逐步播放:每一步配真实产物名。候选与 GIS 完整生成后原子发布;提取失败不发布半成品 run,已有 run 保留。

§2 · 真实符号画廊

759 个真实提取的 SVG 符号

按九张图纸筛选(徽记 = 该图符号数)。懒加载;hover 放大;点击开深色详情卡。SVG 多为透明底细线稿,格子用墨色描边纸底衬托。

§3 · 覆盖率数据

九图候选处置对比

逐图读 correspondence.json 的 dispositions 字段:LEGEND_MATCH_CANDIDATE(图例对应候选)/ SOURCE_INSTANCE_ONLY / UNRESOLVED_NON_BLOCK。多数图纸没有可用图例——候选以源实例身份保留,这正是 candidate 模式的诚实之处。

§4 · QGZ 内嵌证据

SVG 以 base64 内嵌进 QGZ

逐个数过:view-with-source-SVG.qgz 内 .qgs 的 base64 SVG 载荷数。首开图 = 11 份 QGZ 在独立 QGIS 进程中的首开验证截图。

§5 · CLI 参考

独立提取与人工绑定(逐字命令)

独立运行不依赖转换;选择配置必须绑定实际源文件 SHA-256 与实际 handle。

extract / qml

python -m cad2gis.symbol_assets extract --source drawing.dwg --selection selection.json --output symbol-review-v1 python -m cad2gis.symbol_assets qml --store symbol-review-v1/symbols.sqlite3 --symbol-id pole-source-candidate --output pole-candidate.qml --size-mm 6

也可用 tools/extract_svg_symbols.py,或安装后的 cad2gis-symbols · 缺字体 Linux 环境提供 --font-dir /path/to/fonts(可重复);无字体时拒绝提取含文字的符号

selection.json / bindings.json 示例

{ "source_sha256": "<DWG 文件的完整 SHA-256>", "symbols": [ {"symbol_id": "pole-source-candidate", "label": "原图杆型候选", "handles": ["<实际 handle>"]} ] }
[{"layer": "PTECH", "source_handle": "7943", "symbol_id": "ptech-7943"}]

脚本拒绝错误源 SHA、找不到的 handle、重复 ID、覆盖已有输出和被修改的 SVG

package_qgis_standalone / verify_qgis_standalone

python tools/package_qgis_standalone.py --project delivery/EMR29619/delivery.qgz --output EMR29619-standard.qgz python tools/package_qgis_standalone.py --project delivery/EMR29619/delivery.qgz --output EMR29619-with-SVG.qgz --store source-symbols/symbols.sqlite3 --bindings bindings.json --delivery-manifest delivery/delivery-manifest.json

人工绑定到 QGZ 需 PyQGIS 环境(如 Windows 的 python-qgis.bat)

cad2gis-svg-delivery / 独立复验

cad2gis-svg-delivery --baseline <完整交付目录> --assets <候选目录> --output <新目录> python tools/verify_qgis_standalone.py --project output.qgz --output verification

生成后必须退出进程再独立复验(可加 --font /path/to/font.ttf)· 实现亦随核心包发布:python -m cad2gis.qgis_package / qgis_verify / svg_delivery,安装命令为 cad2gis-qgis-package / cad2gis-qgis-verify / cad2gis-svg-delivery