Files
wheel/scripts/verify_kfl001_plate_draft.FCMacro

20 lines
940 B
Plaintext

from pathlib import Path
import os, traceback, json
import FreeCAD as A, Part
R=Path(r'C:\projects\wheel'); O=R/'models'/'kfl001_plate_draft'
try:
assembly=A.openDocument(str(R/'models'/'switch_2020_direct_profiles'/'Assembly.FCStd'))
draft=A.openDocument(str(O/'KFL001_plate_DRAFT.FCStd'))
f=draft.getObject('Plate_DRAFT').Shape
results=[]
for i,z in ((0,-84),(1,-187)):
p=assembly.getObject('CompactPlate%d'%i).Shape.copy()
p.translate(A.Vector(0,41,-z))
a=p.cut(f).Volume;b=f.cut(p).Volume
assert a<0.0001 and b<0.0001,(a,b)
results.append({'assembly':'CompactPlate%d'%i,'assembly_minus_draft_mm3':a,'draft_minus_assembly_mm3':b,'plate_z':z})
(O/'assembly_comparison.json').write_text(json.dumps(results,indent=2),encoding='utf8')
A.closeDocument(draft.Name);A.closeDocument(assembly.Name);os._exit(0)
except Exception:
(O/'assembly_comparison_error.txt').write_text(traceback.format_exc(),encoding='utf8');os._exit(1)