玉米 CAD(dsh-corn-cad):侧边栏 DXF/DWG 预览与圈选画板

前言

在 DeepSeek Harness(DSH)里让 agent 改 CAD,常见卡点不是「能不能看懂图」,而是指代对不齐:口头说「这几个孔改大」,agent 不知道是哪几个;截图只有像素,没有 DXF 句柄和世界坐标。社区插件 dsh-corn-cad(目录名 xingyingyuzhui/dsh-corn-cad,维护者 xingyingyuzhui,分类:客户端)把预览、圈选和对话接在一起:你在侧边栏右键拖框,框住的图元、图层、句柄与坐标范围会随指令进入会话,agent 不必猜「你刚才说的那个地方」。

下面介绍它做什么、怎么装、怎么用,以及安装前需要知道的边界。

这是什么

玉米 CAD 是 DSH 的文档预览类客户端插件:在工作区文件树打开 .dxf 或 .dwg 后,右侧文档预览标签显示矢量图纸;右键拖框圈选区域,在弹出气泡里写一句话,经 Ctrl/⌘ + Enter 或「发送」交给当前会话的 agent。消息里会带图纸路径、框选说明、选中图元清单、DXF 世界坐标范围,并在图纸同目录写入 .corncad/selection.json,便于 agent 按 handle 精确定位图元。

插件仓库:https://github.com/xingyingyuzhui/dsh-corn-cad
社区目录页:https://www.skillhub.cn/plugins/xingyingyuzhui/dsh-corn-cad

README 写明已在 DSH 0.2.1-rc.3 上实测;宿主侧依赖 DSH 内部的文档预览注册、侧边栏 slot、/api 通道与会话作用域下的 conversation.send() 等接缝,官方无兼容承诺,升级 DSH 后若气泡发不出去,需优先检查是否在 session scope 内发送。

核心功能

看图

操作 行为
拖拽 平移
Ctrl/⌘ + 滚轮 缩放
工具栏 − + 适应宽度 缩放控制

.dxf 由零依赖渲染器解析;.dwg 依赖包内 @mlightcad/libredwg-web(GPL-3.0,约 12 MB,可离线安装)。中文图纸按 $DWGCODEPAGE 等规则解码;R2007+ 按 UTF-8 处理。

圈选(画板)

左键拖动平移、单击选中图元、Shift + 单击追加选择;右键拖框圈选并弹出指令气泡;Shift + 左键拖框只圈选不弹气泡。工具栏「区域 / 图元」切换框选粒度:

模式 语义
区域(默认) 穿过框的图元被选中,并记录框内那一段折线(inBand);适合改局部细节
图元 框到的图元整体选中,覆盖率不足的不选

README 说明两种模式都不用简单包围盒相交判定,以免图框、表格线在小框时被整段误选。区域模式下交给 agent 的消息会标明框选模式,长线不会被默认整条重写。

气泡 → agent

松手后气泡出现在指针位置。进入对话的消息示例(格式见 README)包含文件名、绝对路径、框选修改内容、选中图元类型与句柄、世界坐标范围,以及 selection.json 路径。同目录 JSON 记录 instruction、picks(含 layer、handle、bbox 等),agent 可直接读文件改图。

让 agent 改 DXF(可选能力)

除预览与圈选外,README 描述 agent 可通过 corncad_edit 列出图元并按句柄做结构化编辑(如 radius、text、move、layer、color、delete),写入前自动 .bak 备份,原子替换文件;DSH 文档预览 autoRefresh 默认开启时会刷新侧边栏。约束包括:只改 .dwg 需先导出 DXF、单文件超过 64 MB 拒绝编辑、任一条编辑失败则整文件不写。编辑依赖 Python 包 ezdxf;未安装时预览仍可用,编辑返回 NO_EZDXF。可通过 CORNCAD_PYTHON 指定解释器,优先使用 DSH 自带 Python 运行时。

安装与启用

先安装 DeepSeek Harness 桌面端。插件以当前 DSH profile 的进程权限运行,安装前应自行查看仓库源码与 MIT 许可证(DWG 解码组件见 THIRD-PARTY.md)。

方式一 · 插件页(推荐)
侧栏 插件 → 添加插件,填 https://github.com/xingyingyuzhui/dsh-corn-cad → 安装 → 启用。安装后重启 DeepSeek Harness(宿主半边为进程级模块)。

方式二 · 命令行

dsh plugin --profile <profile> add https://github.com/xingyingyuzhui/dsh-corn-cad

离线 / 受限网络(仅 .dwg 需要 vendor)

node tools/install-vendor.mjs --profile <profile>

(在插件包目录内执行;README 说明插件管理器无法联网时使用。)

停用可在 profile 的 cordis.patch.yml 中将 corn-cad 设为 disabled: true;卸载:

dsh plugin --profile <profile> remove dsh-corn-cad

主题(须成对修改,否则线条可能与背景同色不可见):

- id: corn-cad
  config:
    background: "#000000"
    foreground: "#ffffff"

典型用法

  1. 在文件树点开 .dxf(或已装好 DWG 依赖的 .dwg)。
  2. 右侧出现图纸与工具栏,底部显示图元总数。
  3. 右键拖框 → 选中图元高亮 → 气泡弹出,例如写「这几根线改成黑色」。
  4. Ctrl/⌘ + Enter 发送;agent 收到带路径、句柄与坐标范围的完整消息,并可读取 .corncad/selection.json。

自然语言改图示例(README):「把 165,105 那个孔改成直径 16」「标题改成『底板 240x160』」「这两个孔往右移 5mm」——由 agent 调用工具链完成定位与写入。

适用场景与注意事项

适合:在 DSH 里频繁对照 DXF/DWG、需要把「图上这一块」和文字指令绑在一起交给 agent 的开发者或 CAD 协作场景;中文工程图、局部改线型/图层/尺寸等需句柄级指代的任务。

需要心里有数:

项 说明
渲染限制 MULTILEADER 不渲染;HATCH 只画边界;部分图元类型清单外静默忽略
框选 图元模式下覆盖不足 50% 不选中;文字外框为估算
视图 不保存视图状态,重开文件回到适应宽度
依赖 Node >=20;DWG 用 GPL-3.0 的 libredwg-web;编辑用 ezdxf
生态 DSH 强调「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系

仓库提供纯 Node 自检:node test/selfcheck.mjs,通过时输出 46/46 checks passed。

结尾

dsh-corn-cad 把 CAD 对话里最难的对齐步骤落到可复现的数据上:预览、右键圈选、结构化选中集与可选的 DXF 编辑闭环。若要安装或看更新说明,可访问 SkillHub 目录页 与 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye