assembly: show axis for element with infinite shape
This commit is contained in:
parent
c99784e225
commit
134889c69c
12
assembly.py
12
assembly.py
|
@ -1004,19 +1004,17 @@ class ViewProviderAsmElement(ViewProviderAsmOnTop):
|
||||||
return
|
return
|
||||||
if prop == 'Detach':
|
if prop == 'Detach':
|
||||||
vobj.signalChangeIcon()
|
vobj.signalChangeIcon()
|
||||||
elif prop in ('Placement','Shape','LinkedObject'):
|
elif prop in ('Placement','Shape'):
|
||||||
self.setupAxis()
|
self.setupAxis()
|
||||||
|
|
||||||
_AxisGroup = None
|
_AxisGroup = None
|
||||||
_Axis = None
|
_Axis = None
|
||||||
_AxisMap = {'X':0,'Y':1,'Z':2}
|
_AxisMap = {'X':0,'Y':1,'Z':2}
|
||||||
|
|
||||||
def isCSVisible(self):
|
def showCS(self):
|
||||||
if self.ViewObject.ShowCS or gui.AsmCmdManager.ShowElementCS:
|
if self.ViewObject.ShowCS or gui.AsmCmdManager.ShowElementCS:
|
||||||
return True
|
return True
|
||||||
obj = self.ViewObject.Object.getLinkedObject(True)
|
return utils.isInfinite(self.ViewObject.Object.Shape)
|
||||||
return obj and \
|
|
||||||
obj.isDerivedFrom('PartDesign::ViewProviderDatumCoordinateSystem')
|
|
||||||
|
|
||||||
def getElementPicked(self,pp):
|
def getElementPicked(self,pp):
|
||||||
vobj = self.ViewObject
|
vobj = self.ViewObject
|
||||||
|
@ -1103,7 +1101,7 @@ class ViewProviderAsmElement(ViewProviderAsmOnTop):
|
||||||
def setupAxis(self):
|
def setupAxis(self):
|
||||||
vobj = self.ViewObject
|
vobj = self.ViewObject
|
||||||
switch = getattr(self,'axisNode',None)
|
switch = getattr(self,'axisNode',None)
|
||||||
if not self.isCSVisible():
|
if not self.showCS():
|
||||||
if switch:
|
if switch:
|
||||||
switch.whichChild = -1
|
switch.whichChild = -1
|
||||||
return
|
return
|
||||||
|
@ -1115,7 +1113,7 @@ class ViewProviderAsmElement(ViewProviderAsmOnTop):
|
||||||
switch.addChild(node)
|
switch.addChild(node)
|
||||||
trans = coin.SoTransform()
|
trans = coin.SoTransform()
|
||||||
node.addChild(trans)
|
node.addChild(trans)
|
||||||
node.addChild(self.getAxis())
|
node.addChild(ViewProviderAsmElement.getAxis())
|
||||||
self.axisNode = switch
|
self.axisNode = switch
|
||||||
self.transNode = trans
|
self.transNode = trans
|
||||||
vobj.RootNode.addChild(switch)
|
vobj.RootNode.addChild(switch)
|
||||||
|
|
7
utils.py
7
utils.py
|
@ -80,6 +80,13 @@ def deduceSelectedElement(obj,subname):
|
||||||
if count==1:
|
if count==1:
|
||||||
return 'Vertex1'
|
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):
|
def getElementShape(obj,tp=None,transform=False,noElementMap=True):
|
||||||
if not isinstance(obj,(tuple,list)):
|
if not isinstance(obj,(tuple,list)):
|
||||||
shape = obj
|
shape = obj
|
||||||
|
|
Loading…
Reference in New Issue
Block a user