From a22a719cb9f8965613e4dc3ca919130b64d9dcd3 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Sun, 21 Apr 2013 23:32:34 -0300 Subject: [PATCH] Draft: dwg support in windows --- src/Mod/Draft/InitGui.py | 2 +- src/Mod/Draft/importDWG.py | 23 ++++++++++++++++------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/Mod/Draft/InitGui.py b/src/Mod/Draft/InitGui.py index bca6b05e9a..add28732aa 100644 --- a/src/Mod/Draft/InitGui.py +++ b/src/Mod/Draft/InitGui.py @@ -164,7 +164,7 @@ App.addExportType("Open CAD Format (*.oca)","importOCA") # DWG support import importDWG -if importDWG.getTeighaConvertor(): +if importDWG.getTeighaConverter(): App.addImportType("Autodesk DWG (*.dwg)","importDWG") App.addExportType("Autodesk DWG (*.dwg)","importDWG") else: diff --git a/src/Mod/Draft/importDWG.py b/src/Mod/Draft/importDWG.py index 8a0cf26721..bbfc947a08 100644 --- a/src/Mod/Draft/importDWG.py +++ b/src/Mod/Draft/importDWG.py @@ -29,7 +29,6 @@ if open.__module__ == '__builtin__': def open(filename): "called when freecad opens a file." - teigha = getTeighaConvertor() dxf = convertToDxf(filename) import importDXF doc = importDXF.open(dxf) @@ -51,19 +50,29 @@ def export(objectslist,filename): convertToDwg(dxf,filename) return filename -def getTeighaConvertor(): - "finds the Teigha Convertor executable" +def getTeighaConverter(): + "finds the Teigha Converter executable" import os,platform + teigha = None if platform.system() == "Linux": teigha = "/usr/bin/TeighaFileConverter" - if os.path.exists(teigha): - return teigha + elif platform.system() == "Windows": + odadir = "C:\Program Files\ODA" + if os.path.exists(odadir): + subdirs = os.walk(odadir).next()[1] + for sub in subdirs: + t = odadir + os.sep + sub + os.sep + "TeighaFileConverter.exe" + if os.path.exists(t): + teigha = t + if teigha: + if os.path.exists(teigha): + return teigha return None def convertToDxf(dwgfilename): "converts a DWG file to DXF" import os,tempfile - teigha = getTeighaConvertor() + teigha = getTeighaConverter() indir = os.path.dirname(dwgfilename) outdir = tempfile.mkdtemp() basename = os.path.basename(dwgfilename) @@ -75,7 +84,7 @@ def convertToDxf(dwgfilename): def convertToDwg(dxffilename,dwgfilename): "converts a DXF file to DWG" import os - teigha = getTeighaConvertor() + teigha = getTeighaConverter() indir = os.path.dirname(dxffilename) outdir = os.path.dirname(dwgfilename) basename = os.path.basename(dxffilename)