Computer-Aided Design
Assignment
- Model (raster, vector, 2D, 3D, render, animate, simulate, ...) a possible final project.
- Compress your images and videos.
- Post a description with your design files on your class page.
Vectors, Rasters, and Everything 2D
(TODO)
Inkscape, The Most Used Software in My Fab Lab
Which is Inkscape. This open-source app is one of the most used here in our fab lab, and I love it. You can do (almost) anything with it. To begin, I had to install it (it was already installed, but I'm adding this for people who have not yet installed it), so I opened the terminal and used Winget to install it:
Once installed, I opened it up, and this is what Inkscape looks like:
In Inkscape, I created the text and the image of my final project, as you can see below.
GIMP
In GIMP, I added the background image.

Modeling, CAD, and Everything 3D
Here we go, time for my least favorite type of software that we use here in the fab lab. I have never been able to use any other modeling software than Tinkercad. This week, I really want to get into Blender as it looks to be incredibly powerful, so that is something I would like to explore, same with FreeCAD. I have tried countless times to get into FreeCAD, but it has such a steep learning curve, especially for someone who has never used professional 3D CAD software, that I always give up. One thing I have promised myself this week is to not give in to the calls of Fusion 360! I do not personally like their business practices, and I will only use Fusion if I do not like anything else. But first, a small side quest:
Feature | FreeCAD | SolidWorks | Solid Edge | Fusion | Tinkercad | Onshape | Blender | OpenSCAD |
---|---|---|---|---|---|---|---|---|
Cost for personal | $0 | $48 / yr | $0 | $0 | $0* | $0* | $0 | $0 |
Cost for commercial | $0 | ~\(4000 + ~\)1500 / yr* | ~$1000 / yr | $680 / yr | $0* | $1500 / yr | $0 | $0 |
Parametric | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ✅ |
Open source | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
Operating systems | Windows, macOS, Linux | Windows | Windows | Windows, macOS | All | All | Windows, macOS, Linux | Windows, macOS, Linux |
Runtime | Local | Local + cloud storage | Local + cloud storage | Local + cloud storage | Cloud | Cloud | Local | Local |
Features | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐ |
Ease of use | ⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
This table is from Digikeys Tutorial for FreeCAD
"Small" Linux Side Quest
Before we start, this might seem irrelevant, but trust me, it is not. To get started, I decided to start with installing WSL (Windows Subsystem for Linux) as Neil kept recommending it throughout the meeting. First things first, I installed WSL with this command that I ran in PowerShell as an admin:
Which I found from this tutorial. Next, I went on a small side quest to get oh my posh installed, but that is not relevant here, and this is already a side quest, so... Anyways, let's continue. The next day, the Fab Lab Iceland community had a meeting discussing the meeting, and the conversation went a little to Antimony, and I was intrigued. I guess I had not paid attention when Neil was talking about it, so I googled it and decided to give it a try, but it was only for Linux, so defeated, I gave up until I saw that WSL can run GUI apps, including Antimony. So I tried it, and it worked! I just opened up WSL and typed:
Went into the start bar and opened up Antimony (Ubuntu), and then I could use it just like any other native Windows app!
Antimony is a really cool concept but a little too technical for me, but maybe someday I will try to understand it. But that was when I decided to close this small side quest and installed FreeCAD.
A couple of errors
Now something I want to mention, it did work completely fine, but for some reason, I kept getting these errors in the terminal, but since nothing was going wrong, I just ignored them.
MESA: error: ZINK: failed to choose pdev
libEGL warning: egl: failed to create dri2 screen
MESA: error: ZINK: failed to choose pdev
glx: failed to create drisw screen
I used ChatGPT and asked it why I was getting these errors, and it told me it was something connected to Vulkan, OpenGL, or DirectX, so I just decided that if it works, it works, so no need to mess around with it and break it.
FreeCAD, The Open Source CAD Software
FreeCAD is a free and open-source parametric 3D computer-aided design (CAD) software primarily used for designing real-world objects of any size. It is especially popular among engineers, architects, designers, and hobbyists who require precise modeling and customizable workflows. (From ChatGPT, Prompt: What is FreeCAD?)
To begin, I opened up PowerShell and used what has quickly become my favorite tool on Windows, Winget. To install FreeCAD, I typed:
In the same Fab Lab Iceland meeting, Svavar Konráðsson talked about a FreeCAD interface addon that he had been using in his lab called Ribbon. I thought it looked nice and followed this tutorial that he made on the Fab Ísafjörður site.

After installing Ribbon, I got started designing, loosely following this tutorial from DigiKey.
After designing the original shape, I was going to add a USB-C port on the side, but it just would not work. I kept getting this error:
First, I thought that maybe I did not have enough constraints, but after trying to redraw it, I noticed that I had accidentally enabled Construction Lines. After making sure nothing that was not supposed to be a construction line was a construction line, it worked, and I was able to finish my final project mockup. I think I am going to stick to FreeCAD as I want to try to use only open-source software as much as I can! Here you can see my design. I did not know which one was better, so I just decided to add both options. Personally, I like XHTML, but I am not sure how widely supported it is.
Design Files
How to Export HTML or XHTML files from FreeCAD
I was able to make the files above by going into file, export and selecting WebGL/X3D (*.xhtml) or WebGL (*.html)
- FreeCAD Final Project .FCStd
- FreeCAD Final Project .STL
- FreeCAD Final Project .XHTML
- FreeCAD Final Project .HTML
Testing More CAD!
After FreeCAD, I decided to also check out OnShape and SolidWorks by modeling the lid in both. OnShape is a very good CAD. In my opinion, its UI is quite intuitive, and it has many features. It is also free for personal use but comes with the caveat that everything is public unless you pay. SolidWorks is also a good choice, but in my opinion, it is a little too much, and the interface looks a little outdated.
OnShape
Onshape is a cloud-based Computer-Aided Design (CAD) software developed by PTC. It is primarily used for parametric 3D modeling, similar to traditional CAD software like SolidWorks, Fusion 360, and FreeCAD. However, Onshape differentiates itself by being fully web-based, meaning it runs entirely in a browser without requiring local installation. (From ChatGPT, Prompt: What is OnShape?)
Design Files
SolidWorks
SolidWorks is a parametric 3D CAD (Computer-Aided Design) software developed by Dassault Systèmes. It is widely used in engineering, product design, and manufacturing for creating detailed 3D models, assemblies, and 2D drawings. (From ChatGPT, Prompt: What is SolidWorks?)
Design Files
Choice of CAD
I decided to use FreeCAD because it is free and open-source, ensuring I won't lose access to it. Despite not having the most intuitive interface, it is quite powerful, and it seems like the developers are working to improve it.
Animating and Rendering
Blender
Blender is a free and open-source 3D creation suite used for modeling, sculpting, animation, rendering, compositing, and simulation. It is widely used by 3D artists, game developers, animators, and visual effects (VFX) professionals due to its powerful capabilities and active community. (From ChatGPT, Prompt: What is Blender?)
To get started, I imported my model from FreeCAD into Blender and just started trying stuff. After getting familiar with the UI, I entered the shading tab. After messing around a bit, I had this:
This made my model look 3D printed by using this image I found on the internet. Not sure if I used it correctly; it looks better in the images on the website, but I ran out of time. Next, I animated it using this video as a reference and finally rendered it and stitched all the images together using the image editor following this tutorial from Blender.
Compressing Images and Video
To get started, I downloaded the following tools:
Installing FFmpeg
There are two ways to install FFmpeg:
A) Run this command in the terminal on Windows:
B) Alternatively, you can download the ZIP file from the FFmpeg website linked above.
After installation, I discovered that both FFmpeg and ImageMagick operate without a graphical user interface (GUI), and you must use the terminal to interact with them.
ImageMagick
To batch convert images, I opened the image folder in the terminal by typing CMD in the search box. Then, I used the following command to resize, compress and convert all PNG images to JPG:
To convert a single image, I used this command:
Warning
If ImageMagick is not working, check if you are using the right command by replacing magick
with convert
if you are using either Linux or macOS.
FFmpeg
Similarly, I optimized videos by navigating to the video folder and typing CMD to open the terminal. I then ran the following command, which can be found on Svavar's Site: