BoltFactory: Cleanup, Remove star imports
Bumped version to 0.3.2 Fix star imports Replace the star import of the createMesh with importlib reload in init Pep8 cleanup Fix crash with the Cap head type - props.DIV_COUNT was non existing
This commit is contained in:
parent
0f23407c39
commit
24e1555434
|
@ -18,199 +18,248 @@
|
|||
|
||||
|
||||
import bpy
|
||||
import mathutils
|
||||
from bpy.props import *
|
||||
from add_mesh_BoltFactory.createMesh import *
|
||||
from mathutils import Matrix
|
||||
from bpy.props import (
|
||||
BoolProperty,
|
||||
EnumProperty,
|
||||
FloatProperty,
|
||||
IntProperty,
|
||||
)
|
||||
from . import createMesh
|
||||
|
||||
##------------------------------------------------------------
|
||||
# calculates the matrix for the new object
|
||||
# depending on user pref
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# calculates the matrix for the new object depending on user pref
|
||||
def align_matrix(context):
|
||||
loc = mathutils.Matrix.Translation(context.scene.cursor_location)
|
||||
loc = Matrix.Translation(context.scene.cursor_location)
|
||||
obj_align = context.user_preferences.edit.object_align
|
||||
if (context.space_data.type == 'VIEW_3D'
|
||||
and obj_align == 'VIEW'):
|
||||
if (context.space_data.type == 'VIEW_3D' and obj_align == 'VIEW'):
|
||||
rot = context.space_data.region_3d.view_matrix.to_3x3().inverted().to_4x4()
|
||||
else:
|
||||
rot = mathutils.Matrix()
|
||||
rot = Matrix()
|
||||
align_matrix = loc * rot
|
||||
return align_matrix
|
||||
|
||||
|
||||
|
||||
class add_mesh_bolt(bpy.types.Operator):
|
||||
""""""
|
||||
bl_idname = "mesh.bolt_add"
|
||||
bl_label = "Add Bolt"
|
||||
bl_options = {'REGISTER', 'UNDO', 'PRESET'}
|
||||
bl_description = "adds many types of Bolts"
|
||||
bl_description = "Construct many types of Bolts"
|
||||
|
||||
align_matrix = mathutils.Matrix()
|
||||
align_matrix = Matrix()
|
||||
MAX_INPUT_NUMBER = 50
|
||||
|
||||
# edit - Whether to add or update.
|
||||
edit = BoolProperty(name="",
|
||||
# edit - Whether to add or update
|
||||
edit = BoolProperty(
|
||||
name="",
|
||||
description="",
|
||||
default=False,
|
||||
options={'HIDDEN'})
|
||||
|
||||
|
||||
#Model Types
|
||||
Model_Type_List = [('bf_Model_Bolt','BOLT','Bolt Model'),
|
||||
('bf_Model_Nut','NUT','Nut Model')]
|
||||
bf_Model_Type = EnumProperty( attr='bf_Model_Type',
|
||||
options={'HIDDEN'}
|
||||
)
|
||||
# Model Types
|
||||
Model_Type_List = [('bf_Model_Bolt', 'BOLT', 'Bolt Model'),
|
||||
('bf_Model_Nut', 'NUT', 'Nut Model')]
|
||||
bf_Model_Type = EnumProperty(
|
||||
attr='bf_Model_Type',
|
||||
name='Model',
|
||||
description='Choose the type off model you would like',
|
||||
items = Model_Type_List, default = 'bf_Model_Bolt')
|
||||
|
||||
#Head Types
|
||||
Model_Type_List = [('bf_Head_Hex','HEX','Hex Head'),
|
||||
('bf_Head_Cap','CAP','Cap Head'),
|
||||
('bf_Head_Dome','DOME','Dome Head'),
|
||||
('bf_Head_Pan','PAN','Pan Head'),
|
||||
('bf_Head_CounterSink','COUNTER SINK','Counter Sink Head')]
|
||||
bf_Head_Type = EnumProperty( attr='bf_Head_Type',
|
||||
items=Model_Type_List, default='bf_Model_Bolt'
|
||||
)
|
||||
# Head Types
|
||||
Model_Type_List = [('bf_Head_Hex', 'HEX', 'Hex Head'),
|
||||
('bf_Head_Cap', 'CAP', 'Cap Head'),
|
||||
('bf_Head_Dome', 'DOME', 'Dome Head'),
|
||||
('bf_Head_Pan', 'PAN', 'Pan Head'),
|
||||
('bf_Head_CounterSink', 'COUNTER SINK', 'Counter Sink Head')]
|
||||
bf_Head_Type = EnumProperty(
|
||||
attr='bf_Head_Type',
|
||||
name='Head',
|
||||
description='Choose the type off Head you would like',
|
||||
items = Model_Type_List, default = 'bf_Head_Hex')
|
||||
|
||||
#Bit Types
|
||||
Bit_Type_List = [('bf_Bit_None','NONE','No Bit Type'),
|
||||
('bf_Bit_Allen','ALLEN','Allen Bit Type'),
|
||||
('bf_Bit_Philips','PHILLIPS','Phillips Bit Type')]
|
||||
bf_Bit_Type = EnumProperty( attr='bf_Bit_Type',
|
||||
items=Model_Type_List, default='bf_Head_Hex'
|
||||
)
|
||||
# Bit Types
|
||||
Bit_Type_List = [('bf_Bit_None', 'NONE', 'No Bit Type'),
|
||||
('bf_Bit_Allen', 'ALLEN', 'Allen Bit Type'),
|
||||
('bf_Bit_Philips', 'PHILLIPS', 'Phillips Bit Type')]
|
||||
bf_Bit_Type = EnumProperty(
|
||||
attr='bf_Bit_Type',
|
||||
name='Bit Type',
|
||||
description='Choose the type of bit to you would like',
|
||||
items = Bit_Type_List, default = 'bf_Bit_None')
|
||||
|
||||
#Nut Types
|
||||
Nut_Type_List = [('bf_Nut_Hex','HEX','Hex Nut'),
|
||||
('bf_Nut_Lock','LOCK','Lock Nut')]
|
||||
bf_Nut_Type = EnumProperty( attr='bf_Nut_Type',
|
||||
items=Bit_Type_List, default='bf_Bit_None'
|
||||
)
|
||||
# Nut Types
|
||||
Nut_Type_List = [('bf_Nut_Hex', 'HEX', 'Hex Nut'),
|
||||
('bf_Nut_Lock', 'LOCK', 'Lock Nut')]
|
||||
bf_Nut_Type = EnumProperty(
|
||||
attr='bf_Nut_Type',
|
||||
name='Nut Type',
|
||||
description='Choose the type of nut you would like',
|
||||
items = Nut_Type_List, default = 'bf_Nut_Hex')
|
||||
|
||||
#Shank Types
|
||||
bf_Shank_Length = FloatProperty(attr='bf_Shank_Length',
|
||||
name='Shank Length', default = 0,
|
||||
min = 0, soft_min = 0, max = MAX_INPUT_NUMBER,
|
||||
description='Length of the unthreaded shank')
|
||||
|
||||
bf_Shank_Dia = FloatProperty(attr='bf_Shank_Dia',
|
||||
name='Shank Dia', default = 3,
|
||||
min = 0, soft_min = 0,max = MAX_INPUT_NUMBER,
|
||||
description='Diameter of the shank')
|
||||
|
||||
bf_Phillips_Bit_Depth = FloatProperty(attr='bf_Phillips_Bit_Depth',
|
||||
name='Bit Depth', default = 1.1431535482406616,
|
||||
min = 0, soft_min = 0,max = MAX_INPUT_NUMBER,
|
||||
description='Depth of the Phillips Bit')
|
||||
|
||||
bf_Allen_Bit_Depth = FloatProperty(attr='bf_Allen_Bit_Depth',
|
||||
name='Bit Depth', default = 1.5,
|
||||
min = 0, soft_min = 0,max = MAX_INPUT_NUMBER,
|
||||
description='Depth of the Allen Bit')
|
||||
|
||||
bf_Allen_Bit_Flat_Distance = FloatProperty( attr='bf_Allen_Bit_Flat_Distance',
|
||||
name='Flat Dist', default = 2.5,
|
||||
min = 0, soft_min = 0, max = MAX_INPUT_NUMBER,
|
||||
description='Flat Distance of the Allen Bit')
|
||||
|
||||
bf_Hex_Head_Height = FloatProperty( attr='bf_Hex_Head_Height',
|
||||
name='Head Height', default = 2,
|
||||
min = 0, soft_min = 0, max = MAX_INPUT_NUMBER,
|
||||
description='Height of the Hex Head')
|
||||
|
||||
bf_Hex_Head_Flat_Distance = FloatProperty( attr='bf_Hex_Head_Flat_Distance',
|
||||
name='Flat Dist', default = 5.5,
|
||||
min = 0, soft_min = 0, max = MAX_INPUT_NUMBER,
|
||||
description='Flat Distance of the Hex Head')
|
||||
|
||||
bf_CounterSink_Head_Dia = FloatProperty( attr='bf_CounterSink_Head_Dia',
|
||||
name='Head Dia', default = 5.5,
|
||||
min = 0, soft_min = 0, max = MAX_INPUT_NUMBER,
|
||||
description='Diameter of the Counter Sink Head')
|
||||
|
||||
bf_Cap_Head_Height = FloatProperty( attr='bf_Cap_Head_Height',
|
||||
name='Head Height', default = 5.5,
|
||||
min = 0, soft_min = 0, max = MAX_INPUT_NUMBER,
|
||||
description='Height of the Cap Head')
|
||||
|
||||
bf_Cap_Head_Dia = FloatProperty( attr='bf_Cap_Head_Dia',
|
||||
name='Head Dia', default = 3,
|
||||
min = 0, soft_min = 0, max = MAX_INPUT_NUMBER,
|
||||
description='Diameter of the Cap Head')
|
||||
|
||||
bf_Dome_Head_Dia = FloatProperty( attr='bf_Dome_Head_Dia',
|
||||
name='Dome Head Dia', default = 5.6,
|
||||
min = 0, soft_min = 0, max = MAX_INPUT_NUMBER,
|
||||
description='Length of the unthreaded shank')
|
||||
|
||||
bf_Pan_Head_Dia = FloatProperty( attr='bf_Pan_Head_Dia',
|
||||
name='Pan Head Dia', default = 5.6,
|
||||
min = 0, soft_min = 0, max = MAX_INPUT_NUMBER,
|
||||
items=Nut_Type_List, default='bf_Nut_Hex'
|
||||
)
|
||||
# Shank Types
|
||||
bf_Shank_Length = FloatProperty(
|
||||
attr='bf_Shank_Length',
|
||||
name='Shank Length', default=0,
|
||||
min=0, soft_min=0, max=MAX_INPUT_NUMBER,
|
||||
description='Length of the unthreaded shank'
|
||||
)
|
||||
bf_Shank_Dia = FloatProperty(
|
||||
attr='bf_Shank_Dia',
|
||||
name='Shank Dia', default=3,
|
||||
min=0, soft_min=0,
|
||||
max=MAX_INPUT_NUMBER,
|
||||
description='Diameter of the shank'
|
||||
)
|
||||
bf_Phillips_Bit_Depth = FloatProperty(
|
||||
attr='bf_Phillips_Bit_Depth',
|
||||
name='Bit Depth', default=1.1431535482406616,
|
||||
min=0, soft_min=0,
|
||||
max=MAX_INPUT_NUMBER,
|
||||
description='Depth of the Phillips Bit'
|
||||
)
|
||||
bf_Allen_Bit_Depth = FloatProperty(
|
||||
attr='bf_Allen_Bit_Depth',
|
||||
name='Bit Depth', default=1.5,
|
||||
min=0, soft_min=0,
|
||||
max=MAX_INPUT_NUMBER,
|
||||
description='Depth of the Allen Bit'
|
||||
)
|
||||
bf_Allen_Bit_Flat_Distance = FloatProperty(
|
||||
attr='bf_Allen_Bit_Flat_Distance',
|
||||
name='Flat Dist', default=2.5,
|
||||
min=0, soft_min=0,
|
||||
max=MAX_INPUT_NUMBER,
|
||||
description='Flat Distance of the Allen Bit'
|
||||
)
|
||||
bf_Hex_Head_Height = FloatProperty(
|
||||
attr='bf_Hex_Head_Height',
|
||||
name='Head Height', default=2,
|
||||
min=0, soft_min=0, max=MAX_INPUT_NUMBER,
|
||||
description='Height of the Hex Head'
|
||||
)
|
||||
bf_Hex_Head_Flat_Distance = FloatProperty(
|
||||
attr='bf_Hex_Head_Flat_Distance',
|
||||
name='Flat Dist', default=5.5,
|
||||
min=0, soft_min=0,
|
||||
max=MAX_INPUT_NUMBER,
|
||||
description='Flat Distance of the Hex Head'
|
||||
)
|
||||
bf_CounterSink_Head_Dia = FloatProperty(
|
||||
attr='bf_CounterSink_Head_Dia',
|
||||
name='Head Dia', default=5.5,
|
||||
min=0, soft_min=0,
|
||||
max=MAX_INPUT_NUMBER,
|
||||
description='Diameter of the Counter Sink Head'
|
||||
)
|
||||
bf_Cap_Head_Height = FloatProperty(
|
||||
attr='bf_Cap_Head_Height',
|
||||
name='Head Height', default=5.5,
|
||||
min=0, soft_min=0,
|
||||
max=MAX_INPUT_NUMBER,
|
||||
description='Height of the Cap Head'
|
||||
)
|
||||
bf_Cap_Head_Dia = FloatProperty(
|
||||
attr='bf_Cap_Head_Dia',
|
||||
name='Head Dia', default=3,
|
||||
min=0, soft_min=0,
|
||||
max=MAX_INPUT_NUMBER,
|
||||
description='Diameter of the Cap Head'
|
||||
)
|
||||
bf_Dome_Head_Dia = FloatProperty(
|
||||
attr='bf_Dome_Head_Dia',
|
||||
name='Dome Head Dia', default=5.6,
|
||||
min=0, soft_min=0,
|
||||
max=MAX_INPUT_NUMBER,
|
||||
description='Length of the unthreaded shank'
|
||||
)
|
||||
bf_Pan_Head_Dia = FloatProperty(
|
||||
attr='bf_Pan_Head_Dia',
|
||||
name='Pan Head Dia', default=5.6,
|
||||
min=0, soft_min=0,
|
||||
max=MAX_INPUT_NUMBER,
|
||||
description='Diameter of the Pan Head')
|
||||
|
||||
bf_Philips_Bit_Dia = FloatProperty(attr='bf_Philips_Bit_Dia',
|
||||
name='Bit Dia', default = 1.8199999332427979,
|
||||
min = 0, soft_min = 0,max = MAX_INPUT_NUMBER,
|
||||
bf_Philips_Bit_Dia = FloatProperty(
|
||||
attr='bf_Philips_Bit_Dia',
|
||||
name='Bit Dia', default=1.8199999332427979,
|
||||
min=0, soft_min=0,
|
||||
max=MAX_INPUT_NUMBER,
|
||||
description='Diameter of the Philips Bit')
|
||||
|
||||
bf_Thread_Length = FloatProperty( attr='bf_Thread_Length',
|
||||
name='Thread Length', default = 6,
|
||||
min = 0, soft_min = 0, max = MAX_INPUT_NUMBER,
|
||||
bf_Thread_Length = FloatProperty(
|
||||
attr='bf_Thread_Length',
|
||||
name='Thread Length', default=6,
|
||||
min=0, soft_min=0,
|
||||
max=MAX_INPUT_NUMBER,
|
||||
description='Length of the Thread')
|
||||
|
||||
bf_Major_Dia = FloatProperty( attr='bf_Major_Dia',
|
||||
name='Major Dia', default = 3,
|
||||
min = 0, soft_min = 0, max = MAX_INPUT_NUMBER,
|
||||
bf_Major_Dia = FloatProperty(
|
||||
attr='bf_Major_Dia',
|
||||
name='Major Dia', default=3,
|
||||
min=0, soft_min=0,
|
||||
max=MAX_INPUT_NUMBER,
|
||||
description='Outside diameter of the Thread')
|
||||
|
||||
bf_Pitch = FloatProperty( attr='bf_Pitch',
|
||||
name='Pitch', default = 0.35,
|
||||
min = 0.1, soft_min = 0.1, max = 7.0,
|
||||
description='Pitch if the thread')
|
||||
|
||||
bf_Minor_Dia = FloatProperty( attr='bf_Minor_Dia',
|
||||
name='Minor Dia', default = 2.6211137771606445,
|
||||
min = 0, soft_min = 0, max = MAX_INPUT_NUMBER,
|
||||
description='Inside diameter of the Thread')
|
||||
|
||||
bf_Crest_Percent = IntProperty( attr='bf_Crest_Percent',
|
||||
name='Crest Percent', default = 10,
|
||||
min = 1, soft_min = 1, max = 90,
|
||||
description='Percent of the pitch that makes up the Crest')
|
||||
|
||||
bf_Root_Percent = IntProperty( attr='bf_Root_Percent',
|
||||
name='Root Percent', default = 10,
|
||||
min = 1, soft_min = 1, max = 90,
|
||||
description='Percent of the pitch that makes up the Root')
|
||||
|
||||
bf_Div_Count = IntProperty( attr='bf_Div_Count',
|
||||
name='Div count', default = 36,
|
||||
min = 4, soft_min = 4, max = 4096,
|
||||
description='Div count determine circle resolution')
|
||||
|
||||
bf_Hex_Nut_Height = FloatProperty( attr='bf_Hex_Nut_Height',
|
||||
name='Hex Nut Height', default = 2.4,
|
||||
min = 0, soft_min = 0, max = MAX_INPUT_NUMBER,
|
||||
description='Height of the Hex Nut')
|
||||
|
||||
bf_Hex_Nut_Flat_Distance = FloatProperty( attr='bf_Hex_Nut_Flat_Distance',
|
||||
name='Hex Nut Flat Dist', default = 5.5,
|
||||
min = 0, soft_min = 0, max = MAX_INPUT_NUMBER,
|
||||
description='Flat distance of the Hex Nut')
|
||||
bf_Pitch = FloatProperty(
|
||||
attr='bf_Pitch',
|
||||
name='Pitch', default=0.35,
|
||||
min=0.1, soft_min=0.1,
|
||||
max=7.0,
|
||||
description='Pitch if the thread'
|
||||
)
|
||||
bf_Minor_Dia = FloatProperty(
|
||||
attr='bf_Minor_Dia',
|
||||
name='Minor Dia', default=2.6211137771606445,
|
||||
min=0, soft_min=0,
|
||||
max=MAX_INPUT_NUMBER,
|
||||
description='Inside diameter of the Thread'
|
||||
)
|
||||
bf_Crest_Percent = IntProperty(
|
||||
attr='bf_Crest_Percent',
|
||||
name='Crest Percent', default=10,
|
||||
min=1, soft_min=1,
|
||||
max=90,
|
||||
description='Percent of the pitch that makes up the Crest'
|
||||
)
|
||||
bf_Root_Percent = IntProperty(
|
||||
attr='bf_Root_Percent',
|
||||
name='Root Percent', default=10,
|
||||
min=1, soft_min=1,
|
||||
max=90,
|
||||
description='Percent of the pitch that makes up the Root'
|
||||
)
|
||||
bf_Div_Count = IntProperty(
|
||||
attr='bf_Div_Count',
|
||||
name='Div count', default=36,
|
||||
min=4, soft_min=4,
|
||||
max=4096,
|
||||
description='Div count determine circle resolution'
|
||||
)
|
||||
bf_Hex_Nut_Height = FloatProperty(
|
||||
attr='bf_Hex_Nut_Height',
|
||||
name='Hex Nut Height', default=2.4,
|
||||
min=0, soft_min=0,
|
||||
max=MAX_INPUT_NUMBER,
|
||||
description='Height of the Hex Nut'
|
||||
)
|
||||
bf_Hex_Nut_Flat_Distance = FloatProperty(
|
||||
attr='bf_Hex_Nut_Flat_Distance',
|
||||
name='Hex Nut Flat Dist', default=5.5,
|
||||
min=0, soft_min=0,
|
||||
max=MAX_INPUT_NUMBER,
|
||||
description='Flat distance of the Hex Nut'
|
||||
)
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
col = layout.column()
|
||||
|
||||
#ENUMS
|
||||
# ENUMS
|
||||
col.prop(self, 'bf_Model_Type')
|
||||
col.separator()
|
||||
|
||||
#Bit
|
||||
# Bit
|
||||
if self.bf_Model_Type == 'bf_Model_Bolt':
|
||||
col.prop(self, 'bf_Bit_Type')
|
||||
if self.bf_Bit_Type == 'bf_Bit_None':
|
||||
|
@ -222,8 +271,7 @@ class add_mesh_bolt(bpy.types.Operator):
|
|||
col.prop(self, 'bf_Phillips_Bit_Depth')
|
||||
col.prop(self, 'bf_Philips_Bit_Dia')
|
||||
col.separator()
|
||||
|
||||
#Head
|
||||
# Head
|
||||
if self.bf_Model_Type == 'bf_Model_Bolt':
|
||||
col.prop(self, 'bf_Head_Type')
|
||||
if self.bf_Head_Type == 'bf_Head_Hex':
|
||||
|
@ -239,18 +287,18 @@ class add_mesh_bolt(bpy.types.Operator):
|
|||
elif self.bf_Head_Type == 'bf_Head_CounterSink':
|
||||
col.prop(self, 'bf_CounterSink_Head_Dia')
|
||||
col.separator()
|
||||
#Shank
|
||||
# Shank
|
||||
if self.bf_Model_Type == 'bf_Model_Bolt':
|
||||
col.label(text='Shank')
|
||||
col.prop(self, 'bf_Shank_Length')
|
||||
col.prop(self, 'bf_Shank_Dia')
|
||||
col.separator()
|
||||
#Nut
|
||||
# Nut
|
||||
if self.bf_Model_Type == 'bf_Model_Nut':
|
||||
col.prop(self, 'bf_Nut_Type')
|
||||
col.prop(self, 'bf_Hex_Nut_Height')
|
||||
col.prop(self, 'bf_Hex_Nut_Flat_Distance')
|
||||
#Thread
|
||||
# Thread
|
||||
col.label(text='Thread')
|
||||
if self.bf_Model_Type == 'bf_Model_Bolt':
|
||||
col.prop(self, 'bf_Thread_Length')
|
||||
|
@ -261,23 +309,17 @@ class add_mesh_bolt(bpy.types.Operator):
|
|||
col.prop(self, 'bf_Root_Percent')
|
||||
col.prop(self, 'bf_Div_Count')
|
||||
|
||||
|
||||
|
||||
##### POLL #####
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
return context.scene is not None
|
||||
|
||||
##### EXECUTE #####
|
||||
def execute(self, context):
|
||||
|
||||
#print('EXECUTING...')
|
||||
Create_New_Mesh(self, context, self.align_matrix)
|
||||
# print('EXECUTING...')
|
||||
createMesh.Create_New_Mesh(self, context, self.align_matrix)
|
||||
return {'FINISHED'}
|
||||
|
||||
##### INVOKE #####
|
||||
def invoke(self, context, event):
|
||||
#print('\n___________START_____________')
|
||||
# print('\n___________START_____________')
|
||||
# store creation_matrix
|
||||
self.align_matrix = align_matrix(context)
|
||||
self.execute(context)
|
||||
|
|
|
@ -19,11 +19,11 @@
|
|||
bl_info = {
|
||||
"name": "BoltFactory",
|
||||
"author": "Aaron Keith",
|
||||
"version": (0, 3, 1),
|
||||
"version": (0, 3, 2),
|
||||
"blender": (2, 78, 0),
|
||||
"location": "View3D > Add > Mesh",
|
||||
"description": "Add a bolt or nut",
|
||||
"wiki_url": "http://wiki.blender.org/index.php/Extensions:2.6/Py/"
|
||||
"wiki_url": "https://wiki.blender.org/index.php/Extensions:2.6/Py/"
|
||||
"Scripts/Add_Mesh/BoltFactory",
|
||||
"category": "Add Mesh",
|
||||
}
|
||||
|
@ -32,13 +32,15 @@ bl_info = {
|
|||
if "bpy" in locals():
|
||||
import importlib
|
||||
importlib.reload(Boltfactory)
|
||||
importlib.reload(createMesh)
|
||||
else:
|
||||
from add_mesh_BoltFactory import Boltfactory
|
||||
from . import Boltfactory
|
||||
from . import createMesh
|
||||
|
||||
import bpy
|
||||
|
||||
################################################################################
|
||||
##### REGISTER #####
|
||||
|
||||
# ### REGISTER ###
|
||||
|
||||
def add_mesh_bolt_button(self, context):
|
||||
self.layout.operator(Boltfactory.add_mesh_bolt.bl_idname, text="Bolt", icon="MOD_SCREW")
|
||||
|
@ -48,13 +50,15 @@ def register():
|
|||
bpy.utils.register_module(__name__)
|
||||
|
||||
bpy.types.INFO_MT_mesh_add.append(add_mesh_bolt_button)
|
||||
#bpy.types.VIEW3D_PT_tools_objectmode.prepend(add_mesh_bolt_button) #just for testing
|
||||
# bpy.types.VIEW3D_PT_tools_objectmode.prepend(add_mesh_bolt_button) # just for testing
|
||||
|
||||
|
||||
def unregister():
|
||||
bpy.utils.unregister_module(__name__)
|
||||
|
||||
bpy.types.INFO_MT_mesh_add.remove(add_mesh_bolt_button)
|
||||
#bpy.types.VIEW3D_PT_tools_objectmode.remove(add_mesh_bolt_button) #just for testing
|
||||
# bpy.types.VIEW3D_PT_tools_objectmode.remove(add_mesh_bolt_button) # just for testing
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue