Antimony is a new CAD program — they say it is a CAD tool from a parallel universe. The way that you attach shapes and nodes together is similar to Quartz Composer. You can add scripts to quickly create whatever you want. It's fun to play around with when you link parameters together from different shapes. Favourite thing is morphing a function onto shapes, as it creates interesting visual results (which you can then transform even further).
Here are two art models I created. I rendered each one out to a .stl, then opened it in Meshlab to take a screenshot. Added a blue tint for colour.
Art 1 was exported at 30 voxels per unit. It has 1721982 verticies and 3442728 faces. Here is the .sb file.
Art 2 was exported at 50 voxels per unit. It has 1671477 verticies and 3339794 faces. Here is the .sb file.
I thought it would be neat if you could turn on and off certain shapes. It's helpful if you want to hide a shape temporarily while designing.
To use it, just attach the input shape to 'a', then attach the output shape to whatever is next (like a transform). Shift + click + slide on on_off, and every odd number it will turn off.
Here is a screenshot:
Here is the script, onoff.node:
import fab.types import fab.shapes title('On / Off') input('a', fab.types.Shape) input('empty', fab.types.Shape) input('on_off', int) if on_off%2 == 0: title('On') output('shape', a) else: title('Off') output('shape', empty)
Add it to py/nodes/CSG, remake the code, and now you will be able to access it with Shift + A.
Here is what I modeled from the final project idea: the robot base.
It's comprised of two parts- the center and the 'piece' (lame name), aka the part with the hinges on it.
Here are all of the parts together from an angled view:
Here is a top-down cross section view:
Here is the 3D model of the 'piece' part:
Here is the 3D model of the center part:
In order to keep the six pieces in place, I created link pieces that will attach to the center piece with screws.
The circles on the bottom of each design are for 3d printing. They are 1 layer height tall (in this case, 0.3mm). Easily removable afterwards, and they improve the first layer adhesion to the build plate.
Here are link #1 and link #2:
The links do not have to be flat, there could also be angled links.
I messed up thinking about this one though, and so the design doesn't actually work because the bend is in the wrong place.
Here are the design files:
Here are the parameters I added for creating our hinges:
Here are how the parameters were used in the design:
I learned an incredibly useful trick this week in Inventor that helps with making the models ready to print. It uses the 'simplify part' option.
Here is our assembly. It consists of 3x AAA battery holders parts that I modeled. They are constrained into a triangle 'holder' part.
The problem is that when I export to .stl as is, there are lines in the model where the pink and green are. The slicer will mess up on this.
After going to the top ribbon menu and selecting Simplify, then pressing Simplify Part, a new Inventor part will be created from this assembly.
All of the lines are fixed, as you can see the model is now one colour.
It was a bit of an adventure to build Antimony. Here are the steps that I did to make it work. (Warning: read through all of this, if you want to try it yourself. Because I documented my stupid mistakes in here as well)
Append this to .bash_profile:
# adding homebrew export PATH=/usr/local/bin:/usr/local/sbin:~/bin:$PATH
Close & open a new terminal window and type:
echo $PATH
Should see that /usr/local/bin is first
Now can link python
brew link python3
Checking what the path is for python3
which python3 /usr/local/bin/python3
Now time to make it (prior to this: cd into the repository, create the build directory, cd into it)
/usr/local/Cellar/qt5/5.4.*/bin/qmake ../qt/antimony.pro make -j8
It builds, but there is a new error when trying to open the app:
Dyld Error Message: Library not loaded: /usr/local/Frameworks/Python.framework/Versions/3.3/Python Referenced from: /usr/local/lib/libboost_python3.dylib Reason: image not found
Logged the console output of make to a file (make -j8 > log.txt 2>&1), and searched for python. It seemed fine, always in the Cellar path... Let's see what python versions there are:
cd /usr/local/Frameworks/Python.framework/Versions ls 2.7 3.4 Current
It appears as though the problem is that there is no 3.3, there is a 3.4.
First I tried cheating with a symbolic link to see if it would work...
ln -s 3.4 3.3
and ls -l to verify that it worked.
cd back into the repository. Remove the build directory, start over, rebuild.
This time, opening atimony.app works! But then it crashes right after opening. Dang.
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 ??? 0x0000000000000001 0 + 1 1 org.python.python 0x000000010fe64946 PyObject_CallFinalizer + 55 2 org.python.python 0x000000010fe64977 PyObject_CallFinalizerFromDealloc + 30 3 org.python.python 0x000000010fe70256 subtype_dealloc + 267
Undo our symbolic link:
cd /usr/local/Frameworks/Python.framework/Versions rm 3.3
Uninstall python3:
brew uninstall python3
Someone has already created a brew formulae for 3.3.
Edit the name of the file to python3, and the class name to be just Python3.
cd /usr/local/Library/Formula cp ~/Desktop/python3.rb python3.rb
Now install python3 again with this new formulae. The debug flag will output more text, so you can see if something messes up
brew install --debug python3.rb
Check to make sure that it is 3.3
cd /usr/local/Frameworks/Python.framework/Versions ls
Another thing to do, check that there is a python3-config file. There is a python3.3-config, but not a python3-config. Symbolic linking here should work:
cd /usr/local/bin ln -s python3.3-config python3-config
Go back to the repository, remove the build directory, start over, build it...
It builds! Opening antimony.app works, and it doesn't crash! Let's add a torus to celebrate.
I didn't see a torus in the menu, but it is already a resolved issue (cool!). Solved it by running make again.
You can find all of the source files in my repository