discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

printing a punch out to avoid needing support

J
jon
Sun, Nov 8, 2015 1:57 PM

I needed to design a custom Arduino case with a rectangular cut out for
an LCD display.  The problem is that my printer does not print support
very well, and the LCD hole was on a vertical face (I print with the two
small power holes on the bottom).  I was concerned about printing the
bridge across the top of the LCD hole.

Instead, I filled the hole but cut out a channel around the hole so that
I could just press out the plastic that filled the LCD panel hole.  To
my surprise, it worked really nicely, first time.  See "perforation for
LCD" below.

Jon

// box sizes
bX = 65.5;
bY = 116;
bZ = 36;
wall = 2; // wall thickness
pcbThick = 2; // PCB thickness
pcbLen = bY; // length of PCB in slot
lcdX = 51;
lcdY = 72;
rch = 0.1;

module slot()
cube([wall + rch, pcbLen, pcbThick]);

module Top() {
translate([-1.5bX, 0, 0]) {
cube([bX + 4
wall, 3, bZ + 2wall]);
translate([2 * wall + rch, 3, wall + rch])
cube([bX - 2
rch, 2, bZ - 2*rch]);
}
}

module Box() {
difference() {
// exterior; X is thicker for PC board slot
cube([bX + 4wall, bY + wall, bZ + 2wall]);
// interior
translate([2wall, wall, wall])
cube([bX, bY + rch, bZ]);
// slots for PC board
translate([wall, bY - pcbLen + wall + rch, 32])
slot();
translate([2
wall + bX - rch, bY - pcbLen + wall + rch, 32])
slot();
// hole for LCD - deprecated
translate([wall + 5, wall + 16, bZ + wall - rch])
cube([lcdX, lcdY, wall + 2
rch]);
// perforation for LCD
xMargin = (bX + 4wall - lcdX) / 2;
difference() {
translate([xMargin, wall + 27, bZ + wall + 2
rch])
cube([lcdX, lcdY, wall - 2rch]);
translate([xMargin + 0.25, wall + 27 + 0.25, bZ + wall -
2
rch])
cube([lcdX - 0.5, lcdY - 0.5, wall + 4rch]);
}
// hole for hanging
translate([(bX + 4
wall)/2, 0.85*(bY + 2wall), -1])
rotate([0, 0, 90])
cylinder(h = 10, r = 3, $fn = 3);
// hole for USB
translate([14.5 + 2
wall, -1, 5 + wall])
cube([12.5, 11.25, 11]);
// hole for DC
translate([45.5 + 2*wall, -1, 4.5 + wall])
cube([9.5, 11.5, 11]);
}
}

Box();
Top();

I needed to design a custom Arduino case with a rectangular cut out for an LCD display. The problem is that my printer does not print support very well, and the LCD hole was on a vertical face (I print with the two small power holes on the bottom). I was concerned about printing the bridge across the top of the LCD hole. Instead, I filled the hole but cut out a channel around the hole so that I could just press out the plastic that filled the LCD panel hole. To my surprise, it worked really nicely, first time. See "perforation for LCD" below. Jon // box sizes bX = 65.5; bY = 116; bZ = 36; wall = 2; // wall thickness pcbThick = 2; // PCB thickness pcbLen = bY; // length of PCB in slot lcdX = 51; lcdY = 72; rch = 0.1; module slot() cube([wall + rch, pcbLen, pcbThick]); module Top() { translate([-1.5*bX, 0, 0]) { cube([bX + 4*wall, 3, bZ + 2*wall]); translate([2 * wall + rch, 3, wall + rch]) cube([bX - 2*rch, 2, bZ - 2*rch]); } } module Box() { difference() { // exterior; X is thicker for PC board slot cube([bX + 4*wall, bY + wall, bZ + 2*wall]); // interior translate([2*wall, wall, wall]) cube([bX, bY + rch, bZ]); // slots for PC board translate([wall, bY - pcbLen + wall + rch, 32]) slot(); translate([2*wall + bX - rch, bY - pcbLen + wall + rch, 32]) slot(); // hole for LCD - deprecated *translate([wall + 5, wall + 16, bZ + wall - rch]) cube([lcdX, lcdY, wall + 2*rch]); // perforation for LCD xMargin = (bX + 4*wall - lcdX) / 2; difference() { translate([xMargin, wall + 27, bZ + wall + 2*rch]) cube([lcdX, lcdY, wall - 2*rch]); translate([xMargin + 0.25, wall + 27 + 0.25, bZ + wall - 2*rch]) cube([lcdX - 0.5, lcdY - 0.5, wall + 4*rch]); } // hole for hanging translate([(bX + 4*wall)/2, 0.85*(bY + 2*wall), -1]) rotate([0, 0, 90]) cylinder(h = 10, r = 3, $fn = 3); // hole for USB translate([14.5 + 2*wall, -1, 5 + wall]) cube([12.5, 11.25, 11]); // hole for DC translate([45.5 + 2*wall, -1, 4.5 + wall]) cube([9.5, 11.5, 11]); } } Box(); Top();
DM
doug moen
Sun, Nov 8, 2015 4:03 PM

Nice!

On 8 November 2015 at 08:57, jon jon@jonbondy.com wrote:

I needed to design a custom Arduino case with a rectangular cut out for an
LCD display.  The problem is that my printer does not print support very
well, and the LCD hole was on a vertical face (I print with the two small
power holes on the bottom).  I was concerned about printing the bridge
across the top of the LCD hole.

Instead, I filled the hole but cut out a channel around the hole so that I
could just press out the plastic that filled the LCD panel hole.  To my
surprise, it worked really nicely, first time.  See "perforation for LCD"
below.

Jon

// box sizes
bX = 65.5;
bY = 116;
bZ = 36;
wall = 2; // wall thickness
pcbThick = 2; // PCB thickness
pcbLen = bY; // length of PCB in slot
lcdX = 51;
lcdY = 72;
rch = 0.1;

module slot()
cube([wall + rch, pcbLen, pcbThick]);

module Top() {
translate([-1.5bX, 0, 0]) {
cube([bX + 4
wall, 3, bZ + 2wall]);
translate([2 * wall + rch, 3, wall + rch])
cube([bX - 2
rch, 2, bZ - 2*rch]);
}
}

module Box() {
difference() {
// exterior; X is thicker for PC board slot
cube([bX + 4wall, bY + wall, bZ + 2wall]);
// interior
translate([2wall, wall, wall])
cube([bX, bY + rch, bZ]);
// slots for PC board
translate([wall, bY - pcbLen + wall + rch, 32])
slot();
translate([2
wall + bX - rch, bY - pcbLen + wall + rch, 32])
slot();
// hole for LCD - deprecated
translate([wall + 5, wall + 16, bZ + wall - rch])
cube([lcdX, lcdY, wall + 2
rch]);
// perforation for LCD
xMargin = (bX + 4wall - lcdX) / 2;
difference() {
translate([xMargin, wall + 27, bZ + wall + 2
rch])
cube([lcdX, lcdY, wall - 2rch]);
translate([xMargin + 0.25, wall + 27 + 0.25, bZ + wall -
2
rch])
cube([lcdX - 0.5, lcdY - 0.5, wall + 4rch]);
}
// hole for hanging
translate([(bX + 4
wall)/2, 0.85*(bY + 2wall), -1])
rotate([0, 0, 90])
cylinder(h = 10, r = 3, $fn = 3);
// hole for USB
translate([14.5 + 2
wall, -1, 5 + wall])
cube([12.5, 11.25, 11]);
// hole for DC
translate([45.5 + 2*wall, -1, 4.5 + wall])
cube([9.5, 11.5, 11]);
}
}

Box();
Top();


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

Nice! On 8 November 2015 at 08:57, jon <jon@jonbondy.com> wrote: > I needed to design a custom Arduino case with a rectangular cut out for an > LCD display. The problem is that my printer does not print support very > well, and the LCD hole was on a vertical face (I print with the two small > power holes on the bottom). I was concerned about printing the bridge > across the top of the LCD hole. > > Instead, I filled the hole but cut out a channel around the hole so that I > could just press out the plastic that filled the LCD panel hole. To my > surprise, it worked really nicely, first time. See "perforation for LCD" > below. > > Jon > > > // box sizes > bX = 65.5; > bY = 116; > bZ = 36; > wall = 2; // wall thickness > pcbThick = 2; // PCB thickness > pcbLen = bY; // length of PCB in slot > lcdX = 51; > lcdY = 72; > rch = 0.1; > > module slot() > cube([wall + rch, pcbLen, pcbThick]); > > module Top() { > translate([-1.5*bX, 0, 0]) { > cube([bX + 4*wall, 3, bZ + 2*wall]); > translate([2 * wall + rch, 3, wall + rch]) > cube([bX - 2*rch, 2, bZ - 2*rch]); > } > } > > module Box() { > difference() { > // exterior; X is thicker for PC board slot > cube([bX + 4*wall, bY + wall, bZ + 2*wall]); > // interior > translate([2*wall, wall, wall]) > cube([bX, bY + rch, bZ]); > // slots for PC board > translate([wall, bY - pcbLen + wall + rch, 32]) > slot(); > translate([2*wall + bX - rch, bY - pcbLen + wall + rch, 32]) > slot(); > // hole for LCD - deprecated > *translate([wall + 5, wall + 16, bZ + wall - rch]) > cube([lcdX, lcdY, wall + 2*rch]); > // perforation for LCD > xMargin = (bX + 4*wall - lcdX) / 2; > difference() { > translate([xMargin, wall + 27, bZ + wall + 2*rch]) > cube([lcdX, lcdY, wall - 2*rch]); > translate([xMargin + 0.25, wall + 27 + 0.25, bZ + wall - > 2*rch]) > cube([lcdX - 0.5, lcdY - 0.5, wall + 4*rch]); > } > // hole for hanging > translate([(bX + 4*wall)/2, 0.85*(bY + 2*wall), -1]) > rotate([0, 0, 90]) > cylinder(h = 10, r = 3, $fn = 3); > // hole for USB > translate([14.5 + 2*wall, -1, 5 + wall]) > cube([12.5, 11.25, 11]); > // hole for DC > translate([45.5 + 2*wall, -1, 4.5 + wall]) > cube([9.5, 11.5, 11]); > } > } > > Box(); > Top(); > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > > >
RW
Rob Ward
Sun, Nov 8, 2015 9:32 PM

Nice one!! Could be a very good practical suggestion to go in the SCAD
wiki somewhere?
Maybe there are other openSCAD tricks that people can share in the wiki
that makes 3-D printing projects more viable/versatile?

Robhttp://www.laketyersbeach.net.au/XP2XU.html

On 09/11/15 00:57, jon wrote:

// box sizes
bX = 65.5;
bY = 116;
bZ = 36;
wall = 2; // wall thickness
pcbThick = 2; // PCB thickness
pcbLen = bY; // length of PCB in slot
lcdX = 51;
lcdY = 72;
rch = 0.1;

module slot()
cube([wall + rch, pcbLen, pcbThick]);

module Top() {
translate([-1.5bX, 0, 0]) {
cube([bX + 4
wall, 3, bZ + 2wall]);
translate([2 * wall + rch, 3, wall + rch])
cube([bX - 2
rch, 2, bZ - 2*rch]);
}
}

module Box() {
difference() {
// exterior; X is thicker for PC board slot
cube([bX + 4wall, bY + wall, bZ + 2wall]);
// interior
translate([2wall, wall, wall])
cube([bX, bY + rch, bZ]);
// slots for PC board
translate([wall, bY - pcbLen + wall + rch, 32])
slot();
translate([2
wall + bX - rch, bY - pcbLen + wall + rch, 32])
slot();
// hole for LCD - deprecated
translate([wall + 5, wall + 16, bZ + wall - rch])
cube([lcdX, lcdY, wall + 2
rch]);
// perforation for LCD
xMargin = (bX + 4wall - lcdX) / 2;
difference() {
translate([xMargin, wall + 27, bZ + wall + 2
rch])
cube([lcdX, lcdY, wall - 2rch]);
translate([xMargin + 0.25, wall + 27 + 0.25, bZ + wall -
2
rch])
cube([lcdX - 0.5, lcdY - 0.5, wall + 4rch]);
}
// hole for hanging
translate([(bX + 4
wall)/2, 0.85*(bY + 2wall), -1])
rotate([0, 0, 90])
cylinder(h = 10, r = 3, $fn = 3);
// hole for USB
translate([14.5 + 2
wall, -1, 5 + wall])
cube([12.5, 11.25, 11]);
// hole for DC
translate([45.5 + 2*wall, -1, 4.5 + wall])
cube([9.5, 11.5, 11]);
}
}

Box();
Top();

Nice one!! Could be a very good practical suggestion to go in the SCAD wiki somewhere? Maybe there are other openSCAD tricks that people can share in the wiki that makes 3-D printing projects more viable/versatile? *Rob*<http://www.laketyersbeach.net.au/XP2XU.html> On 09/11/15 00:57, jon wrote: > // box sizes > bX = 65.5; > bY = 116; > bZ = 36; > wall = 2; // wall thickness > pcbThick = 2; // PCB thickness > pcbLen = bY; // length of PCB in slot > lcdX = 51; > lcdY = 72; > rch = 0.1; > > module slot() > cube([wall + rch, pcbLen, pcbThick]); > > module Top() { > translate([-1.5*bX, 0, 0]) { > cube([bX + 4*wall, 3, bZ + 2*wall]); > translate([2 * wall + rch, 3, wall + rch]) > cube([bX - 2*rch, 2, bZ - 2*rch]); > } > } > > module Box() { > difference() { > // exterior; X is thicker for PC board slot > cube([bX + 4*wall, bY + wall, bZ + 2*wall]); > // interior > translate([2*wall, wall, wall]) > cube([bX, bY + rch, bZ]); > // slots for PC board > translate([wall, bY - pcbLen + wall + rch, 32]) > slot(); > translate([2*wall + bX - rch, bY - pcbLen + wall + rch, 32]) > slot(); > // hole for LCD - deprecated > *translate([wall + 5, wall + 16, bZ + wall - rch]) > cube([lcdX, lcdY, wall + 2*rch]); > // perforation for LCD > xMargin = (bX + 4*wall - lcdX) / 2; > difference() { > translate([xMargin, wall + 27, bZ + wall + 2*rch]) > cube([lcdX, lcdY, wall - 2*rch]); > translate([xMargin + 0.25, wall + 27 + 0.25, bZ + wall - > 2*rch]) > cube([lcdX - 0.5, lcdY - 0.5, wall + 4*rch]); > } > // hole for hanging > translate([(bX + 4*wall)/2, 0.85*(bY + 2*wall), -1]) > rotate([0, 0, 90]) > cylinder(h = 10, r = 3, $fn = 3); > // hole for USB > translate([14.5 + 2*wall, -1, 5 + wall]) > cube([12.5, 11.25, 11]); > // hole for DC > translate([45.5 + 2*wall, -1, 4.5 + wall]) > cube([9.5, 11.5, 11]); > } > } > > Box(); > Top();
N
Neon22
Sun, Nov 8, 2015 9:55 PM

Nice idea. Visually it looks like this
http://forum.openscad.org/file/n14313/2elzecj.jpg

--
View this message in context: http://forum.openscad.org/printing-a-punch-out-to-avoid-needing-support-tp14303p14313.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

Nice idea. Visually it looks like this <http://forum.openscad.org/file/n14313/2elzecj.jpg> -- View this message in context: http://forum.openscad.org/printing-a-punch-out-to-avoid-needing-support-tp14303p14313.html Sent from the OpenSCAD mailing list archive at Nabble.com.
NH
nop head
Sun, Nov 8, 2015 10:41 PM

When I want to support something like that I start the support pillar on
the build platform and slant it inwards so it just meets the object below
the bridge. That way there is only one interface to be separated. I make it
hollow, two outlines thick, so it supports the outline of the bridge and
the ends of the infill. Then the infill can be normal diagonal fill and it
doesn't rely on the slicer detecting bridge direction.

On 8 November 2015 at 21:55, Neon22 mschafer@wireframe.biz wrote:

Nice idea. Visually it looks like this
http://forum.openscad.org/file/n14313/2elzecj.jpg

--
View this message in context:
http://forum.openscad.org/printing-a-punch-out-to-avoid-needing-support-tp14303p14313.html
Sent from the OpenSCAD mailing list archive at Nabble.com.


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

When I want to support something like that I start the support pillar on the build platform and slant it inwards so it just meets the object below the bridge. That way there is only one interface to be separated. I make it hollow, two outlines thick, so it supports the outline of the bridge and the ends of the infill. Then the infill can be normal diagonal fill and it doesn't rely on the slicer detecting bridge direction. On 8 November 2015 at 21:55, Neon22 <mschafer@wireframe.biz> wrote: > Nice idea. Visually it looks like this > <http://forum.openscad.org/file/n14313/2elzecj.jpg> > > > > -- > View this message in context: > http://forum.openscad.org/printing-a-punch-out-to-avoid-needing-support-tp14303p14313.html > Sent from the OpenSCAD mailing list archive at Nabble.com. > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >