mirror of
https://github.com/kennetek/gridfinity-rebuilt-openscad.git
synced 2024-11-29 11:33:56 +00:00
refactor rounded cuboids/planes
This commit is contained in:
parent
c9b8df69e3
commit
8d8827de6c
4 changed files with 35 additions and 20 deletions
|
@ -74,12 +74,12 @@ module gridfinityBaseplate(gridx, gridy, length, dix, diy, sp, sm, sh) {
|
||||||
difference() {
|
difference() {
|
||||||
translate([0,0,h_base])
|
translate([0,0,h_base])
|
||||||
mirror([0,0,1])
|
mirror([0,0,1])
|
||||||
rounded_rectangle(dx, dy, h_base+off, r_base);
|
rounded_rectangular_cuboid(dx, dy, h_base+off, r_base);
|
||||||
|
|
||||||
gridfinityBase(gx, gy, length, 1, 1, 0, 0.5, false);
|
gridfinityBase(gx, gy, length, 1, 1, 0, 0.5, false);
|
||||||
|
|
||||||
translate([0,0,h_base-0.6])
|
translate([0,0,h_base-0.6])
|
||||||
rounded_rectangle(dx*2, dy*2, h_base*2, r_base);
|
rounded_rectangular_cuboid(dx*2, dy*2, h_base*2, r_base);
|
||||||
|
|
||||||
pattern_linear(gx, gy, length) {
|
pattern_linear(gx, gy, length) {
|
||||||
if (sm) block_base_hole(1);
|
if (sm) block_base_hole(1);
|
||||||
|
@ -161,6 +161,13 @@ module profile_skeleton() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
module profile_skeleton_minimal() {
|
||||||
|
l = length - 6;
|
||||||
|
offset(r_fo3)
|
||||||
|
offset(-r_fo3)
|
||||||
|
square([l,l], center = true);
|
||||||
|
}
|
||||||
|
|
||||||
module cutter_screw_together(gx, gy, off) {
|
module cutter_screw_together(gx, gy, off) {
|
||||||
|
|
||||||
screw(gx, gy);
|
screw(gx, gy);
|
||||||
|
|
|
@ -78,10 +78,10 @@ module gridfinityLite(gridx, gridy, gridz, gridz_define, enable_lip, enable_zsna
|
||||||
cube([gridx*length,gridy*length,1000]);
|
cube([gridx*length,gridy*length,1000]);
|
||||||
}
|
}
|
||||||
translate([0,0,-1])
|
translate([0,0,-1])
|
||||||
rounded_rectangle(gridx*length-0.5005-d_wall*2, gridy*length-0.5005-d_wall*2, 1000, r_f2);
|
rounded_rectangular_cuboid(gridx*length-0.5005-d_wall*2, gridy*length-0.5005-d_wall*2, 1000, r_f2);
|
||||||
}
|
}
|
||||||
translate([0,0,h_base+d_clear])
|
translate([0,0,h_base+d_clear])
|
||||||
rounded_rectangle(gridx*length-0.5005-d_wall*2, gridy*length-0.5005-d_wall*2, h_base, r_f2);
|
rounded_rectangular_cuboid(gridx*length-0.5005-d_wall*2, gridy*length-0.5005-d_wall*2, h_base, r_f2);
|
||||||
}
|
}
|
||||||
|
|
||||||
translate([0,0,-4*h_base])
|
translate([0,0,-4*h_base])
|
||||||
|
|
|
@ -90,12 +90,12 @@ module gridfinityBase(gx, gy, l, dx, dy, style_hole, off=0, final_cut=true) {
|
||||||
|
|
||||||
if (final_cut)
|
if (final_cut)
|
||||||
translate([0,0,h_base])
|
translate([0,0,h_base])
|
||||||
rounded_rectangle(xx+0.002, yy+0.002, h_bot/1.5, r_fo1/2+0.001);
|
rounded_rectangular_cuboid(xx+0.002, yy+0.002, h_bot/1.5, r_fo1/2+0.001);
|
||||||
|
|
||||||
intersection(){
|
intersection(){
|
||||||
if (final_cut)
|
if (final_cut)
|
||||||
translate([0,0,-1])
|
translate([0,0,-1])
|
||||||
rounded_rectangle(xx+0.005, yy+0.005, h_base+h_bot/2*10, r_fo1/2+0.001);
|
rounded_rectangular_cuboid(xx+0.005, yy+0.005, h_base+h_bot/2*10, r_fo1/2+0.001);
|
||||||
|
|
||||||
render()
|
render()
|
||||||
difference() {
|
difference() {
|
||||||
|
@ -117,14 +117,14 @@ module block_base_solid(dbnx, dbny, l, o) {
|
||||||
mirror([0,0,1])
|
mirror([0,0,1])
|
||||||
union() {
|
union() {
|
||||||
hull() {
|
hull() {
|
||||||
rounded_rectangle(xx-2*r_c2-2*r_c1+o, yy-2*r_c2-2*r_c1+o, h_base+oo, r_fo3/2);
|
rounded_rectangular_cuboid(xx-2*r_c2-2*r_c1+o, yy-2*r_c2-2*r_c1+o, h_base+oo, r_fo3/2);
|
||||||
rounded_rectangle(xx-2*r_c2+o, yy-2*r_c2+o, h_base-r_c1+oo, r_fo2/2);
|
rounded_rectangular_cuboid(xx-2*r_c2+o, yy-2*r_c2+o, h_base-r_c1+oo, r_fo2/2);
|
||||||
}
|
}
|
||||||
translate([0,0,oo])
|
translate([0,0,oo])
|
||||||
hull() {
|
hull() {
|
||||||
rounded_rectangle(xx-2*r_c2+o, yy-2*r_c2+o, r_c2, r_fo2/2);
|
rounded_rectangular_cuboid(xx-2*r_c2+o, yy-2*r_c2+o, r_c2, r_fo2/2);
|
||||||
mirror([0,0,1])
|
mirror([0,0,1])
|
||||||
rounded_rectangle(xx+o, yy+o, h_bot/2+abs(10*o), r_fo1/2);
|
rounded_rectangular_cuboid(xx+o, yy+o, h_bot/2+abs(10*o), r_fo1/2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -201,7 +201,7 @@ module block_wall(gx, gy, l) {
|
||||||
|
|
||||||
module block_bottom( h = 2.2, gx, gy, l ) {
|
module block_bottom( h = 2.2, gx, gy, l ) {
|
||||||
translate([0,0,h_base+0.1])
|
translate([0,0,h_base+0.1])
|
||||||
rounded_rectangle(gx*l-0.5-d_wall/4, gy*l-0.5-d_wall/4, h, r_base+0.01);
|
rounded_rectangular_cuboid(gx*l-0.5-d_wall/4, gy*l-0.5-d_wall/4, h, r_base+0.01);
|
||||||
}
|
}
|
||||||
|
|
||||||
module cut_move_unsafe(x, y, w, h) {
|
module cut_move_unsafe(x, y, w, h) {
|
||||||
|
@ -389,15 +389,23 @@ module profile_cutter_tab(h, tab, ang) {
|
||||||
|
|
||||||
function clp(x,a,b) = min(max(x,a),b);
|
function clp(x,a,b) = min(max(x,a),b);
|
||||||
|
|
||||||
module rounded_rectangle(length, width, height, rad) {
|
module rounded_rectangular_cuboid(length, width, height, rad) {
|
||||||
linear_extrude(height)
|
linear_extrude(height)
|
||||||
|
rounded_rectangle(length, width, rad);
|
||||||
|
}
|
||||||
|
|
||||||
|
module rounded_cube(length, height, rad) {
|
||||||
|
rounded_rectangular_cuboid(length, length, height, rad);
|
||||||
|
}
|
||||||
|
|
||||||
|
module rounded_rectangle(length, width, rad){
|
||||||
offset(rad)
|
offset(rad)
|
||||||
offset(-rad)
|
offset(-rad)
|
||||||
square([length,width], center = true);
|
square([length,width], center = true);
|
||||||
}
|
}
|
||||||
|
|
||||||
module rounded_square(length, height, rad) {
|
module rounded_square(length, rad){
|
||||||
rounded_rectangle(length, length, height, rad);
|
rounded_rectangle(length,length,rad);
|
||||||
}
|
}
|
||||||
|
|
||||||
module copy_mirror(vec=[0,1,0]) {
|
module copy_mirror(vec=[0,1,0]) {
|
||||||
|
|
|
@ -157,7 +157,7 @@ module gridfinityBaseVase() {
|
||||||
intersection() {
|
intersection() {
|
||||||
block_base_blank(0);
|
block_base_blank(0);
|
||||||
translate([0,0,-h_base-1])
|
translate([0,0,-h_base-1])
|
||||||
rounded_rectangle(length-0.5-0.005, length-0.5-0.005, h_base*10, r_fo1/2+0.001);
|
rounded_rectangular_cuboid(length-0.5-0.005, length-0.5-0.005, h_base*10, r_fo1/2+0.001);
|
||||||
}
|
}
|
||||||
translate([0,0,0.01])
|
translate([0,0,0.01])
|
||||||
difference() {
|
difference() {
|
||||||
|
@ -211,13 +211,13 @@ module block_magnet_blank(o = 0, half = true) {
|
||||||
module block_base_blank(o = 0) {
|
module block_base_blank(o = 0) {
|
||||||
mirror([0,0,1]) {
|
mirror([0,0,1]) {
|
||||||
hull() {
|
hull() {
|
||||||
rounded_square(length-o-0.05-2*r_c2-2*r_c1, h_base, r_fo3/2);
|
rounded_cube(length-o-0.05-2*r_c2-2*r_c1, h_base, r_fo3/2);
|
||||||
rounded_square(length-o-0.05-2*r_c2, h_base-r_c1, r_fo2/2);
|
rounded_cube(length-o-0.05-2*r_c2, h_base-r_c1, r_fo2/2);
|
||||||
}
|
}
|
||||||
hull() {
|
hull() {
|
||||||
rounded_square(length-o-0.05-2*r_c2, r_c2, r_fo2/2);
|
rounded_cube(length-o-0.05-2*r_c2, r_c2, r_fo2/2);
|
||||||
mirror([0,0,1])
|
mirror([0,0,1])
|
||||||
rounded_square(length-o-0.05, d_bottom, r_fo1/2);
|
rounded_cube(length-o-0.05, d_bottom, r_fo1/2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -515,7 +515,7 @@ module transform_scoop() {
|
||||||
|
|
||||||
module block_vase(h = d_height*2) {
|
module block_vase(h = d_height*2) {
|
||||||
translate([0,0,-0.1])
|
translate([0,0,-0.1])
|
||||||
rounded_rectangle(gridx*length-0.5-nozzle, gridy*length-0.5-nozzle, h, r_base+0.01-nozzle/2);
|
rounded_rectangular_cuboid(gridx*length-0.5-nozzle, gridy*length-0.5-nozzle, h, r_base+0.01-nozzle/2);
|
||||||
}
|
}
|
||||||
|
|
||||||
module profile_x(x_f = 3) {
|
module profile_x(x_f = 3) {
|
||||||
|
|
Loading…
Reference in a new issue