Search Tillamook Rage
Google Custom Search

5.05.2008

CAD and 3D Graphics Programs For Linux

Boot and I have been asked quite a bit about CAD in Linux, so we decided to put together a quick rundown of CAD and animation programs for your reading enjoyment. This is by no means an exhaustive list, and we haven't had much experience with several of these applications, we're just trying to give you a starting point so that you can search out what works for you. If you see something that should be added to our list, please let us know in the comments section.

2D CAD
QCaD (available in the Ubuntu repository)
QCaD (Figure 1) is a fairly simple 2D CAD application that you can use to create and dimension drawings. It allows you to separate drawing entities out into separate layers, has snap-to functionality for both a standard grid and other entities (endpoints, midpoints, etc), can open and save AutoCAD DXF formats (2000 and R12), and much more.

You can install QCaD by opening the Add/Remove Applications dialog (Applications > System > Add/Remove...) and typing qcad in the search field. That will bring up the entry for QCaD that can be used to install it. Alternatively, you can open a terminal window (Applications > Accessories > Terminal) and type

sudo apt-get install qcad

Figure 1

SagCAD (Available in the Ubuntu Repostitory)
SagCAD (Figure 2) is a 2D CAD program with a few more features than you get with QCaD. I did find SagCAD somewhat less intuitive, but you might decide that the added functionality is worth it in the long run. You should try both QCaD and SagCAD to see which one you like better. One really nice feature that SagCAD has that I didn't see in QCaD is CAM output. If you have a hobbyist level machine shop in your garage, this might come in very handy. I haven't gotten to try this feature out yet though, so I don't know how well it works.

You can install SagCAD the same way as QCaD above, just replace qcad with sagcad when searching or installing.

Figure 2

3D CAD
avoCADo
avoCADo (Figure 3) is a 3D CAD system that is still in its pre-alpha stage, but it shows great promise. One of it's core principles is to be usable by those both with and without 3D CAD experience. To achieve that goal a few things will have to be compromised, but they are trying to make it fit as many people as possible. If you want to try it out, you can download it from its Sourceforge site here. You just extract it (I put it in /opt) and run the avoCADo script in the program folder to launch the program. To do this, open a terminal window (Applications > Accessories > Terminal), use the cd command to change to the avoCADo directory (to the location that you extracted it to), and type

./avoCADo

One important thing to note is that you have to run avoCADo using version 6 of Java. Earlier versions of Java give an error about the avoCADo jar file being corrupt.

Currently you only have the options of revolution and extrusion to create 3D features, with no add or subtract functionality, but you can still make several fun things with it. The avoCADo crew is also looking at building in features to make it easy to share your drawings with others, so people doing open idea collaboration will have a great tool if this project takes off. There has also been talk of a community part repository for shared models to help cut down on drawing time. If you need a bolt in your assembly drawing, you'll just go to the repository and get one. No need to redraw it. I encourage anyone reading this with an interest in CAD to have a look and get involved.

Figure 3

freeCAD
freeCAD (Figure 4) is a 3D drawing and motion simulation package whose website makes it unclear whether or not it's open source. According to the website it is built using open source tools, but to me that doesn't mean that it's open source. Also, there are placeholders inside the main window where presumably advertisers would place their ads to lure you into buying things. I'm not a big fan of that, but if you need the functionality that this package offers, you might be willing to put up with it.

Installing freeCAD is not as easy as installing some of the other programs in this post, but it's not impossible by any means either. Download the main program's zip file and the patch zip file from the download site. Extract both of those files into a new directory, open a terminal (Applications > Accessories > Terminal), navigate to the directory you extracted freeCAD to using the cd command (cd ~/Destkop would take you to the desktop if you downloaded it there), and type

./visual freecad8.im

and hit Enter, replacing the 8 in the terminal line with the version number that you downloaded.

Don't expect to learn this one in a hurry. The tutorials leave a bit to be desired, and it's complex enough that it's difficult to just hack your way through. I would suggest trying the "tutorials" out and then opening one of their pre-built assemblies to get an idea of how it was created. If you need to do motion simulation and analysis, this might be a contender for you.

Figure 4

BRL-CAD
BRL-CAD (Figure 5) was originally created by the U.S. military (Army) for solid modeling, rendering, and "system performance analysis" (whatever that means), but is now maintained by the open source community. It's a collection of over 400 programs that have been developed over the course of many years, and is very powerful, with a correspondingly difficult learning curve. There are many examples of the rendering capabilities of BRL-CAD on its website, and if you want a powerful 3D modeling and realistic rendering system, this might be the one for you. Be prepared to spend quite a bit of time just to figure out if it's what you need though.

I was only able to find the current version in the form of a deb file, so people using a non-Debian distro may need to poke around on the Internet a bit to find a tgz or rpm. Once installed, I found all the files in the /usr/brlcad directory, and the main command window can be launched by opening a terminal window (Applications > Accessories > Terminal) and typing

/usr/brlcad/bin/mged

and hitting Enter. Other than that, all I can tell you is to read a lot and experiment. There's a ton of things to learn, and way too much to cover in this post.

Figure 5

3D GRAPHICS AND ANIMATION
Blender3D
Blender3D (Figure 6) is an extremely powerful 3D animation package. It's kind of like an open source Autodesk Maya. Don't expect the learning curve to be easy though if you don't have any experience in the 3D animation industry. The Blender3D user interface is very powerful and makes sense once you learn it though. Part of this user un-friendliness is offset by the fact that there are many video tutorials out there to help you get started. I was totally lost at first, but after watching a few videos, I was amazed at what I could do. A CAD program this isn't though. It's more like working with clay than doing precision machining work.

Make sure you're willing to invest the time to get familiar with Blender. Fifteen minutes of hacking won't be enough to figure out how to use it and have fun with it. To download and install Blender, go to the main website and click the Download link at the top. There were two versions available at the time of this writing, so I grabbed the the one that used the version of Python that I had (2.5). If you want to make sure that Python is installed on your system and to check what version it is, open the Add/Remove Applications dialog (Applications > System > Add/Remove...), and type python in the search field. If you see the Python entry with a check mark, it's installed so look at what version of Python it is and make sure you download the matching version of Blender.

Figure 6

Another thing that you will have to do is install the Open Audio Library and one of its supporting libraries. To do this, open the Synaptic Package Manager (Applications > System > Synaptic Package Manager) and search (Edit > Search...) for libopenal. Several entries will come up, but you want to select the first main libopenal entry (Figure 7). Your version numbers may vary slightly, but hopefully Figure 7 gives you a good idea of what you're looking for. Don't forget to click the Apply button. The next thing to do is repeat this process for libalut.

Figure 7

Now, you're ready to double click on the file and extract it's contents. I usually put the extracted folder in /opt and then create a symbolic link to it in /usr/bin so that I can launch it from a terminal without typing in its full path. This makes it less cumbersome to create a launcher for the program as well. Once you've put the extracted folder with all of the Blender files in /opt (or wherever you decided to put it), you can create a symbolic link to it by typing the following in a terminal window.

sudo ln -s /opt/blender_dir/blender /usr/bin/blender

Notice that in the line above, you would replace blender_dir with the name of your blender folder. Now you can just double click the blender binary in the blender folder, or you can type blender in a terminal window to launch it.

CYCAS For Architects
For all of you hobbyist architects out there, the pickings are currently slim. You can always use QCaD and SagCAD for your floor plans, and something like BRL-CAD for renderings of your structure, but that may not cut it for some of you. So that I wouldn't leave anyone out, I managed to dig up CYCAS (Figure 8). CYCAS is an architectural drawing program that is available for free if you promise not to use it for commercial applications, and if you can put up with some reduced functionality (the most annoying of which is support for only one drawing layer). To see what functionality is not available in the free version, check their website. If you don't need the power of a more advanced architectural drawing package, and are just going to use it for personal projects, this might be worth a shot. You can find the download for it here, but be aware that you'll have to enter your name and email address to get at the download.

Figure 8

Wrapping Up
I hope this gives you a start in the world of CAD and 3D modeling in Linux. As I said before, this is not an exhaustive list. There are several more CAD programs out there, we just feel that these will give you a good start. Let us know what you find and what you think. We always welcome your comments.

Enjoy!

Additional Reading
Sybex Blender Book

Created:05-05-08
Revised:07-02-08

1 comment:

JeremyW said...

Sean Morrison, the BRL-CAD Project Lead saw this post and sent me some information via email that I wanted to share with everyone. I appreciate Sean's input and hope that his response encourages many of you to give BRL-CAD a try.

First of all, he gave me an explanation of what "system performance analysis" is. What he said is the following...

"System performance analysis refers to a feature of BRL-CAD where it's actually used to characterize the performance of a given system (hardware + operating system + compiler) via a performance benchmark suite.

The BRL-CAD Benchmark (invoked via the 'benchmark' command) calculates the computing power of a given configuration and provides a summary 'figure of merit' that can be used in comparisons and characterizations."

Sean also gave me some contact information that you can use to find out more about BRL-CAD or get help with it.

IRC:
#brlcad on irc.freenode.net
CGI:IRC available at
http://irc.brlcad.org

Mailing Lists: http://sourceforge.net/mail/?group_id=105292

E-mail:
devs at brlcad dot org

Thanks for the information Sean!