100% found this document useful (1 vote)
274 views70 pages

3d Freecad A Hackable Design Platform

This document summarizes a presentation about FreeCAD, an open-source parametric 3D modeling software. FreeCAD is designed to model anything that can be built in the real world. It uses a modular architecture that allows different modules to define object types. The core provides a container for modules and a 3D viewer. FreeCAD is highly customizable through its use of Python scripting. It can be embedded in other applications or used to power web applications. This allows users to gain powerful capabilities through scripting.

Uploaded by

Otto Gonzalez
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
274 views70 pages

3d Freecad A Hackable Design Platform

This document summarizes a presentation about FreeCAD, an open-source parametric 3D modeling software. FreeCAD is designed to model anything that can be built in the real world. It uses a modular architecture that allows different modules to define object types. The core provides a container for modules and a 3D viewer. FreeCAD is highly customizable through its use of Python scripting. It can be embedded in other applications or used to power web applications. This allows users to gain powerful capabilities through scripting.

Uploaded by

Otto Gonzalez
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 70

FreeCAD

A hackable design platform

Yorik van Havre


FOSDEM 2015
● Please tweet with #FreeCAD

● Interrupt me when you want

● PDF of this talk on


http://yorik.uncreated.net

● This presentation is shamelessly


copied from a talk by Ryan Gordon
Yorik van Havre
● Architect (houses, not information),
and one of the main FreeCAD devs

● http://yorik.uncreated.net

[email protected]

● @yorikvanhavre
Self-promotion moment
(You can skip in 5...4...3...)

http://www.uncreated.net
http://www.freecadweb.org
● Homepage with download info, etc

● Documentation wiki

● VERY active forum (← go there)

● Bug tracker
What is FreeCAD
● Made to model “anything that will be
built in the real world”

● Parametric (3D objects are


controlled by parameters, for ex.
Height or Length, or another object)

● LOVES standards
Modularity
mech design
GUI

core architecture
GUI GUI

ship design
GUI
...
Multi paradigm
● Core provides only a container for
modules and a 3D viewer

● The type of objects that can be


contained in a FreeCAD document
are defined in modules

● Any kind of stuff can coexist in a


same document
Heavy dependencies
● Qt (interface)
● Python (scripting & more)
● OpenCasCade (geometry kernel)
● OpenInventor/Coin3D (3D display)

● Many more, each module has its


own: KDL, IfcOpenShell, matplotlib,
openSCAD, etc...
Python everywhere
● The “glue” between “core” and GUI

● Some modules fully written in python

● The user can access just anything,


and therefore gain the powers of a
GOD full C++ developer

● Learn while doing


Recording?

wait... that means...


Your work can be replayed
Separation between “core” and GUI?

wait... that means...


Yes.
>>> import FreeCAD
● FreeCAD runs fully without the GUI

● It is embeddable in other apps with


one line of code

● All its modules still work (without


their GUI too)

● It can then act as a (web) server

● It could have other GUIs


The web!
● Web applications that use FreeCAD
in the background

● WebGL interfaces for FreeCAD

● Anything that has not yet been


imagined
Why python, after all?
● Powerful C API, very easy to embed
and make dialog with the C++ core

● Almost every lib has python bindings


nowadays

● The open-source community is fond


of it, easy adoption
Useful apps that use python
opensource proprietary

● Blender: yes ● Autocad: yes

● Inkscape: yes ● SolidWorks: no

● OpenSCAM: yes ● Catia: yes

● GRASS: yes ● Rhino: yes

● Salome: yes ● SolidEdge: yes

● OpenSCAD: yes ● Revit: yes

... ...
Why would users want it?
● Making objects in real-life already
involves a lot of tinkering

● Technical and precise 3D modeling


quickly becomes very complex (lots
of ways to do things)

● Paradigms evolve constantly


Now for some serious stuff...
Access the geometry kernel
via FreeCAD's own API
>>> import Part

>>> l = Part.makeLine((0,0,0),(2,2,0))
>>> Part.show(l)

>>> c = Part.makeBox(2,2,2)
>>> Part.show(c)
Access the geometry kernel
directly
>>> import OCC
>>> from OCC.BRepPrimAPI import
BrepPrimAPI_MakeBox

>>> c = BrepPrimAPI_MakeBox(10,20,
30).Shape()

>>> p = Part.__fromPythonOCC__(c)
>>> Part.show(p)
Access the interface
via Qt's own python libs
>>> from PySide import QtGui, QtCore
>>> mw = FreeCADGui.getMainWindow()
>>> d = QtGui.QDockWidget()
>>> d.setWidget(QtGui.QCalendarWidget())
>>> mw.addDockWidget(d)
Access the OpenGL 3D view
via Coin3D's python lib
>>> from pivy import coin
>>> win = FreeCADGui.ActiveDocument.
ActiveView.getSceneGraph()
>>> win.addChild(coin.SoCube())
Root

Separator Separator

Position Color
Cube
xyz red
The user can
● Quickly record a couple of actions

● Tweak it afterwards

● Create highly complex GUI elements

● Create the needed screen behaviour


Typical learning path
● Start by recording some actions: my
first macro!

● Publish it on the FreeCAD website

● Tweak it, add some salt

● Man, I need a dialog...


The community usually
● Suffocates cool new users with help

● Guides through the complex world of


technical 3D

● Provides a lot of feedback and


testing

● Decides about anything


The FreeCAD development
● No goals, no schedule, no law

● No release plan. No plan at all,


actually

● No typical “user-to-developer” thing

● Most of the problems get solved


directly on the forum
And the developers?
● Just 3 people with write permission

● General knowledge of the whole app

● Very tight attention to the structure


and the principles

● Promote FWD (FreeCAD World


Domination)
“We're moving into this future
where the factory is everywhere,
and the design team is
everyone. That is an industrial
revolution”

Alastair Parvin (TED talk)


http://www.wikihouse.cc
Thank you!

You might also like