topics: [“mechanical design”, “cad”, “freecad”, “python”, “design philosophy”]
In the previous articles, we have seen that:
However, most engineers working in real projects will likely think:
“But in practice, we use Part Design, right?”
This article answers that question directly.
Do not abandon Part Design.
Move only the design conditions to code.
This is the practical, non-fragile solution
for introducing code-based design in real workflows.
This article focuses on clarifying
the division of responsibilities in design.
This is not about drawing everything with code.
First, let’s look at the final structure.

Params: Design conditions (upstream)Body: Geometry created with Part Design (downstream)The core of the design lives in Params,
and the geometry is generated as a result.
The core of the design is not:
It is the Spreadsheet.

LEN = 120.00 mm
WID = 40.00 mm
THK = 8.00 mm
Creating this state is the goal.
In this configuration,
the role of code is intentionally minimal.
The geometry itself is not drawn by code at all.
These remain essential in real-world design.
At the same time:
If these are embedded inside sketches,
they become hard to trace later.
Design conditions must live
in a place that can be read independently.
The essence of this approach is not
“turn everything into code.”
| Responsibility | Owner |
|---|---|
| Design conditions / decisions | Code / Spreadsheet |
| Geometry creation | Part Design (GUI) |
| Visual confirmation | CAD view |
Do not put everything in code.
Do not leave everything to the GUI.
This division is why the workflow remains robust.
Daily operation is very simple.
Params (Spreadsheet)There is no need to touch
Sketches or Pads.
Article 04 is where
the method becomes usable in real projects.
Code-based design is not meant
to replace GUI CAD.
It is a method to preserve design conditions
and design decisions in a reusable form.
Continue using Part Design,
and move only the upstream logic into code.
This is the realistic entry point
for Full Code Mechanical Design.
In the next article, we will discuss:
How to manage this design with Git
— diffs, redesigns, and handover.
This article focuses on understanding
the separation of responsibilities between
design conditions and geometry generation.
For detailed specifications of FreeCAD’s Spreadsheet
and Part Design workbench,
please refer to the official documentation.
This article does not recommend or restrict
the use of any specific product or license.