Files
wheel/scripts/validate_70_m4_parameter.FCMacro

17 lines
866 B
Plaintext

from pathlib import Path
import FreeCAD as A,json,traceback
outdir=Path(r'C:\projects\wheel\models\70_m4_threaded')
try:
d=A.openDocument(str(outdir/'70_M4_threaded.FCStd'))
s=d.getObject('ThreadProfiles');p=d.getObject('Parameters')
before=s.Geometry[0].Center
p.set('B6','46 deg');d.recompute()
after=s.Geometry[0].Center
h=d.getObject('ThreadHoles');f=d.getObject('FinishedPlate')
result={'before':[before.x,before.y],'after':[after.x,after.y],'delta_mm':(after-before).Length,'thread_valid':h.Shape.isValid(),'final_valid':f.Shape.isValid(),'final_state':f.State,'changes_saved':False}
(outdir/'parameter_check.json').write_text(json.dumps(result,indent=2),encoding='utf-8')
except:
(outdir/'parameter_error.txt').write_text(traceback.format_exc(),encoding='utf-8')
for name in list(A.listDocuments()): A.closeDocument(name)
Gui.getMainWindow().close()