Draft: fixes to dxf & svg exporters to work in console mode

This commit is contained in:
Yorik van Havre 2013-06-28 14:13:35 -03:00
parent b2c635e40c
commit c6d512ccab
2 changed files with 40 additions and 25 deletions

View File

@ -1284,15 +1284,16 @@ def getSVG(obj,scale=1,linewidth=0.35,fontsize=12,fillstyle="shape color",direct
def getLineStyle(obj):
"returns a linestyle pattern for a given object"
if obj.ViewObject:
if hasattr(obj.ViewObject,"DrawStyle"):
ds = obj.ViewObject.DrawStyle
if ds == "Dashed":
return "0.09,0.05"
elif ds == "Dashdot":
return "0.09,0.05,0.02,0.05"
elif ds == "Dotted":
return "0.02,0.02"
if gui:
if obj.ViewObject:
if hasattr(obj.ViewObject,"DrawStyle"):
ds = obj.ViewObject.DrawStyle
if ds == "Dashed":
return "0.09,0.05"
elif ds == "Dashdot":
return "0.09,0.05,0.02,0.05"
elif ds == "Dotted":
return "0.02,0.02"
return "none"
def getProj(vec):
@ -1485,23 +1486,36 @@ def getSVG(obj,scale=1,linewidth=0.35,fontsize=12,fillstyle="shape color",direct
n += 1
elif obj.isDerivedFrom('Part::Feature'):
if obj.Shape.isNull(): return ''
color = getrgb(obj.ViewObject.LineColor)
if obj.Shape.isNull():
return ''
if gui:
color = getrgb(obj.ViewObject.LineColor)
else:
color = "#000000"
# setting fill
if obj.Shape.Faces and (obj.ViewObject.DisplayMode != "Wireframe"):
if fillstyle == "shape color":
fill = getrgb(obj.ViewObject.ShapeColor)
if obj.Shape.Faces:
if gui:
if (obj.ViewObject.DisplayMode != "Wireframe"):
if fillstyle == "shape color":
fill = getrgb(obj.ViewObject.ShapeColor)
else:
fill = 'url(#'+fillstyle+')'
svg += getPattern(fillstyle)
else:
fill = "none"
else:
fill = 'url(#'+fillstyle+')'
svg += getPattern(fillstyle)
fill = "#888888"
else:
fill = 'none'
lstyle = getLineStyle(obj)
name = obj.Name
if obj.ViewObject.DisplayMode == "Shaded":
stroke = "none"
if gui:
if obj.ViewObject.DisplayMode == "Shaded":
stroke = "none"
else:
stroke = getrgb(obj.ViewObject.LineColor)
else:
stroke = getrgb(obj.ViewObject.LineColor)
stroke = "#000000"
if len(obj.Shape.Vertexes) > 1:
wiredEdges = []

View File

@ -43,11 +43,11 @@ import sys, FreeCAD, os, Part, math, re, string, Mesh, Draft, DraftVecUtils, Dra
from Draft import _Dimension, _ViewProviderDimension
from FreeCAD import Vector
try: import FreeCADGui
except: gui = False
else: gui = True
try: draftui = FreeCADGui.draftToolBar
except: draftui = None
gui = FreeCAD.GuiUp
try:
draftui = FreeCADGui.draftToolBar
except:
draftui = None
files = ['dxfColorMap.py','dxfImportObjects.py','dxfLibrary.py','dxfReader.py']
baseurl = 'https://raw.github.com/yorikvanhavre/Draft-dxf-importer/master/'
@ -162,7 +162,8 @@ def getGroup(ob):
def getACI(ob,text=False):
"gets the ACI color closest to the objects color"
if not gui: return 0
if not gui:
return 0
else:
if text:
col=ob.ViewObject.TextColor