Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'add_mesh_BoltFactory/Boltfactory.py')
-rw-r--r--add_mesh_BoltFactory/Boltfactory.py306
1 files changed, 0 insertions, 306 deletions
diff --git a/add_mesh_BoltFactory/Boltfactory.py b/add_mesh_BoltFactory/Boltfactory.py
deleted file mode 100644
index 27c0d8cc..00000000
--- a/add_mesh_BoltFactory/Boltfactory.py
+++ /dev/null
@@ -1,306 +0,0 @@
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
-
-
-import bpy
-import mathutils
-from bpy.props import *
-from add_mesh_BoltFactory.createMesh import *
-from add_mesh_BoltFactory.preset_utils import *
-
-
-
-##------------------------------------------------------------
-# calculates the matrix for the new object
-# depending on user pref
-def align_matrix(context):
- loc = mathutils.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'):
- rot = context.space_data.region_3d.view_matrix.rotation_part().invert().resize4x4()
- else:
- rot = mathutils.Matrix()
- align_matrix = loc * rot
- return align_matrix
-
-
-
-class add_mesh_bolt(bpy.types.Operator):
- ''''''
- bl_idname = 'add_mesh_bolt'
- bl_label = "Add Bolt"
- bl_options = {'REGISTER', 'UNDO'}
- bl_description = "adds many types of Bolts"
-
- align_matrix = mathutils.Matrix()
- MAX_INPUT_NUMBER = 50
-
- #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',
- 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',
- 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',
- 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 = 0, #set in execute
- options = {'HIDDEN'}, #gets calculated in execute
- 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 = 0, #set in execute
- options = {'HIDDEN'}, #gets calculated in execute
- 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,
- 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,
- 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 = 0, #set in execute
- options = {'HIDDEN'}, #gets calculated in execute
- 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_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')
-
- presets, presetsPath = getPresets()
-
- bf_presets = EnumProperty(attr='bf_presets',
- name='Preset',
- description="Use Preset from File",
- default='M3.py',
- items=presets)
-
- last_preset = None
-
-
- def draw(self, context):
- props = self.properties
- layout = self.layout
- col = layout.column()
-
- #ENUMS
- col.prop(props, 'bf_Model_Type')
- col.prop(props, 'bf_presets')
- col.separator()
-
- #Bit
- if props.bf_Model_Type == 'bf_Model_Bolt':
- col.prop(props, 'bf_Bit_Type')
- if props.bf_Bit_Type == 'bf_Bit_None':
- DoNothing = 1;
- elif props.bf_Bit_Type == 'bf_Bit_Allen':
- col.prop(props,'bf_Allen_Bit_Depth')
- col.prop(props,'bf_Allen_Bit_Flat_Distance')
- elif props.bf_Bit_Type == 'bf_Bit_Philips':
- col.prop(props,'bf_Phillips_Bit_Depth')
- col.prop(props,'bf_Philips_Bit_Dia')
- col.separator()
-
- #Head
- if props.bf_Model_Type == 'bf_Model_Bolt':
- col.prop(props, 'bf_Head_Type')
- if props.bf_Head_Type == 'bf_Head_Hex':
- col.prop(props, 'bf_Hex_Head_Height')
- col.prop(props, 'bf_Hex_Head_Flat_Distance')
- elif props.bf_Head_Type == 'bf_Head_Cap':
- col.prop(props,'bf_Cap_Head_Height')
- col.prop(props,'bf_Cap_Head_Dia')
- elif props.bf_Head_Type == 'bf_Head_Dome':
- col.prop(props,'bf_Dome_Head_Dia')
- elif props.bf_Head_Type == 'bf_Head_Pan':
- col.prop(props,'bf_Pan_Head_Dia')
- elif props.bf_Head_Type == 'bf_Head_CounterSink':
- col.prop(props,'bf_CounterSink_Head_Dia')
- col.separator()
- #Shank
- if props.bf_Model_Type == 'bf_Model_Bolt':
- col.label(text='Shank')
- col.prop(props, 'bf_Shank_Length')
- col.prop(props, 'bf_Shank_Dia')
- col.separator()
- #Nut
- if props.bf_Model_Type == 'bf_Model_Nut':
- col.prop(props, 'bf_Nut_Type')
- col.prop(props,'bf_Hex_Nut_Height')
- col.prop(props,'bf_Hex_Nut_Flat_Distance')
- #Thread
- col.label(text='Thread')
- if props.bf_Model_Type == 'bf_Model_Bolt':
- col.prop(props,'bf_Thread_Length')
- col.prop(props,'bf_Major_Dia')
- col.prop(props,'bf_Minor_Dia')
- col.prop(props,'bf_Pitch')
- col.prop(props,'bf_Crest_Percent')
- col.prop(props,'bf_Root_Percent')
-
-
-
- ##### POLL #####
- @classmethod
- def poll(cls, context):
- return context.scene != None
-
- ##### EXECUTE #####
- def execute(self, context):
-
- #print('EXECUTING...')
- props = self.properties
-
- if not self.last_preset or props.bf_presets != self.last_preset:
- #print('setting Preset', props.bf_presets)
- setProps(props, props.bf_presets, self.presetsPath)
- props.bf_Phillips_Bit_Depth = float(Get_Phillips_Bit_Height(props.bf_Philips_Bit_Dia))
-
- self.last_preset = props.bf_presets
-
-
- #props.bf_Phillips_Bit_Depth = float(Get_Phillips_Bit_Height(props.bf_Philips_Bit_Dia))
- #props.bf_Philips_Bit_Dia = props.bf_Pan_Head_Dia*(1.82/5.6)
- #props.bf_Minor_Dia = props.bf_Major_Dia - (1.082532 * props.bf_Pitch)
-
- Create_New_Mesh(props, context, self.align_matrix)
-
- return {'FINISHED'}
-
- ##### INVOKE #####
- def invoke(self, context, event):
- #print('\n___________START_____________')
- # store creation_matrix
- self.align_matrix = align_matrix(context)
- self.execute(context)
-
- return {'FINISHED'}