
openscad
مدلساز 3D CAD منبع باز برای برنامهنویسان
مدلهای سهبعدی جامد را با استفاده از CSG، اکستروژن و پارامترهای قابل تنظیم از طریق API رایگان پایتون منبع باز ایجاد کنید.
OpenSCAD چیست؟
OpenSCAD یک ابزار مدلسازی CAD سهبعدی رایگان و منبع باز است که بهطور خاص برای برنامهنویسان و مهندسان طراحی شده است. برخلاف مدلسازهای تعاملی سهبعدی، OpenSCAD از رویکرد مبتنی بر اسکریپت برای تعریف اشیاء جامد سهبعدی با استفاده از هندسه جامد سازنده (CSG) و تکنیکهای اکسترود استفاده میکند. این امکان مدلسازی دقیق، قابل تکرار و پارامتریک را که برای قطعات مکانیکی، نمونههای اولیه و طراحیهای فنی ایدهآل است، فراهم میآورد. این ابزار از لینوکس، ویندوز و macOS پشتیبانی میکند و بهخوبی با جریانهای کاری مبتنی بر پایتون برای خودکارسازی و اسکریپتنویسی یکپارچه میشود.
OpenSCAD فایلهای اسکریپتی که شیء را توصیف میکنند میخواند و مدل سهبعدی را بر اساس آن رندر میکند، به طراحان کنترل کامل بر فرآیند مدلسازی میدهد. این ابزار از عملیاتهایی مانند ترکیب (union)، تقاطع (intersection)، تفاضل (difference) و تبدیلاتی مانند جابجایی (translate)، چرخش (rotate) و مقیاسبندی (scale) پشتیبانی میکند. دادهها میتوانند از فایلهای DXF وارد شوند و به فرمتهای STL، OFF و سایر فرمتها صادر شوند. معماری باز و جامعه فعال آن، آن را به گزینهای قدرتمند برای توسعهدهندگانی تبدیل میکند که به دنبال قابلیتهای مدلسازی سهبعدی برنامهنویسی هستند بدون اینکه به تعاملات رابط کاربری گرافیکی (GUI) وابسته باشند.
شروع کار با OpenSCAD
OpenSCAD بهصورت باینریهای پیشساخته برای لینوکس، macOS و ویندوز از وبسایت رسمی خود در دسترس است. برای توسعهدهندگان، کد منبع در GitHub میزبانی میشود و میتوانید آن را با استفاده از CMake و اسکریپتهای ساخت ارائهشده از منبع بسازید. مخزن رسمی [GitHub اوپناسکاد](https://github.com/openscad/openscad) شامل دستورالعملهای ساخت دقیق برای تمام پلتفرمهای اصلی است. برای شروع سریع، آخرین نسخه را دانلود کنید، نصب کنید و ویرایشگر را باز کنید تا اولین اسکریپت SCAD خود را بنویسید.
نصب OpenSCAD از طریق مدیران بسته
# Ubuntu/Debian
sudo apt install openscad
# macOS (Homebrew)
brew install --cask openscad
# Windows (Chocolatey)
choco install openscad
هندسهٔ جامد سازنده (CSG)
قوت اصلی OpenSCAD در پشتیبانی از هندسه جامد سازنده (CSG) نهفته است که امکان ترکیب primitives سهبعدی پایه را با استفاده از عملیات بولی مانند اتحاد، تقاطع و تفاضل فراهم میکند. این رویکرد مدلسازی دقیق و ایمن در برابر غیرمنیفولد را تضمین میکند که برای مهندسی و تولید مناسب است. به عنوان مثال، میتوانید یک سیلندر با سوراخ ایجاد کنید با کم کردن یک سیلندر کوچکتر از یک سیلندر بزرگتر. عملیات CSG بهصورت اعلامی در اسکریپت تعریف میشوند که پارامترسازی و بازنگری آسان را امکانپذیر میسازند. این باعث میشود OpenSCAD برای طراحی قطعات مکانیکی، محفظهها و نمونههای عملکردی که دقت و قابلیت تکرار در آنها حیاتی است، ایدهآل باشد.
چگونه یک سیلندر با سوراخ با استفاده از CSG در OpenSCAD ایجاد کنیم؟
difference() {
cylinder(h = 20, r = 10);
cylinder(h = 25, r = 4, center = true);
}
استخراج طرح دو بعدی
OpenSCAD از برونرفت خطوط ۲D که از فایلهای DXF وارد میشوند یا مستقیماً در کد SCAD تعریف میشوند، پشتیبانی میکند. این تکنیک برای ایجاد اشکال سهبعدی پیچیده از پروفیلهای دوبعدی، مانند دندهها، براکتها یا محفظههای سفارشی، ضروری است. میتوانید مسیرها را به صورت خطی برونرفت کنید یا آنها را حول یک محور (از طریق چرخش) بچرخانید. فرآیند برونرفت ترتیب رئوس را رعایت میکند و از هر دو چندضلعیهای ۲D و مسیرهای دارای حفره پشتیبانی میکند. ترکیب آن با تبدیلات و ماژولها، امکان تولید پارامتریک قطعاتی مانند لولهها، چارچوبها یا عناصر معماری را فراهم میآورد و OpenSCAD را به ابزاری قدرتمند برای طراحی فنی و جریانهای ساخت تبدیل میکند.
چگونه یک چندضلعی دو بعدی را به یک شیء سهبعدی اکسترود کنیم؟
linear_extrude(height = 10, center = true, convexity = 10)
polygon(points = [[0,0], [10,0], [5,10]]);
مدلسازی پارامتریک و پیکربندی
OpenSCAD در مدلسازی پارامتریک برتری دارد، جایی که ابعاد و شکلها با استفاده از متغیرها و توابع تعریف میشوند. این امکان را فراهم میکند تا طراحیها به راحتی با تغییر چند پارامتر سفارشی شوند، که آن را برای نمونهسازی تکراری و سفارشیسازی ایدهآل میسازد. به عنوان مثال، میتوانید ماژولی تعریف کنید که پارامترهای عرض، ارتفاع و ضخامت را دریافت کند و سپس آن را در چندین طراحی مجدداً استفاده کنید. پارامترها همچنین میتوانند توسط دادههای خارجی، مانند مقادیر موجود در فایل CSV یا DXF، هدایت شوند و ادغام با خطوط لوله دادهای مبتنی بر پایتون را ممکن سازند. این قابلیت از طراحی مولد پشتیبانی میکند، بهطوری که مدلها بهصورت خودکار به نیازها یا محدودیتهای در حال تغییر سازگار میشوند.
چگونه یک ماژول پارامتریک قابل استفاده مجدد تعریف کنیم؟
module box(width, height, thickness) {
difference() {
cube([width, height, thickness]);
translate([thickness, thickness, -1])
cube([width - 2*thickness, height - 2*thickness, thickness + 2]);
}
}
box(50, 30, 3);
یکپارچهسازی واردات و صادرات دادهها
OpenSCAD پشتیبانی قوی برای وارد کردن فایلهای DXF دو بعدی و صادر کردن مدلهای سهبعدی به فرمتهای STL، OFF و سایر فرمتها فراهم میکند. این امر ادغام با ابزارهای CAD/CAM، چاپگرهای سهبعدی و نرمافزارهای شبیهسازی را آسان میسازد. واردات DXF میتواند مسیرهای استخراج را شامل شود، در حالی که صادرات از STL باینری و ASCII برای چاپ سهبعدی پشتیبانی میکند. علاوه بر این، OpenSCAD میتواند پارامترهای طراحی را از فایلهای DXF بخواند و امکان جریانهای کاری ترکیبی را فراهم میکند که در آن هندسه در ابزارهای خارجی تعریف شده اما بهصورت برنامهنویسی اصلاح میشود. این قابلیت همکاری، همراه با طبیعت مبتنی بر اسکریپت آن، به توسعهدهندگان اجازه میدهد تا تولید مدل و پردازش دستهای را با استفاده از پایتون یا اسکریپتهای شل خودکار کنند و فرآیندهای تولید را بهینهسازی نمایند.
چگونه یک فایل DXF را وارد کرده و آن را به سهبعدی اکسترود کنیم؟
linear_extrude(height = 5) {
import(file = "profile.dxf", layer = "outer");
}
