
git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5000 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d
97 lines
2.3 KiB
Python
97 lines
2.3 KiB
Python
#! python
|
|
# -*- coding: utf-8 -*-
|
|
# (c) 2006 Jürgen Riegel GPL
|
|
|
|
Usage = """generate - generates a FreeCAD Module out of an XML model
|
|
|
|
Usage:
|
|
generate [Optionen] Model.xml Model2.xml Model3.xml ...
|
|
|
|
Options:
|
|
-h, --help print this help
|
|
-o, --outputPath specify the output path if differs from source path
|
|
|
|
Generate source code out of an model definition.
|
|
|
|
Autor:
|
|
(c) 2006 Juergen Riegel
|
|
juergen.riegel@web.de
|
|
Licence: GPL
|
|
|
|
Version:
|
|
0.2
|
|
"""
|
|
|
|
import os,sys,string,re,getopt,codecs,binascii
|
|
import generateBase.generateModel_Module
|
|
import generateTemplates.templateModule
|
|
import generateTemplates.templateClassPyExport
|
|
|
|
|
|
# Globals
|
|
|
|
def generate(filename,path):
|
|
# load model
|
|
GenerateModelInst = generateBase.generateModel_Module.parse(filename)
|
|
|
|
if(len(GenerateModelInst.Module)!=0):
|
|
Module= generateTemplates.templateModule.TemplateModule()
|
|
Module.path = path
|
|
Module.module = GenerateModelInst.Module[0]
|
|
Module.Generate()
|
|
print "Done generating: " + GenerateModelInst.Module[0].Name
|
|
else:
|
|
Export = generateTemplates.templateClassPyExport.TemplateClassPyExport()
|
|
Export.path = path+"/"
|
|
Export.dirname = os.path.dirname(filename)+"/";
|
|
Export.export = GenerateModelInst.PythonExport[0]
|
|
Export.Generate()
|
|
print "Done generating: " + GenerateModelInst.PythonExport[0].Name
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def main():
|
|
defaultPath = ""
|
|
class generateOutput:
|
|
def write(self, data):
|
|
pass
|
|
sys.stdout=generateOutput()
|
|
|
|
try:
|
|
opts, args = getopt.getopt(sys.argv[1:], "ho:", ["help","outputPath="])
|
|
except getopt.GetoptError:
|
|
# print help information and exit:
|
|
sys.stderr.write(Usage)
|
|
sys.exit(2)
|
|
|
|
# checking on the options
|
|
for o, a in opts:
|
|
if o in ("-h", "--help"):
|
|
sys.stderr.write(Usage)
|
|
sys.exit()
|
|
if o in ("-o", "--outputPath"):
|
|
defaultPath = a
|
|
|
|
|
|
# runing through the files
|
|
if (len(args) ==0):
|
|
#sys.stderr.write(Usage)
|
|
generate("../Mod/PartDesign/PartDesign_Model.xml")
|
|
else:
|
|
for i in args:
|
|
filename = os.path.abspath(i)
|
|
if(defaultPath == ""):
|
|
head,tail = os.path.split(filename)
|
|
print head,tail
|
|
generate(filename,head)
|
|
else:
|
|
generate(filename,defaultPath)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|