The NEW Build Your Own Arcade Controls
Main => Everything Else => Topic started by: danny_galaga on April 16, 2020, 06:49:30 am
-
At the moment I'm kinda pushing sheet uphill with learning what I need to know. I have an old computer that needs updating so I'm just using the online version of sketchup on my partners laptop. I'm using Cura on her laptop to slice. I find it hard to tell if it will work properly or not even though there is a preview function in cura.
So the bit I'm having trouble with is making that lip work. you can see from the 3d drawing how it should be (if you look closely there are some artifacts from me not doing something right and I suppose it means it wont 3d print). The best ive managed so far is the pic attached. not a lip. just 4 little bumps. So ive tried using the push/pull by first making the rim 1mm, then pulling the lip up 1.6mm where id drawn a circle. ive also tried pulling the whole thing to 2.6mm, then pushing the face down 1.6mm, leaving a lip. I have a feeling my problem is somehow related to how i draw a circle for the rim but damned if i can see how else you would do it. I've also tried making a profile and using follow me. i think the 3d drawing ive attached is from that attempt..
what could i be doing wrong? What is the simplest way to do this?
-
What is the simplest way to do this?
Not sure how to do that in Sketchup, but it's easy to do in OpenSCAD with translates (moves) and six difference (cylinder - cylinder) commands.
- One for the body
- One for the lip
- Four for the screw mounts
I'll make a parametric version and post the code + an .STL for you -- LMK the diameters (outer and inner), thicknesses, and the center-to-center distance between adjacent screw-holes.
Scott
EDIT: Here's the code -- we just need to adjust the variables on lines 7-17 to suit your needs, render, and export to .STL. ;D
// Danny_Galaga part
/////////////////////////////
// Define variables
/////////////////////////////
ScrewDist = 60; // Center-to-center distance between adjacent screw-holes
ScrewThick = 2; // Screw tab thickness
ScrewOD = 14; // Screw tab outer diameter
ScrewLargeID = 8; // Screw tab large inner diameter
ScrewSmallID = 5; // Screw tab small inner diameter
// If no countersink is desired, use same value for both large and small inner diameters
BodyOD = 76; // Body outer diameter
BodyID = 60; // Body inner diameter
BodyThick = 2; // Body thickness
LipOD = 64; // Lip outer diameter
LipThick = 1.6; // Lip thickness (height above body, not total thickness)
// Hole diameter values need to be *very slightly* larger to account for the 180-sided polygon used to render circles -- see "undersized holes" at https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Primitive_Solids#cylinder
$fn=180; // Number of fragments (polygon sides) used to render a circle
/////////////////////////////
// Make the part
/////////////////////////////
difference() { // Screw tab 1
translate([ScrewDist/2, ScrewDist/2, ScrewThick/2])
cylinder(ScrewThick, d=ScrewOD, center=true);
translate([ScrewDist/2, ScrewDist/2, ScrewThick/2])
cylinder(h=ScrewThick+0.1, d1=ScrewLargeID, d2=ScrewSmallID, center=true);
} // End of screw tab 1
//
difference() { // Screw tab 2
translate([ScrewDist/2, -ScrewDist/2, ScrewThick/2])
cylinder(ScrewThick, d=ScrewOD, center=true);
translate([ScrewDist/2, -ScrewDist/2, ScrewThick/2])
cylinder(h=ScrewThick+0.1, d1=ScrewLargeID, d2=ScrewSmallID, center=true);
} // End of screw tab 2
//
difference() { // Screw tab 3
translate([-ScrewDist/2, -ScrewDist/2, ScrewThick/2])
cylinder(ScrewThick, d=ScrewOD, center=true);
translate([-ScrewDist/2, -ScrewDist/2, ScrewThick/2])
cylinder(h=ScrewThick+0.1, d1=ScrewLargeID, d2=ScrewSmallID, center=true);
} // End of screw tab 3
//
difference() { // Screw tab 4
translate([-ScrewDist/2, ScrewDist/2, ScrewThick/2])
cylinder(ScrewThick, d=ScrewOD, center=true);
translate([-ScrewDist/2, ScrewDist/2, ScrewThick/2])
cylinder(h=ScrewThick+0.1, d1=ScrewLargeID, d2=ScrewSmallID, center=true);
} // End of screw tab 4
//
difference() { // Body
translate([0, 0, BodyThick/2])
cylinder(BodyThick, d=BodyOD, center=true);
translate([0, 0, BodyThick/2])
cylinder(BodyThick+0.1, d=BodyID, center=true);
} // End of body
//
difference() { // Lip
translate([0, 0, BodyThick+LipThick/2])
cylinder(LipThick, d=LipOD, center=true);
translate([0, 0, BodyThick+LipThick/2])
cylinder(LipThick+0.1, d=BodyID, center=true);
} // End of lip
//
-
Same, I dont use sketchup that often, I am mostly in Fusion 360. But this would be a really easy model to make in Tinkercad (https://www.tinkercad.com/) Free browser CAD app.
If you share some dimensions I could right up a .stl for you
-
I'm using Cura on her laptop to slice. I find it hard to tell if it will work properly or not even though there is a preview function in cura.
Have you tried changing the view mode to "layers"?
That will show you the path that the print head follows, where it extrudes, where it moves without extruding, and where it lifts.
- There's a vertical slider so you can see each individual layer of the print.
If the lip is too thin compared to the nozzle width, Cura may be ignoring the parts where it can't calculate a smooth/complete path for your printer to poop plastic. :lol
Scott
-
What is the simplest way to do this?
Not sure how to do that in Sketchup, but it's easy to do in OpenSCAD with translates (moves) and six difference (cylinder - cylinder) commands.
- One for the body
- One for the lip
- Four for the screw mounts
I'll make a parametric version and post the code + an .STL for you -- LMK the diameters (outer and inner), thicknesses, and the center-to-center distance between adjacent screw-holes.
Scott
EDIT: Here's the code -- we just need to adjust the variables on lines 7-17 to suit your needs, render, and export to .STL. ;D
// Danny_Galaga part
/////////////////////////////
// Define variables
/////////////////////////////
ScrewDist = 60; // Center-to-center distance between adjacent screw-holes
ScrewThick = 2; // Screw tab thickness
ScrewOD = 14; // Screw tab outer diameter
ScrewLargeID = 8; // Screw tab large inner diameter
ScrewSmallID = 5; // Screw tab small inner diameter
// If no countersink is desired, use same value for both large and small inner diameters
BodyOD = 76; // Body outer diameter
BodyID = 60; // Body inner diameter
BodyThick = 2; // Body thickness
LipOD = 64; // Lip outer diameter
LipThick = 1.6; // Lip thickness (height above body, not total thickness)
// Hole diameter values need to be *very slightly* larger to account for the 180-sided polygon used to render circles -- see "undersized holes" at https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Primitive_Solids#cylinder
$fn=180; // Number of fragments (polygon sides) used to render a circle
/////////////////////////////
// Make the part
/////////////////////////////
difference() { // Screw tab 1
translate([ScrewDist/2, ScrewDist/2, ScrewThick/2])
cylinder(ScrewThick, d=ScrewOD, center=true);
translate([ScrewDist/2, ScrewDist/2, ScrewThick/2])
cylinder(h=ScrewThick+0.1, d1=ScrewLargeID, d2=ScrewSmallID, center=true);
} // End of screw tab 1
//
difference() { // Screw tab 2
translate([ScrewDist/2, -ScrewDist/2, ScrewThick/2])
cylinder(ScrewThick, d=ScrewOD, center=true);
translate([ScrewDist/2, -ScrewDist/2, ScrewThick/2])
cylinder(h=ScrewThick+0.1, d1=ScrewLargeID, d2=ScrewSmallID, center=true);
} // End of screw tab 2
//
difference() { // Screw tab 3
translate([-ScrewDist/2, -ScrewDist/2, ScrewThick/2])
cylinder(ScrewThick, d=ScrewOD, center=true);
translate([-ScrewDist/2, -ScrewDist/2, ScrewThick/2])
cylinder(h=ScrewThick+0.1, d1=ScrewLargeID, d2=ScrewSmallID, center=true);
} // End of screw tab 3
//
difference() { // Screw tab 4
translate([-ScrewDist/2, ScrewDist/2, ScrewThick/2])
cylinder(ScrewThick, d=ScrewOD, center=true);
translate([-ScrewDist/2, ScrewDist/2, ScrewThick/2])
cylinder(h=ScrewThick+0.1, d1=ScrewLargeID, d2=ScrewSmallID, center=true);
} // End of screw tab 4
//
difference() { // Body
translate([0, 0, BodyThick/2])
cylinder(BodyThick, d=BodyOD, center=true);
translate([0, 0, BodyThick/2])
cylinder(BodyThick+0.1, d=BodyID, center=true);
} // End of body
//
difference() { // Lip
translate([0, 0, BodyThick+LipThick/2])
cylinder(LipThick, d=LipOD, center=true);
translate([0, 0, BodyThick+LipThick/2])
cylinder(LipThick+0.1, d=BodyID, center=true);
} // End of lip
//
Thanks! That looks a bit too testicle for me as I really need a visual cue but if I'm stuck I'll revisit and maybe send you the dimensions.
-
Same, I dont use sketchup that often, I am mostly in Fusion 360. But this would be a really easy model to make in Tinkercad (https://www.tinkercad.com/) Free browser CAD app.
If you share some dimensions I could right up a .stl for you
Thanks. I had a look at tinkercad and decided to sign up. told me that email is already in use. sure enough i had signed up to it previously! No idea why i didnt persist with it because it looks like it works even on my 8 year old mac with its years out of date browser! i will play around with the tutorial to make sure i dont gloss over anything obvious (which i obviously have done with sketchup- my shape is not complicated yet it doesnt work.
Right now i have some other things i need to get done, including the thing i am making these parts for
http://forum.arcadecontrols.com/index.php/topic,162506.0.html
Here is an earlier test I did (only 24 sides, later increased to 100 for the large circles which was plenny smooth enough). The MDF is not the final panel, just something to make mistakes on until im ready.