R2:底板 / 刀片布局布线脚本、快照、截图与规划文档更新(含外壳、打印件、布线归档)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
这个提交包含在:
zhou yang
2026-10-04 19:24:45 +08:00
共同撰写人 Claude Opus 5.5
父节点 cd01640c40
当前提交 cf7cc9cf90
共修改 759 个文件,包含 76962 行新增和 5299 行删除
+40
查看文件
@@ -0,0 +1,40 @@
import sys, io, json
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='replace', write_through=True)
import pythoncom, win32com.client as wc
def prop(o, n):
v = getattr(o, n)
return v() if type(v).__name__ in ('method','function','builtin_function_or_method') else v
app = wc.GetActiveObject('SldWorks.Application')
doc = app.ActiveDoc
print('active:', prop(doc,'GetTitle'), '| docs', prop(app,'GetDocumentCount'))
rows = []
for c in doc.GetComponents(True):
nm = prop(c, 'Name2')
try:
b = [round(v*1000, 3) for v in c.GetBox(False, False)]
except Exception:
b = None
rows.append((nm, b))
rows.sort(key=lambda r: (r[1][0] if r[1] else 0))
print('top-level comps:', len(rows))
print('%-34s %8s %8s %8s %8s %8s %8s' % ('name','x0','x1','y0','y1','z0','z1'))
for nm, b in rows:
if b:
print('%-34s %8.2f %8.2f %8.2f %8.2f %8.2f %8.2f' % (nm[:34], b[0],b[3],b[1],b[4],b[2],b[5]))
else:
print('%-34s <no box>' % nm[:34])
blades = sorted([(b[1],b[4],nm) for nm,b in rows if b and 'BLADE' in nm.upper()])
print('\nblade y spans (%d):' % len(blades))
prev = None
for y0,y1,nm in blades:
gap = '' if prev is None else ' gap %.3f' % (y0-prev)
print(' y %8.3f ~ %8.3f centre %8.3f%s' % (y0, y1, (y0+y1)/2, gap))
prev = y1
fans = [(nm,b) for nm,b in rows if b and ('OD6025' in nm.upper() or 'FAN' in nm.upper())]
print('\nfans:')
for nm,b in fans:
print(' %-30s x %8.2f~%8.2f y %8.2f~%8.2f z %8.2f~%8.2f' % (nm[:30], b[0],b[3],b[1],b[4],b[2],b[5]))
json.dump([{'name':nm,'box':b} for nm,b in rows], open('_top.json','w',encoding='utf-8'), ensure_ascii=False, indent=1)
print('\nsaved _top.json')