From e749a7b6e60f683dc6fae58574d3d64efd8a2b3b Mon Sep 17 00:00:00 2001 From: migo101 Date: Tue, 13 Jun 2023 20:15:22 +0200 Subject: [PATCH] Added levels for all panels --- scripts/addons/cam/ui.py | 86 +------------------ scripts/addons/cam/ui_panels/area.py | 1 + scripts/addons/cam/ui_panels/cutter.py | 1 + scripts/addons/cam/ui_panels/feedrate.py | 1 + scripts/addons/cam/ui_panels/gcode.py | 47 ++++++++++ scripts/addons/cam/ui_panels/info.py | 2 +- scripts/addons/cam/ui_panels/machine.py | 1 + scripts/addons/cam/ui_panels/material.py | 1 + scripts/addons/cam/ui_panels/movement.py | 1 + scripts/addons/cam/ui_panels/op_properties.py | 1 + scripts/addons/cam/ui_panels/operations.py | 1 + scripts/addons/cam/ui_panels/optimisation.py | 1 + scripts/addons/cam/ui_panels/pack.py | 29 +++++++ scripts/addons/cam/ui_panels/slice.py | 24 ++++++ 14 files changed, 113 insertions(+), 84 deletions(-) create mode 100644 scripts/addons/cam/ui_panels/gcode.py create mode 100644 scripts/addons/cam/ui_panels/pack.py create mode 100644 scripts/addons/cam/ui_panels/slice.py diff --git a/scripts/addons/cam/ui.py b/scripts/addons/cam/ui.py index 44f6050..1652862 100644 --- a/scripts/addons/cam/ui.py +++ b/scripts/addons/cam/ui.py @@ -47,6 +47,9 @@ from cam.ui_panels.movement import * from cam.ui_panels.feedrate import * from cam.ui_panels.optimisation import * from cam.ui_panels.area import * +from cam.ui_panels.gcode import * +from cam.ui_panels.pack import * +from cam.ui_panels.slice import * class CAM_UL_orientations(UIList): @@ -60,89 +63,6 @@ class CAM_UL_orientations(UIList): -class CAM_GCODE_Panel(CAMButtonsPanel, bpy.types.Panel): - """CAM operation g-code options panel""" - bl_label = "CAM g-code options " - bl_idname = "WORLD_PT_CAM_GCODE" - - COMPAT_ENGINES = {'BLENDERCAM_RENDER'} - - def draw(self, context): - layout = self.layout - scene = bpy.context.scene - if len(scene.cam_operations) == 0: - layout.label(text='Add operation first') - if len(scene.cam_operations) > 0: - ao = scene.cam_operations[scene.cam_active_operation] - if ao.valid: - layout.prop(ao, 'output_header') - - if ao.output_header: - layout.prop(ao, 'gcode_header') - layout.prop(ao, 'output_trailer') - if ao.output_trailer: - layout.prop(ao, 'gcode_trailer') - layout.prop(ao, 'enable_dust') - if ao.enable_dust: - layout.prop(ao, 'gcode_start_dust_cmd') - layout.prop(ao, 'gcode_stop_dust_cmd') - layout.prop(ao, 'enable_hold') - if ao.enable_hold: - layout.prop(ao, 'gcode_start_hold_cmd') - layout.prop(ao, 'gcode_stop_hold_cmd') - layout.prop(ao, 'enable_mist') - if ao.enable_mist: - layout.prop(ao, 'gcode_start_mist_cmd') - layout.prop(ao, 'gcode_stop_mist_cmd') - - else: - layout.label(text='Enable Show experimental features') - layout.label(text='in Blender CAM Addon preferences') - - -class CAM_PACK_Panel(CAMButtonsPanel, bpy.types.Panel): - """CAM material panel""" - bl_label = "Pack curves on sheet" - bl_idname = "WORLD_PT_CAM_PACK" - - COMPAT_ENGINES = {'BLENDERCAM_RENDER'} - - def draw(self, context): - layout = self.layout - scene = bpy.context.scene - settings = scene.cam_pack - layout.label(text='warning - algorithm is slow.') - layout.label(text='only for curves now.') - - layout.operator("object.cam_pack_objects") - layout.prop(settings, 'sheet_fill_direction') - layout.prop(settings, 'sheet_x') - layout.prop(settings, 'sheet_y') - layout.prop(settings, 'distance') - layout.prop(settings, 'tolerance') - layout.prop(settings, 'rotate') - if settings.rotate: - layout.prop(settings, 'rotate_angle') - - -class CAM_SLICE_Panel(CAMButtonsPanel, bpy.types.Panel): - """CAM slicer panel""" - bl_label = "Slice model to plywood sheets" - bl_idname = "WORLD_PT_CAM_SLICE" - - COMPAT_ENGINES = {'BLENDERCAM_RENDER'} - - def draw(self, context): - layout = self.layout - scene = bpy.context.scene - settings = scene.cam_slice - - layout.operator("object.cam_slice_objects") - layout.prop(settings, 'slice_distance') - layout.prop(settings, 'slice_above0') - layout.prop(settings, 'slice_3d') - layout.prop(settings, 'indexes') - # panel containing all tools diff --git a/scripts/addons/cam/ui_panels/area.py b/scripts/addons/cam/ui_panels/area.py index b38999f..8b5e6c0 100644 --- a/scripts/addons/cam/ui_panels/area.py +++ b/scripts/addons/cam/ui_panels/area.py @@ -6,6 +6,7 @@ class CAM_AREA_Panel(CAMButtonsPanel, bpy.types.Panel): """CAM operation area panel""" bl_label = "CAM operation area " bl_idname = "WORLD_PT_CAM_OPERATION_AREA" + panel_interface_level = 0 COMPAT_ENGINES = {'BLENDERCAM_RENDER'} diff --git a/scripts/addons/cam/ui_panels/cutter.py b/scripts/addons/cam/ui_panels/cutter.py index e933cbe..6152e9c 100644 --- a/scripts/addons/cam/ui_panels/cutter.py +++ b/scripts/addons/cam/ui_panels/cutter.py @@ -7,6 +7,7 @@ class CAM_CUTTER_Panel(CAMButtonsPanel, bpy.types.Panel): """CAM cutter panel""" bl_label = " " bl_idname = "WORLD_PT_CAM_CUTTER" + panel_interface_level = 0 COMPAT_ENGINES = {'BLENDERCAM_RENDER'} diff --git a/scripts/addons/cam/ui_panels/feedrate.py b/scripts/addons/cam/ui_panels/feedrate.py index 7c1f113..f60d6dd 100644 --- a/scripts/addons/cam/ui_panels/feedrate.py +++ b/scripts/addons/cam/ui_panels/feedrate.py @@ -5,6 +5,7 @@ class CAM_FEEDRATE_Panel(CAMButtonsPanel, bpy.types.Panel): """CAM feedrate panel""" bl_label = "CAM feedrate" bl_idname = "WORLD_PT_CAM_FEEDRATE" + panel_interface_level = 0 COMPAT_ENGINES = {'BLENDERCAM_RENDER'} diff --git a/scripts/addons/cam/ui_panels/gcode.py b/scripts/addons/cam/ui_panels/gcode.py new file mode 100644 index 0000000..2eb8cd0 --- /dev/null +++ b/scripts/addons/cam/ui_panels/gcode.py @@ -0,0 +1,47 @@ + +import bpy +from cam.ui_panels.buttons_panel import CAMButtonsPanel + + +class CAM_GCODE_Panel(CAMButtonsPanel, bpy.types.Panel): + """CAM operation g-code options panel""" + bl_label = "CAM g-code options " + bl_idname = "WORLD_PT_CAM_GCODE" + panel_interface_level = 2 + + COMPAT_ENGINES = {'BLENDERCAM_RENDER'} + + def draw(self, context): + layout = self.layout + scene = bpy.context.scene + if len(scene.cam_operations) == 0: + layout.label(text='Add operation first') + if len(scene.cam_operations) > 0: + ao = scene.cam_operations[scene.cam_active_operation] + if ao.valid: + layout.prop(ao, 'output_header') + + if ao.output_header: + layout.prop(ao, 'gcode_header') + layout.prop(ao, 'output_trailer') + if ao.output_trailer: + layout.prop(ao, 'gcode_trailer') + layout.prop(ao, 'enable_dust') + if ao.enable_dust: + layout.prop(ao, 'gcode_start_dust_cmd') + layout.prop(ao, 'gcode_stop_dust_cmd') + layout.prop(ao, 'enable_hold') + if ao.enable_hold: + layout.prop(ao, 'gcode_start_hold_cmd') + layout.prop(ao, 'gcode_stop_hold_cmd') + layout.prop(ao, 'enable_mist') + if ao.enable_mist: + layout.prop(ao, 'gcode_start_mist_cmd') + layout.prop(ao, 'gcode_stop_mist_cmd') + + else: + layout.label(text='Enable Show experimental features') + layout.label(text='in Blender CAM Addon preferences') + + + diff --git a/scripts/addons/cam/ui_panels/info.py b/scripts/addons/cam/ui_panels/info.py index 5292ed7..2b94deb 100644 --- a/scripts/addons/cam/ui_panels/info.py +++ b/scripts/addons/cam/ui_panels/info.py @@ -28,9 +28,9 @@ class CAM_INFO_Properties(bpy.types.PropertyGroup): class CAM_INFO_Panel(CAMButtonsPanel, bpy.types.Panel): - """CAM info panel""" bl_label = "CAM info & warnings" bl_idname = "WORLD_PT_CAM_INFO" + panel_interface_level = 1 COMPAT_ENGINES = {'BLENDERCAM_RENDER'} diff --git a/scripts/addons/cam/ui_panels/machine.py b/scripts/addons/cam/ui_panels/machine.py index a348777..3c41926 100644 --- a/scripts/addons/cam/ui_panels/machine.py +++ b/scripts/addons/cam/ui_panels/machine.py @@ -7,6 +7,7 @@ class CAM_MACHINE_Panel(CAMButtonsPanel, bpy.types.Panel): bl_label = " " bl_idname = "WORLD_PT_CAM_MACHINE" always_show_panel = True + panel_interface_level = 0 COMPAT_ENGINES = {'BLENDERCAM_RENDER'} diff --git a/scripts/addons/cam/ui_panels/material.py b/scripts/addons/cam/ui_panels/material.py index e29d7d6..024a9ba 100644 --- a/scripts/addons/cam/ui_panels/material.py +++ b/scripts/addons/cam/ui_panels/material.py @@ -64,6 +64,7 @@ class CAM_MATERIAL_PositionObject(bpy.types.Operator): bl_idname = "object.material_cam_position" bl_label = "position object for CAM operation" bl_options = {'REGISTER', 'UNDO'} + panel_interface_level = 0 def execute(self, context): s = bpy.context.scene diff --git a/scripts/addons/cam/ui_panels/movement.py b/scripts/addons/cam/ui_panels/movement.py index 5e73c32..7a24c77 100644 --- a/scripts/addons/cam/ui_panels/movement.py +++ b/scripts/addons/cam/ui_panels/movement.py @@ -108,6 +108,7 @@ class CAM_MOVEMENT_Panel(CAMButtonsPanel, bpy.types.Panel): """CAM movement panel""" bl_label = "CAM movement" bl_idname = "WORLD_PT_CAM_MOVEMENT" + panel_interface_level = 2 def draw_cut_type(self): self.layout.prop(self.op.movement, 'type') diff --git a/scripts/addons/cam/ui_panels/op_properties.py b/scripts/addons/cam/ui_panels/op_properties.py index b6f79ae..66a99cd 100644 --- a/scripts/addons/cam/ui_panels/op_properties.py +++ b/scripts/addons/cam/ui_panels/op_properties.py @@ -7,6 +7,7 @@ class CAM_OPERATION_PROPERTIES_Panel(CAMButtonsPanel, bpy.types.Panel): """CAM operation properties panel""" bl_label = "CAM operation setup" bl_idname = "WORLD_PT_CAM_OPERATION" + panel_interface_level = 0 COMPAT_ENGINES = {'BLENDERCAM_RENDER'} diff --git a/scripts/addons/cam/ui_panels/operations.py b/scripts/addons/cam/ui_panels/operations.py index 82b2b92..7f29012 100644 --- a/scripts/addons/cam/ui_panels/operations.py +++ b/scripts/addons/cam/ui_panels/operations.py @@ -16,6 +16,7 @@ class CAM_OPERATIONS_Panel(CAMButtonsPanel, bpy.types.Panel): bl_label = "CAM operations" bl_idname = "WORLD_PT_CAM_OPERATIONS" always_show_panel = True + panel_interface_level = 0 # Main draw function def draw(self, context): diff --git a/scripts/addons/cam/ui_panels/optimisation.py b/scripts/addons/cam/ui_panels/optimisation.py index e326719..05c3a55 100644 --- a/scripts/addons/cam/ui_panels/optimisation.py +++ b/scripts/addons/cam/ui_panels/optimisation.py @@ -51,6 +51,7 @@ class CAM_OPTIMISATION_Panel(CAMButtonsPanel, bpy.types.Panel): """CAM optimisation panel""" bl_label = "CAM optimisation" bl_idname = "WORLD_PT_CAM_OPTIMISATION" + panel_interface_level = 2 COMPAT_ENGINES = {'BLENDERCAM_RENDER'} diff --git a/scripts/addons/cam/ui_panels/pack.py b/scripts/addons/cam/ui_panels/pack.py new file mode 100644 index 0000000..6dc48b8 --- /dev/null +++ b/scripts/addons/cam/ui_panels/pack.py @@ -0,0 +1,29 @@ + +import bpy +from cam.ui_panels.buttons_panel import CAMButtonsPanel + + +class CAM_PACK_Panel(CAMButtonsPanel, bpy.types.Panel): + """CAM material panel""" + bl_label = "Pack curves on sheet" + bl_idname = "WORLD_PT_CAM_PACK" + panel_interface_level = 2 + + COMPAT_ENGINES = {'BLENDERCAM_RENDER'} + + def draw(self, context): + layout = self.layout + scene = bpy.context.scene + settings = scene.cam_pack + layout.label(text='warning - algorithm is slow.') + layout.label(text='only for curves now.') + + layout.operator("object.cam_pack_objects") + layout.prop(settings, 'sheet_fill_direction') + layout.prop(settings, 'sheet_x') + layout.prop(settings, 'sheet_y') + layout.prop(settings, 'distance') + layout.prop(settings, 'tolerance') + layout.prop(settings, 'rotate') + if settings.rotate: + layout.prop(settings, 'rotate_angle') diff --git a/scripts/addons/cam/ui_panels/slice.py b/scripts/addons/cam/ui_panels/slice.py new file mode 100644 index 0000000..602da9c --- /dev/null +++ b/scripts/addons/cam/ui_panels/slice.py @@ -0,0 +1,24 @@ + +import bpy +from cam.ui_panels.buttons_panel import CAMButtonsPanel + + +class CAM_SLICE_Panel(CAMButtonsPanel, bpy.types.Panel): + """CAM slicer panel""" + bl_label = "Slice model to plywood sheets" + bl_idname = "WORLD_PT_CAM_SLICE" + panel_interface_level = 2 + + COMPAT_ENGINES = {'BLENDERCAM_RENDER'} + + def draw(self, context): + layout = self.layout + scene = bpy.context.scene + settings = scene.cam_slice + + layout.operator("object.cam_slice_objects") + layout.prop(settings, 'slice_distance') + layout.prop(settings, 'slice_above0') + layout.prop(settings, 'slice_3d') + layout.prop(settings, 'indexes') +