added cryptex designs

This commit is contained in:
Joe Arndt 2025-12-17 15:28:17 -06:00
parent 11e3d2186a
commit d336b04c67
137 changed files with 26 additions and 0 deletions

View file

@ -1,63 +0,0 @@
$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

@ -1,9 +0,0 @@
# 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

@ -1,99 +0,0 @@
$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

@ -1,67 +0,0 @@
$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

@ -1,9 +0,0 @@
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

@ -1,10 +0,0 @@
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)

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