New Video Series: Designing With Complex Geometry

Whether it’s a 3D printed robot chassis or a stained glass window, looking at a completed object and trying to understand how it was designed and put together can be intimidating. But upon closer examination, you can often identify the repeating shapes and substructures that were combined to create the final piece. Soon you might find that the design that seemed incredibly intricate when taken as a whole is actually an amalgamation of simple geometric elements.

This skill, the ability to see an object for its principle components, is just as important for designing new objects as it is for understanding existing ones. As James McBennett explains in his HackadayU course Designing with Complex Geometry, if you want to master computer-aided design (CAD) and start creating your own intricate designs, you’d do well to start with a toolbox of relatively straightforward geometric primitives that you can quickly modify and reuse. With time, your bag of tricks will be overflowing with parametric structures that can be reshaped on the fly to fit into whatever you’re currently working on.

His tool of choice is Grasshopper, a visual programming language that’s part of Rhino. Designs are created using an interface reminiscent of Node-RED or even GNU Radio, with each interconnected block representing a primitive shape or function that can be configured through static variables, interactive sliders, conditional operations, and even mathematical expressions. By linking these modules together complex structures can be generated and manipulated programmatically, greatly reducing the time and effort required compared to a manual approach.

As with many powerful tools, there’s certainly a learning curve for Grasshopper. But over the course of this five part series, James does a great job of breaking things down into easily digestible pieces that build onto each other. By the final class you’ll be dealing with physics and pushing your designs into the third dimension, producing elaborate designs with almost biological qualities.

Of course, Rhino isn’t for everyone. The $995 program is closed source and officially only runs on Windows and Mac OS. But the modular design concepts that James introduces, as well as the technique of looking at large complex objects as a collection of substructures, can be applied to other parametric CAD packages such as FreeCAD and OpenSCAD.

Designing with Complex Geometry is just one of the incredible courses offered through HackadayU, our pay-as-you-wish grad school for hardware hackers. From drones to quantum computing, the current list of courses has something for everyone.

Continue reading “New Video Series: Designing With Complex Geometry”

Design A Custom Enclosure Using Modelling Clay And Photogrammetry

When it comes to designing enclosures which aren’t simple boxes or other basic shapes, the design process tends to get somewhat tedious and involved as the number of measurements to be transferred into the CAD program begins to skyrocket. One possible shortcut here is detailed by [Sebastian Sokolowski], who describes a process that combines modelling clay with photogrammetry.

[Sebastian] covers the design of a hand-held controller that should fit ergonomically when grasped. This starts off with the electronics and mechanical components that have to fit inside the controller: inside a CAD tool (demonstrated in Fusion 360), these components are arranged with a simple box enclosure around them. This box is then 3D printed and with modelling clay the desired shape of the controller is created around this box.

With a modelling clay version of the controller ready, it is photographed from as many angles as possible before these photos are processed by the open source Meshroom tool into a 3D model. After fixing up some issues in the mesh and knocking down the vertex count on this model so that the CAD tool doesn’t suffer a seizure importing it, it’s ready for final processing.

Within the CAD tool all that is left now is to refine the imported model to refine its outer shape and to create the inner details for mounting the electronics, switches and other components.

Continue reading “Design A Custom Enclosure Using Modelling Clay And Photogrammetry”

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

What To Expect From 3D Scanning, And How To Work With It

3D scanning and 3D printing may sound like a natural match for one another, but they don’t always play together as easily and nicely as one would hope. I’ll explain what one can expect by highlighting three use cases the average hacker encounters, and how well they do (or don’t) work. With this, you’ll have a better idea of how 3D scanning can meet your part design and 3D printing needs.

How Well Some Things (Don’t) Work

Most 3D printing enthusiasts sooner or later become interested in whether 3D scanning can make their lives and projects easier. Here are a three different intersections of 3D scanning, 3D printing, and CAD along with a few words on how well each can be expected to work.

Goal Examples and Details Does it work?
Use scans to make copies of an object.
  • 3D scan something, then 3D print copies.
  • Objects might be functional things like fixtures or appliance parts, or artistic objects like sculptures.
Mostly yes, but depends on the object
Make a CAD model from a source object.
  • The goal is a 1:1 model, for part engineering purposes.
  • Use 3D scanning instead of creating the object in CAD.
Not Really
Digitize inconvenient or troublesome shapes.
  • Obtain an accurate model of complex shapes that can’t easily be measured or modeled any other way.
  • Examples: dashboards, sculptures, large objects, objects that are attached to something else or can’t be easily moved, body parts like heads or faces, and objects with many curves.
  • Useful to make sure a 3D printed object will fit into or on something else.
  • Creating a CAD model of a part for engineering purposes is not the goal.
Yes, but it depends

In all of these cases, one wants a 3D model of an object, and that’s exactly what 3D scanning creates, so what’s the problem? The problem is that not all 3D models are alike and useful for the same things.

Continue reading “What To Expect From 3D Scanning, And How To Work With It”

When The Right Tool Is Wrong

I’m a firm believer in using the right tool for the job. And one of the most fantastic things about open-source software tools is that nothing stops you from trying them all. For instance, I’ve been going back and forth between a couple, maybe three, CAD/CAM tools over the past few weeks. They each have their strengths and weaknesses, and so if I’m doing a simpler job, I use the simpler software, because it’s quicker and, well, simpler. But I’ve got to cut it out, at least for a while, and I’ll tell you why.

The first of the packages is FreeCAD, and it’s an extremely capable piece of CAD/CAM software. It can do everything, or so it seems. But it’s got a long shallow learning curve, and I’m only about halfway up. I’m at the stage where I should be hammering out simple “hello world” parts for practice. I say, I should be.

Fortunately/unfortunately, some Hackaday readers introduced me to KrabzCAM through the comments. It’s significantly less feature-full than FreeCAD, but it gets the job of turning your wife’s sketches of bunnies into Easter decorations done in a jiffy. For simple stuff like that, it’s a nice simple tool, and is the perfect fit for 2D CAM jobs. It’s got some other nice features, and it handles laser engraving nicely as well. And that’s the problem.

Doing the simple stuff with KrabzCAM means that when I do finally turn back to FreeCAD, I’m working on a more challenging project — using techniques that I’m not necessarily up to speed on. So I’ll put the time in, but find myself still stumbling over the introductory “hello world” stuff like navigation and project setup.

I know — #first-world-hacker-problems. “Poor Elliot has access to too many useful tools, with strengths that make them fit different jobs!” And honestly, I’m stoked to have so many good options — that wasn’t the case five years ago. But in this case, using the right tool for the job is wrong for me learning the other tool.

On reflection, this is related to the never-try-anything-new-because-your-current-tools-work-just-fine problem. And the solution to that one is to simply bite the bullet and stick it out with FreeCAD until I get proficient. But KrabzCAM works so well for those small 2D jobs…

A hacker’s life is hard.

Photorender Your 3D Models

Of course, you’ll want to take your latest 3D design and print it so you’ll have a physical object. But in some cases, you’d like to have a rendering of it. If you use OpenSCAD, FreeCAD, or most other CAD programs you can get a simple rendering of your object, but what if you want something that looks real? [Teaching Tech] shows how you can use a website, Vectary, to get realistic photo renderings of your 3D models. (Video, embedded below.) The free plan has a few limits, but nothing that should bother most people.

Vectary is sort of like a super version of TinkerCad with a lot of options for realistic modeling and augmented reality. Some of the more advanced features are behind a subscription plan, but for what [Teaching Tech] is showing, you can use the free plan.

Continue reading “Photorender Your 3D Models”

3D Finger Joints For Your Laser Cutter

A laser cutter is an incredibly useful tool and they are often found in maker spaces all over. They’re quite good at creating large two-dimensional objects and by cutting multiple flat shapes that connect together you can assemble a three-dimensional object. This is easier when creating something like a box with regular 90-degree angles but quickly becomes quite tricky when you are trying to construct any sort of irregular surface. [Tuomas Lukka] set out to create a dollhouse for his daughter using the laser cutter at his local hackerspace and the idea of creating all the joints manually was discouraging.

The solution that he landed on was writing a python script called Plycutter that can take in an STL file and output a series of DXF files needed by the cutter. It does the hard work of deciding how to cut out all those oddball joints.

At its core, the system is just a 3D slicer like you’d find for a 3D printer, but not all the slices are horizontal. Things get tricky if more than two pieces meet. [Tuomas] ran into a few issues along the way with floating-point round-off and after a few rewrites, he had a fantastic system that reliably produced great results. The dollhouse was constructed much to his daughter’s delight.

All the code for Plycutter is on GitHub. We’ve seen a similar technique that adds slots, finger-joints, and t-slots to boxes, but Plycutter really offers some unique capabilities.

FreeCAD Debugging

Powerful software programs often have macro programming languages that you can use, and if you know how to program, you probably appreciate them. However, sometimes the program’s built-in debugging facilities are lacking or even nonexistent If it were just the language, that wouldn’t be such a problem, but you can’t just grab a, for example, VBA macro from Microsoft Word and run it in a normal Basic interpreter. Your program will depend on all sorts of facilities provided by Word and its supporting libraries. [CrazyRobMiles] was frustrated with trying to debug Python running inside FreeCAD, so he decided to do something about it.

[Rob’s] simple library, FakeFreeCad, gives enough support that you can run a FreeCAD script in your normal Python development environment. It only provides a rude view of what you are drawing, but it lets you explore the flow of the macro, examine variables, and more.

Continue reading “FreeCAD Debugging”