Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.
Tag: Improvements
Making the world a better place, one piece at a time
A sheet of craft adhesive holds them together; stick a generous rectangle of adhesive on the cork, then cut them at the same time. However, given the irregular perimeter, it’s basically impossible (for me, anyway) to align the cork + adhesive with the printed frame.
A single-use fixture made from corrugated cardboard make that task trivially easy:
Printed Coaster – cork alignment fixture – detail
The LightBurn layout shows the cork layer and the two fixture pieces:
The cork shape is offset 0.5 mm inward from the Perimeter shape, but I found offsetting the cardboard cut by only 0.3 mm inward produced a snug fit around the cork. The other piece of cardboard gets cut with the exact Perimeter shape and no offset, with the laser kerf providing just enough clearance for a very snug fit on the printed shape.
Align the two pieces of cardboard by eye to match their inner shapes as shown in the picture, tape them together, and the fixture is ready. In principle, the outer edges should exactly coincide: Trust, but verify.
Peel off the craft adhesive paper and put the cork in the bottom of the fixture. The cork comes off a roll and really wants to roll up again, making the masking tape holding it flat mandatory:
Printed Coasters – cork alignment template
Yes, that’s a different coaster.
Flip the fixture over, drop the coaster in place, press firmly together, peel the tape, and pull out the finished coaster:
Printed Coasters – white PETG finished
The fixture goes in the recycling bin, as those fragments will never pass this way again.
Create the perimeter path as an offset around all the fragments in LightBurn
Because the fragments have irregular shapes and spacing, creating the perimeter path may also produce small snippets of orphaned geometry which must be manually selected and deleted. I also edit the path to remove very narrow channels between adjacent fragments.
Which is why you can’t generate that path automatically:
Printed Coaster Layout – 100 mm Set G – LightBurn perimeter geometry
Because LightBurn doesn’t have the ability to name the various paths, the next step requires Inkscape. After importing the LightBurn paths saved as an SVG, group all the fragments and name the group Fragments, then name the perimeter path Perimeter:
Printed Coaster Layout – 100 mm Set G – Inkscape layer and IDs
Inkscape still crashes unpredictably while doing what seems to be a simple process, which may be due to the tremendous number of points in the hand-traced fragment outlines. Unfortunately, simplifying the curves in either LightBurn or Inkscape tends to round off the extreme points and increases the likelihood of the fragment not fitting into its recess.
OpenSCAD generates all the other features in the solid model with paths plucked from that file:
include <BOSL2/std.scad>
fn = "Printed Fragment Coaster - 100 mm Set G - Inkscape paths.svg";
FragmentThick = 3.8;
BaseThick = 1.0;
RimHeight = 1.0;
union() {
linear_extrude(h=BaseThick)
import(fn,id="Perimeter");
color("Green")
up(BaseThick)
linear_extrude(h=FragmentThick)
difference() {
import(fn,id="Perimeter");
offset(delta=0.2)
import(fn,id="Fragments");
}
color("Red")
up(BaseThick)
linear_extrude(h=FragmentThick + RimHeight)
difference() {
offset(delta=2.5)
import(fn,id="Fragments");
offset(delta=1.2)
import(fn,id="Fragments");
}
}
The Perimeter path defines the overall shape of the coaster as a 1.0 mm thick slab, visible as the white-ish line around the edge and at the bottom of all the fragment recesses.
Atop that, the green shape is the same Perimeter shape, with the Fragment shapes removed after the offset() operation enlarges them by 0.2 mm to ensure enough clearance.
Finally, the red walls containing the epoxy above each fragment are 1.3 mm wide, the difference of the two offset() operations applied to the Fragments.
Because the outer edge of the wall is 2.5 mm away from the edge of its fragment:
The Perimeter path must be offset at least 2.5 mm from the Fragments in LightBurn. I used 4.0 mm to produce a small lip around the outside edge of the coaster.
The fragment shapes must be placed at least 5.0 mm apart to prevent the walls from overlapping. I set Deepnest to exactly 5.0 mm spacing, but you can see a few places where the fragments come too close together. I think this happens due to an approximation deepnest uses while rotating the paths, but it may be better to manually adjust the errant fragments than increase the average space.
While this still requires manually tracing the glass fragments and fiddling a bit with Inkscape, the overall process isn’t nearly as burdensome as getting all the offsets correct every time.
However, some oddities remain. OpenSCAD produced this result during the first pass through the process for this coaster:
Printed Coaster Layout – 100 mm Set G – spurious point
As far as I can tell, the spurious point came from a numeric effect, because telling Inkscape to store only five decimal places in the SVG file reduced the spike to the small bump seen in the first picture. I cannot replicate that effect using the same files and have no explanation.
Which worked reasonably well for coasters with a rim around the perimeter to hold in the epoxy covering the entire top surface:
Printed Coaster Layout – solid model
The problem with smooth-top coasters is this:
Printed Coasters – epoxy fill
A slightly sweaty or wet mug can get a firm suction lock on that smooth top, lift the coaster off the table, then drop it into a plate of food.
So I put a rim around each fragment to separate the epoxy surfaces and break the suction lock:
Printed Coaster Layout – 5 inch Set B
Each recess has a narrow inner lip as a border inside the raised perimeter, which may not be strictly necessary, but IMO nicely sets off the fragments:
Smashed Glass 3D Printed Coaster – Set B
Each fragment must be spaced far enough from its three neighbors to allow for those lips and perimeter walls, which requires more fussing than I’m willing to apply on a regular basis.
So fetch & install Deepnest to fuss automagically. The program hasn’t been updated in years and the Linux version segfaults on my Manjaro boxen, but the Windows version runs fine on the Mini-PC I use for LightBurn:
Deepnest Fragment Set E – in progress
The Mini-PC runs maxi-hot, though, so at some point I must install Deepnest on the Token Windows Laptop for more grunt.
Deepnest requires a large shape representing the “sheet” in which to arrange the other pieces, so:
Import the fragments outlines into LightBurn
Create a suitable circle
Export circle + fragments as an SVG file
Import into Deepnest
Set 5 mm spacing & other suitable parameters
Let it grind until a nice arrangement pops out
Save as Yet Another SVG file
The output SVG has the fragment outlines arranged to fit within the circle, but does not include the circle. That’s fine, because the next step involves creating a conformal perimeter around the entire group of fragments and preparing it for input to OpenSCAD to create a solid model:
Printed Coaster Layout – 5 inch Set C – solid model
The first step in adding a filter bag to the dryer vent requires a convenient way to attach it. Because we live in the future, a couple of hours of 3D printing produced something that might work:
Clothes Dryer Vent Filter Snout – installed
It’s made of TPU, which is bendy enough to ease two tabs into the two outermost slots you can see and a corresponding pair of tabs into slots on the wall side.
The solid model shows the part snapped inside the vent:
Clothes Dryer Vent Filter Snout – OpenSCAD show
The flared bottom takes something like three hours to print (TPU likes slooow extrusion), so I did the top ring first to verify the tab fit:
Clothes Dryer Vent Filter Snout – OpenSCAD build
Both parts come from hull() surfaces wrapped around quartets of thin circles at the proper positions; the difference() of two slightly different hulls produces thin shells.
A thin layer of JB PlasticBonder urethane adhesive, which bonds TPU like glue, holds the two parts together. I used the tan variant and, while it’s not a perfect match, it definitely looks better than black. Not that it matters in this case.
Mary will sew up a bag with a drawstring holding it to the snout. If everything survives the performance tests, printing the whole snout in one four-hour job will both make sense and eliminate an uneven joint that’s sure to be a lint-catcher.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
A year after using up the rest of the stain that Came With The House™, I pressure-washed the worst deck staining job into submission:
Deck restaining – pressure washed
Given the variegated ugly remaining, a “solid” color seemed appropriate. Based on web color samples, we independently decided “Cedar Naturaltone” was the least awful choice:
Deck restaining – Behr Cedar Naturaltone
I am not an expert on woods, but IMO that ain’t close to any real substance named “cedar”.
The instructions insist two thin coats will produce a better outcome than one thick coat, so I did my best:
Deck restaining – starting
The first coat dried slightly less orange than I feared:
Deck restaining – first coat
After the second coat, it’s not really pumpkin out there, but it’s pretty close. The phone camera + GIMP seem unable to cope with the situation, so trust me when I say that’s a sheet of pure white EVA foam:
Deck restaining – not pumpkin
I suspect the stain / paint will outlive the deck structure, but now it’s uniformly ugly.
The laser-engraved guide lines confused GIMP’s edge detection to no end.
It came from a large sheet of 1 mm acrylic, formerly a poster cover, bearing scars of its long history in the “might be useful someday” stash. I wondered if I could remove enough scratches and scuffs to ease GIMP’s workload.
Stipulated: I am a cheapskate.
Laser-cut a suitable sheet and sand both sides with 220 grit paper to what looked like a uniform surface:
Acrylic polishing – 220
Continue scrubbing with 400, 800, 1000, 1500, and 3000 grit papers:
Acrylic polishing – 3000
Massage it with Novus Polish 3, 2, and 1:
Acrylic polishing – Novus 1
At best, it’s more translucent than transparent and definitely not an optical-quality polishing job:
Acrylic polishing – translucency
Fortunately, I need not care about the edges, because it goes in a square frame with a circular cutout.
Tape it into that cardboard frame, scan it against a black background, and blow out the contrast to show I should have started with 100 grit paper and paid more attention to that “uniform surface” thing:
Acrylic polishing – scratches
In use, though, it doesn’t look all that bad:
Fragment layout – 5in Set B – scan tweaked
Come to find out those glittery cracks between all the cuboids still confuse GIMP’s edge detection, but at least hand-tracing the outline is easier without all the lines.
The entire “polishing” series as a slideshow for your amusement: