建立方向盘项目初始版本

This commit is contained in:
2026-10-29 22:04:55 +08:00
commit 9962cbfbce
834 changed files with 1519203 additions and 0 deletions

View File

@@ -0,0 +1,23 @@
from pathlib import Path
import os, json, traceback
import FreeCAD as A, Part
root=Path(r'C:\projects\wheel\models\fan_direct_145')
try:
d=A.openDocument(str(root/'Assembly.FCStd'));d.recompute()
fan=d.getObject('DirectFan');v=[]
screws=[d.getObject('FanBolt0'),d.getObject('FanBolt1')]
for s in screws:
for o in d.Objects:
if o==s or o in screws or not hasattr(o,'Shape') or o.Shape.isNull() or not o.ViewObject.Visibility:continue
if s.Shape.BoundBox.intersect(o.Shape.BoundBox):
n=s.Shape.common(o.Shape).Volume
if n>1e-4:v.append([s.Name,o.Name,n])
distances={}
for n in ('MotorBaseCorner0','MotorBaseCorner1','NewRail0','NewRail1','OpenPillarBracket','PCB','Chip','Holder','Magnet'):
o=d.getObject(n)
if o and hasattr(o,'Shape') and not o.Shape.isNull():distances[n]=fan.Shape.distToShape(o.Shape)[0]
result={'fastener_hits':v,'fan_distances_mm':distances,'warning':'Screws only modeled above rail surface; fan blades, electric hub, T slot nuts and wiring are not modeled.'}
(root/'verify_screws.json').write_text(json.dumps(result,indent=2),encoding='utf8')
A.closeDocument(d.Name);os._exit(0)
except Exception:
(root/'verify_screws_error.txt').write_text(traceback.format_exc(),encoding='utf8');os._exit(1)