-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathWingSolver_ResetDefaults.FCMacro
More file actions
56 lines (43 loc) · 1.86 KB
/
Copy pathWingSolver_ResetDefaults.FCMacro
File metadata and controls
56 lines (43 loc) · 1.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# -*- coding: utf-8 -*-
import FreeCAD
from os import path
from CfdOF.Mesh import CfdMeshTools
from CfdOF import CfdTools
from CfdOF.Solve import CfdCaseWriterFoam
import copy
import WingSolver_dependencies.WingSolver_Dependencies as wd
mydir = path.dirname(__file__)
analyseCSVMacro=path.join(mydir, 'WingSolver_AnalyseResult.FCMacro')
desc=FreeCAD.ActiveDocument.getObjectsByLabel("ParameterDescription")[0]
current=FreeCAD.ActiveDocument.getObjectsByLabel("CurrentParameter")[0]
scontrol=FreeCAD.ActiveDocument.getObjectsByLabel("SolverControl")[0]
geometry=FreeCAD.ActiveDocument.getObjectsByLabel("WingGeometry")[0]
current=FreeCAD.ActiveDocument.getObjectsByLabel("CurrentParameter")[0]
basedir=desc.cells["BaseDir"]
workingdirbase=path.join(basedir,"workingdir")
paramnames=desc.cells[desc.cells["ParameterNames"]]
paramdefaults=desc.cells[desc.cells["DefaultValues"]]
parammins=desc.cells[desc.cells["MinValue"]]
parammaxs=desc.cells[desc.cells["MaxValue"]]
paramsteps=desc.cells[desc.cells["SensibleStepWidth"]]
#reset learning rate
print("Resetting learning rate")
desc.set("LearningRate",str(scontrol.cells["InitialLearningRate"]))
params={}
for i in range(len(paramnames)):
params[paramnames[i]]={"name":paramnames[i],"default":paramdefaults[i],"min":parammins[i],"max":parammins[i],"step":paramsteps[i], "current":current.cells[paramnames[i]]}
# reset to old values
current.set("WorkingDir",workingdirbase)
for pn in params:
print("Setting %s to %s"%(pn,"%E"%params[pn]["default"]))
current.set(pn,"%E"%params[pn]["default"])
#reset U file
velocity= desc.get("Velocity")
wd.update_velocity(path.join(mydir,"U_template"),velocity,path.join(mydir,"U"))
current.set("Velocity","%f"%velocity)
print(f"U-file reset to {velocity} m/s")
current.recompute()
for obj in FreeCAD.ActiveDocument.Objects:
obj.touch()
FreeCAD.ActiveDocument.recompute()
print("Reset Defaults: done.")