From ce3aa19da3edbc09b7721d7de75fdf3a932d8e80 Mon Sep 17 00:00:00 2001 From: Jonathan Bernard Date: Mon, 19 May 2025 17:39:56 -0500 Subject: [PATCH] Model tweaks for Axis & Allies, add unit-chip model. --- .../fighter-germany-messerschmitt.scad | 2 +- .../fighter-japan-mitsubishi-zero.scad | 4 +- .../axis-and-allies/fighter-russia-yak-9.scad | 3 +- board-games/axis-and-allies/unit-chip.scad | 60 +++++++++++++++++++ 4 files changed, 65 insertions(+), 4 deletions(-) create mode 100644 board-games/axis-and-allies/unit-chip.scad diff --git a/board-games/axis-and-allies/fighter-germany-messerschmitt.scad b/board-games/axis-and-allies/fighter-germany-messerschmitt.scad index cd26d16..843daa5 100644 --- a/board-games/axis-and-allies/fighter-germany-messerschmitt.scad +++ b/board-games/axis-and-allies/fighter-germany-messerschmitt.scad @@ -74,4 +74,4 @@ module messerschmitt() { } } -messerschmidt(); +messerschmitt(); diff --git a/board-games/axis-and-allies/fighter-japan-mitsubishi-zero.scad b/board-games/axis-and-allies/fighter-japan-mitsubishi-zero.scad index f1294bc..5e51b54 100644 --- a/board-games/axis-and-allies/fighter-japan-mitsubishi-zero.scad +++ b/board-games/axis-and-allies/fighter-japan-mitsubishi-zero.scad @@ -1,4 +1,4 @@ -//$fn=50; +$fn=50; ep=0.1; // Create a module so you can call it like a normal OpenSCAD function, like @@ -54,4 +54,4 @@ module fighterZero() { } } -//fighterZero(); +fighterZero(); diff --git a/board-games/axis-and-allies/fighter-russia-yak-9.scad b/board-games/axis-and-allies/fighter-russia-yak-9.scad index 6017fc5..84dd876 100644 --- a/board-games/axis-and-allies/fighter-russia-yak-9.scad +++ b/board-games/axis-and-allies/fighter-russia-yak-9.scad @@ -1,4 +1,5 @@ -$fn=120; +//$fn=120; +$fn=16; ep=0.1; module reference() { diff --git a/board-games/axis-and-allies/unit-chip.scad b/board-games/axis-and-allies/unit-chip.scad new file mode 100644 index 0000000..2439afc --- /dev/null +++ b/board-games/axis-and-allies/unit-chip.scad @@ -0,0 +1,60 @@ +$fn = 256; +od = 21.5; +id = 15; +h = 2; +ep = 0.01; +recess = 0.8; + +tiltAngle = 60; + + +difference() { + union() { + translate([0, 0, (sin(tiltAngle) * od) / 2]) rotate([0, tiltAngle, 0]) union() { + difference() { + union() { + cylinder(d=od, h=h - recess + ep); + // Top protrustion + translate([0, 0, h - recess]) cylinder(d1=id + recess*2 + 0.2, d2=id, h=recess); + //translate([0, 0, h - recess]) cylinder(d=id, h=recess); + } + + // Bottom cut + color("red") translate([0, 0, -ep]) + cylinder(d1=id + recess*2 + 0.4, d2=id + 0.4, h=recess); + //cylinder(d=id + 0.8, h=recess); + } + } + + difference() { + translate([-(cos(tiltAngle) * (id - 2)) / 2 + 0.25, -0.4, 0]) + cube([cos(tiltAngle) * (id - 2), 0.8, sin(tiltAngle) * od]); + + color("blue") union() { + translate([0, 0, (sin(tiltAngle) * od) / 2]) + rotate([0, tiltAngle, 0]) + translate([-sin(tiltAngle) * od, -0.5, recess - 0.2]) + cube([2 * od, 1, od]); + + } + } + + translate([0.6, 0, (sin(tiltAngle) * od) / 2 - 1]) rotate([0, tiltAngle, 0]) + union() { + difference() { + color("pink") cylinder(d=od, h=h - recess + ep); + + color("blue") translate([-1, 0, -ep]) + union() { + cylinder(d=od, h=h - recess + 3*ep); + //translate([-2, (od + 2*ep) / 2, -ep]) + translate([-(od / 2) - 2, -(od + 2*ep) / 2, -ep]) + cube([od, od + 4*ep, h]); + } + } + } + + } + + translate([-od, -od/2, -2]) cube([2 * od, od, 2]); +}