diff options
author | meta-androcto <meta.androcto1@gmail.com> | 2017-01-22 02:52:23 +0300 |
---|---|---|
committer | meta-androcto <meta.androcto1@gmail.com> | 2017-01-22 02:52:23 +0300 |
commit | 509bdb24e2f9598e41ad6f1d0d55dcd2aa1a4f23 (patch) | |
tree | 51a0698349c960d12b60164ef5b22957f0cb5477 /add_mesh_BoltFactory | |
parent | 8c7a77ab5c8f8e55fd12de72c7388676874e6488 (diff) |
bolt factory: T50443 add division count for higher precision
Diffstat (limited to 'add_mesh_BoltFactory')
-rw-r--r-- | add_mesh_BoltFactory/Boltfactory.py | 6 | ||||
-rw-r--r-- | add_mesh_BoltFactory/__init__.py | 6 | ||||
-rw-r--r-- | add_mesh_BoltFactory/createMesh.py | 189 |
3 files changed, 97 insertions, 104 deletions
diff --git a/add_mesh_BoltFactory/Boltfactory.py b/add_mesh_BoltFactory/Boltfactory.py index 4a5b6b79..aac6d51d 100644 --- a/add_mesh_BoltFactory/Boltfactory.py +++ b/add_mesh_BoltFactory/Boltfactory.py @@ -186,6 +186,11 @@ class add_mesh_bolt(bpy.types.Operator): 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, @@ -254,6 +259,7 @@ class add_mesh_bolt(bpy.types.Operator): col.prop(self, 'bf_Pitch') col.prop(self, 'bf_Crest_Percent') col.prop(self, 'bf_Root_Percent') + col.prop(self, 'bf_Div_Count') diff --git a/add_mesh_BoltFactory/__init__.py b/add_mesh_BoltFactory/__init__.py index d031f5ec..16dd9a9c 100644 --- a/add_mesh_BoltFactory/__init__.py +++ b/add_mesh_BoltFactory/__init__.py @@ -19,8 +19,8 @@ bl_info = { "name": "BoltFactory", "author": "Aaron Keith", - "version": (3, 10), - "blender": (2, 63, 0), + "version": (0, 3, 1), + "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/" @@ -41,7 +41,7 @@ import bpy ##### REGISTER ##### def add_mesh_bolt_button(self, context): - self.layout.operator(Boltfactory.add_mesh_bolt.bl_idname, text="Bolt", icon="PLUGIN") + self.layout.operator(Boltfactory.add_mesh_bolt.bl_idname, text="Bolt", icon="MOD_SCREW") def register(): diff --git a/add_mesh_BoltFactory/createMesh.py b/add_mesh_BoltFactory/createMesh.py index e9d2be14..80291c81 100644 --- a/add_mesh_BoltFactory/createMesh.py +++ b/add_mesh_BoltFactory/createMesh.py @@ -343,17 +343,17 @@ def Allen_Bit_Dia_To_Flat(DIA): def Create_Allen_Bit(FLAT_DISTANCE,HEIGHT): - Div = 36 verts = [] faces = [] + DIV_COUNT = 36 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) FaceStart_Outside = len(verts) - Deg_Step = 360.0 /float(Div) + Deg_Step = 360.0 /float(DIV_COUNT) - for i in range(int(Div/2)+1): # only do half and mirror later + 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]) @@ -438,18 +438,18 @@ def Phillips_Fill(OFFSET,FLIP= 0): def Create_Phillips_Bit(FLAT_DIA,FLAT_WIDTH,HEIGHT): - Div = 36 verts = [] faces = [] + DIV_COUNT = 36 FLAT_RADIUS = FLAT_DIA * 0.5 OUTTER_RADIUS = FLAT_RADIUS * 1.05 Flat_Half = float(FLAT_WIDTH)/2.0 FaceStart_Outside = len(verts) - Deg_Step = 360.0 /float(Div) - for i in range(int(Div/4)+1): # only do half and mirror later + 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]) @@ -488,9 +488,8 @@ def Max_Pan_Bit_Dia(HEAD_DIA): return (sin(radians(10))*XRad) * 2.0 -def Create_Pan_Head(HOLE_DIA,HEAD_DIA,SHANK_DIA,HEIGHT,RAD1,RAD2,FACE_OFFSET): +def Create_Pan_Head(HOLE_DIA,HEAD_DIA,SHANK_DIA,HEIGHT,RAD1,RAD2,FACE_OFFSET,DIV_COUNT): - DIV = 36 HOLE_RADIUS = HOLE_DIA * 0.5 HEAD_RADIUS = HEAD_DIA * 0.5 SHANK_RADIUS = SHANK_DIA * 0.5 @@ -547,10 +546,10 @@ def Create_Pan_Head(HOLE_DIA,HEAD_DIA,SHANK_DIA,HEIGHT,RAD1,RAD2,FACE_OFFSET): Row += 1 - sVerts,sFaces = SpinDup(verts,faces,360,DIV,'z') + 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)) + faces.extend(Build_Face_List_Quads(FaceStart,Row-1,DIV_COUNT)) # Global_Head_Height = HEIGHT # UNUSED @@ -559,8 +558,7 @@ def Create_Pan_Head(HOLE_DIA,HEAD_DIA,SHANK_DIA,HEIGHT,RAD1,RAD2,FACE_OFFSET): -def Create_Dome_Head(HOLE_DIA,HEAD_DIA,SHANK_DIA,HEIGHT,RAD1,RAD2,FACE_OFFSET): - DIV = 36 +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 @@ -615,17 +613,16 @@ def Create_Dome_Head(HOLE_DIA,HEAD_DIA,SHANK_DIA,HEIGHT,RAD1,RAD2,FACE_OFFSET): Row += 1 - sVerts,sFaces = SpinDup(verts,faces,360,DIV,'z') + 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)) + faces.extend(Build_Face_List_Quads(FaceStart,Row-1,DIV_COUNT)) return sVerts,faces,Dome_Height -def Create_CounterSink_Head(HOLE_DIA,HEAD_DIA,SHANK_DIA,HEIGHT,RAD1): - DIV = 36 +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 @@ -658,19 +655,18 @@ def Create_CounterSink_Head(HOLE_DIA,HEAD_DIA,SHANK_DIA,HEIGHT,RAD1): Row += 1 - sVerts,sFaces = SpinDup(verts,faces,360,DIV,'z') + 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,1)) + faces.extend(Build_Face_List_Quads(FaceStart,Row-1,DIV_COUNT,1)) return sVerts,faces,HEIGHT -def Create_Cap_Head(HOLE_DIA,HEAD_DIA,SHANK_DIA,HEIGHT,RAD1,RAD2): - DIV = 36 +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 @@ -711,11 +707,11 @@ def Create_Cap_Head(HOLE_DIA,HEAD_DIA,SHANK_DIA,HEIGHT,RAD1,RAD2): Row += 1 - sVerts,sFaces = SpinDup(verts,faces,360,DIV,'z') + 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)) + faces.extend(Build_Face_List_Quads(FaceStart,Row-1,DIV_COUNT)) return sVerts,faces,HEIGHT+RAD2 @@ -952,15 +948,15 @@ def Create_Hex_Head(FLAT,HOLE_DIA,SHANK_DIA,HEIGHT): -def Thread_Start3(verts,INNER_RADIUS,OUTTER_RADIUS,PITCH,DIV,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; # 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_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) @@ -968,10 +964,10 @@ def Thread_Start3(verts,INNER_RADIUS,OUTTER_RADIUS,PITCH,DIV,CREST_PERCENT,ROOT_ #theard start - Rank = float(OUTTER_RADIUS - INNER_RADIUS)/float(DIV) + Rank = float(OUTTER_RADIUS - INNER_RADIUS)/float(DIV_COUNT) for j in range(4): - for i in range(DIV+1): + for i in range(DIV_COUNT+1): z = Height_Offset - (Height_Step*i) if z > Height_Start: z = Height_Start @@ -981,7 +977,7 @@ def Thread_Start3(verts,INNER_RADIUS,OUTTER_RADIUS,PITCH,DIV,CREST_PERCENT,ROOT_ Height_Offset -= Crest_Height Ret_Row += 1 - for i in range(DIV+1): + for i in range(DIV_COUNT+1): z = Height_Offset - (Height_Step*i) if z > Height_Start: z = Height_Start @@ -993,7 +989,7 @@ def Thread_Start3(verts,INNER_RADIUS,OUTTER_RADIUS,PITCH,DIV,CREST_PERCENT,ROOT_ Ret_Row += 1 - for i in range(DIV+1): + for i in range(DIV_COUNT+1): z = Height_Offset - (Height_Step*i) if z > Height_Start: z = Height_Start @@ -1007,7 +1003,7 @@ def Thread_Start3(verts,INNER_RADIUS,OUTTER_RADIUS,PITCH,DIV,CREST_PERCENT,ROOT_ Height_Offset -= Root_Height Ret_Row += 1 - for i in range(DIV+1): + for i in range(DIV_COUNT+1): z = Height_Offset - (Height_Step*i) if z > Height_Start: z = Height_Start @@ -1025,10 +1021,9 @@ def Thread_Start3(verts,INNER_RADIUS,OUTTER_RADIUS,PITCH,DIV,CREST_PERCENT,ROOT_ return Ret_Row,Height_Offset -def Create_Shank_Verts(START_DIA,OUTTER_DIA,LENGTH,Z_LOCATION = 0): +def Create_Shank_Verts(START_DIA,OUTTER_DIA,LENGTH,Z_LOCATION,DIV_COUNT): verts = [] - DIV = 36 START_RADIUS = START_DIA/2 OUTTER_RADIUS = OUTTER_DIA/2 @@ -1041,7 +1036,7 @@ def Create_Shank_Verts(START_DIA,OUTTER_DIA,LENGTH,Z_LOCATION = 0): Stright_Length = LENGTH - Taper_Lentgh - Deg_Step = 360.0 /float(DIV) + Deg_Step = 360.0 /float(DIV_COUNT) Row = 0 @@ -1051,7 +1046,7 @@ def Create_Shank_Verts(START_DIA,OUTTER_DIA,LENGTH,Z_LOCATION = 0): #ring - for i in range(DIV+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 @@ -1060,7 +1055,7 @@ def Create_Shank_Verts(START_DIA,OUTTER_DIA,LENGTH,Z_LOCATION = 0): Height_Offset -= Stright_Length Row += 1 - for i in range(DIV+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 @@ -1073,17 +1068,16 @@ def Create_Shank_Verts(START_DIA,OUTTER_DIA,LENGTH,Z_LOCATION = 0): return verts,Row,Height_Offset -def Create_Thread_Start_Verts(INNER_DIA,OUTTER_DIA,PITCH,CREST_PERCENT,ROOT_PERCENT,Z_LOCATION = 0): +def Create_Thread_Start_Verts(INNER_DIA,OUTTER_DIA,PITCH,CREST_PERCENT,ROOT_PERCENT,Z_LOCATION,DIV_COUNT): verts = [] - DIV = 36 - + INNER_RADIUS = INNER_DIA/2 OUTTER_RADIUS = OUTTER_DIA/2 # Half_Pitch = float(PITCH)/2 # UNUSED - Deg_Step = 360.0 /float(DIV) - Height_Step = float(PITCH)/float(DIV) + Deg_Step = 360.0 /float(DIV_COUNT) + Height_Step = float(PITCH)/float(DIV_COUNT) Row = 0 @@ -1097,7 +1091,7 @@ def Create_Thread_Start_Verts(INNER_DIA,OUTTER_DIA,PITCH,CREST_PERCENT,ROOT_PERC 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_COUNT) Height_Offset = Z_LOCATION + PITCH Cut_off = Z_LOCATION @@ -1105,7 +1099,7 @@ def Create_Thread_Start_Verts(INNER_DIA,OUTTER_DIA,PITCH,CREST_PERCENT,ROOT_PERC for j in range(1): - for i in range(DIV+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) @@ -1115,7 +1109,7 @@ def Create_Thread_Start_Verts(INNER_DIA,OUTTER_DIA,PITCH,CREST_PERCENT,ROOT_PERC Height_Offset -= Crest_Height Row += 1 - for i in range(DIV+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) @@ -1125,7 +1119,7 @@ def Create_Thread_Start_Verts(INNER_DIA,OUTTER_DIA,PITCH,CREST_PERCENT,ROOT_PERC Height_Offset -= Crest_to_Root_Height Row += 1 - for i in range(DIV+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) @@ -1135,7 +1129,7 @@ def Create_Thread_Start_Verts(INNER_DIA,OUTTER_DIA,PITCH,CREST_PERCENT,ROOT_PERC Height_Offset -= Root_Height Row += 1 - for i in range(DIV+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) @@ -1147,7 +1141,7 @@ def Create_Thread_Start_Verts(INNER_DIA,OUTTER_DIA,PITCH,CREST_PERCENT,ROOT_PERC for j in range(2): - for i in range(DIV+1): + for i in range(DIV_COUNT+1): z = Height_Offset - (Height_Step*i) if z > Height_Start: z = Height_Start @@ -1158,7 +1152,7 @@ def Create_Thread_Start_Verts(INNER_DIA,OUTTER_DIA,PITCH,CREST_PERCENT,ROOT_PERC Height_Offset -= Crest_Height Row += 1 - for i in range(DIV+1): + for i in range(DIV_COUNT+1): z = Height_Offset - (Height_Step*i) if z > Height_Start: z = Height_Start @@ -1171,7 +1165,7 @@ def Create_Thread_Start_Verts(INNER_DIA,OUTTER_DIA,PITCH,CREST_PERCENT,ROOT_PERC Row += 1 - for i in range(DIV+1): + for i in range(DIV_COUNT+1): z = Height_Offset - (Height_Step*i) if z > Height_Start: z = Height_Start @@ -1186,7 +1180,7 @@ def Create_Thread_Start_Verts(INNER_DIA,OUTTER_DIA,PITCH,CREST_PERCENT,ROOT_PERC Height_Offset -= Root_Height Row += 1 - for i in range(DIV+1): + for i in range(DIV_COUNT+1): z = Height_Offset - (Height_Step*i) if z > Height_Start: z = Height_Start @@ -1207,17 +1201,16 @@ def Create_Thread_Start_Verts(INNER_DIA,OUTTER_DIA,PITCH,CREST_PERCENT,ROOT_PERC -def Create_Thread_Verts(INNER_DIA,OUTTER_DIA,PITCH,HEIGHT,CREST_PERCENT,ROOT_PERCENT,Z_LOCATION = 0): +def Create_Thread_Verts(INNER_DIA,OUTTER_DIA,PITCH,HEIGHT,CREST_PERCENT,ROOT_PERCENT,Z_LOCATION,DIV_COUNT): verts = [] - DIV = 36 INNER_RADIUS = INNER_DIA/2 OUTTER_RADIUS = OUTTER_DIA/2 # Half_Pitch = float(PITCH)/2 # UNUSED - Deg_Step = 360.0 /float(DIV) - Height_Step = float(PITCH)/float(DIV) + 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 @@ -1236,7 +1229,7 @@ def Create_Thread_Verts(INNER_DIA,OUTTER_DIA,PITCH,HEIGHT,CREST_PERCENT,ROOT_PER for j in range(Num): - for i in range(DIV+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) @@ -1245,7 +1238,7 @@ def Create_Thread_Verts(INNER_DIA,OUTTER_DIA,PITCH,HEIGHT,CREST_PERCENT,ROOT_PER Height_Offset -= Crest_Height Row += 1 - for i in range(DIV+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) @@ -1255,7 +1248,7 @@ def Create_Thread_Verts(INNER_DIA,OUTTER_DIA,PITCH,HEIGHT,CREST_PERCENT,ROOT_PER Row += 1 - for i in range(DIV+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) @@ -1264,7 +1257,7 @@ def Create_Thread_Verts(INNER_DIA,OUTTER_DIA,PITCH,HEIGHT,CREST_PERCENT,ROOT_PER Height_Offset -= Root_Height Row += 1 - for i in range(DIV+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) @@ -1277,17 +1270,16 @@ def Create_Thread_Verts(INNER_DIA,OUTTER_DIA,PITCH,HEIGHT,CREST_PERCENT,ROOT_PER -def Create_Thread_End_Verts(INNER_DIA,OUTTER_DIA,PITCH,CREST_PERCENT,ROOT_PERCENT,Z_LOCATION = 0): +def Create_Thread_End_Verts(INNER_DIA,OUTTER_DIA,PITCH,CREST_PERCENT,ROOT_PERCENT,Z_LOCATION,DIV_COUNT): verts = [] - DIV = 36 INNER_RADIUS = INNER_DIA/2 OUTTER_RADIUS = OUTTER_DIA/2 # Half_Pitch = float(PITCH)/2 # UNUSED - Deg_Step = 360.0 /float(DIV) - Height_Step = float(PITCH)/float(DIV) + 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) @@ -1307,7 +1299,7 @@ def Create_Thread_End_Verts(INNER_DIA,OUTTER_DIA,PITCH,CREST_PERCENT,ROOT_PERCEN # FaceStart = len(verts) # UNUSED for j in range(4): - for i in range(DIV+1): + for i in range(DIV_COUNT+1): z = Height_Offset - (Height_Step*i) z = max(z,Max_Height) Tapper_Radius = OUTTER_RADIUS @@ -1321,7 +1313,7 @@ def Create_Thread_End_Verts(INNER_DIA,OUTTER_DIA,PITCH,CREST_PERCENT,ROOT_PERCEN Height_Offset -= Crest_Height Row += 1 - for i in range(DIV+1): + for i in range(DIV_COUNT+1): z = Height_Offset - (Height_Step*i) z = max(z,Max_Height) Tapper_Radius = OUTTER_RADIUS @@ -1336,7 +1328,7 @@ def Create_Thread_End_Verts(INNER_DIA,OUTTER_DIA,PITCH,CREST_PERCENT,ROOT_PERCEN Row += 1 - for i in range(DIV+1): + 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) @@ -1350,7 +1342,7 @@ def Create_Thread_End_Verts(INNER_DIA,OUTTER_DIA,PITCH,CREST_PERCENT,ROOT_PERCEN Height_Offset -= Root_Height Row += 1 - for i in range(DIV+1): + 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) @@ -1369,13 +1361,11 @@ def Create_Thread_End_Verts(INNER_DIA,OUTTER_DIA,PITCH,CREST_PERCENT,ROOT_PERCEN -def Create_External_Thread(SHANK_DIA,SHANK_LENGTH,INNER_DIA,OUTTER_DIA,PITCH,LENGTH,CREST_PERCENT,ROOT_PERCENT): +def Create_External_Thread(SHANK_DIA,SHANK_LENGTH,INNER_DIA,OUTTER_DIA,PITCH,LENGTH,CREST_PERCENT,ROOT_PERCENT,DIV_COUNT): verts = [] faces = [] - DIV = 36 - Total_Row = 0 # Thread_Len = 0 # UNUSED @@ -1383,18 +1373,18 @@ def Create_External_Thread(SHANK_DIA,SHANK_LENGTH,INNER_DIA,OUTTER_DIA,PITCH,LEN Offset = 0.0; - Shank_Verts,Shank_Row,Offset = Create_Shank_Verts(SHANK_DIA,OUTTER_DIA,SHANK_LENGTH,Offset) + 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) + 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) + 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 ) + 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 @@ -1403,8 +1393,8 @@ def Create_External_Thread(SHANK_DIA,SHANK_LENGTH,INNER_DIA,OUTTER_DIA,PITCH,LEN verts.extend(Thread_Verts) verts.extend(Thread_End_Verts) - faces.extend(Build_Face_List_Quads(Face_Start,DIV,Total_Row -1,0)) - faces.extend(Fill_Ring_Face(len(verts)-DIV,DIV,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 @@ -1566,8 +1556,7 @@ def add_Hex_Nut(FLAT,HOLE_DIA,HEIGHT): -def add_Nylon_Head(OUTSIDE_RADIUS,Z_LOCATION = 0): - DIV = 36 +def add_Nylon_Head(OUTSIDE_RADIUS,Z_LOCATION,DIV_COUNT): verts = [] faces = [] Row = 0 @@ -1611,17 +1600,16 @@ def add_Nylon_Head(OUTSIDE_RADIUS,Z_LOCATION = 0): Lowest_Z_Vert = min(Lowest_Z_Vert,z) Row += 1 - sVerts,sFaces = SpinDup(verts,faces,360,DIV,'z') + 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)) + faces.extend(Build_Face_List_Quads(FaceStart,Row-1,DIV_COUNT)) return Move_Verts_Up_Z(sVerts,0),faces,Lowest_Z_Vert -def add_Nylon_Part(OUTSIDE_RADIUS,Z_LOCATION = 0): - DIV = 36 +def add_Nylon_Part(OUTSIDE_RADIUS,Z_LOCATION,DIV_COUNT): verts = [] faces = [] Row = 0 @@ -1665,10 +1653,10 @@ def add_Nylon_Part(OUTSIDE_RADIUS,Z_LOCATION = 0): Row += 1 - sVerts,sFaces = SpinDup(verts,faces,360,DIV,'z') + 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,1)) + faces.extend(Build_Face_List_Quads(FaceStart,Row-1,DIV_COUNT,1)) return sVerts,faces,0 - Lowest_Z_Vert @@ -1843,18 +1831,17 @@ def Create_Internal_Thread_End_Verts(verts,INNER_RADIUS,OUTTER_RADIUS,PITCH,DIV, 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 = 1): +def Create_Internal_Thread(INNER_DIA,OUTTER_DIA,PITCH,HEIGHT,CREST_PERCENT,ROOT_PERCENT,INTERNAL,DIV_COUNT): verts = [] faces = [] - DIV = 36 INNER_RADIUS = INNER_DIA/2 OUTTER_RADIUS = OUTTER_DIA/2 # Half_Pitch = float(PITCH)/2 # UNUSED - Deg_Step = 360.0 /float(DIV) - Height_Step = float(PITCH)/float(DIV) + 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 @@ -1869,33 +1856,33 @@ def Create_Internal_Thread(INNER_DIA,OUTTER_DIA,PITCH,HEIGHT,CREST_PERCENT,ROOT_ Height_Offset = 0 FaceStart = len(verts) - Row_Inc,Height_Offset = Create_Internal_Thread_Start_Verts(verts,INNER_RADIUS,OUTTER_RADIUS,PITCH,DIV,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+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) ]) Height_Offset -= Crest_Height Row += 1 - for i in range(DIV+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) ]) Height_Offset -= Crest_to_Root_Height Row += 1 - for i in range(DIV+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) ]) Height_Offset -= Root_Height Row += 1 - for i in range(DIV+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) ]) @@ -1903,10 +1890,10 @@ def Create_Internal_Thread(INNER_DIA,OUTTER_DIA,PITCH,HEIGHT,CREST_PERCENT,ROOT_ Row += 1 - Row_Inc,Height_Offset = Create_Internal_Thread_End_Verts(verts,INNER_RADIUS,OUTTER_RADIUS,PITCH,DIV,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,Row -1,INTERNAL)) + faces.extend(Build_Face_List_Quads(FaceStart,DIV_COUNT,Row -1,INTERNAL)) return verts,faces,0 - Height_Offset @@ -1922,7 +1909,7 @@ def Nut_Mesh(props, context): 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) + 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)) @@ -1935,12 +1922,12 @@ def Nut_Mesh(props, context): 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) + 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)) Face_Start = len(verts) - Nylon_Verts,Nylon_faces,Temp_LowZ = add_Nylon_Part(Lock_Nut_Rad,0-New_Nut_Height) + 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)) @@ -1997,16 +1984,16 @@ def Bolt_Mesh(props, context): 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)) + 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) + 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) + 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)) + 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) @@ -2018,7 +2005,7 @@ def Bolt_Mesh(props, context): 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) + 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)) |