forked from youen/assembly_handbook
fixed bugs with variant links
This commit is contained in:
parent
bae89072be
commit
9cf0944570
@ -110,12 +110,12 @@ class TechDrawExtensions:
|
|||||||
parts_to_paint.append(part)
|
parts_to_paint.append(part)
|
||||||
|
|
||||||
# repaint parts that are new in this step (thick line)
|
# repaint parts that are new in this step (thick line)
|
||||||
|
prev_view = None
|
||||||
if 'Assembly_handbook_PreviousStepView' in view.PropertiesList:
|
if 'Assembly_handbook_PreviousStepView' in view.PropertiesList:
|
||||||
prev_view = doc.getObject(view.Assembly_handbook_PreviousStepView)
|
prev_view = doc.getObject(view.Assembly_handbook_PreviousStepView)
|
||||||
if prev_view is not None:
|
for part in view.XSource:
|
||||||
for part in view.XSource:
|
if (prev_view is None or part not in prev_view.XSource) and part not in parts_to_paint:
|
||||||
if part not in prev_view.XSource and part not in parts_to_paint:
|
parts_to_paint.append(part)
|
||||||
parts_to_paint.append(part)
|
|
||||||
|
|
||||||
# make sure the list is not empty, so that we reset all lines
|
# make sure the list is not empty, so that we reset all lines
|
||||||
if len(parts_to_paint) == 0:
|
if len(parts_to_paint) == 0:
|
||||||
@ -125,7 +125,7 @@ class TechDrawExtensions:
|
|||||||
default_line_thickness = 0.05
|
default_line_thickness = 0.05
|
||||||
line_thickness = default_line_thickness
|
line_thickness = default_line_thickness
|
||||||
|
|
||||||
default_color = (0.65, 0.65, 0.65)
|
default_color = (0.5, 0.5, 0.5)
|
||||||
color = default_color
|
color = default_color
|
||||||
|
|
||||||
if part is not None:
|
if part is not None:
|
||||||
@ -133,12 +133,9 @@ class TechDrawExtensions:
|
|||||||
|
|
||||||
center = self.computePartCenter(view, part)
|
center = self.computePartCenter(view, part)
|
||||||
|
|
||||||
if 'Assembly_handbook_PreviousStepView' in view.PropertiesList:
|
if self.isNewPartInView(view, part):
|
||||||
prev_view = doc.getObject(view.Assembly_handbook_PreviousStepView)
|
line_thickness = 0.2
|
||||||
if prev_view is not None:
|
color = (0, 0, 0)
|
||||||
if not part in prev_view.XSource:
|
|
||||||
line_thickness = 0.2
|
|
||||||
color = (0, 0, 0)
|
|
||||||
|
|
||||||
if self.enable_selected_part_highlight:
|
if self.enable_selected_part_highlight:
|
||||||
for balloon in selected_balloons:
|
for balloon in selected_balloons:
|
||||||
@ -344,9 +341,16 @@ class TechDrawExtensions:
|
|||||||
balloon.ViewObject.Fontsize = 4
|
balloon.ViewObject.Fontsize = 4
|
||||||
balloon.BubbleShape = 'Inspection'
|
balloon.BubbleShape = 'Inspection'
|
||||||
balloon.EndTypeScale = 4
|
balloon.EndTypeScale = 4
|
||||||
|
|
||||||
|
def isPartLink(self, obj):
|
||||||
|
if obj.TypeId == 'App::Link':
|
||||||
|
return True
|
||||||
|
if obj.TypeId == 'Part::FeaturePython' and hasattr(obj, 'LinkedObject'): # variant link
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
def getPartDisplayName(self, obj):
|
def getPartDisplayName(self, obj):
|
||||||
if obj.TypeId == 'App::Link':
|
if self.isPartLink(obj):
|
||||||
linked_obj = obj.LinkedObject
|
linked_obj = obj.LinkedObject
|
||||||
if 'Assembly_handbook_PartDisplayName' in linked_obj.PropertiesList:
|
if 'Assembly_handbook_PartDisplayName' in linked_obj.PropertiesList:
|
||||||
return linked_obj.Assembly_handbook_PartDisplayName
|
return linked_obj.Assembly_handbook_PartDisplayName
|
||||||
@ -356,12 +360,16 @@ class TechDrawExtensions:
|
|||||||
|
|
||||||
def isNewPartInView(self, view, obj):
|
def isNewPartInView(self, view, obj):
|
||||||
doc = view.Document
|
doc = view.Document
|
||||||
|
prev_view = None
|
||||||
if 'Assembly_handbook_PreviousStepView' in view.PropertiesList:
|
if 'Assembly_handbook_PreviousStepView' in view.PropertiesList:
|
||||||
prev_view = doc.getObject(view.Assembly_handbook_PreviousStepView)
|
prev_view = doc.getObject(view.Assembly_handbook_PreviousStepView)
|
||||||
if prev_view is not None:
|
|
||||||
if not obj in prev_view.XSource:
|
if prev_view is None:
|
||||||
return True
|
return True
|
||||||
return False
|
else:
|
||||||
|
if not obj in prev_view.XSource:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
def getActivePage(self):
|
def getActivePage(self):
|
||||||
activeView = Gui.activeView()
|
activeView = Gui.activeView()
|
||||||
@ -421,7 +429,7 @@ class TechDrawExtensions:
|
|||||||
objectCenterWorld = partLink.LinkPlacement.Matrix.multiply(partLink.LinkedObject.Shape.CenterOfGravity)
|
objectCenterWorld = partLink.LinkPlacement.Matrix.multiply(partLink.LinkedObject.Shape.CenterOfGravity)
|
||||||
elif obj.TypeId == 'Part::FeaturePython' and hasattr(obj, 'LinkedObject'): # variant link
|
elif obj.TypeId == 'Part::FeaturePython' and hasattr(obj, 'LinkedObject'): # variant link
|
||||||
partLink = obj
|
partLink = obj
|
||||||
objectCenterWorld = partLink.LinkedObject.Shape.CenterOfGravity
|
objectCenterWorld = partLink.Placement.Matrix.multiply(partLink.LinkedObject.Shape.CenterOfGravity)
|
||||||
else:
|
else:
|
||||||
objectCenterWorld = obj.Shape.CenterOfGravity
|
objectCenterWorld = obj.Shape.CenterOfGravity
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user