feat: initial commit for cable normalizer blender addon
This commit is contained in:
26
operators_get.py
Normal file
26
operators_get.py
Normal file
@@ -0,0 +1,26 @@
|
||||
import bpy
|
||||
|
||||
class KABECK_OT_get_diameter(bpy.types.Operator):
|
||||
bl_idname = "kabeck.get_diameter"
|
||||
bl_label = "Set Target from Selected"
|
||||
bl_description = "Measures the selected cable and sets the Target Diameter to its exact size"
|
||||
|
||||
def execute(self, context):
|
||||
from . import utils
|
||||
obj = context.active_object
|
||||
if not obj or obj.type != 'MESH':
|
||||
self.report({'ERROR'}, "Select a cable first")
|
||||
return {'CANCELLED'}
|
||||
|
||||
depsgraph = context.evaluated_depsgraph_get()
|
||||
eval_obj = obj.evaluated_get(depsgraph)
|
||||
dims = [eval_obj.dimensions.x, eval_obj.dimensions.y, eval_obj.dimensions.z]
|
||||
dims.sort()
|
||||
|
||||
internal_scale = utils.get_internal_scale()
|
||||
# Convert internal units back to mm for the UI
|
||||
diam_mm = dims[1] / internal_scale if dims[1] > 0.0001 else 13.8
|
||||
|
||||
context.scene.normalizer_target_diameter = diam_mm
|
||||
self.report({'INFO'}, f"Target Diameter set to {diam_mm:.2f} mm")
|
||||
return {'FINISHED'}
|
||||
Reference in New Issue
Block a user