Arch: misc minor bugfixes
This commit is contained in:
@@ -678,15 +678,17 @@ class ViewProviderComponent:
|
||||
if obj.Base:
|
||||
if obj.Base.isDerivedFrom("Part::Compound"):
|
||||
if obj.ViewObject.DiffuseColor != obj.Base.ViewObject.DiffuseColor:
|
||||
obj.ViewObject.DiffuseColor = obj.Base.ViewObject.DiffuseColor
|
||||
obj.ViewObject.update()
|
||||
self.onChanged(obj.ViewObject,"ShapeColor")
|
||||
if len(obj.Base.ViewObject.DiffuseColor) > 1:
|
||||
obj.ViewObject.DiffuseColor = obj.Base.ViewObject.DiffuseColor
|
||||
obj.ViewObject.update()
|
||||
#self.onChanged(obj.ViewObject,"ShapeColor")
|
||||
elif prop == "CloneOf":
|
||||
if obj.CloneOf and not(obj.BaseMaterial):
|
||||
if obj.ViewObject.DiffuseColor != obj.CloneOf.ViewObject.DiffuseColor:
|
||||
if len(obj.CloneOf.ViewObject.DiffuseColor) > 1:
|
||||
obj.ViewObject.DiffuseColor = obj.CloneOf.ViewObject.DiffuseColor
|
||||
obj.ViewObject.update()
|
||||
self.onChanged(obj.ViewObject,"ShapeColor")
|
||||
#self.onChanged(obj.ViewObject,"ShapeColor")
|
||||
return
|
||||
|
||||
def getIcon(self):
|
||||
|
||||
@@ -258,6 +258,7 @@ def getSVG(section,allOn=False,renderMode="Wireframe",showHidden=False,showFill=
|
||||
if not techdraw:
|
||||
svg += '</g>'
|
||||
# add additional edge symbols from windows
|
||||
cutwindows = []
|
||||
if cutface and windows:
|
||||
cutwindows = [w.Name for w in windows if w.Shape.BoundBox.intersect(cutface.BoundBox)]
|
||||
if windows:
|
||||
|
||||
@@ -999,10 +999,12 @@ class _ViewProviderWindow(ArchComponent.ViewProviderComponent):
|
||||
|
||||
def onChanged(self,vobj,prop):
|
||||
if (prop == "DiffuseColor") and vobj.Object:
|
||||
if len(vobj.DiffuseColor) < 2:
|
||||
if vobj.Object.Shape:
|
||||
if not vobj.Object.Shape.isNull():
|
||||
self.colorize(vobj.Object)
|
||||
if vobj.Object.Base:
|
||||
if not vobj.Object.Base.Shape.Solids:
|
||||
if len(vobj.DiffuseColor) < 2:
|
||||
if vobj.Object.Shape:
|
||||
if not vobj.Object.Shape.isNull():
|
||||
self.colorize(vobj.Object)
|
||||
ArchComponent.ViewProviderComponent.onChanged(self,vobj,prop)
|
||||
|
||||
def setEdit(self,vobj,mode):
|
||||
|
||||
@@ -1750,14 +1750,17 @@ def getRepresentation(ifcfile,context,obj,forcebrep=False,subtraction=False,tess
|
||||
for wire in fcface.Wires:
|
||||
if wire.hashCode() != fcface.OuterWire.hashCode():
|
||||
verts = [v.Point for v in wire.OrderedVertexes]
|
||||
v1 = verts[0].sub(c)
|
||||
v2 = verts[1].sub(c)
|
||||
if DraftVecUtils.angle(v2,v1,DraftVecUtils.neg(n)) >= 0:
|
||||
verts.reverse()
|
||||
pts = [ifcfile.createIfcCartesianPoint(tuple(v)) for v in verts]
|
||||
loop = ifcfile.createIfcPolyLoop(pts)
|
||||
bound = ifcfile.createIfcFaceBound(loop,True)
|
||||
loops.append(bound)
|
||||
if len(verts) > 1:
|
||||
v1 = verts[0].sub(c)
|
||||
v2 = verts[1].sub(c)
|
||||
if DraftVecUtils.angle(v2,v1,DraftVecUtils.neg(n)) >= 0:
|
||||
verts.reverse()
|
||||
pts = [ifcfile.createIfcCartesianPoint(tuple(v)) for v in verts]
|
||||
loop = ifcfile.createIfcPolyLoop(pts)
|
||||
bound = ifcfile.createIfcFaceBound(loop,True)
|
||||
loops.append(bound)
|
||||
else:
|
||||
print ("Warning: wire with one/no vertex in ",obj.Label)
|
||||
face = ifcfile.createIfcFace(loops)
|
||||
faces.append(face)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user