diff --git a/lattice2AttachablePlacement.py b/lattice2AttachablePlacement.py index 6a31329..c503a07 100644 --- a/lattice2AttachablePlacement.py +++ b/lattice2AttachablePlacement.py @@ -130,12 +130,17 @@ class AttachedPlacementSubsequence(lattice2BaseFeature.LatticeFeature): created = self.assureProperty(selfobj, 'App::PropertyEnumeration', 'ReferencePlacementOption', - ['origin', 'inherit', 'first placement', 'last placement'], + ['external', 'origin', 'inherit', 'first placement', 'last placement'], "Lattice Attached Placement Subsequence", "Reference placement, corresponds to the original occurrence of the object to be populated. 'inherit' = use reference placement of the base attached placement." ) if created: selfobj.ReferencePlacementOption = 'inherit' + + def recomputeReferencePlm(self, selfobj, selfplacements): #override + if selfobj.ReferencePlacementOption == 'external': + super(AttachedPlacementSubsequence, self).recomputeReferencePlm(selfobj, selfplacements) + #the remaining options are handled in derivedExecute def derivedExecute(self,obj): attacher = Part.AttachEngine(screen(obj.Base).AttacherType) @@ -157,7 +162,9 @@ class AttachedPlacementSubsequence(lattice2BaseFeature.LatticeFeature): #reference ref = obj.ReferencePlacementOption - if ref == 'origin': + if ref == 'external': + pass #gets done in recomputeReferencePlm + elif ref == 'origin': self.setReferencePlm(obj, None) elif ref == 'inherit': self.setReferencePlm(obj, lattice2BaseFeature.getReferencePlm(obj.Base)) diff --git a/lattice2LinearArray.py b/lattice2LinearArray.py index 56258cd..020fc38 100644 --- a/lattice2LinearArray.py +++ b/lattice2LinearArray.py @@ -109,7 +109,7 @@ class LinearArray(lattice2BaseFeature.LatticeFeature): created = self.assureProperty(selfobj, 'App::PropertyEnumeration', 'ReferencePlacementOption', - ['origin', 'SpanStart', 'SpanEnd', 'at custom value', 'first placement', 'last placement'], + ['external', 'origin', 'SpanStart', 'SpanEnd', 'at custom value', 'first placement', 'last placement'], "Lattice Array", "Reference placement, corresponds to the original occurrence of the object to be populated." ) @@ -117,6 +117,11 @@ class LinearArray(lattice2BaseFeature.LatticeFeature): selfobj.ReferencePlacementOption = 'SpanStart' self.assureProperty(selfobj, 'App::PropertyDistance', 'ReferenceValue', 0.0, "Lattice Array", "Sets the value to use for generating ReferencePlacement. This value sets, what coordinate the object to be populated corresponds to.") + def recomputeReferencePlm(self, selfobj, selfplacements): #override + if selfobj.ReferencePlacementOption == 'external': + super(LinearArray, self).recomputeReferencePlm(selfobj, selfplacements) + #the remaining options are handled in derivedExecute + def derivedExecute(self,obj): self.assureGenerator(obj) self.updateReadonlyness(obj) @@ -188,7 +193,9 @@ class LinearArray(lattice2BaseFeature.LatticeFeature): # update reference placement ref = obj.ReferencePlacementOption - if ref == 'origin': + if ref == 'external': + pass + elif ref == 'origin': self.setReferencePlm(obj, None) elif ref == 'SpanStart': self.setReferencePlm(obj, plmByVal(float(obj.SpanStart))) diff --git a/lattice2PolarArray2.py b/lattice2PolarArray2.py index cecd199..36fe2aa 100644 --- a/lattice2PolarArray2.py +++ b/lattice2PolarArray2.py @@ -93,7 +93,7 @@ class PolarArray(APlm.AttachableFeature): created = self.assureProperty(selfobj, 'App::PropertyEnumeration', 'ReferencePlacementOption', - ['origin', 'center', 'SpanStart', 'SpanEnd', 'at custom value', 'first placement', 'last placement'], + ['external', 'origin', 'center', 'SpanStart', 'SpanEnd', 'at custom value', 'first placement', 'last placement'], "Polar Array", "Reference placement, corresponds to the original occurrence of the object to be populated." ) @@ -129,6 +129,11 @@ class PolarArray(APlm.AttachableFeature): sub = sub[0] #resolve the link return fetchArc(lnkobj, sub) + + def recomputeReferencePlm(self, selfobj, selfplacements): #override + if selfobj.ReferencePlacementOption == 'external': + super(PolarArray, self).recomputeReferencePlm(selfobj, selfplacements) + #the remaining options are handled in derivedExecute def derivedExecute(self,selfobj): self.assureGenerator(selfobj) @@ -221,7 +226,9 @@ class PolarArray(APlm.AttachableFeature): # update reference placement ref = selfobj.ReferencePlacementOption - if ref == 'origin': + if ref == 'external': + pass #gets done in recomputeReferencePlm + elif ref == 'origin': self.setReferencePlm(selfobj, None) elif ref == 'center': self.setReferencePlm(selfobj, App.Placement())