Draft: added radial & diameter dim support to DXF import - fixes #2162
This commit is contained in:
parent
2e91633da9
commit
1da0ec65c3
|
@ -1274,15 +1274,30 @@ def processdxf(document,filename,getShapes=False):
|
||||||
if dxfImportLayouts or (not rawValue(dim,67)):
|
if dxfImportLayouts or (not rawValue(dim,67)):
|
||||||
try:
|
try:
|
||||||
layer = rawValue(dim,8)
|
layer = rawValue(dim,8)
|
||||||
x1 = float(rawValue(dim,10))
|
if rawValue(dim,15) != None:
|
||||||
y1 = float(rawValue(dim,20))
|
# this is a radial or diameter dimension
|
||||||
z1 = float(rawValue(dim,30))
|
#x1 = float(rawValue(dim,11))
|
||||||
x2 = float(rawValue(dim,13))
|
#y1 = float(rawValue(dim,21))
|
||||||
y2 = float(rawValue(dim,23))
|
#z1 = float(rawValue(dim,31))
|
||||||
z2 = float(rawValue(dim,33))
|
x2 = float(rawValue(dim,10))
|
||||||
x3 = float(rawValue(dim,14))
|
y2 = float(rawValue(dim,20))
|
||||||
y3 = float(rawValue(dim,24))
|
z2 = float(rawValue(dim,30))
|
||||||
z3 = float(rawValue(dim,34))
|
x3 = float(rawValue(dim,15))
|
||||||
|
y3 = float(rawValue(dim,25))
|
||||||
|
z3 = float(rawValue(dim,35))
|
||||||
|
x1 = x2
|
||||||
|
y1 = y2
|
||||||
|
z1 = z2
|
||||||
|
else:
|
||||||
|
x1 = float(rawValue(dim,10))
|
||||||
|
y1 = float(rawValue(dim,20))
|
||||||
|
z1 = float(rawValue(dim,30))
|
||||||
|
x2 = float(rawValue(dim,13))
|
||||||
|
y2 = float(rawValue(dim,23))
|
||||||
|
z2 = float(rawValue(dim,33))
|
||||||
|
x3 = float(rawValue(dim,14))
|
||||||
|
y3 = float(rawValue(dim,24))
|
||||||
|
z3 = float(rawValue(dim,34))
|
||||||
d = rawValue(dim,70)
|
d = rawValue(dim,70)
|
||||||
if d: align = int(d)
|
if d: align = int(d)
|
||||||
else: align = 0
|
else: align = 0
|
||||||
|
@ -1486,21 +1501,21 @@ def open(filename):
|
||||||
docname = docname.encode(sys.getfilesystemencoding())
|
docname = docname.encode(sys.getfilesystemencoding())
|
||||||
doc = FreeCAD.newDocument(docname)
|
doc = FreeCAD.newDocument(docname)
|
||||||
doc.Label = decodeName(docname)
|
doc.Label = decodeName(docname)
|
||||||
FreeCAD.setActiveDocument(docname)
|
FreeCAD.setActiveDocument(doc.Name)
|
||||||
import DraftUtils
|
import DraftUtils
|
||||||
DraftUtils.readDXF(filename)
|
DraftUtils.readDXF(filename)
|
||||||
|
|
||||||
def insert(filename,docname):
|
def insert(filename,docname):
|
||||||
"called when freecad imports a file"
|
"called when freecad imports a file"
|
||||||
readPreferences()
|
readPreferences()
|
||||||
|
try:
|
||||||
|
doc=FreeCAD.getDocument(docname)
|
||||||
|
except NameError:
|
||||||
|
doc=FreeCAD.newDocument(docname)
|
||||||
|
FreeCAD.setActiveDocument(docname)
|
||||||
if dxfUseLegacyImporter:
|
if dxfUseLegacyImporter:
|
||||||
if dxfReader:
|
if dxfReader:
|
||||||
groupname = os.path.splitext(os.path.basename(filename))[0]
|
groupname = os.path.splitext(os.path.basename(filename))[0]
|
||||||
try:
|
|
||||||
doc=FreeCAD.getDocument(docname)
|
|
||||||
except NameError:
|
|
||||||
doc=FreeCAD.newDocument(docname)
|
|
||||||
FreeCAD.setActiveDocument(docname)
|
|
||||||
importgroup = doc.addObject("App::DocumentObjectGroup",groupname)
|
importgroup = doc.addObject("App::DocumentObjectGroup",groupname)
|
||||||
importgroup.Label = decodeName(groupname)
|
importgroup.Label = decodeName(groupname)
|
||||||
processdxf(doc,filename)
|
processdxf(doc,filename)
|
||||||
|
@ -1509,7 +1524,6 @@ def insert(filename,docname):
|
||||||
else:
|
else:
|
||||||
errorDXFLib(gui)
|
errorDXFLib(gui)
|
||||||
else:
|
else:
|
||||||
FreeCAD.setActiveDocument(docname)
|
|
||||||
import DraftUtils
|
import DraftUtils
|
||||||
DraftUtils.readDXF(filename)
|
DraftUtils.readDXF(filename)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user