3
# (c) 2006 Jürgen Riegel GPL
6
import generateBase.generateModel_Module
7
import generateTemplates.templateModule
8
import generateTemplates.templateClassPyExport
10
Usage = """generate - generates a FreeCAD Module out of an XML model
13
generate [Optionen] Model.xml Model2.xml Model3.xml ...
16
-h, --help print this help
17
-o, --outputPath specify the output path if differs from source path
19
Generate source code out of an model definition.
22
(c) 2006 Juergen Riegel
34
def generate(filename, path):
36
GenerateModelInst = generateBase.generateModel_Module.parse(filename)
38
if len(GenerateModelInst.Module) != 0:
39
Module = generateTemplates.templateModule.TemplateModule()
41
Module.module = GenerateModelInst.Module[0]
43
print("Done generating: " + GenerateModelInst.Module[0].Name)
45
Export = generateTemplates.templateClassPyExport.TemplateClassPyExport()
46
Export.path = path + "/"
47
Export.dirname = os.path.dirname(filename) + "/"
48
Export.export = GenerateModelInst.PythonExport[0]
50
print("Done generating: " + GenerateModelInst.PythonExport[0].Name)
57
def write(self, data):
60
def flush(self): # mandatory for file-like objects
63
sys.stdout = generateOutput()
66
opts, args = getopt.getopt(sys.argv[1:], "ho:", ["help", "outputPath="])
67
except getopt.GetoptError:
68
# print help information and exit:
69
sys.stderr.write(Usage)
72
# checking on the options
74
if o in ("-h", "--help"):
75
sys.stderr.write(Usage)
77
if o in ("-o", "--outputPath"):
80
# running through the files
82
sys.stderr.write(Usage)
85
filename = os.path.abspath(i)
87
head, tail = os.path.split(filename)
89
generate(filename, head)
91
generate(filename, defaultPath)
94
if __name__ == "__main__":