Compare commits

..

No commits in common. "0129cf6ce6a9f045b670270d6a66b5f9f298519b" and "97a6f52e07417093583828ba832b2209965a5fdb" have entirely different histories.

8 changed files with 48 additions and 140 deletions

View File

@ -352,14 +352,14 @@ module frame() {
// for cutting out slashes from the frame outer wall
module slash_cutout() {
polyhedron([
[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]
[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]
], [[0, 1, 2, 3], [4, 5, 1, 0], [7, 6, 5, 4], [5, 6, 2, 1], [6, 7, 3, 2], [7, 4, 0, 3]]);
}

View File

@ -1,32 +0,0 @@
/* 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();

View File

@ -1,30 +0,0 @@
/*
* 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();

View File

@ -8,26 +8,30 @@ include <components.scad>
use <front-or-back.scad>
use <front-or-back-inner-wall.scad>
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 front_stripe() {
cube([frame_x-(frame_mount_column_width*1.75)*2, frame_wall, 5], center=true);
}
module horiz_striped_windowed_front_or_back_frame_piece() {
difference() {
front_or_back_frame_piece();
// subtract frame wall windows
front_horiz_stripes();
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();
// 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();

View File

@ -1,32 +0,0 @@
/* 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();

View File

@ -5,28 +5,34 @@
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 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);
}
// 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();
}
module side_frame_piece_extension() {
// hulling the two walls provides a wall with a thicker x
// combine the original with a shrunken piece to "pull" the wall out
hull() {
side_frame_piece_wall();
translate([-frame_bevel_height*2, 0, 0]) side_frame_piece_wall();
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();
}
}
module side_longish_frame_piece() {
// combine the wider wall and the original piece
side_frame_piece_extension();
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();
}
side_longish_frame_piece();

View File

@ -8,23 +8,19 @@ include <components.scad>
use <side.scad>
use <side-inner-wall.scad>
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 side_stripe() {
cube([frame_wall, frame_y-(frame_mount_column_width*1.75)*2, 5], center=true);
}
module horiz_striped_windowed_side_frame_piece() {
difference() {
side_frame_piece();
// subtract frame wall windows
side_horiz_stripes();
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();
// subtract the inner wall area that will be provided by the other piece
side_inner_wall_frame_piece();
}

View File

@ -104,10 +104,6 @@ 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;