Arch: obj exporter now skips bad objects instead of stopping
This commit is contained in:
parent
36ac2e7032
commit
be9920a132
|
@ -36,6 +36,7 @@ def findVert(aVertex,aList):
|
||||||
if ( round(aVertex.Y,p) == round(aList[i].Y,p) ):
|
if ( round(aVertex.Y,p) == round(aList[i].Y,p) ):
|
||||||
if ( round(aVertex.Z,p) == round(aList[i].Z,p) ):
|
if ( round(aVertex.Z,p) == round(aList[i].Z,p) ):
|
||||||
return i
|
return i
|
||||||
|
return None
|
||||||
|
|
||||||
def getIndices(shape,offset):
|
def getIndices(shape,offset):
|
||||||
"returns a list with 2 lists: vertices and face indexes, offsetted with the given amount"
|
"returns a list with 2 lists: vertices and face indexes, offsetted with the given amount"
|
||||||
|
@ -89,7 +90,10 @@ def getIndices(shape,offset):
|
||||||
for e in edges:
|
for e in edges:
|
||||||
#print e.Vertexes[0].Point,e.Vertexes[1].Point
|
#print e.Vertexes[0].Point,e.Vertexes[1].Point
|
||||||
v = e.Vertexes[0]
|
v = e.Vertexes[0]
|
||||||
fi += " " + str(findVert(v,shape.Vertexes) + offset)
|
ind = findVert(v,shape.Vertexes)
|
||||||
|
if ind == None:
|
||||||
|
return None,None,None
|
||||||
|
fi += " " + str(ind + offset)
|
||||||
flist.append(fi)
|
flist.append(fi)
|
||||||
return vlist,elist,flist
|
return vlist,elist,flist
|
||||||
|
|
||||||
|
@ -104,14 +108,17 @@ def export(exportList,filename):
|
||||||
if obj.isDerivedFrom("Part::Feature"):
|
if obj.isDerivedFrom("Part::Feature"):
|
||||||
if obj.ViewObject.isVisible():
|
if obj.ViewObject.isVisible():
|
||||||
vlist,elist,flist = getIndices(obj.Shape,offset)
|
vlist,elist,flist = getIndices(obj.Shape,offset)
|
||||||
offset += len(vlist)
|
if vlist == None:
|
||||||
outfile.write("o " + obj.Name + "\n")
|
FreeCAD.Console.PrintError("Unable to export object "+obj.Label+". Skipping.\n")
|
||||||
for v in vlist:
|
else:
|
||||||
outfile.write("v" + v + "\n")
|
offset += len(vlist)
|
||||||
for e in elist:
|
outfile.write("o " + obj.Name + "\n")
|
||||||
outfile.write("l" + e + "\n")
|
for v in vlist:
|
||||||
for f in flist:
|
outfile.write("v" + v + "\n")
|
||||||
outfile.write("f" + f + "\n")
|
for e in elist:
|
||||||
|
outfile.write("l" + e + "\n")
|
||||||
|
for f in flist:
|
||||||
|
outfile.write("f" + f + "\n")
|
||||||
outfile.close()
|
outfile.close()
|
||||||
FreeCAD.Console.PrintMessage(translate("Arch","successfully written ")+filename+"\n")
|
FreeCAD.Console.PrintMessage(translate("Arch","successfully written ")+filename+"\n")
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user