[Bf-extensions-cvs] [509bdb2] master: bolt factory: T50443 add division count for higher precision
meta-androcto
noreply at git.blender.org
Sun Jan 22 00:52:47 CET 2017
Commit: 509bdb24e2f9598e41ad6f1d0d55dcd2aa1a4f23
Author: meta-androcto
Date: Sun Jan 22 10:52:23 2017 +1100
Branches: master
https://developer.blender.org/rBA509bdb24e2f9598e41ad6f1d0d55dcd2aa1a4f23
bolt factory: T50443 add division count for higher precision
===================================================================
M add_mesh_BoltFactory/Boltfactory.py
M add_mesh_BoltFactory/__init__.py
M add_mesh_BoltFactory/createMesh.py
===================================================================
diff --git a/add_mesh_BoltFactory/Boltfactory.py b/add_mesh_BoltFactory/Boltfactory.py
index 4a5b6b7..aac6d51 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 d031f5e..16dd9a9 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 e9d2be1..80291c8 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):
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list