Taking Distance Based CAD To The Next Level

For those who model CAD models regularly, a pair of calipers is essential as it allows reasonably accurate measurements to fit a specific part. However, [Jason Harris] is taking that concept to the next level with a signed distance function-based CAD tool, SDFX.

For those who don’t know, Signed Distance Functions can tell you from a given point how close the nearest part of the model is. The model is represented as a single function that offers some exciting benefits. For instance, chamfering and fileting are often quite complex in traditional CAD programs and trivial in an SDF setting. SDFX is a golang library that allows you to write golang programs to describe the model. OpenSCAD is a favorite of Hackaday as it is a beautiful parametric code-first CAD package. But the syntax and language are somewhat cludgy, to say the best. The advantage of using golang rather than a DSL is that you can use all the niceties that a full-featured language brings. For example, you can export multiple objects, make network requests, and interface with GUI libraries to recreate something like the customizer for OpenSCAD.

Objects are rendered to STL using Marching squares. Then, they can be printed in whatever slicing software suits your fancy. It’s an excellent project with a great API and almost a hundred examples.

The code is available on GitHub under an MIT License.

IRL minesweeper render showing game on top of a campaign map

Meat-Space Minesweeper Game Hits The Mark

Hackers of a certain age will remember that before the Internet was available to distract us from our work, we had to find our own fun. Luckily, Windows was there to come to our aid, in the shape of “Minesweeper” – a classic of the age that involved figuring out/occasionally just guessing where a selection of mines had been hidden on a grid of squares via numerical clues to their proximity. For those missing such simple times, [Martin] has brought the game into physical space with his 3D-printed travel-game version.

GIF showing how to play IRL minesweeper game

A number of pre-determined game fields can be inserted (by a friend… or enemy, we presume!) and covered by tiles, which the mine-clearing player can then remove with their plastic shovel to reveal the clues. The aim of the game is to avoid uncovering a bomb, and to place flags where the bombs are hiding.

Aficionados of the game may remember that a little guessing was often inevitable, which sometimes ended in disaster. On the computer version, this merely entailed clicking the Smiley Face button for a new game, but in this case would require a new sheet to be inserted. Blank sheet templates are included for producing your own fiendish bomb-sites, and all the pieces pack away neatly into a handy clam-shell design that would be ideal for long car journeys when the data package on the kids’ tablets has run out.

We wonder what other classic games may lend themselves to a travel remake and look forward to the first 3D-printed travel set of Doom with anticipation!

If you’re above solving your own Minesweeper games, then you can learn how to write a solver in Java here. Continue reading “Meat-Space Minesweeper Game Hits The Mark”

3D Printable Bearings That Actually Work, No CAD Tweaking Required

3D printing bearings with an FDM printer can be an iffy endeavor, but it doesn’t have to be that way. [Matvey Kukuy]’s Ultimate 608 Bearing with Calibration Kit is everything you’ll need to dial in and print functional 608-style print-in-place bearings on your 3D printer.

Calibration pieces have a handy label attached for identification.

[Matvey] found that there are two key tolerances to get right. And by “get right” he means “empirically determine which works best with your filament and printer”. But don’t worry, there’s no need to get into CAD work to make that happen. [Matvey] has exported a staggering 64 slightly different calibration models (and their matching production versions) along with a printable testing tool. With the help of a step-by-step process that resembles a sort of binary search, one can take the Goldilocks approach to find just the right model for one’s filament and printer in a minimum of steps.

There’s one more tip as well: [Matvey] says that once you determine the best model to use, don’t fill the print bed with copies, unless you want a bed full of possibly non-working bearings! Why is this? A 3D printer prints a bed full of objects slightly differently than it prints a single one, and since the margin for error on the perfectly-selected bearing is so small, that can be enough to keep it from working. To print more than one bearing at a time, position them far from each other and use something like PrusaSlicer’s sequential printing, which is an option to print each object completely before starting the next one.

[Matvey]’s own best results came from printing with PLA at a layer height of 0.16 mm. He also used grease in the bearing to improve performance and extend its life. He doesn’t specify what kind of grease he used, but we’d recommend a plastic-safe grease like PTFE-based Super Lube.

Have you used 3D printed bearings in a project? Would [Matvey]’s design be helpful to you? Let us know all about it in the comments.

Art of 3D printer in the middle of printing a Hackaday Jolly Wrencher logo

PrusaSlicer Now Imports STEP Files, Here’s Why That’s A Big Deal

PrusaSlicer has a new feature: the ability to import a CAD model for 3D printing. Starting in version 2.5.0-beta1, PrusaSlicer can import STEP format 3D models. An imported STEP file is converted to a triangle mesh on import (making it much like a typical .stl or .3mf file) which means that slicing all happens as one would normally expect. This is pretty exciting news, because one is not normally able to drop a CAD format 3D model directly into a slicer. With this change, one can now drag .stp or .step files directly into PrusaSlicer for printing.

First, a brief recap. In the world of 3D models there are two basic kinds: meshes and CAD models. The two work very differently, especially when it comes to editing. 3D printing has a long history of using .stl files (which are meshes) but making engineering-type changes to such files is difficult. Altering the size of a thread or changing mounting holes in a CAD model is easy. On an STL, it is not. This leads to awkward workarounds when engineering-type changes are needed on STLs. STEP, on the other hand, is a format widely supported by CAD programs, and can now be understood by PrusaSlicer directly. Continue reading “PrusaSlicer Now Imports STEP Files, Here’s Why That’s A Big Deal”

Adding Perlin Noise To 3D Printed Parts, With Python

Want to add a bit of visual flair to 3D printed parts that goes maybe a little more than skin-deep? That’s exactly what [volzo] was after, which led him to create a Python script capable of generating a chunk of Perlin noise, rendered as an STL file. What does that look like? An unpredictably-random landscape of hills and valleys.

The script can give printed parts a more appealing finish.

The idea is to modify a 3D model with the results of the script, leaving one with something a bit more interesting than a boring, flat surface. [volzo] explains how to use OpenSCAD to do exactly that, but it’s also possible to import the STL file the script creates into the CAD program of one’s choice and make the modifications there with some boolean operations.

If the effect looks a bit bit familiar, it’s likely because he used the method to design part of the 3D printed “toy” camera that we featured recently.

[volzo]’s method isn’t entirely plug and play, but it could still be a handy thing to keep in your back pocket when designing your next part. There are also other ways to modify the surfaces of prints for better aesthetics; we’ve previously covered velocity painting (also known as ‘tattooing’ in some slicers) and also fuzzy skin.

Perlin noise was created by [Ken Perlin] in the early 80s while working on the original Tron movie as a way to help generate more realistic-looking textures. It still fulfills that artistic function in a variety of ways, even today.

3D ASCII art

Online Tool Turns STLs Into 3D ASCII Art

If you look hard enough, most of the projects we feature on these pages have some practical value. They may seem frivolous, but there’s usually something that compelled the hacker to commit time and effort to its doing. That doesn’t mean we don’t get our share of just-for-funsies projects, of course, which certainly describes this online 3D ASCII art generator.

But wait — maybe that’s not quite right. After all, [Andrew Sink] put a lot of time into the code for this, and for its predecessor, his automatic 3D low-poly generator. That project led to the current work, which like before takes an STL model as input, this time turning it into an ASCII art render. The character set used for shading the model is customizable; with the default set, the shading is surprisingly good, though. You can also swap to a black-on-white theme if you like, navigate around the model with the mouse, and even export the ASCII art as either a PNG or as a raw text file, no doubt suitable to send to your tractor-feed printer.

[Andrew]’s code, which is all up on GitHub, makes liberal use of the three.js library, so maybe stretching his 3D JavaScript skills is really the hidden practical aspect of this one. Not that it needs one — we think it’s cool just for the gee-whiz factor.

Continue reading “Online Tool Turns STLs Into 3D ASCII Art”

A 3D – To – 2D Converter To Make Plots From STLs.

We’ve become used to finding models on websites such as Thingiverse and downloading them to print. After all, whose hackerspace doesn’t have a pile of novelty prints? How about printing them on paper? For the plotter enthusiast that can be particularly annoying. Never fear, [Trammell Hudson] is here with an online 3D to 2D converter just for plotters. [Trammell’s] creation makes a vector image suitable for a plotter while eliminating spurious behind-the-scenes lines.

Plotter drawings are the pen-and-paper equivalent of a vector CRT display, in which the graphics are printed as continuous strokes. Rendering a 3D model as a wireframe for a plotter requires the removal of any pen strokes that comes from the 3D space behind the surface in view. Loading various models into the web page seemed to do a pretty good job of this, though the ubiquitous Benchy 3d printer test model lived up to its billing as a torture test in taking several minutes to render.

As anyone who has followed the #PlotterTwitter social media hashtag will know, there is a considerable community of pen plotter enthusiasts who are pushing the boundaries of what their machines can do. [Trammell] has posted his plotter producing some of the work created with this tool, and we can see that it’s likely to work better with lower-poly models.

We’ve featured a lot of plotters over the years as they seem to be a popular project. If you’d like one then they can be made from the most available parts, including those scavenged from scrap DVD drives, or printers.