FreeCAD Logo FreeCAD 1.0
  • English Afrikaans Arabic Belarusian Catalan Czech German Greek Spanish Spanish Basque Finnish Filipino French Galician Croatian Hungarian Indonesian Italian Japanese Kabyle Korean Lithuanian Dutch Norwegian Bokmal Polish Portuguese Portuguese Romanian Russian Slovak Slovenian Serbian Swedish Turkish Ukrainian Valencian Vietnamese Chinese Chinese
  • Features
  • Download
  • Blog
  • Documentation
    Documentation index Getting started Users documentation The FreeCAD manual Workbenches documentation Python coding documentation C++ coding documentation Tutorials Frequently asked questions Privacy policy About FreeCAD
  • Contribute
    How to help Sponsor Report a bug Make a pull request Jobs and funding Contribution guidelines Developers handbook Translations
  • Community
    Code of conduct Forum The FPA GitHub GitLab Codeberg Mastodon Matrix IRC IRC via Webchat Gitter Discord Reddit Twitter Facebook LinkedIn Calendar
  • ♥ Donate

Donate

$
SEPA Information
Please set up your SEPA bank transfer to:
Beneficiary: The FreeCAD project association
IBAN: BE04 0019 2896 4531
BIC/SWIFT: GEBABEBBXXX
Bank agency: BNP Paribas Fortis
Address: Rue de la Station 64, 1360 Perwez, Belgium

While Stripe doesn't support monthly donations, you can still become a sponsor! Simply make a one-time donation equivalent to 12 months of support, and you'll gain access to the corresponding sponsoring tier. It's an easy and flexible way to contribute.

If you are not sure or not able to commit to a regular donation, but still want to help the project, you can do a one-time donation, of any amount.

Choose freely the amount you wish to donate one time only.

You can support FreeCAD by sponsoring it as an individual or organization through various platforms. Sponsorship provides a steady income for developers, allowing the FPA to plan ahead and enabling greater investment in FreeCAD. To encourage sponsorship, we offer different tiers, and unless you choose to remain anonymous, your name or company logo will be featured on our website accordingly.

from 1 USD / 1 EUR per month. You will not have your name displayed here, but you will have helped the project a lot anyway. Together, normal sponsors maintain the project on its feet as much as the bigger sponsors.

from 25 USD / 25 EUR per month. Your name or company name is displayed on this page.

from 100 USD / 100 EUR per month. Your name or company name is displayed on this page, with a link to your website, and a one-line description text.

from 200 USD / 200 EUR per month. Your name or company name and logo displayed on this page, with a link to your website and a custom description text. Companies that have helped FreeCAD early on also appear under Gold sponsors.

Instead of donating each month, you might find it more comfortable to make a one-time donation that, when divided by twelve, would give you right to enter a sponsoring tier. Don't hesitate to do so!

Choose freely the amount you wish to donate each month.

Please inform your forum name or twitter handle as a notein your transfer, or reach to us, so we can give you proper credits!

The FreeCAD document
Import and export to other file types
Manual start
  • Introduction
  • Discovering FreeCAD
    • What is FreeCAD?
    • Installing
      • Installing on Windows
      • Installing on Linux
      • Installing on Mac OS
      • Uninstalling
      • Setting basic preferences
      • Installing additional content
    • The FreeCAD interface
      • Workbenches
      • The interface
      • Customizing the interface
    • Navigating in the 3D view
      • A word about the 3D space
      • The FreeCAD 3D view
      • Selecting objects
    • The FreeCAD document
    • Parametric objects
    • Import and export to other filetypes
  • Working with FreeCAD
    • All workbenches at a glance
    • Traditional modeling, the CSG way
    • Traditional 2D drafting
    • Modeling for product design
    • Preparing models for 3D printing
      • Exporting to slicers
      • Converting objects to meshes
      • Using Slic3r
      • Using the Cura addon
      • Generating G-code
    • Generating 2D drawings
    • BIM modeling
    • Using spreadsheets
      • Reading properties
      • Writing properties
    • Creating FEM analyses
    • Creating renderings
  • Python scripting
    • A gentle introduction
      • Writing Python code
      • Manipulating FreeCAD objects
      • Vectors and Placements
    • Creating and manipulating geometry
    • Creating parametric objects
    • Creating interface tools
  • The community

FreeCAD employs a parametric modeling approach, where the geometry of objects is governed by underlying rules and parameters rather than being freely sculpted. This means each component's dimensions and characteristics are defined by parameters, which instruct the program on how to generate the geometry. For instance, to create a cylinder, parameters like radius and height are specified. With these values, FreeCAD generates the precise geometrical shape.

In FreeCAD, parametric objects are essentially small, programmable scripts that execute when any parameter is altered. These parameters can vary widely, including integers and floating-point numbers, real-world dimensional values such as millimeters, meters, or feet, coordinates (expressed as x, y, z), text strings, or even references to other objects. Such versatility in parameters allows the creation of complex models through a series of chained operations where each new object derives its characteristics from a previous one, while also introducing additional attributes.

For example, consider creating a solid cubic object through parametric modeling. You start with a basic 2D rectangular shape labeled as 'plate.' of length l and width w. This sketch defines the base of your cubic object. Next, you define an 'Extrude' operation, or 'Pad,' specifying the distance to push or pull the sketch into a 3D object. This results in a solid cubic form based on the Sketch's shape and the extrusion distance specified.

On the top face of the plate you sketch a circle of a given diameter d. You then use this circle to create a pocket (remove material) from the original plate.

If you decide to change either of the dimensions of the plate, or of the circle, the final object would be also modified. Thanks to the use of a parametric design approach, there is no need to redo the object from the beginning.

  1. Recomputation is not always automatic. Heavy operations, that might modify a big portion of your document, and therefore take some time, are not performed automatically. Instead, the object (and all the objects that depend on it) will be marked for recomputation (a small blue icon appears on them in the tree view). You must then press the recompute button (or Edit->Refresh) to have all the marked objects recomputed.
  2. The dependency tree must always flow in the same direction. Loops are forbidden. (See DAG, and DAG view) You can have object A which depends on object B which depends on object C. But you cannot have object A which depends on object B which depends on object A. That would be a circular dependency. However, you can have many objects that depend on the same object, for example, objects B and C both depend on A. Menu Tools -> Dependency graph shows you a dependency diagram like on the image above. It can be useful to detect problems.

In FreeCAD's parametric modeling process, examining the dependency tree of an object provides a clear insight into the sequential build and relationships within a model. At the foundation of the structure in the above example is the 'Plate Sketch,' which serves as the base for the initial form of the model. A 'Pad' operation is then applied, which adds material to this foundational sketch, effectively creating a three-dimensional structure from the two-dimensional base.

Following this, a 'Circle Sketch' is drafted on the newly formed surface. This circle forms the basis for the subsequent 'Pocket' operation. The pocket operation strategically removes material from the structure, essentially carving out a portion based on the circle sketch. This process of adding and then subtracting material allows for complex geometries and features to be integrated into the basic model seamlessly.

Through this sequence of operations—starting from the base sketch, adding volume with a pad, and creating detailed features with additional sketches and pockets—the final object takes shape. Each step in this chain depends on its predecessor, illustrating the interconnected nature of parametric design in FreeCAD.

Not all objects are parametric in FreeCAD. Often, the geometry that you import from other files won't contain any parameters and will be simple, non-parametric objects. However, these can often be used as a base, or starting point for newly created parametric objects, depending, of course, on what the parametric object requires and the quality of the imported geometry.

All objects, however, parametric or not, will have a couple of basic parameters, such as a Name, which is unique in the document and cannot be edited, a Label, which is a user-defined name that can be edited, and a placement, which holds its position in the 3D space.

Finally, it is worth noting that custom parametric objects are easy to program in Python.

Read more

  • The properties editor
  • How to program parametric objects
  • Positioning objects in FreeCAD
  • Enabling the dependency graph


The FreeCAD document
Import and export to other file types
Manual start

This page is retrieved from https://wiki.freecad.org/Manual:Parametric_objects

Get in touch!
Forum GitHub Mastodon Matrix IRC Gitter.im Discord Reddit Twitter Facebook LinkedIn

© The FreeCAD Team. Homepage image credits (top to bottom): ppemawm, r-frank, epileftric, regis, rider_mortagnais, bejant.

This project is supported by: , KiCad Services Corp. and other sponsors

GitHubImprove this page on GitHub