Browse Source

Improved performances and fixed bugs

dev/better-annotations
Youen 2 years ago
parent
commit
e5c06a5796
  1. 18
      ahb_cmd_new_step.py
  2. 29
      ahb_cmd_view_annotate.py
  3. 3
      ahb_raster_view.py
  4. 5
      ahb_techdraw_extensions.py

18
ahb_cmd_new_step.py

@ -32,7 +32,8 @@ class AHB_New_Step:
if prev_view is None: if prev_view is None:
step_number = 1 step_number = 1
keep_updated = False keep_updated = True
raster_view = True
template_file_name = freecad_path + '/share/Mod/TechDraw/Templates/A4_Landscape_blank.svg' template_file_name = freecad_path + '/share/Mod/TechDraw/Templates/A4_Landscape_blank.svg'
parent_group = None parent_group = None
else: else:
@ -41,6 +42,12 @@ class AHB_New_Step:
if prev_page_group is not None: if prev_page_group is not None:
parent_group = prev_page_group.getParentGroup() parent_group = prev_page_group.getParentGroup()
keep_updated = prev_page.KeepUpdated keep_updated = prev_page.KeepUpdated
try:
raster_view = prev_page.Assembly_handbook_RasterView
except:
raster_view = True
if raster_view:
keep_updated = False
template_file_name = prev_page.Template.Template template_file_name = prev_page.Template.Template
numbers = re.findall(r'\d+', prev_page.Label) numbers = re.findall(r'\d+', prev_page.Label)
if len(numbers) == 0: prev_number = 0 if len(numbers) == 0: prev_number = 0
@ -65,6 +72,9 @@ class AHB_New_Step:
view.Perspective = False view.Perspective = False
view.addProperty("App::PropertyString", "Assembly_handbook_PreviousStepView", "Assembly_handbook") view.addProperty("App::PropertyString", "Assembly_handbook_PreviousStepView", "Assembly_handbook")
view.addProperty("App::PropertyBool", "Assembly_handbook_RasterView", "Assembly_handbook") view.addProperty("App::PropertyBool", "Assembly_handbook_RasterView", "Assembly_handbook")
view.Assembly_handbook_RasterView = raster_view
if raster_view:
view.Visibility = False
if prev_view is None: if prev_view is None:
try: try:
workbench.techDrawExtensions.setCurrentViewDirection(view) workbench.techDrawExtensions.setCurrentViewDirection(view)
@ -81,7 +91,11 @@ class AHB_New_Step:
view.XSource = prev_view.XSource view.XSource = prev_view.XSource
page.addView(view) page.addView(view)
view.recompute()
if raster_view:
view.purgeTouched()
else:
view.recompute()
# search for views after the prev view to relink them after the new view (i.e. we insert the new view as an intermediate step) # search for views after the prev view to relink them after the new view (i.e. we insert the new view as an intermediate step)
# TODO: re-number next steps if needed # TODO: re-number next steps if needed

29
ahb_cmd_view_annotate.py

@ -54,28 +54,29 @@ class AHB_View_Annotate:
# Create a new balloon if needed # Create a new balloon if needed
if balloon is None: if balloon is None:
partName = partLink.Name if workbench.techDrawExtensions.isNewPartInView(view, partLink):
partName = partLink.Name
balloonName = partName + "_Balloon" balloonName = partName + "_Balloon"
balloon = doc.addObject("TechDraw::DrawViewBalloon", balloonName) balloon = doc.addObject("TechDraw::DrawViewBalloon", balloonName)
balloon.SourceView = overlay_view balloon.SourceView = overlay_view
balloon.addProperty("App::PropertyXLink", "Assembly_handbook_Source", "Assembly_handbook") balloon.addProperty("App::PropertyXLink", "Assembly_handbook_Source", "Assembly_handbook")
balloon.Assembly_handbook_Source = (partLink, partLink.Name) balloon.Assembly_handbook_Source = (partLink, partLink.Name)
balloon.addProperty("App::PropertyFloat", "Assembly_handbook_OriginOffsetX", "Assembly_handbook") balloon.addProperty("App::PropertyFloat", "Assembly_handbook_OriginOffsetX", "Assembly_handbook")
balloon.addProperty("App::PropertyFloat", "Assembly_handbook_OriginOffsetY", "Assembly_handbook") balloon.addProperty("App::PropertyFloat", "Assembly_handbook_OriginOffsetY", "Assembly_handbook")
page.addView(balloon) page.addView(balloon)
workbench.techDrawExtensions.updateBalloon(balloon) workbench.techDrawExtensions.updateBalloon(balloon)
balloon.X = int(balloon.OriginX) + 20 balloon.X = int(balloon.OriginX) + 20
balloon.Y = int(balloon.OriginY) + 20 balloon.Y = int(balloon.OriginY) + 20
if not workbench.techDrawExtensions.isNewPartInView(view, partLink): if not workbench.techDrawExtensions.isNewPartInView(view, partLink):
balloon.ViewObject.Visibility = False balloon.ViewObject.Visibility = False
else: else:
workbench.techDrawExtensions.updateBalloon(balloon) workbench.techDrawExtensions.updateBalloon(balloon)

3
ahb_raster_view.py

@ -183,7 +183,8 @@ class RasterView:
self.image_view.Assembly_handbook_ViewVolumeHeight = viewVolume.getHeight() self.image_view.Assembly_handbook_ViewVolumeHeight = viewVolume.getHeight()
self.image_view.Assembly_handbook_ViewVolumeDepth = viewVolume.getDepth() self.image_view.Assembly_handbook_ViewVolumeDepth = viewVolume.getDepth()
docView.saveImage(self.image_file_name, 4096, 4096, "#ffffff") max_res = 4096
docView.saveImage(self.image_file_name, int(min(max_res, viewVolume.getWidth() * view.Scale * 10)), int(min(max_res, viewVolume.getHeight() * view.Scale * 10)), "#ffffff")
finally: finally:
for obj, props in objects_to_reset.items(): for obj, props in objects_to_reset.items():

5
ahb_techdraw_extensions.py

@ -150,7 +150,7 @@ class TechDrawExtensions:
overlay_frame = App.ActiveDocument.addObject("Part::Part2DObjectPython", overlay_frame_name) overlay_frame = App.ActiveDocument.addObject("Part::Part2DObjectPython", overlay_frame_name)
Draft.Wire(overlay_frame) Draft.Wire(overlay_frame)
pos = raster_view.projectImageViewPointTo3D(App.Vector(0,0,0)) pos = raster_view.projectImageViewPointTo3D(App.Vector(0,0,0))
pos2 = raster_view.projectImageViewPointTo3D(App.Vector(0,0.0001,1)) pos2 = raster_view.projectImageViewPointTo3D(App.Vector(0.001,0.001,1))
overlay_frame.Points = [pos, pos2] overlay_frame.Points = [pos, pos2]
Draft.ViewProviderWire(overlay_frame.ViewObject) Draft.ViewProviderWire(overlay_frame.ViewObject)
overlay_frame.recompute() overlay_frame.recompute()
@ -161,7 +161,7 @@ class TechDrawExtensions:
overlay_frame2 = App.ActiveDocument.addObject("Part::Part2DObjectPython", overlay_frame2_name) overlay_frame2 = App.ActiveDocument.addObject("Part::Part2DObjectPython", overlay_frame2_name)
Draft.Wire(overlay_frame2) Draft.Wire(overlay_frame2)
pos = raster_view.projectImageViewPointTo3D(App.Vector(1,1,0)) pos = raster_view.projectImageViewPointTo3D(App.Vector(1,1,0))
pos2 = raster_view.projectImageViewPointTo3D(App.Vector(1,1.0001,1)) pos2 = raster_view.projectImageViewPointTo3D(App.Vector(1.001,1.001,1))
overlay_frame2.Points = [pos, pos2] overlay_frame2.Points = [pos, pos2]
Draft.ViewProviderWire(overlay_frame2.ViewObject) Draft.ViewProviderWire(overlay_frame2.ViewObject)
overlay_frame2.recompute() overlay_frame2.recompute()
@ -205,7 +205,6 @@ class TechDrawExtensions:
balloon.ViewObject.Visibility = old_Visibility balloon.ViewObject.Visibility = old_Visibility
balloon.recompute() balloon.recompute()
page.KeepUpdated = True # once we have hidden the source view, there should be no performance issue
overlay.recompute() overlay.recompute()
page.recompute() page.recompute()
else: else:

Loading…
Cancel
Save