Most of us are more bits-and-bytes than nuts-and-bolts, but we have the deepest appreciation for the combination of the two. So, apparently, does [rectorsquid]. Check out the design and flow of his rolling ball sculpture (YouTube, embedded below) to see what we mean. See how the arms hesitate just a bit as the ball is transferred? See how the upper arm gently places it on the ramp with a slight downward gesture? See how it’s done with one motor? There’s no way [rectorsquid] designed this on paper, right?
Of course he didn’t (YouTube). Instead, he wrote a simulator that lets him try out various custom linkages in real time. It’s a Windows-only application (sigh), but it’s free to use, while the video guides (more YouTube) look very comprehensive and give you a quick tour of the tool. Of special note is that [rectorsquid]’s software allows for sliding linkages, which he makes very good use of in the rolling ball sculpture shown here.
We’ve actually secretly featured [rectorsquid]’s Linkage software before, in this writeup of some amazing cosplay animatronic wings that used the program for their design. But we really don’t want you to miss out if you’re doing mechanical design and need something like this, or just want to play around.
If you’d like to study up on your nuts and bolts, check out our primer on the ubiquitous four-bar linkage, or pore through Hackaday looking for other great linkage-powered examples, like this automatic hacksaw or a pantograph PCB probe for shaky hands.
Anyone know of an open-source linkage simulator that can also output STL files for 3D printing? Or in any format that could be easily transformed into OpenSCAD? Asking for a “friend”.
53 thoughts on “Amazing Mechanical Linkages And The Software To Design Them”
I wounder if this would be useful for kinematics.
It was actually a part of a course on mechatronics or perhaps it was mechanisms. We had to solve the math for a four-bar linkage similiar to one used here, and I built a generic model of it in Excel to see if it agrees with simulations done in Catia. The machine we were simulating had a similiar claw that would grab a beer bottle and flip the top off.
It’s not exceedingly complicated, but the solution takes about two pages of math and futzing around with Euler’s Identity.
I don’t understand what the author means when “their friend” asks for 3D printing support. They’re linkages of known length. You have to input the lengths into the simulator… Just print the linkages in the links you input into the application… I M CONFUSE
I don’t think you confused. The lengths are in the simulator, and I want to get them (and the angles, and the joint types) back out so that I don’t have to do the next step (input them into 3D printing) myself.
Code talks, though. I’ll work something out once I pick a modeller that I can get the data back out of.
The Linkage program stores data in XML files. The units are 1/96 inch. All of the connector locations are there. You can also export a DXF file which might be useful elsewhere. The DXF export isn’t always perfect but it can be useful.
The units are INCHES??? Wow.
I couldn’t find an open-source implementation, but this Disney / MIT CSAIL / ETH Zurich project looks pretty awesome.
Yeah, that’s rad. Really.
Yes, but how many hobby roboticists are working at that level?
DOes this disney software is opensource sir
I also tried to find something like this, I got this: https://hackaday.io/project/163443-stagger, and here is the author JarrettR’s github project: https://github.com/JarrettR/Stagger, but I am not so good at programming.
So its like geogebra. Ive used that open source software to simulate the legs of a streetbeest (yes. No strandbeest)
I’ll leave this here, in case somebody would like to have such functionality in their browser.
A nice open source cad that has the feature to analyze the path of moving linkages is SolveSpace: http://solvespace.com/index.pl
I was playing around with solvespace just after I wrote the post up. Its linkage functionality is pretty cool, and you can easily spend most of an afternoon (IME) having fun with it. :) It’s really good for the sketching-out-linkages phase.
But then when it comes to actually building the model, you basically start from scratch again with a bunch of bars and plates, and constrain them to fit the wireframe that you made. Totally workable, and demonstrated in the linkages tutorial, but a lot of (needless?) manual work transferring all the constraints over to a 3D model. That’s the part that I’d like to (quasi-)automate, and would be a piece of cake with a little Python and OpenSCAD if I could get the coordinates and type of each joint and the bar lengths and/or angles.
Thanks everyone for suggestions!
What is the most common 3D printer model format? Maybe the file format is easy enough to add to the Linkage software to at least give you the links and connectors as non-solid location information. If that’s even possible.
What an amazing offer! I’m certainly not the one to answer that, but just in case no-one else jumps in, I think this might point you in the right direction: https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/STL_Import_and_Export
Hiya David! Most common format? For finished objects, just before printing? STL files for sure.
But before you get there, there’s designing the shapes of the bars and plates and joints, etc — going from lines to physical things. The most popular format for specifying _that_ is totally arguable.
Still, most of the mechanisms would work as essentially 2D, for which the DXF format seems to be pretty universal.
I’d like to vote for OpenSCAD, because it’s a source code format so you’re not bound to a fixed precision of rounded parts, etc. And it can be exported to STL anyway.
There’s a neat free program called Algodoo that allows all sorts of mechanical modelling -linkages, balls, gears, gravity etc.
I love Phun (AKA Algodoo. There is a wonderful community around it. I highly recommend this free program to all ages who want to play God with physics in a Phun way. :)
A Youtube channel with hundreds of types of linkages, animated to show how they work.
It’s worth including that Theo Jansen depended on simulations/analysis/optimization to get the “holy numbers” for the linkage dimensions of his Strandbeest so that it would actually work:
Very cool simulator!
The linkageXP.msi 126.96.36.199 version seems built with the SSE2 flag which compilers now enable it by default.
So this version can’t run on AthlonXP+ cpus with only SSE instructions available, which probably are most common cpus still running XP.
I’ll try to fix this! Look for an update in a few weeks.
Here’s a beta version that is built specifically for XP and has the SSE2 option removed. Let me know if there’s any problem running it:
Wow! That was fast!
I can confirm that this version 188.8.131.52 runs without crashing at startup in XP with an old AthlonXP+ cpu.
And as far as I can tell the editor and realtime simulation all seems to work fine and quite snappy! Thank you!
Don’t know if this problem is just XP related, but after watching the tutorial and checking the pdf doc can’t figure out what’s wrong.
Only can edit the properties for links (size, name, etc). Trying to edit other elements like an anchor or a connector (i.e. to just enable the motion path drawing) popups a window warning to enter a number? (screenshot)
The problem with the warning asking for a number could be related to the program not recognizing the OS localised decimal separator?
Sorry that this is happening for you. I have not looked at this page in a while and missed some of the comments. Feel free to contact me at my email address in the Linkage program (if you have not done that already). I’ll look into internationalization issues and see if I can at least deal with commas and periods properly in numbers. But for now, the program is all American English and expects numbers with periods for decimal points.
Fusion360 has excellent mechanical simulation tools, and can send your parts straight to the 3D printer if you like (or it can automatically generate mechanical drawings for the machine shop).
Here’s an example of using Fusion for linkage development:
Fusion is free for educators, hobbyists and small startups. I’m not affiliated, just in love ????.
Looks like there’s a 3-year ‘free’ license for education, after that you pay. I don’t see any special license for hobbyists or startups. Not that I don’t believe it, but can I see a link to the page(s) that state those terms?
The confirmation of this is notoriously buried on their site, but the way it works is that after the “free trial”, if you still qualify as a small startup or hobbyist, you can subscribe for free. The subscription must be renewed, but it doesn’t cost anything as long as they offer the hobbyist exception. Here’s an Autodesk support thread where they answer several variations on this question:
What’s the Windows only sigh for? Are we going to sigh about Linux only software too?
I’ve used Linkage before, but found it to be a bit rough around the edges. It worth putting up with if you need neat linkages, though, as the alternatives seem much more tedious.
Hi. I would be happy to try to smooth out any rough edges you found. You can find my email address in the software or elsewhere and send me a list of problems if you want to. I find it rough around the edges sometimes too. There’s no layer support beyond the mediocre drawing layer and selecting a 3+ connector link behind another 3+ connector link is painful since only the top one (internally) gets selected from the mouse click. I love to hear how people use the software and what doesn’t work right for them.
In that case :)….
I tried Linkage to simulate a robotic leg with servos, but how to simulate a “moving powered joint”? Looks like power joints can only be anchored.
Yes, we are. In fact, for most people, Linux-only is pretty much an automatic disqualifier when considering software. It’s becoming an “only anything” sigh. People choose their primary operating system for many, many reasons, and having to either reboot or (horrors) switch to a whole different machine for a particular task is annoying at the very least. Fortunately it’s getting better – just a few years ago, almost everything was developed for a specific machine architecture and operating system, and many of us had to have multiple machines to do our work. But the development of multi-platform development tools (Java, Qt, Python-based) have undermined most of the excuses for limiting development to one platform.
About two years ago, I broke my Ubuntu installation on a MacBook badly, and remembering how painful it had been to install in the first place, I decided to see how much of the stuff I’m used to doing in Linux could be done in OS X. I was surprised to find that there were very few changes I had to make – most of what I already used was available for all the “big three” platforms. So yes, “Windows only” evokes a sigh. As does “Linux only” or “Mac only”.
I’d prefer a Linux version over a Mac version and I imagine others would prefer a Linux version over a windows version.. the only question left is are you running it natively or on a virtual machine.
Of course… anyone younger than me wonders why you wouldn’t just write it for the browser… and for some things I admit I find it hard to disagree.
Seems to work ok-ish under Wine, so no reason to get all opsys-religius.
Can’t second that at all, unfortunately. I tried both the normal and the “XP” version, and in both cases the program loads fine with wine and can show/run the examples, but:
* the “part list” and some other popup widgets don’t show correctly
* the basic element selection when right-clicking on the canvas does show, but actually choosing one of those elements results in a segfault that quits the program
* several other operations lead to such crashing segfaults
=> so for me, that’s unusable with wine
The software supports them but sliding connections weren’t needed in that lift mechanism.
Now that is a clever linkage, so much functionality from a single constant-rpm input shaft. Somebody get this man to work designing a motorcycle or car suspension system, stat!
I’ve used Algodoo for (very occasional) linkage design. It’s not ideal, really more of a toy than a tool. I’m going to go through the options in this post and the comments and see if I can find a better piece of software.
I’ve had some limited succes by drawing a parametric Sketch in FreeCad and then leaving one degree of freedom deliberately open to be able to animate.
There are also ways to animate in FreeCad with Python scripts.
There even seems to be a workbench for animations. Haven’t used it yet.
Blender ( Blender.org) can model linkages and sliders etc with kinematics. Maybe you could print directly from the model.
i.e. (This isn’t mine… turn the sound down): https://www.youtube.com/watch?v=bsZxq33XbV8
‘Gazebosim.org’ is for simulating robots… but I have no idea if it’s suitable for modelling linkages within a robot design?
Definitely, Blender is a great option for modelling and rendering the animation, also check out Cinema4D.
Just use geogebra. https://www.geogebra.org
Seems almost impossible to register on David’s site.
Too many spam registrations require that the site have blocking software. But my email address is available in the software and in the PDF documentation and I try to answer every email within a few hours of seeing it.
Man i wish there was an OpenSource equivalent to this: https://www.psmotion.com/
Or a place in Russia that knows how to get it cheaper…..
As a student/tinkerer, been looking for FOSS (or otherwise easily accessible) software to get into linkage design for a long time.
With psmotion’s mechdesigner, I’ve tried to register at their website a bunch of times over the years but never got a reply or trial link.
Been getting into Solvespace over the past few days to simulate linkages.
Just discovered David Rector’s software, and it looks very impressive, and more that adequate for my needs.
Sadly, being a linux user, I couldn’t even get the linkageXP.msi version to run under wine. (reportedly someone has?)
So maybe I’ll give it a spin eventually in a virtual machine someday.
As a sidenote, I find it a superb anecdote that the author of such software has an artistic background. Art+Engineering is a wonderful thing.
Will all that said, I just came across Pyslvs-UI, https://github.com/KmolYuan/Pyslvs-UI, which apparently can use the solvespace constraint kernel as one of its solvers.
I looks pretty neat, with a bunch of interesting features:
There was a question about export of kinematic geometry to 3D printing. Please check out MotionGen Pro at motiongen.io for that. It has both kinematic simulation and synthesis capabilities and integrates well with their hardware kit SnappyXO (snappyxo.com). No download required as it runs inside a browser.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)