Arch: fix in IFC export or circles

This commit is contained in:
Yorik van Havre 2014-05-13 18:17:09 -03:00
parent 1fbfa1c17a
commit 6ec53ed397

View File

@ -123,7 +123,7 @@ def create(ifcdoc=None,ifcname=None,arguments=[]):
for i in range(len(arguments)): for i in range(len(arguments)):
arg = arguments[i] arg = arguments[i]
if isinstance(arg,tuple): if isinstance(arg,tuple):
if len(arg) == 3: if len(arg) in [2,3]:
arg = IfcImport.Doubles(arg) arg = IfcImport.Doubles(arg)
entity.set_argument(i,arg) entity.set_argument(i,arg)
return entity return entity
@ -401,12 +401,14 @@ class IfcDocument(object):
"""addPlacement([reference,origin,xaxis,zaxis,local]): adds a placement. origin, """addPlacement([reference,origin,xaxis,zaxis,local]): adds a placement. origin,
xaxis and zaxis can be either tuples or 3d vectors. If local is False, a global xaxis and zaxis can be either tuples or 3d vectors. If local is False, a global
placement is returned, otherwise a local one.""" placement is returned, otherwise a local one."""
xvc = create(self._fileobject,"IfcDirection",getTuple(xaxis))
zvc = create(self._fileobject,"IfcDirection",getTuple(zaxis))
ovc = create(self._fileobject,"IfcCartesianPoint",getTuple(origin))
if flat: if flat:
xvc = create(self._fileobject,"IfcDirection",getTuple(xaxis)[:2])
ovc = create(self._fileobject,"IfcCartesianPoint",getTuple(origin)[:2])
gpl = create(self._fileobject,"IfcAxis2Placement2D",[ovc,xvc]) gpl = create(self._fileobject,"IfcAxis2Placement2D",[ovc,xvc])
else: else:
xvc = create(self._fileobject,"IfcDirection",getTuple(xaxis))
zvc = create(self._fileobject,"IfcDirection",getTuple(zaxis))
ovc = create(self._fileobject,"IfcCartesianPoint",getTuple(origin))
gpl = create(self._fileobject,"IfcAxis2Placement3D",[ovc,zvc,xvc]) gpl = create(self._fileobject,"IfcAxis2Placement3D",[ovc,zvc,xvc])
if local: if local:
lpl = create(self._fileobject,"IfcLocalPlacement",[reference,gpl]) lpl = create(self._fileobject,"IfcLocalPlacement",[reference,gpl])