Loading

Chain Generator

by Sal, published

Chain Generator by Sal Aug 12, 2012

Description

An OpenSCAD script that generates link chain designed to print without support or post assembly.

Update! New name, cleaned up script. Tossed out all old scad and stls.

Update 2, May 2013. Reworked the script to generate clean link geometry. TODO (low prio): Make the code as clean as the geometry...

Chain links are 22 x 12(15) mm with a 3.5 mm diameter cross-section. (Straight chain is 12 mm wide, others 15 mm) These dimensions are easily modified in the scad file or through customizer, but make sure to check that the links do not intersect!

Recent Comments

view all
Yes, that's the idea.
you can print without support, right?
New version again, as the last attempt had duplicated vertices due to a missing union() call. The mesh looked good, but slicing failed miserably. However, it should now be fixed in the scad, 5 and 10 link stl's.

Liked By

view all

License

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag. Print Thing Tag

Instructions

Your printer needs good bed adhesion, OK overhangs and bridges. If you do succeed, just lift the chain from the bed and you are ready to go!
you can print without support, right?
Sal - in reply to inavarro
Yes, that's the idea.
New version again, as the last attempt had duplicated vertices due to a missing union() call. The mesh looked good, but slicing failed miserably. However, it should now be fixed in the scad, 5 and 10 link stl's.
A lot of the links slice/print with a bit of a hole/cut in the link. Examining the STL, it looks like the links are not entirely manifold since they have an internal wall which trips up the slicer. Any idea how to fix this? No amount of slicing tweaks seem to be able to fix it since its an STL issue. Otherwise, very cool thing!
Ok, scad and the 5 and 10 link straight chains updated. Please try again!
Haven't had issues with that myself (using slic3r). I will see if I can change the script to make the output cleaner.
After too many failed prints due to knocked over links I gave in and told slicer to add a 2mm brim to the bottom layer. That turned the whole affair into (only) an overhang and bridges problem which we all know is handled by a liberal amount of cool air and slow speed. Success at last!
I would like to have a go at printing this but wondered what the smallest feasible size might be? I was thinking of printing some 1/6 chain link to go with an action figure kitbash that i am working on.
This one was printed at about 50% scale: thingiverse.com/make:16144. I would not go much below that with my printer (.35 nozzle), but feel free to try, and please report on your conlusions! If printing a complete chain fails, you might try printing separate open links lying flat on the bed. (almost like these thingiverse.com/thing:67445). But of course not as cool as having a solid chain...
Updated to work in the customizer! Don't forget to increase width to 15 when choosing circular or spiral types! (If you change any other parameter except number of links, you are on your own ;))
Any chance for this to go in the new customizer? thingiverse.com/apps/customizer/
Absolutely!
Oh, man -- I should have added this to my sporkchucks! Very nice!! 8-) 8-)
It is never too late! The default size chain is definitely sturdy enough for some culinary ninja-moves. :-D
Ok, major update. Threw out all the old stuff and in with the new. Let me know if you need anything of the old back... Now you can print long chains in a spiral (Many thanks to dzach for leading me on to that, I hope stealing your idea was OK) O:-) I have not tried printing a spiral yet, maybe something for tomorrow...
One application for a 3m chain that comes to mind is for a dog leash.
Sal - in reply to dzach
Weeeelll, that would be if you have a small dog or print in metal... But a typical dog leash clip would be a nice Thing.
not if you print in PLA! I have one of these printed in PLA that I've been challenging my friends to pull apart for weeks and noone has had any success (even when they play tug-o-war with it)
Well, I started by doing all the math for the model and found out that describing a spiral parametric chain is not the easiest exercise in the world. So I ended up tweaking the 60
° angle and the spacing instead of calculating it and reached a quick solution. It only took 28' to compile (that's minutes) =-O

The actual scad file I have for this spiral chain is for a 3m long piece that will fit a 215x215mm print bed, with the links as close together as possible without touch
ing, but I had no patience to compile or print it.
I am looking for good applications for this chain... Maybe a nice clip to attach it to something? (or to itself for a bracelet) Ideally something that can be printed together with the chain, but that is not necessary... Any ideas? Pointers to suitable things?
Here is an 1m long chain in an archimedean spiral layout. At the end I attached the Gothic part that I made earlier, while the link at the end was being built. Apologies for the crap photo.

I'll upload the scad file with the archimedean spiral as soon as I overcome some problems that I have with amazonaws.com that do not allow me to upload files.
Sal - in reply to dzach
Wow, that is great! (why didn't I think of making a spiral?) :) now who is up for calculating minimum radius for a given link geometry? ;) lets see if I can dig up some pen and paper...
20 cm chain (22 links at approx. 1/2 scale) printed in 15 minutes :)
Working on code for variable length open or closed chains. Had hoped to publish today but not quite there yet...
Sal - in reply to Sal
New script uploaded with support for closed chains, see description.
It is easy to link two chains together while printing, look at the last of attached pictures. To make room for more links try setting spacing=l/2+.5 in the straight_chain module.
This is great!

If you set n=4 in module halflink in chain.scad you get a Gothic chain :)
I tried to modify the .scad file to do a 180 degree loop that would let you print lots more chain on a single build platform.. I can't figure out how to do it parametrically without the use of variables or recursion. I have a feeling it's possible, but it might take someone more experienced than me to do it. Anyone care to take a shot at it?
// Quick'n Dirty addition, need to clean

looped_chain(links=12);

module looped_chain(links=5, d = 15, t = 4, l=20)

{

spacing=l-t-d/2+13;

//rotate([90-30,0,0])

{

for (i=[0:links-1]) {

translate([sin(i*30)*spacing,cos(i*30)*spacing,0])rotate([60*(i%2)+60,0,-i*30+8])link(l,d,t);

}

}

}
Top