Multiextrusion 3D Printing and OpenSCAD

In a recent posting called Liar’s 3D Printing, I showed you how you can print with multiple filament colors even if your printer only has one extruder and hot end. It isn’t easy, though, and a lot of models you’ll find on sites like Thingiverse are way too complicated to give good results. An object with 800 layers, each with two colors is going to take a lot of filament changes and only the most patient among us will tolerate that.

What that means is you are likely to want to make your own models. The question is, how? The answer is, of course, lots of different ways. I’m going to cover how I did the two models I showed last time using OpenSCAD (seen below). The software is actually really well suited for this hack, making it easy for me to create a framework of several models to represent the different colors.

About OpenSCAD

I’m not going to say much about OpenSCAD. It is less a CAD package and more a programming language that lets you create shapes. We’ve covered it before although it changes from time to time so you might be better off reading the official manual.

The general idea, though, is you use modules to create primitives. You can rotate them and translate them (that is, move them). You can also join them (union) and take the difference of them (difference). That last is especially important. For example, look at the callsign plate above. Forget the text for now. See the two holes? Here’s the OpenSCAD that creates that shape:

 difference() {
 cube([basew,basel,basez]);
 // cut holes
 translate([4,basel/2,0]) cylinder(r=2,h=basez+2);
 translate([basew-4,basel/2,0]) cylinder(r=2,h= basez+2);
 }

The cube “call” creates the base. The cylinders are the holes and the difference “call” is what makes them holes instead of solid cylinders (the first thing is the solid and everything after is taken away). One key point: instead of numbers, the whole thing uses (mostly) variables. That means if you change the size of something, everything will adjust accordingly if you wrote the script well. Let’s look at applying these techniques for multiple colors.

Continue reading “Multiextrusion 3D Printing and OpenSCAD”

Print Flexible PCBs with a 3D Printer

Let’s get it out of the way right up front: you still need to etch the boards. However, [Mikey77] found that flexible plastic (Ninjaflex) will adhere to a bare copper board if the initial layer height is set just right. By printing on a thin piece of copper or conductive fabric, a resist layer forms. After that, it is just simple etching to create a PCB. [Mikey77] used ferric chloride, but other etchants ought to work, as well.

Sound simple, but as usual, the devil is in the details. [Mikey77] found that for some reason white Ninjaflex stuck best. The PCB has to be stuck totally flat to the bed, and he uses spray adhesive to do that. Just printing with flexible filament can be a challenge. You need a totally constrained filament path, for one thing.

Continue reading “Print Flexible PCBs with a 3D Printer”

This Tampon Gun Won’t Cramp Your Style

Finally, there’s a way to get rid of those applicator-less tampons that literally no one uses while also destroying a bunch of Axe body spray. Just use the Axe as the propellant in a 3D-printed, gas-powered tampon gun.

As you’ll see in the assembly and demonstration video after the break, most of the parts in [HarambesLabs]’ modular gun design are 3D-printed. Aside from those, you just need to add a PVC tube for a barrel, a bottle that fits the threading on the body, and a pair of o-rings to make a nice, tight seal. Snap in the piezo mechanism from a lighter, fill the bottle with an Axe cloud, and screw it on to the body. If the gas/air mixture is close enough, the compacted cotton bullet should fly. The gun is single-shot, but [HarambesLabs] is working on a mod to make it fully automatic.

We love a good gun build around here, be it mostly benign or downright terrifying. This build isn’t necessarily tampon-dependent but the size, weight, and plastic covering (reducing friction) make it ideal for this particular design. Nerf darts may be another option if you can find the correct fit for the barrel.

Continue reading “This Tampon Gun Won’t Cramp Your Style”

Where There’s Smoke, There’s a Knockoff 3D Printer

These days, it’s possible to buy clones of popular 3D printers from China for satisfyingly low prices. As always, you get what you pay for, and while usable, often they require some modification to reach their full potential. [g3ggo] recently laid down €270 for a clone of the Prusa i3 by Geeetech, knowing it would require some modifications for safety and performance.

First on the bill was a wobbly Z-axis, which was dealt with by printing some new parts designed to fix this issue which have already been developed by the community. Forums are your friend here – often an enterprising user will have already developed fixes for the most common issues, and if they haven’t, you can always step up to be the hero yourself. There was a darker problem lurking inside, though.

[g3ggo] began to wonder why the MOSFETs for the hot end were running so hot. It turned out to be an issue of gate drive – the FETs were only being driven with 5V, which for the given part, wasn’t enough to reach its lowest R_DS(on) and thus was causing the overheating issue. It gets worse, though – the heatsinks on the MOSFETs were bolted on directly without insulation, and sitting fractions of a millimeter above traces on the PCB. Unfortunately, with a small scratch to the soldermask, this caused a short circuit, destroying the hot end and MOSFETs and narrowly avoiding a fire. This is why you never leave 3D printers unattended.

The fix? Replacing the MOSFETs with a part that could deal with a 5V gate drive was the first step, followed by using insulating pads & glue to stop the heatsinks contacting the PCB. Now with the cooler running MOSFETs, there’s less chance of fire, and the mainboard’s cooling fan isn’t even required anymore. Overall, for a small investment in time and parts, [g3ggo] now has a useful 3D printer and learned something along the way. Solid effort!

Ditch OpenSCAD for C++

There’s an old saying that a picture is worth a thousand words. If you’ve ever tried to build furniture or a toy with one of those instructions sheets that contains nothing but pictures, you might disagree. 3D design is much the same for a lot of people. You think you want to draw things graphically, but once you start doing complex things and making changes, parametric modeling is the way to go. Some CAD tools let you do both, but many 3D printer users wind up using OpenSCAD which is fully parametric.

If you’ve used OpenSCAD you know that it is like a simple programming language, but with some significant differences from what you normally use. It is a good bet that most Hackaday readers can program in at least one language. So why learn something new? A real programming language is likely to have features you won’t find readily in OpenSCAD that, in theory, ought to help with reuse and managing complex designs.

I considered OpenJSCAD. It is more or less OpenSCAD for JavaScript. However, JavaScript is a bit of a scripting language itself. Sure, it has objects and some other features, but I’m more comfortable with C++. I thought about using the OpenCSG library that OpenSCAD uses, but that exposes a lot of detail.

Instead, I turned to a project that uses C++ code to generate OpenSCAD output, OOML (the Object Oriented Mechanics Language)). OpenSCAD does the rendering, exporting, and other functions. Unfortunately, the project seems to have stalled a few years back and the primary web-based documentation for it seems to be absent. However, it is very usable and if you know how to find it, there is plenty of documentation available.

Why not OpenSCAD?

Continue reading “Ditch OpenSCAD for C++”

Liar’s 3D Printing: Multiple Colors with One Extruder

Good 3D printers now have multiple hot ends. You ought to be able to print in different colors or print support material. However, a lot of us don’t have multiple hot ends. Turns out, you don’t have to have multiple hot ends to print in multiple colors. To accomplish that you need a lot of patience and the willingness to tell bald-faced lies. Don’t worry, though, you’ll only be lying to some computer hardware and software, so that doesn’t count.

You may have seen people talk about putting a pause between layers to switch from one color to another. That works, but it limits your options. For example, if you want to put some colored text on a different colored background, you have to either have the text poke out, or it has to be “under” the background. It can’t be flush if you only have a single extruder and hot end. My method is a lot more trouble, but it can generate good results.

Keep in mind, with hobby-grade printers, multiple color printing has a lot of problems even if you do have multiple extruders. This isn’t a panacea. But you can get results on par with a similar printer that has multiple heads.

Bottom Line Up Front

Here are a few pictures of test prints that use this technique. A Monoprice Mini printer with the stock extruder and hot end created them using different PLA filament. On the left is a test cube, with a color spot in the middle of the layers (as well as some spots on the top surface you can’t see). To the right is a plate with my call sign in a contrasting color. It is hard to tell in the picture, of course, but there is one surface. The text is at the same height as the yellow surface.

I didn’t spend a lot of time making these prints since I was more focused on perfecting the methodology. The layer heights aren’t very fine, the infill is sparse, and the print speed was fast. However, you could invest time into making better-looking prints. You can also use the usual techniques that you use with a “real” multi-extrusion printer (such as priming towers, ooze shields, etc.).

Continue reading “Liar’s 3D Printing: Multiple Colors with One Extruder”

Open-Source Parametric CAD in Your Browser

Until recently, computer-aided design (CAD) software was really only used by engineering companies who could afford to pay thousands of dollars a year per license. The available software, while very powerful, had a very high learning curve and took a lot of training and experience to master. But, with the rise of hobbyist 3D printing, a number of much more simple CAD programs became available.

While these programs certainly helped makers get into 3D modeling, most had serious limitations. Only a few have been truly open-source, and even fewer have been both open-source and parametric. Parametric CAD allows you to create 3D models based on a series of parameters, such as defining a cube by its origin and dimensions. This is in contrast to sculpting style 3D modeling software, which is controlled much more visually. The benefit of parametric modeling is that parameters can be changed later, and the model can be updated on the fly. Features can also be defined mathematically, so that they change in relation to each other.

While still in its infancy, JS.Sketcher is seeking to fill that niche. It is 100% open-source, runs in your browser using only JavaScript, and is fully parametric (with both constraints and editable dimensions). At this time, available features are still pretty limited and simple. You can: extrude/cut, revolve, shell, and do boolean operations with solids. More advanced features aren’t available yet, but hopefully will be added in the future.

Continue reading “Open-Source Parametric CAD in Your Browser”