初始导入: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
这个提交包含在:
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"new": {
|
||||
"EFUSE_EN1": 32,
|
||||
"EFUSE_EN2": 25,
|
||||
"EFUSE_EN3": 6,
|
||||
"EFUSE_EN4": 34,
|
||||
"EFUSE_EN5": 12,
|
||||
"FAN_PWM": 11,
|
||||
"FAN_TACH": 9,
|
||||
"IOEXP_INT#": 31,
|
||||
"KEY_OE#": 23,
|
||||
"KEY_RCLK": 17,
|
||||
"KEY_SER": 21,
|
||||
"KEY_SRCLK": 20,
|
||||
"NTC1": 39,
|
||||
"NTC2": 38,
|
||||
"SCL": 8,
|
||||
"SDA": 22,
|
||||
"UP_VBUS_DET": 24,
|
||||
"VBUS_EN1": 33,
|
||||
"VBUS_EN2": 18,
|
||||
"VBUS_EN3": 19,
|
||||
"VBUS_EN4": 35,
|
||||
"VBUS_EN5": 10
|
||||
},
|
||||
"old": {
|
||||
"EFUSE_EN1": 4,
|
||||
"EFUSE_EN2": 5,
|
||||
"EFUSE_EN3": 6,
|
||||
"EFUSE_EN4": 7,
|
||||
"SCL": 8,
|
||||
"KEY_SER": 9,
|
||||
"KEY_SRCLK": 10,
|
||||
"KEY_RCLK": 11,
|
||||
"EFUSE_EN5": 12,
|
||||
"VBUS_EN1": 17,
|
||||
"VBUS_EN2": 18,
|
||||
"VBUS_EN3": 19,
|
||||
"VBUS_EN4": 20,
|
||||
"VBUS_EN5": 21,
|
||||
"SDA": 22,
|
||||
"KEY_OE#": 23,
|
||||
"FAN_PWM": 24,
|
||||
"FAN_TACH": 25,
|
||||
"IOEXP_INT#": 31,
|
||||
"UP_VBUS_DET": 36,
|
||||
"NTC2": 38,
|
||||
"NTC1": 39
|
||||
},
|
||||
"pin2io": {
|
||||
"4": "IO4",
|
||||
"5": "IO5",
|
||||
"6": "IO6",
|
||||
"7": "IO7",
|
||||
"8": "IO15",
|
||||
"9": "IO16",
|
||||
"10": "IO17",
|
||||
"11": "IO18",
|
||||
"12": "IO8",
|
||||
"17": "IO9",
|
||||
"18": "IO10",
|
||||
"19": "IO11",
|
||||
"20": "IO12",
|
||||
"21": "IO13",
|
||||
"22": "IO14",
|
||||
"23": "IO21",
|
||||
"24": "IO47",
|
||||
"25": "IO48",
|
||||
"31": "IO38",
|
||||
"36": "IO44",
|
||||
"38": "IO2",
|
||||
"39": "IO1",
|
||||
"32": "IO39",
|
||||
"33": "IO40",
|
||||
"34": "IO41",
|
||||
"35": "IO42"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,756 @@
|
||||
{
|
||||
"C740": [
|
||||
[
|
||||
"2",
|
||||
"GND",
|
||||
3993,
|
||||
2638
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"XTAL1",
|
||||
3960,
|
||||
2638
|
||||
]
|
||||
],
|
||||
"C741": [
|
||||
[
|
||||
"2",
|
||||
"GND",
|
||||
4702,
|
||||
2638
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"XTAL2",
|
||||
4669,
|
||||
2638
|
||||
]
|
||||
],
|
||||
"C742": [
|
||||
[
|
||||
"2",
|
||||
"GND",
|
||||
4347,
|
||||
2992
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"VDD18",
|
||||
4314,
|
||||
2992
|
||||
]
|
||||
],
|
||||
"C743": [
|
||||
[
|
||||
"2",
|
||||
"GND",
|
||||
4229,
|
||||
2284
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"VDD18PLL",
|
||||
4196,
|
||||
2284
|
||||
]
|
||||
],
|
||||
"C744": [
|
||||
[
|
||||
"2",
|
||||
"GND",
|
||||
4465,
|
||||
2284
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"+3V3_HUB",
|
||||
4432,
|
||||
2284
|
||||
]
|
||||
],
|
||||
"C745": [
|
||||
[
|
||||
"2",
|
||||
"GND",
|
||||
3993,
|
||||
2520
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"+3V3_HUB",
|
||||
3960,
|
||||
2520
|
||||
]
|
||||
],
|
||||
"C746": [
|
||||
[
|
||||
"2",
|
||||
"GND",
|
||||
4702,
|
||||
2520
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"+3V3_HUB",
|
||||
4669,
|
||||
2520
|
||||
]
|
||||
],
|
||||
"C747": [
|
||||
[
|
||||
"2",
|
||||
"GND",
|
||||
3993,
|
||||
2756
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"+3V3_HUB",
|
||||
3960,
|
||||
2756
|
||||
]
|
||||
],
|
||||
"C748": [
|
||||
[
|
||||
"2",
|
||||
"GND",
|
||||
4702,
|
||||
2756
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"+3V3_HUB",
|
||||
4669,
|
||||
2756
|
||||
]
|
||||
],
|
||||
"C749": [
|
||||
[
|
||||
"2",
|
||||
"GND",
|
||||
4229,
|
||||
2992
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"+3V3_HUB",
|
||||
4196,
|
||||
2992
|
||||
]
|
||||
],
|
||||
"C750": [
|
||||
[
|
||||
"2",
|
||||
"GND",
|
||||
4465,
|
||||
2992
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"+3V3_HUB",
|
||||
4432,
|
||||
2992
|
||||
]
|
||||
],
|
||||
"C751": [
|
||||
[
|
||||
"2",
|
||||
"GND",
|
||||
4134,
|
||||
2284
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"+3V3_HUB",
|
||||
4055,
|
||||
2284
|
||||
]
|
||||
],
|
||||
"R708": [
|
||||
[
|
||||
"2",
|
||||
"GND",
|
||||
4584,
|
||||
2284
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"RBIAS",
|
||||
4550,
|
||||
2284
|
||||
]
|
||||
],
|
||||
"R709": [
|
||||
[
|
||||
"2",
|
||||
"VBUS_DET",
|
||||
3993,
|
||||
2402
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"VBUS_UP",
|
||||
3959,
|
||||
2402
|
||||
]
|
||||
],
|
||||
"R710": [
|
||||
[
|
||||
"2",
|
||||
"GND",
|
||||
4702,
|
||||
2402
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"VBUS_DET",
|
||||
4668,
|
||||
2402
|
||||
]
|
||||
],
|
||||
"R711": [
|
||||
[
|
||||
"2",
|
||||
"GND",
|
||||
3993,
|
||||
2874
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"CFGSEL0",
|
||||
3959,
|
||||
2874
|
||||
]
|
||||
],
|
||||
"R712": [
|
||||
[
|
||||
"2",
|
||||
"GND",
|
||||
4702,
|
||||
2874
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"CFGSEL1",
|
||||
4668,
|
||||
2874
|
||||
]
|
||||
],
|
||||
"R714": [
|
||||
[
|
||||
"2",
|
||||
"+3V3_HUB",
|
||||
4112,
|
||||
2992
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"PRTDIS6",
|
||||
4078,
|
||||
2992
|
||||
]
|
||||
],
|
||||
"R715": [
|
||||
[
|
||||
"2",
|
||||
"+3V3_HUB",
|
||||
4584,
|
||||
2992
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"PRTDIS7",
|
||||
4550,
|
||||
2992
|
||||
]
|
||||
],
|
||||
"R716": [
|
||||
[
|
||||
"2",
|
||||
"+3V3_HUB",
|
||||
4348,
|
||||
2165
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"HUB_RST",
|
||||
4314,
|
||||
2165
|
||||
]
|
||||
],
|
||||
"R717": [
|
||||
[
|
||||
"2",
|
||||
"GND",
|
||||
3875,
|
||||
2638
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"$16N222",
|
||||
3841,
|
||||
2638
|
||||
]
|
||||
],
|
||||
"R718": [
|
||||
[
|
||||
"2",
|
||||
"GND",
|
||||
4820,
|
||||
2638
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"$16N224",
|
||||
4786,
|
||||
2638
|
||||
]
|
||||
],
|
||||
"R719": [
|
||||
[
|
||||
"2",
|
||||
"GND",
|
||||
4348,
|
||||
3110
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"NONREM1",
|
||||
4314,
|
||||
3110
|
||||
]
|
||||
],
|
||||
"R720": [
|
||||
[
|
||||
"2",
|
||||
"GND",
|
||||
4230,
|
||||
2165
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"NONREM0",
|
||||
4196,
|
||||
2165
|
||||
]
|
||||
],
|
||||
"U32": [
|
||||
[
|
||||
"16",
|
||||
"",
|
||||
4156,
|
||||
2785
|
||||
],
|
||||
[
|
||||
"15",
|
||||
"",
|
||||
4156,
|
||||
2766
|
||||
],
|
||||
[
|
||||
"14",
|
||||
"",
|
||||
4156,
|
||||
2746
|
||||
],
|
||||
[
|
||||
"13",
|
||||
"GND",
|
||||
4156,
|
||||
2726
|
||||
],
|
||||
[
|
||||
"12",
|
||||
"USB5_DP",
|
||||
4156,
|
||||
2707
|
||||
],
|
||||
[
|
||||
"11",
|
||||
"USB5_DM",
|
||||
4156,
|
||||
2687
|
||||
],
|
||||
[
|
||||
"10",
|
||||
"+3V3_HUB",
|
||||
4156,
|
||||
2667
|
||||
],
|
||||
[
|
||||
"9",
|
||||
"USB4_DP",
|
||||
4156,
|
||||
2648
|
||||
],
|
||||
[
|
||||
"8",
|
||||
"USB4_DM",
|
||||
4156,
|
||||
2628
|
||||
],
|
||||
[
|
||||
"7",
|
||||
"USB3_DP",
|
||||
4156,
|
||||
2608
|
||||
],
|
||||
[
|
||||
"6",
|
||||
"USB3_DM",
|
||||
4156,
|
||||
2589
|
||||
],
|
||||
[
|
||||
"5",
|
||||
"+3V3_HUB",
|
||||
4156,
|
||||
2569
|
||||
],
|
||||
[
|
||||
"4",
|
||||
"USB2_DP",
|
||||
4156,
|
||||
2549
|
||||
],
|
||||
[
|
||||
"3",
|
||||
"USB2_DM",
|
||||
4156,
|
||||
2530
|
||||
],
|
||||
[
|
||||
"2",
|
||||
"USB1_DP",
|
||||
4156,
|
||||
2510
|
||||
],
|
||||
[
|
||||
"1",
|
||||
"USB1_DM",
|
||||
4156,
|
||||
2490
|
||||
],
|
||||
[
|
||||
"17",
|
||||
"",
|
||||
4183,
|
||||
2813
|
||||
],
|
||||
[
|
||||
"18",
|
||||
"",
|
||||
4203,
|
||||
2813
|
||||
],
|
||||
[
|
||||
"19",
|
||||
"GND",
|
||||
4222,
|
||||
2813
|
||||
],
|
||||
[
|
||||
"20",
|
||||
"",
|
||||
4242,
|
||||
2813
|
||||
],
|
||||
[
|
||||
"21",
|
||||
"",
|
||||
4262,
|
||||
2813
|
||||
],
|
||||
[
|
||||
"22",
|
||||
"",
|
||||
4282,
|
||||
2813
|
||||
],
|
||||
[
|
||||
"23",
|
||||
"",
|
||||
4301,
|
||||
2813
|
||||
],
|
||||
[
|
||||
"24",
|
||||
"+3V3_HUB",
|
||||
4321,
|
||||
2813
|
||||
],
|
||||
[
|
||||
"25",
|
||||
"VDD18",
|
||||
4341,
|
||||
2813
|
||||
],
|
||||
[
|
||||
"26",
|
||||
"",
|
||||
4360,
|
||||
2813
|
||||
],
|
||||
[
|
||||
"27",
|
||||
"",
|
||||
4380,
|
||||
2813
|
||||
],
|
||||
[
|
||||
"28",
|
||||
"",
|
||||
4400,
|
||||
2813
|
||||
],
|
||||
[
|
||||
"29",
|
||||
"",
|
||||
4419,
|
||||
2813
|
||||
],
|
||||
[
|
||||
"30",
|
||||
"",
|
||||
4439,
|
||||
2813
|
||||
],
|
||||
[
|
||||
"31",
|
||||
"",
|
||||
4459,
|
||||
2813
|
||||
],
|
||||
[
|
||||
"32",
|
||||
"",
|
||||
4478,
|
||||
2813
|
||||
],
|
||||
[
|
||||
"33",
|
||||
"",
|
||||
4506,
|
||||
2785
|
||||
],
|
||||
[
|
||||
"34",
|
||||
"",
|
||||
4506,
|
||||
2766
|
||||
],
|
||||
[
|
||||
"35",
|
||||
"",
|
||||
4506,
|
||||
2746
|
||||
],
|
||||
[
|
||||
"36",
|
||||
"",
|
||||
4506,
|
||||
2726
|
||||
],
|
||||
[
|
||||
"37",
|
||||
"",
|
||||
4506,
|
||||
2707
|
||||
],
|
||||
[
|
||||
"38",
|
||||
"",
|
||||
4506,
|
||||
2687
|
||||
],
|
||||
[
|
||||
"39",
|
||||
"",
|
||||
4506,
|
||||
2667
|
||||
],
|
||||
[
|
||||
"40",
|
||||
"NONREM1",
|
||||
4506,
|
||||
2648
|
||||
],
|
||||
[
|
||||
"41",
|
||||
"CFGSEL0",
|
||||
4506,
|
||||
2628
|
||||
],
|
||||
[
|
||||
"42",
|
||||
"CFGSEL1",
|
||||
4506,
|
||||
2608
|
||||
],
|
||||
[
|
||||
"43",
|
||||
"HUB_RST",
|
||||
4506,
|
||||
2589
|
||||
],
|
||||
[
|
||||
"44",
|
||||
"VBUS_DET",
|
||||
4506,
|
||||
2569
|
||||
],
|
||||
[
|
||||
"45",
|
||||
"NONREM0",
|
||||
4506,
|
||||
2549
|
||||
],
|
||||
[
|
||||
"46",
|
||||
"+3V3_HUB",
|
||||
4506,
|
||||
2530
|
||||
],
|
||||
[
|
||||
"47",
|
||||
"",
|
||||
4506,
|
||||
2510
|
||||
],
|
||||
[
|
||||
"48",
|
||||
"",
|
||||
4506,
|
||||
2490
|
||||
],
|
||||
[
|
||||
"49",
|
||||
"",
|
||||
4478,
|
||||
2463
|
||||
],
|
||||
[
|
||||
"50",
|
||||
"",
|
||||
4459,
|
||||
2463
|
||||
],
|
||||
[
|
||||
"51",
|
||||
"",
|
||||
4439,
|
||||
2463
|
||||
],
|
||||
[
|
||||
"52",
|
||||
"+3V3_HUB",
|
||||
4419,
|
||||
2463
|
||||
],
|
||||
[
|
||||
"53",
|
||||
"",
|
||||
4400,
|
||||
2463
|
||||
],
|
||||
[
|
||||
"54",
|
||||
"PRTDIS6",
|
||||
4380,
|
||||
2463
|
||||
],
|
||||
[
|
||||
"55",
|
||||
"",
|
||||
4360,
|
||||
2463
|
||||
],
|
||||
[
|
||||
"56",
|
||||
"PRTDIS7",
|
||||
4341,
|
||||
2463
|
||||
],
|
||||
[
|
||||
"57",
|
||||
"+3V3_HUB",
|
||||
4321,
|
||||
2463
|
||||
],
|
||||
[
|
||||
"58",
|
||||
"UP_DM",
|
||||
4301,
|
||||
2463
|
||||
],
|
||||
[
|
||||
"59",
|
||||
"UP_DP",
|
||||
4282,
|
||||
2463
|
||||
],
|
||||
[
|
||||
"60",
|
||||
"XTAL2",
|
||||
4262,
|
||||
2463
|
||||
],
|
||||
[
|
||||
"61",
|
||||
"XTAL1",
|
||||
4242,
|
||||
2463
|
||||
],
|
||||
[
|
||||
"62",
|
||||
"VDD18PLL",
|
||||
4222,
|
||||
2463
|
||||
],
|
||||
[
|
||||
"63",
|
||||
"RBIAS",
|
||||
4203,
|
||||
2463
|
||||
],
|
||||
[
|
||||
"64",
|
||||
"+3V3_HUB",
|
||||
4183,
|
||||
2463
|
||||
],
|
||||
[
|
||||
"65",
|
||||
"GND",
|
||||
4331,
|
||||
2638
|
||||
]
|
||||
],
|
||||
"Y1": [
|
||||
[
|
||||
"1",
|
||||
"XTAL1",
|
||||
4287,
|
||||
2317
|
||||
],
|
||||
[
|
||||
"2",
|
||||
"GND",
|
||||
4374,
|
||||
2317
|
||||
],
|
||||
[
|
||||
"3",
|
||||
"XTAL2",
|
||||
4374,
|
||||
2250
|
||||
],
|
||||
[
|
||||
"4",
|
||||
"GND",
|
||||
4287,
|
||||
2250
|
||||
]
|
||||
]
|
||||
}
|
||||
文件差异因一行或多行过长而隐藏
@@ -0,0 +1,326 @@
|
||||
{
|
||||
"J25": [
|
||||
[
|
||||
"1",
|
||||
"+5V"
|
||||
],
|
||||
[
|
||||
"2",
|
||||
"+5V"
|
||||
],
|
||||
[
|
||||
"3",
|
||||
"+5V"
|
||||
],
|
||||
[
|
||||
"4",
|
||||
"+5V"
|
||||
],
|
||||
[
|
||||
"5",
|
||||
"POGO2_PWR"
|
||||
],
|
||||
[
|
||||
"6",
|
||||
"VBUS_EN5"
|
||||
],
|
||||
[
|
||||
"7",
|
||||
"POGO2_VUP"
|
||||
],
|
||||
[
|
||||
"8",
|
||||
"EDL_EN5"
|
||||
],
|
||||
[
|
||||
"9",
|
||||
"POGO2_VDN"
|
||||
],
|
||||
[
|
||||
"10",
|
||||
"GND"
|
||||
],
|
||||
[
|
||||
"11",
|
||||
"EDL_EN2"
|
||||
],
|
||||
[
|
||||
"12",
|
||||
"GND"
|
||||
],
|
||||
[
|
||||
"13",
|
||||
"VBUS_EN2"
|
||||
],
|
||||
[
|
||||
"14",
|
||||
"GND"
|
||||
],
|
||||
[
|
||||
"15",
|
||||
"HUB_RST"
|
||||
],
|
||||
[
|
||||
"16",
|
||||
"GND"
|
||||
],
|
||||
[
|
||||
"17",
|
||||
"GND"
|
||||
],
|
||||
[
|
||||
"18",
|
||||
"VO5_P"
|
||||
],
|
||||
[
|
||||
"19",
|
||||
"GND"
|
||||
],
|
||||
[
|
||||
"20",
|
||||
"VO5_P"
|
||||
],
|
||||
[
|
||||
"21",
|
||||
"GND"
|
||||
],
|
||||
[
|
||||
"22",
|
||||
"VO5_P"
|
||||
],
|
||||
[
|
||||
"23",
|
||||
"POGO3_PWR"
|
||||
],
|
||||
[
|
||||
"24",
|
||||
"POGO5_PWR"
|
||||
],
|
||||
[
|
||||
"25",
|
||||
"POGO3_VUP"
|
||||
],
|
||||
[
|
||||
"26",
|
||||
"POGO5_VUP"
|
||||
],
|
||||
[
|
||||
"27",
|
||||
"POGO3_VDN"
|
||||
],
|
||||
[
|
||||
"28",
|
||||
"POGO5_VDN"
|
||||
],
|
||||
[
|
||||
"29",
|
||||
"VO3_P"
|
||||
],
|
||||
[
|
||||
"30",
|
||||
"GND"
|
||||
],
|
||||
[
|
||||
"31",
|
||||
"VO3_P"
|
||||
],
|
||||
[
|
||||
"32",
|
||||
"GND"
|
||||
],
|
||||
[
|
||||
"33",
|
||||
"VO3_P"
|
||||
],
|
||||
[
|
||||
"34",
|
||||
"GND"
|
||||
],
|
||||
[
|
||||
"35",
|
||||
"EDL_EN3"
|
||||
],
|
||||
[
|
||||
"36",
|
||||
"GND"
|
||||
],
|
||||
[
|
||||
"37",
|
||||
"VBUS_EN3"
|
||||
],
|
||||
[
|
||||
"38",
|
||||
"GND"
|
||||
],
|
||||
[
|
||||
"39",
|
||||
"+5V"
|
||||
],
|
||||
[
|
||||
"40",
|
||||
"+5V"
|
||||
]
|
||||
],
|
||||
"J24": [
|
||||
[
|
||||
"1",
|
||||
"VO1_P"
|
||||
],
|
||||
[
|
||||
"2",
|
||||
"GND"
|
||||
],
|
||||
[
|
||||
"3",
|
||||
"VO1_P"
|
||||
],
|
||||
[
|
||||
"4",
|
||||
"GND"
|
||||
],
|
||||
[
|
||||
"5",
|
||||
"VO1_P"
|
||||
],
|
||||
[
|
||||
"6",
|
||||
"GND"
|
||||
],
|
||||
[
|
||||
"7",
|
||||
"+5V"
|
||||
],
|
||||
[
|
||||
"8",
|
||||
"GND"
|
||||
],
|
||||
[
|
||||
"9",
|
||||
"+5V"
|
||||
],
|
||||
[
|
||||
"10",
|
||||
"GND"
|
||||
],
|
||||
[
|
||||
"11",
|
||||
"POGO1_PWR"
|
||||
],
|
||||
[
|
||||
"12",
|
||||
"POGO4_PWR"
|
||||
],
|
||||
[
|
||||
"13",
|
||||
"POGO1_VUP"
|
||||
],
|
||||
[
|
||||
"14",
|
||||
"POGO4_VUP"
|
||||
],
|
||||
[
|
||||
"15",
|
||||
"POGO1_VDN"
|
||||
],
|
||||
[
|
||||
"16",
|
||||
"POGO4_VDN"
|
||||
],
|
||||
[
|
||||
"17",
|
||||
"EDL_EN1"
|
||||
],
|
||||
[
|
||||
"18",
|
||||
"EDL_EN4"
|
||||
],
|
||||
[
|
||||
"19",
|
||||
"VBUS_EN1"
|
||||
],
|
||||
[
|
||||
"20",
|
||||
"VBUS_EN4"
|
||||
],
|
||||
[
|
||||
"21",
|
||||
"SDA"
|
||||
],
|
||||
[
|
||||
"22",
|
||||
"+5V"
|
||||
],
|
||||
[
|
||||
"23",
|
||||
"SCL"
|
||||
],
|
||||
[
|
||||
"24",
|
||||
"+5V"
|
||||
],
|
||||
[
|
||||
"25",
|
||||
"GND"
|
||||
],
|
||||
[
|
||||
"26",
|
||||
"UP_VBUS_DET"
|
||||
],
|
||||
[
|
||||
"27",
|
||||
"GND"
|
||||
],
|
||||
[
|
||||
"28",
|
||||
"GND"
|
||||
],
|
||||
[
|
||||
"29",
|
||||
"GND"
|
||||
],
|
||||
[
|
||||
"30",
|
||||
"VO4_P"
|
||||
],
|
||||
[
|
||||
"31",
|
||||
"GND"
|
||||
],
|
||||
[
|
||||
"32",
|
||||
"VO4_P"
|
||||
],
|
||||
[
|
||||
"33",
|
||||
"GND"
|
||||
],
|
||||
[
|
||||
"34",
|
||||
"VO4_P"
|
||||
],
|
||||
[
|
||||
"35",
|
||||
"VO2_P"
|
||||
],
|
||||
[
|
||||
"36",
|
||||
"GND"
|
||||
],
|
||||
[
|
||||
"37",
|
||||
"VO2_P"
|
||||
],
|
||||
[
|
||||
"38",
|
||||
"GND"
|
||||
],
|
||||
[
|
||||
"39",
|
||||
"VO2_P"
|
||||
],
|
||||
[
|
||||
"40",
|
||||
"GND"
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"opened": true,
|
||||
"seq": [],
|
||||
"buttons": [
|
||||
"刷新",
|
||||
"新增",
|
||||
"报告错误",
|
||||
"批量操作",
|
||||
"弹出窗口",
|
||||
"放置",
|
||||
"S",
|
||||
"F",
|
||||
"P",
|
||||
"3D",
|
||||
"导出报告",
|
||||
"应用修改",
|
||||
"取消"
|
||||
]
|
||||
}
|
||||
文件差异因一行或多行过长而隐藏
@@ -0,0 +1,726 @@
|
||||
{
|
||||
"success": true,
|
||||
"result": [
|
||||
[
|
||||
"25f01320c7bb44a2",
|
||||
"",
|
||||
[
|
||||
120,
|
||||
615,
|
||||
160,
|
||||
615,
|
||||
205,
|
||||
615,
|
||||
160,
|
||||
615,
|
||||
160,
|
||||
615,
|
||||
160,
|
||||
635,
|
||||
160,
|
||||
635,
|
||||
140,
|
||||
635,
|
||||
160,
|
||||
690,
|
||||
160,
|
||||
635,
|
||||
160,
|
||||
690,
|
||||
135,
|
||||
690,
|
||||
160,
|
||||
700,
|
||||
160,
|
||||
690,
|
||||
120,
|
||||
590,
|
||||
120,
|
||||
615
|
||||
]
|
||||
],
|
||||
[
|
||||
"9253e68f958f5f21",
|
||||
"",
|
||||
[
|
||||
80,
|
||||
690,
|
||||
105,
|
||||
690,
|
||||
80,
|
||||
690,
|
||||
80,
|
||||
635,
|
||||
80,
|
||||
635,
|
||||
100,
|
||||
635,
|
||||
80,
|
||||
450,
|
||||
80,
|
||||
635,
|
||||
80,
|
||||
450,
|
||||
120,
|
||||
450,
|
||||
120,
|
||||
450,
|
||||
120,
|
||||
470
|
||||
]
|
||||
],
|
||||
[
|
||||
"2ac799a6dbcecf28",
|
||||
"",
|
||||
[
|
||||
190,
|
||||
605,
|
||||
205,
|
||||
605,
|
||||
190,
|
||||
530,
|
||||
190,
|
||||
605,
|
||||
120,
|
||||
530,
|
||||
190,
|
||||
530,
|
||||
120,
|
||||
550,
|
||||
120,
|
||||
530,
|
||||
120,
|
||||
510,
|
||||
120,
|
||||
530
|
||||
]
|
||||
],
|
||||
[
|
||||
"f645f3c1acd494e6",
|
||||
"",
|
||||
[
|
||||
320,
|
||||
440,
|
||||
295,
|
||||
440,
|
||||
320,
|
||||
430,
|
||||
320,
|
||||
440,
|
||||
320,
|
||||
430,
|
||||
295,
|
||||
430,
|
||||
320,
|
||||
430,
|
||||
320,
|
||||
400,
|
||||
320,
|
||||
400,
|
||||
295,
|
||||
400,
|
||||
320,
|
||||
380,
|
||||
320,
|
||||
400
|
||||
]
|
||||
],
|
||||
[
|
||||
"feb93b00a6f625c5",
|
||||
"",
|
||||
[
|
||||
340,
|
||||
790,
|
||||
295,
|
||||
790
|
||||
]
|
||||
],
|
||||
[
|
||||
"f64afa3df20737db",
|
||||
"",
|
||||
[
|
||||
420,
|
||||
780,
|
||||
295,
|
||||
780
|
||||
]
|
||||
],
|
||||
[
|
||||
"b209dbdf0548dc1b",
|
||||
"",
|
||||
[
|
||||
340,
|
||||
760,
|
||||
295,
|
||||
760
|
||||
]
|
||||
],
|
||||
[
|
||||
"27e1953ab488901d",
|
||||
"",
|
||||
[
|
||||
420,
|
||||
750,
|
||||
295,
|
||||
750
|
||||
]
|
||||
],
|
||||
[
|
||||
"1745ce13dbcf7921",
|
||||
"",
|
||||
[
|
||||
500,
|
||||
740,
|
||||
295,
|
||||
740
|
||||
]
|
||||
],
|
||||
[
|
||||
"e0cdd4ed4bb12a36",
|
||||
"",
|
||||
[
|
||||
340,
|
||||
730,
|
||||
295,
|
||||
730
|
||||
]
|
||||
],
|
||||
[
|
||||
"e4face74f674920b",
|
||||
"",
|
||||
[
|
||||
420,
|
||||
720,
|
||||
295,
|
||||
720
|
||||
]
|
||||
],
|
||||
[
|
||||
"6f6812224b7f33d4",
|
||||
"",
|
||||
[
|
||||
500,
|
||||
710,
|
||||
295,
|
||||
710
|
||||
]
|
||||
],
|
||||
[
|
||||
"06bcaac0ff747d05",
|
||||
"",
|
||||
[
|
||||
340,
|
||||
700,
|
||||
295,
|
||||
700
|
||||
]
|
||||
],
|
||||
[
|
||||
"35d017173d2665d8",
|
||||
"",
|
||||
[
|
||||
420,
|
||||
690,
|
||||
295,
|
||||
690
|
||||
]
|
||||
],
|
||||
[
|
||||
"8a3206e94b35b0f4",
|
||||
"",
|
||||
[
|
||||
500,
|
||||
680,
|
||||
295,
|
||||
680
|
||||
]
|
||||
],
|
||||
[
|
||||
"e29bf7da237fb69a",
|
||||
"",
|
||||
[
|
||||
340,
|
||||
670,
|
||||
295,
|
||||
670
|
||||
]
|
||||
],
|
||||
[
|
||||
"6d88fbae8a583d0f",
|
||||
"",
|
||||
[
|
||||
420,
|
||||
660,
|
||||
295,
|
||||
660
|
||||
]
|
||||
],
|
||||
[
|
||||
"464a44b96346b154",
|
||||
"",
|
||||
[
|
||||
500,
|
||||
650,
|
||||
295,
|
||||
650
|
||||
]
|
||||
],
|
||||
[
|
||||
"fb1323775772c56d",
|
||||
"",
|
||||
[
|
||||
340,
|
||||
640,
|
||||
295,
|
||||
640
|
||||
]
|
||||
],
|
||||
[
|
||||
"bfa90ea0f7a4275f",
|
||||
"",
|
||||
[
|
||||
420,
|
||||
630,
|
||||
295,
|
||||
630
|
||||
]
|
||||
],
|
||||
[
|
||||
"2c8defbafd153d1a",
|
||||
"",
|
||||
[
|
||||
500,
|
||||
620,
|
||||
295,
|
||||
620
|
||||
]
|
||||
],
|
||||
[
|
||||
"43dc2ed9b57fb451",
|
||||
"",
|
||||
[
|
||||
340,
|
||||
610,
|
||||
295,
|
||||
610
|
||||
]
|
||||
],
|
||||
[
|
||||
"fe046019066a4a44",
|
||||
"",
|
||||
[
|
||||
420,
|
||||
600,
|
||||
295,
|
||||
600
|
||||
]
|
||||
],
|
||||
[
|
||||
"56e8a5401b8623ec",
|
||||
"",
|
||||
[
|
||||
500,
|
||||
590,
|
||||
295,
|
||||
590
|
||||
]
|
||||
],
|
||||
[
|
||||
"cf7ccecf33b7a0d5",
|
||||
"",
|
||||
[
|
||||
340,
|
||||
550,
|
||||
295,
|
||||
550
|
||||
]
|
||||
],
|
||||
[
|
||||
"6e356ed0d28c0eb3",
|
||||
"",
|
||||
[
|
||||
65,
|
||||
225,
|
||||
65,
|
||||
315,
|
||||
65,
|
||||
315,
|
||||
65,
|
||||
325,
|
||||
65,
|
||||
325,
|
||||
65,
|
||||
335,
|
||||
65,
|
||||
345,
|
||||
65,
|
||||
335,
|
||||
135,
|
||||
225,
|
||||
65,
|
||||
225,
|
||||
135,
|
||||
225,
|
||||
135,
|
||||
235,
|
||||
45,
|
||||
225,
|
||||
65,
|
||||
225,
|
||||
45,
|
||||
375,
|
||||
45,
|
||||
225,
|
||||
160,
|
||||
375,
|
||||
45,
|
||||
375,
|
||||
160,
|
||||
345,
|
||||
160,
|
||||
375,
|
||||
135,
|
||||
345,
|
||||
160,
|
||||
345
|
||||
]
|
||||
],
|
||||
[
|
||||
"e3ff9cf7434252e5",
|
||||
"",
|
||||
[
|
||||
330,
|
||||
285,
|
||||
310,
|
||||
285,
|
||||
310,
|
||||
285,
|
||||
310,
|
||||
305,
|
||||
310,
|
||||
305,
|
||||
135,
|
||||
305,
|
||||
310,
|
||||
320,
|
||||
310,
|
||||
305,
|
||||
135,
|
||||
285,
|
||||
310,
|
||||
285
|
||||
]
|
||||
],
|
||||
[
|
||||
"243deb0ff9c16c0e",
|
||||
"",
|
||||
[
|
||||
390,
|
||||
295,
|
||||
370,
|
||||
295,
|
||||
370,
|
||||
295,
|
||||
370,
|
||||
275,
|
||||
370,
|
||||
275,
|
||||
135,
|
||||
275,
|
||||
135,
|
||||
295,
|
||||
370,
|
||||
295
|
||||
]
|
||||
],
|
||||
[
|
||||
"3cf63d651fa02c95",
|
||||
"",
|
||||
[
|
||||
180,
|
||||
265,
|
||||
135,
|
||||
265
|
||||
]
|
||||
],
|
||||
[
|
||||
"9b7fad37d5c4f3b1",
|
||||
"",
|
||||
[
|
||||
180,
|
||||
325,
|
||||
135,
|
||||
325
|
||||
]
|
||||
],
|
||||
[
|
||||
"22989673c57887cc",
|
||||
"",
|
||||
[
|
||||
450,
|
||||
265,
|
||||
220,
|
||||
265,
|
||||
450,
|
||||
325,
|
||||
450,
|
||||
265,
|
||||
450,
|
||||
325,
|
||||
220,
|
||||
325,
|
||||
450,
|
||||
240,
|
||||
450,
|
||||
265
|
||||
]
|
||||
],
|
||||
[
|
||||
"153f1d90a64abf9a",
|
||||
"",
|
||||
[
|
||||
650,
|
||||
650,
|
||||
650,
|
||||
620
|
||||
]
|
||||
],
|
||||
[
|
||||
"ca084052d6e32446",
|
||||
"",
|
||||
[
|
||||
650,
|
||||
550,
|
||||
650,
|
||||
580
|
||||
]
|
||||
],
|
||||
[
|
||||
"385af3e0bbccbecd",
|
||||
"",
|
||||
[
|
||||
730,
|
||||
650,
|
||||
730,
|
||||
620
|
||||
]
|
||||
],
|
||||
[
|
||||
"6d2cb31fb5be3fde",
|
||||
"",
|
||||
[
|
||||
730,
|
||||
550,
|
||||
730,
|
||||
580
|
||||
]
|
||||
],
|
||||
[
|
||||
"285547065cc80b03",
|
||||
"",
|
||||
[
|
||||
810,
|
||||
650,
|
||||
810,
|
||||
620
|
||||
]
|
||||
],
|
||||
[
|
||||
"be543e00dcef1077",
|
||||
"",
|
||||
[
|
||||
810,
|
||||
550,
|
||||
810,
|
||||
580
|
||||
]
|
||||
],
|
||||
[
|
||||
"8eaf5e606c17b851",
|
||||
"",
|
||||
[
|
||||
890,
|
||||
650,
|
||||
890,
|
||||
620
|
||||
]
|
||||
],
|
||||
[
|
||||
"34d57d50ac91bf69",
|
||||
"",
|
||||
[
|
||||
890,
|
||||
550,
|
||||
890,
|
||||
580
|
||||
]
|
||||
],
|
||||
[
|
||||
"7bcf40ed97efc3a1",
|
||||
"",
|
||||
[
|
||||
980,
|
||||
650,
|
||||
980,
|
||||
620
|
||||
]
|
||||
],
|
||||
[
|
||||
"4782c45a98766c01",
|
||||
"",
|
||||
[
|
||||
980,
|
||||
550,
|
||||
980,
|
||||
580
|
||||
]
|
||||
],
|
||||
[
|
||||
"e2df3e056bf7767e",
|
||||
"",
|
||||
[
|
||||
660,
|
||||
430,
|
||||
660,
|
||||
400
|
||||
]
|
||||
],
|
||||
[
|
||||
"e3f2c25126ac4b76",
|
||||
"",
|
||||
[
|
||||
660,
|
||||
320,
|
||||
660,
|
||||
340,
|
||||
720,
|
||||
340,
|
||||
660,
|
||||
340,
|
||||
720,
|
||||
330,
|
||||
720,
|
||||
340,
|
||||
790,
|
||||
340,
|
||||
720,
|
||||
340,
|
||||
660,
|
||||
360,
|
||||
660,
|
||||
340
|
||||
]
|
||||
],
|
||||
[
|
||||
"e913f18a43115b30",
|
||||
"",
|
||||
[
|
||||
660,
|
||||
250,
|
||||
660,
|
||||
280
|
||||
]
|
||||
],
|
||||
[
|
||||
"f3aeb405cca00a48",
|
||||
"",
|
||||
[
|
||||
720,
|
||||
260,
|
||||
720,
|
||||
290
|
||||
]
|
||||
],
|
||||
[
|
||||
"012116b88646d12c",
|
||||
"",
|
||||
[
|
||||
880,
|
||||
430,
|
||||
880,
|
||||
400
|
||||
]
|
||||
],
|
||||
[
|
||||
"4968688193434063",
|
||||
"",
|
||||
[
|
||||
880,
|
||||
320,
|
||||
880,
|
||||
340,
|
||||
940,
|
||||
340,
|
||||
880,
|
||||
340,
|
||||
940,
|
||||
330,
|
||||
940,
|
||||
340,
|
||||
1010,
|
||||
340,
|
||||
940,
|
||||
340,
|
||||
880,
|
||||
360,
|
||||
880,
|
||||
340
|
||||
]
|
||||
],
|
||||
[
|
||||
"87b1b7aaa7ebec84",
|
||||
"",
|
||||
[
|
||||
880,
|
||||
250,
|
||||
880,
|
||||
280
|
||||
]
|
||||
],
|
||||
[
|
||||
"ce117c28917cfd66",
|
||||
"",
|
||||
[
|
||||
940,
|
||||
260,
|
||||
940,
|
||||
290
|
||||
]
|
||||
],
|
||||
[
|
||||
"0c66b822cd6baac8",
|
||||
"",
|
||||
[
|
||||
340,
|
||||
480,
|
||||
295,
|
||||
480
|
||||
]
|
||||
],
|
||||
[
|
||||
"93e1d83328e4228e",
|
||||
"",
|
||||
[
|
||||
340,
|
||||
470,
|
||||
295,
|
||||
470
|
||||
]
|
||||
],
|
||||
[
|
||||
"08f3141cb1cfdf61",
|
||||
"",
|
||||
[
|
||||
200,
|
||||
595,
|
||||
205,
|
||||
595,
|
||||
200,
|
||||
480,
|
||||
200,
|
||||
595
|
||||
]
|
||||
]
|
||||
],
|
||||
"windowId": "1fc63338-da16-4591-bd8c-a22df2fba284"
|
||||
}
|
||||
+413
@@ -0,0 +1,413 @@
|
||||
{
|
||||
"success": true,
|
||||
"result": {
|
||||
"u33": {
|
||||
"x": 250,
|
||||
"y": 600,
|
||||
"rot": 0,
|
||||
"pins": [
|
||||
[
|
||||
"1",
|
||||
210,
|
||||
635
|
||||
],
|
||||
[
|
||||
"2",
|
||||
210,
|
||||
625
|
||||
],
|
||||
[
|
||||
"3",
|
||||
210,
|
||||
615
|
||||
],
|
||||
[
|
||||
"4",
|
||||
210,
|
||||
605
|
||||
],
|
||||
[
|
||||
"5",
|
||||
210,
|
||||
595
|
||||
],
|
||||
[
|
||||
"6",
|
||||
210,
|
||||
585
|
||||
],
|
||||
[
|
||||
"7",
|
||||
210,
|
||||
575
|
||||
],
|
||||
[
|
||||
"8",
|
||||
210,
|
||||
565
|
||||
],
|
||||
[
|
||||
"9",
|
||||
290,
|
||||
565
|
||||
],
|
||||
[
|
||||
"10",
|
||||
290,
|
||||
575
|
||||
],
|
||||
[
|
||||
"11",
|
||||
290,
|
||||
585
|
||||
],
|
||||
[
|
||||
"12",
|
||||
290,
|
||||
595
|
||||
],
|
||||
[
|
||||
"13",
|
||||
290,
|
||||
605
|
||||
],
|
||||
[
|
||||
"14",
|
||||
290,
|
||||
615
|
||||
],
|
||||
[
|
||||
"15",
|
||||
290,
|
||||
625
|
||||
],
|
||||
[
|
||||
"16",
|
||||
290,
|
||||
635
|
||||
]
|
||||
]
|
||||
},
|
||||
"wires": [
|
||||
[
|
||||
170,
|
||||
635,
|
||||
210,
|
||||
635
|
||||
],
|
||||
[
|
||||
170,
|
||||
625,
|
||||
210,
|
||||
625
|
||||
],
|
||||
[
|
||||
170,
|
||||
615,
|
||||
210,
|
||||
615
|
||||
],
|
||||
[
|
||||
170,
|
||||
605,
|
||||
210,
|
||||
605
|
||||
],
|
||||
[
|
||||
330,
|
||||
625,
|
||||
290,
|
||||
625
|
||||
],
|
||||
[
|
||||
330,
|
||||
585,
|
||||
290,
|
||||
585
|
||||
],
|
||||
[
|
||||
330,
|
||||
595,
|
||||
290,
|
||||
595
|
||||
],
|
||||
[
|
||||
330,
|
||||
605,
|
||||
290,
|
||||
605
|
||||
],
|
||||
[
|
||||
330,
|
||||
615,
|
||||
290,
|
||||
615
|
||||
],
|
||||
[
|
||||
400,
|
||||
635,
|
||||
290,
|
||||
635,
|
||||
400,
|
||||
665,
|
||||
400,
|
||||
635
|
||||
],
|
||||
[
|
||||
400,
|
||||
575,
|
||||
290,
|
||||
575,
|
||||
400,
|
||||
540,
|
||||
400,
|
||||
575
|
||||
],
|
||||
[
|
||||
170,
|
||||
565,
|
||||
210,
|
||||
565,
|
||||
170,
|
||||
535,
|
||||
170,
|
||||
565
|
||||
],
|
||||
[
|
||||
520,
|
||||
650,
|
||||
520,
|
||||
620
|
||||
],
|
||||
[
|
||||
520,
|
||||
550,
|
||||
520,
|
||||
580
|
||||
],
|
||||
[
|
||||
540,
|
||||
330,
|
||||
580,
|
||||
330
|
||||
],
|
||||
[
|
||||
680,
|
||||
330,
|
||||
660,
|
||||
330,
|
||||
660,
|
||||
290,
|
||||
660,
|
||||
330,
|
||||
620,
|
||||
330,
|
||||
660,
|
||||
330
|
||||
],
|
||||
[
|
||||
660,
|
||||
225,
|
||||
660,
|
||||
250
|
||||
],
|
||||
[
|
||||
710,
|
||||
280,
|
||||
710,
|
||||
310
|
||||
],
|
||||
[
|
||||
1000,
|
||||
350,
|
||||
790,
|
||||
350,
|
||||
790,
|
||||
350,
|
||||
790,
|
||||
410,
|
||||
710,
|
||||
350,
|
||||
790,
|
||||
350,
|
||||
1000,
|
||||
350,
|
||||
1000,
|
||||
380,
|
||||
1000,
|
||||
380,
|
||||
1065,
|
||||
380,
|
||||
1000,
|
||||
460,
|
||||
1000,
|
||||
380,
|
||||
1000,
|
||||
460,
|
||||
1065,
|
||||
460,
|
||||
1000,
|
||||
540,
|
||||
1000,
|
||||
460,
|
||||
1000,
|
||||
540,
|
||||
1065,
|
||||
540,
|
||||
1000,
|
||||
620,
|
||||
1000,
|
||||
540,
|
||||
1000,
|
||||
620,
|
||||
1065,
|
||||
620,
|
||||
1000,
|
||||
700,
|
||||
1000,
|
||||
620,
|
||||
1000,
|
||||
700,
|
||||
1065,
|
||||
700
|
||||
],
|
||||
[
|
||||
790,
|
||||
480,
|
||||
790,
|
||||
450
|
||||
],
|
||||
[
|
||||
1030,
|
||||
710,
|
||||
1065,
|
||||
710,
|
||||
1030,
|
||||
630,
|
||||
1030,
|
||||
710,
|
||||
1030,
|
||||
630,
|
||||
1065,
|
||||
630,
|
||||
1030,
|
||||
550,
|
||||
1030,
|
||||
630,
|
||||
1030,
|
||||
550,
|
||||
1065,
|
||||
550,
|
||||
1030,
|
||||
470,
|
||||
1030,
|
||||
550,
|
||||
1030,
|
||||
470,
|
||||
1065,
|
||||
470,
|
||||
1030,
|
||||
470,
|
||||
1030,
|
||||
390,
|
||||
1030,
|
||||
390,
|
||||
1065,
|
||||
390,
|
||||
1030,
|
||||
710,
|
||||
1030,
|
||||
755,
|
||||
1030,
|
||||
755,
|
||||
1090,
|
||||
755,
|
||||
1030,
|
||||
755,
|
||||
1030,
|
||||
765,
|
||||
1030,
|
||||
765,
|
||||
970,
|
||||
765,
|
||||
1030,
|
||||
785,
|
||||
1030,
|
||||
765
|
||||
],
|
||||
[
|
||||
970,
|
||||
690,
|
||||
1065,
|
||||
690,
|
||||
970,
|
||||
725,
|
||||
970,
|
||||
690,
|
||||
940,
|
||||
725,
|
||||
970,
|
||||
725,
|
||||
970,
|
||||
610,
|
||||
970,
|
||||
690,
|
||||
970,
|
||||
610,
|
||||
1065,
|
||||
610,
|
||||
970,
|
||||
610,
|
||||
970,
|
||||
530,
|
||||
970,
|
||||
530,
|
||||
1065,
|
||||
530,
|
||||
970,
|
||||
450,
|
||||
970,
|
||||
530,
|
||||
970,
|
||||
450,
|
||||
1065,
|
||||
450,
|
||||
970,
|
||||
450,
|
||||
970,
|
||||
370,
|
||||
970,
|
||||
370,
|
||||
1065,
|
||||
370
|
||||
],
|
||||
[
|
||||
1090,
|
||||
700,
|
||||
1090,
|
||||
725
|
||||
],
|
||||
[
|
||||
800,
|
||||
725,
|
||||
840,
|
||||
725,
|
||||
840,
|
||||
710,
|
||||
840,
|
||||
725,
|
||||
900,
|
||||
725,
|
||||
840,
|
||||
725
|
||||
],
|
||||
[
|
||||
840,
|
||||
645,
|
||||
840,
|
||||
670
|
||||
]
|
||||
]
|
||||
},
|
||||
"windowId": "1fc63338-da16-4591-bd8c-a22df2fba284"
|
||||
}
|
||||
文件差异因一行或多行过长而隐藏
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"U21": [
|
||||
91.91,
|
||||
51.73
|
||||
],
|
||||
"U22": [
|
||||
92.1,
|
||||
37.99
|
||||
],
|
||||
"U23": [
|
||||
76.57,
|
||||
47.39
|
||||
],
|
||||
"U6": [
|
||||
78.16,
|
||||
35.77
|
||||
],
|
||||
"U7": [
|
||||
109.08,
|
||||
32.27
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{"segs": [], "vias": [["GND", 14.8, 5.0], ["GND", 38.5, 5.0], ["GND", 62.2, 5.0], ["GND", 110.3, 5.0], ["GND", 129.0, 5.0], ["GND", 147.7, 5.0]]}
|
||||
@@ -0,0 +1 @@
|
||||
{"segs": [["SCL", 1, 74.2254, 52.6537, 74.2254, 53.7792, 0.2], ["SCL", 2, 77.2, 52.0, 74.5, 52.0, 0.2], ["SCL", 2, 74.5, 52.0, 74.0, 51.5, 0.2], ["SCL", 2, 74.0, 51.5, 74.0, 51.3, 0.2], ["SCL", 2, 74.0, 51.3, 73.9, 51.2, 0.2], ["SCL", 1, 73.9, 51.2, 73.9, 51.3, 0.2], ["SCL", 1, 73.9, 51.3, 74.2, 51.6, 0.2], ["SCL", 1, 74.2, 51.6, 74.2, 51.9, 0.2], ["SCL", 16, 115.2, 37.2, 121.0, 43.0, 0.2], ["SCL", 16, 121.0, 43.0, 121.0, 43.2, 0.2], ["SCL", 2, 121.0, 43.2, 121.9, 44.1, 0.2], ["SCL", 2, 121.9, 44.1, 121.9, 44.4, 0.2], ["SCL", 2, 121.9, 44.4, 122.4, 44.9, 0.2], ["SCL", 2, 122.4, 44.9, 122.5, 44.9, 0.2], ["SCL", 2, 122.5, 44.9, 126.5, 48.9, 0.2], ["SCL", 2, 126.5, 48.9, 126.5, 49.0, 0.2], ["SCL", 2, 126.5, 49.0, 126.6, 49.1, 0.2], ["SCL", 2, 73.6, 51.2, 72.4, 50.0, 0.2], ["SCL", 2, 72.4, 50.0, 61.1, 50.0, 0.2], ["SCL", 16, 61.1, 50.0, 58.6, 50.0, 0.2], ["SCL", 16, 58.6, 50.0, 58.5, 49.9, 0.2], ["SCL", 16, 58.5, 49.9, 58.4, 49.9, 0.2], ["SCL", 2, 58.4, 49.9, 48.2, 49.9, 0.2], ["SCL", 16, 60.2, 50.1, 60.2, 62.2, 0.2], ["SCL", 16, 60.2, 62.2, 57.3, 65.1, 0.2], ["SCL", 16, 57.3, 65.1, 37.2, 65.1, 0.2], ["SCL", 16, 37.2, 65.1, 36.7, 64.6, 0.2], ["SCL", 16, 47.9, 65.1, 47.9, 75.8, 0.2], ["SCL", 16, 47.9, 75.8, 48.0, 75.9, 0.2], ["SCL", 1, 48.0, 75.9, 47.9, 75.8, 0.2], ["SCL", 1, 47.9, 75.8, 47.9, 73.3, 0.2], ["SCL", 1, 47.9, 73.3, 48.2, 73.0, 0.2], ["SCL", 1, 48.2, 73.0, 50.7, 73.0, 0.2], ["SCL", 1, 50.7, 73.0, 52.4, 74.7, 0.2], ["SCL", 16, 35.0, 64.6, 34.5, 65.1, 0.2], ["SCL", 16, 34.5, 65.1, 6.7, 65.1, 0.2], ["SCL", 16, 6.7, 65.1, 6.5, 64.9, 0.2], ["SCL", 16, 6.5, 64.9, 6.5, 60.3, 0.2], ["SCL", 16, 6.5, 60.3, 7.6, 59.2, 0.2], ["SCL", 16, 7.6, 59.2, 29.1, 59.2, 0.2], ["SCL", 16, 29.1, 59.2, 29.8, 58.5, 0.2], ["SCL", 16, 29.8, 58.5, 29.8, 58.4, 0.2], ["SCL", 1, 29.8, 58.4, 29.8, 58.1, 0.2], ["SCL", 1, 29.8, 58.1, 29.2, 57.5, 0.2], ["SCL", 1, 29.2, 57.5, 22.1, 57.5, 0.2], ["SCL", 1, 22.1, 57.5, 15.7, 51.1, 0.2], ["SCL", 1, 15.7, 51.1, 15.7, 51.0, 0.2], ["SCL", 1, 15.7, 51.0, 15.6, 50.9, 0.2], ["SCL", 16, 6.8, 65.1, 6.8, 87.6, 0.2], ["SCL", 1, 6.8, 87.6, 6.8, 93.6, 0.2], ["SDA", 1, 73.5752, 52.6537, 73.5752, 53.7792, 0.2], ["SDA", 16, 80.0, 41.7, 80.0, 42.6, 0.2], ["SDA", 16, 80.0, 42.6, 78.1, 44.5, 0.2], ["SDA", 16, 78.1, 44.5, 73.4, 44.5, 0.2], ["SDA", 16, 73.4, 44.5, 72.9, 45.0, 0.2], ["SDA", 16, 72.9, 45.0, 72.9, 54.8, 0.2], ["SDA", 1, 72.9, 54.8, 73.5, 54.2, 0.2], ["SDA", 1, 73.5, 54.2, 73.5, 53.8, 0.2], ["SDA", 2, 72.6, 54.8, 71.8, 54.8, 0.2], ["SDA", 2, 71.8, 54.8, 70.0, 53.0, 0.2], ["SDA", 2, 70.0, 53.0, 70.0, 51.9, 0.2], ["SDA", 2, 70.0, 51.9, 69.9, 51.8, 0.2], ["SDA", 1, 69.9, 51.8, 70.6, 51.1, 0.2], ["SDA", 1, 70.6, 51.1, 70.6, 48.7, 0.2], ["SDA", 1, 70.6, 48.7, 70.5, 48.6, 0.2], ["SDA", 2, 70.5, 48.6, 70.5, 48.8, 0.2], ["SDA", 2, 70.5, 48.8, 69.9, 49.4, 0.2], ["SDA", 2, 69.9, 49.4, 61.6, 49.4, 0.2], ["SDA", 2, 61.6, 49.4, 61.5, 49.3, 0.2], ["SDA", 2, 61.5, 49.3, 60.7, 49.3, 0.2], ["SDA", 2, 60.7, 49.3, 60.4, 49.6, 0.2], ["SDA", 2, 60.4, 49.6, 60.4, 50.4, 0.2], ["SDA", 2, 60.4, 50.4, 60.9, 50.9, 0.2], ["SDA", 16, 60.9, 50.9, 60.9, 59.6, 0.2], ["SDA", 1, 60.9, 59.6, 55.8, 59.6, 0.2], ["SDA", 1, 55.8, 59.6, 49.2, 53.0, 0.2], ["SDA", 1, 49.2, 53.0, 49.2, 52.9, 0.2], ["SDA", 1, 49.2, 52.9, 49.1, 52.8, 0.2], ["SDA", 16, 60.9, 59.9, 60.9, 64.0, 0.2], ["SDA", 16, 60.9, 64.0, 53.9, 71.0, 0.2], ["SDA", 16, 53.9, 71.0, 53.3, 71.0, 0.2], ["SDA", 16, 53.3, 71.0, 49.5, 74.8, 0.2], ["SDA", 16, 49.5, 74.8, 49.5, 75.5, 0.2], ["SDA", 16, 49.5, 75.5, 48.4, 76.6, 0.2], ["SDA", 16, 48.4, 76.6, 45.2, 76.6, 0.2], ["SDA", 16, 45.2, 76.6, 34.4, 65.8, 0.2], ["SDA", 16, 49.5, 75.6, 50.9, 77.0, 0.2], ["SDA", 16, 50.9, 77.0, 51.0, 77.0, 0.2], ["SDA", 16, 51.0, 77.0, 51.1, 77.1, 0.2], ["SDA", 16, 33.9, 66.0, 15.5, 84.4, 0.2], ["SDA", 16, 15.5, 84.4, 15.5, 85.5, 0.2], ["SDA", 16, 15.5, 85.5, 15.3, 85.7, 0.2], ["SDA", 16, 15.3, 85.7, 15.0, 85.7, 0.2], ["SDA", 16, 15.0, 85.7, 13.2, 87.5, 0.2], ["SDA", 16, 13.2, 87.5, 11.5, 87.5, 0.2], ["SDA", 16, 11.5, 87.5, 11.4, 87.6, 0.2], ["SDA", 2, 11.4, 87.6, 11.4, 94.0, 0.2], ["SDA", 2, 11.4, 94.0, 9.7, 95.7, 0.2], ["SDA", 1, 102.5, 31.0, 102.5, 38.1, 0.2], ["SDA", 16, 102.5, 38.1, 102.5, 49.0, 0.2], ["SDA", 2, 102.5, 49.0, 102.5, 56.9, 0.2], ["SDA", 16, 102.5, 56.9, 102.5, 64.9, 0.2], ["SDA", 16, 102.5, 64.9, 102.7, 65.1, 0.2], ["SDA", 16, 102.7, 65.1, 128.7, 65.1, 0.2], ["SDA", 16, 128.7, 65.1, 133.9, 70.3, 0.2], ["SDA", 16, 133.9, 70.3, 134.2, 70.3, 0.2], ["SDA", 16, 134.2, 70.3, 139.2, 75.3, 0.2], ["SDA", 16, 139.2, 75.3, 139.6, 75.3, 0.2], ["SDA", 16, 139.6, 75.3, 139.7, 75.4, 0.2]], "vias": [["SCL", 73.9, 51.2], ["SCL", 121.0, 43.2], ["SCL", 61.1, 50.0], ["SCL", 58.4, 49.9], ["SCL", 48.0, 75.9], ["SCL", 29.8, 58.4], ["SCL", 6.8, 87.6], ["SDA", 72.9, 54.8], ["SDA", 69.9, 51.8], ["SDA", 70.5, 48.6], ["SDA", 60.9, 50.9], ["SDA", 60.9, 59.6], ["SDA", 11.4, 87.6], ["SDA", 102.5, 38.1], ["SDA", 102.5, 49.0], ["SDA", 102.5, 56.9]]}
|
||||
文件差异因一行或多行过长而隐藏
@@ -0,0 +1 @@
|
||||
[{"net": "GND", "x": 151.9259, "y": 48.8, "num": "A1B12", "layer": 1, "pts": [6006.923, 1933.068, "L", 6006.923, 1921.258, 6006.929, 1921.258, 6006.929, 1909.447, 5955.747, 1909.447, 5955.747, 1921.257, 5955.741, 1921.257, 5955.741, 1933.068, 6006.923, 1933.068]}, {"net": "GND", "x": 151.9259, "y": 55.2, "num": "B1A12", "layer": 1, "pts": [5955.741, 2161.413, "L", 5955.741, 2173.224, 5955.741, 2173.225, 5955.741, 2185.036, 6006.921, 2185.036, 6006.921, 2173.225, 6006.921, 2173.224, 6006.921, 2161.413, 5955.741, 2161.413]}, {"net": "", "x": 151.9259, "y": 54.4002, "num": "B4A9", "layer": 1, "pts": [6006.921, 2153.546, "L", 6006.921, 2141.735, 6006.921, 2141.734, 6006.921, 2129.923, 5955.741, 2129.923, 5955.741, 2141.734, 5955.741, 2141.735, 5955.741, 2153.546, 6006.921, 2153.546]}, {"net": "", "x": 151.9259, "y": 49.5998, "num": "A4B9", "layer": 1, "pts": [6006.927, 1964.564, "L", 6006.927, 1952.755, 6006.928, 1952.755, 6006.928, 1940.943, 5955.748, 1940.943, 5955.748, 1952.752, 5955.747, 1952.752, 5955.747, 1964.564, 6006.927, 1964.564]}, {"net": "GND", "x": 16.8001, "y": 27.5001, "num": "15", "layer": 1, "pts": [621.424, 1122.676, "L", 645.676, 1122.676, 645.676, 1167.715, 655.125, 1167.715, 655.125, 1139.369, 667.723, 1139.369, 667.723, 1167.715, 677.172, 1167.715, 677.172, 1122.676, 701.424, 1122.676, 701.424, 1042.676, 677.172, 1042.676, 677.172, 997.637, 667.723, 997.637, 667.723, 1025.983, 655.125, 1025.983, 655.125, 997.637, 645.676, 997.637, 645.676, 1042.676, 621.424, 1042.676, 621.424, 1122.676]}, {"net": "GND", "x": 51.0891, "y": 98.0001, "num": "15", "layer": 1, "pts": [2051.376, 3818.274, "L", 2027.124, 3818.274, 2027.124, 3773.235, 2017.675, 3773.235, 2017.675, 3801.581, 2005.077, 3801.581, 2005.077, 3773.235, 1995.628, 3773.235, 1995.628, 3818.274, 1971.376, 3818.274, 1971.376, 3898.274, 1995.628, 3898.274, 1995.628, 3943.313, 2005.077, 3943.313, 2005.077, 3914.967, 2017.675, 3914.967, 2017.675, 3943.313, 2027.124, 3943.313, 2027.124, 3898.274, 2051.376, 3898.274, 2051.376, 3818.274]}, {"net": "GND", "x": 139.4691, "y": 98.0001, "num": "15", "layer": 1, "pts": [5530.906, 3818.274, "L", 5506.654, 3818.274, 5506.654, 3773.235, 5497.205, 3773.235, 5497.205, 3801.581, 5484.607, 3801.581, 5484.607, 3773.235, 5475.158, 3773.235, 5475.158, 3818.274, 5450.906, 3818.274, 5450.906, 3898.274, 5475.158, 3898.274, 5475.158, 3943.313, 5484.607, 3943.313, 5484.607, 3914.967, 5497.205, 3914.967, 5497.205, 3943.313, 5506.654, 3943.313, 5506.654, 3898.274, 5530.906, 3898.274, 5530.906, 3818.274]}, {"net": "GND", "x": 48.469, "y": 27.5001, "num": "15", "layer": 1, "pts": [1868.234, 1122.676, "L", 1892.486, 1122.676, 1892.486, 1167.715, 1901.935, 1167.715, 1901.935, 1139.369, 1914.533, 1139.369, 1914.533, 1167.715, 1923.982, 1167.715, 1923.982, 1122.676, 1948.234, 1122.676, 1948.234, 1042.676, 1923.982, 1042.676, 1923.982, 997.637, 1914.533, 997.637, 1914.533, 1025.983, 1901.935, 1025.983, 1901.935, 997.637, 1892.486, 997.637, 1892.486, 1042.676, 1868.234, 1042.676, 1868.234, 1122.676]}, {"net": "GND", "x": 128, "y": 27.5001, "num": "15", "layer": 1, "pts": [4999.374, 1122.676, "L", 5023.626, 1122.676, 5023.626, 1167.715, 5033.075, 1167.715, 5033.075, 1139.369, 5045.673, 1139.369, 5045.673, 1167.715, 5055.122, 1167.715, 5055.122, 1122.676, 5079.374, 1122.676, 5079.374, 1042.676, 5055.122, 1042.676, 5055.122, 997.637, 5045.673, 997.637, 5045.673, 1025.983, 5033.075, 1025.983, 5033.075, 997.637, 5023.626, 997.637, 5023.626, 1042.676, 4999.374, 1042.676, 4999.374, 1122.676]}, {"net": "GND", "x": 79.5801, "y": 38.01, "num": "17", "layer": 1, "pts": [3166.541, 1529.919, "L", 3166.541, 1462.989, 3099.611, 1462.989, 3099.611, 1516.139, 3113.391, 1529.919, 3166.541, 1529.919]}, {"net": "GND", "x": 109.5701, "y": 34.71, "num": "17", "layer": 1, "pts": [4347.251, 1399.999, "L", 4347.251, 1333.069, 4280.321, 1333.069, 4280.321, 1386.219, 4294.101, 1399.999, 4347.251, 1399.999]}]
|
||||
文件差异因一行或多行过长而隐藏
文件差异因一行或多行过长而隐藏
文件差异因一行或多行过长而隐藏
文件差异因一行或多行过长而隐藏
@@ -0,0 +1 @@
|
||||
[[211.2419, 65.1998], [211.2418, 58.7999], [212.3919, 65.1998], [212.3918, 58.7999], [211.2419, 65.1998], [211.2418, 58.7999]]
|
||||
文件差异因一行或多行过长而隐藏
@@ -0,0 +1 @@
|
||||
{"n": 161, "comps": [["C701", 1, 1752, 2854, 0], ["C702", 1, 4567, 2854, 0], ["C703", 1, 7382, 2854, 0], ["C704", 1, 2691, 2467, 180], ["C705", 1, 5506, 2467, 180], ["C711", 1, 2146, 2854, 0], ["C712", 1, 4961, 2854, 0], ["C713", 1, 7776, 2854, 0], ["C714", 1, 2297, 2467, 180], ["C715", 1, 5112, 2467, 180], ["C721", 1, 2264, 2854, 0], ["C722", 1, 5079, 2854, 0], ["C723", 1, 7894, 2854, 0], ["C724", 1, 2179, 2467, 180], ["C725", 1, 4994, 2467, 180], ["C736", 1, 669, 1654, 0], ["C737", 1, 1299, 1654, 0], ["C740", 2, 3976, 2638, 0], ["C741", 2, 4685, 2638, 0], ["C742", 2, 4331, 2992, 0], ["C743", 2, 4213, 2283, 0], ["C744", 2, 4449, 2283, 0], ["C745", 2, 3976, 2520, 0], ["C746", 2, 4685, 2520, 0], ["C747", 2, 3976, 2756, 0], ["C748", 2, 4685, 2756, 0], ["C749", 2, 4213, 2992, 0], ["C750", 2, 4449, 2992, 0], ["C751", 2, 4094, 2283, 0], ["C760", 1, 1417, 256, 0], ["J23", 1, 202, 1063, 270], ["J31", 2, 2441, 2657, 0], ["J32", 2, 6220, 2657, 0], ["J71", 1, 2461, 3248, 0], ["J72", 1, 5276, 3248, 0], ["J73", 1, 8091, 3248, 0], ["J74", 1, 1982, 2073, 180], ["J75", 1, 4797, 2073, 180], ["R701", 1, 2382, 2854, 0], ["R702", 1, 5197, 2854, 0], ["R703", 1, 8012, 2854, 0], ["R704", 1, 2061, 2467, 180], ["R705", 1, 4876, 2467, 180], ["R708", 2, 4567, 2283, 0], ["R709", 2, 3976, 2402, 0], ["R710", 2, 4685, 2402, 0], ["R711", 2, 3976, 2874, 0], ["R712", 2, 4685, 2874, 0], ["R714", 2, 4094, 2992, 0], ["R715", 2, 4567, 2992, 0], ["R716", 2, 4331, 2165, 0], ["R717", 2, 3858, 2638, 0], ["R718", 2, 4803, 2638, 0], ["R719", 2, 4331, 3110, 0], ["R720", 2, 4213, 2165, 0], ["R721", 1, 551, 1339, 0], ["R722", 1, 709, 1339, 0], ["R761", 1, 2618, 3051, 0], ["R762", 1, 5433, 3051, 0], ["R763", 1, 8248, 3051, 0], ["R764", 1, 1824, 2270, 180], ["R765", 1, 4639, 2270, 180], ["R771", 1, 2717, 3051, 0], ["R772", 1, 5532, 3051, 0], ["R773", 1, 8346, 3051, 0], ["R774", 1, 1726, 2270, 180], ["R775", 1, 4541, 2270, 180], ["U24", 1, 1969, 2854, 0], ["U25", 1, 4783, 2854, 0], ["U26", 1, 7598, 2854, 0], ["U27", 1, 2474, 2467, 180], ["U28", 1, 5289, 2467, 180], ["U31", 1, 984, 1654, 0], ["U32", 2, 4331, 2638, 0], ["U34", 1, 1417, 472, 0], ["U51", 1, 2461, 3051, 0], ["U52", 1, 5276, 3051, 0], ["U53", 1, 8091, 3051, 0], ["U54", 1, 1982, 2270, 180], ["U55", 1, 4797, 2270, 180], ["Y1", 2, 4331, 2283, 0], ["C761", 1, 2146, 3051, 0], ["C762", 1, 4961, 3051, 0], ["C763", 1, 7776, 3051, 0], ["C764", 1, 2297, 2270, 180], ["C765", 1, 5112, 2270, 180], ["C801", 1, 669, 2933, 0], ["C802", 1, 1417, 3240, 0], ["C803", 1, 1634, 3240, 0], ["C804", 1, 1417, 3051, 0], ["C805", 1, 1634, 3051, 0], ["C806", 1, 1122, 3240, 0], ["C811", 1, 3484, 2933, 0], ["C812", 1, 4232, 3240, 0], ["C813", 1, 4449, 3240, 0], ["C814", 1, 4232, 3051, 0], ["C815", 1, 4449, 3051, 0], ["C816", 1, 3937, 3240, 0], ["C821", 1, 6299, 2933, 0], ["C822", 1, 7047, 3240, 0], ["C823", 1, 7264, 3240, 0], ["C824", 1, 7047, 3051, 0], ["C825", 1, 7264, 3051, 0], ["C826", 1, 6752, 3240, 0], ["C831", 1, 3773, 2388, 180], ["C832", 1, 3025, 2081, 180], ["C833", 1, 2809, 2081, 180], ["C834", 1, 3025, 2270, 180], ["C835", 1, 2809, 2270, 180], ["C836", 1, 3320, 2081, 180], ["C841", 1, 6588, 2388, 180], ["C842", 1, 5840, 2081, 180], ["C843", 1, 5624, 2081, 180], ["C844", 1, 5840, 2270, 180], ["C845", 1, 5624, 2270, 180], ["C846", 1, 6135, 2081, 180], ["J41", 1, 319, 3638, 0], ["J42", 1, 303, 3547, 0], ["J43", 1, 410, 3623, 0], ["J44", 1, 280, 3463, 0], ["J45", 1, 3134, 3638, 0], ["J46", 1, 3118, 3547, 0], ["J47", 1, 3225, 3623, 0], ["J48", 1, 3095, 3463, 0], ["J49", 1, 5949, 3638, 0], ["J50", 1, 5933, 3547, 0], ["J51", 1, 6040, 3623, 0], ["J52", 1, 5910, 3463, 0], ["J53", 1, 4123, 1683, 180], ["J54", 1, 4139, 1774, 180], ["J55", 1, 4033, 1698, 180], ["J56", 1, 4162, 1858, 180], ["J57", 1, 6938, 1683, 180], ["J58", 1, 6954, 1774, 180], ["J59", 1, 6848, 1698, 180], ["J60", 1, 6977, 1858, 180], ["J61", 1, 1929, 3240, 0], ["J62", 1, 4744, 3240, 0], ["J63", 1, 7559, 3240, 0], ["J64", 1, 2513, 2081, 180], ["J65", 1, 5328, 2081, 180], ["R741", 1, 1811, 3051, 0], ["R742", 1, 4626, 3051, 0], ["R743", 1, 7441, 3051, 0], ["R744", 1, 2632, 2270, 180], ["R745", 1, 5446, 2270, 180], ["TP801", 1, 1024, 3240, 0], ["TP802", 1, 1220, 3240, 0], ["TP811", 1, 3839, 3240, 0], ["TP812", 1, 4035, 3240, 0], ["TP821", 1, 6654, 3240, 0], ["TP822", 1, 6850, 3240, 0], ["TP831", 1, 3419, 2081, 180], ["TP832", 1, 3222, 2081, 180], ["TP841", 1, 6234, 2081, 180], ["TP842", 1, 6037, 2081, 180], ["U41", 1, 1969, 3051, 0], ["U42", 1, 4783, 3051, 0], ["U43", 1, 7598, 3051, 0], ["U44", 1, 2474, 2270, 180], ["U45", 1, 5289, 2270, 180]]}
|
||||
@@ -0,0 +1 @@
|
||||
[[213.6604, 59.1, 0.2998], [213.6604, 64.8998, 0.2998]]
|
||||
文件差异因一行或多行过长而隐藏
文件差异因一行或多行过长而隐藏
文件差异因一行或多行过长而隐藏
文件差异因一行或多行过长而隐藏
文件差异因一行或多行过长而隐藏
@@ -0,0 +1,512 @@
|
||||
{
|
||||
"lines": [
|
||||
"970456d044e8254e",
|
||||
"831cea302d0e0bee",
|
||||
"ab74163cefc3931a",
|
||||
"a5569450583dac67",
|
||||
"b9563345340b5c4f",
|
||||
"4f37b75c7464f225",
|
||||
"9c03340084ea5cb9",
|
||||
"329edd11233cadfa",
|
||||
"54c1e93f0bf314e6",
|
||||
"a3ea9267f390c438",
|
||||
"18e58b9bec91d2ba",
|
||||
"5c7b6956618da6df",
|
||||
"764263f208a139b7",
|
||||
"989abc751e56c4fc",
|
||||
"ffc0297928ded5f9",
|
||||
"2e4e5a58b1e60027",
|
||||
"33df2dca255fa5d9",
|
||||
"afd7ae30b1fe33f2",
|
||||
"c61f860aa652d925",
|
||||
"61cc691b9b4e77b5",
|
||||
"87dca485f639638f",
|
||||
"565ef720532d8e62",
|
||||
"4806ab1b93cc3369",
|
||||
"ec9ff7814e0f9d4b",
|
||||
"2728e0fd9c062858",
|
||||
"88307fc2075178dacba1489d9492537c",
|
||||
"88307fc2075178da060d4b628d881238",
|
||||
"88307fc2075178da38c08fdc450b59e1",
|
||||
"88307fc2075178da32cb57dfb4a24707",
|
||||
"88307fc2075178daccfc6183d84bd2d4",
|
||||
"88307fc2075178dade69798916df0947",
|
||||
"88307fc2075178da591f1f111a1338e5",
|
||||
"88307fc2075178dad8924703f938803a",
|
||||
"88307fc2075178dab56236dd17cf52c4",
|
||||
"88307fc2075178da478b96f0db8e46ca",
|
||||
"88307fc2075178da8b45c5cdb0fcd9fa",
|
||||
"88307fc2075178da14deb1b4707ceec2",
|
||||
"88307fc2075178da134f0512d484f1b3",
|
||||
"4ce24f13ffaa522fcba1489d9492537c",
|
||||
"4ce24f13ffaa522f060d4b628d881238",
|
||||
"4ce24f13ffaa522f38c08fdc450b59e1",
|
||||
"4ce24f13ffaa522f32cb57dfb4a24707",
|
||||
"4ce24f13ffaa522fccfc6183d84bd2d4",
|
||||
"4ce24f13ffaa522fde69798916df0947",
|
||||
"4ce24f13ffaa522f591f1f111a1338e5",
|
||||
"4ce24f13ffaa522fd8924703f938803a",
|
||||
"4ce24f13ffaa522fb56236dd17cf52c4",
|
||||
"4ce24f13ffaa522f478b96f0db8e46ca",
|
||||
"4ce24f13ffaa522f8b45c5cdb0fcd9fa",
|
||||
"4ce24f13ffaa522f14deb1b4707ceec2",
|
||||
"4ce24f13ffaa522f134f0512d484f1b3",
|
||||
"b51497cb78d14195cba1489d9492537c",
|
||||
"b51497cb78d14195060d4b628d881238",
|
||||
"b51497cb78d1419538c08fdc450b59e1",
|
||||
"b51497cb78d1419532cb57dfb4a24707",
|
||||
"b51497cb78d14195ccfc6183d84bd2d4",
|
||||
"b51497cb78d14195de69798916df0947",
|
||||
"b51497cb78d14195591f1f111a1338e5",
|
||||
"b51497cb78d14195d8924703f938803a",
|
||||
"b51497cb78d14195b56236dd17cf52c4",
|
||||
"b51497cb78d14195478b96f0db8e46ca",
|
||||
"b51497cb78d141958b45c5cdb0fcd9fa",
|
||||
"b51497cb78d1419514deb1b4707ceec2",
|
||||
"b51497cb78d14195134f0512d484f1b3",
|
||||
"ef79ad2794fb9709cba1489d9492537c",
|
||||
"ef79ad2794fb9709060d4b628d881238",
|
||||
"ef79ad2794fb970938c08fdc450b59e1",
|
||||
"ef79ad2794fb970932cb57dfb4a24707",
|
||||
"ef79ad2794fb9709ccfc6183d84bd2d4",
|
||||
"ef79ad2794fb9709de69798916df0947",
|
||||
"ef79ad2794fb9709591f1f111a1338e5",
|
||||
"ef79ad2794fb9709d8924703f938803a",
|
||||
"ef79ad2794fb9709b56236dd17cf52c4",
|
||||
"ef79ad2794fb9709478b96f0db8e46ca",
|
||||
"ef79ad2794fb97098b45c5cdb0fcd9fa",
|
||||
"ef79ad2794fb970914deb1b4707ceec2",
|
||||
"ef79ad2794fb9709134f0512d484f1b3",
|
||||
"c293eaac4d30976fcba1489d9492537c",
|
||||
"c293eaac4d30976f060d4b628d881238",
|
||||
"c293eaac4d30976f38c08fdc450b59e1",
|
||||
"c293eaac4d30976f32cb57dfb4a24707",
|
||||
"c293eaac4d30976fccfc6183d84bd2d4",
|
||||
"c293eaac4d30976fde69798916df0947",
|
||||
"c293eaac4d30976f591f1f111a1338e5",
|
||||
"c293eaac4d30976fd8924703f938803a",
|
||||
"c293eaac4d30976fb56236dd17cf52c4",
|
||||
"c293eaac4d30976f478b96f0db8e46ca",
|
||||
"c293eaac4d30976f8b45c5cdb0fcd9fa",
|
||||
"c293eaac4d30976f14deb1b4707ceec2",
|
||||
"c293eaac4d30976f134f0512d484f1b3",
|
||||
"cbf220baab763d0f55a4de92dccbe8fd",
|
||||
"cbf220baab763d0f8a533a2ff9e42cb5",
|
||||
"cbf220baab763d0f7671dd1a33da62c9",
|
||||
"cbf220baab763d0f0e8bbcd3e87ae89b",
|
||||
"4cd21ab70af0106a55a4de92dccbe8fd",
|
||||
"4cd21ab70af0106a8a533a2ff9e42cb5",
|
||||
"4cd21ab70af0106a7671dd1a33da62c9",
|
||||
"4cd21ab70af0106a0e8bbcd3e87ae89b",
|
||||
"927cb7592d479c6455a4de92dccbe8fd",
|
||||
"927cb7592d479c648a533a2ff9e42cb5",
|
||||
"927cb7592d479c647671dd1a33da62c9",
|
||||
"927cb7592d479c640e8bbcd3e87ae89b",
|
||||
"a4ead9726dfda49055a4de92dccbe8fd",
|
||||
"a4ead9726dfda4908a533a2ff9e42cb5",
|
||||
"a4ead9726dfda4907671dd1a33da62c9",
|
||||
"a4ead9726dfda4900e8bbcd3e87ae89b",
|
||||
"28bde7690ef63b1b55a4de92dccbe8fd",
|
||||
"28bde7690ef63b1b8a533a2ff9e42cb5",
|
||||
"28bde7690ef63b1b7671dd1a33da62c9",
|
||||
"28bde7690ef63b1b0e8bbcd3e87ae89b",
|
||||
"57ad79380e5b8c8055a4de92dccbe8fd",
|
||||
"57ad79380e5b8c808a533a2ff9e42cb5",
|
||||
"57ad79380e5b8c807671dd1a33da62c9",
|
||||
"57ad79380e5b8c800e8bbcd3e87ae89b",
|
||||
"14f9eba2e4921c6955a4de92dccbe8fd",
|
||||
"14f9eba2e4921c698a533a2ff9e42cb5",
|
||||
"14f9eba2e4921c697671dd1a33da62c9",
|
||||
"14f9eba2e4921c690e8bbcd3e87ae89b",
|
||||
"9c20013c6e18d0f655a4de92dccbe8fd",
|
||||
"9c20013c6e18d0f68a533a2ff9e42cb5",
|
||||
"9c20013c6e18d0f67671dd1a33da62c9",
|
||||
"9c20013c6e18d0f60e8bbcd3e87ae89b",
|
||||
"9b71085432c1c60755a4de92dccbe8fd",
|
||||
"9b71085432c1c6078a533a2ff9e42cb5",
|
||||
"9b71085432c1c6077671dd1a33da62c9",
|
||||
"9b71085432c1c6070e8bbcd3e87ae89b",
|
||||
"60b7cb0bef0d090855a4de92dccbe8fd",
|
||||
"60b7cb0bef0d09088a533a2ff9e42cb5",
|
||||
"60b7cb0bef0d09087671dd1a33da62c9",
|
||||
"60b7cb0bef0d09080e8bbcd3e87ae89b",
|
||||
"df354e93ee3c5a3455a4de92dccbe8fd",
|
||||
"df354e93ee3c5a348a533a2ff9e42cb5",
|
||||
"df354e93ee3c5a347671dd1a33da62c9",
|
||||
"df354e93ee3c5a340e8bbcd3e87ae89b",
|
||||
"6874f9d33c400ace55a4de92dccbe8fd",
|
||||
"6874f9d33c400ace8a533a2ff9e42cb5",
|
||||
"6874f9d33c400ace7671dd1a33da62c9",
|
||||
"6874f9d33c400ace0e8bbcd3e87ae89b",
|
||||
"91239cd1b2b6c68155a4de92dccbe8fd",
|
||||
"91239cd1b2b6c6818a533a2ff9e42cb5",
|
||||
"91239cd1b2b6c6817671dd1a33da62c9",
|
||||
"91239cd1b2b6c6810e8bbcd3e87ae89b",
|
||||
"e18f3a7e473432a755a4de92dccbe8fd",
|
||||
"e18f3a7e473432a78a533a2ff9e42cb5",
|
||||
"e18f3a7e473432a77671dd1a33da62c9",
|
||||
"e18f3a7e473432a70e8bbcd3e87ae89b",
|
||||
"3da8bf2a0db693a055a4de92dccbe8fd",
|
||||
"3da8bf2a0db693a08a533a2ff9e42cb5",
|
||||
"3da8bf2a0db693a07671dd1a33da62c9",
|
||||
"3da8bf2a0db693a00e8bbcd3e87ae89b",
|
||||
"1171467c08e34d5055a4de92dccbe8fd",
|
||||
"1171467c08e34d508a533a2ff9e42cb5",
|
||||
"1171467c08e34d507671dd1a33da62c9",
|
||||
"1171467c08e34d500e8bbcd3e87ae89b",
|
||||
"e79bff3b512dc43855a4de92dccbe8fd",
|
||||
"e79bff3b512dc4388a533a2ff9e42cb5",
|
||||
"e79bff3b512dc4387671dd1a33da62c9",
|
||||
"e79bff3b512dc4380e8bbcd3e87ae89b",
|
||||
"366015ba3ec7101f55a4de92dccbe8fd",
|
||||
"366015ba3ec7101f8a533a2ff9e42cb5",
|
||||
"366015ba3ec7101f7671dd1a33da62c9",
|
||||
"366015ba3ec7101f0e8bbcd3e87ae89b",
|
||||
"5cfbcbce328895f555a4de92dccbe8fd",
|
||||
"5cfbcbce328895f58a533a2ff9e42cb5",
|
||||
"5cfbcbce328895f57671dd1a33da62c9",
|
||||
"5cfbcbce328895f50e8bbcd3e87ae89b",
|
||||
"54ee816d37bcaa7b55a4de92dccbe8fd",
|
||||
"54ee816d37bcaa7b8a533a2ff9e42cb5",
|
||||
"54ee816d37bcaa7b7671dd1a33da62c9",
|
||||
"54ee816d37bcaa7b0e8bbcd3e87ae89b",
|
||||
"e9fd9e8a62b17a62",
|
||||
"fe37e3447d5d3777",
|
||||
"b88f2421c61ee5de",
|
||||
"a3cae78807180aa8",
|
||||
"3abd59cd4dd94082",
|
||||
"15e229484250f987",
|
||||
"ea812b204808e3ca",
|
||||
"c5b48c568687ee1a",
|
||||
"1655b0df8a8ee7fd",
|
||||
"97832798b1f71b14",
|
||||
"2de499e54bea5908",
|
||||
"47ef6cc572b92694",
|
||||
"9bc0eee60c358013",
|
||||
"6eaa364f05d1723b",
|
||||
"83c463f487450850",
|
||||
"64324a9c046b1a4c",
|
||||
"e145f04afe5e5ea1",
|
||||
"9eb18c9644b4d833",
|
||||
"9fe25eab5e09ec77",
|
||||
"88393fec8754ff9c",
|
||||
"a324bffdcb9ad669",
|
||||
"dca6cc692cc66ad2",
|
||||
"a26d184cb12442b3",
|
||||
"8f20ca181f487d59",
|
||||
"5420297fe4cf5991",
|
||||
"937ca070e5ca91d5",
|
||||
"1560aaba4e6e766f",
|
||||
"8634b90a16f3592b",
|
||||
"926467c2de14268b",
|
||||
"3a111f2d7ec58c22",
|
||||
"854efc7020f4dcc6",
|
||||
"49806d321a8a79e2",
|
||||
"1db1ce77d97665f4",
|
||||
"defc8da4e2c4ce29",
|
||||
"016b3e8b198302af",
|
||||
"56be86542d8c339c",
|
||||
"1322422bc412a889",
|
||||
"3f3febd37a75dfc8",
|
||||
"8ee9bf2beb4fcd2c",
|
||||
"30a258943ac08e28",
|
||||
"bb4af37a367649f1",
|
||||
"fe9c8eec14214733",
|
||||
"0afdae69e3eb2bfc",
|
||||
"c9aacb4c906319fb",
|
||||
"274f83576c7956c5",
|
||||
"8c6ede54bdf5e017",
|
||||
"2cc915324d2baffa",
|
||||
"4e57ab5c3e933fea",
|
||||
"2d5ef69292b61871",
|
||||
"e62d02c6715253f4",
|
||||
"16c23761cabf25c2",
|
||||
"497db00af0d679a6",
|
||||
"57bc12b0614fc749",
|
||||
"1dbc984ec787ef3a",
|
||||
"9b6a9747849d66f3",
|
||||
"9f3ad224cccf4022",
|
||||
"c9e07ce92e428e47",
|
||||
"121f8c00002a92cc",
|
||||
"4b07e3d8e2a49b36",
|
||||
"21cb8265bc83946f",
|
||||
"cd204ec4f5701116",
|
||||
"636b1b359c7896ef",
|
||||
"4ce6a780fd1b4008",
|
||||
"793041ef217525bf",
|
||||
"1fadb2e2993baf0c",
|
||||
"095475b37dc0590d",
|
||||
"3abd117df8bd5878",
|
||||
"7ea74c4d69ca0655",
|
||||
"f2797112601d245e",
|
||||
"2205426a2fc885c1",
|
||||
"4625360a3e8d289d",
|
||||
"57e7f7a8b74da870",
|
||||
"d86d6d71f73e02aa",
|
||||
"625b99a5ae83d8cb",
|
||||
"fd665268922af969",
|
||||
"f00195867a27e22a",
|
||||
"9ded3f0499735e7b",
|
||||
"305317a9d00c2016",
|
||||
"e5d0d4ea3e19e646",
|
||||
"4e10d543d15501a8",
|
||||
"e17d0e45642cd94b",
|
||||
"ab331cb0eb756b04",
|
||||
"c7ce2df7a1120363",
|
||||
"6d1c6b05dd8f194e",
|
||||
"793fd87cfb5459c9",
|
||||
"614ff78c025c6f88",
|
||||
"4c2db89af0cd7965",
|
||||
"df01c68906414344",
|
||||
"96c4d5a269caa7d4",
|
||||
"aece54f46c5b8275",
|
||||
"8ea951e7648b7bf6",
|
||||
"bb55939c9d192884",
|
||||
"27a8260801fd2900",
|
||||
"7e83814a1b89459d",
|
||||
"a41599f90dc312bb",
|
||||
"35d3f15626cb2fe4",
|
||||
"0dea6fea2209dcd5",
|
||||
"affd0d4d2cc57b5a",
|
||||
"f174485f6af9723f",
|
||||
"9e9b68c8d9f44813",
|
||||
"b300f6855d6dcb1c",
|
||||
"e1ee62027fbc3553",
|
||||
"c650ed0324e21dfd",
|
||||
"9f2c8768ec86ec33",
|
||||
"1effce25761dc27b",
|
||||
"13335f1d7fb51832",
|
||||
"fb41935fb6083bd1",
|
||||
"c6ff149600cfcb28",
|
||||
"c79748b868214a2c",
|
||||
"f4ffc4fdd14e9fd0",
|
||||
"e42d7cced887ba8a",
|
||||
"9eff8ae7138620b2",
|
||||
"e876938038368306",
|
||||
"886e3d40908e51b6",
|
||||
"580a8e84d9038756",
|
||||
"39bf24adc30c1b9b",
|
||||
"30445d60030f3e7a",
|
||||
"6ed6858bedbae573",
|
||||
"74dea9a5cd0656de",
|
||||
"4b4061ab48309fcf",
|
||||
"022f3efb91d1195f",
|
||||
"6125db08573a06d6",
|
||||
"a5b3623dcccf01b3",
|
||||
"0021de89e2115fb0",
|
||||
"09bc87a8ead0c5a7",
|
||||
"5d5ce89f38f8bf76"
|
||||
],
|
||||
"vias": [
|
||||
"3c76b8e16f83bedd",
|
||||
"1160d22949fe1283",
|
||||
"5ebcf86be9df9935",
|
||||
"ba5093b4afb6cc84",
|
||||
"13e94f8778ada1e3",
|
||||
"19f391ff9c8107d7",
|
||||
"6fb4f69f1fbd2ed7",
|
||||
"b28e0a7bd7e72517",
|
||||
"9b8145768d2d06cf",
|
||||
"99bb0e8762594fab",
|
||||
"c754eaf048bd33e7",
|
||||
"f7d52aa42017da67",
|
||||
"f709e13a4c6c0552",
|
||||
"655a3e4d8aabfc32",
|
||||
"e5658faf4ba3c66b",
|
||||
"cefde9d73193c596",
|
||||
"b61c2a23f5ca8e77",
|
||||
"9c72904940d146b7",
|
||||
"adc2a2b5d17212a9",
|
||||
"c3cb39981b472b43",
|
||||
"69d634423c18687b",
|
||||
"758f057f647a9492",
|
||||
"5aed245832ba7e5a",
|
||||
"6012be2afe65fd5f",
|
||||
"a607937bd27c470b",
|
||||
"7f26a5882c7e3383",
|
||||
"a765d15251983359",
|
||||
"ff2663aa000ff6e0",
|
||||
"d4a46fc6eaf78289",
|
||||
"51ab949bcba5627b",
|
||||
"2b6644ac9c533944",
|
||||
"37d24c9b8a071d6d",
|
||||
"5a433e7050bd35c7",
|
||||
"de2afe51c2ae42ea",
|
||||
"6a470deee7f39e32",
|
||||
"458d15c595c8a947",
|
||||
"cea11ea69401ef30",
|
||||
"e1f089dc18dac014",
|
||||
"a2ea1de82d6a14da",
|
||||
"a850d50dcda9a183",
|
||||
"acbdd79b82c0f0ae",
|
||||
"0d9535a72d86e66e",
|
||||
"07d45095a0f60eb9",
|
||||
"665d50a47c522558",
|
||||
"9c8c4bf4da95affd",
|
||||
"31c97e4211c17adc",
|
||||
"0bc9dc64809f99c6",
|
||||
"07fdaab34fed56b9",
|
||||
"74912648e237f34a",
|
||||
"7fa6c3956f82b718",
|
||||
"ef61ef4523c1eaa6",
|
||||
"1e605b462957b1ac",
|
||||
"fdf964fffa739008",
|
||||
"d51b653339448a42",
|
||||
"20745b0c5f6b3c1f",
|
||||
"9b13e91237e259df",
|
||||
"7e7c506b5a1e27af",
|
||||
"166b67b6c46a1845",
|
||||
"6d10752ada0cf7a5",
|
||||
"6442d2bf70560937",
|
||||
"17f9838ce30bd012",
|
||||
"5532355e50f89e96",
|
||||
"d99623f513ef1269",
|
||||
"cfe5eb6009f12ee0",
|
||||
"36bbeebac9fa2d11",
|
||||
"59f8083e72b29cab",
|
||||
"2619f51cfe20d664",
|
||||
"ab77117ebd771c9e",
|
||||
"6bf6abc83d6c83a4",
|
||||
"54e27159bcbe604b",
|
||||
"409ab2d0ef60ff2f",
|
||||
"780b0248b7da6115",
|
||||
"9d9344578dd2d6dd",
|
||||
"57d24b4916acb341",
|
||||
"8a759ad90f6c9104",
|
||||
"5bec9848c8f1f48c",
|
||||
"f8371b8e90a70cab",
|
||||
"984db8c2238b65c0",
|
||||
"fbbf5f98bed228fd",
|
||||
"9213fe9563bcf6f7",
|
||||
"6c2aa3f70374b21c",
|
||||
"5459b5f27d894b71",
|
||||
"02ffddde2edffd9e",
|
||||
"5c4954d4575ce928",
|
||||
"e2be6ec0bf9f0cd1",
|
||||
"983e9f6dfb42dffc",
|
||||
"500ee886d017847d",
|
||||
"c4e84214b592aa46",
|
||||
"a0b6c2a1782a214c",
|
||||
"ed902e2e2aafdab0",
|
||||
"2f4442551fa145f0",
|
||||
"990092c69a542ff3",
|
||||
"fbf14c4da494f8fa",
|
||||
"71e175ebe5c84a7d",
|
||||
"018862775ccfa40c",
|
||||
"9e216718695bf6e0",
|
||||
"7af4ca38a8813574",
|
||||
"198e613808752f53",
|
||||
"d545659bfa8b3600",
|
||||
"24cb2446dfc5bd12",
|
||||
"abf5337bbfb9b517",
|
||||
"d69b2e4b9a41584b",
|
||||
"af23e0bbabba82ac",
|
||||
"02853a2977aada33",
|
||||
"1fa969191058b18e",
|
||||
"6dfba3f13b73802d",
|
||||
"74772f9ed0194bda",
|
||||
"392a8b9627f1d792",
|
||||
"a77cc6ae45d993d4",
|
||||
"6d58df4c306050b7",
|
||||
"61a4cb2491a60917",
|
||||
"b83b61937653fb86",
|
||||
"d731323d95985409",
|
||||
"8bd219b71ef56d45",
|
||||
"e0392a6a29c1f5c2",
|
||||
"141c4cd4f6d83290",
|
||||
"abe71648b0eb9f6e",
|
||||
"930b6be1cd81d00a",
|
||||
"18799944fdbfe78a",
|
||||
"a1342c0d7472dbea",
|
||||
"07fc748f9b8fd5b6",
|
||||
"eae7dd0d570e463c",
|
||||
"b39298a8fe18a1e5",
|
||||
"aa7310af853eb11b",
|
||||
"af652110185ab2ce",
|
||||
"de6406491a2fa9b3",
|
||||
"308e2b858db9d207",
|
||||
"796b718a1456c1a3",
|
||||
"04ca739b9615d4b5",
|
||||
"d9d5c349a8e93b84",
|
||||
"ba0ecfae169916c3",
|
||||
"5daeb70e7e58288d",
|
||||
"6945cb2e5e675964",
|
||||
"7bb3a40ad4898c8a",
|
||||
"4bf061e8183e456e",
|
||||
"8879a2b27cbcd066",
|
||||
"fec9bd9171754554",
|
||||
"dbe1b98100647b94",
|
||||
"f1d4e637f331a1c3",
|
||||
"620cae09120cd362",
|
||||
"b05bfe01a7b18a3d",
|
||||
"447195b06d237a25",
|
||||
"a9d9a2e69c0d0811",
|
||||
"793cf12bd5fc51b2",
|
||||
"fbb48610479d6d31",
|
||||
"c450b4f2ed71d14f",
|
||||
"a26349a3cc9656f3",
|
||||
"19336477140d436e",
|
||||
"647803859d10eb03",
|
||||
"c4b38a1c53032f30",
|
||||
"c9a1253b2d2881ba",
|
||||
"5a0e6619dc076a33",
|
||||
"f62843ab88fb13c1",
|
||||
"13b55d47a2ad3e03",
|
||||
"1b79a36e8ed41e37",
|
||||
"9e882ae7c58d4191",
|
||||
"d3aef74f71703b1e",
|
||||
"8dc132dd8ae48db1",
|
||||
"9fbcded9a5df200d",
|
||||
"49f104644c5c069e",
|
||||
"45ef14c2a292ca5b",
|
||||
"aa026dadf9316676",
|
||||
"ed77c1b96b667c55",
|
||||
"79f445a3ee1cdb55",
|
||||
"301442622aefaf2b",
|
||||
"c79741202850c23c",
|
||||
"868a0c685d1a2486",
|
||||
"b90266f989b9f382",
|
||||
"f19bae15f031e4f8",
|
||||
"8e0b0ef069f699e6",
|
||||
"83edb50daa22c667",
|
||||
"1ed885273d6a5e0f",
|
||||
"068c9ef9992b874a",
|
||||
"dbc5348c9b01a3f8",
|
||||
"c159ad747fab8ef4",
|
||||
"d277c025ef37e9e6",
|
||||
"4d9e752b941834c1",
|
||||
"e5aed657d3237dc1",
|
||||
"678e98db26e5a019",
|
||||
"2b4b6e4cd0f2be77",
|
||||
"fff1c035227a89b0",
|
||||
"c9a0305019ce6a09",
|
||||
"a0c85182ec41747d",
|
||||
"4d53a1fef606188f",
|
||||
"941675c9b2e05595",
|
||||
"fc487d1a1bd9ec6e",
|
||||
"dae784afa71c6a78",
|
||||
"6960e9999620e078",
|
||||
"df42891f35084f1b",
|
||||
"5c75b7c70a6bd1fa",
|
||||
"d072166946eb8f42",
|
||||
"01c75fece8cc264f",
|
||||
"71afcd73c0e44507",
|
||||
"88a0e90207bd415b",
|
||||
"f5fcb883ce206827",
|
||||
"fa36483e5c85caf7",
|
||||
"732e63720ecdb61c",
|
||||
"025a8df46c38b737",
|
||||
"f9453697d1387929",
|
||||
"8004cb8e319d6365",
|
||||
"347380d7f8ada0a0",
|
||||
"7be4920a28c93b44",
|
||||
"11f6abbb6889961b",
|
||||
"64bc8aa5282adf4b",
|
||||
"89260ec458256137",
|
||||
"3372e493fe323a62",
|
||||
"b76433b4a72e8b36",
|
||||
"1ef63e9394de2843",
|
||||
"5d4b67c507f3b524",
|
||||
"bacc8cae733a5d38"
|
||||
]
|
||||
}
|
||||
文件差异因一行或多行过长而隐藏
文件差异因一行或多行过长而隐藏
文件差异因一行或多行过长而隐藏
@@ -0,0 +1,772 @@
|
||||
{
|
||||
"success": true,
|
||||
"result": {
|
||||
"P3": [
|
||||
[
|
||||
"98148045ce0139f2",
|
||||
"netport",
|
||||
"NTC1",
|
||||
340,
|
||||
790,
|
||||
0
|
||||
],
|
||||
[
|
||||
"5917cffd8332f775",
|
||||
"netport",
|
||||
"NTC2",
|
||||
420,
|
||||
780,
|
||||
0
|
||||
],
|
||||
[
|
||||
"983bfeba77dd20ec",
|
||||
"netport",
|
||||
"EFUSE_EN1",
|
||||
340,
|
||||
760,
|
||||
0
|
||||
],
|
||||
[
|
||||
"a60e7109f60e71ec",
|
||||
"netport",
|
||||
"EFUSE_EN2",
|
||||
420,
|
||||
750,
|
||||
0
|
||||
],
|
||||
[
|
||||
"49c9229a62236dc5",
|
||||
"netport",
|
||||
"EFUSE_EN3",
|
||||
500,
|
||||
740,
|
||||
0
|
||||
],
|
||||
[
|
||||
"e9fcc1859a0a6c51",
|
||||
"netport",
|
||||
"EFUSE_EN4",
|
||||
340,
|
||||
730,
|
||||
0
|
||||
],
|
||||
[
|
||||
"0d166dc3755982d0",
|
||||
"netport",
|
||||
"EFUSE_EN5",
|
||||
420,
|
||||
720,
|
||||
0
|
||||
],
|
||||
[
|
||||
"071f2cf24985f4a5",
|
||||
"netport",
|
||||
"VBUS_EN1",
|
||||
500,
|
||||
710,
|
||||
0
|
||||
],
|
||||
[
|
||||
"3354feca6cd85f38",
|
||||
"netport",
|
||||
"VBUS_EN2",
|
||||
340,
|
||||
700,
|
||||
0
|
||||
],
|
||||
[
|
||||
"7c4ca8c8825b0391",
|
||||
"netport",
|
||||
"VBUS_EN3",
|
||||
420,
|
||||
690,
|
||||
0
|
||||
],
|
||||
[
|
||||
"9c3014a51a70dbe3",
|
||||
"netport",
|
||||
"VBUS_EN4",
|
||||
500,
|
||||
680,
|
||||
0
|
||||
],
|
||||
[
|
||||
"7581863958b5cac5",
|
||||
"netport",
|
||||
"VBUS_EN5",
|
||||
340,
|
||||
670,
|
||||
0
|
||||
],
|
||||
[
|
||||
"4f63016d4e1d5a5f",
|
||||
"netport",
|
||||
"SDA",
|
||||
420,
|
||||
660,
|
||||
0
|
||||
],
|
||||
[
|
||||
"a57d7eaef4ae6639",
|
||||
"netport",
|
||||
"SCL",
|
||||
500,
|
||||
650,
|
||||
0
|
||||
],
|
||||
[
|
||||
"5f8e62aa831f3f42",
|
||||
"netport",
|
||||
"KEY_SER",
|
||||
340,
|
||||
640,
|
||||
0
|
||||
],
|
||||
[
|
||||
"a4ce78d117f136d9",
|
||||
"netport",
|
||||
"KEY_SRCLK",
|
||||
420,
|
||||
630,
|
||||
0
|
||||
],
|
||||
[
|
||||
"5328d07ff404e571",
|
||||
"netport",
|
||||
"KEY_RCLK",
|
||||
500,
|
||||
620,
|
||||
0
|
||||
],
|
||||
[
|
||||
"d565c7eb35d8c59f",
|
||||
"netport",
|
||||
"USB_DM",
|
||||
340,
|
||||
610,
|
||||
0
|
||||
],
|
||||
[
|
||||
"2a891ec2568f8def",
|
||||
"netport",
|
||||
"USB_DP",
|
||||
420,
|
||||
600,
|
||||
0
|
||||
],
|
||||
[
|
||||
"aab9ea2a9f5f978c",
|
||||
"netport",
|
||||
"KEY_OE#",
|
||||
500,
|
||||
590,
|
||||
0
|
||||
],
|
||||
[
|
||||
"4629188eaec8801a",
|
||||
"netport",
|
||||
"IOEXP_INT#",
|
||||
340,
|
||||
550,
|
||||
0
|
||||
],
|
||||
[
|
||||
"536c7724af399ca9",
|
||||
"netport",
|
||||
"USB_DP",
|
||||
310,
|
||||
320,
|
||||
0
|
||||
],
|
||||
[
|
||||
"91b90443b9bc95d4",
|
||||
"netport",
|
||||
"USB_DM",
|
||||
390,
|
||||
295,
|
||||
0
|
||||
],
|
||||
[
|
||||
"9131b6da709caafc",
|
||||
"netport",
|
||||
"SDA",
|
||||
650,
|
||||
550,
|
||||
0
|
||||
],
|
||||
[
|
||||
"f434c0b1e9ee6e9a",
|
||||
"netport",
|
||||
"SCL",
|
||||
730,
|
||||
550,
|
||||
0
|
||||
],
|
||||
[
|
||||
"d788992f8a9f4752",
|
||||
"netport",
|
||||
"BUCK_PG",
|
||||
810,
|
||||
550,
|
||||
0
|
||||
],
|
||||
[
|
||||
"735d03e8b5f40161",
|
||||
"netport",
|
||||
"INA_ALERT",
|
||||
890,
|
||||
550,
|
||||
0
|
||||
],
|
||||
[
|
||||
"5d81a443cbd00788",
|
||||
"netport",
|
||||
"IOEXP_INT#",
|
||||
980,
|
||||
550,
|
||||
0
|
||||
],
|
||||
[
|
||||
"fe12d3221087c58e",
|
||||
"netport",
|
||||
"NTC1",
|
||||
790,
|
||||
340,
|
||||
0
|
||||
],
|
||||
[
|
||||
"61061b5a2507356d",
|
||||
"netport",
|
||||
"NTC2",
|
||||
1010,
|
||||
340,
|
||||
0
|
||||
],
|
||||
[
|
||||
"1a3575a2c6578b95",
|
||||
"netport",
|
||||
"FAN_PWM",
|
||||
340,
|
||||
480,
|
||||
0
|
||||
],
|
||||
[
|
||||
"14c52265e5aa15ef",
|
||||
"netport",
|
||||
"FAN_TACH",
|
||||
340,
|
||||
470,
|
||||
0
|
||||
],
|
||||
[
|
||||
"640917bc96b151a0",
|
||||
"netport",
|
||||
"UP_VBUS_DET",
|
||||
200,
|
||||
480,
|
||||
180
|
||||
]
|
||||
],
|
||||
"P3B": [
|
||||
[
|
||||
"741cfd4006369ea8",
|
||||
"netport",
|
||||
"K1_VUP",
|
||||
195.00000000000003,
|
||||
765,
|
||||
180
|
||||
],
|
||||
[
|
||||
"cef89243679d4896",
|
||||
"netport",
|
||||
"K1_VDN",
|
||||
195.00000000000003,
|
||||
755,
|
||||
180
|
||||
],
|
||||
[
|
||||
"7b95920caf4f963e",
|
||||
"netport",
|
||||
"K2_PWR",
|
||||
195.00000000000003,
|
||||
745,
|
||||
180
|
||||
],
|
||||
[
|
||||
"ee1b1b59b5b73be1",
|
||||
"netport",
|
||||
"K2_VUP",
|
||||
195.00000000000003,
|
||||
735,
|
||||
180
|
||||
],
|
||||
[
|
||||
"feb96ecf842ecea5",
|
||||
"netport",
|
||||
"K2_VDN",
|
||||
195.00000000000003,
|
||||
725,
|
||||
180
|
||||
],
|
||||
[
|
||||
"89ea0eaa9f0ff13a",
|
||||
"netport",
|
||||
"K3_PWR",
|
||||
195.00000000000003,
|
||||
715,
|
||||
180
|
||||
],
|
||||
[
|
||||
"434b89eee631f534",
|
||||
"netport",
|
||||
"K3_VUP",
|
||||
195.00000000000003,
|
||||
705,
|
||||
180
|
||||
],
|
||||
[
|
||||
"0fdfe36a58fac2d1",
|
||||
"netport",
|
||||
"K1_PWR",
|
||||
340,
|
||||
755,
|
||||
0
|
||||
],
|
||||
[
|
||||
"15d2ebcc0f6b3117",
|
||||
"netport",
|
||||
"KEY_SER",
|
||||
340,
|
||||
745,
|
||||
0
|
||||
],
|
||||
[
|
||||
"17d7ef9069ad7678",
|
||||
"netport",
|
||||
"KEY_OE#",
|
||||
340,
|
||||
735,
|
||||
0
|
||||
],
|
||||
[
|
||||
"e0141d4d265caf2d",
|
||||
"netport",
|
||||
"KEY_RCLK",
|
||||
340,
|
||||
725,
|
||||
0
|
||||
],
|
||||
[
|
||||
"268525dbc1db050e",
|
||||
"netport",
|
||||
"KEY_SRCLK",
|
||||
340,
|
||||
715,
|
||||
0
|
||||
],
|
||||
[
|
||||
"e5a1048502cf28db",
|
||||
"netport",
|
||||
"SR_CAS",
|
||||
340,
|
||||
695,
|
||||
0
|
||||
],
|
||||
[
|
||||
"c7a6729d5f6f4703",
|
||||
"netport",
|
||||
"K4_PWR",
|
||||
195.00000000000003,
|
||||
595,
|
||||
180
|
||||
],
|
||||
[
|
||||
"d67da862169d5fc3",
|
||||
"netport",
|
||||
"K4_VUP",
|
||||
195.00000000000003,
|
||||
585,
|
||||
180
|
||||
],
|
||||
[
|
||||
"a328b45bb62d3f36",
|
||||
"netport",
|
||||
"K4_VDN",
|
||||
195,
|
||||
575,
|
||||
180
|
||||
],
|
||||
[
|
||||
"f0a2bb4d1052b524",
|
||||
"netport",
|
||||
"K5_PWR",
|
||||
195,
|
||||
565,
|
||||
180
|
||||
],
|
||||
[
|
||||
"08df34e7a476259c",
|
||||
"netport",
|
||||
"K5_VUP",
|
||||
195,
|
||||
555,
|
||||
180
|
||||
],
|
||||
[
|
||||
"e53a2bf37e575c43",
|
||||
"netport",
|
||||
"K5_VDN",
|
||||
195,
|
||||
545,
|
||||
180
|
||||
],
|
||||
[
|
||||
"37beb5899f1281f2",
|
||||
"netport",
|
||||
"HUB_RST",
|
||||
195,
|
||||
535,
|
||||
180
|
||||
],
|
||||
[
|
||||
"84037e346e49c221",
|
||||
"netport",
|
||||
"K3_VDN",
|
||||
340,
|
||||
585,
|
||||
0
|
||||
],
|
||||
[
|
||||
"d7341625d364de72",
|
||||
"netport",
|
||||
"SR_CAS",
|
||||
340,
|
||||
575,
|
||||
0
|
||||
],
|
||||
[
|
||||
"832a7733c79aa4dc",
|
||||
"netport",
|
||||
"KEY_OE#",
|
||||
340,
|
||||
565,
|
||||
0
|
||||
],
|
||||
[
|
||||
"182256a2177d4fe1",
|
||||
"netport",
|
||||
"KEY_RCLK",
|
||||
340,
|
||||
555,
|
||||
0
|
||||
],
|
||||
[
|
||||
"4b506b0aaa31ef52",
|
||||
"netport",
|
||||
"KEY_SRCLK",
|
||||
340,
|
||||
545,
|
||||
0
|
||||
],
|
||||
[
|
||||
"8f31031466c68d3d",
|
||||
"netport",
|
||||
"KEY_OE#",
|
||||
600,
|
||||
495,
|
||||
0
|
||||
],
|
||||
[
|
||||
"75e4816c806bb887",
|
||||
"netport",
|
||||
"IOEXP_INT#",
|
||||
639.9999999999999,
|
||||
755.0000000000001,
|
||||
180
|
||||
],
|
||||
[
|
||||
"ef5b4374866dcb13",
|
||||
"netport",
|
||||
"EFUSE_FLT1",
|
||||
639.9999999999999,
|
||||
725.0000000000001,
|
||||
180
|
||||
],
|
||||
[
|
||||
"7824544364e1d513",
|
||||
"netport",
|
||||
"EFUSE_FLT2",
|
||||
639.9999999999999,
|
||||
715.0000000000001,
|
||||
180
|
||||
],
|
||||
[
|
||||
"7f7d28a99121dc5f",
|
||||
"netport",
|
||||
"EFUSE_FLT3",
|
||||
639.9999999999999,
|
||||
705.0000000000001,
|
||||
180
|
||||
],
|
||||
[
|
||||
"5e35e56d02b61af7",
|
||||
"netport",
|
||||
"EFUSE_FLT4",
|
||||
639.9999999999999,
|
||||
695.0000000000001,
|
||||
180
|
||||
],
|
||||
[
|
||||
"ba4bc46dd17643a7",
|
||||
"netport",
|
||||
"EFUSE_FLT5",
|
||||
639.9999999999999,
|
||||
685.0000000000001,
|
||||
180
|
||||
],
|
||||
[
|
||||
"3b42e114fb240424",
|
||||
"netport",
|
||||
"BUCK_PG",
|
||||
639.9999999999999,
|
||||
675.0000000000001,
|
||||
180
|
||||
],
|
||||
[
|
||||
"4cd0c723636ce358",
|
||||
"netport",
|
||||
"INA_ALERT",
|
||||
639.9999999999999,
|
||||
665.0000000000001,
|
||||
180
|
||||
],
|
||||
[
|
||||
"5e56ca3553b1050f",
|
||||
"netport",
|
||||
"EFUSE_PG1",
|
||||
850,
|
||||
645,
|
||||
0
|
||||
],
|
||||
[
|
||||
"2fea3e9353791e1e",
|
||||
"netport",
|
||||
"EFUSE_PG2",
|
||||
850,
|
||||
655,
|
||||
0
|
||||
],
|
||||
[
|
||||
"b89b1288a4f3806b",
|
||||
"netport",
|
||||
"EFUSE_PG3",
|
||||
850,
|
||||
665,
|
||||
0
|
||||
],
|
||||
[
|
||||
"c79f0a6c962fe042",
|
||||
"netport",
|
||||
"EFUSE_PG4",
|
||||
850,
|
||||
675,
|
||||
0
|
||||
],
|
||||
[
|
||||
"c763c9724ad52531",
|
||||
"netport",
|
||||
"EFUSE_PG5",
|
||||
850,
|
||||
685,
|
||||
0
|
||||
],
|
||||
[
|
||||
"db9e8a6b5b030562",
|
||||
"netport",
|
||||
"SCL",
|
||||
850,
|
||||
735,
|
||||
0
|
||||
],
|
||||
[
|
||||
"d795acb0ab25f92c",
|
||||
"netport",
|
||||
"SDA",
|
||||
850,
|
||||
745,
|
||||
0
|
||||
],
|
||||
[
|
||||
"c97468e14aad2ff3",
|
||||
"netport",
|
||||
"SDA",
|
||||
100,
|
||||
250,
|
||||
180
|
||||
],
|
||||
[
|
||||
"544fa1757e29b456",
|
||||
"netport",
|
||||
"SCL",
|
||||
100,
|
||||
270,
|
||||
180
|
||||
],
|
||||
[
|
||||
"adfd261e2d43dd4c",
|
||||
"netport",
|
||||
"VDAC3",
|
||||
129.99999999999997,
|
||||
295,
|
||||
180
|
||||
],
|
||||
[
|
||||
"20b60f8a802272bc",
|
||||
"netport",
|
||||
"VDAC1",
|
||||
390,
|
||||
270,
|
||||
0
|
||||
],
|
||||
[
|
||||
"b8f9ba754f9c4b7a",
|
||||
"netport",
|
||||
"VDAC2",
|
||||
480,
|
||||
260,
|
||||
0
|
||||
],
|
||||
[
|
||||
"7c06fd8bceb181c7",
|
||||
"netport",
|
||||
"SDA",
|
||||
630,
|
||||
249.99999999999997,
|
||||
180
|
||||
],
|
||||
[
|
||||
"f5714f898b1112cc",
|
||||
"netport",
|
||||
"SCL",
|
||||
630,
|
||||
270.00000000000006,
|
||||
180
|
||||
],
|
||||
[
|
||||
"879f23971770d401",
|
||||
"netport",
|
||||
"VDAC4",
|
||||
920,
|
||||
270,
|
||||
0
|
||||
],
|
||||
[
|
||||
"67d1451292925b2c",
|
||||
"netport",
|
||||
"VDAC5",
|
||||
1010,
|
||||
260,
|
||||
0
|
||||
],
|
||||
[
|
||||
"d1bbb4cf6918646c",
|
||||
"netport",
|
||||
"SR_CAS2",
|
||||
340,
|
||||
525,
|
||||
0
|
||||
]
|
||||
],
|
||||
"P6": [
|
||||
[
|
||||
"1ef1e7969d1549a5",
|
||||
"netport",
|
||||
"EDL_EN2",
|
||||
170.00000000000003,
|
||||
635,
|
||||
180
|
||||
],
|
||||
[
|
||||
"6b13ffe34211967b",
|
||||
"netport",
|
||||
"EDL_EN3",
|
||||
170.00000000000003,
|
||||
625,
|
||||
180
|
||||
],
|
||||
[
|
||||
"9a07d87bc11a54d6",
|
||||
"netport",
|
||||
"EDL_EN4",
|
||||
170.00000000000003,
|
||||
615,
|
||||
180
|
||||
],
|
||||
[
|
||||
"2e22a30a5a745358",
|
||||
"netport",
|
||||
"EDL_EN5",
|
||||
170.00000000000003,
|
||||
605,
|
||||
180
|
||||
],
|
||||
[
|
||||
"2cef6997a3a71516",
|
||||
"netport",
|
||||
"EDL_EN1",
|
||||
330,
|
||||
625,
|
||||
0
|
||||
],
|
||||
[
|
||||
"7a568f58a9fae937",
|
||||
"netport",
|
||||
"KEY_SRCLK",
|
||||
330,
|
||||
585,
|
||||
0
|
||||
],
|
||||
[
|
||||
"699bf1ac0010cf9b",
|
||||
"netport",
|
||||
"KEY_RCLK",
|
||||
330,
|
||||
595,
|
||||
0
|
||||
],
|
||||
[
|
||||
"4e626ca6a30df01c",
|
||||
"netport",
|
||||
"KEY_OE#",
|
||||
330,
|
||||
605,
|
||||
0
|
||||
],
|
||||
[
|
||||
"4838f59d2365b7c5",
|
||||
"netport",
|
||||
"SR_CAS2",
|
||||
330,
|
||||
615,
|
||||
0
|
||||
],
|
||||
[
|
||||
"b338535ed23239d9",
|
||||
"netport",
|
||||
"FAN_PWM",
|
||||
540,
|
||||
330.00000000000006,
|
||||
180
|
||||
],
|
||||
[
|
||||
"816f84602f52c351",
|
||||
"netport",
|
||||
"FAN_TACH",
|
||||
799.9999999999999,
|
||||
725.0000000000001,
|
||||
180
|
||||
]
|
||||
]
|
||||
},
|
||||
"windowId": "1fc63338-da16-4591-bd8c-a22df2fba284"
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
u"""刷新 `_pcb2_pads_full.json` / `_pcb2_vias.json`(inner1_* 三个校核脚本的输入)。"""
|
||||
import json, os, sys
|
||||
HERE = os.path.dirname(os.path.abspath(__file__)); sys.path.insert(0, HERE)
|
||||
from eda import run
|
||||
JS = u"""
|
||||
await eda.dmt_EditorControl.openDocument('f126ffb29c92f9b2');
|
||||
await new Promise(r=>setTimeout(r,1800));
|
||||
const name = {};
|
||||
for (const c of await eda.pcb_PrimitiveComponent.getAll())
|
||||
name[c.getState_PrimitiveId()] = c.getState_Designator();
|
||||
const ids = Object.keys(name).sort((a,b)=>b.length-a.length);
|
||||
const pads = [];
|
||||
for (const p of await eda.pcb_PrimitivePad.getAll()) {
|
||||
const pid = p.getState_PrimitiveId(); let hit='';
|
||||
for (const id of ids) if (pid.length>id.length && pid.indexOf(id)===0){hit=name[id];break;}
|
||||
pads.push([hit, p.getState_PadNumber(), p.getState_Net(), p.getState_Layer(),
|
||||
p.getState_X(), p.getState_Y(), p.getState_Pad(), p.getState_Hole()]);
|
||||
}
|
||||
const vias = [];
|
||||
for (const o of await eda.pcb_PrimitiveVia.getAll())
|
||||
vias.push([o.getState_Net(), o.getState_X(), o.getState_Y(), o.getState_Diameter(), o.getState_HoleDiameter()]);
|
||||
return {pads: pads, vias: vias};
|
||||
"""
|
||||
r = run(JS, timeout=300)
|
||||
if not r.get('success'):
|
||||
sys.exit(u'失败: ' + json.dumps(r, ensure_ascii=False)[:400])
|
||||
d = r['result']
|
||||
json.dump(d['pads'], open(os.path.join(HERE, '_pcb2_pads_full.json'), 'w', encoding='utf-8'), ensure_ascii=False)
|
||||
json.dump(d['vias'], open(os.path.join(HERE, '_pcb2_vias.json'), 'w', encoding='utf-8'), ensure_ascii=False)
|
||||
print(u'焊盘 %d / 过孔 %d' % (len(d['pads']), len(d['vias'])))
|
||||
文件差异因一行或多行过长而隐藏
@@ -0,0 +1,48 @@
|
||||
08:21:21 自动布线中...(20%)
|
||||
08:21:51 自动布线中...(25%)
|
||||
08:22:21 自动布线中...(30%)
|
||||
08:22:51 自动布线中...(30%)
|
||||
08:23:21 自动布线中...(35%)
|
||||
08:23:51 自动布线中...(35%)
|
||||
08:24:21 自动布线中...(40%)
|
||||
08:24:51 自动布线中...(40%)
|
||||
08:25:21 自动布线中...(45%)
|
||||
08:25:51 自动布线中...(45%)
|
||||
08:26:21 自动布线中...(45%)
|
||||
08:26:51 自动布线中...(50%)
|
||||
08:27:21 自动布线中...(50%)
|
||||
08:27:51 自动布线中...(55%)
|
||||
08:28:21 自动布线中...(55%)
|
||||
08:28:51 自动布线中...(55%)
|
||||
08:29:21 自动布线中...(60%)
|
||||
08:29:51 自动布线中...(60%)
|
||||
08:30:22 自动布线中...(60%)
|
||||
08:30:52 自动布线中...(60%)
|
||||
08:31:22 自动布线中...(65%)
|
||||
08:31:52 自动布线中...(65%)
|
||||
08:32:22 自动布线中...(65%)
|
||||
08:32:52 自动布线中...(65%)
|
||||
08:33:22 自动布线中...(65%)
|
||||
08:33:52 自动布线中...(65%)
|
||||
08:34:22 自动布线中...(70%)
|
||||
08:34:52 自动布线中...(70%)
|
||||
08:35:22 自动布线中...(70%)
|
||||
08:35:52 自动布线中...(75%)
|
||||
08:36:22 自动布线中...(75%)
|
||||
08:36:52 自动布线中...(75%)
|
||||
08:37:22 自动布线中...(80%)
|
||||
08:37:52 自动布线中...(80%)
|
||||
08:38:22 自动布线中...(80%)
|
||||
08:38:52 自动布线中...(85%)
|
||||
08:39:22 自动布线中...(85%)
|
||||
08:39:52 自动布线中...(85%)
|
||||
08:40:22 自动布线中...(90%)
|
||||
08:40:52 自动布线中...(90%)
|
||||
08:41:22 自动布线中...(90%)
|
||||
08:41:52 自动布线中...(90%)
|
||||
08:42:22 自动布线中...(95%)
|
||||
08:42:52 自动布线中...(95%)
|
||||
08:43:22 (无进度条)
|
||||
08:43:52 (无进度条)
|
||||
08:44:22 (无进度条)
|
||||
DONE 进度条连续 3 次消失
|
||||
二进制文件未显示。
@@ -0,0 +1 @@
|
||||
const r=await eda.sch_Document.save(); await new Promise(x=>setTimeout(x,2500)); return r;
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import io, json, os, sys
|
||||
HERE = os.path.dirname(os.path.abspath(__file__))
|
||||
sys.path.insert(0, HERE)
|
||||
from eda import run
|
||||
js = io.open(os.path.join(HERE, '_tmp_snap.js'), encoding='utf-8').read()
|
||||
r = run(js, timeout=180)
|
||||
if not r.get('success'):
|
||||
print(json.dumps(r, ensure_ascii=False)[:500]); sys.exit(1)
|
||||
res = r['result']
|
||||
out = os.path.join(HERE, sys.argv[1] if len(sys.argv) > 1 else '_snap_before.json')
|
||||
io.open(out, 'w', encoding='utf-8').write(json.dumps(res))
|
||||
print('vias %d lines %d arcs %d -> %s' % (len(res['vias']), len(res['lines']), len(res['arcs']), out))
|
||||
print('sample', res['vias'][:1], res['lines'][:1])
|
||||
文件差异因一行或多行过长而隐藏
文件差异因一行或多行过长而隐藏
+1116
文件差异内容过多而无法显示
加载差异
@@ -0,0 +1,9 @@
|
||||
const L = (await eda.pcb_PrimitiveLine.getAll()).filter(o=>o.layer===11);
|
||||
const out = [];
|
||||
for (const l of L) {
|
||||
let adj = null;
|
||||
try { const a = await l.getAdjacentPrimitives(); adj = a.map(o=>({t:o.primitiveType||(o.getState_PrimitiveType&&o.getState_PrimitiveType()), id:o.primitiveId||(o.getState_PrimitiveId&&o.getState_PrimitiveId()), l:o.layer})); }
|
||||
catch(e){ adj = 'ERR '+String(e).slice(0,80); }
|
||||
out.push({id:l.primitiveId, adj});
|
||||
}
|
||||
return out;
|
||||
@@ -0,0 +1,5 @@
|
||||
const a = await eda.pcb_Primitive.getAll();
|
||||
const by = {};
|
||||
for (const o of a) { const k = (o.primitiveType||'?') + '@' + (o.layer!==undefined?o.layer:'-'); by[k]=(by[k]||0)+1; }
|
||||
const l11 = a.filter(o=>o.layer===11).map(o=>o.primitiveType);
|
||||
return {total: a.length, byType: by, l11count: l11.length, l11types: [...new Set(l11)]};
|
||||
@@ -0,0 +1,11 @@
|
||||
const out={};
|
||||
for (const k of Object.keys(eda)) {
|
||||
try {
|
||||
const o = eda[k];
|
||||
const ms = [];
|
||||
let p = o;
|
||||
for (let d=0; d<3 && p; d++) { for (const m of Object.getOwnPropertyNames(p)) if (/rout|Rout|fanout|Fanout|auto|Auto/.test(m)) ms.push(m); p = Object.getPrototypeOf(p); }
|
||||
if (ms.length) out[k] = [...new Set(ms)];
|
||||
} catch(e){}
|
||||
}
|
||||
return out;
|
||||
@@ -0,0 +1,24 @@
|
||||
const sleep = ms => new Promise(r => setTimeout(r, ms));
|
||||
const propsOf = el => { for (const k of Object.keys(el)) if (k.startsWith('__reactProps$')) return el[k]; return null; };
|
||||
const fireBtn = (txt) => {
|
||||
for (const b of document.querySelectorAll('button')) if ((b.innerText||'').trim() === txt && b.offsetParent !== null) {
|
||||
const p = propsOf(b);
|
||||
if (p && typeof p.onClick === 'function') { p.onClick({target:b,currentTarget:b,stopPropagation(){},preventDefault(){},nativeEvent:{},button:0,detail:1}); return 'react'; }
|
||||
b.click(); return 'native';
|
||||
}
|
||||
return null;
|
||||
};
|
||||
const out = {};
|
||||
out.apply = fireBtn('应用修改');
|
||||
await sleep(4000);
|
||||
// 可能弹确认
|
||||
out.btnsAfter = [...document.querySelectorAll('button')].filter(b=>b.offsetParent!==null).map(b=>(b.innerText||'').trim()).filter(t=>t).slice(0,30);
|
||||
const u13 = [];
|
||||
for (const c of await eda.pcb_PrimitiveComponent.getAll()) {
|
||||
if ((c.designator || '') !== 'U13') continue;
|
||||
for (const p of await eda.pcb_PrimitiveComponent.getAllPinsByPrimitiveId(c.primitiveId))
|
||||
u13.push({n: String(p.padNumber), net: p.net || ''});
|
||||
}
|
||||
out.u13 = u13.filter(p => ['2','5'].includes(p.n));
|
||||
out.saved = await eda.pcb_Document.save();
|
||||
return out;
|
||||
@@ -0,0 +1,17 @@
|
||||
const sleep = ms => new Promise(r=>setTimeout(r,ms));
|
||||
const propsOf = el => { for (const k of Object.keys(el)) if (k.startsWith('__reactProps$')) return el[k]; return null; };
|
||||
const fire = (el) => { let t = el; for (let i=0;i<8&&t;i++){const q=propsOf(t);
|
||||
if(q&&typeof q.onClick==='function'){q.onClick({target:t,currentTarget:t,stopPropagation(){},preventDefault(){},nativeEvent:{},button:0,detail:1});return true;} t=t.parentElement;} return false; };
|
||||
// report radio states with their labels
|
||||
const groups=[];
|
||||
for (const lab of document.querySelectorAll('span[class*="ratio-label_"]')) {
|
||||
if (lab.offsetParent===null) continue;
|
||||
const row = lab.parentElement;
|
||||
const opts=[];
|
||||
for (const inp of row.querySelectorAll('input[type=radio]')) {
|
||||
const sp = inp.closest('label') || inp.parentElement;
|
||||
opts.push({t:(sp.innerText||'').trim(), on: inp.checked});
|
||||
}
|
||||
groups.push({name:(lab.innerText||'').trim(), opts});
|
||||
}
|
||||
return {groups};
|
||||
@@ -0,0 +1,18 @@
|
||||
const sleep = ms => new Promise(r=>setTimeout(r,ms));
|
||||
const propsOf = el => { for (const k of Object.keys(el)) if (k.startsWith('__reactProps$')) return el[k]; return null; };
|
||||
const fire = (el) => { let t = el; for (let i=0;i<8&&t;i++){const q=propsOf(t);
|
||||
if(q&&typeof q.onClick==='function'){q.onClick({target:t,currentTarget:t,stopPropagation(){},preventDefault(){},nativeEvent:{},button:0,detail:1});return true;} t=t.parentElement;} return false; };
|
||||
const leaf = (txt) => { for (const el of document.querySelectorAll('*'))
|
||||
if (el.children.length===0 && (el.textContent||'').trim()===txt) return el; return null; };
|
||||
fire(leaf('布线')); await sleep(800);
|
||||
fire(leaf('自动布线...')); await sleep(2500);
|
||||
const fsL = Array.from(document.querySelectorAll('fieldset')).find(x=>(x.querySelector('legend')||{}).textContent==='布线图层');
|
||||
const fsI = Array.from(document.querySelectorAll('fieldset')).find(x=>(x.querySelector('legend')||{}).textContent==='忽略网络');
|
||||
let btn=null;
|
||||
for (const x of document.querySelectorAll('button')) if((x.innerText||'').trim()==='运行' && x.offsetParent!==null) btn=x;
|
||||
const info = btn ? {props: Object.keys(propsOf(btn)||{}), cls: btn.className, type: btn.type, disabled: btn.disabled} : null;
|
||||
return {
|
||||
layers: fsL ? Array.from(fsL.querySelectorAll('tr')).map(tr=>({t:(tr.innerText||'').trim(), on: !!tr.querySelector('i[class*="active_"]')})) : null,
|
||||
ignore: fsI ? (fsI.innerText||'').trim().replace(/\s+/g,' ') : null,
|
||||
btn: info
|
||||
};
|
||||
@@ -0,0 +1,23 @@
|
||||
const sleep=ms=>new Promise(r=>setTimeout(r,ms));
|
||||
const propsOf = el => { for (const k of Object.keys(el)) if (k.startsWith('__reactProps$')) return el[k]; return null; };
|
||||
const fire = (el) => { let t = el; for (let i=0;i<8&&t;i++){const q=propsOf(t);
|
||||
if(q&&typeof q.onClick==='function'){q.onClick({target:t,currentTarget:t,stopPropagation(){},preventDefault(){},nativeEvent:{},button:0,detail:1});return true;} t=t.parentElement;} return false; };
|
||||
const leaf = (txt) => { for (const el of document.querySelectorAll('*'))
|
||||
if (el.children.length===0 && (el.textContent||'').trim()===txt) return el; return null; };
|
||||
fire(leaf('布线')); await sleep(900);
|
||||
fire(leaf('自动布线...')); await sleep(2500);
|
||||
const fsI = Array.from(document.querySelectorAll('fieldset')).find(x=>(x.querySelector('legend')||{}).textContent==='忽略网络');
|
||||
const fsL = Array.from(document.querySelectorAll('fieldset')).find(x=>(x.querySelector('legend')||{}).textContent==='布线图层');
|
||||
const groups=[];
|
||||
for (const lab of document.querySelectorAll('span[class*="ratio-label_"]')) {
|
||||
if (lab.offsetParent===null) continue;
|
||||
const opts=[];
|
||||
for (const inp of lab.parentElement.querySelectorAll('input[type=radio]')) {
|
||||
const sp = inp.closest('label') || inp.parentElement;
|
||||
if (inp.checked) opts.push((sp.innerText||'').trim());
|
||||
}
|
||||
groups.push((lab.innerText||'').trim()+'='+opts.join('/'));
|
||||
}
|
||||
return {ignore: fsI ? (fsI.innerText||'').trim().replace(/\s+/g,' ') : null,
|
||||
layers: fsL ? Array.from(fsL.querySelectorAll('tr')).map(tr=>((tr.innerText||'').trim())+':'+(!!tr.querySelector('i[class*="active_"]'))) : null,
|
||||
groups};
|
||||
@@ -0,0 +1,39 @@
|
||||
const sleep=ms=>new Promise(r=>setTimeout(r,ms));
|
||||
const propsOf = el => { for (const k of Object.keys(el)) if (k.startsWith('__reactProps$')) return el[k]; return null; };
|
||||
const fire = (el) => { let t = el; for (let i=0;i<8&&t;i++){const q=propsOf(t);
|
||||
if(q&&typeof q.onClick==='function'){q.onClick({target:t,currentTarget:t,stopPropagation(){},preventDefault(){},nativeEvent:{},button:0,detail:1});return true;} t=t.parentElement;} return false; };
|
||||
const leaf = (txt) => { for (const el of document.querySelectorAll('*'))
|
||||
if (el.children.length===0 && (el.textContent||'').trim()===txt) return el; return null; };
|
||||
fire(leaf('布线')); await sleep(900);
|
||||
fire(leaf('自动布线...')); await sleep(2500);
|
||||
// 布线网络 -> 所选网络
|
||||
let done=false;
|
||||
for (const lab of document.querySelectorAll('span[class*="ratio-label_"]')) {
|
||||
if ((lab.innerText||'').trim() !== '布线网络') continue;
|
||||
for (const inp of lab.parentElement.querySelectorAll('input[type=radio]')) {
|
||||
const sp = inp.closest('label') || inp.parentElement;
|
||||
if ((sp.innerText||'').trim()==='所选网络') { fire(sp); done=true; }
|
||||
}
|
||||
}
|
||||
await sleep(600);
|
||||
// 图层:内层1/2 取消
|
||||
const fsL = Array.from(document.querySelectorAll('fieldset')).find(x=>(x.querySelector('legend')||{}).textContent==='布线图层');
|
||||
for (const name of ['内层1','内层2']) {
|
||||
const tr = Array.from(fsL.querySelectorAll('tr')).find(t=>(t.innerText||'').trim()===name);
|
||||
const cb = tr && tr.querySelector('i[class*="checkbox_"][class*="active_"]');
|
||||
if (cb) { fire(cb); await sleep(400); }
|
||||
}
|
||||
const groups=[];
|
||||
for (const lab of document.querySelectorAll('span[class*="ratio-label_"]')) {
|
||||
if (lab.offsetParent===null) continue;
|
||||
const on=[];
|
||||
for (const inp of lab.parentElement.querySelectorAll('input[type=radio]')) {
|
||||
const sp = inp.closest('label') || inp.parentElement;
|
||||
if (inp.checked) on.push((sp.innerText||'').trim());
|
||||
}
|
||||
groups.push((lab.innerText||'').trim()+'='+on.join('/'));
|
||||
}
|
||||
const fsI = Array.from(document.querySelectorAll('fieldset')).find(x=>(x.querySelector('legend')||{}).textContent==='忽略网络');
|
||||
return {setSel:done, groups,
|
||||
layers: Array.from(fsL.querySelectorAll('tr')).map(tr=>((tr.innerText||'').trim())+':'+(!!tr.querySelector('i[class*="active_"]'))),
|
||||
ignore:(fsI.innerText||'').trim().replace(/\s+/g,' ').slice(0,200)};
|
||||
@@ -0,0 +1,29 @@
|
||||
const sleep = ms => new Promise(r => setTimeout(r, ms));
|
||||
const propsOf = el => { for (const k of Object.keys(el)) if (k.startsWith('__reactProps$')) return el[k]; return null; };
|
||||
const fire = (el) => { let t = el; for (let i=0;i<8&&t;i++){const q=propsOf(t);
|
||||
if(q&&typeof q.onClick==='function'){q.onClick({target:t,currentTarget:t,stopPropagation(){},preventDefault(){},nativeEvent:{},button:0,detail:1});return true;} t=t.parentElement;} return false; };
|
||||
const leaf = (txt) => { for (const el of document.querySelectorAll('*'))
|
||||
if (el.children.length===0 && (el.textContent||'').trim()===txt) return el; return null; };
|
||||
fire(leaf('布线')); await sleep(800);
|
||||
fire(leaf('自动布线...')); await sleep(2500);
|
||||
// find the modal root
|
||||
let modal=null;
|
||||
for (const m of document.querySelectorAll('*')) {
|
||||
const t=(m.innerText||'');
|
||||
if (t.indexOf('布线网络')>=0 && t.indexOf('忽略网络')>=0 && m.offsetParent!==null) {
|
||||
if (!modal || (m.innerText||'').length < (modal.innerText||'').length) modal=m;
|
||||
}
|
||||
}
|
||||
if(!modal) return {err:'no modal'};
|
||||
// dump structure: elements with class names, around 布线图层 and 忽略网络
|
||||
const dump = [];
|
||||
const walk = (el, d) => {
|
||||
if (d>14) return;
|
||||
const own = Array.from(el.childNodes).filter(n=>n.nodeType===3).map(n=>n.textContent.trim()).join('|');
|
||||
const cls = (typeof el.className==='string'? el.className : '');
|
||||
if (own || /checkbox|Checkbox|tree|Tree|select|Select|tag|Tag/.test(cls))
|
||||
dump.push({d, tag: el.tagName, cls: cls.slice(0,70), txt: own.slice(0,40)});
|
||||
for (const c of el.children) walk(c, d+1);
|
||||
};
|
||||
walk(modal, 0);
|
||||
return {n: dump.length, dump: dump.slice(0, 120)};
|
||||
@@ -0,0 +1,27 @@
|
||||
const sleep = ms => new Promise(r => setTimeout(r, ms));
|
||||
const propsOf = el => { for (const k of Object.keys(el)) if (k.startsWith('__reactProps$')) return el[k]; return null; };
|
||||
const fire = (el) => { let t = el; for (let i=0;i<8&&t;i++){const q=propsOf(t);
|
||||
if(q&&typeof q.onClick==='function'){q.onClick({target:t,currentTarget:t,stopPropagation(){},preventDefault(){},nativeEvent:{},button:0,detail:1});return true;} t=t.parentElement;} return false; };
|
||||
// dialog already open? check
|
||||
let modal=null;
|
||||
for (const m of document.querySelectorAll('*')) {
|
||||
const t=(m.innerText||'');
|
||||
if (t.indexOf('布线网络')>=0 && t.indexOf('忽略网络')>=0 && m.offsetParent!==null) {
|
||||
if (!modal || (m.innerText||'').length < (modal.innerText||'').length) modal=m;
|
||||
}
|
||||
}
|
||||
if(!modal) return {err:'dialog not open'};
|
||||
let add=null;
|
||||
for (const b of modal.querySelectorAll('button')) if((b.innerText||'').trim()==='新增' && b.offsetParent!==null) add=b;
|
||||
if(!add) return {err:'no 新增 button', btns: Array.from(modal.querySelectorAll('button')).map(b=>(b.innerText||'').trim())};
|
||||
fire(add);
|
||||
await sleep(1200);
|
||||
const inputs=[];
|
||||
for (const i of document.querySelectorAll('input')) if(i.offsetParent!==null) inputs.push({ph:i.placeholder, val:i.value, cls:(i.className||'').slice(0,50)});
|
||||
// dump any popup list
|
||||
const pops=[];
|
||||
for (const m of document.querySelectorAll('[class*="popup"],[class*="Popup"],[class*="dropdown"],[class*="Dropdown"],[class*="select"]')) {
|
||||
const t=(m.innerText||'').trim();
|
||||
if (t.length>5 && m.offsetParent!==null) pops.push(t.slice(0,300));
|
||||
}
|
||||
return {inputs, pops: pops.slice(0,5), modalTxt: (modal.innerText||'').slice(-400)};
|
||||
@@ -0,0 +1,14 @@
|
||||
const sleep = ms => new Promise(r => setTimeout(r, ms));
|
||||
let leg=null;
|
||||
for (const el of document.querySelectorAll('legend'))
|
||||
if ((el.textContent||'').trim()==='忽略网络' && el.offsetParent!==null) leg=el;
|
||||
if(!leg) return {err:'no legend'};
|
||||
const fs = leg.parentElement;
|
||||
const dump=[];
|
||||
const walk=(el,d)=>{ if(d>12) return;
|
||||
const own=Array.from(el.childNodes).filter(n=>n.nodeType===3).map(n=>n.textContent.trim()).join('|');
|
||||
const cls=(typeof el.className==='string'?el.className:'');
|
||||
dump.push({d,tag:el.tagName,cls:cls.slice(0,60),txt:own.slice(0,30),ttl:(el.getAttribute&&el.getAttribute('title'))||''});
|
||||
for(const c of el.children) walk(c,d+1); };
|
||||
walk(fs,0);
|
||||
return {html: fs.outerHTML.slice(0,2500), n:dump.length};
|
||||
@@ -0,0 +1,22 @@
|
||||
const seek = (el) => { const out={}; for(const k of Object.keys(el)) out[k.split('$')[0]]=k; return out; };
|
||||
let sel=null;
|
||||
for (const el of document.querySelectorAll('[data-id^="selectOptionKey_"]'))
|
||||
if (el.offsetParent!==null && el.closest('fieldset') && (el.closest('fieldset').querySelector('legend')||{}).textContent==='忽略网络') sel=el;
|
||||
if(!sel) return {err:'no select'};
|
||||
const keys = Object.keys(sel);
|
||||
const pk = keys.find(k=>k.startsWith('__reactProps$'));
|
||||
const fk = keys.find(k=>k.startsWith('__reactFiber$'));
|
||||
const p = sel[pk];
|
||||
let fiber = sel[fk];
|
||||
// climb fiber to find one with memoizedProps having options/onChange
|
||||
const found=[];
|
||||
let f=fiber;
|
||||
for(let i=0;i<12&&f;i++){
|
||||
const mp=f.memoizedProps;
|
||||
if(mp && typeof mp==='object'){
|
||||
const ks=Object.keys(mp);
|
||||
if(ks.some(k=>/option|onChange|value|data|list/i.test(k))) found.push({i, type: String(f.type&&(f.type.displayName||f.type.name||f.type)).slice(0,40), keys: ks.slice(0,25)});
|
||||
}
|
||||
f=f.return;
|
||||
}
|
||||
return {propKeys: p?Object.keys(p):null, found};
|
||||
@@ -0,0 +1,12 @@
|
||||
const sleep = ms => new Promise(r=>setTimeout(r,ms));
|
||||
const getSel = () => { for (const el of document.querySelectorAll('[data-id^="selectOptionKey_"]')) {
|
||||
const fs = el.closest('fieldset');
|
||||
if (el.offsetParent!==null && fs && (fs.querySelector('legend')||{}).textContent==='忽略网络') return el; } return null; };
|
||||
const sel = getSel(); if(!sel) return {err:'no select'};
|
||||
const fk = Object.keys(sel).find(k=>k.startsWith('__reactFiber$'));
|
||||
let f=sel[fk], target=null;
|
||||
for(let i=0;i<12&&f;i++){ const mp=f.memoizedProps;
|
||||
if(mp && mp.list && typeof mp.onChange==='function'){ target=mp; break; } f=f.return; }
|
||||
if(!target) return {err:'no onChange fiber'};
|
||||
const L = target.list;
|
||||
return {listLen: L.length, sample: L.slice(0,5), value: target.value};
|
||||
@@ -0,0 +1,21 @@
|
||||
const sleep = ms => new Promise(r=>setTimeout(r,ms));
|
||||
const getFiberProps = () => {
|
||||
for (const el of document.querySelectorAll('[data-id^="selectOptionKey_"]')) {
|
||||
const fs = el.closest('fieldset');
|
||||
if (el.offsetParent!==null && fs && (fs.querySelector('legend')||{}).textContent==='忽略网络') {
|
||||
const fk = Object.keys(el).find(k=>k.startsWith('__reactFiber$'));
|
||||
let f=el[fk];
|
||||
for(let i=0;i<12&&f;i++){ const mp=f.memoizedProps;
|
||||
if(mp && mp.list && typeof mp.onChange==='function') return mp; f=f.return; }
|
||||
}
|
||||
} return null;
|
||||
};
|
||||
const rows = () => {
|
||||
const fs = Array.from(document.querySelectorAll('fieldset')).find(x=>(x.querySelector('legend')||{}).textContent==='忽略网络');
|
||||
return fs ? (fs.innerText||'').trim() : '';
|
||||
};
|
||||
const p = getFiberProps(); if(!p) return {err:'no props'};
|
||||
p.onChange('GND');
|
||||
await sleep(800);
|
||||
const p2 = getFiberProps();
|
||||
return {before: p.list.length, after: p2 ? p2.list.length : null, table: rows().slice(0,200)};
|
||||
@@ -0,0 +1,28 @@
|
||||
const sleep = ms => new Promise(r=>setTimeout(r,ms));
|
||||
const propsOf = el => { for (const k of Object.keys(el)) if (k.startsWith('__reactProps$')) return el[k]; return null; };
|
||||
const fire = (el) => { let t = el; for (let i=0;i<8&&t;i++){const q=propsOf(t);
|
||||
if(q&&typeof q.onClick==='function'){q.onClick({target:t,currentTarget:t,stopPropagation(){},preventDefault(){},nativeEvent:{},button:0,detail:1});return true;} t=t.parentElement;} return false; };
|
||||
const getIgn = () => {
|
||||
for (const el of document.querySelectorAll('[data-id^="selectOptionKey_"]')) {
|
||||
const fs = el.closest('fieldset');
|
||||
if (el.offsetParent!==null && fs && (fs.querySelector('legend')||{}).textContent==='忽略网络') {
|
||||
const fk = Object.keys(el).find(k=>k.startsWith('__reactFiber$'));
|
||||
let f=el[fk];
|
||||
for(let i=0;i<12&&f;i++){ const mp=f.memoizedProps;
|
||||
if(mp && mp.list && typeof mp.onChange==='function') return mp; f=f.return; }
|
||||
}
|
||||
} return null;
|
||||
};
|
||||
const WANT = ['GND','USB1_DP','USB1_DM','USB2_DP','USB2_DM','USB3_DP','USB3_DM',
|
||||
'USB4_DP','USB4_DM','USB5_DP','USB5_DM','UP_DP','UP_DM','USB_DP','USB_DM'];
|
||||
const added=[], missing=[];
|
||||
for (const n of WANT) {
|
||||
const p = getIgn();
|
||||
if(!p) return {err:'select gone at '+n};
|
||||
if (!p.list.some(o=>o.value===n)) { missing.push(n); continue; }
|
||||
p.onChange(n);
|
||||
await sleep(220);
|
||||
added.push(n);
|
||||
}
|
||||
const fs = Array.from(document.querySelectorAll('fieldset')).find(x=>(x.querySelector('legend')||{}).textContent==='忽略网络');
|
||||
return {added, missing, table: (fs.innerText||'').trim()};
|
||||
@@ -0,0 +1,21 @@
|
||||
const sleep = ms => new Promise(r=>setTimeout(r,ms));
|
||||
const propsOf = el => { for (const k of Object.keys(el)) if (k.startsWith('__reactProps$')) return el[k]; return null; };
|
||||
const fire = (el) => { let t = el; for (let i=0;i<8&&t;i++){const q=propsOf(t);
|
||||
if(q&&typeof q.onClick==='function'){q.onClick({target:t,currentTarget:t,stopPropagation(){},preventDefault(){},nativeEvent:{},button:0,detail:1});return true;} t=t.parentElement;} return false; };
|
||||
const fsLayer = Array.from(document.querySelectorAll('fieldset')).find(x=>(x.querySelector('legend')||{}).textContent==='布线图层');
|
||||
if(!fsLayer) return {err:'no layer fieldset'};
|
||||
const state = () => Array.from(fsLayer.querySelectorAll('tr')).map(tr => ({
|
||||
txt: (tr.innerText||'').trim().slice(0,10),
|
||||
on: !!tr.querySelector('i[class*="active_"]')
|
||||
}));
|
||||
const before = state();
|
||||
const hit = [];
|
||||
for (const name of ['内层1','内层2']) {
|
||||
const tr = Array.from(fsLayer.querySelectorAll('tr')).find(t=>(t.innerText||'').trim()===name);
|
||||
if(!tr) { hit.push(name+':norow'); continue; }
|
||||
const cb = tr.querySelector('i[class*="checkbox_"]');
|
||||
if(!cb) { hit.push(name+':nocb'); continue; }
|
||||
hit.push(name+':'+fire(cb));
|
||||
await sleep(400);
|
||||
}
|
||||
return {before, hit, after: state()};
|
||||
@@ -0,0 +1,23 @@
|
||||
const sleep = ms => new Promise(r => setTimeout(r, ms));
|
||||
const propsOf = el => { for (const k of Object.keys(el)) if (k.startsWith('__reactProps$')) return el[k]; return null; };
|
||||
const fire = (el) => { let t = el; for (let i=0;i<8&&t;i++){const q=propsOf(t);
|
||||
if(q&&typeof q.onClick==='function'){q.onClick({target:t,currentTarget:t,stopPropagation(){},preventDefault(){},nativeEvent:{},button:0,detail:1});return true;} t=t.parentElement;} return false; };
|
||||
const leaf = (txt) => { for (const el of document.querySelectorAll('*'))
|
||||
if (el.children.length===0 && (el.textContent||'').trim()===txt) return el; return null; };
|
||||
fire(leaf('布线')); await sleep(800);
|
||||
if(!fire(leaf('自动布线...'))) return {err:'no item'};
|
||||
await sleep(2500);
|
||||
// dump modal
|
||||
const out = [];
|
||||
for (const m of document.querySelectorAll('[class*="modal"],[class*="Modal"],[class*="dialog"],[class*="Dialog"]')) {
|
||||
const t = (m.innerText||'').trim();
|
||||
if (t.length > 20 && m.offsetParent !== null) out.push(t.slice(0, 1500));
|
||||
}
|
||||
const inputs = [];
|
||||
for (const i of document.querySelectorAll('input,select,textarea')) {
|
||||
if (i.offsetParent === null) continue;
|
||||
inputs.push({type:i.type, val:i.value, checked:i.checked, ph:i.placeholder, name:i.name});
|
||||
}
|
||||
const btns = [];
|
||||
for (const b of document.querySelectorAll('button')) if (b.offsetParent!==null) btns.push((b.innerText||'').trim());
|
||||
return {modals: out.slice(-2), inputs: inputs.slice(0,40), btns: [...new Set(btns)].slice(0,30)};
|
||||
@@ -0,0 +1,4 @@
|
||||
const r = await eda.pcb_PrimitiveArc.create('', 11, 6102.365, 0, 6299.216, 196.851, 90, 5);
|
||||
const A = (await eda.pcb_PrimitiveArc.getAll());
|
||||
return {created: r ? Object.keys(r) : null, n: A.length,
|
||||
arc: A.length ? JSON.parse(JSON.stringify(A[0], (k,v)=> k==='async'?undefined:v)) : null};
|
||||
@@ -0,0 +1,12 @@
|
||||
const A = [
|
||||
[6299.216, 4724.412, 6102.365, 4921.262],
|
||||
[196.851, 4921.262, 0, 4724.412],
|
||||
[0, 196.851, 196.851, 0]
|
||||
];
|
||||
const out = [];
|
||||
for (const [x0,y0,x1,y1] of A) {
|
||||
const r = await eda.pcb_PrimitiveArc.create('', 11, x0, y0, x1, y1, 90, 5);
|
||||
out.push(r ? r.primitiveId : null);
|
||||
}
|
||||
await eda.pcb_Document.save();
|
||||
return {ids: out};
|
||||
@@ -0,0 +1,9 @@
|
||||
const out={};
|
||||
const A = eda.pcb_PrimitiveArc;
|
||||
out.methods = Object.getOwnPropertyNames(Object.getPrototypeOf(A)||{}).concat(Object.getOwnPropertyNames(A)).filter(n=>typeof A[n]==='function');
|
||||
try{ out.ids = await A.getAllPrimitiveId(); }catch(e){ out.idsErr=String(e).slice(0,100); }
|
||||
try{ out.all = (await A.getAll()).length; }catch(e){ out.allErr=String(e).slice(0,100); }
|
||||
try{ const g = await A.get('7abeb5185a6eb114'); out.get1 = g ? {sx:g.startX, sy:g.startY, ex:g.endX, ey:g.endY, a:g.arcAngle, l:g.layer} : String(g); }catch(e){ out.getErr=String(e).slice(0,100); }
|
||||
const SC = eda.pcb_SelectControl;
|
||||
out.scMethods = Object.getOwnPropertyNames(Object.getPrototypeOf(SC)||{}).concat(Object.getOwnPropertyNames(SC)).filter(n=>typeof SC[n]==='function');
|
||||
return out;
|
||||
@@ -0,0 +1,10 @@
|
||||
const out={};
|
||||
try { const f = await eda.pcb_ManufactureData.getAutoRouteJsonFile();
|
||||
out.type = Object.prototype.toString.call(f);
|
||||
if (f && f.size !== undefined) { out.size = f.size; const t = await f.text(); out.head = t.slice(0,600); }
|
||||
else if (typeof f === 'string') { out.size = f.length; out.head = f.slice(0,600); }
|
||||
else out.keys = f ? Object.keys(f).slice(0,20) : null;
|
||||
} catch(e){ out.err = String(e).slice(0,300); }
|
||||
out.logN = window.__arLog.length;
|
||||
out.log = window.__arLog.slice(-6).map(s=>s.slice(0,160));
|
||||
return out;
|
||||
@@ -0,0 +1,9 @@
|
||||
const out={};
|
||||
try { const f = await eda.pcb_ManufactureData.getAutoRouteJsonFile('AutoRoute_Json');
|
||||
out.type = Object.prototype.toString.call(f);
|
||||
if (f && f.size !== undefined) { out.size = f.size; out.name = f.name; const t = await f.text(); out.head = t.slice(0,900); }
|
||||
} catch(e){ out.err = String(e).slice(0,300); }
|
||||
try { const g = await eda.pcb_ManufactureData.getAutoRouteJsonFileForJRouter('JR');
|
||||
out.jr = g ? {size: g.size, name: g.name, head: (await g.text()).slice(0,600)} : null;
|
||||
} catch(e){ out.err2 = String(e).slice(0,300); }
|
||||
return out;
|
||||
@@ -0,0 +1,10 @@
|
||||
const sleep=ms=>new Promise(r=>setTimeout(r,ms));
|
||||
await eda.dmt_EditorControl.openDocument('7e9415a16a909c51');
|
||||
await sleep(2500);
|
||||
const out={};
|
||||
try { const f = await eda.pcb_ManufactureData.getAutoRouteJsonFile('AutoRoute_Json');
|
||||
out.type = Object.prototype.toString.call(f);
|
||||
if (f && f.size !== undefined) { out.size = f.size; out.name = f.name; out.head = (await f.text()).slice(0,900); }
|
||||
} catch(e){ out.err = String(e).slice(0,300); }
|
||||
out.log = window.__arLog.slice(-5).map(s=>s.slice(0,150));
|
||||
return out;
|
||||
@@ -0,0 +1,8 @@
|
||||
const out={};
|
||||
const grab = async (name, fn) => { try { const a = await fn(); out[name] = a.filter(o=>o.layerId===11 || o.layer===11).map(o=>({t:o.type, l:o.layerId!==undefined?o.layerId:o.layer, k:Object.keys(o).slice(0,14)})).slice(0,10); out[name+'_n']=a.length; } catch(e){ out[name]='ERR '+String(e).slice(0,60); } };
|
||||
await grab('line', ()=>eda.pcb_PrimitiveLine.getAll());
|
||||
await grab('arc', ()=>eda.pcb_PrimitiveArc.getAll());
|
||||
await grab('poly', ()=>eda.pcb_PrimitivePolyline.getAll());
|
||||
await grab('region', ()=>eda.pcb_PrimitiveRegion.getAll());
|
||||
await grab('fill', ()=>eda.pcb_PrimitiveFill.getAll());
|
||||
return out;
|
||||
@@ -0,0 +1,8 @@
|
||||
const L = (await eda.pcb_PrimitiveLine.getAll()).filter(o=>o.layer===11);
|
||||
const A = (await eda.pcb_PrimitiveArc.getAll()).filter(o=>o.layer===11);
|
||||
const P = (await eda.pcb_PrimitivePolyline.getAll()).filter(o=>o.layer===11);
|
||||
const R = (await eda.pcb_PrimitiveRegion.getAll()).filter(o=>o.layer===11);
|
||||
return {nLine:L.length, nArc:A.length, nPoly:P.length, nRegion:R.length,
|
||||
lines: L.map(o=>[o.startX,o.startY,o.endX,o.endY,o.lineWidth,o.primitiveType]),
|
||||
arcs: A.slice(0,8).map(o=>Object.assign({}, o, {async:undefined})),
|
||||
polys: P.slice(0,3).map(o=>Object.keys(o))};
|
||||
@@ -0,0 +1,10 @@
|
||||
const MIL=39.3700787401575;
|
||||
await eda.dmt_EditorControl.openDocument('7e9415a16a909c51');
|
||||
await new Promise(r=>setTimeout(r,2500));
|
||||
const out={};
|
||||
for (const c of await eda.pcb_PrimitiveComponent.getAll()) {
|
||||
const d=c.getState_Designator();
|
||||
if (['C2','C3','R9','C4','C5','C6','J1','F1','Q1'].indexOf(d)>=0)
|
||||
out[d]=[+(c.getState_X()/MIL).toFixed(2), +(c.getState_Y()/MIL).toFixed(2), c.getState_Layer()];
|
||||
}
|
||||
return out;
|
||||
@@ -0,0 +1,6 @@
|
||||
const propsOf = el => { for (const k of Object.keys(el)) if (k.startsWith('__reactProps$')) return el[k]; return null; };
|
||||
const fire = (el) => { let t = el; for (let i=0;i<8&&t;i++){const q=propsOf(t);
|
||||
if(q&&typeof q.onClick==='function'){q.onClick({target:t,currentTarget:t,stopPropagation(){},preventDefault(){},nativeEvent:{},button:0,detail:1});return true;} t=t.parentElement;} return false; };
|
||||
let ok=null;
|
||||
for (const b of document.querySelectorAll('button')) if ((b.innerText||'').trim()==='取消' && b.offsetParent!==null) { ok=b; break; }
|
||||
return {cancelled: ok ? fire(ok) : false};
|
||||
文件差异因一行或多行过长而隐藏
@@ -0,0 +1 @@
|
||||
{"httpError": 500, "body": "{\"success\":false,\"error\":\"TypeError: Cannot read properties of undefined (reading 'Symbol')\"}"}
|
||||
@@ -0,0 +1 @@
|
||||
{"httpError": 500, "body": "{\"success\":false,\"error\":\"Request 37cf686e-9623-4f12-a3d6-4be7cfc1650b timed out after 30000ms\"}"}
|
||||
@@ -0,0 +1,9 @@
|
||||
const keys = ['2200uF 10V 电解', '2200uF 6.3V 电解', '2200uF 6.3V 贴片', '2200uF 10V 贴片', '1500uF 6.3V 贴片 电解'];
|
||||
const out = {};
|
||||
for (const k of keys) {
|
||||
try {
|
||||
const r = await eda.lib_Device.search(k, undefined, undefined, undefined, 30, 1);
|
||||
out[k] = (r || []).map(d => [d.lcscId || d.supplierPartNumber || '', d.name || '', (d.description || '').slice(0, 160), d.footprint ? d.footprint.name : (d.footprintName || ''), d.stock !== undefined ? d.stock : (d.lcscStock || '')]);
|
||||
} catch (e) { out[k] = String(e); }
|
||||
}
|
||||
return out;
|
||||
@@ -0,0 +1,11 @@
|
||||
const keys = ['RVT0J152M1010', '2200uF 10x10', '2200UF 6.3V 10*10', '2200uF 6.3V 10*12', '2200uF 10V 10*12', 'RYVT10V2200UF12*13', '1500uF 10V 贴片 电解', '2200uF 6.3V SMD 铝电解'];
|
||||
const out = {};
|
||||
for (const k of keys) {
|
||||
try {
|
||||
const r = await eda.lib_Device.search(k, undefined, undefined, undefined, 20, 1);
|
||||
out[k] = (r || []).filter(d => /uF|UF/.test(d.name||'') || /uF/.test(d.description||'')).map(d => {
|
||||
const o = {}; for (const f of Object.keys(d)) { const v = d[f]; if (typeof v !== 'object') o[f] = String(v).slice(0, 140); }
|
||||
return o; });
|
||||
} catch (e) { out[k] = String(e); }
|
||||
}
|
||||
return out;
|
||||
@@ -0,0 +1,33 @@
|
||||
const sleep=ms=>new Promise(r=>setTimeout(r,ms));
|
||||
const propsOf = el => { for (const k of Object.keys(el)) if (k.startsWith('__reactProps$')) return el[k]; return null; };
|
||||
const fire = (el) => { let t = el; for (let i=0;i<8&&t;i++){const q=propsOf(t);
|
||||
if(q&&typeof q.onClick==='function'){q.onClick({target:t,currentTarget:t,stopPropagation(){},preventDefault(){},nativeEvent:{},button:0,detail:1});return true;} t=t.parentElement;} return false; };
|
||||
const fsL = Array.from(document.querySelectorAll('fieldset')).find(x=>(x.querySelector('legend')||{}).textContent==='布线图层');
|
||||
if(!fsL) return {err:'dialog not open'};
|
||||
for (const name of ['内层1','内层2']) {
|
||||
const tr = Array.from(fsL.querySelectorAll('tr')).find(t=>(t.innerText||'').trim()===name);
|
||||
const cb = tr && tr.querySelector('i[class*="checkbox_"]');
|
||||
if (cb) { fire(cb); await sleep(400); }
|
||||
}
|
||||
const getIgn = () => {
|
||||
for (const el of document.querySelectorAll('[data-id^="selectOptionKey_"]')) {
|
||||
const fs = el.closest('fieldset');
|
||||
if (el.offsetParent!==null && fs && (fs.querySelector('legend')||{}).textContent==='忽略网络') {
|
||||
const fk = Object.keys(el).find(k=>k.startsWith('__reactFiber$'));
|
||||
let f=el[fk];
|
||||
for(let i=0;i<12&&f;i++){ const mp=f.memoizedProps;
|
||||
if(mp && mp.list && typeof mp.onChange==='function') return mp; f=f.return; }
|
||||
}
|
||||
} return null;
|
||||
};
|
||||
const WANT = ['GND','$1N223','$1N227','$1N236','+12V',
|
||||
'VO1','VO2','VO3','VO4','VO5','VO1_P','VO2_P','VO3_P','VO4_P','VO5_P'];
|
||||
const added=[], missing=[];
|
||||
for (const n of WANT) {
|
||||
const p = getIgn(); if(!p) return {err:'select gone at '+n};
|
||||
if (!p.list.some(o=>o.value===n)) { missing.push(n); continue; }
|
||||
p.onChange(n); await sleep(220); added.push(n);
|
||||
}
|
||||
const fsI = Array.from(document.querySelectorAll('fieldset')).find(x=>(x.querySelector('legend')||{}).textContent==='忽略网络');
|
||||
return {added, missing, ignore:(fsI.innerText||'').trim().replace(/\s+/g,' '),
|
||||
layers: Array.from(fsL.querySelectorAll('tr')).map(tr=>((tr.innerText||'').trim())+':'+(!!tr.querySelector('i[class*="active_"]')))};
|
||||
@@ -0,0 +1,5 @@
|
||||
const cur = await eda.pcb_Drc.getCurrentRuleConfiguration();
|
||||
const c = cur.config || cur;
|
||||
const out = {top: Object.keys(c)};
|
||||
for (const k of Object.keys(c)) out[k] = Object.keys(c[k]);
|
||||
return out;
|
||||
@@ -0,0 +1,6 @@
|
||||
const NETS = ['UP_DP','UP_DM','USB_DP','USB_DM','USB3_DP','USB3_DM','USB4_DP','USB4_DM','USB5_DP','USB5_DM'];
|
||||
const L = await eda.pcb_PrimitiveLine.getAll();
|
||||
const c = {};
|
||||
for (const o of L) if (NETS.includes(o.net)) c[o.net]=(c[o.net]||0)+1;
|
||||
const bar = (document.body.innerText||'').split(String.fromCharCode(10)).map(s=>s.trim()).filter(s=>s.indexOf('自动布线')===0);
|
||||
return {perNet: c, total: L.length, vias:(await eda.pcb_PrimitiveVia.getAll()).length, bar};
|
||||
@@ -0,0 +1,7 @@
|
||||
const NETS = ['USB1_DP','USB1_DM','USB2_DP','USB2_DM','USB3_DP','USB3_DM','USB4_DP','USB4_DM','USB5_DP','USB5_DM','UP_DP','UP_DM','USB_DP','USB_DM'];
|
||||
const L = await eda.pcb_PrimitiveLine.getAll();
|
||||
const c = {};
|
||||
for (const n of NETS) c[n]=0;
|
||||
for (const o of L) if (NETS.includes(o.net)) c[o.net]++;
|
||||
const bar = (document.body.innerText||'').split(String.fromCharCode(10)).map(s=>s.trim()).filter(s=>s.indexOf('自动布线')===0);
|
||||
return {perNet: c, total: L.length, vias:(await eda.pcb_PrimitiveVia.getAll()).length, bar};
|
||||
@@ -0,0 +1,6 @@
|
||||
await eda.dmt_EditorControl.openDocument('7e9415a16a909c51');
|
||||
await new Promise(r => setTimeout(r, 1200));
|
||||
let n = 0;
|
||||
for (const p of await eda.pcb_PrimitivePour.getAll())
|
||||
if (String(p.pourName || '').startsWith('P')) { await eda.pcb_PrimitivePour.delete(p.primitiveId); n++; }
|
||||
return {deleted: n, left: (await eda.pcb_PrimitivePour.getAll()).map(p => p.pourName)};
|
||||
@@ -0,0 +1,19 @@
|
||||
const sleep=ms=>new Promise(r=>setTimeout(r,ms));
|
||||
const propsOf = el => { for (const k of Object.keys(el)) if (k.startsWith('__reactProps$')) return el[k]; return null; };
|
||||
const fire = (el) => { let t = el; for (let i=0;i<8&&t;i++){const q=propsOf(t);
|
||||
if(q&&typeof q.onClick==='function'){q.onClick({target:t,currentTarget:t,stopPropagation(){},preventDefault(){},nativeEvent:{},button:0,detail:1});return true;} t=t.parentElement;} return false; };
|
||||
const total = () => { for (const el of document.querySelectorAll('*'))
|
||||
if (el.children.length===0 && (el.textContent||'').trim().startsWith('全部 (')) return (el.textContent||'').trim(); return null; };
|
||||
const btns = [];
|
||||
for (const x of document.querySelectorAll('button,span,i')) { const t=(x.innerText||x.title||'').trim();
|
||||
if (t && t.length<8 && x.offsetParent!==null && /清除|刷新|错误|停止/.test(t)) btns.push(t); }
|
||||
let cl=null;
|
||||
for (const x of document.querySelectorAll('button,span,div')) { const t=(x.innerText||x.title||'').trim();
|
||||
if (t==='清除错误' && x.offsetParent!==null) { cl=x; break; } }
|
||||
let fired=false;
|
||||
if (cl) { fired = fire(cl); await sleep(2000); }
|
||||
const afterClear = total();
|
||||
await eda.pcb_Drc.check();
|
||||
const seq=[];
|
||||
for (let i=0;i<8;i++){ await sleep(2500); seq.push(total()); }
|
||||
return {btns:[...new Set(btns)], fired, afterClear, seq};
|
||||
@@ -0,0 +1,19 @@
|
||||
const sleep = ms => new Promise(r => setTimeout(r, ms));
|
||||
const propsOf = el => { for (const k of Object.keys(el)) if (k.startsWith('__reactProps$')) return el[k]; return null; };
|
||||
const fireBtn = (txt) => {
|
||||
for (const b of document.querySelectorAll('button')) if ((b.innerText||'').trim() === txt) {
|
||||
const p = propsOf(b);
|
||||
if (p && typeof p.onClick === 'function') { p.onClick({target:b,currentTarget:b,stopPropagation(){},preventDefault(){},nativeEvent:{},button:0,detail:1}); return 'react'; }
|
||||
b.click(); return 'native';
|
||||
}
|
||||
return null;
|
||||
};
|
||||
const out = {};
|
||||
out.confirm = fireBtn('确认');
|
||||
await sleep(1500);
|
||||
const pd = await eda.pcb_PrimitivePoured.getAll();
|
||||
out.poured = pd.map(x => ({net: x.net, layer: x.layer, keys: Object.keys(x).slice(0,14)}));
|
||||
out.saved = await eda.pcb_Document.save();
|
||||
await sleep(1000);
|
||||
out.pouredAfterSave = (await eda.pcb_PrimitivePoured.getAll()).length;
|
||||
return out;
|
||||
@@ -0,0 +1,23 @@
|
||||
const sleep = ms => new Promise(r => setTimeout(r, ms));
|
||||
const propsOf = el => { for (const k of Object.keys(el)) if (k.startsWith('__reactProps$')) return el[k]; return null; };
|
||||
const fire = (el) => { let t = el; for (let i=0;i<8&&t;i++){const p=propsOf(t); if(p&&typeof p.onClick==='function'){p.onClick({target:t,currentTarget:t,stopPropagation(){},preventDefault(){},nativeEvent:{},button:0,detail:1});return true;} t=t.parentElement;} return false; };
|
||||
const leaf = (txt) => { for (const el of document.querySelectorAll('*')) if (el.children.length===0 && (el.textContent||'').trim()===txt) return el; return null; };
|
||||
const find = (sub) => { const r=[]; for (const el of document.querySelectorAll('*')) { const t=(el.textContent||'').trim(); if (el.children.length===0 && t.includes(sub)) r.push(el); } return r; };
|
||||
await eda.dmt_EditorControl.openDocument('7e9415a16a909c51');
|
||||
await sleep(1200);
|
||||
const out = {};
|
||||
fire(leaf('工具'));
|
||||
await sleep(900);
|
||||
const hits = find('运行命令');
|
||||
out.hits = hits.map(e => ({txt: (e.textContent||'').trim(), tag: e.tagName, vis: e.offsetParent !== null}));
|
||||
if (!hits.length) {
|
||||
// 把当前浮层里所有可见叶子列出来
|
||||
out.visibleLeaves = [...document.querySelectorAll('*')].filter(e => e.children.length===0 && e.offsetParent !== null && (e.textContent||'').trim().length>0 && (e.textContent||'').trim().length<26).map(e=>(e.textContent||'').trim()).slice(0, 300);
|
||||
return out;
|
||||
}
|
||||
out.fired = fire(hits[hits.length-1]);
|
||||
await sleep(1800);
|
||||
const inputs = [...document.querySelectorAll('input')].filter(i => i.offsetParent !== null);
|
||||
out.inputs = inputs.map(i => ({ph: i.placeholder, val: i.value}));
|
||||
out.visible = [...document.querySelectorAll('*')].filter(e => e.children.length===0 && e.offsetParent !== null && (e.textContent||'').trim().length>0 && (e.textContent||'').trim().length<40).map(e=>(e.textContent||'').trim()).slice(0, 200);
|
||||
return out;
|
||||
@@ -0,0 +1,6 @@
|
||||
const sleep=ms=>new Promise(r=>setTimeout(r,ms));
|
||||
await sleep(5000);
|
||||
const before = {v:(await eda.pcb_PrimitiveVia.getAll()).length, l:(await eda.pcb_PrimitiveLine.getAll()).length};
|
||||
await eda.pcb_Document.save();
|
||||
await sleep(3000);
|
||||
return {before};
|
||||
@@ -0,0 +1,16 @@
|
||||
const sleep = ms => new Promise(r => setTimeout(r, ms));
|
||||
const propsOf = el => { for (const k of Object.keys(el)) if (k.startsWith('__reactProps$')) return el[k]; return null; };
|
||||
const fire = (el) => { let t = el; for (let i=0;i<8&&t;i++){const q=propsOf(t);
|
||||
if(q&&typeof q.onClick==='function'){q.onClick({target:t,currentTarget:t,stopPropagation(){},preventDefault(){},nativeEvent:{},button:0,detail:1});return true;} t=t.parentElement;} return false; };
|
||||
let leaf=null;
|
||||
for (const el of document.querySelectorAll('*'))
|
||||
if (el.children.length===0 && (el.textContent||'').trim()==='连接性错误 (834)') { leaf=el; break; }
|
||||
if(!leaf) return {err:'node not found'};
|
||||
if(!fire(leaf)) return {err:'no onClick'};
|
||||
await sleep(2000);
|
||||
let best=null;
|
||||
for (const el of document.querySelectorAll('div,table,tbody')) {
|
||||
const x = el.innerText||'';
|
||||
if (/错误对象/.test(x) && /[0-9]连接性错误/.test(x) && (!best || x.length < best.length)) best = x;
|
||||
}
|
||||
return {detail: (best||'').split('input::-webkit')[0].slice(0, 6000)};
|
||||
@@ -0,0 +1,36 @@
|
||||
const sleep=ms=>new Promise(r=>setTimeout(r,ms));
|
||||
const propsOf = el => { for (const k of Object.keys(el)) if (k.startsWith('__reactProps$')) return el[k]; return null; };
|
||||
const fire = (el) => { let t = el; for (let i=0;i<8&&t;i++){const q=propsOf(t);
|
||||
if(q&&typeof q.onClick==='function'){q.onClick({target:t,currentTarget:t,stopPropagation(){},preventDefault(){},nativeEvent:{},button:0,detail:1});return true;} t=t.parentElement;} return false; };
|
||||
let leaf=null;
|
||||
for (const el of document.querySelectorAll('*'))
|
||||
if (el.children.length===0 && (el.textContent||'').trim()==='连接性错误 (176)') { leaf=el; break; }
|
||||
if(!leaf) return {err:'node not found'};
|
||||
fire(leaf); await sleep(2500);
|
||||
const collect = () => {
|
||||
let best=null;
|
||||
for (const el of document.querySelectorAll('div,table,tbody')) {
|
||||
const x = el.innerText||'';
|
||||
if (/错误对象/.test(x) && /[0-9]连接性错误/.test(x) && (!best || x.length < best.length)) best = x;
|
||||
}
|
||||
return (best||'').split('input::-webkit')[0];
|
||||
};
|
||||
const rows = new Map();
|
||||
const add = (txt) => { const re = /\(([^)]+)\):\s*([A-Za-z0-9_.]+)-/g; let m;
|
||||
while ((m = re.exec(txt))) { const k=m[1]; rows.set(k+'|'+m[2], true); } };
|
||||
add(collect());
|
||||
// page through
|
||||
for (let i=0;i<12;i++){
|
||||
let next=null;
|
||||
for (const b of document.querySelectorAll('li,button,span')) {
|
||||
const t=(b.textContent||'').trim();
|
||||
if ((t==='>'||t==='下一页'||b.className && /next/i.test(String(b.className))) && b.offsetParent!==null) { next=b; break; }
|
||||
}
|
||||
if(!next) break;
|
||||
if(!fire(next)) break;
|
||||
await sleep(1200);
|
||||
add(collect());
|
||||
}
|
||||
const byNet = {};
|
||||
for (const k of rows.keys()) { const n=k.split('|')[0]; byNet[n]=(byNet[n]||0)+1; }
|
||||
return {pads: rows.size, nets: Object.keys(byNet).length, byNet};
|
||||
@@ -0,0 +1,18 @@
|
||||
const sleep=ms=>new Promise(r=>setTimeout(r,ms));
|
||||
const propsOf = el => { for (const k of Object.keys(el)) if (k.startsWith('__reactProps$')) return el[k]; return null; };
|
||||
const fire = (el) => { let t = el; for (let i=0;i<6&&t;i++){const q=propsOf(t);
|
||||
if(q&&typeof q.onClick==='function'){q.onClick({target:t,currentTarget:t,stopPropagation(){},preventDefault(){},nativeEvent:{},button:0,detail:1});return true;} t=t.parentElement;} return false; };
|
||||
const detail = () => { for (const el of document.querySelectorAll('div'))
|
||||
if (String(el.className).indexOf('lc-table-container')===0 && /错误对象/.test(el.innerText||''))
|
||||
return (el.innerText||'').replace(/\s+/g,' ').split('input::-webkit')[0];
|
||||
return ''; };
|
||||
let leaf=null;
|
||||
for (const el of document.querySelectorAll('*'))
|
||||
if (el.children.length===0 && (el.textContent||'').trim()==='连接性错误 (166)') { leaf=el; break; }
|
||||
if(!leaf) return {err:'no leaf'};
|
||||
fire(leaf); await sleep(2500);
|
||||
const t = detail();
|
||||
const re = /\(([^)]+)\):\s*([A-Za-z0-9_.]+)/g;
|
||||
const by={}; let m; let n=0;
|
||||
while((m=re.exec(t))){ by[m[1]] = (by[m[1]]||[]); by[m[1]].push(m[2]); n++; }
|
||||
return {rows:n, nets:Object.keys(by).length, by, len:t.length};
|
||||
@@ -0,0 +1,10 @@
|
||||
await eda.dmt_EditorControl.openDocument('f126ffb29c92f9b2');
|
||||
await new Promise(r=>setTimeout(r,1000));
|
||||
let n=0;
|
||||
for (let pass=0; pass<3; pass++)
|
||||
for (const l of await eda.pcb_PrimitiveLine.getAll()) {
|
||||
if ([1,2,15,16].includes(l.getState_Layer())) { await eda.pcb_PrimitiveLine.delete(l.getState_PrimitiveId()); n++; }
|
||||
}
|
||||
const left = (await eda.pcb_PrimitiveLine.getAll()).filter(l=>[1,2,15,16].includes(l.getState_Layer())).length;
|
||||
await eda.pcb_Document.save();
|
||||
return {deleted:n, left};
|
||||
@@ -0,0 +1,17 @@
|
||||
const sleep=ms=>new Promise(r=>setTimeout(r,ms));
|
||||
await eda.dmt_EditorControl.openDocument('f126ffb29c92f9b2');
|
||||
await sleep(1500);
|
||||
const nat = b => { const o={bubbles:true,cancelable:true,view:window,button:0};
|
||||
for (const t of ['pointerdown','mousedown','pointerup','mouseup','click'])
|
||||
b.dispatchEvent(new (t.startsWith('pointer')?PointerEvent:MouseEvent)(t,o)); };
|
||||
for (const b of document.querySelectorAll('button'))
|
||||
if ((b.innerText||'').trim()==='确认' && b.offsetParent!==null) { nat(b); break; }
|
||||
await sleep(1500);
|
||||
await eda.pcb_Document.save();
|
||||
await sleep(2000);
|
||||
const out=[];
|
||||
for (const q of await eda.pcb_PrimitivePoured.getAll()) {
|
||||
let f=[]; try { f=q.getState_PourFills()||[]; } catch(e){}
|
||||
out.push(f.length);
|
||||
}
|
||||
return {fills: out, pour:(await eda.pcb_PrimitivePour.getAll()).map(p=>[p.getState_PourName(),p.getState_Net(),p.getState_Layer()])};
|
||||
@@ -0,0 +1,11 @@
|
||||
await eda.dmt_EditorControl.openDocument('f126ffb29c92f9b2');
|
||||
await new Promise(r=>setTimeout(r,1000));
|
||||
const M=39.3700787;
|
||||
const want=['J71','U51','U32','J23','Y1','J74','U54'];
|
||||
const out={};
|
||||
for (const c of await eda.pcb_PrimitiveComponent.getAll()) {
|
||||
const d=c.getState_Designator(); if(!want.includes(d)) continue;
|
||||
const pins = await eda.pcb_PrimitiveComponent.getAllPinsByPrimitiveId(c.getState_PrimitiveId());
|
||||
out[d]=pins.filter(p=>/DP|DM|XTAL|CC|VBUS|GND|^$/.test(p.net||'') || d!=='U32').map(p=>[p.padNumber,p.net,+(p.x/M).toFixed(3),+(p.y/M).toFixed(3),p.layer]);
|
||||
}
|
||||
return out;
|
||||
@@ -0,0 +1,17 @@
|
||||
const sleep=ms=>new Promise(r=>setTimeout(r,ms));
|
||||
const propsOf = el => { for (const k of Object.keys(el)) if (k.startsWith('__reactProps$')) return el[k]; return null; };
|
||||
const fire = (el) => { let t = el; for (let i=0;i<8&&t;i++){const q=propsOf(t);
|
||||
if(q&&typeof q.onClick==='function'){q.onClick({target:t,currentTarget:t,stopPropagation(){},preventDefault(){},nativeEvent:{},button:0,detail:1});return true;} t=t.parentElement;} return false; };
|
||||
const leaf = (txt) => { for (const el of document.querySelectorAll('*'))
|
||||
if (el.children.length===0 && (el.textContent||'').trim()===txt) return el; return null; };
|
||||
const total = () => { for (const el of document.querySelectorAll('*'))
|
||||
if (el.children.length===0 && (el.textContent||'').trim().startsWith('全部 (')) return (el.textContent||'').trim(); return null; };
|
||||
const before = total();
|
||||
fire(leaf('设计')); await sleep(800);
|
||||
fire(leaf('清除错误')); await sleep(2000);
|
||||
const cleared = total();
|
||||
fire(leaf('设计')); await sleep(800);
|
||||
fire(leaf('检查DRC')); await sleep(3000);
|
||||
const seq=[];
|
||||
for (let i=0;i<8;i++){ await sleep(2500); seq.push(total()); }
|
||||
return {before, cleared, seq};
|
||||
@@ -0,0 +1,2 @@
|
||||
const M = eda.pcb_Drc;
|
||||
return {methods: Object.getOwnPropertyNames(Object.getPrototypeOf(M)||{}).concat(Object.getOwnPropertyNames(M)).filter(n=>typeof M[n]==='function')};
|
||||
@@ -0,0 +1,15 @@
|
||||
let node=null;
|
||||
for (const el of document.querySelectorAll('*'))
|
||||
if (el.children.length===0 && (el.textContent||'').trim().startsWith('全部 (')) { node=el; break; }
|
||||
if(!node) return {err:'no panel'};
|
||||
let panel=node;
|
||||
for (let i=0;i<14&&panel.parentElement;i++){ panel=panel.parentElement; if((panel.innerText||'').length>200) break; }
|
||||
const items=[];
|
||||
for (const el of panel.querySelectorAll('button,i,svg,span,div')) {
|
||||
if (el.offsetParent===null) continue;
|
||||
const t=(el.getAttribute('title')||'').trim();
|
||||
const dt=(el.getAttribute('data-test')||'').trim();
|
||||
const cls=(typeof el.className==='string'?el.className:'').slice(0,50);
|
||||
if (t||dt) items.push({tag:el.tagName, title:t, dataTest:dt, cls});
|
||||
}
|
||||
return {n: items.length, items: items.slice(0,40)};
|
||||
@@ -0,0 +1,6 @@
|
||||
const out={};
|
||||
try { const f = await eda.pcb_ManufactureData.getDsnFile('AutoRoute_DSN');
|
||||
out.type = Object.prototype.toString.call(f);
|
||||
if (f && f.size !== undefined) { out.size=f.size; out.name=f.name; out.head=(await f.text()).slice(0,500); }
|
||||
} catch(e){ out.err=String(e).slice(0,300); }
|
||||
return out;
|
||||
@@ -0,0 +1,5 @@
|
||||
const L = (await eda.pcb_PrimitiveLine.getAll()).map(o=>[o.primitiveId,o.net,o.layer,
|
||||
Math.round(o.startX*100)/100,Math.round(o.startY*100)/100,Math.round(o.endX*100)/100,Math.round(o.endY*100)/100]);
|
||||
const V = (await eda.pcb_PrimitiveVia.getAll()).map(o=>[o.primitiveId,o.net,
|
||||
Math.round(o.x*100)/100,Math.round(o.y*100)/100]);
|
||||
return {L, V};
|
||||
@@ -0,0 +1,12 @@
|
||||
await eda.dmt_EditorControl.openDocument('9a6096762e036e23');
|
||||
await new Promise(r => setTimeout(r, 1500));
|
||||
const hit = [];
|
||||
for (const w of await eda.sch_PrimitiveWire.getAll()) {
|
||||
const l = w.getState_Line();
|
||||
if (!l) continue;
|
||||
const pts = [];
|
||||
for (let i = 0; i + 1 < l.length; i += 2) pts.push([Math.round(l[i]), Math.round(l[i+1])]);
|
||||
const touches = pts.some(p => (p[0] === 920 && (p[1] === 320 || p[1] === 570)) || (p[0] === 850 && p[1] === 320) || (p[0] === 890 && p[1] === 570));
|
||||
if (touches) hit.push({id: w.getState_PrimitiveId(), net: w.getState_Net(), nSeg: pts.length / 2, pts});
|
||||
}
|
||||
return hit;
|
||||
@@ -0,0 +1,11 @@
|
||||
await eda.dmt_EditorControl.openDocument('9a6096762e036e23');
|
||||
await new Promise(r => setTimeout(r, 1500));
|
||||
const out = {};
|
||||
out.deleted = await eda.sch_PrimitiveWire.delete('10da8544d0b1f864');
|
||||
// A0(U13.2) → 绕行 → SCL 端口引脚 (920,340) 收尾
|
||||
const w1 = await eda.sch_PrimitiveWire.create([890,570, 890,440, 850,440, 850,340, 920,340]);
|
||||
// 端口引脚 → U13.5 (SCL)
|
||||
const w2 = await eda.sch_PrimitiveWire.create([920,340, 920,570]);
|
||||
out.w1 = !!w1; out.w2 = !!w2;
|
||||
out.saved = await eda.sch_Document.save();
|
||||
return out;
|
||||
@@ -0,0 +1,9 @@
|
||||
const out=[];
|
||||
for (const key of ['2*20 排母','2x20 排母','排母 2*20','2.54 2*20P 母']) {
|
||||
let r=[];
|
||||
try { r = await eda.lib_Device.search(key, undefined, undefined, undefined, 30, 1); } catch(e){ out.push({key, err:String(e)}); continue; }
|
||||
out.push({key, n:r.length, items:(r||[]).slice(0,12).map(d=>({
|
||||
name:d.name||d.deviceName, sup:d.supplierPartNo||d.lcsc||d.productCode,
|
||||
fp:d.footprintName||d.footprint, desc:(d.description||'').slice(0,60)}))});
|
||||
}
|
||||
return out;
|
||||
@@ -0,0 +1,2 @@
|
||||
const r = await eda.lib_Device.search('2.54-2*20P母', undefined, undefined, undefined, 20, 1);
|
||||
return {n:r.length, keys: r[0]?Object.keys(r[0]):null, first: JSON.stringify(r[0]||null).slice(0,1200)};
|
||||
@@ -0,0 +1,18 @@
|
||||
const keys = ['2.54-2*20P母','排母 2*20P','2*20P 排母 插件','双排排母 40P','排针 2*20P',
|
||||
'2.54 2*20P','PC104 排母','加高排母','堆叠 排母 2.54','排母 塑高 11',
|
||||
'双排排针 2*20P','2*20P 排针 加高','双塑排针 2*20'];
|
||||
const seen = {}, out = [];
|
||||
for (const k of keys) {
|
||||
let r=[];
|
||||
try { r = await eda.lib_Device.search(k, undefined, undefined, undefined, 40, 1); } catch(e){ continue; }
|
||||
for (const d of (r||[])) {
|
||||
const fp = d.footprintName || '';
|
||||
if (!/40P-P2\.54.*(R2-C20|C20)/.test(fp)) continue;
|
||||
const id = d.otherProperty && d.otherProperty['Supplier Part'] || d.supplierId || d.uuid;
|
||||
if (seen[id]) continue; seen[id]=1;
|
||||
out.push({lcsc:id, name:d.name, fp:fp, mfr:d.manufacturer,
|
||||
desc:(d.description||'').replace(/\s+/g,''),
|
||||
cls:(d.otherProperty||{})['JLCPCB Part Class']});
|
||||
}
|
||||
}
|
||||
return out;
|
||||
@@ -0,0 +1,17 @@
|
||||
if (!window.__arLog) {
|
||||
window.__arLog = [];
|
||||
const push = (k, a) => { try { window.__arLog.push(k+': '+Array.from(a).map(x=>{
|
||||
try { return typeof x==='string'? x : JSON.stringify(x); } catch(e){ return String(x); } }).join(' ').slice(0,300)); } catch(e){} };
|
||||
['log','warn','error','info'].forEach(k=>{ const o=console[k].bind(console);
|
||||
console[k]=function(){ push(k, arguments); return o.apply(console, arguments); }; });
|
||||
window.addEventListener('error', e=>window.__arLog.push('winerr: '+e.message));
|
||||
window.addEventListener('unhandledrejection', e=>window.__arLog.push('rej: '+String(e.reason).slice(0,300)));
|
||||
const of = window.fetch;
|
||||
window.fetch = function(){ try{ window.__arLog.push('fetch: '+String(arguments[0]).slice(0,200)); }catch(e){} return of.apply(this, arguments); };
|
||||
const ox = XMLHttpRequest.prototype.open;
|
||||
XMLHttpRequest.prototype.open = function(m,u){ try{ window.__arLog.push('xhr: '+m+' '+String(u).slice(0,200)); }catch(e){} return ox.apply(this, arguments); };
|
||||
const ow = window.Worker;
|
||||
if (ow) { window.Worker = function(u, o){ try{ window.__arLog.push('worker: '+String(u).slice(0,200)); }catch(e){} return new ow(u, o); }; window.Worker.prototype = ow.prototype; }
|
||||
}
|
||||
window.__arLog.length = 0;
|
||||
return {hooked: true};
|
||||
@@ -0,0 +1,9 @@
|
||||
const out=[];
|
||||
for (const f of document.querySelectorAll('iframe')) {
|
||||
let accessible=false, keys=null, err=null;
|
||||
try { const w = f.contentWindow; accessible = !!w.document;
|
||||
keys = Object.keys(w).filter(k=>/bridge|rpc|pcb|editor|route|Route/i.test(k)).slice(0,25);
|
||||
} catch(e){ err=String(e).slice(0,80); }
|
||||
out.push({src:String(f.src).slice(0,120), id:f.id, cls:String(f.className).slice(0,40), accessible, keys, err});
|
||||
}
|
||||
return out;
|
||||
某些文件未显示,因为此 diff 中更改的文件太多 显示更多
在新工单中引用
屏蔽一个用户