طراحی پارامتریک در کتیا: آموزش قدم به قدم فرمول نویسی برای اتوماسیون کامل
تصور کنید ساعت ۴ بعدازظهر چهارشنبه است، فردا ددلاین تحویل پروژه دارید و کارفرما تماس میگیرد: «مهندس، اون شفت اصلی گیربکس بود؟ قطرش رو ۵ میلیمتر زیاد کن، طولش هم ۱۰ درصد بیشتر بشه.» اگر با شنیدن این جمله عرق سرد روی پیشانیتان مینشیند، یعنی هنوز با قدرت واقعی طراحی پارامتریک در کتیا آشنا نشدهاید. با فرمولنویسی، طرح خود را هوشمند کنید. ما متخصص انجام پروژه کتیا به صورت پارامتریک و تغییرپذیر هستیم.
جدول مقایسه روشهای هوشمندسازی در کتیا
| ویژگی | فرمولنویسی ساده f(x) | جدول طراحی (Design Table) | ماژول Knowledge Advisor |
| کاربرد اصلی | ایجاد روابط ریاضی مستقیم بین ابعاد | ساخت خانواده قطعات و کاتالوگهای استاندارد | پیادهسازی منطق پیچیده، قوانین طراحی و چکهای مهندسی |
| پیچیدگی | پایین | متوسط (نیاز به آشنایی با اکسل) | بالا (شبیه به برنامهنویسی ساده) |
| محیط کاری | پنجره Formula Editor | اتصال به فایل Microsoft Excel | محیطهای Rule, Check, Reaction |
| مثال عملی | طول = ۲ * عرض | تعریف ۱۰۰ سایز مختلف پیچ در یک فایل اکسل | IF (Weight > 5kg) THEN Show_Warning_Message |
| بهترین زمان استفاده | برای وابستگیهای ساده و محدود در یک قطعه | وقتی تعداد زیادی کانفیگوریشن از یک مدل دارید | برای اعمال استانداردهای طراحی و جلوگیری از خطاهای مهندسی |
در دنیای مهندسی مکانیک، ما دو نوع طراح داریم: کسانی که هندسه میکشند و کسانی که “منطق” را طراحی میکنند. دسته اول با هر تغییر کوچک مجبورند ساعتها وقت بگذارند و اسکچها را اصلاح کنند (و خدا میدونه چقدر احتمال خطا وجود داره)، اما دسته دوم فقط دو تا عدد را در یک جدول اکسل یا درخت طراحی تغییر میدهند و تمام! کل مدل، از قطعه گرفته تا نقشه ساخت، خودکار آپدیت میشود. اگر میخواهید جزو دسته دوم باشید، این مقاله دقیقا برای شماست. قبل از اینکه وارد بحث شیرین فرمولنویسی شویم، پیشنهاد میکنم نگاهی به راهنمای جامع کتیا (CATIA): مرجع تخصصی طراحی پیشرفته بیندازید تا دید کلیتری نسبت به اکوسیستم این نرمافزار داشته باشید.

چرا تغییر دستی ابعاد در پروژههای مهندسی بزرگترین دشمن زمان شماست؟
بیایید رو راست باشیم؛ در طول حدود ۱۲ سال تجربهای که در زمینه طراحی و مهندسی معکوس داشتم، بارها دیدم که پروژههای سنگین نه بهخاطر پیچیدگی مدل، بلکه بهخاطر “مدیریت تغییرات” شکست خوردند. یادم هست سر یک پروژه طراحی قالب تزریق پلاستیک، مشتری مدام جای پینهای پران را تغییر میداد. اگر قرار بود هر بار بهصورت دستی مختصات سوراخها را در محیط Part Design جابهجا کنیم و نگران تداخلها باشیم، عملاً باید در شرکت میخوابیدیم!
مشکل اصلی اینجاست که در طراحی سنتی (Non-Parametric)، ابعاد “مرده” هستند. یعنی عدد ۵۰ میلیمتر، فقط ۵۰ میلیمتر است و هیچ درکی از محیط اطرافش ندارد. اما وقتی صحبت از هوشمندسازی میشود، ما نیاز داریم که ابعاد با هم “حرف بزنند”. اینجاست که فرمول نویسی در کتیا وارد بازی میشود و به شما اجازه میدهد بهجای اینکه بردهی نرمافزار باشید، بر آن حکومت کنید.
طراحی پارامتریک در کتیا دقیقاً چه تفاوتی با طراحی سنتی و استاتیک دارد؟
تفاوت اصلی در “رابطه والد و فرزندی” است. در طراحی استاتیک، شما یک مستطیل میکشید و تمام. اما در طراحی پارامتریک، شما به نرمافزار میگویید: «این مستطیل همیشه باید طولش دو برابر عرضش باشد.» حالا اگر عرض را تغییر دهید، طول خودکار تغییر میکند.
این یعنی ما داریم “قصد طراحی” (Design Intent) را مدلسازی میکنیم. برای درک بهتر این موضوع، بد نیست که با تفاوت طراحی Solid (Part Design) و Surface (GSD) در کتیا آشنا باشید، چون مفهوم وابستگی المانها در محیط سطحسازی حتی پیچیدهتر و حیاتیتر است. در طراحی پارامتریک، ما یک اسکلت نامرئی از روابط ریاضی میسازیم که هندسه روی آن سوار میشود.
چگونه محیط کتیا را برای شروع فرمولنویسی و نمایش پارامترها آماده کنیم؟
خیلی از بچههایی که تازه میخواهند وارد فاز فرمولنویسی بشوند، با این مشکل روبرو هستند که پارامترهایی که میسازند در درخت طراحی (Specification Tree) دیده نمیشود. این یک باگ نیست، تنظیمات پیشفرض کتیاست که باید تغییرش بدید.
برای اینکه فرمول نویسی در کتیا را شروع کنید، اول باید به نرمافزار بگویید که پارامترها و روابط را به شما نشان دهد. مسیر زیر را طی کنید:
Tools > Options > Infrastructure > Part Infrastructure > Display
در این تب، حتماً تیک دو گزینه Parameters و Relations را فعال کنید. ⚙️ بدون این کار، شما عملاً دارید در تاریکی تیراندازی میکنید چون متغیرهایی که تعریف میکنید، جلوی چشمتان نیستند. این موضوع در آشنایی با ساختار و ورکبنچهای (Workbenches) اصلی کتیا هم اشاره شده، اما اینجا اهمیت حیاتی دارد.
اولین قدم برای هوشمندسازی مدل تعریف کدام پارامترهای اصلی است؟
اشتباه رایج این است که اول اسکچ را میکشند و بعد سعی میکنند فرمول بدهند. نه! اول باید متغیرها (Variables) را بسازید. در پایین محیط کتیا، روی آیکون f(x) کلیک کنید. اینجا اتاق فرمان شماست.
شما باید نوع پارامتر را مشخص کنید. مثلاً برای طول شفت، نوع Length و برای تعداد سوراخ فلنج، نوع Integer یا Real را انتخاب کنید. دکمه New Parameter of type را بزنید.
یک نکته تجربی: همیشه نام پارامترها را تغییر دهید و اسمهای معنیدار بگذارید. مثلاً بهجای Length.1 بنویسید Shaft_Total_Length. وقتی پروژه پیچیده میشود و ۲۰۰ تا فرمول دارید، همین نامگذاریهای ساده نجاتتان میدهد.
چطور با استفاده از فرمول نویسی در کتیا ابعاد اسکچ را به پارامترها متصل کنیم؟
حالا که پارامترها ساخته شدند، وقت وصل کردن سیمهاست! وارد محیط اسکچ شوید. اگر هنوز در اصول اولیه اسکچ مشکل دارید، حتماً آموزش محیط Sketcher کتیا: اصول ترسیم دو بعدی و قیدگذاری هندسی را مرور کنید چون اسکچ ناپایدار با فرمولنویسی تبدیل به کابوس میشود.
فرض کنید یک دایره کشیدید و اندازهگذاری کردید. حالا بهجای اینکه عدد قطر را دستی وارد کنید، روی عدد اندازه (Dimension) دابل کلیک نکنید! بلکه روی آن کلیک راست کرده و گزینه Edit Formula را بزنید (معمولاً آخرین گزینه در منوی ابجکت است).
در پنجرهای که باز میشود، از لیست پارامترها، آن پارامتری که قبلاً ساختید (مثلاً Shaft_Diameter) را انتخاب کنید. حالا رنگ اندازه در اسکچ تغییر میکند (معمولاً به رنگ سبز یا قرمز تیره در میآید که نشاندهنده وجود فرمول است). تبریک میگم! شما اولین قدم را در طراحی پارامتریک در کتیا برداشتید.
چگونه یک شفت استاندارد را با قابلیت تغییر سایز خودکار مدلسازی کنیم؟
بیایید یک مثال واقعی بزنیم که توی صنعت زیاد پیش میاد. فرض کنید میخواهیم یک شفت پلهدار طراحی کنیم که طول پلهی دوم، همیشه یکسومِ طول کل شفت باشد.
- ابتدا پارامتر Total_Length را با مقدار مثلاً ۱۰۰mm تعریف کنید.
- اسکچ پروفیل شفت را بکشید.
- برای طول کل، مستقیماً پارامتر Total_Length را لینک کنید.
- برای طول پله دوم، وقتی وارد محیط فرمولنویسی شدید، این عبارت را بنویسید:
Total_Length / 3
حالا هر وقت شما عدد ۱۰۰ را به ۱۵۰ تغییر دهید، طول پله دوم بهصورت خودکار و بدون دخالت دست به ۵۰ تغییر میکند. این منطق ساده، پایه و اساس ساخت کاتالوگهای پیچیده است که در ایجاد کاتالوگ قطعات استاندارد در کتیا بهصورت مفصلتر بحث میشود.
منطق شرطی و دستورات If/Else در محیط Knowledge Advisor چه کاربردی دارند؟
اینجا جایی است که کتیا از یک نرمافزار طراحی به یک زبان برنامهنویسی تبدیل میشود. فرض کنید میخواهید بگویید: “اگر قطر شفت بیشتر از ۵۰ میلیمتر شد، روی سر شفت جای خار (Keyway) بزن، اما اگر کمتر بود، فقط یک پین ساده بگذار.”
اینجا دیگر فرمول ساده خطی جواب نمیدهد. باید از محیط Knowledge Advisor و دستورات شرطی استفاده کنید. این قابلیت به شما اجازه میدهد قوانینی (Rules) بنویسید که هندسه را خاموش و روشن (Activate/Deactivate) کنند. دقیقاً مثل کاری که در طراحی چرخدنده در کتیا: استفاده از فرمولها و کاتالوگهای آماده انجام میدهیم؛ جایی که تعداد دندانهها و مدول، شکل نهایی دنده را دیکته میکنند. استفاده از این سطح از هوشمندی، مرز بین یک نقشهکش معمولی و یک مهندس طراح ارشد است. ایجاد مدلهای هوشمند که با تغییر یک عدد آپدیت میشوند، ارزش بالایی در هزینه طراحی با کتیا ایجاد میکند.

آیا میتوانیم بدون باز کردن اسکچ و فقط با تغییر اعداد در درخت طراحی مدل را آپدیت کنیم؟
بله، و این لذتبخشترین بخش ماجراست. وقتی تمام روابط را درست تعریف کردید، دیگر نیازی نیست برای تغییر سایز قطعه، درخت طراحی را باز کنید، وارد اسکچ شوید، اندازه را پیدا کنید و تغییر دهید.
کافیست در درخت طراحی روی شاخه Parameters دابل کلیک کنید. لیستی از متغیرهای اصلی (مثل طول، عرض، ضخامت) باز میشود. عدد را عوض کنید، اینتر بزنید و دکمه Update (همان گردباد معروف کتیا 🌪️) را فشار دهید. مدل جلوی چشمتان تغییر شکل میدهد. این روش نهتنها سرعت شما را ۱۰ برابر میکند، بلکه احتمال اینکه دستتان بخورد و قیدی را ناخواسته پاک کنید به صفر میرساند. اگر پروژهای دارید که نیاز به این سطح از استانداردسازی دارد، تیم ما در بخش انجام پروژه کتیا میتواند ساختاردهی فایلهای شما را بر عهده بگیرد تا تیم طراحیتان فقط روی نوآوری تمرکز کند نه کارهای تکراری.
چگونه با استفاده از جداول طراحی (Design Table) هزاران قطعه را با یک فایل بسازیم؟
خب، تعریف دستی پارامترها برای ۱۰ یا ۲۰ حالت مختلف یک قطعه شاید شدنی باشد، اما وقتی با یک کاتالوگ کامل از پیچها، پروفیلها یا بلبرینگها طرف هستید، تعریف تکتک آنها در محیط کتیا عملاً دیوانگی است. اینجا اکسل به کمک ما میآید. قابلیت Design Table در کتیا به شما اجازه میدهد یک فایل اکسل را به مدل خود متصل کنید، طوری که هر سطر از آن اکسل، یک ورژن جدید از قطعه شما را بسازد.
این کار برای شرکتهایی که قطعات استاندارد تولید میکنند حکم طلا را دارد. شما یک بار مدل هوشمند را میسازید و بعد از آن، هر کارمند جدیدی بدون نیاز به دانش عمیق کتیا، فقط با پر کردن یک فایل اکسل میتواند قطعه جدید را بسازد. این سطح از اتوماسیون یکی از دلایلی است که در مقایسه کتیا و NX همیشه روی قابلیتهای استانداردسازی تاکید میشود.
برای مثال، فرض کنید میخواهیم خانوادهای از پیچهای آلن سر استوانهای را بسازیم. جدول طراحی ما میتواند به شکل زیر باشد:
| نام کانفیگوریشن | قطر پیچ (Diameter) | طول پیچ (Length) | قطر سر پیچ (Head_Diameter) | ارتفاع سر پیچ (Head_Height) |
| M6x20 | 6mm | 20mm | 10mm | 6mm |
| M6x30 | 6mm | 30mm | 10mm | 6mm |
| M8x25 | 8mm | 25mm | 13mm | 8mm |
| M8x40 | 8mm | 40mm | 13mm | 8mm |
| M10x50 | 10mm | 50mm | 16mm | 10mm |
با ساختن این جدول و اتصال آن به مدل، شما با یک کلیک بین ۵ ورژن مختلف این پیچ جابهجا میشوید. فوقالعاده نیست؟
چرا استفاده از طراحی پارامتریک در کتیا برای ساخت قطعات خانوادهدار حیاتی است؟
وقتی یک “خانواده قطعه” (Family of Parts) میسازید، در واقع دارید یک الگوی مادر طراحی میکنید که صدها فرزند مشابه ولی با ابعاد متفاوت خواهد داشت. این کار بدون منطق پارامتریک غیرممکن است. این قابلیت نهتنها در طراحی قطعات استاندارد، بلکه در طراحی قالبهای چند حفرهای (Multi-Cavity Molds) که قطعات مشابه با ابعاد کمی متفاوت را همزمان تولید میکنند، حیاتی است.
تسلط بر این مهارت میتواند تاثیر مستقیمی روی جایگاه شغلی شما داشته باشد، چون شرکتهای بزرگ همیشه به دنبال مهندسانی هستند که بتوانند فرآیندهای طراحی را اتوماتیک کنند. اگر به دنبال پیشرفت شغلی هستید، بد نیست نگاهی به وضعیت بازار کار طراحان کتیا در ایران و جهان بیندازید تا ببینید چه مهارتهایی بیشترین تقاضا را دارند.
چه اشتباهاتی در فرمولنویسی باعث بههمریختگی هندسی و ارورهای آپدیت میشوه؟
فرمولنویسی شبیه شمشیر دولبه است؛ اگر درست استفاده شود معجزه میکند، اما اگر اشتباه کنید، مدلتان را به یک کلاف سردرگم از ارورها تبدیل میکند. اینها چندتا از رایجترین اشتباهاتی هستند که دیدهام:
- وابستگی حلقوی (Circular Dependency): این فاجعه زمانی رخ میدهد که شما مینویسید “طول A به B وابسته است” و در جای دیگری میگویید “طول B به A وابسته است”. کتیا در یک حلقه بینهایت گیر میکند و ارور میدهد. همیشه یک پارامتر اصلی و مستقل داشته باشید.
- اسکچهای تعریفنشده (Under-Defined): اگر اسکچ شما با قیدهای هندسی و ابعادی کامل (Fully Constrained) نشده باشد، فرمولها رفتار غیرقابل پیشبینی خواهند داشت. یک تغییر کوچک میتواند کل اسکچ را متلاشی کند.
- فراموش کردن منطق دنیای واقعی: یک بار فرمولی نوشتم که در یک حالت خاص، ضخامت دیواره قطعه را منفی میکرد! نرمافزار ارور میدهد، اما شما باید از اول حواستان باشد که فرمولهایتان همیشه خروجی منطقی داشته باشند. اگر با خطاهای نرمافزاری درگیر هستید، شاید بد نباشد با روشهای کلی حل کردن خطاهای نرمافزاری کتیا هم آشنا شوید.
چگونه با مدیریت روابط پیچیده از سنگین شدن فایلهای اسمبلی جلوگیری کنیم؟
وقتی در یک اسمبلی بزرگ، صدها قطعه پارامتریک دارید که ابعادشان به یکدیگر وابسته است، هر بار که مدل را آپدیت میکنید سیستم باید هزاران محاسبه را انجام دهد. این کار میتواند حتی قویترین کامپیوترها را هم به زانو در بیاورد. 💻
یک تکنیک حرفهای، استفاده از “فایل اسکلت” (Skeleton Part) است. بهجای اینکه قطعات را مستقیماً به هم لینک کنید، یک پارت مجازی میسازید که فقط شامل پارامترهای اصلی، محورها و صفحات مرجع است. سپس تمام قطعات اسمبلی، ابعادشان را از این فایل اسکلت میخوانند. این کار مدیریت را متمرکز کرده و سرعت آپدیت را به طرز چشمگیری بالا میبرد. درک این موضوع به شما کمک میکند تا تفاوت Assembly Design و Digital Mockup (DMU)] را بهتر بفهمید، چون در DMU هدف اصلی مدیریت مجموعههای عظیم است.
آیا فرمول نویسی در کتیا میتواند جایگزین تحلیلهای مهندسی شود؟
مطلقاً خیر. این یک تصور اشتباه و بسیار خطرناک است. فرمولنویسی فقط و فقط “هندسه” را کنترل میکند، نه “فیزیک” مسئله را. شما میتوانید با فرمول یک شفت بسیار زیبا و دقیق بسازید، اما این فرمول به شما نمیگوید که آیا این شفت زیر بار خم میشود یا میشکند.
برای بررسی استحکام، ارتعاشات یا انتقال حرارت، شما باید از ماژولهای تحلیل المان محدود (FEA) خود کتیا یا نرمافزارهای تخصصی دیگر استفاده کنید. طراحی پارامتریک به شما کمک میکند سریعتر به “هندسه بهینه” برسید، اما این “تحلیل” است که کارایی آن هندسه را تایید میکند. برای شروع، میتوانید با آموزش شبیهسازی مکانیزمها با DMU Kinematics حرکت و تداخل قطعات را بررسی کنید که خود یک نوع تحلیل است.
مهندسان رایمون کد در چه پروژههایی از طراحی پارامتریک برای کاهش هزینهها استفاده میکنند؟
در رایمون کد، ما از طراحی هوشمند فقط برای کارهای فانتزی استفاده نمیکنیم؛ این ابزار اصلی ما برای صرفهجویی در زمان و هزینه مشتریان است. مثلاً در یک پروژه برای صنعت خودروسازی، یک فیکسچر کنترلی طراحی کردیم که باید برای ۱۰ مدل مختلف سپر خودرو قابل استفاده میبود. به جای طراحی ۱۰ فیکسچر جداگانه، یک فیکسچر پارامتریک ساختیم که با تغییر چند پارامتر، خودش را با فرم سپر جدید تطبیق میداد. این کار هزینهی طراحی و ساخت را تقریباً ۶۰٪ کاهش داد. این رویکرد سیستمی، چیزی است که در پروژههای پیچیده مثل فرآیند طراحی بدنه خودرو با کتیا هم دیده میشود.
چالش عملی شما: آیا میتوانید این قطعه پارامتریک را خودتان مدلسازی کنید؟
حالا نوبت شماست! سعی کنید یک نبشی (L-Bracket) ساده را مدلسازی کنید که این قوانین را رعایت کند:
- طول ساق عمودی همیشه ۱.۵ برابر ساق افقی باشد.
- ضخامت نبشی همیشه یکدهمِ طول ساق افقی باشد.
- اگر طول ساق افقی از ۱۰۰ میلیمتر بیشتر شد، یک سوراخ تقویتی مثلثی در گوشه آن ایجاد شود.
با این تمرین ساده، تمام مفاهیمی که گفتیم را در عمل به کار میگیرید.
جدول چند تابع پرکاربرد در فرمولنویسی کتیا
| تابع (Function) | توضیح | مثال کاربردی |
| sqrt(x) | ریشه دوم (جذر) عدد x را محاسبه میکند. | محاسبه قطر یک لوله بر اساس سطح مقطع |
| ceil(x) | عدد x را به سمت بالا به نزدیکترین عدد صحیح گرد میکند. | محاسبه تعداد سوراخها بر اساس طول ورق (همیشه به بالا گرد شود) |
| floor(x) | عدد x را به سمت پایین به نزدیکترین عدد صحیح گرد میکند. | محاسبه تعداد پلههای کامل در یک فاصله مشخص |
| abs(x) | قدر مطلق عدد x را برمیگرداند. | برای جلوگیری از منفی شدن ناخواسته ابعاد در محاسبات |
| sin(angle) | سینوس زاویه را محاسبه میکند (زاویه به رادیان). | برای مدلسازی مکانیزمهای سینماتیکی یا پروفیلهای موجی |
| length(Geom) | طول یک المان هندسی (مثل یک منحنی) را استخراج میکند. | طول_مسیر_کابل = length(PartBody\Sketch.5\Curve.1) |
برای یادگیری عمیقتر ماژولهای پیشرفته Knowledge Ware چه مسیری را پیشنهاد میکنیم؟
چیزی که در این مقاله خواندید، فقط نوک کوه یخ بود. کتیا یک مجموعه ماژول به نام Knowledge Ware دارد که ابزارهای فوق پیشرفتهای مثل Rules، Checks و Reactions را در اختیارتان میگذارد. با این ابزارها میتوانید چکلیستهای طراحی اتوماتیک بسازید (مثلاً “چک کن که تمام سوراخها از لبه قطعه حداقل ۱۰ میلیمتر فاصله داشته باشند”). برای یادگیری این مباحث، باید فراتر از آموزشهای معمول بروید. برای این منظور، میتوانید از بهترین منابع یادگیری کتیا که شامل کتابهای مرجع و دورههای تخصصی است، استفاده کنید.
چه زمانی برای پیادهسازی سیستمهای طراحی هوشمند به یک تیم متخصص نیاز دارید؟
طراحی خانواده محصولات با ابعاد مختلف، کاربرد اصلی این تکنیک در خدمات طراحی صنعتی است. شاید یادگیری فرمولنویسی برای یک قطعه ساده باشد، اما وقتی پای پیادهسازی یک سیستم یکپارچه در کل فرآیند طراحی یک شرکت در میان باشد، موضوع فرق میکند. اگر شرکت شما با چالشهایی مثل موارد زیر روبروست، احتمالاً وقت آن رسیده که از یک تیم متخصص کمک بگیرید:
- نیاز به ساخت یک کتابخانه قطعات استاندارد داخلی برای کل شرکت.
- توسعه یک محصول با قابلیت شخصیسازی بالا برای مشتریان (Product Configurator).
- ایجاد قالبها و الگوهای طراحی (Templates) برای کاهش خطای انسانی و افزایش سرعت.
اینها پروژههایی هستند که نیاز به معماری دقیق دارند و یک اشتباه در پایهریزی آنها میتواند در آینده هزینههای زیادی ایجاد کند. تخصص ما در رایمون کد، دقیقاً پیادهسازی همین زیرساختها با استفاده از قدرت طراحی پارامتریک در کتیا است.