-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathWingSolver_CompleteLoop.FCMacro
More file actions
63 lines (46 loc) · 1.86 KB
/
Copy pathWingSolver_CompleteLoop.FCMacro
File metadata and controls
63 lines (46 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
57
58
59
60
61
62
# -*- coding: utf-8 -*-
import FreeCAD
import FreeCADGui
import os
from CfdOF.Mesh import CfdMeshTools
from CfdOF import CfdTools
import re
import math
import shutil
import time
from datetime import timedelta
import traceback
mydir = os.path.dirname(__file__)
desc=FreeCAD.ActiveDocument.getObjectsByLabel("ParameterDescription")[0]
sstate=FreeCAD.ActiveDocument.getObjectsByLabel("SolverState")[0]
scontrol=FreeCAD.ActiveDocument.getObjectsByLabel("SolverControl")[0]
basedir=desc.cells["BaseDir"]
workingdirbase=os.path.join(basedir,"workingdir")
resultdirbase=os.path.join(basedir,"results")
prepareNextStepMacro=os.path.join(mydir, 'WingSolver_PrepareNextStep.FCMacro')
calcGradientMacro=os.path.join(mydir, 'WingSolver_CalcGradient.FCMacro')
plotResultMacro=os.path.join(mydir, 'WingSolver_PlotResult.FCMacro')
outerLoopMarcro=os.path.join(mydir, 'WingSolver_OuterLoop.FCMacro')
resetDefaultsMacro=os.path.join(mydir, 'WingSolver_ResetDefaults.FCMacro')
paramnames=desc.cells[desc.cells["ParameterNames"]]
try:
CfdTools.executeMacro(resetDefaultsMacro)
CfdTools.executeMacro(calcGradientMacro)
#copy all the folders to results 1
print("Collecting results:")
outputfoldername=os.path.join(resultdirbase,str(1))
for p in ("0",)+paramnames:
subfolder=os.path.join(outputfoldername,p)
srcfolder=os.path.join(workingdirbase,p)
os.makedirs(subfolder,exist_ok=True)
for f in ("rawresult.csv","result.csv","parameters.csv","geometry.csv","mass.csv"):
srcfile=os.path.join(srcfolder,f)
dstfile=os.path.join(subfolder,f)
try:
shutil.copy(srcfile,dstfile)
except Exception as e:
print("Could not copy file %s, %s"%(srcfile,str(e)))
CfdTools.executeMacro(outerLoopMarcro)
print("Finished complete loop")
except Exception as e:
traceback.print_exc()