Computer Aided Design

Week 3 - Computer Aided Design

Here you will find my work description during this third week

Class notes

Link to my notes during class

Assignment

Our assignment for this week is: model (raster, vector, 2D, 3D, render, animate, simulate, …) a possible final project, and post it on your class page

I am going to create simple parts in many software to compare them. The part is one of my final project part. It consist in a ring slots to put magnet.

But first in order to user web compatible screenshots I want to user imagemagic to convert file in lightweight format.

Undex ubuntu subsystem I install image maging using following command line.

sudo apt install imagemagick

going to screenshots subfolder and do some tests cd assets\images\classes\03

Original drawing.png file 68ko 1288x910px

convert drawing.png -resize 1000 -qualty 75 drawing2.png

Result is 110ko and 1000x707px ?! Try to use other arguments

convert drawing.png -resize 1000 -quality 50 PNG8:drawing2.png

Result is 23ko and 1000x707px ! Great

according to this source we can use mogrigy to batch process files (Mogrify is a mainly used for batch processing, which means you want to modify existing files in batch mode)

so I type (after backuping images) mogrify *.png -resize 1000 -quality 50

but nothing happened mogrify -resize 1000 -quality 50 *.png

was better but not satisfying yet

mogrify -format PNG8 -resize 1000 -quality 50 *.png

Result is almost ok but extension is now .PNG8 mogrify -define png:color-type=3 -resize 1000 -quality 50 *.png

Annnnnd … everyting is gone :(, hopefully I made a backup mogrify -format PNG -resize 1000 -quality 50 *.png

is not optimal but I cannot do better right now

20180205 Edit I create a simple bash script to convert all files in a directory (using for loop)

Download convert script

Introduction

The only CAD software I am confortable with is Sketchup but I am here to study more.

2D CAD Sofwares

QCAD / Libre CAD

Download QCAD

Download LibreCAD - (QCAD fork - tottaly free)

I spent a few time trying to draw a sketch of a simple ring on QCAD / LibreCAD, here are some shots of it.

For this test I used QCAD that I already have installed on my computer but I assume LibreCAD work the same way.

I am not yet confortable with this software but I want to give a try and I know this is a powerfull software but unfortunately not realy parametric. However we could run some script using javascript and a dedicated API (not experienced yet).

I usually use sketchup even for 2D CAD design because of its simplicity. QCAD propose a lot of feature and I should spend more time discovering them. But now for the “simple” test, I was looking for simple commands like drawing circle, rotations, circular pattern. It was not really intuitive because I was looking for command in this jungle of feature. But with a little help from the documention, I finally manage to do my “simple” drawing.

QCAD

QCAD

Download QCAD file here

3D CAD Sofwares

OnShape

To use online go to OnShape web page

I just want to test OnShape first because I heard a lot of fabmanagers say it’s an easy to use software, so that is the occasion to give a try.

So I log in using information received by email from fab academy coodination.

I decided to create a simple ring with slot on top and on bottom

I created a sketch, draw a circle on the XY (Top) plan

Onshape

But I didn’t find how to set the diameter, so I decided to take a tour on the tutorial pages.

Onshape

I found the distance tool that allowed me to set the circle diameter.

Onshape

to create the ring I draw another circle but using the offet tool

Onshape

I validated the sketch then I extrude it in order to create a solid

Onshape

On the top surface I drew a circle using the offset -10mm and set it as a construction geometry. That helped me drawing a smallest circle that will become the slot. I used the circular pattern operation to create 2 other circles.

Onshape

Then I extruded these 3 circles into the solid and I applied a boolean (substraction) operation.

Onshape Onshape

Ok for the top suface of the ring, let’s see if we can do the same for the bottom.

I tried to copy/paste the secind sketch into the tird one, but it was not aligned. So I moved it and rotate it to 60 degrees

Onshape Onshape

I extruded the new skecth I substract the result.

Onshape

For testing purpose I tried exporting the part as STL and I generated a drawing as ISO A4 pdf.

Onshape

Here is onShape export as a parasolid document

Link to the document on OnShape plateform

Autodesk Fusion 360

Go to autodesk fusion360 web site (academic version), Create account, download and run to start designing.

After registering to autodesk platform I downloaded Fursion 360 and run it. I have a 30 days trial licence.

I follow the tutorial about sketches.

This part is slightly different becaus I added an inner extrusion in the ring.

I repeat sketches and extrusion to do the same part.

First I drew a 150 mm diameter circle on the XY plan.

Fusion360

Then I defined 20mm offset using right click command access.

Fusion360

I extruded a 18mm to create a body.

I drew an new circle on a new sketch and used the circular pattern (thanks Santi I did not find the command) to repeat it 3 times over the ring.

Fusion360

I extruded this sketch to create the slots.

The hard part was to copy this sketch to a new one on the bottom plane. The way I used was to copy/paste sketch entities and move -18mm on z-axis and rotate (60 degree) using the ring center as pivot.

Fusion360

I added an extra sketch and extrusion to creat thin inner XXX

Finally the part looed like that.

Fusion360 Fusion360

For testing purpose I tried exporting the part as drawing as ISO A4 pdf.

Fusion360

Here is the fusion 360 file

FreeCAD

download free cad from official web site, install it and run the software.

I never used FreeCAD before, and I feel confortable. Maybe because I used the previous CAD softwares just before. Sketching and extruding was not so difficult for a basic part. I played with plans, symetries and basic operations with ease. The only point I did’nt get how to assemble. I read that there is a special plugin for that but I did’nt explore that possibility.

Here are some screenchots of the design process used.

FreeCAD FreeCAD FreeCAD FreeCAD FreeCAD

Here is the freecad file : HappyRing3

Solidworks

Solidworks official website.

We recieved an email from fabacademy coordination team the process to download an education version of solidworks.

** Solidworks Expert Tip: ** In the assembly, when you import a component drag ** but do not drop ** component in the main panel, this could fix its origin, when you see the preview just click the yellow tick. So the origin of the component will be the origin of the assembly.

ferdi@fablabbcn.org

I decided to uses equations to create a parametric design Using equations

Defining variables. The sketching and apply some basing operations like extrusion, chamfer, circular pattern. My experience is taht this software is really convenient when your set all constraints, it is not flexible? I means it is easy to be in a mess besause of unplanned reations due to unset constraints.

SolidWorks SolidWorks SolidWorks SolidWorks SolidWorks SolidWorks SolidWorks

Here is the solid work file : HappyRing4

Rhinoceros 3D

Get Rhino from offcial website, you will have a free 90 days licence.

@santifu made me a quick demo of my part using Rhinoceros 3D

So I tried to redo what he did, using what I saw.

Draw sketches

Rhino

and creates solids using Extrude curved sufaces

Rhino

Do a boolean sustract operation

Rhino

Rhino

Here you can find the file produced

HappyRing5

Sketchup

get Sketchup for free, free 30 days of Pro features.

Since a few monthes Trimble propose a web version of sketchup that is also nice.

I am conforatble with this tool, so I took me 5 minutes to do the same part.

To avoid bad looking circle, don’t forget to set numbers of sides

Sketchup

Use offset tool

Sketchup

Duplicate circle using rotation (using Ctrl key)

Sketchup Sketchup

here is the result

Sketchup

HappyRing6

Antimony

Matt Keeter Antimony project web page

In a custom, fresh Linux Mint virtual machine, I installed sources of Antimony using provided commands

Install dependencies

Not written but don’t forget to update package lists

sudo apt update

sudo apt install git build-essential libpng-dev python3-dev libboost-all-dev libgl1-mesa-dev lemon flex qt5-default ninja-build cmake

git clone https://github.com/mkeeter/antimony

cd antimony

mkdir build

cd build

Build and launch the application

cmake -GNinja ..

** Issue found (TODO: submit issue) **

Build failed :

sudo apt install libqt5opengl5-dev

fixed my problem

cmake -GNinja ..

Build OK

ninja

And you can go take one (or more) cofee => VM Freezed :(

Allow more memory, but this could take a while

Antimony

./app/antimony

I run sudo ninja install to install antinomy in my path

Then I can play with it

The part is quite simple, just use difference of cylenders

Antimony

Antimony

Here is the file : HappyRing7

Openscad

get Openscad software from official web page

OpenScad is a scripting modeling tool. The model is simple and consist of substracting cylinders.

Here is the code:

// resolution
$fn = 50;

// Parameters
inner_radius = 120;
thickness = 30;
outer_radius = inner_radius + thickness;
height = 18;
padding = 0;
magnet_width=6.35;
magnet_height=3.17;

module ring(inner_radius, thickness, height) {
    difference() {
        // This piece will be created:
        cylinder(r=inner_radius + thickness, h=height, center=false);
     
        // Everything else listed will be taken away:
        cylinder(r=inner_radius, h=height, center=false);       
    }
}

difference() {
    
    ring(inner_radius,thickness,height);

    translate([0,0,height-5]) {
       ring(inner_radius+20,10,5);
    }
        
    translate([0,0,0]) {
       ring(inner_radius,20,5);
    }
    
    translate([inner_radius+10,0,height-magnet_height]) {
        cylinder(r=magnet_width, h=magnet_height, center=false);
    }
    
    rotate([0,0,120]) {
        translate([inner_radius+10,0,height-magnet_height]) {
            cylinder(r=magnet_width, h=magnet_height, center=false);
        }
    }
    
    rotate([0,0,240]) {
        translate([inner_radius+10,0,height-magnet_height]) {
            cylinder(r=magnet_width, h=magnet_height, center=false);
        }
    }
    
    //bottom holes
    rotate([0,0,60]) {
        translate([inner_radius+10,0,5]) {
            cylinder(r=magnet_width, h=magnet_height, center=false);
        }
    }
    
    rotate([0,0,180]) {
        translate([inner_radius+10,0,5]) {
            cylinder(r=magnet_width, h=magnet_height, center=false);
        }
    }
    
    rotate([0,0,300]) {
        translate([inner_radius+10,0,5]) {
            cylinder(r=magnet_width, h=magnet_height, center=false);
        }
    }
}

And here is the result

openscad

Download the file : HappyRing8

Conclusion

My feelings are that thoses Tested CAD Softwares are very powerfull but should not be used for the same goal

  • FreeCAD : is not so easy to enter but looks powerfull, assembly is missing

  • Rhino : Can do everything exceot parametric (will try grasshopper later)

  • Fusion 360 : Easy to use, but on some case shows its limits. It has CAM module, that will be very usefull

  • Solidworks : Do what is made for, powerfull but easy stuff could be difficult (copy paste of sketch in different plan), ideal for mechanical designs

  • OnShape : First to be tried, and fantastic, collaborative, maybe limited on assemblies, I would say I recommand it for hobby projects

  • Sketup : Great for simple sketches, fast and easy to use, I recommand for simple projects

  • Antimony : I love this, but I need more time to explore more possibilities

  • openscad : easy to use for simple parts

If I try to compare them

Tables - Usability - Accessibility - Potential - Total
FreeCAD 2 5 3 10
Rhino 3 2 4 9
Fusion 360 4 3 4 11
Solidworks 4 1 4 9
OnShape 4 4 4 12
Sketchup 4 4 3 11
Antimony 3 3 3 9
OpenScad 3 4 2 9

I cannot decide wich one I will use to design my whole final project, because I want it open source for every one to make their own, so I think I have to discard the pay ones (Solidworks, Rhino). OnShape is very user-friendly and free solution for opensource projects but we don’t know if it will remains free, and your files have to be hosted on their cloud. FUsion is Free for is actually free for startups and hobbyist but will it remains ?

I feel like I am loking for something parametric in order to propose highly custumizable product. I would like to use a Command line interface (CLI).

The complexity of my project is not focused on design parts, not particular assembly.

As I use a proper Common Hardware Interface, I will probably work with several CAD softwares, exploiting each of them for their advantages (parametric, hierarchical).




Share this story