Matlab Knot
82
Likes
1638
Downloads
2571
Views
Published on March 17, 2011
This thing was Featured on March 17, 2011
Derived from
Parametric Knot
by MakeALot
Description
As much as I love OpenSCAD, constructive solid geometry is just not efficient at certain tasks and I got tired of waiting for hundreds of spheres to be unioned and rendered to make a knot. This is a parametric Matlab script to do the same thing as MakeALot's script, but in seconds instead of hours, plus the mesh is smoother.
The [3,1] knot I printed required more material for support than the print did, but it came out nice in the end. I designed it to fit a 12.7mm steel ball I had extras of from a Geomag set. Since the knot is toroidal, the ball freely rolls around the inside without falling out.
I included a couple of other example knot STLs in case you can't run the script.
The [3,1] knot I printed required more material for support than the print did, but it came out nice in the end. I designed it to fit a 12.7mm steel ball I had extras of from a Geomag set. Since the knot is toroidal, the ball freely rolls around the inside without falling out.
I included a couple of other example knot STLs in case you can't run the script.
Instructions
Run VarKnot.m in Matlab (or Octave, which hopefully should also work) and adjust the commented parameters at the beginning of the file as desired. It uses surf2stl.m, which I included because I made some adjustments from the version available on the Matlab file exchange. There don't appear to be any license conflicts, and hopefully my changes will show up there soon too. Basically I added the ability to export multiple objects in a single STL, which is what you get with the [2,4] knot, for instance.
There is a vertical stretch parameter that allows the knot to be taller (to make supportless printing possible) while maintaining the circular cross-section. There is also a thickness parameter that flattens the bottom of the STL to make a base area where the print can actually stick to the build platform.
The one lame thing about scripting this versus the OpenSCAD version, is there's no guarantee your mesh will be manifold. Basically you have to look at the plot and adjust the parameters so that it doesn't self-intersect.
There is a vertical stretch parameter that allows the knot to be taller (to make supportless printing possible) while maintaining the circular cross-section. There is also a thickness parameter that flattens the bottom of the STL to make a base area where the print can actually stick to the build platform.
The one lame thing about scripting this versus the OpenSCAD version, is there's no guarantee your mesh will be manifold. Basically you have to look at the plot and adjust the parameters so that it doesn't self-intersect.
You must be logged in to post a comment.
BenJackson
on
March 18, 2011
said:
In case you've never used support before (like me!) then let me warn you that "exterior" support won't cut it!
Starno
on
March 17, 2011
said:
Do you think it is (or could be) possible in OpenSCAD to define the cross-sectional geometry and then "extrude" it along a mathematical path?


Hello Emmet,
Can I ask you something 8-) , your second image show a base that was created using a script right? Sorry for my question , i don't know if I understood ...
So I like that because I just started printing and I have some Action figure modeled on Zbrush, that I want to print, and they need a struct
ure to be build ..
For this wolverine maybe I could print in pieces but for a small scale for sure needs a structure.
Congratulation for the model! ;)
best regards
Marcelo P
I'm guessing by "base" you mean support structure? Skeinforge has an option for support (there's a checkbox in ReplicatorG for it as well), which is what I used on knot31. Makerbot also has some useful how-to articles about it on their blog.