[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