1 # ##### BEGIN GPL LICENSE BLOCK #####
3 # This program is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU General Public License
5 # as published by the Free Software Foundation; either version 2
6 # of the License, or (at your option) any later version.
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License for more details.
13 # You should have received a copy of the GNU General Public License
14 # along with this program; if not, write to the Free Software Foundation,
15 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 # ##### END GPL LICENSE BLOCK #####
22 "name": "3D Print Toolbox",
23 "author": "Campbell Barton",
24 "blender": (2, 65, 0),
25 "location": "3D View > Toolbox",
26 "description": "Utilities for 3D printing",
28 "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.6/Py/"
29 "Scripts/Modeling/PrintToolbox",
31 "support": 'OFFICIAL',
41 from bpy
.props
import (StringProperty
,
49 from bpy
.types
import (Operator
,
54 from . import operators
58 class Print3DSettings(PropertyGroup
):
59 export_format
= EnumProperty(
61 description
="Format type to export to",
62 items
=(('STL', "STL", ""),
69 use_export_texture
= BoolProperty(
71 description
="Copy textures on export to the output path",
74 use_apply_scale
= BoolProperty(
76 description
="Apply scene scale setting on export",
79 export_path
= StringProperty(
80 name
="Export Directory",
81 description
="Path to directory where the files are created",
82 default
="//", maxlen
=1024, subtype
="DIR_PATH",
84 thickness_min
= FloatProperty(
86 description
="Minimum thickness",
91 threshold_zero
= FloatProperty(
93 description
="Limit for checking zero area/length",
98 angle_distort
= FloatProperty(
100 description
="Limit for checking distorted faces",
102 default
=math
.radians(45.0),
103 min=0.0, max=math
.radians(180.0),
105 angle_sharp
= FloatProperty(
108 default
=math
.radians(160.0),
109 min=0.0, max=math
.radians(180.0),
111 angle_overhang
= FloatProperty(
114 default
=math
.radians(45.0),
115 min=0.0, max=math
.radians(90.0),
119 ui
.Print3DToolBarObject
,
120 ui
.Print3DToolBarMesh
,
122 operators
.Print3DInfoVolume
,
123 operators
.Print3DInfoArea
,
125 operators
.Print3DCheckDegenerate
,
126 operators
.Print3DCheckDistorted
,
127 operators
.Print3DCheckSolid
,
128 operators
.Print3DCheckIntersections
,
129 operators
.Print3DCheckThick
,
130 operators
.Print3DCheckSharp
,
131 operators
.Print3DCheckOverhang
,
132 operators
.Print3DCheckAll
,
134 operators
.Print3DCleanIsolated
,
135 operators
.Print3DCleanDistorted
,
136 operators
.Print3DCleanThin
,
138 operators
.Print3DSelectReport
,
140 operators
.Print3DScaleToVolume
,
141 operators
.Print3DScaleToBounds
,
143 operators
.Print3DExport
,
151 bpy
.utils
.register_class(cls
)
153 bpy
.types
.Scene
.print_3d
= PointerProperty(type=Print3DSettings
)
158 bpy
.utils
.unregister_class(cls
)
160 del bpy
.types
.Scene
.print_3d