Compare commits
5 Commits
97a6f52e07
...
0129cf6ce6
Author | SHA1 | Date | |
---|---|---|---|
0129cf6ce6 | |||
c79427052e | |||
623118b627 | |||
aff6efebb3 | |||
f3d0d4b6e2 |
@ -352,14 +352,14 @@ module frame() {
|
||||
// for cutting out slashes from the frame outer wall
|
||||
module slash_cutout() {
|
||||
polyhedron([
|
||||
[slash_inner_displacement/2, -frame_wall/2, -slash_height/2],
|
||||
[(slash_inner_displacement/2+slash_width), -frame_wall/2, -slash_height/2],
|
||||
[(slash_inner_displacement/2+slash_width), frame_wall/2, -slash_height/2],
|
||||
[slash_inner_displacement/2, frame_wall/2, -slash_height/2],
|
||||
[-(slash_inner_displacement/2+slash_width), -frame_wall/2, slash_height/2],
|
||||
[-slash_inner_displacement/2, -frame_wall/2, slash_height/2],
|
||||
[-slash_inner_displacement/2, frame_wall/2, slash_height/2],
|
||||
[-(slash_inner_displacement/2+slash_width), frame_wall/2, slash_height/2]
|
||||
[slash_inner_displacement/2, -wall_cutout_depth, -slash_height/2],
|
||||
[(slash_inner_displacement/2+slash_width), -wall_cutout_depth, -slash_height/2],
|
||||
[(slash_inner_displacement/2+slash_width), wall_cutout_depth, -slash_height/2],
|
||||
[slash_inner_displacement/2, wall_cutout_depth, -slash_height/2],
|
||||
[-(slash_inner_displacement/2+slash_width), -wall_cutout_depth, slash_height/2],
|
||||
[-slash_inner_displacement/2, -wall_cutout_depth, slash_height/2],
|
||||
[-slash_inner_displacement/2, wall_cutout_depth, slash_height/2],
|
||||
[-(slash_inner_displacement/2+slash_width), wall_cutout_depth, slash_height/2]
|
||||
], [[0, 1, 2, 3], [4, 5, 1, 0], [7, 6, 5, 4], [5, 6, 2, 1], [6, 7, 3, 2], [7, 4, 0, 3]]);
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,32 @@
|
||||
/* The inner top/bottom wall of the frame, for being displayed through a horizontal stripe windowed part.
|
||||
*
|
||||
* SPDX-FileCopyrightText: © 2025 Brian S. Stephan <bss@incorporeal.org>
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
|
||||
include <parameters.scad>
|
||||
include <components.scad>
|
||||
use <front-or-back-inner-wall.scad>
|
||||
use <front-or-back-longish.scad>
|
||||
use <front-or-back-windowed-horiz-stripes.scad>
|
||||
|
||||
// for stability's sake, this piece juts out a bit from the outside of the wall, so we
|
||||
// need to hack the window piece a bit to subtract from the longer and get ours longer
|
||||
module horiz_striped_windowed_front_or_back_frame_piece() {
|
||||
difference() {
|
||||
front_or_back_longish_frame_piece();
|
||||
// subtract frame wall windows
|
||||
front_horiz_stripes();
|
||||
// subtract the inner wall area that will be provided by the other piece
|
||||
front_or_back_inner_wall_frame_piece();
|
||||
}
|
||||
}
|
||||
|
||||
module front_or_back_windowed_horiz_stripes_inner_wall_frame_piece() {
|
||||
difference() {
|
||||
front_or_back_longish_frame_piece();
|
||||
horiz_striped_windowed_front_or_back_frame_piece();
|
||||
}
|
||||
}
|
||||
|
||||
front_or_back_windowed_horiz_stripes_inner_wall_frame_piece();
|
30
src/frames/pieces/front-or-back-longish.scad
Normal file
30
src/frames/pieces/front-or-back-longish.scad
Normal file
@ -0,0 +1,30 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: © 2025 Brian S. Stephan <bss@incorporeal.org>
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
|
||||
include <parameters.scad>
|
||||
include <components.scad>
|
||||
use <front-or-back.scad>
|
||||
|
||||
module front_or_back_frame_piece_wall() {
|
||||
// get a slice of the whole wall, to use it for making the extended version
|
||||
difference() {
|
||||
front_or_back_frame_piece();
|
||||
cube([frame_x, frame_y-frame_wall*2, frame_z], center=true);
|
||||
}
|
||||
}
|
||||
|
||||
module front_or_back_frame_piece_extension() {
|
||||
hull() {
|
||||
front_or_back_frame_piece_wall();
|
||||
translate([0, -frame_bevel_height*2, 0]) front_or_back_frame_piece_wall();
|
||||
}
|
||||
}
|
||||
|
||||
module front_or_back_longish_frame_piece() {
|
||||
front_or_back_frame_piece_extension();
|
||||
front_or_back_frame_piece();
|
||||
}
|
||||
|
||||
front_or_back_longish_frame_piece();
|
@ -8,30 +8,26 @@ include <components.scad>
|
||||
use <front-or-back.scad>
|
||||
use <front-or-back-inner-wall.scad>
|
||||
|
||||
module front_stripe() {
|
||||
cube([frame_x-(frame_mount_column_width*1.75)*2, frame_wall, 5], center=true);
|
||||
module front_horiz_stripe() {
|
||||
cube([frame_x-(frame_mount_column_width*1.75)*2, wall_cutout_depth, 5], center=true);
|
||||
}
|
||||
|
||||
module front_horiz_stripes() {
|
||||
translate([0, -(frame_y-frame_wall)/2, 18]) front_horiz_stripe();
|
||||
translate([0, -(frame_y-frame_wall)/2, 9]) front_horiz_stripe();
|
||||
translate([0, -(frame_y-frame_wall)/2, 0]) front_horiz_stripe();
|
||||
translate([0, -(frame_y-frame_wall)/2, -9]) front_horiz_stripe();
|
||||
translate([0, -(frame_y-frame_wall)/2, -18]) front_horiz_stripe();
|
||||
}
|
||||
|
||||
module horiz_striped_windowed_front_or_back_frame_piece() {
|
||||
difference() {
|
||||
front_or_back_frame_piece();
|
||||
// subtract frame wall windows
|
||||
translate([0, -(frame_y-frame_wall)/2, 18]) front_stripe();
|
||||
translate([0, -(frame_y-frame_wall)/2, 9]) front_stripe();
|
||||
translate([0, -(frame_y-frame_wall)/2, 0]) front_stripe();
|
||||
translate([0, -(frame_y-frame_wall)/2, -9]) front_stripe();
|
||||
translate([0, -(frame_y-frame_wall)/2, -18]) front_stripe();
|
||||
front_horiz_stripes();
|
||||
// subtract the inner wall area that will be provided by the other piece
|
||||
front_or_back_inner_wall_frame_piece();
|
||||
}
|
||||
}
|
||||
|
||||
module horiz_striped_windowed_front_or_back_frame_piece_for_extended_side() {
|
||||
difference() {
|
||||
horiz_striped_windowed_front_or_back_frame_piece();
|
||||
// ...minus the frame wall and lip on the left
|
||||
translate([-frame_x/2+frame_wall/2, 0, 0]) cube([frame_wall, frame_y, frame_z], center=true);
|
||||
}
|
||||
}
|
||||
|
||||
horiz_striped_windowed_front_or_back_frame_piece_for_extended_side();
|
||||
horiz_striped_windowed_front_or_back_frame_piece();
|
||||
|
32
src/frames/pieces/side-inner-wall-for-horiz-stripes.scad
Normal file
32
src/frames/pieces/side-inner-wall-for-horiz-stripes.scad
Normal file
@ -0,0 +1,32 @@
|
||||
/* The inner side wall of the frame, for being displayed through a horizontal stripe windowed part.
|
||||
*
|
||||
* SPDX-FileCopyrightText: © 2025 Brian S. Stephan <bss@incorporeal.org>
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
|
||||
include <parameters.scad>
|
||||
include <components.scad>
|
||||
use <side-inner-wall.scad>
|
||||
use <side-longish.scad>
|
||||
use <side-windowed-horiz-stripes.scad>
|
||||
|
||||
// for stability's sake, this piece juts out a bit from the outside of the wall, so we
|
||||
// need to hack the window piece a bit to subtract from the longer and get ours longer
|
||||
module horiz_striped_windowed_side_frame_piece() {
|
||||
difference() {
|
||||
side_longish_frame_piece();
|
||||
// subtract frame wall windows
|
||||
side_horiz_stripes();
|
||||
// subtract the inner wall area that will be provided by the other piece
|
||||
side_inner_wall_frame_piece();
|
||||
}
|
||||
}
|
||||
|
||||
module side_windowed_horiz_stripes_inner_wall_frame_piece() {
|
||||
difference() {
|
||||
side_longish_frame_piece();
|
||||
horiz_striped_windowed_side_frame_piece();
|
||||
}
|
||||
}
|
||||
|
||||
side_windowed_horiz_stripes_inner_wall_frame_piece();
|
@ -5,34 +5,28 @@
|
||||
|
||||
include <parameters.scad>
|
||||
include <components.scad>
|
||||
use <frames/complete/left-frame.scad>
|
||||
use <side.scad>
|
||||
|
||||
module side_frame_piece_wall() {
|
||||
// get a slice of the piece, to use it in extruding
|
||||
// this doesn't use the side_frame_piece because of the 45 degree angle geometry
|
||||
// not creating a clean thing to cut, so we just take the whole wall and use that
|
||||
projection(cut=true) rotate([0, 90, 0]) translate([frame_x/2-frame_wall-(frame_bevel_height/2), 0, 0])
|
||||
left_frame();
|
||||
// get a slice of the whole wall, to use it for making the extended version
|
||||
difference() {
|
||||
side_frame_piece();
|
||||
cube([frame_x-frame_wall*2, frame_y, frame_z], center=true);
|
||||
}
|
||||
}
|
||||
|
||||
module side_frame_piece_extension() {
|
||||
// combine the original with a shrunken piece to "pull" the wall out
|
||||
// hulling the two walls provides a wall with a thicker x
|
||||
hull() {
|
||||
linear_extrude(height=frame_bevel_height*4)
|
||||
square([frame_z-(frame_bevel_height*2), frame_y-(frame_bevel_height*2)], center=true);
|
||||
linear_extrude(height=frame_bevel_height*3) side_frame_piece_wall();
|
||||
linear_extrude(height=frame_bevel_height) side_frame_piece_wall();
|
||||
side_frame_piece_wall();
|
||||
translate([-frame_bevel_height*2, 0, 0]) side_frame_piece_wall();
|
||||
}
|
||||
}
|
||||
|
||||
module side_longish_frame_piece() {
|
||||
difference() {
|
||||
side_frame_piece();
|
||||
// chop off the old edge which is getting replaced with the extension
|
||||
translate([-frame_x/2+frame_bevel_height/2, 0, 0]) cube([frame_bevel_height, frame_y, frame_z], center=true);
|
||||
}
|
||||
translate([-frame_x/2+frame_bevel_height*2, 0, 0]) rotate([0, -90, 0]) side_frame_piece_extension();
|
||||
// combine the wider wall and the original piece
|
||||
side_frame_piece_extension();
|
||||
side_frame_piece();
|
||||
}
|
||||
|
||||
side_longish_frame_piece();
|
||||
|
@ -8,19 +8,23 @@ include <components.scad>
|
||||
use <side.scad>
|
||||
use <side-inner-wall.scad>
|
||||
|
||||
module side_stripe() {
|
||||
cube([frame_wall, frame_y-(frame_mount_column_width*1.75)*2, 5], center=true);
|
||||
module side_horiz_stripe() {
|
||||
cube([wall_cutout_depth, frame_y-(frame_mount_column_width*1.75)*2, 5], center=true);
|
||||
}
|
||||
|
||||
module side_horiz_stripes() {
|
||||
translate([-(frame_x-frame_wall)/2, 0, 18]) side_horiz_stripe();
|
||||
translate([-(frame_x-frame_wall)/2, 0, 9]) side_horiz_stripe();
|
||||
translate([-(frame_x-frame_wall)/2, 0, 0]) side_horiz_stripe();
|
||||
translate([-(frame_x-frame_wall)/2, 0, -9]) side_horiz_stripe();
|
||||
translate([-(frame_x-frame_wall)/2, 0, -18]) side_horiz_stripe();
|
||||
}
|
||||
|
||||
module horiz_striped_windowed_side_frame_piece() {
|
||||
difference() {
|
||||
side_frame_piece();
|
||||
// subtract frame wall windows
|
||||
translate([-(frame_x-frame_wall)/2, 0, 18]) side_stripe();
|
||||
translate([-(frame_x-frame_wall)/2, 0, 9]) side_stripe();
|
||||
translate([-(frame_x-frame_wall)/2, 0, 0]) side_stripe();
|
||||
translate([-(frame_x-frame_wall)/2, 0, -9]) side_stripe();
|
||||
translate([-(frame_x-frame_wall)/2, 0, -18]) side_stripe();
|
||||
side_horiz_stripes();
|
||||
// subtract the inner wall area that will be provided by the other piece
|
||||
side_inner_wall_frame_piece();
|
||||
}
|
||||
|
@ -104,6 +104,10 @@ neutrik_d_radius = 12 + hole_tolerance;
|
||||
decorative_radius_scale = 1.75;
|
||||
jumbo_decorative_radius_scale = 2;
|
||||
|
||||
// decorative wall cutout parameters
|
||||
// thicker than the actual base wall to account for the longish pieces
|
||||
wall_cutout_depth = frame_wall * 3;
|
||||
|
||||
// decorative slash parameters
|
||||
slash_inner_displacement = 10;
|
||||
slash_width = 15;
|
||||
|
Loading…
x
Reference in New Issue
Block a user