plumed in mask for add and sub parametric moves
This commit is contained in:
40
mod/add.scad
40
mod/add.scad
@@ -20,24 +20,36 @@
|
||||
DESCRIPTION: places additive objects
|
||||
TODO: none
|
||||
|
||||
USAGE: add(type, loc_x, loc_y, loc_z, face, rotation, size_x, size_y, size_z, data_1, data_2, data_3, data_4)
|
||||
USAGE: add(type, loc_x, loc_y, loc_z, face, rotation, size[], data[], mask[])
|
||||
|
||||
type =
|
||||
loc_x =
|
||||
loc_y =
|
||||
loc_z =
|
||||
face =
|
||||
rotation =
|
||||
size[0] = size_x
|
||||
size[1] = size_y
|
||||
size[2] = size_z
|
||||
data[0] =
|
||||
data[1] =
|
||||
data[2] =
|
||||
type = component type
|
||||
loc_x = x location placement
|
||||
loc_y = y location placement
|
||||
loc_z = z location placement
|
||||
face = "top", "bottom", "left", "right", "front", "rear"
|
||||
rotation[] = object rotation
|
||||
parametric[] = parametric movement array
|
||||
size[] = size array x,y,z
|
||||
mask[0] = true enables component mask
|
||||
mask[1] = mask length
|
||||
mask[2] = mask setback
|
||||
mask[3] = mstyle "default"
|
||||
|
||||
*/
|
||||
|
||||
module add(type, loc_x, loc_y, loc_z, face, rotation, size_x, size_y, size_z, data_1, data_2, data_3, data_4) {
|
||||
module add(type, loc_x, loc_y, loc_z, face, rotation, size, data, mask) {
|
||||
|
||||
size_x = size[0];
|
||||
size_y = size[1];
|
||||
size_z = size[2];
|
||||
data_1 = data[0];
|
||||
data_2 = data[1];
|
||||
data_3 = data[2];
|
||||
data_4 = data[3];
|
||||
enablemask = mask[0];
|
||||
mlen = mask[1];
|
||||
msetback = mask[2];
|
||||
mstyle = mask[3];
|
||||
|
||||
if(type == "rectangle") {
|
||||
translate([loc_x,loc_y,loc_z]) rotate(rotation) slab_r([size_x,size_y,size_z],data_4);
|
||||
|
||||
@@ -263,17 +263,12 @@ module case_bottom(case_design) {
|
||||
face = accessory_data[a[0]][i+5];
|
||||
rotation = accessory_data[a[0]][i+6];
|
||||
parametric = accessory_data[a[0]][i+7];
|
||||
size_x = accessory_data[a[0]][i+8][0];
|
||||
size_y = accessory_data[a[0]][i+8][1];
|
||||
size_z = accessory_data[a[0]][i+8][2];
|
||||
data_1 = accessory_data[a[0]][i+9][0];
|
||||
data_2 = accessory_data[a[0]][i+9][1];
|
||||
data_3 = accessory_data[a[0]][i+9][2];
|
||||
data_4 = accessory_data[a[0]][i+9][3];
|
||||
size = accessory_data[a[0]][i+8];
|
||||
data = accessory_data[a[0]][i+9];
|
||||
mask = accessory_data[a[0]][i+10];
|
||||
|
||||
if(class == "add1" && face == "bottom") {
|
||||
parametric_move_add(type,loc_x,loc_y,loc_z,face,rotation,parametric,
|
||||
size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
parametric_move_add(type, loc_x, loc_y, loc_z, face, rotation, parametric, size, data, mask);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -557,50 +552,51 @@ module case_bottom(case_design) {
|
||||
data_2 = accessory_data[a[0]][i+9][1];
|
||||
data_3 = accessory_data[a[0]][i+9][2];
|
||||
data_4 = accessory_data[a[0]][i+9][3];
|
||||
mask = accessory_data[a[0]][i+10];
|
||||
|
||||
if ((class == "sub" && face == "bottom") || class == "suball") {
|
||||
if(accessory_highlight == false) {
|
||||
parametric_move_sub(type,loc_x,loc_y,loc_z,face,rotation,parametric,
|
||||
size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
parametric_move_sub(type, loc_x, loc_y, loc_z, face, rotation, parametric,
|
||||
[size_x,size_y,size_z],[data_1,data_2,data_3,data_4], mask);
|
||||
}
|
||||
else {
|
||||
#parametric_move_sub(type,loc_x,loc_y,loc_z,face,rotation,parametric,
|
||||
size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
[size_x,size_y,size_z],[data_1,data_2,data_3,data_4], mask);
|
||||
|
||||
}
|
||||
}
|
||||
// create openings for additive
|
||||
if (class == "add2" && face == "bottom" && type == "standoff") {
|
||||
parametric_move_sub("round",loc_x,loc_y,loc_z-.1,face,rotation,parametric,
|
||||
6.5,size_y,floorthick+1,data_1,data_2,data_3,data_4);
|
||||
[6.5,size_y,floorthick+1],[data_1,data_2,data_3,data_4],mask);
|
||||
}
|
||||
if ((class == "add1" || class == "add2") && type == "uart_holder") {
|
||||
if(accessory_highlight == false) {
|
||||
parametric_move_sub("microusb",loc_x+5.25,loc_y-5,loc_z+4,face,rotation,parametric,
|
||||
0,0,0,data_1,data_2,data_3,data_4);
|
||||
[0,0,0],[data_1,data_2,data_3,data_4],mask);
|
||||
}
|
||||
else {
|
||||
#parametric_move_sub("microusb",loc_x+5.25,loc_y-5,loc_z+4,face,rotation,parametric,
|
||||
0,0,0,data_1,data_2,data_3,data_4);
|
||||
[0,0,0],[data_1,data_2,data_3,data_4],mask);
|
||||
}
|
||||
}
|
||||
if ((class == "add1" || class == "add2") && face == "bottom" && type == "hc4_oled_holder") {
|
||||
parametric_move_sub("rectangle",loc_x+1,loc_y+1.75,loc_z+25.5,face,rotation,parametric,
|
||||
26.5,wallthick+gap+4,15,data_1,data_2,data_3,[.1,.1,.1,.1]);
|
||||
[26.5,wallthick+gap+4,15],[data_1,data_2,data_3,[.1,.1,.1,.1]],mask);
|
||||
}
|
||||
if ((class == "add1" || class == "add2") && face == "bottom" && type == "access_port") {
|
||||
if(data_3 == "landscape") {
|
||||
if(rotation[2] == 180) {
|
||||
parametric_move_sub("rectangle",loc_x-6+size_x,loc_y+.5+size_y,loc_z-adj,face,rotation,
|
||||
parametric,size_x-17,size_y-1,floorthick+1,data_1,data_2,data_3,[.1,.1,.1,.1]);
|
||||
parametric,[size_x-17,size_y-1,floorthick+1],[data_1,data_2,data_3,[.1,.1,.1,.1]],mask);
|
||||
parametric_move_sub("rectangle",loc_x-size_x+12.5+size_x,loc_y-(size_y/2)+6+size_y,loc_z-adj,
|
||||
face,rotation,parametric,5.5,10.5,floorthick+.12,data_1,data_2,data_3,[5.5,5.5,5.5,5.5]);
|
||||
face,rotation,parametric,[5.5,10.5,floorthick+.12],[data_1,data_2,data_3,[5.5,5.5,5.5,5.5]],mask);
|
||||
}
|
||||
else {
|
||||
parametric_move_sub("rectangle",loc_x+6,loc_y-.5,loc_z-adj,face,rotation,
|
||||
parametric,size_x-17,size_y-1,floorthick+1,data_1,data_2,data_3,[.1,.1,.1,.1]);
|
||||
parametric,[size_x-17,size_y-1,floorthick+1],[data_1,data_2,data_3,[.1,.1,.1,.1]],mask);
|
||||
parametric_move_sub("rectangle",loc_x+size_x-12.5,loc_y+(size_y/2)-6,loc_z-adj,face,rotation,
|
||||
parametric,5.5,10.5,floorthick+.12,data_1,data_2,data_3,[5.5,5.5,5.5,5.5]);
|
||||
parametric,[5.5,10.5,floorthick+.12],[data_1,data_2,data_3,[5.5,5.5,5.5,5.5]],mask);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -608,48 +604,50 @@ module case_bottom(case_design) {
|
||||
if(rotation[2] == 180) {
|
||||
if(data_3 == "portrait") {
|
||||
parametric_move_sub("rectangle",loc_x+size_x-.5,loc_y+size_y-5.75,loc_z-adj,face,
|
||||
rotation,parametric,size_x-1,size_y-17,floorthick+1,data_1,data_2,data_3,[.1,.1,.1,.1]);
|
||||
rotation,parametric,[size_x-1,size_y-17,floorthick+1],[data_1,data_2,data_3,[.1,.1,.1,.1]],mask);
|
||||
parametric_move_sub("rectangle",loc_x-(size_x/2)+5+size_x,loc_y-size_y+12.5+size_y,
|
||||
loc_z-adj,face,rotation,parametric,10.5,5.5,floorthick+.12,data_1,data_2,data_3,
|
||||
[5.5,5.5,5.5,5.5]);
|
||||
loc_z-adj,face,rotation,parametric,[10.5,5.5,floorthick+.12],[data_1,data_2,data_3,
|
||||
[5.5,5.5,5.5,5.5]],mask);
|
||||
}
|
||||
else {
|
||||
parametric_move_sub("rectangle",loc_x-.5,loc_y-5.75,loc_z-adj,face,rotation,
|
||||
parametric,size_x-1,size_y-17,floorthick+1,data_1,data_2,data_3,[.1,.1,.1,.1]);
|
||||
parametric,[size_x-1,size_y-17,floorthick+1],[data_1,data_2,data_3,[.1,.1,.1,.1]],mask);
|
||||
parametric_move_sub("rectangle",loc_x-(size_x/2)+5,loc_y-size_y+12.5,loc_z-adj,face,
|
||||
rotation,parametric,10.5,5.5,floorthick+.12,data_1,data_2,data_3,[5.5,5.5,5.5,5.5]);
|
||||
rotation,parametric,[10.5,5.5,floorthick+.12],[data_1,data_2,data_3,[5.5,5.5,5.5,5.5]],mask);
|
||||
}
|
||||
}
|
||||
else {
|
||||
parametric_move_sub("rectangle",loc_x+.5,loc_y+5.75,loc_z-adj,face,rotation,
|
||||
parametric,size_x-1,size_y-17,floorthick+1,data_1,data_2,data_3,[.1,.1,.1,.1]);
|
||||
parametric,[size_x-1,size_y-17,floorthick+1],[data_1,data_2,data_3,[.1,.1,.1,.1]],mask);
|
||||
parametric_move_sub("rectangle",loc_x+(size_x/2)-5,loc_y+size_y-12.5,loc_z-adj,face,rotation,
|
||||
parametric,10.5,5.5,floorthick+.12,data_1,data_2,data_3,[5.5,5.5,5.5,5.5]);
|
||||
parametric,[10.5,5.5,floorthick+.12],[data_1,data_2,data_3,[5.5,5.5,5.5,5.5]],mask);
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((class == "model") && face == "bottom" && type == "h2_netcard") {
|
||||
parametric_move_sub("rectangle",loc_x+25,loc_y-6,loc_z-14,face,rotation,
|
||||
parametric,68.5,wallthick+3,14.5,data_1,data_2,data_3,[1,1,1,1]);
|
||||
parametric,[68.5,wallthick+3,14.5],[data_1,data_2,data_3,[1,1,1,1]],mask);
|
||||
}
|
||||
if ((class == "add1" || class == "add2") && face == "bottom" && type == "button") {
|
||||
if(data_3 == "recess") {
|
||||
#parametric_move_sub("sphere",loc_x,loc_y,loc_z,face,rotation,
|
||||
parametric,size_x-1,size_y,size_z,data_1,data_2,data_3,0);
|
||||
parametric,[size_x-1,size_y,size_z],[data_1,data_2,data_3,0],mask);
|
||||
}
|
||||
if(data_3 == "cutout") {
|
||||
parametric_move_sub("rectangle",loc_x+10,loc_y+4,loc_z-adj,face,rotation,
|
||||
parametric,size_x+2,size_y+1,size_z+2*adj,data_1,data_2,data_3,[.1,.1,.1,.1]);
|
||||
parametric,[size_x+2,size_y+1,size_z+2*adj],[data_1,data_2,data_3,[.1,.1,.1,.1]],mask);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// sbc openings
|
||||
if(sbc_highlight == true) {
|
||||
#translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z+pcb_loc_z-adj]) sbc(sbc_model, cooling, fan_size, gpio_opening, uart_opening, true);
|
||||
#translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z+pcb_loc_z-adj])
|
||||
sbc(sbc_model, cooling, fan_size, gpio_opening, uart_opening, true);
|
||||
}
|
||||
else {
|
||||
translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z+pcb_loc_z-adj]) sbc(sbc_model, cooling, fan_size, gpio_opening, uart_opening, true);
|
||||
translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z+pcb_loc_z-adj])
|
||||
sbc(sbc_model, cooling, fan_size, gpio_opening, uart_opening, true);
|
||||
}
|
||||
// indents
|
||||
if(indents == true) {
|
||||
@@ -686,17 +684,12 @@ module case_bottom(case_design) {
|
||||
face = accessory_data[a[0]][i+5];
|
||||
rotation = accessory_data[a[0]][i+6];
|
||||
parametric = accessory_data[a[0]][i+7];
|
||||
size_x = accessory_data[a[0]][i+8][0];
|
||||
size_y = accessory_data[a[0]][i+8][1];
|
||||
size_z = accessory_data[a[0]][i+8][2];
|
||||
data_1 = accessory_data[a[0]][i+9][0];
|
||||
data_2 = accessory_data[a[0]][i+9][1];
|
||||
data_3 = accessory_data[a[0]][i+9][2];
|
||||
data_4 = accessory_data[a[0]][i+9][3];
|
||||
size = accessory_data[a[0]][i+8];
|
||||
data = accessory_data[a[0]][i+9];
|
||||
mask = accessory_data[a[0]][i+10];
|
||||
|
||||
if(class == "add2" && face == "bottom") {
|
||||
parametric_move_add(type,loc_x,loc_y,loc_z,face,rotation,parametric,
|
||||
size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
parametric_move_add(type,loc_x,loc_y,loc_z,face,rotation,parametric,size,data,mask);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -207,17 +207,12 @@ module case_side(case_design, case_style, side) {
|
||||
face = accessory_data[a[0]][i+5];
|
||||
rotation = accessory_data[a[0]][i+6];
|
||||
parametric = accessory_data[a[0]][i+7];
|
||||
size_x = accessory_data[a[0]][i+8][0];
|
||||
size_y = accessory_data[a[0]][i+8][1];
|
||||
size_z = accessory_data[a[0]][i+8][2];
|
||||
data_1 = accessory_data[a[0]][i+9][0];
|
||||
data_2 = accessory_data[a[0]][i+9][1];
|
||||
data_3 = accessory_data[a[0]][i+9][2];
|
||||
data_4 = accessory_data[a[0]][i+9][3];
|
||||
size = accessory_data[a[0]][i+8];
|
||||
data = accessory_data[a[0]][i+9];
|
||||
mask = accessory_data[a[0]][i+10];
|
||||
|
||||
if (class == "add1" && face == side) {
|
||||
parametric_move_add(type,loc_x,loc_y,loc_z,face,rotation,parametric,
|
||||
size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
parametric_move_add(type,loc_x,loc_y,loc_z,face,rotation,parametric,size,data,mask);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -239,83 +234,86 @@ module case_side(case_design, case_style, side) {
|
||||
data_2 = accessory_data[a[0]][i+9][1];
|
||||
data_3 = accessory_data[a[0]][i+9][2];
|
||||
data_4 = accessory_data[a[0]][i+9][3];
|
||||
mask = accessory_data[a[0]][i+10];
|
||||
|
||||
if ((class == "sub" && face == side) || class == "suball") {
|
||||
if(accessory_highlight == false) {
|
||||
parametric_move_sub(type,loc_x,loc_y,loc_z,face,rotation,parametric,
|
||||
size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
[size_x,size_y,size_z],[data_1,data_2,data_3,data_4],mask);
|
||||
}
|
||||
else {
|
||||
#parametric_move_sub(type,loc_x,loc_y,loc_z,face,rotation,parametric,
|
||||
size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
[size_x,size_y,size_z],[data_1,data_2,data_3,data_4],mask);
|
||||
}
|
||||
}
|
||||
// create openings for additive
|
||||
if ((class == "sub" && face == "bottom") || class == "suball") {
|
||||
if(accessory_highlight == false) {
|
||||
parametric_move_sub(type,loc_x,loc_y,loc_z,face,rotation,parametric,
|
||||
size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
[size_x,size_y,size_z],[data_1,data_2,data_3,data_4],mask);
|
||||
}
|
||||
else {
|
||||
#parametric_move_sub(type,loc_x,loc_y,loc_z,face,rotation,parametric,
|
||||
size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
[size_x,size_y,size_z],[data_1,data_2,data_3,data_4],mask);
|
||||
}
|
||||
}
|
||||
// create openings for additive
|
||||
if (class == "add2" && face == "bottom" && type == "standoff") {
|
||||
parametric_move_sub("round",loc_x,loc_y,-.1,face,rotation,parametric,
|
||||
6.5,size_y,floorthick+1,data_1,data_2,data_3,data_4);
|
||||
[6.5,size_y,floorthick+1],[data_1,data_2,data_3,data_4],mask);
|
||||
}
|
||||
if ((class == "add1" || class == "add2") && face == "bottom" && type == "uart_holder") {
|
||||
if(accessory_highlight == false) {
|
||||
parametric_move_sub("microusb",loc_x+5.25,loc_y-5,loc_z+4,face,rotation,parametric,
|
||||
0,0,0,data_1,data_2,data_3,data_4);
|
||||
[0,0,0],[data_1,data_2,data_3,data_4],mask);
|
||||
}
|
||||
else {
|
||||
#parametric_move_sub("microusb",loc_x+5.25,loc_y-5,loc_z+4,face,rotation,parametric,
|
||||
0,0,0,data_1,data_2,data_3,data_4);
|
||||
[0,0,0],[data_1,data_2,data_3,data_4],mask);
|
||||
}
|
||||
}
|
||||
if ((class == "add1" || class == "add2") && face == "bottom" && type == "hc4_oled_holder") {
|
||||
parametric_move_sub("rectangle",loc_x+1,loc_y+1.75,loc_z+25.5,face,rotation,
|
||||
parametric,26.5,wallthick+gap+4,15,data_1,data_2,data_3,[.1,.1,.1,.1]);
|
||||
parametric,[26.5,wallthick+gap+4,15],[data_1,data_2,data_3,[.1,.1,.1,.1]],mask);
|
||||
}
|
||||
if ((class == "add1" || class == "add2") && face == "bottom" && type == "access_port") {
|
||||
if(data_3 == "landscape") {
|
||||
parametric_move_sub("rectangle",loc_x+6,loc_y-.5,loc_z-adj,face,rotation,
|
||||
parametric,size_x-17,size_y-1,floorthick+1,data_1,data_2,data_3,[.1,.1,.1,.1]);
|
||||
parametric,[size_x-17,size_y-1,floorthick+1],[data_1,data_2,data_3,[.1,.1,.1,.1]],mask);
|
||||
parametric_move_sub("rectangle",loc_x+size_x-12.5,loc_y+(size_y/2)-6,loc_z-adj,face,rotation,
|
||||
parametric,5.5,10.5,floorthick+.12,data_1,data_2,data_3,[5.5,5.5,5.5,5.5]);
|
||||
parametric,[5.5,10.5,floorthick+.12],[data_1,data_2,data_3,[5.5,5.5,5.5,5.5]],mask);
|
||||
}
|
||||
else {
|
||||
parametric_move_sub("rectangle",loc_x+.5,loc_y+5.75,loc_z-adj,face,rotation,parametric,
|
||||
size_x-1,size_y-17,floorthick+1,data_1,data_2,data_3,[.1,.1,.1,.1]);
|
||||
[size_x-1,size_y-17,floorthick+1],[data_1,data_2,data_3,[.1,.1,.1,.1]],mask);
|
||||
parametric_move_sub("rectangle",loc_x+(size_x/2)-5,loc_y+size_y-12.5,loc_z-adj,face,rotation,
|
||||
parametric,10.5,5.5,floorthick+.12,data_1,data_2,data_3,[5.5,5.5,5.5,5.5]);
|
||||
parametric,[10.5,5.5,floorthick+.12],[data_1,data_2,data_3,[5.5,5.5,5.5,5.5]],mask);
|
||||
}
|
||||
}
|
||||
if ((class == "model") && face == "bottom" && type == "h2_netcard") {
|
||||
parametric_move_sub("rectangle",loc_x+25,loc_y-6,loc_z-14,face,rotation,
|
||||
parametric,68.5,wallthick+3,14.5,data_1,data_2,data_3,[1,1,1,1]);
|
||||
parametric,[68.5,wallthick+3,14.5],[data_1,data_2,data_3,[1,1,1,1]],mask);
|
||||
}
|
||||
if ((class == "add1" || class == "add2") && face == "bottom" && type == "button") {
|
||||
if(data_3 == "recess") {
|
||||
parametric_move_sub("sphere",loc_x,loc_y,loc_z,face,rotation,
|
||||
parametric,size_x-1,size_y,size_z,data_1,data_2,data_3,0);
|
||||
parametric,[size_x-1,size_y,size_z],[data_1,data_2,data_3,0],mask);
|
||||
}
|
||||
if(data_3 == "cutout") {
|
||||
parametric_move_sub("rectangle",loc_x+10,loc_y+4,loc_z-adj,face,rotation,
|
||||
parametric,size_x+2,size_y+1,size_z+2*adj,data_1,data_2,data_3,[.1,.1,.1,.1]);
|
||||
parametric,[size_x+2,size_y+1,size_z+2*adj],[data_1,data_2,data_3,[.1,.1,.1,.1]],mask);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// sbc openings
|
||||
if(sbc_highlight == true) {
|
||||
#translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z+pcb_loc_z-adj]) sbc(sbc_model, cooling, fan_size, gpio_opening, uart_opening, true);
|
||||
#translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z+pcb_loc_z-adj])
|
||||
sbc(sbc_model, cooling, fan_size, gpio_opening, uart_opening, true);
|
||||
}
|
||||
else {
|
||||
translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z+pcb_loc_z-adj]) sbc(sbc_model, cooling, fan_size, gpio_opening, uart_opening, true);
|
||||
translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z+pcb_loc_z-adj])
|
||||
sbc(sbc_model, cooling, fan_size, gpio_opening, uart_opening, true);
|
||||
}
|
||||
// indents
|
||||
if(indents == true) {
|
||||
@@ -344,17 +342,12 @@ module case_side(case_design, case_style, side) {
|
||||
face = accessory_data[a[0]][i+5];
|
||||
rotation = accessory_data[a[0]][i+6];
|
||||
parametric = accessory_data[a[0]][i+7];
|
||||
size_x = accessory_data[a[0]][i+8][0];
|
||||
size_y = accessory_data[a[0]][i+8][1];
|
||||
size_z = accessory_data[a[0]][i+8][2];
|
||||
data_1 = accessory_data[a[0]][i+9][0];
|
||||
data_2 = accessory_data[a[0]][i+9][1];
|
||||
data_3 = accessory_data[a[0]][i+9][2];
|
||||
data_4 = accessory_data[a[0]][i+9][3];
|
||||
size = accessory_data[a[0]][i+8];
|
||||
data = accessory_data[a[0]][i+9];
|
||||
mask = accessory_data[a[0]][i+10];
|
||||
|
||||
if (class == "add2" && face == side) {
|
||||
parametric_move_add(type,loc_x,loc_y,loc_z,face,rotation,parametric,
|
||||
size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
parametric_move_add(type,loc_x,loc_y,loc_z,face,rotation,parametric,size,data,mask);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -256,17 +256,12 @@ module case_top(case_design) {
|
||||
face = accessory_data[a[0]][i+5];
|
||||
rotation = accessory_data[a[0]][i+6];
|
||||
parametric = accessory_data[a[0]][i+7];
|
||||
size_x = accessory_data[a[0]][i+8][0];
|
||||
size_y = accessory_data[a[0]][i+8][1];
|
||||
size_z = accessory_data[a[0]][i+8][2];
|
||||
data_1 = accessory_data[a[0]][i+9][0];
|
||||
data_2 = accessory_data[a[0]][i+9][1];
|
||||
data_3 = accessory_data[a[0]][i+9][2];
|
||||
data_4 = accessory_data[a[0]][i+9][3];
|
||||
size = accessory_data[a[0]][i+8];
|
||||
data = accessory_data[a[0]][i+9];
|
||||
mask = accessory_data[a[0]][i+10];
|
||||
|
||||
if (class == "add1" && face == "top") {
|
||||
parametric_move_add(type,loc_x,loc_y,loc_z,face,rotation,
|
||||
parametric,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
parametric_move_add(type,loc_x,loc_y,loc_z,face,rotation,parametric,size,data,mask);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -497,61 +492,64 @@ module case_top(case_design) {
|
||||
data_2 = accessory_data[a[0]][i+9][1];
|
||||
data_3 = accessory_data[a[0]][i+9][2];
|
||||
data_4 = accessory_data[a[0]][i+9][3];
|
||||
mask = accessory_data[a[0]][i+10];
|
||||
|
||||
if ((class == "sub" && face == "top") || class == "suball") {
|
||||
if(accessory_highlight == false) {
|
||||
parametric_move_sub(type,loc_x,loc_y,loc_z,face,rotation,
|
||||
parametric,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
parametric,[size_x,size_y,size_z],[data_1,data_2,data_3,data_4],mask);
|
||||
}
|
||||
else {
|
||||
#parametric_move_sub(type,loc_x,loc_y,loc_z,face,rotation,
|
||||
parametric,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
parametric,[size_x,size_y,size_z],[data_1,data_2,data_3,data_4],mask);
|
||||
}
|
||||
}
|
||||
// create openings for additive
|
||||
if (class == "add2" && face == "top" && type == "standoff") {
|
||||
parametric_move_sub("round",loc_x,loc_y,loc_z,face,rotation,parametric,
|
||||
6.5,size_y,floorthick+1,data_1,data_2,data_3,data_4);
|
||||
[6.5,size_y,floorthick+1],[data_1,data_2,data_3,data_4],mask);
|
||||
}
|
||||
if ((class == "add1" || class == "add2") && face == "bottom" && type == "uart_holder") {
|
||||
if(accessory_highlight == false) {
|
||||
parametric_move_sub("microusb",loc_x+5.25,loc_y-5,loc_z+4,face,rotation,parametric,
|
||||
0,0,0,data_1,data_2,data_3,data_4);
|
||||
[0,0,0],[data_1,data_2,data_3,data_4],mask);
|
||||
}
|
||||
else {
|
||||
#parametric_move_sub("microusb",loc_x+5.25,loc_y-5,loc_z+4,face,rotation,parametric,
|
||||
0,0,0,data_1,data_2,data_3,data_4);
|
||||
[0,0,0],[data_1,data_2,data_3,data_4],mask);
|
||||
}
|
||||
}
|
||||
if ((class == "add1" || class == "add2") && face == "bottom" && type == "hc4_oled_holder") {
|
||||
parametric_move_sub("rectangle",loc_x+1,loc_y+1.75,loc_z+26,face,rotation,
|
||||
parametric,26.5,wallthick+gap+4,14.5,data_1,data_2,data_3,[.1,.1,.1,.1]);
|
||||
parametric,[26.5,wallthick+gap+4,14.5],[data_1,data_2,data_3,[.1,.1,.1,.1]],mask);
|
||||
}
|
||||
if ((class == "add1" || class == "add2") && face == "top" && type == "button") {
|
||||
if(data_3 == "recess") {
|
||||
parametric_move_sub("sphere",loc_x,loc_y,loc_z,face,rotation,
|
||||
parametric,size_x-1,size_y,size_z,data_1,data_2,data_3,0);
|
||||
parametric,[size_x-1,size_y,size_z],[data_1,data_2,data_3,0],mask);
|
||||
}
|
||||
if(data_3 == "cutout") {
|
||||
parametric_move_sub("rectangle",loc_x+10,loc_y+4,loc_z-adj,face,rotation,
|
||||
parametric,size_x+2,size_y+1,size_z+2*adj,data_1,data_2,data_3,[.1,.1,.1,.1]);
|
||||
parametric,[size_x+2,size_y+1,size_z+2*adj],[data_1,data_2,data_3,[.1,.1,.1,.1]],mask);
|
||||
}
|
||||
}
|
||||
if (class == "model" && face == "bottom" && type == "hk_boom" &&
|
||||
rotation[0] == 90 && rotation[1] == 0 && rotation[2] == 0) {
|
||||
parametric_move_sub("round",loc_x+11,loc_y-4,loc_z,face,[0,0,0],
|
||||
parametric,5,size_y,80,data_1,data_2,data_3,data_4);
|
||||
parametric,[5,size_y,80],[data_1,data_2,data_3,data_4],mask);
|
||||
parametric_move_sub("slot",loc_x+37.5,loc_y-4.75,loc_z,face,[0,0,0],
|
||||
parametric,6,14,80,data_1,data_2,data_3,data_4);
|
||||
parametric,[6,14,80],[data_1,data_2,data_3,data_4],mask);
|
||||
}
|
||||
}
|
||||
}
|
||||
// sbc openings
|
||||
if(sbc_highlight == true) {
|
||||
#translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z+pcb_loc_z-adj]) sbc(sbc_model, cooling, fan_size, gpio_opening, uart_opening, true);
|
||||
#translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z+pcb_loc_z-adj])
|
||||
sbc(sbc_model, cooling, fan_size, gpio_opening, uart_opening, true);
|
||||
}
|
||||
else {
|
||||
translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z+pcb_loc_z-adj]) sbc(sbc_model, cooling, fan_size, gpio_opening, uart_opening, true);
|
||||
translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z+pcb_loc_z-adj])
|
||||
sbc(sbc_model, cooling, fan_size, gpio_opening, uart_opening, true);
|
||||
}
|
||||
// indents
|
||||
if(indents == true) {
|
||||
@@ -590,17 +588,12 @@ module case_top(case_design) {
|
||||
face = accessory_data[a[0]][i+5];
|
||||
rotation = accessory_data[a[0]][i+6];
|
||||
parametric = accessory_data[a[0]][i+7];
|
||||
size_x = accessory_data[a[0]][i+8][0];
|
||||
size_y = accessory_data[a[0]][i+8][1];
|
||||
size_z = accessory_data[a[0]][i+8][2];
|
||||
data_1 = accessory_data[a[0]][i+9][0];
|
||||
data_2 = accessory_data[a[0]][i+9][1];
|
||||
data_3 = accessory_data[a[0]][i+9][2];
|
||||
data_4 = accessory_data[a[0]][i+9][3];
|
||||
size = accessory_data[a[0]][i+8];
|
||||
data = accessory_data[a[0]][i+9];
|
||||
mask = accessory_data[a[0]][i+10];
|
||||
|
||||
if (class == "add2" && face == "top") {
|
||||
parametric_move_add(type,loc_x,loc_y,loc_z,face,rotation,parametric,
|
||||
size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
parametric_move_add(type,loc_x,loc_y,loc_z,face,rotation,parametric,size,data,mask);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,170 +20,138 @@
|
||||
DESCRIPTION: places parametric additive objects
|
||||
TODO: none
|
||||
|
||||
USAGE: parametric_move_add(type, loc_x, loc_y, loc_z, face, rotation, parametric[], size_x, size_y, size_z, data_1, data_2, data_3, data_4)
|
||||
USAGE: parametric_move_add(type, loc_x, loc_y, loc_z, face, rotation, parametric[], size[], data[], mask[])
|
||||
|
||||
type =
|
||||
loc_x =
|
||||
loc_y =
|
||||
loc_z =
|
||||
face =
|
||||
rotation =
|
||||
parametric[] =
|
||||
size[0] = size_x
|
||||
size[1] = size_y
|
||||
size[2] = size_z
|
||||
data[0] =
|
||||
data[1] =
|
||||
data[2] =
|
||||
data[3] =
|
||||
type = component type
|
||||
loc_x = x location placement
|
||||
loc_y = y location placement
|
||||
loc_z = z location placement
|
||||
face = "top", "bottom", "left", "right", "front", "rear"
|
||||
rotation[] = object rotation
|
||||
parametric[] = parametric movement array
|
||||
size[] = size array x,y,z
|
||||
mask[0] = true enables component mask
|
||||
mask[1] = mask length
|
||||
mask[2] = mask setback
|
||||
mask[3] = mstyle "default"
|
||||
|
||||
*/
|
||||
|
||||
module parametric_move_add(type, loc_x, loc_y, loc_z, face, rotation, parametric, size_x, size_y, size_z, data_1, data_2, data_3, data_4) {
|
||||
module parametric_move_add(type, loc_x, loc_y, loc_z, face, rotation, parametric, size, data, mask) {
|
||||
|
||||
// absolute no parametrics
|
||||
if(parametric[1] == false && parametric[2] == false && parametric[3] == false) {
|
||||
add(type,loc_x,loc_y,loc_z,face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x, loc_y, loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
// x axis accessory parametrics
|
||||
if(parametric[1] == true && parametric[2] == false && parametric[3] == false) {
|
||||
if(parametric[0] == "case") {
|
||||
add(type,loc_x+case_offset_x,loc_y,loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x+case_offset_x, loc_y, loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc") {
|
||||
add(type,loc_x+pcb_loc_x,loc_y,loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x+pcb_loc_x, loc_y, loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
}
|
||||
// y axis accessory parametrics
|
||||
if(parametric[1] == false && parametric[2] == true && parametric[3] == false) {
|
||||
if(parametric[0] == "case") {
|
||||
add(type,loc_x,loc_y+case_offset_y,loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x, loc_y+case_offset_y, loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc") {
|
||||
add(type,loc_x,loc_y+pcb_loc_y,loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x, loc_y+pcb_loc_y, loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
}
|
||||
// z axis accessory parametrics
|
||||
if(parametric[1] == false && parametric[2] == false && parametric[3] == true) {
|
||||
if(parametric[0] == "case" && face == "top") {
|
||||
add(type,loc_x,loc_y,loc_z+case_offset_tz+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x, loc_y, loc_z+case_offset_tz+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "case" && face == "bottom") {
|
||||
add(type,loc_x,loc_y,loc_z+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x, loc_y, loc_z+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "case" && face != "bottom" && face != "top") {
|
||||
add(type,loc_x,loc_y,loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x, loc_y, loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc") {
|
||||
add(type,loc_x,loc_y,loc_z+pcb_loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x, loc_y, loc_z+pcb_loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc-case_z" && face == "top") {
|
||||
add(type,loc_x,loc_y,loc_z+case_offset_tz+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x, loc_y, loc_z+case_offset_tz+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc-case_z" && face == "bottom") {
|
||||
add(type,loc_x,loc_y,loc_z+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x, loc_y, loc_z+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
}
|
||||
// xy axis accessory parametrics
|
||||
if(parametric[1] == true && parametric[2] == true && parametric[3] == false) {
|
||||
if(parametric[0] == "case") {
|
||||
add(type,loc_x+case_offset_x,loc_y+case_offset_y,loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x+case_offset_x, loc_y+case_offset_y, loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc") {
|
||||
add(type,loc_x+pcb_loc_x,loc_y+pcb_loc_y,loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x+pcb_loc_x, loc_y+pcb_loc_y, loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
}
|
||||
// xz axis accessory parametrics
|
||||
if(parametric[1] == true && parametric[2] == false && parametric[3] == true) {
|
||||
if(parametric[0] == "case" && face == "top") {
|
||||
add(type,loc_x+case_offset_x,loc_y,loc_z+case_offset_tz+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x+case_offset_x, loc_y, loc_z+case_offset_tz+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "case" && face == "bottom") {
|
||||
add(type,loc_x+case_offset_x,loc_y,loc_z+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x+case_offset_x, loc_y, loc_z+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "case" && face != "bottom" && face != "top") {
|
||||
add(type,loc_x+case_offset_x,loc_y,loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x+case_offset_x, loc_y, loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc") {
|
||||
add(type,loc_x+pcb_loc_x,loc_y,loc_z+pcb_loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x+pcb_loc_x, loc_y, loc_z+pcb_loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc-case_z" && face == "top") {
|
||||
add(type,loc_x+pcb_loc_x,loc_y,loc_z+case_offset_tz+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x+pcb_loc_x, loc_y, loc_z+case_offset_tz+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc-case_z" && face == "bottom") {
|
||||
add(type,loc_x+pcb_loc_x,loc_y,loc_z+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x+pcb_loc_x, loc_y, loc_z+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
}
|
||||
// yz axis accessory parametrics
|
||||
if(parametric[1] == false && parametric[2] == true && parametric[3] == true) {
|
||||
if(parametric[0] == "case" && face == "top") {
|
||||
add(type,loc_x,loc_y+case_offset_y,loc_z+case_offset_tz+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x, loc_y+case_offset_y, loc_z+case_offset_tz+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "case" && face == "bottom") {
|
||||
add(type,loc_x,loc_y+case_offset_y,loc_z+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x, loc_y+case_offset_y, loc_z+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "case" && face != "bottom" && face != "top") {
|
||||
add(type,loc_x,loc_y+case_offset_y,loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x, loc_y+case_offset_y, loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc") {
|
||||
add(type,loc_x,loc_y+pcb_loc_y,loc_z+pcb_loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x, loc_y+pcb_loc_y, loc_z+pcb_loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc-case_z" && face == "top") {
|
||||
add(type,loc_x,loc_y+pcb_loc_y,loc_z+case_offset_tz+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x,loc_y+pcb_loc_y, loc_z+case_offset_tz+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc-case_z" && face == "bottom") {
|
||||
add(type,loc_x,loc_y+pcb_loc_y,loc_z+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x, loc_y+pcb_loc_y, loc_z+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
}
|
||||
// xyz axis accessory parametrics
|
||||
if(parametric[1] == true && parametric[2] == true && parametric[3] == true) {
|
||||
if(parametric[0] == "case" && face == "top") {
|
||||
add(type,loc_x+case_offset_x,loc_y+case_offset_y,loc_z+case_offset_tz+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x+case_offset_x, loc_y+case_offset_y, loc_z+case_offset_tz+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "case" && face == "bottom") {
|
||||
add(type,loc_x+case_offset_x,loc_y+case_offset_y,loc_z+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x+case_offset_x, loc_y+case_offset_y, loc_z+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "case" && face != "bottom" && face != "top") {
|
||||
add(type,loc_x+case_offset_x,loc_y+case_offset_y,loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x+case_offset_x, loc_y+case_offset_y, loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc") {
|
||||
add(type,loc_x+pcb_loc_x,loc_y+pcb_loc_y,loc_z+pcb_loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x+pcb_loc_x, loc_y+pcb_loc_y, loc_z+pcb_loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc-case_z" && face == "top") {
|
||||
add(type,loc_x+pcb_loc_x,loc_y+pcb_loc_y,loc_z+case_offset_tz+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x+pcb_loc_x, loc_y+pcb_loc_y, loc_z+case_offset_tz+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc-case_z" && face == "bottom") {
|
||||
add(type,loc_x+pcb_loc_x,loc_y+pcb_loc_y,loc_z+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
add(type, loc_x+pcb_loc_x, loc_y+pcb_loc_y, loc_z+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -194,170 +162,138 @@ module parametric_move_add(type, loc_x, loc_y, loc_z, face, rotation, parametric
|
||||
DESCRIPTION: places parametric subtractive objects
|
||||
TODO: none
|
||||
|
||||
USAGE: parametric_move_sub(type, loc_x, loc_y, loc_z, face, rotation, parametric[], size_x, size_y, size_z, data_1, data_2, data_3, data_4)
|
||||
USAGE: parametric_move_sub(type, loc_x, loc_y, loc_z, face, rotation, parametric[], size[], data[], mask[])
|
||||
|
||||
type =
|
||||
loc_x =
|
||||
loc_y =
|
||||
loc_z =
|
||||
face =
|
||||
rotation =
|
||||
parametric[] =
|
||||
size[0] = size_x
|
||||
size[1] = size_y
|
||||
size[2] = size_z
|
||||
data[0] =
|
||||
data[1] =
|
||||
data[2] =
|
||||
data[3] =
|
||||
type = component type
|
||||
loc_x = x location placement
|
||||
loc_y = y location placement
|
||||
loc_z = z location placement
|
||||
face = "top", "bottom", "left", "right", "front", "rear"
|
||||
rotation[] = object rotation
|
||||
parametric[] = parametric movement array
|
||||
size[] = size array x,y,z
|
||||
mask[0] = true enables component mask
|
||||
mask[1] = mask length
|
||||
mask[2] = mask setback
|
||||
mask[3] = mstyle "default"
|
||||
|
||||
*/
|
||||
|
||||
module parametric_move_sub(type, loc_x, loc_y, loc_z, face, rotation, parametric, size_x, size_y, size_z, data_1, data_2, data_3, data_4) {
|
||||
module parametric_move_sub(type, loc_x, loc_y, loc_z, face, rotation, parametric, size, data, mask) {
|
||||
|
||||
// absolute no parametrics
|
||||
if(parametric[1] == false && parametric[2] == false && parametric[3] == false) {
|
||||
sub(type,loc_x,loc_y,loc_z,face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x, loc_y, loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
// x axis accessory parametrics
|
||||
if(parametric[1] == true && parametric[2] == false && parametric[3] == false) {
|
||||
if(parametric[0] == "case") {
|
||||
sub(type,loc_x+case_offset_x,loc_y,loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x+case_offset_x, loc_y, loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc") {
|
||||
sub(type,loc_x+pcb_loc_x,loc_y,loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x+pcb_loc_x, loc_y, loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
}
|
||||
// y axis accessory parametrics
|
||||
if(parametric[1] == false && parametric[2] == true && parametric[3] == false) {
|
||||
if(parametric[0] == "case") {
|
||||
sub(type,loc_x,loc_y+case_offset_y,loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x, loc_y+case_offset_y, loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc") {
|
||||
sub(type,loc_x,loc_y+pcb_loc_y,loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x, loc_y+pcb_loc_y, loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
}
|
||||
// z axis accessory parametrics
|
||||
if(parametric[1] == false && parametric[2] == false && parametric[3] == true) {
|
||||
if(parametric[0] == "case" && face == "top") {
|
||||
sub(type,loc_x,loc_y,loc_z+case_offset_tz+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x, loc_y, loc_z+case_offset_tz+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "case" && face == "bottom") {
|
||||
sub(type,loc_x,loc_y,loc_z+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x, loc_y, loc_z+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "case" && face != "bottom" && face != "top") {
|
||||
sub(type,loc_x,loc_y,loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x, loc_y, loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc") {
|
||||
sub(type,loc_x,loc_y,loc_z+pcb_loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x, loc_y, loc_z+pcb_loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc-case_z" && face == "top") {
|
||||
sub(type,loc_x,loc_y,loc_z+case_offset_tz+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x, loc_y, loc_z+case_offset_tz+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc-case_z" && face == "bottom") {
|
||||
sub(type,loc_x,loc_y,loc_z+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x, loc_y, loc_z+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
}
|
||||
// xy axis accessory parametrics
|
||||
if(parametric[1] == true && parametric[2] == true && parametric[3] == false) {
|
||||
if(parametric[0] == "case") {
|
||||
sub(type,loc_x+case_offset_x,loc_y+case_offset_y,loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x+case_offset_x, loc_y+case_offset_y, loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc") {
|
||||
sub(type,loc_x+pcb_loc_x,loc_y+pcb_loc_y,loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x+pcb_loc_x, loc_y+pcb_loc_y,loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
}
|
||||
// xz axis accessory parametrics
|
||||
if(parametric[1] == true && parametric[2] == false && parametric[3] == true) {
|
||||
if(parametric[0] == "case" && face == "top") {
|
||||
sub(type,loc_x+case_offset_x,loc_y,loc_z+case_offset_tz+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x+case_offset_x, loc_y, loc_z+case_offset_tz+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "case" && face == "bottom") {
|
||||
sub(type,loc_x+case_offset_x,loc_y,loc_z+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x+case_offset_x, loc_y, loc_z+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "case" && face != "bottom" && face != "top") {
|
||||
sub(type,loc_x+case_offset_x,loc_y,loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x+case_offset_x, loc_y, loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc") {
|
||||
sub(type,loc_x+pcb_loc_x,loc_y,loc_z+pcb_loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x+pcb_loc_x, loc_y, loc_z+pcb_loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc-case_z" && face == "top") {
|
||||
sub(type,loc_x+pcb_loc_x,loc_y,loc_z+case_offset_tz+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x+pcb_loc_x, loc_y, loc_z+case_offset_tz+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc-case_z" && face == "bottom") {
|
||||
sub(type,loc_x+pcb_loc_x,loc_y,loc_z+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x+pcb_loc_x, loc_y, loc_z+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
}
|
||||
// yz axis accessory parametrics
|
||||
if(parametric[1] == false && parametric[2] == true && parametric[3] == true) {
|
||||
if(parametric[0] == "case" && face == "top") {
|
||||
sub(type,loc_x,loc_y+case_offset_y,loc_z+case_offset_tz+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x, loc_y+case_offset_y, loc_z+case_offset_tz+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "case" && face == "bottom") {
|
||||
sub(type,loc_x,loc_y+case_offset_y,loc_z+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x, loc_y+case_offset_y, loc_z+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "case" && face != "bottom" && face != "top") {
|
||||
sub(type,loc_x,loc_y+case_offset_y,loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x, loc_y+case_offset_y, loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc") {
|
||||
sub(type,loc_x,loc_y+pcb_loc_y,loc_z+pcb_loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x, loc_y+pcb_loc_y, loc_z+pcb_loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc-case_z" && face == "top") {
|
||||
sub(type,loc_x,loc_y+pcb_loc_y,loc_z+case_offset_tz+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x, loc_y+pcb_loc_y, loc_z+case_offset_tz+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc-case_z" && face == "bottom") {
|
||||
sub(type,loc_x,loc_y+pcb_loc_y,loc_z+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x, loc_y+pcb_loc_y, loc_z+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
}
|
||||
// xyz axis accessory parametrics
|
||||
if(parametric[1] == true && parametric[2] == true && parametric[3] == true) {
|
||||
if(parametric[0] == "case" && face == "top") {
|
||||
sub(type,loc_x+case_offset_x,loc_y+case_offset_y,loc_z+case_offset_tz+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x+case_offset_x, loc_y+case_offset_y, loc_z+case_offset_tz+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "case" && face == "bottom") {
|
||||
sub(type,loc_x+case_offset_x,loc_y+case_offset_y,loc_z+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x+case_offset_x, loc_y+case_offset_y, loc_z+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "case" && face != "bottom" && face != "top") {
|
||||
sub(type,loc_x+case_offset_x,loc_y+case_offset_y,loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x+case_offset_x, loc_y+case_offset_y, loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc") {
|
||||
sub(type,loc_x+pcb_loc_x,loc_y+pcb_loc_y,loc_z+pcb_loc_z,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x+pcb_loc_x, loc_y+pcb_loc_y, loc_z+pcb_loc_z, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc-case_z" && face == "top") {
|
||||
sub(type,loc_x+pcb_loc_x,loc_y+pcb_loc_y,loc_z+case_offset_tz+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x+pcb_loc_x, loc_y+pcb_loc_y, loc_z+case_offset_tz+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
if(parametric[0] == "sbc-case_z" && face == "bottom") {
|
||||
sub(type,loc_x+pcb_loc_x,loc_y+pcb_loc_y,loc_z+case_offset_bz,
|
||||
face,rotation,size_x,size_y,size_z,data_1,data_2,data_3,data_4);
|
||||
sub(type, loc_x+pcb_loc_x, loc_y+pcb_loc_y, loc_z+case_offset_bz, face, rotation, size, data, mask);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
40
mod/sub.scad
40
mod/sub.scad
@@ -20,24 +20,36 @@
|
||||
DESCRIPTION: places subtractive objects
|
||||
TODO: none
|
||||
|
||||
USAGE: sub(type, loc_x, loc_y, loc_z, face, rotation, size_x, size_y, size_z, data_1, data_2, data_3, data_4)
|
||||
USAGE: sub(type, loc_x, loc_y, loc_z, face, rotation, size[], data[], mask[])
|
||||
|
||||
type =
|
||||
loc_x =
|
||||
loc_y =
|
||||
loc_z =
|
||||
face =
|
||||
rotation =
|
||||
size[0] = size_x
|
||||
size[1] = size_y
|
||||
size[2] = size_z
|
||||
data[0] =
|
||||
data[1] =
|
||||
data[2] =
|
||||
type = component type
|
||||
loc_x = x location placement
|
||||
loc_y = y location placement
|
||||
loc_z = z location placement
|
||||
face = "top", "bottom", "left", "right", "front", "rear"
|
||||
rotation[] = object rotation
|
||||
parametric[] = parametric movement array
|
||||
size[] = size array x,y,z
|
||||
mask[0] = true enables component mask
|
||||
mask[1] = mask length
|
||||
mask[2] = mask setback
|
||||
mask[3] = mstyle "default"
|
||||
|
||||
*/
|
||||
|
||||
module sub(type, loc_x, loc_y, loc_z, face, rotation, size_x, size_y, size_z, data_1, data_2, data_3, data_4) {
|
||||
module sub(type, loc_x, loc_y, loc_z, face, rotation, size, data, mask) {
|
||||
|
||||
size_x = size[0];
|
||||
size_y = size[1];
|
||||
size_z = size[2];
|
||||
data_1 = data[0];
|
||||
data_2 = data[1];
|
||||
data_3 = data[2];
|
||||
data_4 = data[3];
|
||||
enablemask = mask[0];
|
||||
mlen = mask[1];
|
||||
msetback = mask[2];
|
||||
mstyle = mask[3];
|
||||
|
||||
if(type == "rectangle") {
|
||||
translate([loc_x,loc_y,loc_z]) rotate(rotation) slab_r([size_x,size_y,size_z],data_4);
|
||||
|
||||
Reference in New Issue
Block a user