Arch: Fixed export of non-ortho extrusions to IFC

This commit is contained in:
Yorik van Havre
2020-05-13 14:12:37 +02:00
parent e6f4a1797c
commit 4fa967b240

View File

@@ -1925,11 +1925,10 @@ def getRepresentation(ifcfile,context,obj,forcebrep=False,subtraction=False,tess
if (not shapes) and obj.isDerivedFrom("Part::Extrusion"):
import ArchComponent
pstr = str([v.Point for v in obj.Base.Shape.Vertexes])
pr = obj.Base.Shape.copy()
pr.scale(preferences['SCALE_FACTOR'])
profile,pl = ArchComponent.Component.rebase(obj,obj.Base.Shape)
profile.scale(preferences['SCALE_FACTOR'])
pl.Base = pl.Base.multiply(preferences['SCALE_FACTOR'])
profile = getProfile(ifcfile,pr)
profile = getProfile(ifcfile,profile)
if profile:
profiledefs[pstr] = profile
ev = obj.Dir
@@ -1937,6 +1936,7 @@ def getRepresentation(ifcfile,context,obj,forcebrep=False,subtraction=False,tess
if l:
ev.multiply(l)
ev.multiply(preferences['SCALE_FACTOR'])
ev = pl.Rotation.inverted().multVec(ev)
xvc = ifcbin.createIfcDirection(tuple(pl.Rotation.multVec(FreeCAD.Vector(1,0,0))))
zvc = ifcbin.createIfcDirection(tuple(pl.Rotation.multVec(FreeCAD.Vector(0,0,1))))
ovc = ifcbin.createIfcCartesianPoint(tuple(pl.Base))