 zhou yang和Claude Opus 5.5
|
cd01640c40
|
skill:solidworks-assembly 实测笔记与脚本、easyeda-sch-geometry 补充
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
2026-10-04 19:24:42 +08:00 |
|
 zhou yang和Claude Opus 5.5
|
cae567dfd8
|
R2 焊接:丝印临时换成器件值 + 摆放优化 + 1:1 器件值打印稿
2026-09-25 为焊接底板与旧版刀片(BLADE-PCB 3b9c4e39c8d164db):
- silk_value.py:隐藏位号、在原位建自由丝印写器件值(Value,没有就用型号),
--restore 按 _silk_value_restore.json 删字并恢复位号。⚠ 再出 Gerber / 下单前必须先 --restore。
- silk_value_plan.py:器件值摆放优化(不压焊盘 / 不重叠 / 不出框 / 避开开槽与金手指区;
软代价:压过孔、压他件本体、离本件远、缩字号)。EDA 默认字体实测字宽 ≈0.78×字高。
- print_value.py:两块板背面镜像 1:1 画在同一张 A4,红框标 1 脚;
print/print_1to1.ps1 按 210×297 mm 直送打印机(不经 PDF 阅读器缩放)。
- 数据:_silk_value_geom/_extra(板上读回几何)、_dump/_plan(排位结果)。
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
2026-09-27 10:27:20 +08:00 |
|
 zhou yang和Claude Opus 5
|
5a80d8a872
|
写交接:SolidWorks 装配的接手点 + 本会话成果汇总
用户已在 SolidWorks 里手工把两块板载入同一装配体,刀片尚未摆位。
在 PROGRESS 顶部加「新会话从这里开始」作为唯一入口:当前装配体状态、
下一步(刀片绕 X +90° 竖起 + 平移到槽位)、卡点(CreateTransform 封送)、
本会话七项成果与对应提交、四条待办。
装配体状态快照存 .claude/r2/3d/_sw_assembly_state.json:
- 活动文档 D:\DCDC\新建文件夹\3D_BASE-PCB_2026-09-12.SLDASM
- 底板包围盒 x 0.01~97.99,变换为单位阵 ⇒ 原点 = 板左下角(可直接套板坐标)
- 刀片无旋转、平放,引用 PhoneRail_blade.SLDASM(实体文件)
NOTES 两处更正:
- §14 二次更正:坐标系取决于插入方式 —— AddComponent4 插的会重心归零,
用户 GUI 手工插的保留板左下角原点。动手前先 GetBox 看一眼,别假设。
- §19 新增:三个磁盘文件各是什么、底板零部件引用的是临时件(一清理就断链),
并写明新会话第一件事不要 CloseAllDocuments。
新建文件夹/(126 MB STEP/SLDASM)加进 .gitignore。
Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_0168Bu6SEx3cXXCJLkdnE6zB
|
2026-09-12 14:48:48 +08:00 |
|
 zhou yang和Claude Opus 5
|
ff50ccd4b0
|
新增 solidworks-assembly skill:EasyEDA STEP → SolidWorks 装配与干涉检查
本机环境已实测:SOLIDWORKS 2025 SP01.1(RevisionNumber 33.1.1)、
Python 3.14.3 64 位 + pywin32,GetActiveObject 可挂已开实例。
已跑通的链路:
- EasyEDA get3DFile 导 STEP —— 桥有 30s 硬超时,必须异步启动+轮询;
4MB 分块 base64 取回(刀片 31.2MB/25s,底板 53.9MB/44s)
- GetImportFileData + LoadFile4 导入(得到带位号的装配树,一块板 95 个文档)
- 遍历 GetDocuments 拿临时顶层 SLDASM → AddComponent4 插入(⛔ AddComponent5 恒返回 None)
- ToolsCheckInterference2(0, EMPTY, False, pc, pf) 5 参形式可调
- CloseAllDocuments(True) 清理(295 文档 0.9s)
⛔ 未完成:刀片摆位(CreateTransform 卡在 pywin32 封送)、
坐标系(插入后两板被重心归零,§14 的平移量不能直接用)。
⇒ 现状能装能查,但两板堆在原点,干涉结果无工程意义。
NOTES-probed.md 记了 18 节实测坑,包括:
- 无参成员是属性不是方法(含 GetMathUtility 这个例外)
- SaveAs3 返回 True 但写出的是废件(外部引用断链)
- LoadFile4 不会插进当前装配体
- 动态派发"找不到成员"时用 _oleobj_.GetIDsOfNames + Invoke 绕行
Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_0168Bu6SEx3cXXCJLkdnE6zB
|
2026-09-12 14:08:36 +08:00 |
|
 zhou yang和Claude Opus 5
|
22d9f31e9b
|
R2 底板:补 6 条自由丝印(插槽 NOT PCIe 警告 + J1/J23 接口标注)
板上 pcb_PrimitiveString 原本 0 条 —— 方案 §5.2 要求的插槽警告、J1/J23 的接口标注
一直只写在原理图说明文字里,从没落到 PCB。
已补并读回核对 6/6:
- PWR 20V L4 (12.500, 1.800) J1 与 J23 同一颗 USB-C 座,插错要能看出来
- USB L4 (84.250, 1.800) J23 是 Hub 上行口
- NOT PCIe - PhoneRail blade only L3 (49.000, 79.480)
- NOT PCIe ×3 L3 (36.000,18.520) / (62.000,38.840) / (45.000,59.160)
完整句只放得下一条,其余槽间放短标 ⇒ 五个槽每个都邻着一条。
三条坑(已写进 R2 §39.5):
- ⛔ 丝印压铜不算冲突(铜上有阻焊)。第一版把压铜也当冲突,六个候选位全军覆没,
看着像「板上没地方放字」。真正要避的只有 焊盘 / 过孔 / 位号 / 安装孔 / 板框外。
- ⚠ alignMode 要显式传 5(CENTER),不传默认不是居中,字会整体偏出去;
位号 Attribute 用的 3 是另一套口径。
- ⚠ 核对不能拿文案当字典 key:NOT PCIe 有三条,同名互相覆盖 ⇒
「6 条都建上了」却报成「4/6 对上」。按 文案+坐标+层 配对。
新工具 silk_str.py:自带落点搜索(0.25 步长 + 偏移上限)、幂等下发、--verify 只读核对。
Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_0168Bu6SEx3cXXCJLkdnE6zB
|
2026-09-12 12:48:15 +08:00 |
|
 zhou yang和Claude Opus 5
|
dc4f9b9d1c
|
R2 刀片:金手指两侧开台阶(插不进插槽)+ 铺铜补齐并跟着台阶重画
⛔ 根因:禁布区 ≠ 板材。ZONES['finger'] 早写着「槽体 ~9mm 要让开」,但那只是
「别放件」,板框从来没开台阶 —— outline_pts() 第一段就是 (r,0)→(BW-r,0),
90 mm 宽的板材一直到 y=0。插槽塑料体只有 39 mm 且两端封闭 ⇒ 插不到底。
板框(用户拍板):舌头 36.0 mm(x 27~63)/ 台阶高 12.0 / 内凹角 R1.0,切掉 648 mm²(10.6%)。
放行核算:被切区里铜 0 / 孔 0 / 焊盘 0 / 器件 0(板上读回与缓存两种口径一致);
7 个定位孔最南 y=14.46 全在板材上;铣穿槽 y 56.86 不受影响。
代价:主板投影底边在舌头两侧悬空 1.0 mm,靠 7 个 M1.6 尼龙立柱压住,无害。
铺铜:抓板发现板上只有 11 块(L1/L4 的 GND 底填整层缺失,而记录写的是 25/25)。
补齐后按台阶重画成 31 块(L2 11 + L1 9 + L4 9 + L3 两岛),填充 31/31,DRC 间距 0 条。
+12V 岛改成阶梯形单环:舌头段仍下探 y=9.0 接 12V 三指 launch 孔,东段抬到 12.5,
断面 11.0 → 7.5 mm(1 oz 内层约 5.1 A,需求 1.5 A 峰值)。
两条判据上的坑:
- 阶梯形多边形不能按包围盒判越界(+12V 岛会误报)⇒ 改成逐边 0.25 mm 采样。
- pcb_pour.inner_poly()/outer_poly() 是死函数,plan() 只用 gnd_tiles()。
Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_0168Bu6SEx3cXXCJLkdnE6zB
|
2026-09-12 12:36:36 +08:00 |
|
 zhou yang和Claude Opus 5
|
312089326e
|
R2 底板:按用户布局重布风扇窗口 + L1 走廊重开 + 位号丝印重排
布线(窗口整体重布,已下发):
- 拆窗口内 43 段(用户手布的那批,用户选「拆掉重来」),补 139 段 / 7 孔,
GND 回流孔 10 个;fan_check 对板上真实快照逐项净距达标(含「新孔 vs 内层线」)。
- ⛔ 根因:pcb_base.PD_L1 里的 L1 走廊是按**旧摆位**开的(注释坐标全是旧的),
用户重摆后与件对不上 ⇒ 四条长途网必然布不通。重开六条走廊后未完成 4 → 2。
走廊必须盖住焊盘正上方,只盖沿途不行。断面:几何 11.80 / 铺铜后实测 9.82(要 8.0)。
- 与拆线前逐网对比:没引入任何新的连通性问题(GND 未接 58→48、+3V3 2→0、
两路 TACH 2/1→0、+12V 一字不差)。
定版:板上铜以**用户自己布好的那版**为准,不再改动。
丝印(silk_base.py,已下发并读回核对 150/150):
- 压焊盘 128→4、压过孔 48→8、越框 8→3、互相重叠 34 对→0;字号不变。
- 三条坑:rotation 是度且不归一化(900=180°);别拿「本体≥5mm」当保留白名单
(会豁免掉 R9A/D3/U13 这些该重排的件);「离本体」必须设硬上限 + 降级策略。
新工具:silk_base.py(丝印重排)、l1_section.py(L1 12V 主块逐 y 断面核算)、
fan_rip.py(按窗口拆线,拆前后比对全板线/孔总数防连带删除)。
Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_0168Bu6SEx3cXXCJLkdnE6zB
|
2026-09-12 12:02:32 +08:00 |
|
 zhou yang和Claude Opus 5
|
51b570a59f
|
R2 底板:删 J1 通孔地脚里的 12 个过孔、天线缺口东移 0.3,写交接
- 板上与布线缓存同步删掉 J1.2 / J1.3 里误打的 12 个 GND 过孔(TH_KEYS 改名 bug 已在上一提交修)
- 天线缺口西沿 90.5 → 90.8:U20 地脚 1/40 到缺口边 0.155 → 0.454 mm,板框已重画并校验
- PROGRESS 顶部加「下次从这里开始」:填铜、DRC 挖槽区域、37 个网手工补线的顺序
Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_0168Bu6SEx3cXXCJLkdnE6zB
|
2026-09-10 21:04:07 +08:00 |
|
 zhou yang和Claude Opus 5
|
efcba30a0c
|
R2 底板改 4 层(D15):规则 / 几何 / 背面摆位 / 4 层布线与铺铜,已下发
- 规则:铜层 2→4,差分 0.28/0.18,间距 0.15,过孔 0.3/0.2(rules_base)
- 几何:98×98 板框 + 4×M3,槽阵居中,L1 12V 大铜 + 指头(pcb_base)
- 摆位:五插槽留 L1,其余 133 件翻到 L4;背面镜像规则实测;Hub 放走廊 2、
东移 2.5 mm;扇出圈 / 小件间距 1.5(去耦例外)/ 9 A 过孔阵禁区(place_base)
- 叠层按用户决定改为 L1 槽面 / L2 整层 +3V3 / L3 整层 GND / L4 器件面
- 布线:D± 七对按构造布通(USB3 掉头、USB1/2 北去掉头、USB4/5 东绕、
J23 桥),+3V3 / GND / +12V 平面网每脚一孔,0.125 网格 + PathFinder
开关(route_base、remote_route.ps1);剩 37 个网待手工补
- 铺铜:4 层重写,入口链自南向北切段 + 断面校核(pour_base);
已下发布线 / 缝合孔 / 铜面轮廓,填铜未成功(待查)
- 工具:plot_base / plot_routes / shot_base,board_check 通孔两层都算
Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_0168Bu6SEx3cXXCJLkdnE6zB
|
2026-09-10 21:02:10 +08:00 |
|
 zhou yang和Claude Opus 5
|
2bfe308b30
|
初始导入:PhoneRail 五路手机直供电源板
原理图/PCB 已在 EasyEDA 里做到 12 页跨页 0 漏接,固件刚完成骨架包 A1。
这次是把已有的一切一次性纳入版本控制,没有改动任何设计内容。
纳入:
- 设计与需求文档、PROGRESS.md、小米8 参考原理图 PDF 与追脚脚本
- .claude/ 下的 EasyEDA 桥接工具链与几何/网表缓存(eda-parts.json、
pcb-parts.json、pcb-pads.json、p2-ch1.json 等,是重画各页的唯一事实来源)
- 117 张验证截图(本项目所有方向问题都是靠人眼看截图发现的,属于证据不是垃圾)
- firmware/ 的 A1 骨架与 site/ 文档站源码
.gitignore 排除:构建产物(firmware/build、host/build、sdkconfig)、
site/node_modules、__pycache__、桥接日志 _bridge.log、脚本自标的 *.stale。
.gitattributes 默认 `* -text`:现有 .py/.json 大多是 CRLF,原样存,
不让 git 重写行尾。唯一例外是 *.sh 强制 LF —— 带 \r 的 shell 脚本 bash 跑不了。
Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01QYuExfgyYa6DzRRcUso8M8
|
2026-09-06 18:18:14 +08:00 |
|