consolidated 3d print files

This commit is contained in:
Joe Arndt 2025-12-17 14:35:17 -06:00
commit 11e3d2186a
428 changed files with 7219159 additions and 0 deletions

View file

@ -0,0 +1,63 @@
$fn=180;
// ACE Screen Dimensions
screen_width=120.25;
screen_height=81;
screen_depth=10;
screen_radius=5; // Est. - need to actually measure
left_long_edge=62;
left_short_edge=40;
// Screen Cover Frame Dimensions
frame_thickness=1;
frame_width=screen_width+(frame_thickness*2);
frame_height=screen_height+(frame_thickness*2);
frame_depth=screen_depth+frame_thickness;
// Screen Cover Object Dimensions
cover_width=frame_width-(frame_thickness*10);
cover_height=frame_height-(frame_thickness*10);
cover_depth=frame_thickness;
// Screen Cover Frame Object
module screen_cover_frame() {
cube([frame_width, frame_height, frame_depth], center=true);
}
// Screen Cover Frame Cutout Object
module screen_cover_frame_cutout() {
coords=[
[0,0],
[0,(frame_height-left_long_edge)],
[frame_depth,(frame_height-left_short_edge)],
[frame_depth,0]
];
translate([0, -(frame_height-left_short_edge)/2, (frame_depth/2)])
rotate([0,90,0])
linear_extrude(height = frame_thickness, center = true)
polygon(points=coords);
}
// Screen Cover Object
module screen_cover() {
cube([cover_width, cover_height, cover_depth], center=true);
}
// ACE Screen Object
module ace_screen() {
cube([screen_width, screen_height, screen_depth], center=true);
}
difference(){
screen_cover_frame();
translate([0, 0, (frame_depth-frame_thickness)/2])
screen_cover();
translate([-((frame_width-frame_thickness)/2), -(frame_height-(frame_height-left_short_edge))/2, 0])
screen_cover_frame_cutout();
translate([0, 0, -(frame_thickness/2)])
ace_screen();
}

View file

@ -0,0 +1,9 @@
# Parametric Radius (and Thickness) Gauge
This is a simple guage that has both concave and convex corner radius. Optionally, it can also be used as a thickness gauge, although the SCAD file defaults to a thickness of 1.5 (mm). The default file is designed for a range of 1-30mm with an overall width and height of each guage at 65x35mm. However, this can be adjusted very easily.
There are also a couple of handy scripts provided for generating rendered objects (3mf & STL files). These are Python scripts that use the OpenSCAD command line utility, so of course both are a prerequisite for using these scripts.
In addition there is a paramatric box to accompany your guages. The SCAD file has parameters to easily adjust for how many and what size, but the provided 3mf and STL files are a match for the 30 provided gauge files.
# License?
There is no license. There are no restrictions. I don't care what you do with these files. I don't care if modify them and claim them as your own. I don't care if you make money with them. I don't care if you think they are stupid. Literally do whatever you want with them.

View file

@ -0,0 +1,99 @@
$fn = 128;
module tray(gauge_width, gauge_height, guage_thickness, gauge_range, t_radius, wall_thickness) {
gauge_slots_length = ((gauge_range[1] - 1) * wall_thickness) + (gauge_range[1] * guage_thickness);
gauge_slots_height = gauge_height * 0.25;
tray_length = gauge_slots_length + (wall_thickness * 2);
tray_width = gauge_width + (wall_thickness * 2);
tray_height = gauge_slots_height;
lip_length = tray_length + (wall_thickness * 2);
lip_width = tray_width + (wall_thickness * 2);
union() {
difference() {
cube([gauge_width, gauge_slots_length, gauge_slots_height], center = true);
for(count = [gauge_range[0] : gauge_range[1]]) {
start_y = -(gauge_slots_length / 2);
wall_offset = (count - 1) * wall_thickness;
gauge_offset = (count - 1) * guage_thickness;
y_pos = start_y + gauge_offset + wall_offset;
translate([-(gauge_width / 2), y_pos, -(gauge_height / 2)])
cube([gauge_width, guage_thickness, gauge_height]);
};
};
difference() {
cube([tray_width, tray_length, tray_height], center = true);
cube([gauge_width, gauge_slots_length, gauge_slots_height], center = true);
};
translate([0, 0, -(wall_thickness / 2)])
linear_extrude(tray_height - wall_thickness, center = true)
difference() {
offset(r = t_radius) {
square([(lip_width - (t_radius * 2)), (lip_length - (t_radius * 2))], center = true);
};
square([tray_width, tray_length], center = true);
};
translate([0, 0, -((tray_height / 2) + (wall_thickness / 2))])
difference() {
minkowski() {
cube([tray_width, tray_length, wall_thickness], center = true);
cylinder(h = wall_thickness, r1 = 0, r2 = t_radius);
};
translate([0, 0, wall_thickness])
cube([lip_width, lip_length, wall_thickness], center = true);
};
};
};
module lid(gauge_width, gauge_height, guage_thickness, gauge_range, t_radius, wall_thickness, p_tolerance) {
outer_length = ((gauge_range[1] - 1) * wall_thickness) + (gauge_range[1] * guage_thickness) + (wall_thickness * 4);
outer_width = gauge_width + (wall_thickness * 4);
inner_height = (gauge_height * 0.75) + wall_thickness;
inner_width = outer_width - (wall_thickness * 2);
inner_length = outer_length - (wall_thickness * 2);
union() {
linear_extrude(inner_height, center = true)
difference() {
offset(r = t_radius) {
square([(outer_width - (t_radius * 2)), (outer_length - (t_radius * 2))], center = true);
};
square([inner_width + p_tolerance, inner_length + p_tolerance], center = true);
};
translate([0, 0, -((inner_height / 2) + (wall_thickness / 2))])
difference() {
minkowski() {
cube([inner_width, inner_length, wall_thickness], center = true);
cylinder(h = wall_thickness, r1 = 0, r2 = t_radius);
};
translate([0, 0, wall_thickness])
cube([outer_width, outer_length, wall_thickness], center = true);
};
};
};
tolerance = 0.5;
radius = 2;
w_thickness = 2;
g_width = 65 + (tolerance);
g_height = 35 + (tolerance);
g_thickness = 1.5 + (tolerance);
g_range = [1, 30];
translate([40, 0, 0])
tray(g_width, g_height, g_thickness, g_range, radius, w_thickness);
translate([-40, 0, 0])
lid(g_width, g_height, g_thickness, g_range, radius, w_thickness, tolerance);

View file

@ -0,0 +1,67 @@
$fn = 128;
module gauge(gauge_size, gauge_width, gauge_height, gauge_thickness, hole_size) {
body_radius = 5;
difference() {
union() {
difference(){
union() {
minkowski() {
cube([gauge_width - body_radius, gauge_height - body_radius, gauge_thickness / 2], center = true);
cylinder(d = body_radius, h = gauge_thickness / 2, center = true);
};
translate([-((gauge_width / 2) - (body_radius / 2)), (gauge_height / 2) - (body_radius / 2), 0])
cube([body_radius, body_radius, gauge_thickness], center = true);
translate([(gauge_width / 2) - (body_radius / 2), (gauge_height / 2) - (body_radius / 2), 0])
cube([body_radius, body_radius, gauge_thickness], center = true);
};
translate([-(gauge_width / 2), gauge_height / 2, 0])
cylinder(h = gauge_thickness, r1 = gauge_size, r2 = gauge_size, center = true);
translate([gauge_width / 2, gauge_height / 2, 0])
cylinder(h = gauge_thickness, r1 = gauge_size, r2 = gauge_size, center = true);
};
translate([(gauge_width / 2) - gauge_size, gauge_height / 2 - gauge_size, 0])
difference() {
cylinder(h = gauge_thickness, r1 = gauge_size, r2 = gauge_size, center = true);
translate([-gauge_size/2, -gauge_size/2, 0])
cube([gauge_size, gauge_size, gauge_thickness], center = true);
translate([-gauge_size/2, gauge_size/2, 0])
cube([gauge_size, gauge_size, gauge_thickness], center = true);
translate([gauge_size/2, -gauge_size/2, 0])
cube([gauge_size, gauge_size, gauge_thickness], center = true);
};
};
if (hole_size > 0) {
translate([(gauge_width / 2) - 3.5, -((gauge_height / 2) - 3.5), 0])
cylinder(h = gauge_thickness, d = hole_size, center = true);
};
translate([0, -(gauge_height / 3), 0])
linear_extrude(gauge_thickness, center = true)
text(str(gauge_size, "mm"), size = 6, valign = "center", halign = "center", font = "OpenSans:style=Extrabold");
};
};
thickness = false;
hole = 5.5;
size = 30;
g_width = 65;
g_height = 35;
g_thickness = 1.5;
if(thickness) {
gauge(size, g_width, g_height, size, hole);
}
else {
gauge(size, g_width, g_height, g_thickness, hole);
}

View file

@ -0,0 +1,9 @@
import subprocess
for number in range(1,31):
cmd = f'openscad -o 3mf_gauges/{number}mm_radius.3mf -D size={number} gauge.scad'
subprocess.run(cmd, shell=True)
for number in range(1,31):
cmd = f'openscad -o stl_gauges/{number}mm_radius.stl -D size={number} gauge.scad'
subprocess.run(cmd, shell=True)

View file

@ -0,0 +1,10 @@
import subprocess
for number in range(1,31):
cmd = f'openscad -o 3mf_gauges_with_thickness/{number}mm_radius_and_thickness.3mf -D size={number} -D thickness=true gauge.scad'
subprocess.run(cmd, shell=True)
for number in range(1,31):
cmd = f'openscad -o stl_gauges_with_thickness/{number}mm_radius_and_thickness.stl -D size={number} -D thickness=true gauge.scad'
subprocess.run(cmd, shell=True)

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

Some files were not shown because too many files have changed in this diff Show more