FreeCAD Managing Expectations

Purpose
This wiki page is intended for new FreeCAD users coming from other CAD/CAM solutions.

Opening statement
Many hobbyists, freelance designers and small businesses often seek refuge from the high costs and licensing restrictions of commercial software, or perhaps you merely chose FreeCAD because you believe in the philosophy behind FOSS. In either case, WELCOME! There are many users, just like you who have successfully made the transition to FreeCAD for their personal and professional needs. This wiki page is designed to help set you on the path of success and establish some realistic expectations while diving into the FreeCAD Way, which is most likely quite a bit different than what you may have grown accustomed to with other popular CAD software.

What can I expect?
At its core, FreeCAD is a powerful parametric modeler. It uses a modular 'workbench' concept, where each workbench is responsible for specific tasks and functions. This construct is extremely powerful and can be successfully used for many purposes. FreeCAD is actively developed, used in production, and quite stable; but like any other CAD program, it is not 100% stable.

Coming from another CAD program you may find FreeCAD's terminology, structure and organization to be slightly foreign. You can also expect to make adjustments to your workflows, learn functional workarounds or utilize our powerful macro ecosystem, but in most cases you will be able to achieve what you want. And if you need help: we have a very active and responsive forum willing to assist. Among the forum members there are bound to be (former) users of your current CAD program. So do not hesitate to tap into that resource.

How can I contribute?
There are many ways: you can make a donation, help with forum questions, or write documentation or code. See Help FreeCAD.

Official

 * This Wiki
 * The Help Forum
 * Work-arounds for known problems

Un-official
The following YouTube Channels have reasonably good quality content focused around FreeCAD:
 * MangoJelly Solutions (several beginner, intermediate and advanced video playlists)
 * Joko EngineeringHelp (intermediate/advanced videos)
 * Brodie Fairhall (A couple of videos helping Fusion 360 users transition to FreeCAD)
 * and more... it is recommended to ignore any tutorials not based on version 0.18 or newer.

"Can FreeCAD do XYZ?"
FreeCAD already has the ability to do the following type of work:
 * Spline-based parametric modeling using the Part, Part Design and Sketcher workbenches
 * Surface/Curves modeling using NURBS
 * Mesh import/modifications
 * Assembly simulation (3 different approaches, A2+, ASM3, and ASM4 are all actively developed)
 * Architectural/BIM design
 * Mechanical Stress Analysis (https://wiki.freecadweb.org/FEM_Workbench FEM/FEA])
 * Computational Fluid Dynamic Analysis (CFD)
 * Technical Drawings / Drafting
 * and more core and external workbenches...

"User interface (UI/UX) is ugly, odd, confusing or not like XYZ Software!"
FreeCAD allows for extensive customization of the user interface, while we realize the default colors or arrangement of elements may not be pleasing to everyone, we encourage you to tailor it to your own specific needs and work-flows. If you feel you've come up with what could be a popular arrangement/theme/customized toolbars etc. please feel free to look into leveraging the recently added "Preference Pack" feature and share it with the community. Perhaps your efforts will help ease someone less experienced/patient in their transition into FreeCAD. FOSS software thrives on all sorts of community contributions and this is a common topic of discussion.

"Why doesn't this feature work like in XYZ software?"
FreeCAD has a development pedigree spanning over 20 years of development. Functions and behaviors are heavily reviewed, debated and assessed before they are added or changed. Have an open mind, while it may not be apparent, there is likely a very good rationale behind such things. This isn't to say that FreeCAD is perfect, but please consider that what you've grown used to may not be the only or best way to get something done.

"I can't figure out the workflow of FreeCAD!"
FreeCAD has a philosophy to not dictate 'how' you use it. Rather it provides tools and a wide array of options under which you 'can' use them. This means two things. First, the software isn't going to necessarily 'guide' or 'steer' you in a certain style of workflow. Second, this means you can experiment with the tools and find what works best for you. This doesn't mean there aren't general 'best practices' to keep in mind while using FreeCAD, but those best practices generally apply to ANY professional design software when creating stable models.

"What the heck is with all these workbenches?"
One of the powerful features of FreeCAD is it's modularity. This is done by compartmentalizing tool development into workbenches. Once you are familiar with the tools provided they can often work synergistically to create highly complex and advanced models. A great analogy is that FreeCAD is structured similar to a mechanics rolling tool-chest, and each workbench is a drawer of specific tools. You can use these tools to build a car, but it is up to the mechanic to understand how to use them to accomplish their goal.

"FreeCAD is fundamentally broken, my models blow-up!"
FreeCAD is build around an open-source Geometric Modeling Kernel called "Open CASCADE Technology" (or OCCT). It is the most feature rich and mature open source modeling kernel available. However it does have bugs, quirks and limitations. One of these is referred to as the "Topological Naming Problem" (or TNP). What happens whenever a model is changed, the internal names of faces or edges get renamed by the kernel and any model features which referenced them causes undesirable behavior. The current development cycle is focused around implementing a naming algorithm which is designed to mitigate this effect under most circumstances. However, be aware that TNP mitigation is not a replacement for good modeling practice and techniques.

OpenCascade kernel
OpenCascade (OCC/OCCT) is a core external CAD kernel dependency that FreeCAD is utterly dependent on. There are many open 'upstream' bugs that the FreeCAD community has identified and track regarding OCC. We track them via the:
 * bugtracker
 * forum thread called OCC Bugs in the Bugtracker

Additional links

 * Discussion: FreeCAD is not ready for 1.0 (forum thread)
 * Why the GIMP Team Obviously* Hates You (*We Actually Love You. **Mostly) Pat David from GIMP team presentation at SCaLE16x California 2016
 * Earning Your Support Instead of Buying it: A How-to Guide to Open Source Assistance by Ian Turton at FOSS4G Seoul 2015