Several minor improvements:

- Changed "reset button" to a small round button, while the three control
buttons keep their larger/rectangular shape. The reset button is barely
needed. The round shape avoids confusion when operating the device.
- Minor correction of the proportions of the outer shell - to match the
real Disk II more closely.
This commit is contained in:
ThorstenB 2023-09-22 15:21:55 +02:00
parent 33743cd6f7
commit 93cf68a780
9 changed files with 35 additions and 6 deletions

View File

@ -16,6 +16,22 @@ module button()
rotate([0,180,0]) screwPost(ButtonPegDepth, ButtonPegDiameter+2, ButtonPegDiameter, ButtonPegDepth, 1); rotate([0,180,0]) screwPost(ButtonPegDepth, ButtonPegDiameter+2, ButtonPegDiameter, ButtonPegDepth, 1);
} }
// single round/reset button
module resetButton()
{
$fn = 30;
// front part of the button
translate([0, 0, 0])
cylinder(r=(ButtonXWidth-3)/2, ButonZDepth);
// slightly larger frame around the buttons rear, to keep the button from falling through the panel
cylinder(r=(ButtonXWidth-3+ButtonLedgeWidth)/2, SKIN);
// connector for the button's peg
rotate([0,180,0]) screwPost(ButtonPegDepth, ButtonPegDiameter+2, ButtonPegDiameter, ButtonPegDepth, 1);
}
module makeCableStrainRelief() module makeCableStrainRelief()
{ {
StrainReliefHeight=4+SKIN; StrainReliefHeight=4+SKIN;

View File

@ -13,6 +13,16 @@ module buttonCutout()
roundedCube(buttonXWidth, buttonYHeight, SKIN, ButtonCorners); roundedCube(buttonXWidth, buttonYHeight, SKIN, ButtonCorners);
} }
// front panel hole for a round button
module resetButtonCutout()
{
// add 1mm spacing, so the button moves freely (results in 0.5mm clearance on each side)
buttonWidth = ButtonXWidth-3+0.5;
$fn = 20;
cylinder(r=buttonWidth/2, SKIN);
}
// test / unused // test / unused
module buttonFrame() module buttonFrame()
{ {
@ -56,7 +66,7 @@ module panelCutouts()
{ {
translate([ButtonXOfs+ButtonXWidth/2+(ButtonXSpacing)*x, translate([ButtonXOfs+ButtonXWidth/2+(ButtonXSpacing)*x,
BoxY_Height-ButtonYHeight/2-ButtonYOfs-(ButtonYSpacing)*y, 0]) BoxY_Height-ButtonYHeight/2-ButtonYOfs-(ButtonYSpacing)*y, 0])
buttonCutout(); resetButtonCutout();
} }
} }

View File

@ -10,13 +10,13 @@ SKIN = 1.0; // [1: 0.1: 5]
/* [Hidden] */ /* [Hidden] */
// Width (X) of the box // Width (X) of the box
BoxX_Width = 155*ScalingFactor; // [60: 145] BoxX_Width = 155.5*ScalingFactor; // [60: 145]
// Height (Y) of the box // Height (Y) of the box
BoxY_Height = 90*ScalingFactor; // [10: 100] BoxY_Height = 91*ScalingFactor; // [10: 100]
// Depth (Z) of the box // Depth (Z) of the box
BoxZ_Depth = 210*ScalingFactor; // [10: 200] BoxZ_Depth = 219*ScalingFactor; // [10: 200]
// Width of the ventilation cut // Width of the ventilation cut
VentilationWidth = 4*ScalingFactor; VentilationWidth = 4*ScalingFactor;
@ -146,7 +146,10 @@ module main()
{ {
for (x = [0,1]) for (x = [0,1])
for (y = [0,1]) for (y = [0,1])
if ((x!=0)||(y!=0))
translate([x*ButtonXSpacing, y*ButtonYSpacing, -ButonZDepth]) button(); translate([x*ButtonXSpacing, y*ButtonYSpacing, -ButonZDepth]) button();
else
translate([x*ButtonXSpacing, y*ButtonYSpacing, -ButonZDepth]) resetButton();
translate([-15, 20, 0]) rotate([0,0,90]) makeCableStrainRelief(); translate([-15, 20, 0]) rotate([0,0,90]) makeCableStrainRelief();
translate([30, -15, 0]) makeRearPcbFeet(); translate([30, -15, 0]) makeRearPcbFeet();
} }

View File

@ -18,7 +18,7 @@ LEDs = "one"; // [one:One / Activity LED,two:Both / Activity and Power LEDs]
/* [Internals] */ /* [Internals] */
// Base board imprint // Base board imprint
IMPRINT = "MADE IN GERMANY"; // 30 IMPRINT = "TCB 9/2023"; // 30
// Distance of the components (when showing 'exploded' elements) // Distance of the components (when showing 'exploded' elements)
SEPARATION = 30; // [0: 1: 100] SEPARATION = 30; // [0: 1: 100]

Binary file not shown.

Binary file not shown.

Binary file not shown.