Rename self.obj attribute to self.Object

This commit is contained in:
Zheng, Lei 2017-10-18 18:09:30 +08:00
parent 65abe89d1d
commit 80c89ef0a2
2 changed files with 47 additions and 44 deletions

View File

@ -1,14 +1,17 @@
import os import os
from collections import namedtuple from collections import namedtuple
import FreeCAD, FreeCADGui import FreeCAD, FreeCADGui
import asm3
import asm3.utils as utils import asm3.utils as utils
from asm3.utils import logger, objName from asm3.utils import logger, objName
from asm3.constraint import Constraint from asm3.constraint import Constraint
from asm3.system import System from asm3.system import System
def setupUndo(doc,undoDocs,name='Assembly3 solve'): def setupUndo(doc,undoDocs,name):
if doc in undoDocs: if doc.HasPendingTransaction or doc in undoDocs:
return return
if not name:
name = 'Assembly solve'
doc.openTransaction(name) doc.openTransaction(name)
undoDocs.add(doc) undoDocs.add(doc)
@ -32,7 +35,7 @@ def getProxy(obj,tp):
class AsmBase(object): class AsmBase(object):
def __init__(self): def __init__(self):
self.obj = None self.Object = None
def __getstate__(self): def __getstate__(self):
return return
@ -46,7 +49,7 @@ class AsmBase(object):
def linkSetup(self,obj): def linkSetup(self,obj):
assert getattr(obj,'Proxy',None)==self assert getattr(obj,'Proxy',None)==self
self.obj = obj self.Object = obj
return return
def getViewProviderName(self,_obj): def getViewProviderName(self,_obj):
@ -90,10 +93,10 @@ class AsmGroup(AsmBase):
self.setGroupMode() self.setGroupMode()
def setGroupMode(self): def setGroupMode(self):
self.obj.GroupMode = 1 # auto delete children self.Object.GroupMode = 1 # auto delete children
self.obj.setPropertyStatus('GroupMode','Hidden') self.Object.setPropertyStatus('GroupMode','Hidden')
self.obj.setPropertyStatus('GroupMode','Immutable') self.Object.setPropertyStatus('GroupMode','Immutable')
self.obj.setPropertyStatus('GroupMode','Transient') self.Object.setPropertyStatus('GroupMode','Transient')
def attach(self,obj): def attach(self,obj):
obj.addProperty("App::PropertyLinkList","Group","Base",'') obj.addProperty("App::PropertyLinkList","Group","Base",'')
@ -103,10 +106,12 @@ class AsmGroup(AsmBase):
class ViewProviderAsmGroup(ViewProviderAsmBase): class ViewProviderAsmGroup(ViewProviderAsmBase):
def claimChildren(self): def claimChildren(self):
return self.ViewObject.Object.Group return self.ViewObject.Object.Group
def doubleClicked(self):
return False
class AsmPartGroup(AsmGroup): class AsmPartGroup(AsmGroup):
def __init__(self,parent): def __init__(self,parent):
@ -163,23 +168,23 @@ class AsmElement(AsmBase):
if ret: if ret:
return ret return ret
self.shape = None self.shape = None
self.shape = self.obj.getSubObject('') self.shape = self.Object.getSubObject('')
return self.shape return self.shape
def getAssembly(self): def getAssembly(self):
return self.parent.parent return self.parent.parent
def getSubElement(self): def getSubElement(self):
link = self.obj.LinkedObject link = self.Object.LinkedObject
if isinstance(link,tuple): if isinstance(link,tuple):
return link[1].split('.')[-1] return link[1].split('.')[-1]
return '' return ''
def getSubName(self): def getSubName(self):
link = self.obj.LinkedObject link = self.Object.LinkedObject
if not isinstance(link,tuple): if not isinstance(link,tuple):
raise RuntimeError('Invalid element link "{}"'.format( raise RuntimeError('Invalid element link "{}"'.format(
objName(self.obj))) objName(self.Object)))
return link[1] return link[1]
def setLink(self,owner,subname): def setLink(self,owner,subname):
@ -187,7 +192,7 @@ class AsmElement(AsmBase):
# assembly # assembly
# check old linked object for auto re-label # check old linked object for auto re-label
obj = self.obj obj = self.Object
linked = obj.getLinkedObject(False) linked = obj.getLinkedObject(False)
if linked and linked!=obj: if linked and linked!=obj:
label = '{}_{}_Element'.format(linked.Label,self.getSubElement()) label = '{}_{}_Element'.format(linked.Label,self.getSubElement())
@ -324,7 +329,7 @@ class AsmElementLink(AsmBase):
return self.parent.parent.parent return self.parent.parent.parent
def getElement(self): def getElement(self):
linked = self.obj.getLinkedObject(False) linked = self.Object.getLinkedObject(False)
if not linked: if not linked:
raise RuntimeError('Element link broken') raise RuntimeError('Element link broken')
if not isTypeOf(linked,AsmElement): if not isTypeOf(linked,AsmElement):
@ -332,10 +337,10 @@ class AsmElementLink(AsmBase):
return linked.Proxy return linked.Proxy
def getSubName(self): def getSubName(self):
link = self.obj.LinkedObject link = self.Object.LinkedObject
if not isinstance(link,tuple): if not isinstance(link,tuple):
raise RuntimeError('Invalid element link "{}"'.format( raise RuntimeError('Invalid element link "{}"'.format(
objName(self.obj))) objName(self.Object)))
return link[1] return link[1]
def getShapeSubName(self): def getShapeSubName(self):
@ -379,7 +384,7 @@ class AsmElementLink(AsmBase):
if not ret: if not ret:
# It is from a non assembly child part, then use our own element # It is from a non assembly child part, then use our own element
# group as the holder for elements # group as the holder for elements
ret = [Assembly.Info(assembly.obj,owner,subname)] ret = [Assembly.Info(assembly.Object,owner,subname)]
if not isTypeOf(ret[-1].Object,AsmPartGroup): if not isTypeOf(ret[-1].Object,AsmPartGroup):
raise RuntimeError('Invalid element link ' + subname) raise RuntimeError('Invalid element link ' + subname)
@ -388,7 +393,7 @@ class AsmElementLink(AsmBase):
# element if there is one # element if there is one
element = AsmElement.make(AsmElement.Selection( element = AsmElement.make(AsmElement.Selection(
ret[-1].Assembly,None,ret[-1].Subname)) ret[-1].Assembly,None,ret[-1].Subname))
if ret[-1].Assembly == assembly.obj: if ret[-1].Assembly == assembly.Object:
return (assembly.getElementGroup(),element.Name+'.') return (assembly.getElementGroup(),element.Name+'.')
elementSub = ret[-1].Object.Name + '.' + ret[-1].Subname elementSub = ret[-1].Object.Name + '.' + ret[-1].Subname
@ -399,7 +404,7 @@ class AsmElementLink(AsmBase):
return (owner,sub) return (owner,sub)
def setLink(self,owner,subname): def setLink(self,owner,subname):
obj = self.obj obj = self.Object
obj.setLink(*self.prepareLink(owner,subname)) obj.setLink(*self.prepareLink(owner,subname))
linked = obj.getLinkedObject(False) linked = obj.getLinkedObject(False)
if linked and linked!=obj: if linked and linked!=obj:
@ -419,7 +424,7 @@ class AsmElementLink(AsmBase):
if ret: if ret:
return ret return ret
self.info = None self.info = None
if not getattr(self,'obj',None): if not getattr(self,'Object',None):
return return
assembly = self.getAssembly() assembly = self.getAssembly()
subname = self.getShapeSubName() subname = self.getShapeSubName()
@ -429,7 +434,7 @@ class AsmElementLink(AsmBase):
part = partGroup.getSubObject(names[0]+'.',1) part = partGroup.getSubObject(names[0]+'.',1)
if not part: if not part:
raise RuntimeError('Eelement link "{}" borken: {}'.format( raise RuntimeError('Eelement link "{}" borken: {}'.format(
objName(self.obj),subname)) objName(self.Object),subname))
# For storing the shape of the element with proper transformation # For storing the shape of the element with proper transformation
shape = None shape = None
@ -440,8 +445,8 @@ class AsmElementLink(AsmBase):
obj = None obj = None
if not isTypeOf(part,Assembly,True) and \ if not isTypeOf(part,Assembly,True) and \
not Constraint.isDisabled(self.parent.obj) and \ not Constraint.isDisabled(self.parent.Object) and \
not Constraint.isLocked(self.parent.obj): not Constraint.isLocked(self.parent.Object):
getter = getattr(part.getLinkedObject(True), getter = getattr(part.getLinkedObject(True),
'getLinkExtProperty',None) 'getLinkExtProperty',None)
@ -483,7 +488,7 @@ class AsmElementLink(AsmBase):
pla = part[0].PlacementList[idx] pla = part[0].PlacementList[idx]
except ValueError: except ValueError:
raise RuntimeError('invalid array subname of element ' raise RuntimeError('invalid array subname of element '
'{}: {}'.format(objName(self.obj),subname)) '{}: {}'.format(objName(self.Object),subname))
partName = '{}.{}.'.format(part[0].Name,idx) partName = '{}.{}.'.format(part[0].Name,idx)
@ -509,7 +514,7 @@ class AsmElementLink(AsmBase):
return self.info return self.info
@staticmethod @staticmethod
def setPlacement(part,pla,undoDocs): def setPlacement(part,pla,undoDocs,undoName):
''' '''
called by solver after solving to adjust the placement. called by solver after solving to adjust the placement.
@ -518,13 +523,13 @@ class AsmElementLink(AsmBase):
''' '''
if isinstance(part,tuple): if isinstance(part,tuple):
if isinstance(part[1],int): if isinstance(part[1],int):
setupUndo(part[0].Document,undoDocs) setupUndo(part[0].Document,undoDocs,undoName)
part[0].PlacementList = {part[1]:pla} part[0].PlacementList = {part[1]:pla}
else: else:
setupUndo(part[1].Document,undoDocs) setupUndo(part[1].Document,undoDocs,undoName)
part[1].Placement = pla part[1].Placement = pla
else: else:
setupUndo(part.Document,undoDocs) setupUndo(part.Document,undoDocs,undoName)
part.Placement = pla part.Placement = pla
MakeInfo = namedtuple('AsmElementLinkSelection', MakeInfo = namedtuple('AsmElementLinkSelection',
@ -539,8 +544,8 @@ class AsmElementLink(AsmBase):
element.Proxy.setLink(info.Owner,info.Subname) element.Proxy.setLink(info.Owner,info.Subname)
return element return element
def setPlacement(part,pla,undoDocs): def setPlacement(part,pla,undoDocs,undoName=None):
AsmElementLink.setPlacement(part,pla,undoDocs) AsmElementLink.setPlacement(part,pla,undoDocs,undoName)
class ViewProviderAsmElementLink(ViewProviderAsmBase): class ViewProviderAsmElementLink(ViewProviderAsmBase):
@ -558,7 +563,7 @@ class AsmConstraint(AsmGroup):
def checkSupport(self): def checkSupport(self):
# this function maybe called during document restore, hence the # this function maybe called during document restore, hence the
# extensive check below # extensive check below
obj = getattr(self,'obj',None) obj = getattr(self,'Object',None)
if not obj: if not obj:
return return
if Constraint.isLocked(obj) or \ if Constraint.isLocked(obj) or \
@ -570,7 +575,7 @@ class AsmConstraint(AsmGroup):
parent = getattr(parent,'parent',None) parent = getattr(parent,'parent',None)
if not parent: if not parent:
return return
assembly = getattr(parent,'obj',None) assembly = getattr(parent,'Object',None)
if not assembly or \ if not assembly or \
System.isConstraintSupported(assembly,Constraint.getTypeName(obj)): System.isConstraintSupported(assembly,Constraint.getTypeName(obj)):
return return
@ -602,7 +607,7 @@ class AsmConstraint(AsmGroup):
def getElements(self,refresh=False): def getElements(self,refresh=False):
if refresh: if refresh:
self.elements = None self.elements = None
obj = getattr(self,'obj',None) obj = getattr(self,'Object',None)
if not obj: if not obj:
return return
ret = getattr(self,'elements',None) ret = getattr(self,'elements',None)
@ -790,7 +795,7 @@ class ViewProviderAsmElementGroup(ViewProviderAsmBase):
def dropObjectEx(self,vobj,_obj,_owner,subname): def dropObjectEx(self,vobj,_obj,_owner,subname):
AsmElement.make(AsmElement.Selection( AsmElement.make(AsmElement.Selection(
vobj.Object.Proxy.parent.obj,None,subname)) vobj.Object.Proxy.parent.Object,None,subname))
BuildShapeNone = 'None' BuildShapeNone = 'None'
@ -823,7 +828,7 @@ class Assembly(AsmGroup):
def buildShape(self): def buildShape(self):
import Part import Part
obj = self.obj obj = self.Object
if obj.BuildShape == BuildShapeNone: if obj.BuildShape == BuildShapeNone:
obj.Shape = Part.Shape() obj.Shape = Part.Shape()
return return
@ -889,7 +894,7 @@ class Assembly(AsmGroup):
super(Assembly,self).onChanged(obj,prop) super(Assembly,self).onChanged(obj,prop)
def getConstraintGroup(self, create=False): def getConstraintGroup(self, create=False):
obj = self.obj obj = self.Object
try: try:
ret = obj.Group[0] ret = obj.Group[0]
checkType(ret,AsmConstraintGroup) checkType(ret,AsmConstraintGroup)
@ -928,7 +933,7 @@ class Assembly(AsmGroup):
return self.constraints return self.constraints
def getElementGroup(self,create=False): def getElementGroup(self,create=False):
obj = self.obj obj = self.Object
if create: if create:
# make sure previous group exists # make sure previous group exists
self.getConstraintGroup(True) self.getConstraintGroup(True)
@ -950,7 +955,7 @@ class Assembly(AsmGroup):
return ret return ret
def getPartGroup(self,create=False): def getPartGroup(self,create=False):
obj = self.obj obj = self.Object
if create: if create:
# make sure previous group exists # make sure previous group exists
self.getElementGroup(True) self.getElementGroup(True)
@ -1098,5 +1103,3 @@ class ViewProviderAssembly(ViewProviderAsmGroup):
def getIcon(self): def getIcon(self):
return System.getIcon(self.ViewObject.Object) return System.getIcon(self.ViewObject.Object)

View File

@ -34,7 +34,7 @@ class _AlgoBase(with_metaclass(_AlgoType,object)):
NeedJacobian = True NeedJacobian = True
def __init__(self,obj): def __init__(self,obj):
self.obj = obj self.Object = obj
@classmethod @classmethod
def getName(cls): def getName(cls):
@ -45,14 +45,14 @@ class _AlgoBase(with_metaclass(_AlgoType,object)):
ret = {} ret = {}
for key in self._common_options + self._options: for key in self._common_options + self._options:
name = _AlgoType.getPropertyInfo(key).Name name = _AlgoType.getPropertyInfo(key).Name
v = getattr(self.obj,name,None) v = getattr(self.Object,name,None)
if v: if v:
ret[name] = v ret[name] = v
return ret return ret
@property @property
def Tolerance(self): def Tolerance(self):
tol = self.obj.Tolerance tol = self.Object.Tolerance
return tol if tol else None return tol if tol else None
@classmethod @classmethod