The Noble Effort To Put OpenSCAD In The Browser

In a world of CAD packages with arcane or unfriendly interfaces there’s a stand-out player that’s remarkable because it has no interface. OpenSCAD is a CAD package for coders, in which all design elements are created in a scripting language rather than graphically. It’s maybe not for everyone but it has a significant following, and its reach has been extended further as you can now run it from within a modern web browser.

The origins of this project can be tracked back to August of 2021, when when Autodrop3D’s [mmiscool] offered a sizable bounty for anyone willing to port the parametric CAD modeler to web assembly. Developer [Dominick Schroer] ultimately answered the call with openscad-wasm, which implements the core of OpenSCAD as a JavaScript ES6 module. From there, it just needed to get paired with a user interface, and off to the cloud we go.

Opening it up and giving it a go, we found it to be a very usable OpenSCAD version, albeit a little slower to render than the desktop equivalent on a mediocre laptop. We didn’t try exporting and printing an STL, but so far it has given us no reason to believe it wouldn’t be every bit as useful as the version you’re used to.

But wait, there’s more! Parallel to this effort, [Olivier Chafik] has also been working on his own idea of what OpenSCAD in the web should be. He’s using the same core developed by [Dominick], but has combined it with the Monaco editor from Microsoft and a Javascript STL viewer. Despite being very similar, we’re happy to report there’s no rivalry here; in fact, according to the video after the break, it sounds like two the projects have already swapped a bit of code.

The move among desktop applications to move into the browser and often into a pay-to-play cloud has seemed relentless over recent years, so it’s pleasing to see a rare example of a browser migration that’s open-source. It has the handy effect of bringing the CAD package to platforms such as tablets or Chromebooks which wouldn’t normally be an OpenSCAD platform, and this we like, a lot.

Continue reading “The Noble Effort To Put OpenSCAD In The Browser”

Make Your Own Tabletop Game Organizers With Online Tool

There is a vibrant cottage industry built around selling accessories to improve the storage and organization of tabletop games, but the more DIY-minded will definitely appreciate [Steve Genoud]’s deckinabox tool, which can create either 3D-printable designs, or ones more suited to folded paper or cardstock. Making your own organizer can be as satisfying as it is economical, and [Steve]’s tool aims to make customization simple and easy.

The tool can also generate models for folded paper or cardstock.

The interface for customizing the 3D-printable token tray, for example, begins with a simple filleted receptacle which one can split into additional regions by adding horizontal or vertical separators. The default is to split a given region down the middle, but every dimension can of course be specified.  Things like filleting of edges (for easier token scooping) and other details are all handled automatically. A handy 3D view gives a live render of the design after every change.

[Steve] has a blog post that goes into some added detail about how the tool was made, and it makes heavy use of replicad, [Steve]’s own library for generating browser-based 3D models in code. Intrigued by the idea of generating 3D models programmatically, and want to use it to make your own models? Don’t forget to also check out OpenSCAD; chances are it’s both easier to use and more capable than one might think.

This Parametric Project Box Generator Is Super Easy

When it comes to taking an idea from concept to prototype reality, depending on the type of project, there can be quite a few sub-tasks along the way. Take for example, your latest electronic widget design. You’ve finished the schematic, and the PCB layout is a work of art (if you do say so yourself) but having that kicking around on the desk unprotected with wires dangling is not the end game. Now you’ve got to make an enclosure of some kind, and I don’t know about you, but this is the bit where this scribe struggles a little to get something to fit nice. Even if you’ve got the latest 3D printer dialed in to within a gnat’s whisker of perfection, you’ve still got to come up with the design, and those dimensions need to be really accurate. So, for those of us who are great at the PCB, but suck at the enclosure, [Willem Aandewiel] has been busy making the tool just for you, with his PCB-orientated Yet Another Parametric Projectbox generator (YAPP.)

Defining the PCB mounting points w.r.t. the PCB outline

Without hesitation you can head over to the YAPP GitHub, grab that sweet OpenSCAD code, and get cracking with the demos. Provided for your convenience are a number of examples for enclosing some common items, such as Arduinos and ESP32 modules, so you can use those as a springboard to get your own code in place. YAPP works based off the PCB — by specifying programmatically since this is OpenSCAD — outer dimensions, mounting post locations first. Next you define openings in the six faces of the box, and the tool happily spits out a platter with the base and lid ready to drop into Cura (or your slicer of choice) What could be easier?

End face cutouts

And before you start on non-rectangular designs, this is a rectangular box generator for rectangular PCBs. That is all this is designed for, and as far as we can tell, it does that one job well.

Of course, this is by no means the first enclosure generator to grace these pages, far from it. Here’s one for starters. If you’re here for tips to help make better designs, check this out, and finally 3DHubs also has a nice guide for you. Happy printing!

3D Printed Magnetic Switches Promise Truly Custom Keyboards

While most people are happy to type away at whatever keyboard their machine came with, for the keyboard enthusiast, there’s no stone to be left unturned in the quest for the perfect key switch mechanism. Enter [Riskable], with an innovative design for a 3D printed mechanism that delivers near-infinite adjustment without the use of springs or metallic contacts.

The switching itself is performed by a Hall effect sensor, the specifics of which are detailed in a second repository. The primary project simply represents the printed components and magnets which make up the switch mechanism. Each switch uses three 4 x 2 mm magnets, a static one mounted on the switch housing and two on the switch’s moving slider. One is mounted below the static magnet oriented to attract it, while the other is above and repels it.

With this arrangement the lower magnet provides the required tactility, while the upper one’s repulsive force replaces the spring used in a traditional mechanism. [Riskable] calls it the magnetic separation contactless key switch, but we think “revolutionary” has a nicer ring to it.

The part which makes this extra-special is that it’s a fully parametric OpenSCAD model in which the separation of the magnets is customisable, so the builder has full control of both the tactility and return force of the keys. There’s a video review we’ve posted below that demonstrates this with a test keypad showing a range of tactility settings.

We have a resident keyboard expert here at Hackaday in the shape of our colleague [Kristina Panos], whose Keebin’ With Kristina series has introduced us to all that is interesting in the world of textual input. She plans on taking a keyboard made of these clever switches on a test drive, once she’s extruded the prerequisite number of little fiddly bits.

Continue reading “3D Printed Magnetic Switches Promise Truly Custom Keyboards”

An OpenSCAD Library For All Your CNC Cutting Needs

While there’s always the edge case, there’s a strong likelihood that if you’re using OpenSCAD, you’re probably working on a CAD model that you intend to 3D print at some point. Of course that’s not to say this is all you can do in OpenSCAD, but it’s arguably what it does best. If you wanted to make artistic models, or maybe render what your new kitchen will look like, there are other tools better suited to such tasks.

But thanks to lasercut.scad, a library that [Brendan Sleight] has been working on for the last several years, we might have to reconsider our preconceived dimensional notions. Instead of designing parts for 3D printing, his library is all about creating parts intended for subtractive manufacturing. Originally (as the name implies) it was geared towards laser cutting, but the project has since evolved to support CNC routers, vinyl cutters, and pretty much anything else that can follow a DXF file.

This “clip” joint is great for acrylic.

The library has functions for creating the standard tricks used to build things from laser-cut pieces, like finger joints, captive nuts, and assembly tabs. If it was something you once saw holding together an old wooden 3D printer kit back in the day, you can probably recreate it with lasercut.scad. It even supports a pretty wild piece of rotational joinery, courtesy of [Martin Raynsford].

Don’t have a way of concentrating a sufficient number of angry photons at your workpiece? No worries. The library has since been adapted to take into account a parametric kerf width, which lets you dial in how much of a bite your particular tool will take from the material when it does the business. There are even special functions for dealing with very thin cuts, which [Brendan] demonstrates by assembling a box from sheet vinyl.

Of course, those who’ve used OpenSCAD will know there’s not an “Export for CNC” button anywhere in the stock interface. So to actually take your design and produce a file your cutter can understand, [Brendan] has included a Bash script that will run the necessary OpenSCAD incantations to produce a 2D DXF file.

[Brendan] decided to send this one in after he saw the aluminum enclosure OpenSCAD library we covered recently. If you’ve got your own pet project that bends some piece of hardware or software to your will, don’t be shy to let us know.

Planning Custom Aluminum Enclosures With OpenSCAD

We’ve seen a number of projects over the years that let you create custom enclosures using OpenSCAD, and for good reason. The parametric CAD tool is ideal for generating 3D models based on user-adjustable variables, and if you leverage its integrated Customizer, producing a bespoke box is as easy as moving some sliders around. The resulting files get sent off to the 3D printer, and you’re set. But what if you’re looking for a custom enclosure that’s not so…plastic?

In that case, AlClosure by [0xPIT] might be the answer. Rather than generating STL files intended for your 3D printer, the code is written to help you design an enclosure made from aluminum sheets. The top and bottom panels are intended to be cut from 1.5 mm – 2.5 mm sheets, while the sides are made from thicker 5 mm – 8 mm stock to accept a machined pocket that holds the front and rear inserts.

Since it’s OpenSCAD, much of the design is governed by variables which you can tweak. Obviously the outside dimensions of the enclosure can be changed in a flash, but it’s just as easy to modify the thickness of the aluminum sheet being used, or the size of the screw holes. [0xPIT] has also done a great job of documenting the code itself, so you’ll know exactly what you’re modifying.

Obviously, you’ll need the ability to cut and machine aluminum to actually utilize this project. The code itself is really just a way to conceptualize the design and get your dimensions figured out ahead of time. But as we were recently reminded by the keynote presentation [Jeremy Fielding] gave at the 2021 Remoticon, this sort of early prototyping can often save you a lot of headaches down the line.

3D Printed Printing Plates Made Using Modern Tools

It’s widely accepted that the invention of the printing press by Gutenberg in the 15th Century was the event that essentially enabled the development of the modern world, allowing access to knowledge beyond anything that came before, even if the Chinese got in on the bookmaking act some 500 years previously. Fast-forward a few centuries more and we’ve got the ability to design electronics from our arm chairs, we can print 3D objects from a machine on the coffee table, and 3D modeling can be done by your kids on a tablet computer. What a time to be alive! So we think it’s perfectly fine that [Kris Slyka] has gone full circle and used all these tools to make printing plates for a small press, in order to produce cards for her Etsy business.

Now before you scoff, yes she admits quite quickly that KiCAD wasn’t the best choice for designing the images to print, since she needed to do a lot of post-processing in Inkscape, she could have just dropped the first step and started in Inkscape anyway. You live and learn. Once the desired image was fully vectorised, it was popped into OpenSCAD in order to extrude it into 3D, thickening the contact to the base to improve the strength a little.

[Kris] demonstrates using the registration marks to align the front and rear side plates, and even (mostly) manages adding a second colour infill for a bit more pizzazz. The results look a little bit wonky and imperfect, exactly what you want for something supposed to be handmade. We think it’s a nice result, even if designing it in KiCAD was a bit bonkers.

For those interested in the OpenSCAD code, have a butchers at this gist. This project is not the first 3D-printed printing press we’ve covered, checkout the Hi-Bred for an example, and here’s the Open Press Project if you’re still interested.

Continue reading “3D Printed Printing Plates Made Using Modern Tools”