Skip to content
Snippets Groups Projects
Commit 32bf6e71 authored by Aaron Keith's avatar Aaron Keith
Browse files

Added Torx bit type

parent cc1a2f5a
Branches
Tags
No related merge requests found
......@@ -73,6 +73,7 @@ class add_mesh_bolt(Operator, AddObjectHelper):
# Bit Types
Bit_Type_List = [('bf_Bit_None', 'NONE', 'No Bit Type'),
('bf_Bit_Allen', 'ALLEN', 'Allen Bit Type'),
('bf_Bit_Torx', 'TORX', 'Torx Bit Type'),
('bf_Bit_Philips', 'PHILLIPS', 'Phillips Bit Type')]
bf_Bit_Type: EnumProperty(
attr='bf_Bit_Type',
......@@ -129,6 +130,30 @@ class add_mesh_bolt(Operator, AddObjectHelper):
description='Flat Distance of the Allen Bit',
unit='LENGTH',
)
# Torx Size Types
Torx_Size_Type_List = [('bf_Torx_T10', 'T10', 'T10'),
('bf_Torx_T20', 'T20', 'T20'),
('bf_Torx_T25', 'T25', 'T25'),
('bf_Torx_T30', 'T30', 'T30'),
('bf_Torx_T40', 'T40', 'T40'),
('bf_Torx_T50', 'T50', 'T50'),
('bf_Torx_T55', 'T55', 'T55'),
]
bf_Torx_Size_Type: EnumProperty(
attr='bf_Torx_Size_Type',
name='Torx Size',
description='Size of the Torx Bit',
items=Torx_Size_Type_List, default='bf_Torx_T20'
)
bf_Torx_Bit_Depth: FloatProperty(
attr='bf_Torx_Bit_Depth',
name='Bit Depth', default=1.5,
min=0, soft_min=0,
max=MAX_INPUT_NUMBER,
description='Depth of the Torx Bit',
unit='LENGTH',
)
bf_Hex_Head_Height: FloatProperty(
attr='bf_Hex_Head_Height',
name='Head Height', default=2,
......@@ -434,6 +459,8 @@ def BoltParameters():
"bf_Phillips_Bit_Depth",
"bf_Allen_Bit_Depth",
"bf_Allen_Bit_Flat_Distance",
"bf_Torx_Bit_Depth",
"bf_Torx_Size_Type",
"bf_Hex_Head_Height",
"bf_Hex_Head_Flat_Distance",
"bf_CounterSink_Head_Dia",
......
......@@ -285,6 +285,29 @@ def Fill_Ring_Face(OFFSET, NUM, FACE_DOWN=0):
Face[2] = TempFace[2]
return Ret
# Returns a list of faces that makes up a fill pattern around the last vert
def Fill_Fan_Face(OFFSET, NUM, FACE_DOWN=0):
Ret = []
Face = [NUM-1,0,1]
TempFace = [0, 0, 0]
A = 0
#B = 1 unsed
C = 2
if NUM < 3:
return None
for _i in range(NUM - 2):
TempFace[0] = Face[A]
TempFace[1] = Face[C]
TempFace[2] = Face[C]+1
if FACE_DOWN:
Ret.append([OFFSET + Face[2], OFFSET + Face[1], OFFSET + Face[0]])
else:
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
......@@ -378,7 +401,175 @@ def Create_Allen_Bit(FLAT_DISTANCE, HEIGHT):
faces.extend(M_Faces)
return verts, faces, OUTTER_RADIUS * 2.0
# ####################################################################
# Create Torx Bit
# ####################################################################
def Torx_Bit_Size_To_Point_Distance(Bit_Size):
if Bit_Size == 'bf_Torx_T10':
return 2.83
elif Bit_Size == 'bf_Torx_T20':
return 3.94
elif Bit_Size == 'bf_Torx_T25':
return 4.52
elif Bit_Size == 'bf_Torx_T30':
return 5.61
elif Bit_Size == 'bf_Torx_T40':
return 6.75
elif Bit_Size == 'bf_Torx_T50':
return 8.94
elif Bit_Size == 'bf_Torx_T55':
return 8.94
else:
return 2.83 #default to M3
def Torx_Fill(OFFSET, FLIP=0):
faces = []
Lookup = [[0,10,11],
[0,11, 12],
[0,12,1],
[1, 12, 13],
[1, 13, 14],
[1, 14, 15],
[1, 15, 2],
[2, 15, 16],
[2, 16, 17],
[2, 17, 18],
[2, 18, 19],
[2, 19, 3],
[3, 19, 20],
[3, 20, 21],
[3, 21, 22],
[3, 22, 23],
[3, 23, 24],
[3, 24, 25],
[3, 25, 4],
[4, 25, 26],
[4, 26, 27],
[4, 27, 28],
[4, 28, 29],
[4, 29, 30],
[4, 30, 31],
[4, 31, 5],
[5, 31, 32],
[5, 32, 33],
[5, 33, 34],
[5, 34, 35],
[5, 35, 36],
[5, 36, 6],
[6, 36, 37],
[6, 37, 38],
[6, 38, 39],
[6, 39, 7],
[7, 39, 40],
[7, 40, 41],
[7, 41, 42],
[7, 42, 43],
[7, 43, 8],
[8, 43, 44],
[8, 44, 45],
[8, 45, 46],
[8, 46, 47],
[8, 47, 48],
[8, 48, 49],
[8, 49, 50],
[8, 50, 51],
[8, 51, 52],
[8, 52, 9],
]
for i in Lookup:
if FLIP:
faces.append([OFFSET + i[2], OFFSET + i[1], OFFSET + i[0]])
else:
faces.append([OFFSET + i[0], OFFSET + i[1], OFFSET + i[2]])
return faces
def Create_Torx_Bit(Point_Distance, HEIGHT):
verts = []
faces = []
POINT_RADIUS = Point_Distance * 0.5
OUTTER_RADIUS = POINT_RADIUS * 1.05
POINT_1_Y = POINT_RADIUS * 0.816592592592593
POINT_2_X = POINT_RADIUS * 0.511111111111111
POINT_2_Y = POINT_RADIUS * 0.885274074074074
POINT_3_X = POINT_RADIUS * 0.7072
POINT_3_Y = POINT_RADIUS * 0.408296296296296
POINT_4_X = POINT_RADIUS * 1.02222222222222
SMALL_RADIUS = POINT_RADIUS * 0.183407407407407
BIG_RADIUS = POINT_RADIUS * 0.333333333333333
# Values for T40 # POINT_1_Y = 2.756
# POINT_2_X = 1.725
# POINT_2_Y = 2.9878
# POINT_3_X = 2.3868
# POINT_3_Y = 1.378
# POINT_4_X = 3.45
#
# SMALL_RADIUS = 0.619
# BIG_RADIUS = 1.125
def Do_Curve(Curve_Height):
for i in range(0, 90, 10):
x = sin(radians(i)) * SMALL_RADIUS
y = cos(radians(i)) * SMALL_RADIUS
verts.append([x, POINT_1_Y + y, Curve_Height])
for i in range(260, 150, -10):
x = sin(radians(i)) * BIG_RADIUS
y = cos(radians(i)) * BIG_RADIUS
verts.append([POINT_2_X + x, POINT_2_Y + y, Curve_Height])
for i in range(340, 150 + 360, 10):
x = sin(radians(i%360)) * SMALL_RADIUS
y = cos(radians(i%360)) * SMALL_RADIUS
verts.append([POINT_3_X + x, POINT_3_Y + y, Curve_Height])
for i in range(320, 260, -10):
x = sin(radians(i)) * BIG_RADIUS
y = cos(radians(i)) * BIG_RADIUS
verts.append([POINT_4_X + x, y, Curve_Height])
FaceStart_Outside = len(verts)
for i in range(0, 100, 10):
x = sin(radians(i)) * OUTTER_RADIUS
y = cos(radians(i)) * OUTTER_RADIUS
verts.append([x, y, 0])
FaceStart_Top_Curve= len(verts)
Do_Curve(0)
faces.extend(Torx_Fill(FaceStart_Outside, 0))
FaceStart_Bottom_Curve= len(verts)
Do_Curve(0 - HEIGHT)
faces.extend(Build_Face_List_Quads(FaceStart_Top_Curve,42 ,1 , True))
verts.append([0,0,0 - HEIGHT]) # add center point for fill Fan
faces.extend(Fill_Fan_Face(FaceStart_Bottom_Curve, 44))
M_Verts, M_Faces = Mirror_Verts_Faces(verts, faces, 'x')
verts.extend(M_Verts)
faces.extend(M_Faces)
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
# ####################################################################
# Create Phillips Bit
......
......@@ -10,6 +10,8 @@ op.bf_Shank_Dia = 3.0
op.bf_Phillips_Bit_Depth = 1.1431535482406616
op.bf_Allen_Bit_Depth = 1.5
op.bf_Allen_Bit_Flat_Distance = 2.5
op.bf_Torx_Bit_Depth = 1.5
op.bf_Torx_Size_Type = 'bf_Torx_T10'
op.bf_Hex_Head_Height = 2.0
op.bf_Hex_Head_Flat_Distance = 5.5
op.bf_CounterSink_Head_Dia = 6.300000190734863
......
......@@ -10,6 +10,8 @@ op.bf_Shank_Dia = 10.0
op.bf_Phillips_Bit_Depth = 4.082691192626953
op.bf_Allen_Bit_Depth = 5.0
op.bf_Allen_Bit_Flat_Distance = 8.0
op.bf_Torx_Bit_Depth = 5.0
op.bf_Torx_Size_Type = 'bf_Torx_T50'
op.bf_Hex_Head_Height = 6.400000095367432
op.bf_Hex_Head_Flat_Distance = 17.0
op.bf_CounterSink_Head_Dia = 20.0
......
......@@ -10,6 +10,8 @@ op.bf_Shank_Dia = 12.0
op.bf_Phillips_Bit_Depth = 4.899229526519775
op.bf_Allen_Bit_Depth = 6.0
op.bf_Allen_Bit_Flat_Distance = 10.0
op.bf_Torx_Bit_Depth = 6.0
op.bf_Torx_Size_Type = 'bf_Torx_T55'
op.bf_Hex_Head_Height = 7.5
op.bf_Hex_Head_Flat_Distance = 19.0
op.bf_CounterSink_Head_Dia = 22.0
......
......@@ -10,6 +10,8 @@ op.bf_Shank_Dia = 3.0
op.bf_Phillips_Bit_Depth = 1.1431535482406616
op.bf_Allen_Bit_Depth = 1.5
op.bf_Allen_Bit_Flat_Distance = 2.5
op.bf_Torx_Bit_Depth = 1.5
op.bf_Torx_Size_Type = 'bf_Torx_T10'
op.bf_Hex_Head_Height = 2.0
op.bf_Hex_Head_Flat_Distance = 5.5
op.bf_CounterSink_Head_Dia = 6.300000190734863
......
......@@ -10,6 +10,8 @@ op.bf_Shank_Dia = 4.0
op.bf_Phillips_Bit_Depth = 1.6330764293670654
op.bf_Allen_Bit_Depth = 2.0
op.bf_Allen_Bit_Flat_Distance = 3.0
op.bf_Torx_Bit_Depth = 2.0
op.bf_Torx_Size_Type = 'bf_Torx_T20'
op.bf_Hex_Head_Height = 2.799999952316284
op.bf_Hex_Head_Flat_Distance = 7.0
op.bf_CounterSink_Head_Dia = 9.399999618530273
......
......@@ -10,6 +10,8 @@ op.bf_Shank_Dia = 5.0
op.bf_Phillips_Bit_Depth = 1.9392783641815186
op.bf_Allen_Bit_Depth = 2.5
op.bf_Allen_Bit_Flat_Distance = 4.0
op.bf_Torx_Bit_Depth = 2.5
op.bf_Torx_Size_Type = 'bf_Torx_T25'
op.bf_Hex_Head_Height = 3.5
op.bf_Hex_Head_Flat_Distance = 8.0
op.bf_CounterSink_Head_Dia = 10.399999618530273
......
......@@ -10,6 +10,8 @@ op.bf_Shank_Dia = 6.0
op.bf_Phillips_Bit_Depth = 2.4496147632598877
op.bf_Allen_Bit_Depth = 3.0
op.bf_Allen_Bit_Flat_Distance = 5.0
op.bf_Torx_Bit_Depth = 3.0
op.bf_Torx_Size_Type = 'bf_Torx_T30'
op.bf_Hex_Head_Height = 4.0
op.bf_Hex_Head_Flat_Distance = 10.0
op.bf_CounterSink_Head_Dia = 12.600000381469727
......
......@@ -10,6 +10,8 @@ op.bf_Shank_Dia = 8.0
op.bf_Phillips_Bit_Depth = 3.266152858734131
op.bf_Allen_Bit_Depth = 4.0
op.bf_Allen_Bit_Flat_Distance = 6.0
op.bf_Torx_Bit_Depth = 4.0
op.bf_Torx_Size_Type = 'bf_Torx_T40'
op.bf_Hex_Head_Height = 5.300000190734863
op.bf_Hex_Head_Flat_Distance = 13.0
op.bf_CounterSink_Head_Dia = 17.299999237060547
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment