This commit is contained in:
2022-06-27 12:12:44 -04:00
commit a29f6d8f94
591 changed files with 5335885 additions and 0 deletions

130
spool_holder.py Normal file
View File

@@ -0,0 +1,130 @@
import os
import datetime as dt
print(str(dt.datetime.now()))
import importlib as ir
from cadquery import exporters as et
try:
try:
root_dir = r'C:\\Users\\TheBears\\Seafile\\Designs\\Projects\\kickdrawers\\cadfree\\code\\'
os.chdir(root_dir)
except:
root_dir = r'C:\\Users\\Ishan\\Seafile\\Designs\\Projects\\kickdrawers\\cadfree\\code\\'
os.chdir(root_dir)
except:
root_dir = r'/home/thebears/Seafile/Designs/Projects/kickdrawers/cadfree/code'
os.chdir(root_dir)
import items as it
import util as u
import cadquery as cq
ir.reload(it)
ir.reload(u)
def xy_wp():
return cq.Workplane('XY')
def xz_wp():
return cq.Workplane('XZ')
def yz_wp():
return cq.Workplane('YZ')
objs = list()
t1 = 3.175
rod_r = 23/2 + 1
spool_diameter = 75 + t1*2
spool_width = 25
total_width = spool_width*6 + 2*t1
wire_friction_width = 20
pt_r = 2/2
pt_spacing = 5
off_edge = 9
fast_mode = False
n_repl = 6
front_height = spool_diameter - wire_friction_width
oxb = u.add_rect(xz_wp(),total_width+t1+2*t1, n_repl*spool_diameter).extrude(t1).translate((-t1,spool_diameter,0))
oxr = u.add_rect(yz_wp(), spool_diameter, n_repl*spool_diameter).extrude(t1)
oxl = u.add_rect(yz_wp(), spool_diameter, n_repl*spool_diameter).extrude(t1).translate((total_width,0,0))
rod_pts = list()
for i in range(n_repl):
rod_pts.append( [spool_diameter/2, spool_diameter/2 + i*spool_diameter])
ox_cyl = yz_wp().pushPoints(rod_pts).circle(rod_r).extrude(total_width+t1)
oxf = u.add_rect(xz_wp(), total_width+t1+2*t1, wire_friction_width).extrude(-t1).translate((-t1,0,front_height ))#spool_diameter/2 - wire_friction_width/2))
n_pts = int(total_width / (2*pt_spacing)) - 1
all_pts = list()
center = (total_width + t1)/2
for t in range(-n_pts, n_pts+1):
all_pts.append((t*pt_spacing + center,0))
pts_h = xz_wp().pushPoints(all_pts).circle(pt_r).extrude(-t1*3).translate((0,0,front_height + wire_friction_width/2))
oxf = oxf.cut(pts_h)
oxfs = list()
for i in range(n_repl):
oxfs.append( u.copy(oxf).translate((0,0,i*spool_diameter)) )
# objs.extend(oxfs)
oxl = oxl.cut(ox_cyl)
oxr = oxr.cut(ox_cyl)
# oxb = u.add_rect(xz_wp(),total_width+t1+2*t1, n_repl*spool_diameter).extrude(t1).translate((-t1,spool_diameter,0))
pts_holes_back = list()
for i in range(n_repl):
pts_holes_back.append( [ 0 + 20, i*spool_diameter + spool_diameter - off_edge] )
pts_holes_back.append( [ total_width + 2.5 - 20 , i*spool_diameter + spool_diameter - off_edge] )
pts_holes_back.append( [ (total_width + 2.5)/2 , i*spool_diameter + spool_diameter - off_edge] )
obj_c = xz_wp().pushPoints(pts_holes_back).circle(2.5).extrude(-total_width+t1)
# objs.append(obj_c)
oxb = oxb.cut(obj_c)
if not fast_mode:
for i in range(n_repl):
oxl, oxfs[i] = u.make_fingers(oxl, oxfs[i], skip_nut_slots_B = True)
oxr, oxfs[i] = u.make_fingers(oxr, oxfs[i], skip_nut_slots_B = True)
oxb, oxr = u.make_fingers(oxb, oxr, num_tabs = 11, skip_nut_slots_A = True, swap_ab = True)
oxb, oxl = u.make_fingers(oxb, oxl, num_tabs = 11, skip_nut_slots_A = True, swap_ab = True)
pts_holes = list()
for i in range(n_repl):
pts_holes.append( [spool_diameter/2,spool_diameter/2 - rod_r - 8 + i*spool_diameter] )
pts_holes.append( [spool_diameter/2,spool_diameter/2 + rod_r + 8 + i*spool_diameter] )
# pts_holes.append( [ off_edge, off_edge] )
# pts_holes.append( [ off_edge, spool_diameter - off_edge] )
# pts_holes.append( [spool_diameter - off_edge, off_edge] )
# pts_holes.append( [spool_diameter - off_edge, spool_diameter - off_edge] )
obj_c = yz_wp().pushPoints(pts_holes).circle(2.5).extrude(total_width+t1)
oxr = oxr.cut(obj_c)
oxl = oxl.cut(obj_c)
objs.extend(oxfs)
objs.append(oxl)
objs.append(oxr)
objs.append(oxf)
objs.append(oxb)
for x in objs:
show_object(x)
if not fast_mode:
u.save_stls([objs], os.path.join(root_dir,'spool_holder_extended'), 'spool')