import FreeCAD as A, Part, json from pathlib import Path r=Path(r'C:\projects\wheel\models'); old=Part.read(str(r/'washer_panel_4x4'/'一体式4x4双厚垫片.step')); new=Part.read(str(r/'washer_panel_4x2'/'一体式4x2双厚垫片.step')) v=A.Vector; checks=[] for row in range(2): for col in range(4): yold=0 if row==0 else 24; yn=12*row; x=12*col ns=new.common(Part.makeBox(12,12,2,v(x,yn,0))) os=old.common(Part.makeBox(12,12,2,v(x,yold,0))); os.translate(v(0,yn-yold,0)) a=ns.cut(os).Volume; b=os.cut(ns).Volume assert abs(a)<1e-6 and abs(b)<1e-6,(row,col,a,b) checks.append({'row':row,'col':col,'old_minus_new':a,'new_minus_old':b}) (r/'washer_panel_4x2'/'切分比对.json').write_text(json.dumps(checks,ensure_ascii=False,indent=2),encoding='utf-8') print('8 cells match exactly')