diff --git a/add_mesh_BoltFactory/Boltfactory.py b/add_mesh_BoltFactory/Boltfactory.py index be0ba617d916228e96e55cf4685b336a92d54416..89af117cc1cf6120ea3ce8e5d1a85ffd285917b2 100644 --- a/add_mesh_BoltFactory/Boltfactory.py +++ b/add_mesh_BoltFactory/Boltfactory.py @@ -18,199 +18,248 @@ import bpy -import mathutils -from bpy.props import * -from add_mesh_BoltFactory.createMesh import * - -##------------------------------------------------------------ -# calculates the matrix for the new object -# depending on user pref +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 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) diff --git a/add_mesh_BoltFactory/__init__.py b/add_mesh_BoltFactory/__init__.py index 16dd9a9c140d203eb4c2f1c4d16797c2ca2595aa..8c94ec35bafbfa9b071eed5493906aeacf9974ad 100644 --- a/add_mesh_BoltFactory/__init__.py +++ b/add_mesh_BoltFactory/__init__.py @@ -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() diff --git a/add_mesh_BoltFactory/createMesh.py b/add_mesh_BoltFactory/createMesh.py index 58470c0162b62342d44ac72931f75d799315ec64..fcdefdc147275ef94184240dcdd3c034f6d6e051 100644 --- a/add_mesh_BoltFactory/createMesh.py +++ b/add_mesh_BoltFactory/createMesh.py @@ -17,19 +17,23 @@ # ##### END GPL LICENSE BLOCK ##### import bpy -import mathutils - -from math import * -from itertools import * +from mathutils import ( + Matrix, + Vector, + ) +from math import ( + sin, + cos, + tan, + radians, + ) NARROW_UI = 180 MAX_INPUT_NUMBER = 50 -#Global_Scale = 0.001 #1 blender unit = X mm -GLOBAL_SCALE = 0.1 #1 blender unit = X mm -#Global_Scale = 1.0 #1 blender unit = X mm - - +# Global_Scale = 0.001 # 1 blender unit = X mm +GLOBAL_SCALE = 0.1 # 1 blender unit = X mm +# Global_Scale = 1.0 # 1 blender unit = X mm # next two utility functions are stolen from import_obj.py @@ -40,6 +44,7 @@ def unpack_list(list_of_tuples): l.extend(t) return l + def unpack_face_list(list_of_tuples): l = [] for t in list_of_tuples: @@ -59,6 +64,7 @@ def unpack_face_list(list_of_tuples): return l + """ Remove Doubles takes a list on Verts and a list of Faces and removes the doubles, much like Blender does in edit mode. @@ -70,7 +76,7 @@ disadvantage of not being able to interactively change the properties. """ -def RemoveDoubles(verts,faces,Decimal_Places = 4): +def RemoveDoubles(verts, faces, Decimal_Places=4): new_verts = [] new_faces = [] @@ -78,7 +84,9 @@ def RemoveDoubles(verts,faces,Decimal_Places = 4): Rounded_Verts = [] for v in verts: - Rounded_Verts.append([round(v[0],Decimal_Places),round(v[1],Decimal_Places),round(v[2],Decimal_Places)]) + Rounded_Verts.append([round(v[0], Decimal_Places), + round(v[1], Decimal_Places), + round(v[2], Decimal_Places)]) for face in faces: new_face = [] @@ -94,24 +102,19 @@ def RemoveDoubles(verts,faces,Decimal_Places = 4): if len(new_face) == 3 or len(new_face) == 4: new_faces.append(new_face) - return new_verts,new_faces - + return new_verts, new_faces - -def Scale_Mesh_Verts(verts,scale_factor): +def Scale_Mesh_Verts(verts, scale_factor): Ret_verts = [] for v in verts: - Ret_verts.append([v[0]*scale_factor,v[1]*scale_factor,v[2]*scale_factor]) + Ret_verts.append([v[0] * scale_factor, v[1] * scale_factor, v[2] * scale_factor]) return Ret_verts - - - -#Create a matrix representing a rotation. +# Create a matrix representing a rotation. # -#Parameters: +# Parameters: # # * angle (float) - The angle of rotation desired. # * matSize (int) - The size of the rotation matrix to construct. Can be 2d, 3d, or 4d. @@ -122,49 +125,46 @@ def Scale_Mesh_Verts(verts,scale_factor): # o "r - arbitrary rotation around vector" # * axis (Vector object. (optional)) - The arbitrary axis of rotation used with "R" # -#Returns: Matrix object. +# Returns: Matrix object. # A new rotation matrix. + def Simple_RotationMatrix(angle, matSize, axisFlag): - if matSize != 4 : - print ("Simple_RotationMatrix can only do 4x4") + if matSize != 4: + print("Simple_RotationMatrix can only do 4x4") - q = radians(angle) #make the rotation go clockwise + q = radians(angle) # make the rotation go clockwise if axisFlag == 'x': - matrix = mathutils.Matrix.Rotation(q, 4, 'X') - elif axisFlag == 'y': - matrix = mathutils.Matrix.Rotation(q, 4, 'Y') + matrix = Matrix.Rotation(q, 4, 'X') + elif axisFlag == 'y': + matrix = Matrix.Rotation(q, 4, 'Y') elif axisFlag == 'z': - matrix = mathutils.Matrix.Rotation(q, 4, 'Z') + matrix = Matrix.Rotation(q, 4, 'Z') else: - print ("Simple_RotationMatrix can only do x y z axis") + print("Simple_RotationMatrix can only do x y z axis") return matrix -########################################################################################## -########################################################################################## -## Converter Functions For Bolt Factory -########################################################################################## -########################################################################################## - +# #################################################################### +# Converter Functions For Bolt Factory +# #################################################################### def Flat_To_Radius(FLAT): - h = (float(FLAT)/2)/cos(radians(30)) + h = (float(FLAT) / 2) / cos(radians(30)) return h + def Get_Phillips_Bit_Height(Bit_Dia): - Flat_Width_half = (Bit_Dia*(0.5/1.82))/2.0 + Flat_Width_half = (Bit_Dia * (0.5 / 1.82)) / 2.0 Bit_Rad = Bit_Dia / 2.0 x = Bit_Rad - Flat_Width_half - y = tan(radians(60))*x + y = tan(radians(60)) * x return float(y) -########################################################################################## -########################################################################################## -## Miscellaneous Utilities -########################################################################################## -########################################################################################## +# #################################################################### +# Miscellaneous Utilities +# #################################################################### # Returns a list of verts rotated by the given matrix. Used by SpinDup def Rot_Mesh(verts, matrix): @@ -173,271 +173,258 @@ def Rot_Mesh(verts, matrix): # Returns a list of faces that has there index incremented by offset -def Copy_Faces(faces,offset): +def Copy_Faces(faces, offset): return [[(i + offset) for i in f] for f in faces] -# Much like Blenders built in SpinDup. -def SpinDup(VERTS,FACES,DEGREE,DIVISIONS,AXIS): - verts=[] - faces=[] +# Much like Blenders built in SpinDup +def SpinDup(VERTS, FACES, DEGREE, DIVISIONS, AXIS): + verts = [] + faces = [] if DIVISIONS == 0: DIVISIONS = 1 - step = DEGREE/DIVISIONS # set step so pieces * step = degrees in arc + step = DEGREE / DIVISIONS # set step so pieces * step = degrees in arc for i in range(int(DIVISIONS)): - rotmat = Simple_RotationMatrix(step*i, 4, AXIS) # 4x4 rotation matrix, 30d about the x axis. - Rot = Rot_Mesh(VERTS,rotmat) - faces.extend(Copy_Faces(FACES,len(verts))) + rotmat = Simple_RotationMatrix(step * i, 4, AXIS) # 4x4 rotation matrix, 30d about the x axis. + Rot = Rot_Mesh(VERTS, rotmat) + faces.extend(Copy_Faces(FACES, len(verts))) verts.extend(Rot) - return verts,faces - + return verts, faces # Returns a list of verts that have been moved up the z axis by DISTANCE -def Move_Verts_Up_Z(VERTS,DISTANCE): +def Move_Verts_Up_Z(VERTS, DISTANCE): ret = [] for v in VERTS: - ret.append([v[0],v[1],v[2]+DISTANCE]) + ret.append([v[0], v[1], v[2] + DISTANCE]) return ret # Returns a list of verts and faces that has been mirrored in the AXIS -def Mirror_Verts_Faces(VERTS,FACES,AXIS,FLIP_POINT =0): +def Mirror_Verts_Faces(VERTS, FACES, AXIS, FLIP_POINT=0): ret_vert = [] ret_face = [] offset = len(VERTS) if AXIS == 'y': for v in VERTS: Delta = v[0] - FLIP_POINT - ret_vert.append([FLIP_POINT-Delta,v[1],v[2]]) + ret_vert.append([FLIP_POINT - Delta, v[1], v[2]]) if AXIS == 'x': for v in VERTS: Delta = v[1] - FLIP_POINT - ret_vert.append([v[0],FLIP_POINT-Delta,v[2]]) + ret_vert.append([v[0], FLIP_POINT - Delta, v[2]]) if AXIS == 'z': for v in VERTS: Delta = v[2] - FLIP_POINT - ret_vert.append([v[0],v[1],FLIP_POINT-Delta]) + ret_vert.append([v[0], v[1], FLIP_POINT - Delta]) for f in FACES: fsub = [] for i in range(len(f)): - fsub.append(f[i]+ offset) - fsub.reverse() # flip the order to make norm point out + fsub.append(f[i] + offset) + fsub.reverse() # flip the order to make norm point out ret_face.append(fsub) - return ret_vert,ret_face - + return ret_vert, ret_face # Returns a list of faces that # make up an array of 4 point polygon. -def Build_Face_List_Quads(OFFSET,COLUM,ROW,FLIP = 0): - Ret =[] - RowStart = 0; +def Build_Face_List_Quads(OFFSET, COLUM, ROW, FLIP=0): + Ret = [] + RowStart = 0 for j in range(ROW): for i in range(COLUM): - Res1 = RowStart + i; - Res2 = RowStart + i + (COLUM +1) - Res3 = RowStart + i + (COLUM +1) +1 - Res4 = RowStart+i+1 + Res1 = RowStart + i + Res2 = RowStart + i + (COLUM + 1) + Res3 = RowStart + i + (COLUM + 1) + 1 + Res4 = RowStart + i + 1 if FLIP: - Ret.append([OFFSET+Res1,OFFSET+Res2,OFFSET+Res3,OFFSET+Res4]) + Ret.append([OFFSET + Res1, OFFSET + Res2, OFFSET + Res3, OFFSET + Res4]) else: - Ret.append([OFFSET+Res4,OFFSET+Res3,OFFSET+Res2,OFFSET+Res1]) - RowStart += COLUM+1 + Ret.append([OFFSET + Res4, OFFSET + Res3, OFFSET + Res2, OFFSET + Res1]) + RowStart += COLUM + 1 return Ret # Returns a list of faces that makes up a fill pattern for a # circle -def Fill_Ring_Face(OFFSET,NUM,FACE_DOWN = 0): - Ret =[] - Face = [1,2,0] - TempFace = [0,0,0] +def Fill_Ring_Face(OFFSET, NUM, FACE_DOWN=0): + Ret = [] + Face = [1, 2, 0] + TempFace = [0, 0, 0] # A = 0 # UNUSED B = 1 C = 2 if NUM < 3: return None - for i in range(NUM-2): - if (i%2): - TempFace[0] = Face[C]; - TempFace[1] = Face[C] + 1; - TempFace[2] = Face[B]; + for i in range(NUM - 2): + if (i % 2): + TempFace[0] = Face[C] + TempFace[1] = Face[C] + 1 + TempFace[2] = Face[B] if FACE_DOWN: - Ret.append([OFFSET+Face[2],OFFSET+Face[1],OFFSET+Face[0]]) + Ret.append([OFFSET + Face[2], OFFSET + Face[1], OFFSET + Face[0]]) else: - Ret.append([OFFSET+Face[0],OFFSET+Face[1],OFFSET+Face[2]]) + Ret.append([OFFSET + Face[0], OFFSET + Face[1], OFFSET + Face[2]]) else: - TempFace[0] =Face[C]; + TempFace[0] = Face[C] if Face[C] == 0: - TempFace[1] = NUM-1; + TempFace[1] = NUM - 1 else: - TempFace[1] = Face[C] - 1; - TempFace[2] = Face[B]; + TempFace[1] = Face[C] - 1 + TempFace[2] = Face[B] if FACE_DOWN: - Ret.append([OFFSET+Face[0],OFFSET+Face[1],OFFSET+Face[2]]) + Ret.append([OFFSET + Face[0], OFFSET + Face[1], OFFSET + Face[2]]) else: - Ret.append([OFFSET+Face[2],OFFSET+Face[1],OFFSET+Face[0]]) + Ret.append([OFFSET + Face[2], OFFSET + Face[1], OFFSET + Face[0]]) Face[0] = TempFace[0] Face[1] = TempFace[1] Face[2] = TempFace[2] return Ret -###################################################################################### -########################################################################################## -########################################################################################## -## Create Allen Bit -########################################################################################## -########################################################################################## +# #################################################################### +# Create Allen Bit +# #################################################################### -def Allen_Fill(OFFSET,FLIP= 0): +def Allen_Fill(OFFSET, FLIP=0): faces = [] - Lookup = [[19,1,0], - [19,2,1], - [19,3,2], - [19,20,3], - [20,4,3], - [20,5,4], - [20,6,5], - [20,7,6], - [20,8,7], - [20,9,8], - - [20,21,9], - - [21,10,9], - [21,11,10], - [21,12,11], - [21,13,12], - [21,14,13], - [21,15,14], - - [21,22,15], - [22,16,15], - [22,17,16], - [22,18,17] + Lookup = [[19, 1, 0], + [19, 2, 1], + [19, 3, 2], + [19, 20, 3], + [20, 4, 3], + [20, 5, 4], + [20, 6, 5], + [20, 7, 6], + [20, 8, 7], + [20, 9, 8], + + [20, 21, 9], + + [21, 10, 9], + [21, 11, 10], + [21, 12, 11], + [21, 13, 12], + [21, 14, 13], + [21, 15, 14], + + [21, 22, 15], + [22, 16, 15], + [22, 17, 16], + [22, 18, 17] ] for i in Lookup: if FLIP: - faces.append([OFFSET+i[2],OFFSET+i[1],OFFSET+i[0]]) + faces.append([OFFSET + i[2], OFFSET + i[1], OFFSET + i[0]]) else: - faces.append([OFFSET+i[0],OFFSET+i[1],OFFSET+i[2]]) + faces.append([OFFSET + i[0], OFFSET + i[1], OFFSET + i[2]]) return faces + def Allen_Bit_Dia(FLAT_DISTANCE): - Flat_Radius = (float(FLAT_DISTANCE)/2.0)/cos(radians(30)) + Flat_Radius = (float(FLAT_DISTANCE) / 2.0) / cos(radians(30)) return (Flat_Radius * 1.05) * 2.0 -def Allen_Bit_Dia_To_Flat(DIA): - Flat_Radius = (DIA/2.0)/1.05 - return (Flat_Radius * cos (radians(30)))* 2.0 +def Allen_Bit_Dia_To_Flat(DIA): + Flat_Radius = (DIA / 2.0) / 1.05 + return (Flat_Radius * cos(radians(30))) * 2.0 -def Create_Allen_Bit(FLAT_DISTANCE,HEIGHT): +def Create_Allen_Bit(FLAT_DISTANCE, HEIGHT): verts = [] faces = [] DIV_COUNT = 36 - Flat_Radius = (float(FLAT_DISTANCE)/2.0)/cos(radians(30)) + Flat_Radius = (float(FLAT_DISTANCE) / 2.0) / cos(radians(30)) OUTTER_RADIUS = Flat_Radius * 1.05 - Outter_Radius_Height = Flat_Radius * (0.1/5.77) + Outter_Radius_Height = Flat_Radius * (0.1 / 5.77) FaceStart_Outside = len(verts) - Deg_Step = 360.0 /float(DIV_COUNT) + Deg_Step = 360.0 / float(DIV_COUNT) - for i in range(int(DIV_COUNT/2)+1): # only do half and mirror later - x = sin(radians(i*Deg_Step))*OUTTER_RADIUS - y = cos(radians(i*Deg_Step))*OUTTER_RADIUS - verts.append([x,y,0]) + for i in range(int(DIV_COUNT / 2) + 1): # only do half and mirror later + x = sin(radians(i * Deg_Step)) * OUTTER_RADIUS + y = cos(radians(i * Deg_Step)) * OUTTER_RADIUS + verts.append([x, y, 0]) FaceStart_Inside = len(verts) - Deg_Step = 360.0 /float(6) - for i in range(int(6/2)+1): - x = sin(radians(i*Deg_Step))* Flat_Radius - y = cos(radians(i*Deg_Step))* Flat_Radius - verts.append([x,y,0-Outter_Radius_Height]) - - faces.extend(Allen_Fill(FaceStart_Outside,0)) + Deg_Step = 360.0 / float(6) + for i in range(int(6 / 2) + 1): + x = sin(radians(i * Deg_Step)) * Flat_Radius + y = cos(radians(i * Deg_Step)) * Flat_Radius + verts.append([x, y, 0 - Outter_Radius_Height]) + faces.extend(Allen_Fill(FaceStart_Outside, 0)) FaceStart_Bottom = len(verts) - Deg_Step = 360.0 /float(6) - for i in range(int(6/2)+1): - x = sin(radians(i*Deg_Step))* Flat_Radius - y = cos(radians(i*Deg_Step))* Flat_Radius - verts.append([x,y,0-HEIGHT]) + Deg_Step = 360.0 / float(6) + for i in range(int(6 / 2) + 1): + x = sin(radians(i * Deg_Step)) * Flat_Radius + y = cos(radians(i * Deg_Step)) * Flat_Radius + verts.append([x, y, 0 - HEIGHT]) - faces.extend(Build_Face_List_Quads(FaceStart_Inside,3,1,True)) - faces.extend(Fill_Ring_Face(FaceStart_Bottom,4)) + faces.extend(Build_Face_List_Quads(FaceStart_Inside, 3, 1, True)) + faces.extend(Fill_Ring_Face(FaceStart_Bottom, 4)) - - M_Verts,M_Faces = Mirror_Verts_Faces(verts,faces,'y') + M_Verts, M_Faces = Mirror_Verts_Faces(verts, faces, 'y') verts.extend(M_Verts) faces.extend(M_Faces) - return verts,faces,OUTTER_RADIUS * 2.0 - + return verts, faces, OUTTER_RADIUS * 2.0 -########################################################################################## -########################################################################################## -## Create Phillips Bit -########################################################################################## -########################################################################################## +# #################################################################### +# Create Phillips Bit +# #################################################################### -def Phillips_Fill(OFFSET,FLIP= 0): +def Phillips_Fill(OFFSET, FLIP=0): faces = [] - Lookup = [[0,1,10], - [1,11,10], - [1,2,11], - [2,12,11], - - [2,3,12], - [3,4,12], - [4,5,12], - [5,6,12], - [6,7,12], - - [7,13,12], - [7,8,13], - [8,14,13], - [8,9,14], - - - [10,11,16,15], - [11,12,16], - [12,13,16], - [13,14,17,16], - [15,16,17,18] - - + Lookup = [[0, 1, 10], + [1, 11, 10], + [1, 2, 11], + [2, 12, 11], + + [2, 3, 12], + [3, 4, 12], + [4, 5, 12], + [5, 6, 12], + [6, 7, 12], + + [7, 13, 12], + [7, 8, 13], + [8, 14, 13], + [8, 9, 14], + + [10, 11, 16, 15], + [11, 12, 16], + [12, 13, 16], + [13, 14, 17, 16], + [15, 16, 17, 18] ] for i in Lookup: if FLIP: if len(i) == 3: - faces.append([OFFSET+i[2],OFFSET+i[1],OFFSET+i[0]]) + faces.append([OFFSET + i[2], OFFSET + i[1], OFFSET + i[0]]) else: - faces.append([OFFSET+i[3],OFFSET+i[2],OFFSET+i[1],OFFSET+i[0]]) + faces.append([OFFSET + i[3], OFFSET + i[2], OFFSET + i[1], OFFSET + i[0]]) else: if len(i) == 3: - faces.append([OFFSET+i[0],OFFSET+i[1],OFFSET+i[2]]) + faces.append([OFFSET + i[0], OFFSET + i[1], OFFSET + i[2]]) else: - faces.append([OFFSET+i[0],OFFSET+i[1],OFFSET+i[2],OFFSET+i[3]]) + faces.append([OFFSET + i[0], OFFSET + i[1], OFFSET + i[2], OFFSET + i[3]]) return faces - -def Create_Phillips_Bit(FLAT_DIA,FLAT_WIDTH,HEIGHT): +def Create_Phillips_Bit(FLAT_DIA, FLAT_WIDTH, HEIGHT): verts = [] faces = [] @@ -445,50 +432,46 @@ def Create_Phillips_Bit(FLAT_DIA,FLAT_WIDTH,HEIGHT): FLAT_RADIUS = FLAT_DIA * 0.5 OUTTER_RADIUS = FLAT_RADIUS * 1.05 - Flat_Half = float(FLAT_WIDTH)/2.0 + Flat_Half = float(FLAT_WIDTH) / 2.0 FaceStart_Outside = len(verts) - Deg_Step = 360.0 /float(DIV_COUNT) - for i in range(int(DIV_COUNT/4)+1): # only do half and mirror later - x = sin(radians(i*Deg_Step))*OUTTER_RADIUS - y = cos(radians(i*Deg_Step))*OUTTER_RADIUS - verts.append([x,y,0]) - - - # FaceStart_Inside = len(verts) # UNUSED - verts.append([0,FLAT_RADIUS,0]) #10 - verts.append([Flat_Half,FLAT_RADIUS,0]) #11 - verts.append([Flat_Half,Flat_Half,0]) #12 - verts.append([FLAT_RADIUS,Flat_Half,0]) #13 - verts.append([FLAT_RADIUS,0,0]) #14 + Deg_Step = 360.0 / float(DIV_COUNT) + for i in range(int(DIV_COUNT / 4) + 1): # only do half and mirror later + x = sin(radians(i * Deg_Step)) * OUTTER_RADIUS + y = cos(radians(i * Deg_Step)) * OUTTER_RADIUS + verts.append([x, y, 0]) + # FaceStart_Inside = len(verts) # UNUSED + verts.append([0, FLAT_RADIUS, 0]) # 10 + verts.append([Flat_Half, FLAT_RADIUS, 0]) # 11 + verts.append([Flat_Half, Flat_Half, 0]) # 12 + verts.append([FLAT_RADIUS, Flat_Half, 0]) # 13 + verts.append([FLAT_RADIUS, 0, 0]) # 14 - verts.append([0,Flat_Half,0-HEIGHT]) #15 - verts.append([Flat_Half,Flat_Half,0-HEIGHT]) #16 - verts.append([Flat_Half,0,0-HEIGHT]) #17 + verts.append([0, Flat_Half, 0 - HEIGHT]) # 15 + verts.append([Flat_Half, Flat_Half, 0 - HEIGHT]) # 16 + verts.append([Flat_Half, 0, 0 - HEIGHT]) # 17 - verts.append([0,0,0-HEIGHT]) #18 + verts.append([0, 0, 0 - HEIGHT]) # 18 - faces.extend(Phillips_Fill(FaceStart_Outside,True)) + faces.extend(Phillips_Fill(FaceStart_Outside, True)) - Spin_Verts,Spin_Face = SpinDup(verts,faces,360,4,'z') + Spin_Verts, Spin_Face = SpinDup(verts, faces, 360, 4, 'z') - return Spin_Verts,Spin_Face,OUTTER_RADIUS * 2 + return Spin_Verts, Spin_Face, OUTTER_RADIUS * 2 -########################################################################################## -########################################################################################## -## Create Head Types -########################################################################################## -########################################################################################## +# #################################################################### +# Create Head Types +# #################################################################### def Max_Pan_Bit_Dia(HEAD_DIA): HEAD_RADIUS = HEAD_DIA * 0.5 XRad = HEAD_RADIUS * 1.976 - return (sin(radians(10))*XRad) * 2.0 + return (sin(radians(10)) * XRad) * 2.0 -def Create_Pan_Head(HOLE_DIA,HEAD_DIA,SHANK_DIA,HEIGHT,RAD1,RAD2,FACE_OFFSET,DIV_COUNT): +def Create_Pan_Head(HOLE_DIA, HEAD_DIA, SHANK_DIA, HEIGHT, RAD1, RAD2, FACE_OFFSET, DIV_COUNT): HOLE_RADIUS = HOLE_DIA * 0.5 HEAD_RADIUS = HEAD_DIA * 0.5 @@ -504,61 +487,58 @@ def Create_Pan_Head(HOLE_DIA,HEAD_DIA,SHANK_DIA,HEIGHT,RAD1,RAD2,FACE_OFFSET,DIV EndZOffset = HEAD_RADIUS * 0.432 HEIGHT = HEAD_RADIUS * 0.59 -# Dome_Rad = 5.6 -# RAD_Offset = 4.9 -# OtherRad = 0.8 -# OtherRad_X_Offset = 4.2 -# OtherRad_Z_Offset = 2.52 -# XRad = 9.88 -# ZRad = 8.84 -# EndRad = 1.42 -# EndZOffset = 2.16 -# HEIGHT = 2.95 - + """ + Dome_Rad = 5.6 + RAD_Offset = 4.9 + OtherRad = 0.8 + OtherRad_X_Offset = 4.2 + OtherRad_Z_Offset = 2.52 + XRad = 9.88 + ZRad = 8.84 + EndRad = 1.42 + EndZOffset = 2.16 + HEIGHT = 2.95 + """ FaceStart = FACE_OFFSET - z = cos(radians(10))*ZRad - verts.append([HOLE_RADIUS,0.0,(0.0-ZRad)+z]) - Start_Height = 0 - ((0.0-ZRad)+z) + z = cos(radians(10)) * ZRad + verts.append([HOLE_RADIUS, 0.0, (0.0 - ZRad) + z]) + Start_Height = 0 - ((0.0 - ZRad) + z) Row += 1 - #for i in range(0,30,10): was 0 to 30 more work needed to make this look good. - for i in range(10,30,10): - x = sin(radians(i))*XRad - z = cos(radians(i))*ZRad - verts.append([x,0.0,(0.0-ZRad)+z]) + # for i in range(0,30,10): was 0 to 30 more work needed to make this look good. + for i in range(10, 30, 10): + x = sin(radians(i)) * XRad + z = cos(radians(i)) * ZRad + verts.append([x, 0.0, (0.0 - ZRad) + z]) Row += 1 - for i in range(20,140,10): - x = sin(radians(i))*EndRad - z = cos(radians(i))*EndRad - if ((0.0 - EndZOffset)+z) < (0.0-HEIGHT): - verts.append([(HEAD_RADIUS -EndRad)+x,0.0,0.0 - HEIGHT]) + for i in range(20, 140, 10): + x = sin(radians(i)) * EndRad + z = cos(radians(i)) * EndRad + if ((0.0 - EndZOffset) + z) < (0.0 - HEIGHT): + verts.append([(HEAD_RADIUS - EndRad) + x, 0.0, 0.0 - HEIGHT]) else: - verts.append([(HEAD_RADIUS -EndRad)+x,0.0,(0.0 - EndZOffset)+z]) + verts.append([(HEAD_RADIUS - EndRad) + x, 0.0, (0.0 - EndZOffset) + z]) Row += 1 - - verts.append([SHANK_RADIUS,0.0,(0.0-HEIGHT)]) + verts.append([SHANK_RADIUS, 0.0, (0.0 - HEIGHT)]) Row += 1 - verts.append([SHANK_RADIUS,0.0,(0.0-HEIGHT)-Start_Height]) + verts.append([SHANK_RADIUS, 0.0, (0.0 - HEIGHT) - Start_Height]) Row += 1 + sVerts, sFaces = SpinDup(verts, faces, 360, DIV_COUNT, 'z') + sVerts.extend(verts) # add the start verts to the Spin verts to complete the loop - sVerts,sFaces = SpinDup(verts,faces,360,DIV_COUNT,'z') - sVerts.extend(verts) #add the start verts to the Spin verts to complete the loop - - faces.extend(Build_Face_List_Quads(FaceStart,Row-1,DIV_COUNT)) + faces.extend(Build_Face_List_Quads(FaceStart, Row - 1, DIV_COUNT)) # Global_Head_Height = HEIGHT # UNUSED - - return Move_Verts_Up_Z(sVerts,Start_Height),faces,HEIGHT - + return Move_Verts_Up_Z(sVerts, Start_Height), faces, HEIGHT -def Create_Dome_Head(HOLE_DIA,HEAD_DIA,SHANK_DIA,HEIGHT,RAD1,RAD2,FACE_OFFSET,DIV_COUNT): +def Create_Dome_Head(HOLE_DIA, HEAD_DIA, SHANK_DIA, HEIGHT, RAD1, RAD2, FACE_OFFSET, DIV_COUNT): HOLE_RADIUS = HOLE_DIA * 0.5 HEAD_RADIUS = HEAD_DIA * 0.5 SHANK_RADIUS = SHANK_DIA * 0.5 @@ -567,106 +547,95 @@ def Create_Dome_Head(HOLE_DIA,HEAD_DIA,SHANK_DIA,HEIGHT,RAD1,RAD2,FACE_OFFSET,DI faces = [] Row = 0 # BEVEL = HEIGHT * 0.01 # UNUSED - #Dome_Rad = HEAD_RADIUS * (1.0/1.75) + # Dome_Rad = HEAD_RADIUS * (1.0/1.75) - Dome_Rad = HEAD_RADIUS * 1.12 - #Head_Height = HEAD_RADIUS * 0.78 + Dome_Rad = HEAD_RADIUS * 1.12 + # Head_Height = HEAD_RADIUS * 0.78 RAD_Offset = HEAD_RADIUS * 0.98 Dome_Height = HEAD_RADIUS * 0.64 OtherRad = HEAD_RADIUS * 0.16 OtherRad_X_Offset = HEAD_RADIUS * 0.84 OtherRad_Z_Offset = HEAD_RADIUS * 0.504 - -# Dome_Rad = 5.6 -# RAD_Offset = 4.9 -# Dome_Height = 3.2 -# OtherRad = 0.8 -# OtherRad_X_Offset = 4.2 -# OtherRad_Z_Offset = 2.52 -# + """ + Dome_Rad = 5.6 + RAD_Offset = 4.9 + Dome_Height = 3.2 + OtherRad = 0.8 + OtherRad_X_Offset = 4.2 + OtherRad_Z_Offset = 2.52 + """ FaceStart = FACE_OFFSET - verts.append([HOLE_RADIUS,0.0,0.0]) + verts.append([HOLE_RADIUS, 0.0, 0.0]) Row += 1 - - for i in range(0,60,10): - x = sin(radians(i))*Dome_Rad - z = cos(radians(i))*Dome_Rad - if ((0.0-RAD_Offset)+z) <= 0: - verts.append([x,0.0,(0.0-RAD_Offset)+z]) + for i in range(0, 60, 10): + x = sin(radians(i)) * Dome_Rad + z = cos(radians(i)) * Dome_Rad + if ((0.0 - RAD_Offset) + z) <= 0: + verts.append([x, 0.0, (0.0 - RAD_Offset) + z]) Row += 1 - - for i in range(60,160,10): - x = sin(radians(i))*OtherRad - z = cos(radians(i))*OtherRad - z = (0.0-OtherRad_Z_Offset)+z - if z < (0.0-Dome_Height): - z = (0.0-Dome_Height) - verts.append([OtherRad_X_Offset+x,0.0,z]) + for i in range(60, 160, 10): + x = sin(radians(i)) * OtherRad + z = cos(radians(i)) * OtherRad + z = (0.0 - OtherRad_Z_Offset) + z + if z < (0.0 - Dome_Height): + z = (0.0 - Dome_Height) + verts.append([OtherRad_X_Offset + x, 0.0, z]) Row += 1 - verts.append([SHANK_RADIUS,0.0,(0.0-Dome_Height)]) + verts.append([SHANK_RADIUS, 0.0, (0.0 - Dome_Height)]) Row += 1 + sVerts, sFaces = SpinDup(verts, faces, 360, DIV_COUNT, 'z') + sVerts.extend(verts) # add the start verts to the Spin verts to complete the loop - sVerts,sFaces = SpinDup(verts,faces,360,DIV_COUNT,'z') - sVerts.extend(verts) #add the start verts to the Spin verts to complete the loop - - faces.extend(Build_Face_List_Quads(FaceStart,Row-1,DIV_COUNT)) + faces.extend(Build_Face_List_Quads(FaceStart, Row - 1, DIV_COUNT)) - return sVerts,faces,Dome_Height + return sVerts, faces, Dome_Height - -def Create_CounterSink_Head(HOLE_DIA,HEAD_DIA,SHANK_DIA,HEIGHT,RAD1,DIV_COUNT): +def Create_CounterSink_Head(HOLE_DIA, HEAD_DIA, SHANK_DIA, HEIGHT, RAD1, DIV_COUNT): HOLE_RADIUS = HOLE_DIA * 0.5 HEAD_RADIUS = HEAD_DIA * 0.5 SHANK_RADIUS = SHANK_DIA * 0.5 - verts = [] faces = [] Row = 0 -# HEAD_RADIUS = (HEIGHT/tan(radians(60))) + SHANK_RADIUS + # HEAD_RADIUS = (HEIGHT/tan(radians(60))) + SHANK_RADIUS HEIGHT = tan(radians(60)) * (HEAD_RADIUS - SHANK_RADIUS) - #print (RAD1) + # print(RAD1) FaceStart = len(verts) - verts.append([HOLE_RADIUS,0.0,0.0]) + verts.append([HOLE_RADIUS, 0.0, 0.0]) Row += 1 - #rad - - for i in range(0,100,10): - x = sin(radians(i))*RAD1 - z = cos(radians(i))*RAD1 - verts.append([(HEAD_RADIUS-RAD1)+x,0.0,(0.0-RAD1)+z]) + # rad + for i in range(0, 100, 10): + x = sin(radians(i)) * RAD1 + z = cos(radians(i)) * RAD1 + verts.append([(HEAD_RADIUS - RAD1) + x, 0.0, (0.0 - RAD1) + z]) Row += 1 - - verts.append([SHANK_RADIUS,0.0,0.0-HEIGHT]) + verts.append([SHANK_RADIUS, 0.0, 0.0 - HEIGHT]) Row += 1 + sVerts, sFaces = SpinDup(verts, faces, 360, DIV_COUNT, 'z') + sVerts.extend(verts) # add the start verts to the Spin verts to complete the loop - sVerts,sFaces = SpinDup(verts,faces,360,DIV_COUNT,'z') - sVerts.extend(verts) #add the start verts to the Spin verts to complete the loop - - - faces.extend(Build_Face_List_Quads(FaceStart,Row-1,DIV_COUNT,1)) + faces.extend(Build_Face_List_Quads(FaceStart, Row - 1, DIV_COUNT, 1)) - return sVerts,faces,HEIGHT + return sVerts, faces, HEIGHT - - -def Create_Cap_Head(HOLE_DIA,HEAD_DIA,SHANK_DIA,HEIGHT,RAD1,RAD2,DIV_COUNT): +def Create_Cap_Head(HOLE_DIA, HEAD_DIA, SHANK_DIA, HEIGHT, RAD1, RAD2, DIV_COUNT): HOLE_RADIUS = HOLE_DIA * 0.5 HEAD_RADIUS = HEAD_DIA * 0.5 @@ -677,613 +646,580 @@ def Create_Cap_Head(HOLE_DIA,HEAD_DIA,SHANK_DIA,HEIGHT,RAD1,RAD2,DIV_COUNT): Row = 0 BEVEL = HEIGHT * 0.01 - FaceStart = len(verts) - verts.append([HOLE_RADIUS,0.0,0.0]) + verts.append([HOLE_RADIUS, 0.0, 0.0]) Row += 1 - #rad - - for i in range(0,100,10): - x = sin(radians(i))*RAD1 - z = cos(radians(i))*RAD1 - verts.append([(HEAD_RADIUS-RAD1)+x,0.0,(0.0-RAD1)+z]) + # rad + for i in range(0, 100, 10): + x = sin(radians(i)) * RAD1 + z = cos(radians(i)) * RAD1 + verts.append([(HEAD_RADIUS - RAD1) + x, 0.0, (0.0 - RAD1) + z]) Row += 1 - - verts.append([HEAD_RADIUS,0.0,0.0-HEIGHT+BEVEL]) + verts.append([HEAD_RADIUS, 0.0, 0.0 - HEIGHT + BEVEL]) Row += 1 - verts.append([HEAD_RADIUS-BEVEL,0.0,0.0-HEIGHT]) + verts.append([HEAD_RADIUS - BEVEL, 0.0, 0.0 - HEIGHT]) Row += 1 - #rad2 - - for i in range(0,100,10): - x = sin(radians(i))*RAD2 - z = cos(radians(i))*RAD2 - verts.append([(SHANK_RADIUS+RAD2)-x,0.0,(0.0-HEIGHT-RAD2)+z]) + # rad2 + for i in range(0, 100, 10): + x = sin(radians(i)) * RAD2 + z = cos(radians(i)) * RAD2 + verts.append([(SHANK_RADIUS + RAD2) - x, 0.0, (0.0 - HEIGHT - RAD2) + z]) Row += 1 + sVerts, sFaces = SpinDup(verts, faces, 360, DIV_COUNT, 'z') + sVerts.extend(verts) # add the start verts to the Spin verts to complete the loop - sVerts,sFaces = SpinDup(verts,faces,360,DIV_COUNT,'z') - sVerts.extend(verts) #add the start verts to the Spin verts to complete the loop - - - faces.extend(Build_Face_List_Quads(FaceStart,Row-1,DIV_COUNT)) + faces.extend(Build_Face_List_Quads(FaceStart, Row - 1, DIV_COUNT)) - return sVerts,faces,HEIGHT+RAD2 + return sVerts, faces, HEIGHT + RAD2 -def Create_Hex_Head(FLAT,HOLE_DIA,SHANK_DIA,HEIGHT): +def Create_Hex_Head(FLAT, HOLE_DIA, SHANK_DIA, HEIGHT): verts = [] faces = [] HOLE_RADIUS = HOLE_DIA * 0.5 - Half_Flat = FLAT/2 - TopBevelRadius = Half_Flat - (Half_Flat* (0.05/8)) - Undercut_Height = (Half_Flat* (0.05/8)) - Shank_Bevel = (Half_Flat* (0.05/8)) + Half_Flat = FLAT / 2 + TopBevelRadius = Half_Flat - (Half_Flat * (0.05 / 8)) + Undercut_Height = (Half_Flat * (0.05 / 8)) + Shank_Bevel = (Half_Flat * (0.05 / 8)) Flat_Height = HEIGHT - Undercut_Height - Shank_Bevel - #Undercut_Height = 5 - SHANK_RADIUS = SHANK_DIA/2 - Row = 0; - - verts.append([0.0,0.0,0.0]) + # Undercut_Height = 5 + SHANK_RADIUS = SHANK_DIA / 2 + Row = 0 + verts.append([0.0, 0.0, 0.0]) FaceStart = len(verts) - #inner hole - x = sin(radians(0))*HOLE_RADIUS - y = cos(radians(0))*HOLE_RADIUS - verts.append([x,y,0.0]) + # inner hole + x = sin(radians(0)) * HOLE_RADIUS + y = cos(radians(0)) * HOLE_RADIUS + verts.append([x, y, 0.0]) + x = sin(radians(60 / 6)) * HOLE_RADIUS + y = cos(radians(60 / 6)) * HOLE_RADIUS + verts.append([x, y, 0.0]) - x = sin(radians(60/6))*HOLE_RADIUS - y = cos(radians(60/6))*HOLE_RADIUS - verts.append([x,y,0.0]) + x = sin(radians(60 / 3)) * HOLE_RADIUS + y = cos(radians(60 / 3)) * HOLE_RADIUS + verts.append([x, y, 0.0]) - - x = sin(radians(60/3))*HOLE_RADIUS - y = cos(radians(60/3))*HOLE_RADIUS - verts.append([x,y,0.0]) - - - x = sin(radians(60/2))*HOLE_RADIUS - y = cos(radians(60/2))*HOLE_RADIUS - verts.append([x,y,0.0]) + x = sin(radians(60 / 2)) * HOLE_RADIUS + y = cos(radians(60 / 2)) * HOLE_RADIUS + verts.append([x, y, 0.0]) Row += 1 - #bevel - - x = sin(radians(0))*TopBevelRadius - y = cos(radians(0))*TopBevelRadius - vec1 = mathutils.Vector([x,y,0.0]) - verts.append([x,y,0.0]) - - - x = sin(radians(60/6))*TopBevelRadius - y = cos(radians(60/6))*TopBevelRadius - vec2 = mathutils.Vector([x,y,0.0]) - verts.append([x,y,0.0]) - - - x = sin(radians(60/3))*TopBevelRadius - y = cos(radians(60/3))*TopBevelRadius - vec3 = mathutils.Vector([x,y,0.0]) - verts.append([x,y,0.0]) - - - x = sin(radians(60/2))*TopBevelRadius - y = cos(radians(60/2))*TopBevelRadius - vec4 = mathutils.Vector([x,y,0.0]) - verts.append([x,y,0.0]) + # bevel + x = sin(radians(0)) * TopBevelRadius + y = cos(radians(0)) * TopBevelRadius + vec1 = Vector([x, y, 0.0]) + verts.append([x, y, 0.0]) + + x = sin(radians(60 / 6)) * TopBevelRadius + y = cos(radians(60 / 6)) * TopBevelRadius + vec2 = Vector([x, y, 0.0]) + verts.append([x, y, 0.0]) + + x = sin(radians(60 / 3)) * TopBevelRadius + y = cos(radians(60 / 3)) * TopBevelRadius + vec3 = Vector([x, y, 0.0]) + verts.append([x, y, 0.0]) + + x = sin(radians(60 / 2)) * TopBevelRadius + y = cos(radians(60 / 2)) * TopBevelRadius + vec4 = Vector([x, y, 0.0]) + verts.append([x, y, 0.0]) Row += 1 - #Flats - - x = tan(radians(0))*Half_Flat - dvec = vec1 - mathutils.Vector([x,Half_Flat,0.0]) - verts.append([x,Half_Flat,-dvec.length]) + # Flats + x = tan(radians(0)) * Half_Flat + dvec = vec1 - Vector([x, Half_Flat, 0.0]) + verts.append([x, Half_Flat, -dvec.length]) + x = tan(radians(60 / 6)) * Half_Flat + dvec = vec2 - Vector([x, Half_Flat, 0.0]) + verts.append([x, Half_Flat, -dvec.length]) - x = tan(radians(60/6))*Half_Flat - dvec = vec2 - mathutils.Vector([x,Half_Flat,0.0]) - verts.append([x,Half_Flat,-dvec.length]) - - - x = tan(radians(60/3))*Half_Flat - dvec = vec3 - mathutils.Vector([x,Half_Flat,0.0]) + x = tan(radians(60 / 3)) * Half_Flat + dvec = vec3 - Vector([x, Half_Flat, 0.0]) Lowest_Point = -dvec.length - verts.append([x,Half_Flat,-dvec.length]) - + verts.append([x, Half_Flat, -dvec.length]) - x = tan(radians(60/2))*Half_Flat - dvec = vec4 - mathutils.Vector([x,Half_Flat,0.0]) + x = tan(radians(60 / 2)) * Half_Flat + dvec = vec4 - Vector([x, Half_Flat, 0.0]) Lowest_Point = -dvec.length - verts.append([x,Half_Flat,-dvec.length]) + verts.append([x, Half_Flat, -dvec.length]) Row += 1 - #down Bits Tri - x = tan(radians(0))*Half_Flat - verts.append([x,Half_Flat,Lowest_Point]) + # down Bits Tri + x = tan(radians(0)) * Half_Flat + verts.append([x, Half_Flat, Lowest_Point]) - x = tan(radians(60/6))*Half_Flat - verts.append([x,Half_Flat,Lowest_Point]) + x = tan(radians(60 / 6)) * Half_Flat + verts.append([x, Half_Flat, Lowest_Point]) - x = tan(radians(60/3))*Half_Flat - verts.append([x,Half_Flat,Lowest_Point]) + x = tan(radians(60 / 3)) * Half_Flat + verts.append([x, Half_Flat, Lowest_Point]) - x = tan(radians(60/2))*Half_Flat - verts.append([x,Half_Flat,Lowest_Point]) + x = tan(radians(60 / 2)) * Half_Flat + verts.append([x, Half_Flat, Lowest_Point]) Row += 1 - #down Bits + # down Bits - x = tan(radians(0))*Half_Flat - verts.append([x,Half_Flat,-Flat_Height]) + x = tan(radians(0)) * Half_Flat + verts.append([x, Half_Flat, -Flat_Height]) - x = tan(radians(60/6))*Half_Flat - verts.append([x,Half_Flat,-Flat_Height]) + x = tan(radians(60 / 6)) * Half_Flat + verts.append([x, Half_Flat, -Flat_Height]) - x = tan(radians(60/3))*Half_Flat - verts.append([x,Half_Flat,-Flat_Height]) + x = tan(radians(60 / 3)) * Half_Flat + verts.append([x, Half_Flat, -Flat_Height]) - x = tan(radians(60/2))*Half_Flat - verts.append([x,Half_Flat,-Flat_Height]) + x = tan(radians(60 / 2)) * Half_Flat + verts.append([x, Half_Flat, -Flat_Height]) Row += 1 - - #under cut - - x = sin(radians(0))*Half_Flat - y = cos(radians(0))*Half_Flat - vec1 = mathutils.Vector([x,y,0.0]) - verts.append([x,y,-Flat_Height]) - - x = sin(radians(60/6))*Half_Flat - y = cos(radians(60/6))*Half_Flat - vec2 = mathutils.Vector([x,y,0.0]) - verts.append([x,y,-Flat_Height]) - - x = sin(radians(60/3))*Half_Flat - y = cos(radians(60/3))*Half_Flat - vec3 = mathutils.Vector([x,y,0.0]) - verts.append([x,y,-Flat_Height]) - - x = sin(radians(60/2))*Half_Flat - y = cos(radians(60/2))*Half_Flat - vec3 = mathutils.Vector([x,y,0.0]) - verts.append([x,y,-Flat_Height]) + # Under cut + x = sin(radians(0)) * Half_Flat + y = cos(radians(0)) * Half_Flat + vec1 = Vector([x, y, 0.0]) + verts.append([x, y, -Flat_Height]) + + x = sin(radians(60 / 6)) * Half_Flat + y = cos(radians(60 / 6)) * Half_Flat + vec2 = Vector([x, y, 0.0]) + verts.append([x, y, -Flat_Height]) + + x = sin(radians(60 / 3)) * Half_Flat + y = cos(radians(60 / 3)) * Half_Flat + vec3 = Vector([x, y, 0.0]) + verts.append([x, y, -Flat_Height]) + + x = sin(radians(60 / 2)) * Half_Flat + y = cos(radians(60 / 2)) * Half_Flat + vec3 = Vector([x, y, 0.0]) + verts.append([x, y, -Flat_Height]) Row += 1 - #under cut down bit - x = sin(radians(0))*Half_Flat - y = cos(radians(0))*Half_Flat - vec1 = mathutils.Vector([x,y,0.0]) - verts.append([x,y,-Flat_Height-Undercut_Height]) - - x = sin(radians(60/6))*Half_Flat - y = cos(radians(60/6))*Half_Flat - vec2 = mathutils.Vector([x,y,0.0]) - verts.append([x,y,-Flat_Height-Undercut_Height]) - - x = sin(radians(60/3))*Half_Flat - y = cos(radians(60/3))*Half_Flat - vec3 = mathutils.Vector([x,y,0.0]) - verts.append([x,y,-Flat_Height-Undercut_Height]) - - x = sin(radians(60/2))*Half_Flat - y = cos(radians(60/2))*Half_Flat - vec3 = mathutils.Vector([x,y,0.0]) - verts.append([x,y,-Flat_Height-Undercut_Height]) + # Under cut down bit + x = sin(radians(0)) * Half_Flat + y = cos(radians(0)) * Half_Flat + vec1 = Vector([x, y, 0.0]) + verts.append([x, y, -Flat_Height - Undercut_Height]) + + x = sin(radians(60 / 6)) * Half_Flat + y = cos(radians(60 / 6)) * Half_Flat + vec2 = Vector([x, y, 0.0]) + verts.append([x, y, -Flat_Height - Undercut_Height]) + + x = sin(radians(60 / 3)) * Half_Flat + y = cos(radians(60 / 3)) * Half_Flat + vec3 = Vector([x, y, 0.0]) + verts.append([x, y, -Flat_Height - Undercut_Height]) + + x = sin(radians(60 / 2)) * Half_Flat + y = cos(radians(60 / 2)) * Half_Flat + vec3 = Vector([x, y, 0.0]) + verts.append([x, y, -Flat_Height - Undercut_Height]) Row += 1 - #under cut to Shank BEVEAL - x = sin(radians(0))*(SHANK_RADIUS+Shank_Bevel) - y = cos(radians(0))*(SHANK_RADIUS+Shank_Bevel) - vec1 = mathutils.Vector([x,y,0.0]) - verts.append([x,y,-Flat_Height-Undercut_Height]) - - x = sin(radians(60/6))*(SHANK_RADIUS+Shank_Bevel) - y = cos(radians(60/6))*(SHANK_RADIUS+Shank_Bevel) - vec2 = mathutils.Vector([x,y,0.0]) - verts.append([x,y,-Flat_Height-Undercut_Height]) - - x = sin(radians(60/3))*(SHANK_RADIUS+Shank_Bevel) - y = cos(radians(60/3))*(SHANK_RADIUS+Shank_Bevel) - vec3 = mathutils.Vector([x,y,0.0]) - verts.append([x,y,-Flat_Height-Undercut_Height]) - - x = sin(radians(60/2))*(SHANK_RADIUS+Shank_Bevel) - y = cos(radians(60/2))*(SHANK_RADIUS+Shank_Bevel) - vec3 = mathutils.Vector([x,y,0.0]) - verts.append([x,y,-Flat_Height-Undercut_Height]) + # Under cut to Shank BEVEL + x = sin(radians(0)) * (SHANK_RADIUS + Shank_Bevel) + y = cos(radians(0)) * (SHANK_RADIUS + Shank_Bevel) + vec1 = Vector([x, y, 0.0]) + verts.append([x, y, -Flat_Height - Undercut_Height]) + + x = sin(radians(60 / 6)) * (SHANK_RADIUS + Shank_Bevel) + y = cos(radians(60 / 6)) * (SHANK_RADIUS + Shank_Bevel) + vec2 = Vector([x, y, 0.0]) + verts.append([x, y, -Flat_Height - Undercut_Height]) + + x = sin(radians(60 / 3)) * (SHANK_RADIUS + Shank_Bevel) + y = cos(radians(60 / 3)) * (SHANK_RADIUS + Shank_Bevel) + vec3 = Vector([x, y, 0.0]) + verts.append([x, y, -Flat_Height - Undercut_Height]) + + x = sin(radians(60 / 2)) * (SHANK_RADIUS + Shank_Bevel) + y = cos(radians(60 / 2)) * (SHANK_RADIUS + Shank_Bevel) + vec3 = Vector([x, y, 0.0]) + verts.append([x, y, -Flat_Height - Undercut_Height]) Row += 1 - #under cut to Shank BEVEAL - x = sin(radians(0))*SHANK_RADIUS - y = cos(radians(0))*SHANK_RADIUS - vec1 = mathutils.Vector([x,y,0.0]) - verts.append([x,y,-Flat_Height-Undercut_Height-Shank_Bevel]) - - x = sin(radians(60/6))*SHANK_RADIUS - y = cos(radians(60/6))*SHANK_RADIUS - vec2 = mathutils.Vector([x,y,0.0]) - verts.append([x,y,-Flat_Height-Undercut_Height-Shank_Bevel]) - - x = sin(radians(60/3))*SHANK_RADIUS - y = cos(radians(60/3))*SHANK_RADIUS - vec3 = mathutils.Vector([x,y,0.0]) - verts.append([x,y,-Flat_Height-Undercut_Height-Shank_Bevel]) - - x = sin(radians(60/2))*SHANK_RADIUS - y = cos(radians(60/2))*SHANK_RADIUS - vec3 = mathutils.Vector([x,y,0.0]) - verts.append([x,y,-Flat_Height-Undercut_Height-Shank_Bevel]) + # Under cut to Shank BEVEL + x = sin(radians(0)) * SHANK_RADIUS + y = cos(radians(0)) * SHANK_RADIUS + vec1 = Vector([x, y, 0.0]) + verts.append([x, y, -Flat_Height - Undercut_Height - Shank_Bevel]) + + x = sin(radians(60 / 6)) * SHANK_RADIUS + y = cos(radians(60 / 6)) * SHANK_RADIUS + vec2 = Vector([x, y, 0.0]) + verts.append([x, y, -Flat_Height - Undercut_Height - Shank_Bevel]) + + x = sin(radians(60 / 3)) * SHANK_RADIUS + y = cos(radians(60 / 3)) * SHANK_RADIUS + vec3 = Vector([x, y, 0.0]) + verts.append([x, y, -Flat_Height - Undercut_Height - Shank_Bevel]) + + x = sin(radians(60 / 2)) * SHANK_RADIUS + y = cos(radians(60 / 2)) * SHANK_RADIUS + vec3 = Vector([x, y, 0.0]) + verts.append([x, y, -Flat_Height - Undercut_Height - Shank_Bevel]) Row += 1 + # Global_Head_Height = 0 - (-HEIGHT-0.1) + faces.extend(Build_Face_List_Quads(FaceStart, 3, Row - 1)) - #Global_Head_Height = 0 - (-HEIGHT-0.1) - faces.extend(Build_Face_List_Quads(FaceStart,3,Row - 1)) - - - Mirror_Verts,Mirror_Faces = Mirror_Verts_Faces(verts,faces,'y') + Mirror_Verts, Mirror_Faces = Mirror_Verts_Faces(verts, faces, 'y') verts.extend(Mirror_Verts) faces.extend(Mirror_Faces) - Spin_Verts,Spin_Faces = SpinDup(verts,faces,360,6,'z') + Spin_Verts, Spin_Faces = SpinDup(verts, faces, 360, 6, 'z') + return Spin_Verts, Spin_Faces, 0 - (-HEIGHT) - return Spin_Verts,Spin_Faces,0 - (-HEIGHT) +# #################################################################### +# Create External Thread +# #################################################################### -########################################################################################## -########################################################################################## -## Create External Thread -########################################################################################## -########################################################################################## +def Thread_Start3(verts, INNER_RADIUS, OUTTER_RADIUS, PITCH, DIV_COUNT, + CREST_PERCENT, ROOT_PERCENT, Height_Offset): - -def Thread_Start3(verts,INNER_RADIUS,OUTTER_RADIUS,PITCH,DIV_COUNT,CREST_PERCENT,ROOT_PERCENT,Height_Offset): - - - Ret_Row = 0; + Ret_Row = 0 # Half_Pitch = float(PITCH)/2 # UNUSED Height_Start = Height_Offset - PITCH - Height_Step = float(PITCH)/float(DIV_COUNT) - Deg_Step = 360.0 /float(DIV_COUNT) + Height_Step = float(PITCH) / float(DIV_COUNT) + Deg_Step = 360.0 / float(DIV_COUNT) - Crest_Height = float(PITCH) * float(CREST_PERCENT)/float(100) - Root_Height = float(PITCH) * float(ROOT_PERCENT)/float(100) - Root_to_Crest_Height = Crest_to_Root_Height = (float(PITCH) - (Crest_Height + Root_Height))/2.0 + Crest_Height = float(PITCH) * float(CREST_PERCENT) / float(100) + Root_Height = float(PITCH) * float(ROOT_PERCENT) / float(100) + Root_to_Crest_Height = Crest_to_Root_Height = (float(PITCH) - (Crest_Height + Root_Height)) / 2.0 -#theard start - - Rank = float(OUTTER_RADIUS - INNER_RADIUS)/float(DIV_COUNT) + # thread start + Rank = float(OUTTER_RADIUS - INNER_RADIUS) / float(DIV_COUNT) for j in range(4): - for i in range(DIV_COUNT+1): - z = Height_Offset - (Height_Step*i) + for i in range(DIV_COUNT + 1): + z = Height_Offset - (Height_Step * i) if z > Height_Start: z = Height_Start - x = sin(radians(i*Deg_Step))*OUTTER_RADIUS - y = cos(radians(i*Deg_Step))*OUTTER_RADIUS - verts.append([x,y,z]) + x = sin(radians(i * Deg_Step)) * OUTTER_RADIUS + y = cos(radians(i * Deg_Step)) * OUTTER_RADIUS + verts.append([x, y, z]) Height_Offset -= Crest_Height Ret_Row += 1 - for i in range(DIV_COUNT+1): - z = Height_Offset - (Height_Step*i) + for i in range(DIV_COUNT + 1): + z = Height_Offset - (Height_Step * i) if z > Height_Start: z = Height_Start - x = sin(radians(i*Deg_Step))*OUTTER_RADIUS - y = cos(radians(i*Deg_Step))*OUTTER_RADIUS - verts.append([x,y,z ]) + x = sin(radians(i * Deg_Step)) * OUTTER_RADIUS + y = cos(radians(i * Deg_Step)) * OUTTER_RADIUS + verts.append([x, y, z]) Height_Offset -= Crest_to_Root_Height Ret_Row += 1 - - for i in range(DIV_COUNT+1): - z = Height_Offset - (Height_Step*i) + for i in range(DIV_COUNT + 1): + z = Height_Offset - (Height_Step * i) if z > Height_Start: z = Height_Start - x = sin(radians(i*Deg_Step))*INNER_RADIUS - y = cos(radians(i*Deg_Step))*INNER_RADIUS + x = sin(radians(i * Deg_Step)) * INNER_RADIUS + y = cos(radians(i * Deg_Step)) * INNER_RADIUS if j == 0: - x = sin(radians(i*Deg_Step))*(OUTTER_RADIUS - (i*Rank)) - y = cos(radians(i*Deg_Step))*(OUTTER_RADIUS - (i*Rank)) - verts.append([x,y,z ]) + x = sin(radians(i * Deg_Step)) * (OUTTER_RADIUS - (i * Rank)) + y = cos(radians(i * Deg_Step)) * (OUTTER_RADIUS - (i * Rank)) + verts.append([x, y, z]) Height_Offset -= Root_Height Ret_Row += 1 - for i in range(DIV_COUNT+1): - z = Height_Offset - (Height_Step*i) + for i in range(DIV_COUNT + 1): + z = Height_Offset - (Height_Step * i) if z > Height_Start: z = Height_Start - x = sin(radians(i*Deg_Step))*INNER_RADIUS - y = cos(radians(i*Deg_Step))*INNER_RADIUS + x = sin(radians(i * Deg_Step)) * INNER_RADIUS + y = cos(radians(i * Deg_Step)) * INNER_RADIUS if j == 0: - x = sin(radians(i*Deg_Step))*(OUTTER_RADIUS - (i*Rank)) - y = cos(radians(i*Deg_Step))*(OUTTER_RADIUS - (i*Rank)) - verts.append([x,y,z ]) + x = sin(radians(i * Deg_Step)) * (OUTTER_RADIUS - (i * Rank)) + y = cos(radians(i * Deg_Step)) * (OUTTER_RADIUS - (i * Rank)) + verts.append([x, y, z]) Height_Offset -= Root_to_Crest_Height Ret_Row += 1 - return Ret_Row,Height_Offset + return Ret_Row, Height_Offset -def Create_Shank_Verts(START_DIA,OUTTER_DIA,LENGTH,Z_LOCATION,DIV_COUNT): +def Create_Shank_Verts(START_DIA, OUTTER_DIA, LENGTH, Z_LOCATION, DIV_COUNT): verts = [] - START_RADIUS = START_DIA/2 - OUTTER_RADIUS = OUTTER_DIA/2 + START_RADIUS = START_DIA / 2 + OUTTER_RADIUS = OUTTER_DIA / 2 Opp = abs(START_RADIUS - OUTTER_RADIUS) - Taper_Lentgh = Opp/tan(radians(31)); + Taper_Lentgh = Opp / tan(radians(31)) if Taper_Lentgh > LENGTH: Taper_Lentgh = 0 Stright_Length = LENGTH - Taper_Lentgh - Deg_Step = 360.0 /float(DIV_COUNT) + Deg_Step = 360.0 / float(DIV_COUNT) Row = 0 - Lowest_Z_Vert = 0; + Lowest_Z_Vert = 0 Height_Offset = Z_LOCATION - - #ring - for i in range(DIV_COUNT+1): - x = sin(radians(i*Deg_Step))*START_RADIUS - y = cos(radians(i*Deg_Step))*START_RADIUS - z = Height_Offset - 0 - verts.append([x,y,z]) - Lowest_Z_Vert = min(Lowest_Z_Vert,z) + # Ring + for i in range(DIV_COUNT + 1): + x = sin(radians(i * Deg_Step)) * START_RADIUS + y = cos(radians(i * Deg_Step)) * START_RADIUS + z = Height_Offset - 0 + verts.append([x, y, z]) + Lowest_Z_Vert = min(Lowest_Z_Vert, z) Height_Offset -= Stright_Length Row += 1 - for i in range(DIV_COUNT+1): - x = sin(radians(i*Deg_Step))*START_RADIUS - y = cos(radians(i*Deg_Step))*START_RADIUS - z = Height_Offset - 0 - verts.append([x,y,z]) - Lowest_Z_Vert = min(Lowest_Z_Vert,z) + for i in range(DIV_COUNT + 1): + x = sin(radians(i * Deg_Step)) * START_RADIUS + y = cos(radians(i * Deg_Step)) * START_RADIUS + z = Height_Offset - 0 + verts.append([x, y, z]) + Lowest_Z_Vert = min(Lowest_Z_Vert, z) Height_Offset -= Taper_Lentgh Row += 1 - - return verts,Row,Height_Offset + return verts, Row, Height_Offset -def Create_Thread_Start_Verts(INNER_DIA,OUTTER_DIA,PITCH,CREST_PERCENT,ROOT_PERCENT,Z_LOCATION,DIV_COUNT): +def Create_Thread_Start_Verts(INNER_DIA, OUTTER_DIA, PITCH, CREST_PERCENT, + ROOT_PERCENT, Z_LOCATION, DIV_COUNT): verts = [] - INNER_RADIUS = INNER_DIA/2 - OUTTER_RADIUS = OUTTER_DIA/2 + INNER_RADIUS = INNER_DIA / 2 + OUTTER_RADIUS = OUTTER_DIA / 2 # Half_Pitch = float(PITCH)/2 # UNUSED - Deg_Step = 360.0 /float(DIV_COUNT) - Height_Step = float(PITCH)/float(DIV_COUNT) + Deg_Step = 360.0 / float(DIV_COUNT) + Height_Step = float(PITCH) / float(DIV_COUNT) Row = 0 - Lowest_Z_Vert = 0; + Lowest_Z_Vert = 0 Height_Offset = Z_LOCATION Height_Start = Height_Offset - Crest_Height = float(PITCH) * float(CREST_PERCENT)/float(100) - Root_Height = float(PITCH) * float(ROOT_PERCENT)/float(100) - Root_to_Crest_Height = Crest_to_Root_Height = (float(PITCH) - (Crest_Height + Root_Height))/2.0 + Crest_Height = float(PITCH) * float(CREST_PERCENT) / float(100) + Root_Height = float(PITCH) * float(ROOT_PERCENT) / float(100) + Root_to_Crest_Height = Crest_to_Root_Height = (float(PITCH) - (Crest_Height + Root_Height)) / 2.0 - Rank = float(OUTTER_RADIUS - INNER_RADIUS)/float(DIV_COUNT) + Rank = float(OUTTER_RADIUS - INNER_RADIUS) / float(DIV_COUNT) Height_Offset = Z_LOCATION + PITCH Cut_off = Z_LOCATION - for j in range(1): - for i in range(DIV_COUNT+1): - x = sin(radians(i*Deg_Step))*OUTTER_RADIUS - y = cos(radians(i*Deg_Step))*OUTTER_RADIUS - z = Height_Offset - (Height_Step*i) - if z > Cut_off : z = Cut_off - verts.append([x,y,z]) - Lowest_Z_Vert = min(Lowest_Z_Vert,z) + for i in range(DIV_COUNT + 1): + x = sin(radians(i * Deg_Step)) * OUTTER_RADIUS + y = cos(radians(i * Deg_Step)) * OUTTER_RADIUS + z = Height_Offset - (Height_Step * i) + if z > Cut_off: + z = Cut_off + verts.append([x, y, z]) + Lowest_Z_Vert = min(Lowest_Z_Vert, z) Height_Offset -= Crest_Height Row += 1 - for i in range(DIV_COUNT+1): - x = sin(radians(i*Deg_Step))*OUTTER_RADIUS - y = cos(radians(i*Deg_Step))*OUTTER_RADIUS - z = Height_Offset - (Height_Step*i) - if z > Cut_off : z = Cut_off - verts.append([x,y,z]) - Lowest_Z_Vert = min(Lowest_Z_Vert,z) + for i in range(DIV_COUNT + 1): + x = sin(radians(i * Deg_Step)) * OUTTER_RADIUS + y = cos(radians(i * Deg_Step)) * OUTTER_RADIUS + z = Height_Offset - (Height_Step * i) + if z > Cut_off: + z = Cut_off + verts.append([x, y, z]) + Lowest_Z_Vert = min(Lowest_Z_Vert, z) Height_Offset -= Crest_to_Root_Height Row += 1 - for i in range(DIV_COUNT+1): - x = sin(radians(i*Deg_Step))*OUTTER_RADIUS - y = cos(radians(i*Deg_Step))*OUTTER_RADIUS - z = Height_Offset - (Height_Step*i) - if z > Cut_off : z = Cut_off - verts.append([x,y,z]) - Lowest_Z_Vert = min(Lowest_Z_Vert,z) + for i in range(DIV_COUNT + 1): + x = sin(radians(i * Deg_Step)) * OUTTER_RADIUS + y = cos(radians(i * Deg_Step)) * OUTTER_RADIUS + z = Height_Offset - (Height_Step * i) + if z > Cut_off: + z = Cut_off + verts.append([x, y, z]) + Lowest_Z_Vert = min(Lowest_Z_Vert, z) Height_Offset -= Root_Height Row += 1 - for i in range(DIV_COUNT+1): - x = sin(radians(i*Deg_Step))*OUTTER_RADIUS - y = cos(radians(i*Deg_Step))*OUTTER_RADIUS - z = Height_Offset - (Height_Step*i) - if z > Cut_off : z = Cut_off - verts.append([x,y,z]) - Lowest_Z_Vert = min(Lowest_Z_Vert,z) + for i in range(DIV_COUNT + 1): + x = sin(radians(i * Deg_Step)) * OUTTER_RADIUS + y = cos(radians(i * Deg_Step)) * OUTTER_RADIUS + z = Height_Offset - (Height_Step * i) + if z > Cut_off: + z = Cut_off + verts.append([x, y, z]) + Lowest_Z_Vert = min(Lowest_Z_Vert, z) Height_Offset -= Root_to_Crest_Height Row += 1 - for j in range(2): - for i in range(DIV_COUNT+1): - z = Height_Offset - (Height_Step*i) + for i in range(DIV_COUNT + 1): + z = Height_Offset - (Height_Step * i) if z > Height_Start: z = Height_Start - x = sin(radians(i*Deg_Step))*OUTTER_RADIUS - y = cos(radians(i*Deg_Step))*OUTTER_RADIUS - verts.append([x,y,z]) - Lowest_Z_Vert = min(Lowest_Z_Vert,z) + x = sin(radians(i * Deg_Step)) * OUTTER_RADIUS + y = cos(radians(i * Deg_Step)) * OUTTER_RADIUS + verts.append([x, y, z]) + Lowest_Z_Vert = min(Lowest_Z_Vert, z) Height_Offset -= Crest_Height Row += 1 - for i in range(DIV_COUNT+1): - z = Height_Offset - (Height_Step*i) + for i in range(DIV_COUNT + 1): + z = Height_Offset - (Height_Step * i) if z > Height_Start: z = Height_Start - x = sin(radians(i*Deg_Step))*OUTTER_RADIUS - y = cos(radians(i*Deg_Step))*OUTTER_RADIUS - verts.append([x,y,z ]) - Lowest_Z_Vert = min(Lowest_Z_Vert,z) + x = sin(radians(i * Deg_Step)) * OUTTER_RADIUS + y = cos(radians(i * Deg_Step)) * OUTTER_RADIUS + verts.append([x, y, z]) + Lowest_Z_Vert = min(Lowest_Z_Vert, z) Height_Offset -= Crest_to_Root_Height Row += 1 - - for i in range(DIV_COUNT+1): - z = Height_Offset - (Height_Step*i) + for i in range(DIV_COUNT + 1): + z = Height_Offset - (Height_Step * i) if z > Height_Start: z = Height_Start - x = sin(radians(i*Deg_Step))*INNER_RADIUS - y = cos(radians(i*Deg_Step))*INNER_RADIUS + x = sin(radians(i * Deg_Step)) * INNER_RADIUS + y = cos(radians(i * Deg_Step)) * INNER_RADIUS if j == 0: - x = sin(radians(i*Deg_Step))*(OUTTER_RADIUS - (i*Rank)) - y = cos(radians(i*Deg_Step))*(OUTTER_RADIUS - (i*Rank)) - verts.append([x,y,z ]) - Lowest_Z_Vert = min(Lowest_Z_Vert,z) + x = sin(radians(i * Deg_Step)) * (OUTTER_RADIUS - (i * Rank)) + y = cos(radians(i * Deg_Step)) * (OUTTER_RADIUS - (i * Rank)) + verts.append([x, y, z]) + Lowest_Z_Vert = min(Lowest_Z_Vert, z) Height_Offset -= Root_Height Row += 1 - for i in range(DIV_COUNT+1): - z = Height_Offset - (Height_Step*i) + for i in range(DIV_COUNT + 1): + z = Height_Offset - (Height_Step * i) if z > Height_Start: z = Height_Start - x = sin(radians(i*Deg_Step))*INNER_RADIUS - y = cos(radians(i*Deg_Step))*INNER_RADIUS + x = sin(radians(i * Deg_Step)) * INNER_RADIUS + y = cos(radians(i * Deg_Step)) * INNER_RADIUS if j == 0: - x = sin(radians(i*Deg_Step))*(OUTTER_RADIUS - (i*Rank)) - y = cos(radians(i*Deg_Step))*(OUTTER_RADIUS - (i*Rank)) - verts.append([x,y,z ]) - Lowest_Z_Vert = min(Lowest_Z_Vert,z) + x = sin(radians(i * Deg_Step)) * (OUTTER_RADIUS - (i * Rank)) + y = cos(radians(i * Deg_Step)) * (OUTTER_RADIUS - (i * Rank)) + verts.append([x, y, z]) + Lowest_Z_Vert = min(Lowest_Z_Vert, z) Height_Offset -= Root_to_Crest_Height Row += 1 - - return verts,Row,Height_Offset + return verts, Row, Height_Offset +def Create_Thread_Verts(INNER_DIA, OUTTER_DIA, PITCH, HEIGHT, + CREST_PERCENT, ROOT_PERCENT, Z_LOCATION, DIV_COUNT): -def Create_Thread_Verts(INNER_DIA,OUTTER_DIA,PITCH,HEIGHT,CREST_PERCENT,ROOT_PERCENT,Z_LOCATION,DIV_COUNT): verts = [] - - INNER_RADIUS = INNER_DIA/2 - OUTTER_RADIUS = OUTTER_DIA/2 + INNER_RADIUS = INNER_DIA / 2 + OUTTER_RADIUS = OUTTER_DIA / 2 # Half_Pitch = float(PITCH)/2 # UNUSED - Deg_Step = 360.0 /float(DIV_COUNT) - Height_Step = float(PITCH)/float(DIV_COUNT) + Deg_Step = 360.0 / float(DIV_COUNT) + Height_Step = float(PITCH) / float(DIV_COUNT) NUM_OF_START_THREADS = 4.0 NUM_OF_END_THREADS = 3.0 - Num = int((HEIGHT- ((NUM_OF_START_THREADS*PITCH) + (NUM_OF_END_THREADS*PITCH) ))/PITCH) + Num = int((HEIGHT - ((NUM_OF_START_THREADS * PITCH) + (NUM_OF_END_THREADS * PITCH))) / PITCH) Row = 0 - - Crest_Height = float(PITCH) * float(CREST_PERCENT)/float(100) - Root_Height = float(PITCH) * float(ROOT_PERCENT)/float(100) - Root_to_Crest_Height = Crest_to_Root_Height = (float(PITCH) - (Crest_Height + Root_Height))/2.0 - + Crest_Height = float(PITCH) * float(CREST_PERCENT) / float(100) + Root_Height = float(PITCH) * float(ROOT_PERCENT) / float(100) + Root_to_Crest_Height = Crest_to_Root_Height = (float(PITCH) - (Crest_Height + Root_Height)) / 2.0 Height_Offset = Z_LOCATION - Lowest_Z_Vert = 0; + Lowest_Z_Vert = 0 for j in range(Num): - for i in range(DIV_COUNT+1): - x = sin(radians(i*Deg_Step))*OUTTER_RADIUS - y = cos(radians(i*Deg_Step))*OUTTER_RADIUS - z = Height_Offset - (Height_Step*i) - verts.append([x,y,z]) - Lowest_Z_Vert = min(Lowest_Z_Vert,z) + for i in range(DIV_COUNT + 1): + x = sin(radians(i * Deg_Step)) * OUTTER_RADIUS + y = cos(radians(i * Deg_Step)) * OUTTER_RADIUS + z = Height_Offset - (Height_Step * i) + verts.append([x, y, z]) + Lowest_Z_Vert = min(Lowest_Z_Vert, z) Height_Offset -= Crest_Height Row += 1 - for i in range(DIV_COUNT+1): - x = sin(radians(i*Deg_Step))*OUTTER_RADIUS - y = cos(radians(i*Deg_Step))*OUTTER_RADIUS - z = Height_Offset - (Height_Step*i) - verts.append([x,y,z]) - Lowest_Z_Vert = min(Lowest_Z_Vert,z) + for i in range(DIV_COUNT + 1): + x = sin(radians(i * Deg_Step)) * OUTTER_RADIUS + y = cos(radians(i * Deg_Step)) * OUTTER_RADIUS + z = Height_Offset - (Height_Step * i) + verts.append([x, y, z]) + Lowest_Z_Vert = min(Lowest_Z_Vert, z) Height_Offset -= Crest_to_Root_Height Row += 1 - - for i in range(DIV_COUNT+1): - x = sin(radians(i*Deg_Step))*INNER_RADIUS - y = cos(radians(i*Deg_Step))*INNER_RADIUS - z = Height_Offset - (Height_Step*i) - verts.append([x,y,z]) - Lowest_Z_Vert = min(Lowest_Z_Vert,z) + for i in range(DIV_COUNT + 1): + x = sin(radians(i * Deg_Step)) * INNER_RADIUS + y = cos(radians(i * Deg_Step)) * INNER_RADIUS + z = Height_Offset - (Height_Step * i) + verts.append([x, y, z]) + Lowest_Z_Vert = min(Lowest_Z_Vert, z) Height_Offset -= Root_Height Row += 1 - for i in range(DIV_COUNT+1): - x = sin(radians(i*Deg_Step))*INNER_RADIUS - y = cos(radians(i*Deg_Step))*INNER_RADIUS - z = Height_Offset - (Height_Step*i) - verts.append([x,y,z]) - Lowest_Z_Vert = min(Lowest_Z_Vert,z) + for i in range(DIV_COUNT + 1): + x = sin(radians(i * Deg_Step)) * INNER_RADIUS + y = cos(radians(i * Deg_Step)) * INNER_RADIUS + z = Height_Offset - (Height_Step * i) + verts.append([x, y, z]) + Lowest_Z_Vert = min(Lowest_Z_Vert, z) Height_Offset -= Root_to_Crest_Height Row += 1 - return verts,Row,Height_Offset - + return verts, Row, Height_Offset -def Create_Thread_End_Verts(INNER_DIA,OUTTER_DIA,PITCH,CREST_PERCENT,ROOT_PERCENT,Z_LOCATION,DIV_COUNT): +def Create_Thread_End_Verts(INNER_DIA, OUTTER_DIA, PITCH, CREST_PERCENT, + ROOT_PERCENT, Z_LOCATION, DIV_COUNT): verts = [] - - INNER_RADIUS = INNER_DIA/2 - OUTTER_RADIUS = OUTTER_DIA/2 + INNER_RADIUS = INNER_DIA / 2 + OUTTER_RADIUS = OUTTER_DIA / 2 # Half_Pitch = float(PITCH)/2 # UNUSED - Deg_Step = 360.0 /float(DIV_COUNT) - Height_Step = float(PITCH)/float(DIV_COUNT) + Deg_Step = 360.0 / float(DIV_COUNT) + Height_Step = float(PITCH) / float(DIV_COUNT) - Crest_Height = float(PITCH) * float(CREST_PERCENT)/float(100) - Root_Height = float(PITCH) * float(ROOT_PERCENT)/float(100) - Root_to_Crest_Height = Crest_to_Root_Height = (float(PITCH) - (Crest_Height + Root_Height))/2.0 + Crest_Height = float(PITCH) * float(CREST_PERCENT) / float(100) + Root_Height = float(PITCH) * float(ROOT_PERCENT) / float(100) + Root_to_Crest_Height = Crest_to_Root_Height = (float(PITCH) - (Crest_Height + Root_Height)) / 2.0 # Col = 0 # UNUSED Row = 0 @@ -1294,74 +1230,72 @@ def Create_Thread_End_Verts(INNER_DIA,OUTTER_DIA,PITCH,CREST_PERCENT,ROOT_PERCEN Max_Height = Tapper_Height_Start - PITCH - Lowest_Z_Vert = 0; + Lowest_Z_Vert = 0 # FaceStart = len(verts) # UNUSED for j in range(4): - for i in range(DIV_COUNT+1): - z = Height_Offset - (Height_Step*i) - z = max(z,Max_Height) + for i in range(DIV_COUNT + 1): + z = Height_Offset - (Height_Step * i) + z = max(z, Max_Height) Tapper_Radius = OUTTER_RADIUS if z < Tapper_Height_Start: Tapper_Radius = OUTTER_RADIUS - (Tapper_Height_Start - z) - x = sin(radians(i*Deg_Step))*(Tapper_Radius) - y = cos(radians(i*Deg_Step))*(Tapper_Radius) - verts.append([x,y,z]) - Lowest_Z_Vert = min(Lowest_Z_Vert,z) + x = sin(radians(i * Deg_Step)) * (Tapper_Radius) + y = cos(radians(i * Deg_Step)) * (Tapper_Radius) + verts.append([x, y, z]) + Lowest_Z_Vert = min(Lowest_Z_Vert, z) Height_Offset -= Crest_Height Row += 1 - for i in range(DIV_COUNT+1): - z = Height_Offset - (Height_Step*i) - z = max(z,Max_Height) + for i in range(DIV_COUNT + 1): + z = Height_Offset - (Height_Step * i) + z = max(z, Max_Height) Tapper_Radius = OUTTER_RADIUS if z < Tapper_Height_Start: Tapper_Radius = OUTTER_RADIUS - (Tapper_Height_Start - z) - x = sin(radians(i*Deg_Step))*(Tapper_Radius) - y = cos(radians(i*Deg_Step))*(Tapper_Radius) - verts.append([x,y,z]) - Lowest_Z_Vert = min(Lowest_Z_Vert,z) + x = sin(radians(i * Deg_Step)) * (Tapper_Radius) + y = cos(radians(i * Deg_Step)) * (Tapper_Radius) + verts.append([x, y, z]) + Lowest_Z_Vert = min(Lowest_Z_Vert, z) Height_Offset -= Crest_to_Root_Height Row += 1 - - for i in range(DIV_COUNT+1): - z = Height_Offset - (Height_Step*i) - z = max(z,Max_Height) + for i in range(DIV_COUNT + 1): + z = Height_Offset - (Height_Step * i) + z = max(z, Max_Height) Tapper_Radius = OUTTER_RADIUS - (Tapper_Height_Start - z) if Tapper_Radius > INNER_RADIUS: Tapper_Radius = INNER_RADIUS - x = sin(radians(i*Deg_Step))*(Tapper_Radius) - y = cos(radians(i*Deg_Step))*(Tapper_Radius) - verts.append([x,y,z]) - Lowest_Z_Vert = min(Lowest_Z_Vert,z) + x = sin(radians(i * Deg_Step)) * (Tapper_Radius) + y = cos(radians(i * Deg_Step)) * (Tapper_Radius) + verts.append([x, y, z]) + Lowest_Z_Vert = min(Lowest_Z_Vert, z) Height_Offset -= Root_Height Row += 1 - for i in range(DIV_COUNT+1): - z = Height_Offset - (Height_Step*i) - z = max(z,Max_Height) + for i in range(DIV_COUNT + 1): + z = Height_Offset - (Height_Step * i) + z = max(z, Max_Height) Tapper_Radius = OUTTER_RADIUS - (Tapper_Height_Start - z) if Tapper_Radius > INNER_RADIUS: Tapper_Radius = INNER_RADIUS - x = sin(radians(i*Deg_Step))*(Tapper_Radius) - y = cos(radians(i*Deg_Step))*(Tapper_Radius) - verts.append([x,y,z]) - Lowest_Z_Vert = min(Lowest_Z_Vert,z) + x = sin(radians(i * Deg_Step)) * (Tapper_Radius) + y = cos(radians(i * Deg_Step)) * (Tapper_Radius) + verts.append([x, y, z]) + Lowest_Z_Vert = min(Lowest_Z_Vert, z) Height_Offset -= Root_to_Crest_Height Row += 1 - return verts,Row,Height_Offset,Lowest_Z_Vert - - + return verts, Row, Height_Offset, Lowest_Z_Vert -def Create_External_Thread(SHANK_DIA,SHANK_LENGTH,INNER_DIA,OUTTER_DIA,PITCH,LENGTH,CREST_PERCENT,ROOT_PERCENT,DIV_COUNT): +def Create_External_Thread(SHANK_DIA, SHANK_LENGTH, INNER_DIA, OUTTER_DIA, + PITCH, LENGTH, CREST_PERCENT, ROOT_PERCENT, DIV_COUNT): verts = [] faces = [] @@ -1370,202 +1304,193 @@ def Create_External_Thread(SHANK_DIA,SHANK_LENGTH,INNER_DIA,OUTTER_DIA,PITCH,LEN # Thread_Len = 0 # UNUSED Face_Start = len(verts) - Offset = 0.0; + Offset = 0.0 - - Shank_Verts,Shank_Row,Offset = Create_Shank_Verts(SHANK_DIA,OUTTER_DIA,SHANK_LENGTH,Offset,DIV_COUNT) + Shank_Verts, Shank_Row, Offset = Create_Shank_Verts( + SHANK_DIA, OUTTER_DIA, SHANK_LENGTH, + Offset, DIV_COUNT + ) Total_Row += Shank_Row - Thread_Start_Verts,Thread_Start_Row,Offset = Create_Thread_Start_Verts(INNER_DIA,OUTTER_DIA,PITCH,CREST_PERCENT,ROOT_PERCENT,Offset,DIV_COUNT) + Thread_Start_Verts, Thread_Start_Row, Offset = Create_Thread_Start_Verts( + INNER_DIA, OUTTER_DIA, PITCH, CREST_PERCENT, + ROOT_PERCENT, Offset, DIV_COUNT + ) Total_Row += Thread_Start_Row - - Thread_Verts,Thread_Row,Offset = Create_Thread_Verts(INNER_DIA,OUTTER_DIA,PITCH,LENGTH,CREST_PERCENT,ROOT_PERCENT,Offset,DIV_COUNT) + Thread_Verts, Thread_Row, Offset = Create_Thread_Verts( + INNER_DIA, OUTTER_DIA, PITCH, LENGTH, + CREST_PERCENT, ROOT_PERCENT, Offset, DIV_COUNT + ) Total_Row += Thread_Row - - Thread_End_Verts,Thread_End_Row,Offset,Lowest_Z_Vert = Create_Thread_End_Verts(INNER_DIA,OUTTER_DIA,PITCH,CREST_PERCENT,ROOT_PERCENT,Offset,DIV_COUNT ) + Thread_End_Verts, Thread_End_Row, Offset, Lowest_Z_Vert = Create_Thread_End_Verts( + INNER_DIA, OUTTER_DIA, PITCH, CREST_PERCENT, + ROOT_PERCENT, Offset, DIV_COUNT + ) Total_Row += Thread_End_Row - verts.extend(Shank_Verts) verts.extend(Thread_Start_Verts) verts.extend(Thread_Verts) verts.extend(Thread_End_Verts) - faces.extend(Build_Face_List_Quads(Face_Start,DIV_COUNT,Total_Row -1,0)) - faces.extend(Fill_Ring_Face(len(verts)-DIV_COUNT,DIV_COUNT,1)) + faces.extend(Build_Face_List_Quads(Face_Start, DIV_COUNT, Total_Row - 1, 0)) + faces.extend(Fill_Ring_Face(len(verts) - DIV_COUNT, DIV_COUNT, 1)) - return verts,faces,0.0 - Lowest_Z_Vert + return verts, faces, 0.0 - Lowest_Z_Vert -########################################################################################## -########################################################################################## -## Create Nut -########################################################################################## -########################################################################################## +# #################################################################### +# Create Nut +# #################################################################### -def add_Hex_Nut(FLAT,HOLE_DIA,HEIGHT): +def add_Hex_Nut(FLAT, HOLE_DIA, HEIGHT): global Global_Head_Height global Global_NutRad verts = [] faces = [] HOLE_RADIUS = HOLE_DIA * 0.5 - Half_Flat = FLAT/2 - Half_Height = HEIGHT/2 + Half_Flat = FLAT / 2 + Half_Height = HEIGHT / 2 TopBevelRadius = Half_Flat - 0.05 - Global_NutRad = TopBevelRadius - - Row = 0; - Lowest_Z_Vert = 0.0; + Global_NutRad = TopBevelRadius - verts.append([0.0,0.0,0.0]) + Row = 0 + Lowest_Z_Vert = 0.0 + verts.append([0.0, 0.0, 0.0]) FaceStart = len(verts) - #inner hole - - x = sin(radians(0))*HOLE_RADIUS - y = cos(radians(0))*HOLE_RADIUS - #print ("rad 0 x;", x, "y:" ,y ) - verts.append([x,y,0.0]) - - - x = sin(radians(60/6))*HOLE_RADIUS - y = cos(radians(60/6))*HOLE_RADIUS - #print ("rad 60/6x;", x, "y:" ,y ) - verts.append([x,y,0.0]) - - - x = sin(radians(60/3))*HOLE_RADIUS - y = cos(radians(60/3))*HOLE_RADIUS - #print ("rad 60/3x;", x, "y:" ,y ) - verts.append([x,y,0.0]) - - - x = sin(radians(60/2))*HOLE_RADIUS - y = cos(radians(60/2))*HOLE_RADIUS - #print ("rad 60/2x;", x, "y:" ,y ) - verts.append([x,y,0.0]) + # inner hole + + x = sin(radians(0)) * HOLE_RADIUS + y = cos(radians(0)) * HOLE_RADIUS + # print ("rad 0 x;", x, "y:" ,y ) + verts.append([x, y, 0.0]) + + x = sin(radians(60 / 6)) * HOLE_RADIUS + y = cos(radians(60 / 6)) * HOLE_RADIUS + # print ("rad 60/6x;", x, "y:" ,y ) + verts.append([x, y, 0.0]) + + x = sin(radians(60 / 3)) * HOLE_RADIUS + y = cos(radians(60 / 3)) * HOLE_RADIUS + # print ("rad 60/3x;", x, "y:" ,y ) + verts.append([x, y, 0.0]) + + x = sin(radians(60 / 2)) * HOLE_RADIUS + y = cos(radians(60 / 2)) * HOLE_RADIUS + # print ("rad 60/2x;", x, "y:" ,y ) + verts.append([x, y, 0.0]) Row += 1 + # Bevel - #bevel + x = sin(radians(0)) * TopBevelRadius + y = cos(radians(0)) * TopBevelRadius + vec1 = Vector([x, y, 0.0]) + verts.append([x, y, 0.0]) - x = sin(radians(0))*TopBevelRadius - y = cos(radians(0))*TopBevelRadius - vec1 = mathutils.Vector([x,y,0.0]) - verts.append([x,y,0.0]) + x = sin(radians(60 / 6)) * TopBevelRadius + y = cos(radians(60 / 6)) * TopBevelRadius + vec2 = Vector([x, y, 0.0]) + verts.append([x, y, 0.0]) + x = sin(radians(60 / 3)) * TopBevelRadius + y = cos(radians(60 / 3)) * TopBevelRadius + vec3 = Vector([x, y, 0.0]) + verts.append([x, y, 0.0]) - x = sin(radians(60/6))*TopBevelRadius - y = cos(radians(60/6))*TopBevelRadius - vec2 = mathutils.Vector([x,y,0.0]) - verts.append([x,y,0.0]) - - - x = sin(radians(60/3))*TopBevelRadius - y = cos(radians(60/3))*TopBevelRadius - vec3 = mathutils.Vector([x,y,0.0]) - verts.append([x,y,0.0]) - - - x = sin(radians(60/2))*TopBevelRadius - y = cos(radians(60/2))*TopBevelRadius - vec4 = mathutils.Vector([x,y,0.0]) - verts.append([x,y,0.0]) + x = sin(radians(60 / 2)) * TopBevelRadius + y = cos(radians(60 / 2)) * TopBevelRadius + vec4 = Vector([x, y, 0.0]) + verts.append([x, y, 0.0]) Row += 1 - #Flats - - x = tan(radians(0))*Half_Flat - dvec = vec1 - mathutils.Vector([x,Half_Flat,0.0]) - verts.append([x,Half_Flat,-dvec.length]) - Lowest_Z_Vert = min(Lowest_Z_Vert,-dvec.length) + # Flats + x = tan(radians(0)) * Half_Flat + dvec = vec1 - Vector([x, Half_Flat, 0.0]) + verts.append([x, Half_Flat, -dvec.length]) + Lowest_Z_Vert = min(Lowest_Z_Vert, -dvec.length) + x = tan(radians(60 / 6)) * Half_Flat + dvec = vec2 - Vector([x, Half_Flat, 0.0]) + verts.append([x, Half_Flat, -dvec.length]) + Lowest_Z_Vert = min(Lowest_Z_Vert, -dvec.length) - x = tan(radians(60/6))*Half_Flat - dvec = vec2 - mathutils.Vector([x,Half_Flat,0.0]) - verts.append([x,Half_Flat,-dvec.length]) - Lowest_Z_Vert = min(Lowest_Z_Vert,-dvec.length) - - - x = tan(radians(60/3))*Half_Flat - dvec = vec3 - mathutils.Vector([x,Half_Flat,0.0]) + x = tan(radians(60 / 3)) * Half_Flat + dvec = vec3 - Vector([x, Half_Flat, 0.0]) Lowest_Point = -dvec.length - verts.append([x,Half_Flat,-dvec.length]) - Lowest_Z_Vert = min(Lowest_Z_Vert,-dvec.length) + verts.append([x, Half_Flat, -dvec.length]) + Lowest_Z_Vert = min(Lowest_Z_Vert, -dvec.length) - x = tan(radians(60/2))*Half_Flat - dvec = vec4 - mathutils.Vector([x,Half_Flat,0.0]) + x = tan(radians(60 / 2)) * Half_Flat + dvec = vec4 - Vector([x, Half_Flat, 0.0]) Lowest_Point = -dvec.length - verts.append([x,Half_Flat,-dvec.length]) - Lowest_Z_Vert = min(Lowest_Z_Vert,-dvec.length) + verts.append([x, Half_Flat, -dvec.length]) + Lowest_Z_Vert = min(Lowest_Z_Vert, -dvec.length) Row += 1 - #down Bits Tri - x = tan(radians(0))*Half_Flat - verts.append([x,Half_Flat,Lowest_Point]) - + # down Bits Tri + x = tan(radians(0)) * Half_Flat + verts.append([x, Half_Flat, Lowest_Point]) - x = tan(radians(60/6))*Half_Flat - verts.append([x,Half_Flat,Lowest_Point]) - x = tan(radians(60/3))*Half_Flat - verts.append([x,Half_Flat,Lowest_Point]) + x = tan(radians(60 / 6)) * Half_Flat + verts.append([x, Half_Flat, Lowest_Point]) + x = tan(radians(60 / 3)) * Half_Flat + verts.append([x, Half_Flat, Lowest_Point]) - x = tan(radians(60/2))*Half_Flat - verts.append([x,Half_Flat,Lowest_Point]) - Lowest_Z_Vert = min(Lowest_Z_Vert,Lowest_Point) + x = tan(radians(60 / 2)) * Half_Flat + verts.append([x, Half_Flat, Lowest_Point]) + Lowest_Z_Vert = min(Lowest_Z_Vert, Lowest_Point) Row += 1 - #down Bits + # down Bits - x = tan(radians(0))*Half_Flat - verts.append([x,Half_Flat,-Half_Height]) + x = tan(radians(0)) * Half_Flat + verts.append([x, Half_Flat, -Half_Height]) - x = tan(radians(60/6))*Half_Flat - verts.append([x,Half_Flat,-Half_Height]) + x = tan(radians(60 / 6)) * Half_Flat + verts.append([x, Half_Flat, -Half_Height]) - x = tan(radians(60/3))*Half_Flat - verts.append([x,Half_Flat,-Half_Height]) + x = tan(radians(60 / 3)) * Half_Flat + verts.append([x, Half_Flat, -Half_Height]) - x = tan(radians(60/2))*Half_Flat - verts.append([x,Half_Flat,-Half_Height]) - Lowest_Z_Vert = min(Lowest_Z_Vert,-Half_Height) + x = tan(radians(60 / 2)) * Half_Flat + verts.append([x, Half_Flat, -Half_Height]) + Lowest_Z_Vert = min(Lowest_Z_Vert, -Half_Height) Row += 1 - faces.extend(Build_Face_List_Quads(FaceStart,3,Row - 1)) + faces.extend(Build_Face_List_Quads(FaceStart, 3, Row - 1)) Global_Head_Height = HEIGHT - Tvert,tface = Mirror_Verts_Faces(verts,faces,'z',Lowest_Z_Vert) + Tvert, tface = Mirror_Verts_Faces(verts, faces, 'z', Lowest_Z_Vert) verts.extend(Tvert) faces.extend(tface) - - Tvert,tface = Mirror_Verts_Faces(verts,faces,'y') + Tvert, tface = Mirror_Verts_Faces(verts, faces, 'y') verts.extend(Tvert) faces.extend(tface) - S_verts,S_faces = SpinDup(verts,faces,360,6,'z') - - #return verts,faces,TopBevelRadius - return S_verts,S_faces,TopBevelRadius + S_verts, S_faces = SpinDup(verts, faces, 360, 6, 'z') + # return verts, faces, TopBevelRadius + return S_verts, S_faces, TopBevelRadius -def add_Nylon_Head(OUTSIDE_RADIUS,Z_LOCATION,DIV_COUNT): +def add_Nylon_Head(OUTSIDE_RADIUS, Z_LOCATION, DIV_COUNT): verts = [] faces = [] Row = 0 - INNER_HOLE = OUTSIDE_RADIUS - (OUTSIDE_RADIUS * (1.25/4.75)) - EDGE_THICKNESS = (OUTSIDE_RADIUS * (0.4/4.75)) - RAD1 = (OUTSIDE_RADIUS * (0.5/4.75)) - OVER_ALL_HEIGTH = (OUTSIDE_RADIUS * (2.0/4.75)) - + INNER_HOLE = OUTSIDE_RADIUS - (OUTSIDE_RADIUS * (1.25 / 4.75)) + EDGE_THICKNESS = (OUTSIDE_RADIUS * (0.4 / 4.75)) + RAD1 = (OUTSIDE_RADIUS * (0.5 / 4.75)) + OVER_ALL_HEIGTH = (OUTSIDE_RADIUS * (2.0 / 4.75)) FaceStart = len(verts) @@ -1575,51 +1500,48 @@ def add_Nylon_Head(OUTSIDE_RADIUS,Z_LOCATION,DIV_COUNT): x = INNER_HOLE z = (Height_Offset - OVER_ALL_HEIGTH) + EDGE_THICKNESS - verts.append([x,0.0,z]) - Lowest_Z_Vert = min(Lowest_Z_Vert,z) + verts.append([x, 0.0, z]) + Lowest_Z_Vert = min(Lowest_Z_Vert, z) Row += 1 x = INNER_HOLE z = (Height_Offset - OVER_ALL_HEIGTH) - verts.append([x,0.0,z]) - Lowest_Z_Vert = min(Lowest_Z_Vert,z) + verts.append([x, 0.0, z]) + Lowest_Z_Vert = min(Lowest_Z_Vert, z) Row += 1 - - for i in range(180,80,-10): - x = sin(radians(i))*RAD1 - z = cos(radians(i))*RAD1 - verts.append([(OUTSIDE_RADIUS-RAD1)+x,0.0,((Height_Offset - OVER_ALL_HEIGTH)+RAD1)+z]) - Lowest_Z_Vert = min(Lowest_Z_Vert,z) + for i in range(180, 80, -10): + x = sin(radians(i)) * RAD1 + z = cos(radians(i)) * RAD1 + verts.append([(OUTSIDE_RADIUS - RAD1) + x, 0.0, ((Height_Offset - OVER_ALL_HEIGTH) + RAD1) + z]) + Lowest_Z_Vert = min(Lowest_Z_Vert, z) Row += 1 - x = OUTSIDE_RADIUS - 0 z = Height_Offset - verts.append([x,0.0,z]) - Lowest_Z_Vert = min(Lowest_Z_Vert,z) + verts.append([x, 0.0, z]) + Lowest_Z_Vert = min(Lowest_Z_Vert, z) Row += 1 - sVerts,sFaces = SpinDup(verts,faces,360,DIV_COUNT,'z') - sVerts.extend(verts) #add the start verts to the Spin verts to complete the loop + sVerts, sFaces = SpinDup(verts, faces, 360, DIV_COUNT, 'z') + sVerts.extend(verts) # add the start verts to the Spin verts to complete the loop - faces.extend(Build_Face_List_Quads(FaceStart,Row-1,DIV_COUNT)) + faces.extend(Build_Face_List_Quads(FaceStart, Row - 1, DIV_COUNT)) - return Move_Verts_Up_Z(sVerts,0),faces,Lowest_Z_Vert + return Move_Verts_Up_Z(sVerts, 0), faces, Lowest_Z_Vert - -def add_Nylon_Part(OUTSIDE_RADIUS,Z_LOCATION,DIV_COUNT): +def add_Nylon_Part(OUTSIDE_RADIUS, Z_LOCATION, DIV_COUNT): verts = [] faces = [] Row = 0 - INNER_HOLE = OUTSIDE_RADIUS - (OUTSIDE_RADIUS * (1.5/4.75)) - EDGE_THICKNESS = (OUTSIDE_RADIUS * (0.4/4.75)) + INNER_HOLE = OUTSIDE_RADIUS - (OUTSIDE_RADIUS * (1.5 / 4.75)) + EDGE_THICKNESS = (OUTSIDE_RADIUS * (0.4 / 4.75)) # RAD1 = (OUTSIDE_RADIUS * (0.5/4.75)) # UNUSED - OVER_ALL_HEIGTH = (OUTSIDE_RADIUS * (2.0/4.75)) + OVER_ALL_HEIGTH = (OUTSIDE_RADIUS * (2.0 / 4.75)) PART_THICKNESS = OVER_ALL_HEIGTH - EDGE_THICKNESS - PART_INNER_HOLE = (OUTSIDE_RADIUS * (2.5/4.75)) + PART_INNER_HOLE = (OUTSIDE_RADIUS * (2.5 / 4.75)) FaceStart = len(verts) @@ -1627,275 +1549,269 @@ def add_Nylon_Part(OUTSIDE_RADIUS,Z_LOCATION,DIV_COUNT): Height_Offset = Z_LOCATION Lowest_Z_Vert = 0 - x = INNER_HOLE + EDGE_THICKNESS z = Height_Offset - verts.append([x,0.0,z]) - Lowest_Z_Vert = min(Lowest_Z_Vert,z) + verts.append([x, 0.0, z]) + Lowest_Z_Vert = min(Lowest_Z_Vert, z) Row += 1 x = PART_INNER_HOLE z = Height_Offset - verts.append([x,0.0,z]) - Lowest_Z_Vert = min(Lowest_Z_Vert,z) + verts.append([x, 0.0, z]) + Lowest_Z_Vert = min(Lowest_Z_Vert, z) Row += 1 x = PART_INNER_HOLE z = Height_Offset - PART_THICKNESS - verts.append([x,0.0,z]) - Lowest_Z_Vert = min(Lowest_Z_Vert,z) + verts.append([x, 0.0, z]) + Lowest_Z_Vert = min(Lowest_Z_Vert, z) Row += 1 x = INNER_HOLE + EDGE_THICKNESS z = Height_Offset - PART_THICKNESS - verts.append([x,0.0,z]) - Lowest_Z_Vert = min(Lowest_Z_Vert,z) + verts.append([x, 0.0, z]) + Lowest_Z_Vert = min(Lowest_Z_Vert, z) Row += 1 + sVerts, sFaces = SpinDup(verts, faces, 360, DIV_COUNT, 'z') + sVerts.extend(verts) # add the start verts to the Spin verts to complete the loop - sVerts,sFaces = SpinDup(verts,faces,360,DIV_COUNT,'z') - sVerts.extend(verts) #add the start verts to the Spin verts to complete the loop - - faces.extend(Build_Face_List_Quads(FaceStart,Row-1,DIV_COUNT,1)) + faces.extend(Build_Face_List_Quads(FaceStart, Row - 1, DIV_COUNT, 1)) - return sVerts,faces,0 - Lowest_Z_Vert + return sVerts, faces, 0 - Lowest_Z_Vert -########################################################################################## -########################################################################################## -## Create Internal Thread -########################################################################################## -########################################################################################## +# #################################################################### +# Create Internal Thread +# #################################################################### +def Create_Internal_Thread_Start_Verts(verts, INNER_RADIUS, OUTTER_RADIUS, PITCH, DIV, + CREST_PERCENT, ROOT_PERCENT, Height_Offset): -def Create_Internal_Thread_Start_Verts(verts,INNER_RADIUS,OUTTER_RADIUS,PITCH,DIV,CREST_PERCENT,ROOT_PERCENT,Height_Offset): - - - Ret_Row = 0; - - Height_Offset = Height_Offset + PITCH #Move the offset up so that the verts start at - #at the correct place (Height_Start) + Ret_Row = 0 + # Move the offset up so that the verts start at + # at the correct place (Height_Start) + Height_Offset = Height_Offset + PITCH # Half_Pitch = float(PITCH)/2 # UNUSED Height_Start = Height_Offset - PITCH - Height_Step = float(PITCH)/float(DIV) - Deg_Step = 360.0 /float(DIV) + Height_Step = float(PITCH) / float(DIV) + Deg_Step = 360.0 / float(DIV) - Crest_Height = float(PITCH) * float(CREST_PERCENT)/float(100) - Root_Height = float(PITCH) * float(ROOT_PERCENT)/float(100) - Root_to_Crest_Height = Crest_to_Root_Height = (float(PITCH) - (Crest_Height + Root_Height))/2.0 + Crest_Height = float(PITCH) * float(CREST_PERCENT) / float(100) + Root_Height = float(PITCH) * float(ROOT_PERCENT) / float(100) + Root_to_Crest_Height = Crest_to_Root_Height = (float(PITCH) - (Crest_Height + Root_Height)) / 2.0 + Rank = float(OUTTER_RADIUS - INNER_RADIUS) / float(DIV) + for j in range(1): # FIXME - for j in range(1) what?! - Rank = float(OUTTER_RADIUS - INNER_RADIUS)/float(DIV) - for j in range(1): #FIXME - for j in range(1) what?! - - for i in range(DIV+1): - z = Height_Offset - (Height_Step*i) + for i in range(DIV + 1): + z = Height_Offset - (Height_Step * i) if z > Height_Start: z = Height_Start - x = sin(radians(i*Deg_Step))*OUTTER_RADIUS - y = cos(radians(i*Deg_Step))*OUTTER_RADIUS - verts.append([x,y,z]) + x = sin(radians(i * Deg_Step)) * OUTTER_RADIUS + y = cos(radians(i * Deg_Step)) * OUTTER_RADIUS + verts.append([x, y, z]) Height_Offset -= Crest_Height Ret_Row += 1 - for i in range(DIV+1): - z = Height_Offset - (Height_Step*i) + for i in range(DIV + 1): + z = Height_Offset - (Height_Step * i) if z > Height_Start: z = Height_Start - x = sin(radians(i*Deg_Step))*OUTTER_RADIUS - y = cos(radians(i*Deg_Step))*OUTTER_RADIUS - verts.append([x,y,z ]) + x = sin(radians(i * Deg_Step)) * OUTTER_RADIUS + y = cos(radians(i * Deg_Step)) * OUTTER_RADIUS + verts.append([x, y, z]) Height_Offset -= Crest_to_Root_Height Ret_Row += 1 - - for i in range(DIV+1): - z = Height_Offset - (Height_Step*i) + for i in range(DIV + 1): + z = Height_Offset - (Height_Step * i) if z > Height_Start: z = Height_Start - x = sin(radians(i*Deg_Step))*INNER_RADIUS - y = cos(radians(i*Deg_Step))*INNER_RADIUS + x = sin(radians(i * Deg_Step)) * INNER_RADIUS + y = cos(radians(i * Deg_Step)) * INNER_RADIUS if j == 0: - x = sin(radians(i*Deg_Step))*(OUTTER_RADIUS - (i*Rank)) - y = cos(radians(i*Deg_Step))*(OUTTER_RADIUS - (i*Rank)) - verts.append([x,y,z ]) + x = sin(radians(i * Deg_Step)) * (OUTTER_RADIUS - (i * Rank)) + y = cos(radians(i * Deg_Step)) * (OUTTER_RADIUS - (i * Rank)) + verts.append([x, y, z]) Height_Offset -= Root_Height Ret_Row += 1 - for i in range(DIV+1): - z = Height_Offset - (Height_Step*i) + for i in range(DIV + 1): + z = Height_Offset - (Height_Step * i) if z > Height_Start: z = Height_Start - x = sin(radians(i*Deg_Step))*INNER_RADIUS - y = cos(radians(i*Deg_Step))*INNER_RADIUS + x = sin(radians(i * Deg_Step)) * INNER_RADIUS + y = cos(radians(i * Deg_Step)) * INNER_RADIUS if j == 0: - x = sin(radians(i*Deg_Step))*(OUTTER_RADIUS - (i*Rank)) - y = cos(radians(i*Deg_Step))*(OUTTER_RADIUS - (i*Rank)) - verts.append([x,y,z ]) + x = sin(radians(i * Deg_Step)) * (OUTTER_RADIUS - (i * Rank)) + y = cos(radians(i * Deg_Step)) * (OUTTER_RADIUS - (i * Rank)) + verts.append([x, y, z]) Height_Offset -= Root_to_Crest_Height Ret_Row += 1 - return Ret_Row,Height_Offset + return Ret_Row, Height_Offset -def Create_Internal_Thread_End_Verts(verts,INNER_RADIUS,OUTTER_RADIUS,PITCH,DIV,CREST_PERCENT,ROOT_PERCENT,Height_Offset): +def Create_Internal_Thread_End_Verts(verts, INNER_RADIUS, OUTTER_RADIUS, PITCH, + DIV, CREST_PERCENT, ROOT_PERCENT, Height_Offset): - - Ret_Row = 0; + Ret_Row = 0 # Half_Pitch = float(PITCH)/2 # UNUSED - #Height_End = Height_Offset - PITCH - PITCH - PITCH- PITCH - PITCH- PITCH + # Height_End = Height_Offset - PITCH - PITCH - PITCH- PITCH - PITCH- PITCH Height_End = Height_Offset - PITCH - #Height_End = -2.1 - Height_Step = float(PITCH)/float(DIV) - Deg_Step = 360.0 /float(DIV) - - Crest_Height = float(PITCH) * float(CREST_PERCENT)/float(100) - Root_Height = float(PITCH) * float(ROOT_PERCENT)/float(100) - Root_to_Crest_Height = Crest_to_Root_Height = (float(PITCH) - (Crest_Height + Root_Height))/2.0 + # Height_End = -2.1 + Height_Step = float(PITCH) / float(DIV) + Deg_Step = 360.0 / float(DIV) + Crest_Height = float(PITCH) * float(CREST_PERCENT) / float(100) + Root_Height = float(PITCH) * float(ROOT_PERCENT) / float(100) + Root_to_Crest_Height = Crest_to_Root_Height = (float(PITCH) - (Crest_Height + Root_Height)) / 2.0 - Rank = float(OUTTER_RADIUS - INNER_RADIUS)/float(DIV) + Rank = float(OUTTER_RADIUS - INNER_RADIUS) / float(DIV) Num = 0 for j in range(2): - for i in range(DIV+1): - z = Height_Offset - (Height_Step*i) + for i in range(DIV + 1): + z = Height_Offset - (Height_Step * i) if z < Height_End: z = Height_End - x = sin(radians(i*Deg_Step))*OUTTER_RADIUS - y = cos(radians(i*Deg_Step))*OUTTER_RADIUS - verts.append([x,y,z]) + x = sin(radians(i * Deg_Step)) * OUTTER_RADIUS + y = cos(radians(i * Deg_Step)) * OUTTER_RADIUS + verts.append([x, y, z]) Height_Offset -= Crest_Height Ret_Row += 1 - - for i in range(DIV+1): - z = Height_Offset - (Height_Step*i) + for i in range(DIV + 1): + z = Height_Offset - (Height_Step * i) if z < Height_End: z = Height_End - x = sin(radians(i*Deg_Step))*OUTTER_RADIUS - y = cos(radians(i*Deg_Step))*OUTTER_RADIUS - verts.append([x,y,z ]) + x = sin(radians(i * Deg_Step)) * OUTTER_RADIUS + y = cos(radians(i * Deg_Step)) * OUTTER_RADIUS + verts.append([x, y, z]) Height_Offset -= Crest_to_Root_Height Ret_Row += 1 - - for i in range(DIV+1): - z = Height_Offset - (Height_Step*i) + for i in range(DIV + 1): + z = Height_Offset - (Height_Step * i) if z < Height_End: z = Height_End - x = sin(radians(i*Deg_Step))*INNER_RADIUS - y = cos(radians(i*Deg_Step))*INNER_RADIUS + x = sin(radians(i * Deg_Step)) * INNER_RADIUS + y = cos(radians(i * Deg_Step)) * INNER_RADIUS if j == Num: - x = sin(radians(i*Deg_Step))*(INNER_RADIUS + (i*Rank)) - y = cos(radians(i*Deg_Step))*(INNER_RADIUS + (i*Rank)) + x = sin(radians(i * Deg_Step)) * (INNER_RADIUS + (i * Rank)) + y = cos(radians(i * Deg_Step)) * (INNER_RADIUS + (i * Rank)) if j > Num: - x = sin(radians(i*Deg_Step))*(OUTTER_RADIUS) - y = cos(radians(i*Deg_Step))*(OUTTER_RADIUS ) + x = sin(radians(i * Deg_Step)) * (OUTTER_RADIUS) + y = cos(radians(i * Deg_Step)) * (OUTTER_RADIUS) - verts.append([x,y,z ]) + verts.append([x, y, z]) Height_Offset -= Root_Height Ret_Row += 1 - - for i in range(DIV+1): - z = Height_Offset - (Height_Step*i) + for i in range(DIV + 1): + z = Height_Offset - (Height_Step * i) if z < Height_End: z = Height_End - x = sin(radians(i*Deg_Step))*INNER_RADIUS - y = cos(radians(i*Deg_Step))*INNER_RADIUS + x = sin(radians(i * Deg_Step)) * INNER_RADIUS + y = cos(radians(i * Deg_Step)) * INNER_RADIUS if j == Num: - x = sin(radians(i*Deg_Step))*(INNER_RADIUS + (i*Rank)) - y = cos(radians(i*Deg_Step))*(INNER_RADIUS + (i*Rank)) + x = sin(radians(i * Deg_Step)) * (INNER_RADIUS + (i * Rank)) + y = cos(radians(i * Deg_Step)) * (INNER_RADIUS + (i * Rank)) if j > Num: - x = sin(radians(i*Deg_Step))*(OUTTER_RADIUS ) - y = cos(radians(i*Deg_Step))*(OUTTER_RADIUS ) + x = sin(radians(i * Deg_Step)) * (OUTTER_RADIUS) + y = cos(radians(i * Deg_Step)) * (OUTTER_RADIUS) - verts.append([x,y,z ]) + verts.append([x, y, z]) Height_Offset -= Root_to_Crest_Height Ret_Row += 1 + return Ret_Row, Height_End # send back Height End as this is the lowest point - return Ret_Row,Height_End # send back Height End as this is the lowest point - -def Create_Internal_Thread(INNER_DIA,OUTTER_DIA,PITCH,HEIGHT,CREST_PERCENT,ROOT_PERCENT,INTERNAL,DIV_COUNT): +def Create_Internal_Thread(INNER_DIA, OUTTER_DIA, PITCH, HEIGHT, + CREST_PERCENT, ROOT_PERCENT, INTERNAL, DIV_COUNT): verts = [] faces = [] + INNER_RADIUS = INNER_DIA / 2 + OUTTER_RADIUS = OUTTER_DIA / 2 - INNER_RADIUS = INNER_DIA/2 - OUTTER_RADIUS = OUTTER_DIA/2 - - # Half_Pitch = float(PITCH)/2 # UNUSED - Deg_Step = 360.0 /float(DIV_COUNT) - Height_Step = float(PITCH)/float(DIV_COUNT) + # Half_Pitch = float(PITCH) / 2 # UNUSED + Deg_Step = 360.0 / float(DIV_COUNT) + Height_Step = float(PITCH) / float(DIV_COUNT) - Num = int(round((HEIGHT- PITCH)/PITCH)) # less one pitch for the start and end that is 1/2 pitch high + Num = int(round((HEIGHT - PITCH) / PITCH)) # less one pitch for the start and end that is 1/2 pitch high # Col = 0 # UNUSED Row = 0 - - Crest_Height = float(PITCH) * float(CREST_PERCENT)/float(100) - Root_Height = float(PITCH) * float(ROOT_PERCENT)/float(100) - Root_to_Crest_Height = Crest_to_Root_Height = (float(PITCH) - (Crest_Height + Root_Height))/2.0 + Crest_Height = float(PITCH) * float(CREST_PERCENT) / float(100) + Root_Height = float(PITCH) * float(ROOT_PERCENT) / float(100) + Root_to_Crest_Height = Crest_to_Root_Height = (float(PITCH) - (Crest_Height + Root_Height)) / 2.0 Height_Offset = 0 FaceStart = len(verts) - Row_Inc,Height_Offset = Create_Internal_Thread_Start_Verts(verts,INNER_RADIUS,OUTTER_RADIUS,PITCH,DIV_COUNT,CREST_PERCENT,ROOT_PERCENT,Height_Offset) + Row_Inc, Height_Offset = Create_Internal_Thread_Start_Verts( + verts, INNER_RADIUS, OUTTER_RADIUS, PITCH, + DIV_COUNT, CREST_PERCENT, ROOT_PERCENT, + Height_Offset + ) Row += Row_Inc for j in range(Num): - for i in range(DIV_COUNT+1): - x = sin(radians(i*Deg_Step))*OUTTER_RADIUS - y = cos(radians(i*Deg_Step))*OUTTER_RADIUS - verts.append([x,y,Height_Offset - (Height_Step*i) ]) + for i in range(DIV_COUNT + 1): + x = sin(radians(i * Deg_Step)) * OUTTER_RADIUS + y = cos(radians(i * Deg_Step)) * OUTTER_RADIUS + verts.append([x, y, Height_Offset - (Height_Step * i)]) Height_Offset -= Crest_Height Row += 1 - for i in range(DIV_COUNT+1): - x = sin(radians(i*Deg_Step))*OUTTER_RADIUS - y = cos(radians(i*Deg_Step))*OUTTER_RADIUS - verts.append([x,y,Height_Offset - (Height_Step*i) ]) + for i in range(DIV_COUNT + 1): + x = sin(radians(i * Deg_Step)) * OUTTER_RADIUS + y = cos(radians(i * Deg_Step)) * OUTTER_RADIUS + verts.append([x, y, Height_Offset - (Height_Step * i)]) Height_Offset -= Crest_to_Root_Height Row += 1 - for i in range(DIV_COUNT+1): - x = sin(radians(i*Deg_Step))*INNER_RADIUS - y = cos(radians(i*Deg_Step))*INNER_RADIUS - verts.append([x,y,Height_Offset - (Height_Step*i) ]) + for i in range(DIV_COUNT + 1): + x = sin(radians(i * Deg_Step)) * INNER_RADIUS + y = cos(radians(i * Deg_Step)) * INNER_RADIUS + verts.append([x, y, Height_Offset - (Height_Step * i)]) Height_Offset -= Root_Height Row += 1 - for i in range(DIV_COUNT+1): - x = sin(radians(i*Deg_Step))*INNER_RADIUS - y = cos(radians(i*Deg_Step))*INNER_RADIUS - verts.append([x,y,Height_Offset - (Height_Step*i) ]) + for i in range(DIV_COUNT + 1): + x = sin(radians(i * Deg_Step)) * INNER_RADIUS + y = cos(radians(i * Deg_Step)) * INNER_RADIUS + verts.append([x, y, Height_Offset - (Height_Step * i)]) Height_Offset -= Root_to_Crest_Height Row += 1 - - Row_Inc,Height_Offset = Create_Internal_Thread_End_Verts(verts,INNER_RADIUS,OUTTER_RADIUS,PITCH,DIV_COUNT,CREST_PERCENT,ROOT_PERCENT,Height_Offset) + Row_Inc, Height_Offset = Create_Internal_Thread_End_Verts( + verts, INNER_RADIUS, OUTTER_RADIUS, + PITCH, DIV_COUNT, CREST_PERCENT, + ROOT_PERCENT, Height_Offset + ) Row += Row_Inc - faces.extend(Build_Face_List_Quads(FaceStart,DIV_COUNT,Row -1,INTERNAL)) + faces.extend(Build_Face_List_Quads(FaceStart, DIV_COUNT, Row - 1, INTERNAL)) - return verts,faces,0 - Height_Offset + return verts, faces, 0 - Height_Offset def Nut_Mesh(props, context): @@ -1903,122 +1819,164 @@ def Nut_Mesh(props, context): verts = [] faces = [] Head_Verts = [] - Head_Faces= [] - #sc = context.scene + Head_Faces = [] + # sc = context.scene New_Nut_Height = 5 Face_Start = len(verts) - Thread_Verts,Thread_Faces,New_Nut_Height = Create_Internal_Thread(props.bf_Minor_Dia,props.bf_Major_Dia,props.bf_Pitch,props.bf_Hex_Nut_Height,props.bf_Crest_Percent,props.bf_Root_Percent,1,props.bf_Div_Count) + Thread_Verts, Thread_Faces, New_Nut_Height = Create_Internal_Thread( + props.bf_Minor_Dia, props.bf_Major_Dia, + props.bf_Pitch, props.bf_Hex_Nut_Height, + props.bf_Crest_Percent, props.bf_Root_Percent, + 1, props.bf_Div_Count + ) verts.extend(Thread_Verts) - faces.extend(Copy_Faces(Thread_Faces,Face_Start)) + faces.extend(Copy_Faces(Thread_Faces, Face_Start)) Face_Start = len(verts) - Head_Verts,Head_Faces,Lock_Nut_Rad = add_Hex_Nut(props.bf_Hex_Nut_Flat_Distance,props.bf_Major_Dia,New_Nut_Height) + Head_Verts, Head_Faces, Lock_Nut_Rad = add_Hex_Nut( + props.bf_Hex_Nut_Flat_Distance, + props.bf_Major_Dia, New_Nut_Height + ) verts.extend((Head_Verts)) - faces.extend(Copy_Faces(Head_Faces,Face_Start)) + faces.extend(Copy_Faces(Head_Faces, Face_Start)) LowZ = 0 - New_Nut_Height if props.bf_Nut_Type == 'bf_Nut_Lock': Face_Start = len(verts) - Nylon_Head_Verts,Nylon_Head_faces,LowZ = add_Nylon_Head(Lock_Nut_Rad,0-New_Nut_Height,props.bf_Div_Count) + Nylon_Head_Verts, Nylon_Head_faces, LowZ = add_Nylon_Head( + Lock_Nut_Rad, 0 - New_Nut_Height, + props.bf_Div_Count + ) verts.extend((Nylon_Head_Verts)) - faces.extend(Copy_Faces(Nylon_Head_faces,Face_Start)) + faces.extend(Copy_Faces(Nylon_Head_faces, Face_Start)) Face_Start = len(verts) - Nylon_Verts,Nylon_faces,Temp_LowZ = add_Nylon_Part(Lock_Nut_Rad,0-New_Nut_Height,props.bf_Div_Count) + Nylon_Verts, Nylon_faces, Temp_LowZ = add_Nylon_Part( + Lock_Nut_Rad, 0 - New_Nut_Height, + props.bf_Div_Count + ) verts.extend((Nylon_Verts)) - faces.extend(Copy_Faces(Nylon_faces,Face_Start)) + faces.extend(Copy_Faces(Nylon_faces, Face_Start)) - - return Move_Verts_Up_Z(verts,0 - LowZ),faces - - - -########################################################################################## -########################################################################################## -########################################################################################## -## Create Bolt -########################################################################################## -########################################################################################## + return Move_Verts_Up_Z(verts, 0 - LowZ), faces +# #################################################################### +# Create Bolt +# #################################################################### def Bolt_Mesh(props, context): - verts = [] faces = [] Bit_Verts = [] Bit_Faces = [] Bit_Dia = 0.001 Head_Verts = [] - Head_Faces= [] + Head_Faces = [] Head_Height = 0.0 - #sc = context.scene + # sc = context.scene - ReSized_Allen_Bit_Flat_Distance = props.bf_Allen_Bit_Flat_Distance # set default - - - Head_Height = props.bf_Hex_Head_Height # will be changed by the Head Functions + ReSized_Allen_Bit_Flat_Distance = props.bf_Allen_Bit_Flat_Distance # set default + Head_Height = props.bf_Hex_Head_Height # will be changed by the Head Functions if props.bf_Bit_Type == 'bf_Bit_Allen' and props.bf_Head_Type == 'bf_Head_Pan': - #need to size Allen bit if it is too big. - if Allen_Bit_Dia(props.bf_Allen_Bit_Flat_Distance) > Max_Pan_Bit_Dia(props.bf_Pan_Head_Dia): - ReSized_Allen_Bit_Flat_Distance = Allen_Bit_Dia_To_Flat(Max_Pan_Bit_Dia(props.bf_Pan_Head_Dia)) * 1.05 - #print ("Resized Allen Bit Flat Distance to ",ReSized_Allen_Bit_Flat_Distance) - - #bit Mesh + # need to size Allen bit if it is too big. + if Allen_Bit_Dia(props.bf_Allen_Bit_Flat_Distance) > Max_Pan_Bit_Dia(props.bf_Pan_Head_Dia): + ReSized_Allen_Bit_Flat_Distance = Allen_Bit_Dia_To_Flat( + Max_Pan_Bit_Dia(props.bf_Pan_Head_Dia) + ) * 1.05 + # print ("Resized Allen Bit Flat Distance to ",ReSized_Allen_Bit_Flat_Distance) + + # Bit Mesh if props.bf_Bit_Type == 'bf_Bit_Allen': - Bit_Verts,Bit_Faces,Bit_Dia = Create_Allen_Bit(ReSized_Allen_Bit_Flat_Distance,props.bf_Allen_Bit_Depth) + Bit_Verts, Bit_Faces, Bit_Dia = Create_Allen_Bit( + ReSized_Allen_Bit_Flat_Distance, + props.bf_Allen_Bit_Depth + ) if props.bf_Bit_Type == 'bf_Bit_Philips': - Bit_Verts,Bit_Faces,Bit_Dia = Create_Phillips_Bit(props.bf_Philips_Bit_Dia,props.bf_Philips_Bit_Dia*(0.5/1.82),props.bf_Phillips_Bit_Depth) - - - #Head Mesh - - if props.bf_Head_Type =='bf_Head_Hex': - Head_Verts,Head_Faces,Head_Height = Create_Hex_Head(props.bf_Hex_Head_Flat_Distance,Bit_Dia,props.bf_Shank_Dia,props.bf_Hex_Head_Height) - + Bit_Verts, Bit_Faces, Bit_Dia = Create_Phillips_Bit( + props.bf_Philips_Bit_Dia, + props.bf_Philips_Bit_Dia * (0.5 / 1.82), + props.bf_Phillips_Bit_Depth + ) + # Head Mesh + if props.bf_Head_Type == 'bf_Head_Hex': + Head_Verts, Head_Faces, Head_Height = Create_Hex_Head( + props.bf_Hex_Head_Flat_Distance, Bit_Dia, + props.bf_Shank_Dia, props.bf_Hex_Head_Height + ) elif props.bf_Head_Type == 'bf_Head_Cap': - Head_Verts,Head_Faces,Head_Height = Create_Cap_Head(Bit_Dia,props.bf_Cap_Head_Dia,props.bf_Shank_Dia,props.bf_Cap_Head_Height,props.bf_Cap_Head_Dia*(1.0/19.0),props.bf_Cap_Head_Dia*(1.0/19.0),props.DIV_COUNT) - - elif props.bf_Head_Type =='bf_Head_Dome': - Head_Verts,Head_Faces,Head_Height = Create_Dome_Head(Bit_Dia,props.bf_Dome_Head_Dia,props.bf_Shank_Dia,props.bf_Hex_Head_Height,1,1,0,props.bf_Div_Count) + Head_Verts, Head_Faces, Head_Height = Create_Cap_Head( + Bit_Dia, props.bf_Cap_Head_Dia, + props.bf_Shank_Dia, props.bf_Cap_Head_Height, + props.bf_Cap_Head_Dia * (1.0 / 19.0), + props.bf_Cap_Head_Dia * (1.0 / 19.0), + props.bf_Div_Count + ) + elif props.bf_Head_Type == 'bf_Head_Dome': + Head_Verts, Head_Faces, Head_Height = Create_Dome_Head( + Bit_Dia, props.bf_Dome_Head_Dia, + props.bf_Shank_Dia, props.bf_Hex_Head_Height, + 1, 1, 0, props.bf_Div_Count + ) elif props.bf_Head_Type == 'bf_Head_Pan': - Head_Verts,Head_Faces,Head_Height = Create_Pan_Head(Bit_Dia,props.bf_Pan_Head_Dia,props.bf_Shank_Dia,props.bf_Hex_Head_Height,1,1,0,props.bf_Div_Count) - + Head_Verts, Head_Faces, Head_Height = Create_Pan_Head( + Bit_Dia, props.bf_Pan_Head_Dia, + props.bf_Shank_Dia, + props.bf_Hex_Head_Height, 1, 1, 0, + props.bf_Div_Count + ) elif props.bf_Head_Type == 'bf_Head_CounterSink': - Head_Verts,Head_Faces,Head_Height = Create_CounterSink_Head(Bit_Dia,props.bf_CounterSink_Head_Dia,props.bf_Shank_Dia,props.bf_CounterSink_Head_Dia,props.bf_CounterSink_Head_Dia*(0.09/6.31),props.bf_Div_Count) -#Head_Verts,Head_Faces,Head_Height = Create_CounterSink_Head(Bit_Dia,props.bf_CounterSink_Head_Dia,props.bf_Shank_Dia,props.bf_CounterSink_Head_Dia,props.bf_CounterSink_Head_Dia*(1.0/19.0)) - + Head_Verts, Head_Faces, Head_Height = Create_CounterSink_Head( + Bit_Dia, props.bf_CounterSink_Head_Dia, + props.bf_Shank_Dia, props.bf_CounterSink_Head_Dia, + props.bf_CounterSink_Head_Dia * (0.09 / 6.31), + props.bf_Div_Count + ) + """ + Head_Verts, Head_Faces, Head_Height = Create_CounterSink_Head( + Bit_Dia, props.bf_CounterSink_Head_Dia, + props.bf_Shank_Dia, + props.bf_CounterSink_Head_Dia, + props.bf_CounterSink_Head_Dia * (1.0 / 19.0) + ) + """ Face_Start = len(verts) - verts.extend(Move_Verts_Up_Z(Bit_Verts,Head_Height)) - faces.extend(Copy_Faces(Bit_Faces,Face_Start)) + verts.extend(Move_Verts_Up_Z(Bit_Verts, Head_Height)) + faces.extend(Copy_Faces(Bit_Faces, Face_Start)) Face_Start = len(verts) - verts.extend(Move_Verts_Up_Z(Head_Verts,Head_Height)) - faces.extend(Copy_Faces(Head_Faces,Face_Start)) + verts.extend(Move_Verts_Up_Z(Head_Verts, Head_Height)) + faces.extend(Copy_Faces(Head_Faces, Face_Start)) Face_Start = len(verts) - Thread_Verts,Thread_Faces,Thread_Height = Create_External_Thread(props.bf_Shank_Dia,props.bf_Shank_Length,props.bf_Minor_Dia,props.bf_Major_Dia,props.bf_Pitch,props.bf_Thread_Length,props.bf_Crest_Percent,props.bf_Root_Percent,props.bf_Div_Count) + Thread_Verts, Thread_Faces, Thread_Height = Create_External_Thread( + props.bf_Shank_Dia, props.bf_Shank_Length, + props.bf_Minor_Dia, props.bf_Major_Dia, + props.bf_Pitch, props.bf_Thread_Length, + props.bf_Crest_Percent, + props.bf_Root_Percent, props.bf_Div_Count + ) - verts.extend(Move_Verts_Up_Z(Thread_Verts,00)) - faces.extend(Copy_Faces(Thread_Faces,Face_Start)) + verts.extend(Move_Verts_Up_Z(Thread_Verts, 00)) + faces.extend(Copy_Faces(Thread_Faces, Face_Start)) + + return Move_Verts_Up_Z(verts, Thread_Height), faces - return Move_Verts_Up_Z(verts,Thread_Height),faces # calculates the matrix for the new object # depending on user pref def align_matrix(context): 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 = Matrix() @@ -2076,7 +2034,6 @@ def create_mesh_object(context, verts, edges, faces, name, edit, align_matrix): # Assign new mesh datablock. ob_new.data = mesh - else: # Create new object ob_new = bpy.data.objects.new(name, mesh) @@ -2121,28 +2078,25 @@ def Create_New_Mesh(props, context, align_matrix): verts = [] faces = [] # sMeshName ='' # UNUSED - sObjName ='' + sObjName = '' if props.bf_Model_Type == 'bf_Model_Bolt': - #print('Create Bolt') + # print('Create Bolt') verts, faces = Bolt_Mesh(props, context) # sMeshName = 'Bolt' # UNUSED sObjName = 'Bolt' if props.bf_Model_Type == 'bf_Model_Nut': - #print('Create Nut') + # print('Create Nut') verts, faces = Nut_Mesh(props, context) # sMeshName = 'Nut' # UNUSED sObjName = 'Nut' - verts, faces = RemoveDoubles(verts, faces) - verts = Scale_Mesh_Verts(verts,GLOBAL_SCALE) + verts = Scale_Mesh_Verts(verts, GLOBAL_SCALE) - obj = create_mesh_object(context, verts, [], faces,sObjName, - props.edit, align_matrix) + obj = create_mesh_object(context, verts, [], faces, sObjName, + props.edit, align_matrix) return obj - -