3D-Print: reduce the scope of mesh_helpers module

This commit is contained in:
Mikhail Rachinskiy 2021-05-17 22:31:32 +04:00
parent 7eff774b98
commit 5ff6d0c453
2 changed files with 24 additions and 8 deletions

View File

@ -21,7 +21,7 @@
bl_info = {
"name": "3D-Print Toolbox",
"author": "Campbell Barton",
"blender": (2, 82, 0),
"blender": (3, 0, 0),
"location": "3D View > Sidebar",
"description": "Utilities for 3D printing",
"doc_url": "{BLENDER_MANUAL_URL}/addons/mesh/3d_print_toolbox.html",
@ -34,7 +34,8 @@ if "bpy" in locals():
import importlib
importlib.reload(ui)
importlib.reload(operators)
importlib.reload(mesh_helpers)
if "mesh_helpers" in locals():
importlib.reload(mesh_helpers)
if "export" in locals():
importlib.reload(export)
else:

View File

@ -31,10 +31,7 @@ from bpy.props import (
)
import bmesh
from . import (
mesh_helpers,
report,
)
from . import report
def clean_float(text: str) -> str:
@ -48,8 +45,8 @@ def clean_float(text: str) -> str:
return text
def get_unit(unit_system, unit) -> tuple[float, str]:
# Returns unit length relative to meter and symbol
def get_unit(unit_system: str, unit: str) -> tuple[float, str]:
# Returns unit length relative to meter and unit symbol
units = {
"METRIC": {
@ -84,6 +81,8 @@ class MESH_OT_print3d_info_volume(Operator):
bl_description = "Report the volume of the active mesh"
def execute(self, context):
from . import mesh_helpers
scene = context.scene
unit = scene.unit_settings
scale = 1.0 if unit.system == 'NONE' else unit.scale_length
@ -113,6 +112,8 @@ class MESH_OT_print3d_info_area(Operator):
bl_description = "Report the surface area of the active mesh"
def execute(self, context):
from . import mesh_helpers
scene = context.scene
unit = scene.unit_settings
scale = 1.0 if unit.system == 'NONE' else unit.scale_length
@ -164,6 +165,7 @@ class MESH_OT_print3d_check_solid(Operator):
@staticmethod
def main_check(obj, info):
import array
from . import mesh_helpers
bm = mesh_helpers.bmesh_copy_from_object(obj, transform=False, triangulate=False)
@ -189,6 +191,8 @@ class MESH_OT_print3d_check_intersections(Operator):
@staticmethod
def main_check(obj, info):
from . import mesh_helpers
faces_intersect = mesh_helpers.bmesh_check_self_intersect_object(obj)
info.append((f"Intersect Face: {len(faces_intersect)}", (bmesh.types.BMFace, faces_intersect)))
@ -207,6 +211,7 @@ class MESH_OT_print3d_check_degenerate(Operator):
@staticmethod
def main_check(obj, info):
import array
from . import mesh_helpers
scene = bpy.context.scene
print_3d = scene.print_3d
@ -234,6 +239,7 @@ class MESH_OT_print3d_check_distorted(Operator):
@staticmethod
def main_check(obj, info):
import array
from . import mesh_helpers
scene = bpy.context.scene
print_3d = scene.print_3d
@ -265,6 +271,8 @@ class MESH_OT_print3d_check_thick(Operator):
@staticmethod
def main_check(obj, info):
from . import mesh_helpers
scene = bpy.context.scene
print_3d = scene.print_3d
@ -282,6 +290,8 @@ class MESH_OT_print3d_check_sharp(Operator):
@staticmethod
def main_check(obj, info):
from . import mesh_helpers
scene = bpy.context.scene
print_3d = scene.print_3d
angle_sharp = print_3d.angle_sharp
@ -309,6 +319,7 @@ class MESH_OT_print3d_check_overhang(Operator):
@staticmethod
def main_check(obj, info):
from mathutils import Vector
from . import mesh_helpers
scene = bpy.context.scene
print_3d = scene.print_3d
@ -382,6 +393,8 @@ class MESH_OT_print3d_clean_distorted(Operator):
)
def execute(self, context):
from . import mesh_helpers
obj = context.active_object
bm = mesh_helpers.bmesh_from_object(obj)
bm.normal_update()
@ -646,6 +659,8 @@ class MESH_OT_print3d_scale_to_volume(Operator):
def invoke(self, context, event):
def calc_volume(obj):
from . import mesh_helpers
bm = mesh_helpers.bmesh_copy_from_object(obj, apply_modifiers=True)
volume = bm.calc_volume(signed=True)
bm.free()