Several bugfixes in DXF/DWG Importer
This commit is contained in:
parent
5a06de7bd9
commit
a724a3dc12
@ -26,7 +26,8 @@ import inkex
|
|||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import subprocess, tempfile
|
import subprocess
|
||||||
|
import tempfile
|
||||||
from lxml import etree
|
from lxml import etree
|
||||||
from subprocess import Popen, PIPE
|
from subprocess import Popen, PIPE
|
||||||
import shutil
|
import shutil
|
||||||
@ -112,9 +113,9 @@ class DXFDWGImport(inkex.Effect):
|
|||||||
|
|
||||||
def openExplorer(self, temp_output_dir):
|
def openExplorer(self, temp_output_dir):
|
||||||
if os.name == 'nt':
|
if os.name == 'nt':
|
||||||
subprocess.Popen(["explorer",temp_output_dir],close_fds=True)
|
subprocess.Popen(["explorer",temp_output_dir], close_fds=True)
|
||||||
else:
|
else:
|
||||||
subprocess.Popen(["xdg-open",temp_output_dir],close_fds=True)
|
subprocess.Popen(["xdg-open",temp_output_dir], close_fds=True)
|
||||||
|
|
||||||
def effect(self):
|
def effect(self):
|
||||||
#get input file and copy it to some new temporary directory
|
#get input file and copy it to some new temporary directory
|
||||||
@ -357,8 +358,8 @@ class DXFDWGImport(inkex.Effect):
|
|||||||
if emptyGroup is not None:
|
if emptyGroup is not None:
|
||||||
emptyGroup.getparent().remove(emptyGroup)
|
emptyGroup.getparent().remove(emptyGroup)
|
||||||
|
|
||||||
#empty the following vals because they destroy the size aspects of the import
|
#empty the following vals because they destroy the size aspects of the import / make viewbox looking wrong
|
||||||
if self.options.dxf_to_svg_parser == "bjnortier":
|
if self.options.dxf_to_svg_parser == "bjnortier" or self.options.dxf_to_svg_parser == "kabeja":
|
||||||
doc.set('width','')
|
doc.set('width','')
|
||||||
doc.set('height','')
|
doc.set('height','')
|
||||||
doc.set('viewBox','')
|
doc.set('viewBox','')
|
||||||
@ -371,18 +372,21 @@ class DXFDWGImport(inkex.Effect):
|
|||||||
#if child.tag == inkex.addNS('g','svg'):
|
#if child.tag == inkex.addNS('g','svg'):
|
||||||
elements.append(child)
|
elements.append(child)
|
||||||
|
|
||||||
#build some of bounding boxes and ignore errors for faulty elements (sum function often fails for that usecase!)
|
#build sum of bounding boxes and ignore errors for faulty elements (sum function often fails for that usecase!)
|
||||||
bbox = None
|
bbox = None
|
||||||
try:
|
try:
|
||||||
bbox = elements[0].bounding_box() #init with the first bounding box of the tree (and hope that it is not a faulty one)
|
bbox = elements[0].bounding_box() #init with the first bounding box of the tree (and hope that it is not a faulty one)
|
||||||
except:
|
except Exception as e:
|
||||||
|
#inkex.utils.debug(str(e))
|
||||||
pass
|
pass
|
||||||
count = 0
|
count = 0
|
||||||
for element in elements:
|
for element in elements:
|
||||||
if count == 0: continue #skip the first
|
if count != 0: #skip the first
|
||||||
try:
|
try:
|
||||||
bbox.add(element.bounding_box())
|
#bbox.add(element.bounding_box())
|
||||||
except:
|
bbox += element.bounding_box()
|
||||||
|
except Exception as e:
|
||||||
|
#inkex.utils.debug(str(e))
|
||||||
pass
|
pass
|
||||||
count += 1 #some stupid counter
|
count += 1 #some stupid counter
|
||||||
if bbox is not None:
|
if bbox is not None:
|
||||||
|
Reference in New Issue
Block a user