From 134889c69cdffec63b11978dc642bcea86c678dc Mon Sep 17 00:00:00 2001 From: "Zheng, Lei" Date: Thu, 9 May 2019 20:09:20 +0800 Subject: [PATCH] assembly: show axis for element with infinite shape --- assembly.py | 12 +++++------- utils.py | 7 +++++++ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/assembly.py b/assembly.py index caef2f3..1ab02e5 100644 --- a/assembly.py +++ b/assembly.py @@ -1004,19 +1004,17 @@ class ViewProviderAsmElement(ViewProviderAsmOnTop): return if prop == 'Detach': vobj.signalChangeIcon() - elif prop in ('Placement','Shape','LinkedObject'): + elif prop in ('Placement','Shape'): self.setupAxis() _AxisGroup = None _Axis = None _AxisMap = {'X':0,'Y':1,'Z':2} - def isCSVisible(self): + def showCS(self): if self.ViewObject.ShowCS or gui.AsmCmdManager.ShowElementCS: return True - obj = self.ViewObject.Object.getLinkedObject(True) - return obj and \ - obj.isDerivedFrom('PartDesign::ViewProviderDatumCoordinateSystem') + return utils.isInfinite(self.ViewObject.Object.Shape) def getElementPicked(self,pp): vobj = self.ViewObject @@ -1103,7 +1101,7 @@ class ViewProviderAsmElement(ViewProviderAsmOnTop): def setupAxis(self): vobj = self.ViewObject switch = getattr(self,'axisNode',None) - if not self.isCSVisible(): + if not self.showCS(): if switch: switch.whichChild = -1 return @@ -1115,7 +1113,7 @@ class ViewProviderAsmElement(ViewProviderAsmOnTop): switch.addChild(node) trans = coin.SoTransform() node.addChild(trans) - node.addChild(self.getAxis()) + node.addChild(ViewProviderAsmElement.getAxis()) self.axisNode = switch self.transNode = trans vobj.RootNode.addChild(switch) diff --git a/utils.py b/utils.py index ce647d5..7f7f7bf 100644 --- a/utils.py +++ b/utils.py @@ -80,6 +80,13 @@ def deduceSelectedElement(obj,subname): if count==1: return 'Vertex1' +def isInfinite(shape): + # A face without edge or an edge without vertex is considered infinite + if shape.countElement('Face'): + return shape.countElement('Edge') + else: + return shape.countElement('Vertex') + def getElementShape(obj,tp=None,transform=False,noElementMap=True): if not isinstance(obj,(tuple,list)): shape = obj