yacwc
This commit is contained in:
151
dividers.py
Normal file
151
dividers.py
Normal file
@@ -0,0 +1,151 @@
|
||||
import os
|
||||
import importlib as ir
|
||||
from cadquery import exporters as et
|
||||
from util import intersect, add_rect, do_fingers
|
||||
import util as u
|
||||
import numpy as np
|
||||
from pathlib import Path
|
||||
import random
|
||||
home = str(Path.home())
|
||||
|
||||
root_dir = home+'\\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)
|
||||
|
||||
|
||||
print('hello')
|
||||
print('hello2f')
|
||||
|
||||
objs = list()
|
||||
|
||||
|
||||
# Base parameters
|
||||
add_the_fingers = False
|
||||
force_tab_width = False
|
||||
# r_hole = 4.6/2
|
||||
r_hole = 3.5/2
|
||||
nut_depth = 10
|
||||
nut_width = 5.5
|
||||
nut_thickness = 2.5
|
||||
m_length = 15
|
||||
|
||||
full_width = 1012
|
||||
slider_thickness = 14
|
||||
t_small = 3.175
|
||||
t_large = t_small*1
|
||||
back_padding = 14
|
||||
box_width = 226
|
||||
box_depth = 433
|
||||
box_height = 90
|
||||
prefix = 'dividers'
|
||||
#120
|
||||
|
||||
box_clearance_depth = box_depth - 2*t_large
|
||||
n_bins_depth = 7
|
||||
n_space_depth = box_clearance_depth / n_bins_depth
|
||||
|
||||
box_clearance_width = box_width - 2*t_large
|
||||
n_bins_width = 4
|
||||
n_space_width = box_clearance_width / n_bins_width
|
||||
|
||||
tab_width =52
|
||||
|
||||
xy_wp = lambda: cq.Workplane('XY')
|
||||
xz_wp = lambda: cq.Workplane('XZ')
|
||||
yz_wp = lambda: cq.Workplane('YZ')
|
||||
|
||||
bottom = u.add_rect(xy_wp(), box_width, box_depth).extrude(t_large)
|
||||
b_side = u.add_rect(xz_wp(), box_width, box_height).extrude(-t_large)
|
||||
f_side = u.add_rect(xz_wp(), box_width, box_height).extrude(t_large).translate((0,box_depth, 0))
|
||||
l_side = u.add_rect(yz_wp(), box_depth, box_height).extrude(t_large)
|
||||
r_side = u.add_rect(yz_wp(), box_depth, box_height).extrude(-t_large).translate((box_width, 0, 0))
|
||||
print('hellod')
|
||||
|
||||
pnx = list()
|
||||
|
||||
if True:
|
||||
|
||||
for i in range(1,n_bins_depth): #n_bins_depth
|
||||
for iw in range(0, n_bins_width): #n_bins_width
|
||||
if len(pnx) > 1:
|
||||
continue
|
||||
|
||||
pnx.append( u.add_rect(xz_wp(), tab_width, box_height).extrude(t_large).translate((t_large + iw*n_space_width + n_space_width/2 - tab_width/2,t_large + i* box_clearance_depth/n_bins_depth,0)) )
|
||||
|
||||
|
||||
#
|
||||
for i in range(1,n_bins_width):
|
||||
for idd in range(0,n_bins_depth):
|
||||
if len(pnx) > 1:
|
||||
continue
|
||||
a_panel = u.add_rect(yz_wp(), tab_width, box_height).extrude(t_large).translate(( t_large/2 + i* box_clearance_width /n_bins_width, t_large/2 + (idd+.5)*n_space_depth -tab_width/2,0))
|
||||
pnx.append(a_panel)
|
||||
|
||||
#
|
||||
for idx in range(len(pnx)):
|
||||
|
||||
# if random.random() < 0.05:
|
||||
if True:
|
||||
bottom,pnx[idx], _ = do_fingers( bottom,pnx[idx],num_tabs = 3, cut=True, skip_bolt_1= True)
|
||||
|
||||
bottom, b_side, _ = u.do_fingers(bottom, b_side, num_tabs = 7, skip_bolt_1= True, skip_bolt_2=True)
|
||||
bottom, f_side, _ = u.do_fingers(bottom, f_side, num_tabs = 7, skip_bolt_1= True, skip_bolt_2=True)
|
||||
bottom, l_side, _ = u.do_fingers(bottom, l_side, num_tabs = 7, skip_bolt_1= True, skip_bolt_2=True)
|
||||
bottom, r_side, _ = u.do_fingers(bottom, r_side, num_tabs = 7, skip_bolt_1= True, skip_bolt_2=True)
|
||||
|
||||
|
||||
l_side, b_side, _ = u.do_fingers(l_side, b_side, num_tabs = 5, skip_bolt_1= True, skip_bolt_2=True)
|
||||
l_side, f_side, _ = u.do_fingers(l_side, f_side, num_tabs = 5, skip_bolt_1= True, skip_bolt_2=True)
|
||||
r_side, b_side, _ = u.do_fingers(r_side, b_side, num_tabs = 5, skip_bolt_1= True, skip_bolt_2=True)
|
||||
r_side, f_side, _ = u.do_fingers(r_side, f_side, num_tabs = 5, skip_bolt_1= True, skip_bolt_2=True)
|
||||
|
||||
|
||||
il = it.item_list([bottom, b_side, l_side, r_side, f_side, *pnx]);
|
||||
|
||||
|
||||
|
||||
cm = os.path.join(root_dir,'divider_newstl')
|
||||
try:
|
||||
os.mkdir(cm)
|
||||
except:
|
||||
pass
|
||||
|
||||
u.save_stls([il], cm, 'dividers')
|
||||
|
||||
|
||||
|
||||
|
||||
np.random.seed(20)#
|
||||
|
||||
|
||||
cold = lambda: tuple([int(x) for x in np.random.randint(0,255, size=(3,1), dtype=int).squeeze()])
|
||||
|
||||
for f, itx in list(globals().items()):
|
||||
if isinstance(it, list):
|
||||
for p in it:
|
||||
if isinstance(p, cq.Workplane):
|
||||
cold = tuple([int(x) for x in np.random.randint(0,255, size=(3,1), dtype=int).squeeze()])
|
||||
show_object(p, options=dict(alpha=0.0, color=cold ))
|
||||
|
||||
if isinstance(itx, cq.Workplane):
|
||||
show_object(itx)#, options=dict(alpha=0.0, color=cold() ))
|
||||
|
||||
|
||||
for s in pnx:
|
||||
show_object(s)#, options=dict(alpha=0.0, color=cold() ))
|
||||
|
||||
|
||||
|
||||
# show_object(a_panel, options=dict(alpha=0.5,color=cold ))
|
||||
# objs.append(bottom)
|
||||
# objs.append(b_side)
|
||||
# objs.append(f_side)
|
||||
# objs.append(l_side)
|
||||
# objs.append(r_side)
|
||||
# for x in objs:
|
||||
# show_object(x)
|
||||
Reference in New Issue
Block a user