1 # SPDX-License-Identifier: GPL-2.0-or-later
4 "name": "3D-Print Toolbox",
5 "author": "Campbell Barton",
7 "location": "3D View > Sidebar",
8 "description": "Utilities for 3D printing",
9 "doc_url": "{BLENDER_MANUAL_URL}/addons/mesh/3d_print_toolbox.html",
10 "support": 'OFFICIAL',
18 importlib
.reload(operators
)
19 if "mesh_helpers" in locals():
20 importlib
.reload(mesh_helpers
)
21 if "export" in locals():
22 importlib
.reload(export
)
27 from bpy
.types
import PropertyGroup
28 from bpy
.props
import (
42 class SceneProperties(PropertyGroup
):
43 use_alignxy_face_area
: BoolProperty(
45 description
="Normalize normals proportional to face areas",
49 export_format
: EnumProperty(
51 description
="Format type to export to",
60 use_export_texture
: BoolProperty(
62 description
="Copy textures on export to the output path",
65 use_apply_scale
: BoolProperty(
67 description
="Apply scene scale setting on export",
70 use_data_layers
: BoolProperty(
73 "Export normals, UVs, vertex colors and materials for formats that support it "
74 "significantly increasing file size"
77 export_path
: StringProperty(
78 name
="Export Directory",
79 description
="Path to directory where the files are created",
84 thickness_min
: FloatProperty(
86 description
="Minimum thickness",
92 threshold_zero
: FloatProperty(
94 description
="Limit for checking zero area/length",
100 angle_distort
: FloatProperty(
102 description
="Limit for checking distorted faces",
104 default
=math
.radians(45.0),
106 max=math
.radians(180.0),
108 angle_sharp
: FloatProperty(
111 default
=math
.radians(160.0),
113 max=math
.radians(180.0),
115 angle_overhang
: FloatProperty(
118 default
=math
.radians(45.0),
120 max=math
.radians(90.0),
127 ui
.VIEW3D_PT_print3d_analyze
,
128 ui
.VIEW3D_PT_print3d_cleanup
,
129 ui
.VIEW3D_PT_print3d_transform
,
130 ui
.VIEW3D_PT_print3d_export
,
132 operators
.MESH_OT_print3d_info_volume
,
133 operators
.MESH_OT_print3d_info_area
,
134 operators
.MESH_OT_print3d_check_degenerate
,
135 operators
.MESH_OT_print3d_check_distorted
,
136 operators
.MESH_OT_print3d_check_solid
,
137 operators
.MESH_OT_print3d_check_intersections
,
138 operators
.MESH_OT_print3d_check_thick
,
139 operators
.MESH_OT_print3d_check_sharp
,
140 operators
.MESH_OT_print3d_check_overhang
,
141 operators
.MESH_OT_print3d_check_all
,
142 operators
.MESH_OT_print3d_clean_distorted
,
143 # operators.MESH_OT_print3d_clean_thin,
144 operators
.MESH_OT_print3d_clean_non_manifold
,
145 operators
.MESH_OT_print3d_select_report
,
146 operators
.MESH_OT_print3d_scale_to_volume
,
147 operators
.MESH_OT_print3d_scale_to_bounds
,
148 operators
.MESH_OT_print3d_align_to_xy
,
149 operators
.MESH_OT_print3d_export
,
155 bpy
.utils
.register_class(cls
)
157 bpy
.types
.Scene
.print_3d
= PointerProperty(type=SceneProperties
)
162 bpy
.utils
.unregister_class(cls
)
164 del bpy
.types
.Scene
.print_3d