From ab17559a29bc304271d9edbfa870741fcf37ecf0 Mon Sep 17 00:00:00 2001 From: "Salvador E. Tropea" Date: Fri, 5 Jan 2024 07:04:58 -0300 Subject: [PATCH] [Blender export][Fixed] Problems when no point of view was defined - The default view wasn't translated. - Now translated - Now the render script defaults to 0 rotation if the view is unknown Fixes #546 --- CHANGELOG.md | 1 + kibot/blender_scripts/blender_export.py | 2 ++ kibot/out_blender_export.py | 5 ++++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a9107a9..f1d0bca1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -117,6 +117,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Rotations are now applied to the current view, not just the top view - Board/components not visible for small boards (See #484) - Light type names (extra space) (#505) + - Problems when no point of view was defined (#546) - update_xml with check_pcb_parity enabled: - Avoid errors for KiCad 6 using "Exclude from BoM" components. This limitation isn't found on KiCad 7. (#486) diff --git a/kibot/blender_scripts/blender_export.py b/kibot/blender_scripts/blender_export.py index 86e7f257..c46f9dee 100644 --- a/kibot/blender_scripts/blender_export.py +++ b/kibot/blender_scripts/blender_export.py @@ -93,6 +93,8 @@ def do_point_of_view(scene, name): return (0, 90, 90) if view == 'X': return (0, -90, -90) + print(f'Unknown view `{view}`') + return (0, 0, 0) def srgb_to_linearrgb(c): diff --git a/kibot/out_blender_export.py b/kibot/out_blender_export.py index 2de8aa9f..4afd1f96 100644 --- a/kibot/out_blender_export.py +++ b/kibot/out_blender_export.py @@ -396,7 +396,10 @@ class Blender_ExportOptions(BaseOptions): self.render_options = BlenderRenderOptions() # Point of View, make sure we have a list and at least 1 element if isinstance(self.point_of_view, type): - self.point_of_view = [BlenderPointOfViewOptions()] + pov = BlenderPointOfViewOptions() + # Manually translate top -> z + pov.view = 'z' + self.point_of_view = [pov] elif isinstance(self.point_of_view, BlenderPointOfViewOptions): self.point_of_view = [self.point_of_view]