FreeCAD یک نرمافزار مدلسازی سهبعدی (3D) بر پایه ویژگیها و پارامتریک است که برای کاربردهای عمومی در زمینه CAD، MCAD، CAx، CAE و PLM طراحی شده است. تمرکز اصلی این نرمافزار بر مهندسی مکانیک و طراحی محصول است، اما برای طیف گستردهتری از کاربردهای مهندسی مانند معماری یا سایر تخصصهای مهندسی نیز مناسب است. این نرمافزار به طور کامل متنباز (Open Source) است و ساختار آن بهشدت ماژولار است، به طوری که امکان گسترش و سفارشیسازی بسیار پیشرفته را فراهم میکند.
FreeCAD بر پایه OpenCasCade ساخته شده که یک هسته هندسی قدرتمند است؛ مدل نمایش صحنه سهبعدی آن مطابق با Open Inventor و توسط کتابخانه Coin 3D فراهم شده و یک API گسترده به زبان پایتون دارد. رابط کاربری آن با Qt ساخته شده است. FreeCAD دقیقاً به همان شکل روی سیستمعاملهای ویندوز، مک و لینوکس اجرا میشود.

ویژگیهای کلی:
- FreeCAD چندسکویی است و دقیقاً به همان شکل روی ویندوز، لینوکس و مک اجرا میشود.
- FreeCAD یک نرمافزار کاملاً گرافیکی است و رابط کاربری کامل آن بر پایه چارچوب معروف Qt ساخته شده است. این رابط دارای یک نمایشگر سهبعدی بر پایه Open Inventor است که امکان نمایش سریع صحنههای سهبعدی و نمایش ساختار صحنه به صورت گرافیکی را فراهم میکند.
- FreeCAD همچنین میتواند به صورت برنامه خط فرمان اجرا شود و در این حالت مصرف حافظه بسیار کمی دارد. در حالت خط فرمان، نرمافزار بدون رابط کاربری اجرا میشود اما همه ابزارهای هندسی آن در دسترس هستند. مثلاً میتوان از آن به عنوان یک سرور برای تولید محتوا جهت برنامههای دیگر استفاده کرد.
- FreeCAD را میتوان به صورت یک ماژول پایتون در برنامههای دیگری که امکان اجرای اسکریپتهای پایتون را دارند یا در کنسول پایتون وارد کرد. مانند حالت کنسول، در این حالت رابط کاربری در دسترس نیست اما همه ابزارهای هندسی فعال هستند.
- مفهوم “Workbench”: در رابط FreeCAD ابزارها بر اساس وظیفه در Workbenchها (میزکارها) گروهبندی میشوند. این کار باعث میشود فقط ابزارهای مرتبط با یک کار خاص نمایش داده شوند و فضای کاری خلوت و واکنشگرا باقی بماند و برنامه سریع بارگذاری شود.
- چارچوب افزونه/ماژول برای بارگذاری دیرهنگام امکانات و نوع دادهها: FreeCAD به دو بخش برنامه اصلی و ماژولها تقسیم شده که فقط هنگام نیاز بارگذاری میشوند. تقریباً تمام ابزارها و انواع هندسه در ماژولها ذخیره شدهاند. ماژولها مانند افزونهها رفتار میکنند و میتوان آنها را به یک نصب موجود اضافه یا از آن حذف کرد.
- اشیای سند پارامتریک و وابسته: تمام اشیاء در یک سند FreeCAD را میتوان با پارامترها تعریف کرد. این پارامترها در هر لحظه قابل تغییر و بازمحاسبه هستند. ارتباط بین اشیا نیز ذخیره میشود، بنابراین با تغییر یک شیء، اشیای وابسته هم تغییر میکنند.
- ایجاد ابتداییات پارامتریک (مانند جعبه، کره، استوانه و غیره)
- عملیات گرافیکی مانند جابجایی، چرخش، تغییر مقیاس، آینهسازی، آفست (ساده یا با روش Jung/Shin/Choi) یا تبدیل شکل در هر صفحهای از فضای سهبعدی
- عملیات بولی (اتحاد، تفاضل، اشتراک)
- ایجاد گرافیکی هندسههای ساده صفحهای مثل خط، سیم، مستطیل، کمان یا دایره در هر صفحهای از فضای سهبعدی
- مدلسازی با برونیابی مستقیم یا انقلابی، مقاطع و پخها
- اجزای توپولوژیک مانند رأس، لبه، سیم و صفحه (از طریق اسکریپتنویسی پایتون)
- ابزارهای تست و ترمیم مش: تست جامد بودن، تست عدم وجود دوگانگی، تست برخورد با خودش، پر کردن حفرهها و یکدستسازی جهتها
- یادداشتگذاری مانند افزودن متن یا اندازهگذاری
- سیستم برگشت/پیشروی: هر کاری قابل برگشت و پیشروی است و به لیست کارهای قبلی دسترسی دارید تا چندین مرحله را یکجا برگردانید
- مدیریت تراکنش: لیست برگشت/پیشروی تراکنشهای سند را ذخیره میکند نه فقط یک عمل واحد، و هر ابزار میتواند دقیقاً مشخص کند چه چیزی باید برگشت یا تکرار شود
- چارچوب داخلی اسکریپتنویسی: FreeCAD دارای مفسر داخلی پایتون و API است که تقریباً تمام بخشهای برنامه، رابط کاربری، هندسه و نمایش هندسه در نمایشگر سهبعدی را پوشش میدهد. این مفسر میتواند از دستورات ساده تا اسکریپتهای پیچیده را اجرا کند و حتی ماژولهای کامل را به طور کامل با پایتون برنامهنویسی کرد.
- کنسول داخلی پایتون با برجستهسازی کد، تکمیل خودکار و مرورگر کلاس: دستورات پایتون را میتوان مستقیماً در FreeCAD اجرا کرد و بلافاصله نتیجه را دید، که به نویسندگان اسکریپت اجازه میدهد کارایی را به سرعت تست کنند، محتوای ماژولها را بررسی کنند و به راحتی با بخشهای داخلی FreeCAD آشنا شوند.
- بازتاب تعامل کاربر در کنسول: هر عملی که کاربر در رابط FreeCAD انجام میدهد، به کد پایتون تبدیل میشود که میتوان آن را در کنسول دید و در ماکروها ضبط کرد.
- ضبط و ویرایش کامل ماکرو: دستورات پایتونی که هنگام کار با رابط صادر میشوند، میتوانند ضبط، در صورت نیاز ویرایش و برای استفادههای بعدی ذخیره شوند.
- قالب ذخیره سند ترکیبی (بر پایه ZIP): اسناد FreeCAD که با پسوند .fcstd ذخیره میشوند، میتوانند انواع مختلف اطلاعات مانند هندسه، اسکریپت یا آیکونهای کوچک را در خود داشته باشند.
- رابط کاربری گرافیکی کاملاً قابل سفارشیسازی و اسکریپتنویسی: رابط مبتنی بر Qt در FreeCAD کاملاً از طریق مفسر پایتون قابل دسترسی است. علاوه بر امکانات سادهای که خود FreeCAD برای میزکارها فراهم کرده، کل چارچوب Qt هم در دسترس است و میتوان هر عملی روی رابط انجام داد؛ مانند ساخت، افزودن، قرار دادن، تغییر یا حذف ابزارکها و نوار ابزارها.
- سازنده آیکون کوچک (فعلاً فقط روی لینوکس): آیکون اسناد FreeCAD محتوای فایل را در بیشتر برنامههای مدیریت فایل مانند nautilus در گنوم نمایش میدهد.
- نصبکننده ماژولار MSI برای نصب انعطافپذیر روی ویندوز. بستههای نصب برای سیستمهای Ubuntu نیز نگهداری میشوند.