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

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'add_mesh_BoltFactory/createMesh.py')
-rw-r--r--add_mesh_BoltFactory/createMesh.py154
1 files changed, 77 insertions, 77 deletions
diff --git a/add_mesh_BoltFactory/createMesh.py b/add_mesh_BoltFactory/createMesh.py
index 96284012..e19f15ba 100644
--- a/add_mesh_BoltFactory/createMesh.py
+++ b/add_mesh_BoltFactory/createMesh.py
@@ -291,14 +291,14 @@ def Fill_Fan_Face(OFFSET, NUM, FACE_DOWN=0):
Ret = []
Face = [NUM-1,0,1]
TempFace = [0, 0, 0]
- A = 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[1] = Face[C]
TempFace[2] = Face[C]+1
if FACE_DOWN:
Ret.append([OFFSET + Face[2], OFFSET + Face[1], OFFSET + Face[0]])
@@ -429,18 +429,18 @@ def Torx_Fill(OFFSET, FLIP=0):
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],
@@ -448,8 +448,8 @@ def Torx_Fill(OFFSET, FLIP=0):
[3, 23, 24],
[3, 24, 25],
[3, 25, 4],
-
-
+
+
[4, 25, 26],
[4, 26, 27],
[4, 27, 28],
@@ -457,25 +457,25 @@ def Torx_Fill(OFFSET, FLIP=0):
[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],
@@ -505,40 +505,40 @@ def Create_Torx_Bit(Point_Distance, HEIGHT):
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
+ 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_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):
+ 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):
+
+ 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):
+
+ 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])
@@ -553,19 +553,19 @@ def Create_Torx_Bit(Point_Distance, HEIGHT):
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)
@@ -1078,12 +1078,12 @@ def Create_12_Point(FLAT, HOLE_DIA, SHANK_DIA, HEIGHT,FLANGE_DIA):
FLANGE_HEIGHT = (1.89/8.0)*HEIGHT
FLAT_HEIGHT = (4.18/8.0)*HEIGHT
# FLANGE_DIA = (13.27/8.0)*FLAT
-
+
FLANGE_RADIUS = FLANGE_DIA * 0.5
- FLANGE_TAPPER_HEIGHT = HEIGHT - FLANGE_HEIGHT - FLAT_HEIGHT
-
+ FLANGE_TAPPER_HEIGHT = HEIGHT - FLANGE_HEIGHT - FLAT_HEIGHT
+
# HOLE_DIA = 0.0
-
+
verts = []
faces = []
HOLE_RADIUS = HOLE_DIA / 2
@@ -1098,7 +1098,7 @@ def Create_12_Point(FLAT, HOLE_DIA, SHANK_DIA, HEIGHT,FLANGE_DIA):
verts.append([0.0, 0.0, 0.0])
-# print("HOLE_RADIUS" + str(HOLE_RADIUS))
+# print("HOLE_RADIUS" + str(HOLE_RADIUS))
# print("TopBevelRadius" + str(TopBevelRadius))
FaceStart = len(verts)
@@ -1123,15 +1123,15 @@ def Create_12_Point(FLAT, HOLE_DIA, SHANK_DIA, HEIGHT,FLANGE_DIA):
x = sin(radians(20)) * HOLE_RADIUS
y = cos(radians(20)) * HOLE_RADIUS
verts.append([x, y, 0.0])
-
+
x = sin(radians(25)) * HOLE_RADIUS
y = cos(radians(25)) * HOLE_RADIUS
verts.append([x, y, 0.0])
-
+
x = sin(radians(30)) * HOLE_RADIUS
y = cos(radians(30)) * HOLE_RADIUS
verts.append([x, y, 0.0])
-
+
Row += 1
@@ -1156,17 +1156,17 @@ def Create_12_Point(FLAT, HOLE_DIA, SHANK_DIA, HEIGHT,FLANGE_DIA):
y = cos(radians(15)) * TopBevelRadius
vec4 = Vector([x, y, 0.0])
verts.append([x, y, 0.0])
-
+
x = sin(radians(20)) * TopBevelRadius
y = cos(radians(20)) * TopBevelRadius
vec5 = Vector([x, y, 0.0])
verts.append([x, y, 0.0])
-
+
x = sin(radians(25)) * TopBevelRadius
y = cos(radians(25)) * TopBevelRadius
vec6 = Vector([x, y, 0.0])
verts.append([x, y, 0.0])
-
+
x = sin(radians(30)) * TopBevelRadius
y = cos(radians(30)) * TopBevelRadius
vec7 = Vector([x, y, 0.0])
@@ -1176,11 +1176,11 @@ def Create_12_Point(FLAT, HOLE_DIA, SHANK_DIA, HEIGHT,FLANGE_DIA):
#45Deg bevel on the top
-
+
#First we work out how far up the Y axis the vert is
v_origin = Vector([0.0,0.0,0.0]) # center of the model
- v_15Deg_Point = Vector([tan(radians(15)) * Half_Flat,Half_Flat,0.0]) #Is a know point to work back from
-
+ v_15Deg_Point = Vector([tan(radians(15)) * Half_Flat,Half_Flat,0.0]) #Is a know point to work back from
+
x = tan(radians(0)) * Half_Flat
Point_Distance =(tan(radians(30)) * v_15Deg_Point.x)+Half_Flat
dvec = vec1 - Vector([x, Point_Distance, 0.0])
@@ -1188,18 +1188,18 @@ def Create_12_Point(FLAT, HOLE_DIA, SHANK_DIA, HEIGHT,FLANGE_DIA):
v_0_Deg_Top_Point = Vector([x, Point_Distance, -dvec.length])
v_0_Deg_Point = Vector([x, Point_Distance,0.0])
-
+
v_5Deg_Line = Vector([tan(radians(5)) * Half_Flat, Half_Flat, 0.0])
v_5Deg_Line.length *= 2 # extende out the line on a 5 deg angle
#We cross 2 lines. One from the origin to the 0 Deg point
#and the second is from the orign extended out past the first line
- # This gives the cross point of the
+ # This gives the cross point of the
v_Cross = geometry.intersect_line_line_2d(v_0_Deg_Point,v_15Deg_Point,v_origin,v_5Deg_Line)
dvec = vec2 - Vector([v_Cross.x,v_Cross.y,0.0])
verts.append([v_Cross.x,v_Cross.y,-dvec.length])
v_5_Deg_Top_Point = Vector([v_Cross.x,v_Cross.y,-dvec.length])
-
+
v_10Deg_Line = Vector([tan(radians(10)) * Half_Flat, Half_Flat, 0.0])
v_10Deg_Line.length *= 2 # extende out the line
@@ -1207,14 +1207,14 @@ def Create_12_Point(FLAT, HOLE_DIA, SHANK_DIA, HEIGHT,FLANGE_DIA):
dvec = vec3 - Vector([v_Cross.x,v_Cross.y,0.0])
verts.append([v_Cross.x,v_Cross.y,-dvec.length])
v_10_Deg_Top_Point = Vector([v_Cross.x,v_Cross.y,-dvec.length])
-
- #The remain points are stright forward because y is all the same y height (Half_Flat)
+
+ #The remain points are stright forward because y is all the same y height (Half_Flat)
x = tan(radians(15)) * Half_Flat
dvec = vec4 - Vector([x, Half_Flat, 0.0])
Lowest_Point = -dvec.length
verts.append([x, Half_Flat, -dvec.length])
v_15_Deg_Top_Point = Vector([x, Half_Flat, -dvec.length])
-
+
x = tan(radians(20)) * Half_Flat
dvec = vec5 - Vector([x, Half_Flat, 0.0])
Lowest_Point = -dvec.length
@@ -1234,43 +1234,43 @@ def Create_12_Point(FLAT, HOLE_DIA, SHANK_DIA, HEIGHT,FLANGE_DIA):
v_30_Deg_Top_Point = Vector([x, Half_Flat, -dvec.length])
Row += 1
-
+
#Down Bits
# print ("Point_Distance")
# print (Point_Distance)
-
+
Flange_Adjacent = FLANGE_RADIUS - Point_Distance
if (Flange_Adjacent == 0.0):
Flange_Adjacent = 0.000001
- Flange_Opposite = FLANGE_TAPPER_HEIGHT
-
+ Flange_Opposite = FLANGE_TAPPER_HEIGHT
+
# print ("Flange_Opposite")
# print (Flange_Opposite)
# print ("Flange_Adjacent")
# print (Flange_Adjacent)
-
+
FLANGE_ANGLE_RAD = atan(Flange_Opposite/Flange_Adjacent )
# FLANGE_ANGLE_RAD = radians(45)
# print("FLANGE_ANGLE_RAD")
-# print (degrees (FLANGE_ANGLE_RAD))
-
-
+# print (degrees (FLANGE_ANGLE_RAD))
+
+
v_Extended_Flange_Edge = Vector([0.0,0.0,-HEIGHT + FLANGE_HEIGHT + (tan(FLANGE_ANGLE_RAD)* FLANGE_RADIUS) ])
# print("v_Extended_Flange_Edge")
-# print (v_Extended_Flange_Edge)
+# print (v_Extended_Flange_Edge)
#0deg
v_Flange_Edge = Vector([sin(radians(0)) * FLANGE_RADIUS,cos(radians(0)) * FLANGE_RADIUS,-HEIGHT + FLANGE_HEIGHT ])
v_Cross = geometry.intersect_line_line(v_0_Deg_Top_Point,Vector([v_0_Deg_Top_Point.x,v_0_Deg_Top_Point.y,-HEIGHT]),v_Flange_Edge,v_Extended_Flange_Edge)
verts.append(v_Cross[0])
-
+
#5deg
v_Flange_Edge = Vector([sin(radians(5)) * FLANGE_RADIUS,cos(radians(5)) * FLANGE_RADIUS,-HEIGHT + FLANGE_HEIGHT ])
v_Cross = geometry.intersect_line_line(v_5_Deg_Top_Point,Vector([v_5_Deg_Top_Point.x,v_5_Deg_Top_Point.y,-HEIGHT]),v_Flange_Edge,v_Extended_Flange_Edge)
verts.append(v_Cross[0])
-
+
#10deg
v_Flange_Edge = Vector([sin(radians(10)) * FLANGE_RADIUS,cos(radians(10)) * FLANGE_RADIUS,-HEIGHT + FLANGE_HEIGHT ])
v_Cross = geometry.intersect_line_line(v_10_Deg_Top_Point,Vector([v_10_Deg_Top_Point.x,v_10_Deg_Top_Point.y,-HEIGHT]),v_Flange_Edge,v_Extended_Flange_Edge)
@@ -1286,13 +1286,13 @@ def Create_12_Point(FLAT, HOLE_DIA, SHANK_DIA, HEIGHT,FLANGE_DIA):
v_Flange_Edge = Vector([sin(radians(20)) * FLANGE_RADIUS,cos(radians(20)) * FLANGE_RADIUS,-HEIGHT + FLANGE_HEIGHT ])
v_Cross = geometry.intersect_line_line(v_20_Deg_Top_Point,Vector([v_20_Deg_Top_Point.x,v_20_Deg_Top_Point.y,-HEIGHT]),v_Flange_Edge,v_Extended_Flange_Edge)
verts.append(v_Cross[0])
-
+
#25deg
v_Flange_Edge = Vector([sin(radians(25)) * FLANGE_RADIUS,cos(radians(25)) * FLANGE_RADIUS,-HEIGHT + FLANGE_HEIGHT ])
v_Cross = geometry.intersect_line_line(v_25_Deg_Top_Point,Vector([v_25_Deg_Top_Point.x,v_25_Deg_Top_Point.y,-HEIGHT]),v_Flange_Edge,v_Extended_Flange_Edge)
verts.append(v_Cross[0])
-
-
+
+
#30deg
v_Flange_Edge = Vector([sin(radians(30)) * FLANGE_RADIUS,cos(radians(30)) * FLANGE_RADIUS,-HEIGHT + FLANGE_HEIGHT ])
v_Cross = geometry.intersect_line_line(v_30_Deg_Top_Point,Vector([v_30_Deg_Top_Point.x,v_30_Deg_Top_Point.y,-HEIGHT]),v_Flange_Edge,v_Extended_Flange_Edge)
@@ -1309,7 +1309,7 @@ def Create_12_Point(FLAT, HOLE_DIA, SHANK_DIA, HEIGHT,FLANGE_DIA):
verts.append([sin(radians(20)) * FLANGE_RADIUS,cos(radians(20)) * FLANGE_RADIUS,-HEIGHT + FLANGE_HEIGHT])
verts.append([sin(radians(25)) * FLANGE_RADIUS,cos(radians(25)) * FLANGE_RADIUS,-HEIGHT + FLANGE_HEIGHT])
verts.append([sin(radians(30)) * FLANGE_RADIUS,cos(radians(30)) * FLANGE_RADIUS,-HEIGHT + FLANGE_HEIGHT])
-
+
Row += 1
verts.append([sin(radians(0)) * FLANGE_RADIUS,cos(radians(0)) * FLANGE_RADIUS,-HEIGHT])
@@ -1319,10 +1319,10 @@ def Create_12_Point(FLAT, HOLE_DIA, SHANK_DIA, HEIGHT,FLANGE_DIA):
verts.append([sin(radians(20)) * FLANGE_RADIUS,cos(radians(20)) * FLANGE_RADIUS,-HEIGHT])
verts.append([sin(radians(25)) * FLANGE_RADIUS,cos(radians(25)) * FLANGE_RADIUS,-HEIGHT])
verts.append([sin(radians(30)) * FLANGE_RADIUS,cos(radians(30)) * FLANGE_RADIUS,-HEIGHT])
-
+
Row += 1
-
+
verts.append([sin(radians(0)) * SHANK_RADIUS,cos(radians(0)) * SHANK_RADIUS,-HEIGHT])
verts.append([sin(radians(0)) * SHANK_RADIUS,cos(radians(0)) * SHANK_RADIUS,-HEIGHT])
verts.append([sin(radians(10)) * SHANK_RADIUS,cos(radians(10)) * SHANK_RADIUS,-HEIGHT])
@@ -1330,7 +1330,7 @@ def Create_12_Point(FLAT, HOLE_DIA, SHANK_DIA, HEIGHT,FLANGE_DIA):
verts.append([sin(radians(20)) * SHANK_RADIUS,cos(radians(20)) * SHANK_RADIUS,-HEIGHT])
verts.append([sin(radians(20)) * SHANK_RADIUS,cos(radians(20)) * SHANK_RADIUS,-HEIGHT])
verts.append([sin(radians(30)) * SHANK_RADIUS,cos(radians(30)) * SHANK_RADIUS,-HEIGHT])
-
+
Row += 1
@@ -1344,8 +1344,8 @@ def Create_12_Point(FLAT, HOLE_DIA, SHANK_DIA, HEIGHT,FLANGE_DIA):
def Create_12_Point_Head(FLAT, HOLE_DIA, SHANK_DIA, HEIGHT,FLANGE_DIA):
#TODO add under head radius
return Create_12_Point(FLAT, HOLE_DIA, SHANK_DIA, HEIGHT,FLANGE_DIA)
-
-
+
+
# ####################################################################
# Create External Thread
@@ -2288,13 +2288,13 @@ def Nut_Mesh(props, context):
Face_Start = len(verts)
-
-
+
+
if props.bf_Nut_Type == 'bf_Nut_12Pnt':
Nut_Height = props.bf_12_Point_Nut_Height
else:
Nut_Height = props.bf_Hex_Nut_Height
-
+
Thread_Verts, Thread_Faces, New_Nut_Height = Create_Internal_Thread(
props.bf_Minor_Dia, props.bf_Major_Dia,
props.bf_Pitch, Nut_Height,
@@ -2305,7 +2305,7 @@ def Nut_Mesh(props, context):
faces.extend(Copy_Faces(Thread_Faces, Face_Start))
Face_Start = len(verts)
-
+
if props.bf_Nut_Type == 'bf_Nut_12Pnt':
Head_Verts, Head_Faces, Lock_Nut_Rad = add_12_Point_Nut(
props.bf_12_Point_Nut_Flat_Distance,
@@ -2397,13 +2397,13 @@ def Bolt_Mesh(props, context):
props.bf_Hex_Head_Flat_Distance, Bit_Dia,
props.bf_Shank_Dia, props.bf_Hex_Head_Height
)
-
+
elif props.bf_Head_Type == 'bf_Head_12Pnt':
Head_Verts, Head_Faces, Head_Height = Create_12_Point_Head(
props.bf_12_Point_Head_Flat_Distance, Bit_Dia,
props.bf_Shank_Dia, props.bf_12_Point_Head_Height,
#Limit the size of the Flange to avoid calculation error
- max(props.bf_12_Point_Head_Flange_Dia,props.bf_12_Point_Head_Flat_Distance)
+ max(props.bf_12_Point_Head_Flange_Dia,props.bf_12_Point_Head_Flat_Distance)
)
elif props.bf_Head_Type == 'bf_Head_Cap':
Head_Verts, Head_Faces, Head_Height = Create_Cap_Head(