20 lines
940 B
Plaintext
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)
|