blendercam/scripts/addons/fabex/ui/__init__.py

117 wiersze
3.5 KiB
Python

2024-10-22 20:19:27 +00:00
"""Fabex 'ui.__init__.py' © 2012 Vilem Novak
Import UI, Register and Unregister Classes
"""
2024-10-22 21:35:36 +00:00
import bpy
2024-11-01 19:57:09 +00:00
from bpy.props import PointerProperty
2024-10-22 21:35:36 +00:00
2024-10-27 17:54:48 +00:00
from .menus.import_gcode import TOPBAR_MT_import_gcode
from .menus.curve_creators import VIEW3D_MT_tools_add, VIEW3D_MT_tools_create
from .menus.curve_tools import VIEW3D_MT_tools_curvetools
2024-12-19 13:56:59 +00:00
from .menus.preset_menus import (
CAM_CUTTER_MT_presets,
CAM_MACHINE_MT_presets,
CAM_OPERATION_MT_presets,
)
2024-10-27 17:54:48 +00:00
from .menus.viewport import Fabex_SubMenu, Fabex_Menu
2024-12-19 13:56:59 +00:00
from .panels.area_panel import CAM_AREA_Panel
from .panels.blank_panel import CAM_BLANK_Panel
from .panels.chains_panel import (
2024-10-22 20:19:27 +00:00
CAM_CHAINS_Panel,
CAM_UL_chains,
CAM_UL_operations,
)
from .panels.curve_create_panel import VIEW3D_PT_tools_create
from .panels.curve_tools_panel import VIEW3D_PT_tools_curvetools
from .panels.cutter_panel import CAM_CUTTER_Panel
from .panels.feedrate_panel import CAM_FEEDRATE_Panel
from .panels.gcode_panel import CAM_GCODE_Panel
from .panels.info_panel import CAM_INFO_Panel
from .panels.machine_panel import CAM_MACHINE_Panel
from .panels.material_panel import CAM_MATERIAL_Panel
from .panels.movement_panel import CAM_MOVEMENT_Panel
from .panels.op_properties_panel import CAM_OPERATION_PROPERTIES_Panel
from .panels.operations_panel import CAM_OPERATIONS_Panel
from .panels.optimisation_panel import CAM_OPTIMISATION_Panel
from .panels.popup_panel import CAM_Popup_Panel
2024-11-05 16:14:13 +00:00
2024-10-22 20:19:27 +00:00
from .pie_menu.pie_cam import VIEW3D_MT_PIE_CAM
from .pie_menu.pie_chains import VIEW3D_MT_PIE_Chains
from .pie_menu.pie_pack_slice_relief import VIEW3D_MT_PIE_PackSliceRelief
2024-10-29 20:58:51 +00:00
from .pie_menu.pie_operation import VIEW3D_MT_PIE_Operation
2024-12-19 13:56:59 +00:00
2024-10-22 20:19:27 +00:00
classes = [
2024-10-27 17:54:48 +00:00
# .menus
TOPBAR_MT_import_gcode,
VIEW3D_MT_tools_add,
VIEW3D_MT_tools_create,
VIEW3D_MT_tools_curvetools,
Fabex_SubMenu,
Fabex_Menu,
2024-12-19 13:56:59 +00:00
CAM_CUTTER_MT_presets,
CAM_OPERATION_MT_presets,
CAM_MACHINE_MT_presets,
2024-10-22 20:19:27 +00:00
# .viewport_ui and .panels - the order will affect the layout
2024-10-29 20:58:51 +00:00
CAM_BLANK_Panel,
2024-10-22 20:19:27 +00:00
CAM_UL_operations,
CAM_UL_chains,
CAM_CHAINS_Panel,
CAM_OPERATIONS_Panel,
2024-10-29 20:58:51 +00:00
CAM_INFO_Panel,
2024-10-22 20:19:27 +00:00
CAM_MATERIAL_Panel,
CAM_OPERATION_PROPERTIES_Panel,
CAM_OPTIMISATION_Panel,
CAM_AREA_Panel,
CAM_MOVEMENT_Panel,
CAM_FEEDRATE_Panel,
CAM_CUTTER_Panel,
CAM_GCODE_Panel,
CAM_MACHINE_Panel,
2024-10-29 20:58:51 +00:00
CAM_Popup_Panel,
2024-10-22 20:19:27 +00:00
VIEW3D_PT_tools_curvetools,
VIEW3D_PT_tools_create,
2024-10-29 20:58:51 +00:00
# .pie_menu
2024-10-22 20:19:27 +00:00
VIEW3D_MT_PIE_CAM,
VIEW3D_MT_PIE_Operation,
VIEW3D_MT_PIE_Chains,
VIEW3D_MT_PIE_PackSliceRelief,
]
2024-10-29 20:58:51 +00:00
def progress_bar(self, context):
progress = context.window_manager.progress
percent = int(progress * 100)
if progress > 0:
layout = self.layout
row = layout.row()
row.scale_x = 2
row.progress(
factor=progress,
text=f"Processing... {percent}%",
2024-10-29 20:58:51 +00:00
)
2024-10-27 17:54:48 +00:00
2024-10-22 20:19:27 +00:00
def register():
for cls in classes:
bpy.utils.register_class(cls)
2024-11-01 19:57:09 +00:00
bpy.types.VIEW3D_HT_header.append(progress_bar)
2024-10-27 17:54:48 +00:00
bpy.types.TOPBAR_MT_file_import.append(TOPBAR_MT_import_gcode.draw)
bpy.types.VIEW3D_MT_curve_add.append(VIEW3D_MT_tools_add.draw)
bpy.types.VIEW3D_MT_editor_menus.append(Fabex_Menu.draw)
2024-10-29 20:58:51 +00:00
bpy.types.WindowManager.progress = bpy.props.FloatProperty(default=0)
2024-10-22 20:19:27 +00:00
def unregister():
for cls in classes:
bpy.utils.unregister_class(cls)
2024-10-27 17:54:48 +00:00
2024-10-29 20:58:51 +00:00
bpy.types.VIEW3D_HT_header.remove(progress_bar)
2024-10-27 17:54:48 +00:00
bpy.types.TOPBAR_MT_file_import.remove(TOPBAR_MT_import_gcode.draw)
bpy.types.VIEW3D_MT_curve_add.remove(VIEW3D_MT_tools_add.draw)
bpy.types.VIEW3D_MT_editor_menus.remove(Fabex_Menu.draw)