easyeda/pro-api-sdk

新建且未重载的 PCB 文档,铺铜 reflow 使用创建时的规则快照——之后写入的规则(读回已生效)不影响 reflow,必须 closeDocument+openDocument 才生效

Open

#34 aberto em 6 de jul. de 2026

Ver no GitHub
 (1 comment) (0 reactions) (0 assignees)TypeScript (26 forks)auto 404
help wantedseems like AI

Métricas do repositório

Stars
 (52 stars)
Métricas de merge de PR
 (Métricas PR pendentes)

Description

环境

  • EasyEDA Pro 3.2.121(macOS)
  • 通过扩展内 eda.* API 全程无 UI 操作(pro-api-sdk 2026-06 类型声明)

现象

新建且从未关闭/重开过的 PCB 文档,铺铜 reflow 使用创建文档时的规则快照:之后写入的规则(读回已生效)对 reflow 完全不生效,必须真正 close + reopen 文档后才生效。

最小复现

  1. dmt_Board.createBoard()dmt_Pcb.createPcb(boardName) 新建 PCB(本会话内从未关闭/重开该文档)
  2. 放器件、布线后,用 eda.pcb_Drc.overwriteCurrentRuleConfiguration(config) 把铺铜间距从 10mil 改到 12mil;getCurrentRuleConfiguration() 读回已是新值
  3. 触发铺铜重建(reflow / rebuild)
  4. 实测:reflow 仍按创建文档时的规则快照执行(间距按旧值 10mil)。写规则、删除重灌铺铜、tab 切走切回,全都不影响 reflow 结果
  5. 只有 dmt_EditorControl.closeDocument(tabId) + dmt_EditorControl.openDocument(uuid)(真正关闭+重开文档)之后,reflow 才读取当前规则

已重载过的文档(例如经历过应用重启的板)写规则即时生效——「同一工程两块板行为不同」即源于此,排查时非常有迷惑性。

叠加问题(快照态特有)

  • 快照态 reflow 对配置间距打约 3% 折:配置 10mil,实测按 ~9.7mil 执行
  • 快照态 reflow 不生成热焊盘(thermal relief)
  • 文档重载后两者都恢复正常

期望

写入规则后 reflow 立即使用当前规则;或提供主动刷新文档规则缓存的 API(不必 close + reopen 文档)。

相关(可另开 issue)

overwriteCurrentRuleConfiguration() 若传入 getCurrentRuleConfiguration() 的完整返回值 {name, config}静默失败(resolve undefined,规则不变),必须传 .config 裸内容——建议做参数校验直接报错,而不是静默吞掉。

Guia do colaborador