#! 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()