ایجاد زیرمجموعه (Sub-assembly) در سالیدروک و مدیریت مجموعههای بزرگ: راهنمای کامل و عملی

اگر تا به حال با یک مجموعه بزرگ در سالیدورکس کار کرده باشید، حتماً این صحنه برایتان آشناست: نشانگر موس که ساعتها میچرخد، سیستم که برای یک Rebuild ساده به نفسنفس میافتد و درخت طراحی که آنقدر طولانی و شلوغ شده که پیدا کردن یک پیچ ساده در آن شبیه پیدا کردن سوزن در انبار کاه است. اینها فقط کلافهکننده نیستند؛ اینها زمان و دقت شما را میکشند. نقشه زبان مشترک مهندسان است. ما با انجام پروژه سالیدورک، نقشههایی خوانا و اجرایی از زیرمجموعه های تعریف شده برای کارگاه شما تهیه میکنیم.
جدول چکلیست تصمیمگیری: “چه زمانی باید یک زیرمجموعه جدید بسازم؟”
اگر به حداقل 3 مورد از سوالات زیر پاسخ “بله” میدهید، زمان ساخت یک زیرمجموعه جدید فرا رسیده است:
| سوال کلیدی | ✅ بله | ❌ خیر |
| آیا این گروه از قطعات یک مکانیزم یا واحد عملکردی مشخص را تشکیل میدهند؟ (مثلاً مجموعه موتور) | ||
| آیا احتمال دارد از این مجموعه قطعات در پروژههای دیگری هم استفاده کنم؟ | ||
| آیا قرار است شخص دیگری در تیم به صورت موازی روی این بخش از طراحی کار کند؟ | ||
| آیا این بخش از طراحی دارای حالتهای مختلف (Configurations) است؟ (مثلاً باز/بسته) | ||
| آیا تعداد قطعات این بخش آنقدر زیاد است که درخت طراحی را شلوغ کرده؟ | ||
| آیا میخواهم برای این بخش خاص، یک نقشه انفجاری یا BOM جداگانه تهیه کنم؟ |
این مقاله برای حل همین مشکل نوشته شده. ما اینجا نمیخواهیم فقط دکمهها را معرفی کنیم، بلکه میخواهیم یک تفکر مهندسی را با هم مرور کنیم. البته، اگر در ابتدای مسیر هستید و با کلیات محیط مونتاژ آشنایی ندارید، بهتر است اول نگاهی به آموزش کامل سالیدورکس (SolidWorks): راهنمای جامع از صفر تا صد بیندازید تا این مباحث پیشرفته برایتان قابل هضمتر باشد.
فراتر از یک فولدر: «تفکر ماژولار» چیست و چرا قلب تپنده طراحی مهندسی مدرن است؟
قبل از اینکه دست به نرمافزار بزنیم، بیایید یک قدم به عقب برگردیم. چرا اصلاً به چیزی به اسم زیرمجموعه نیاز داریم؟ جواب در یک کلمه است: “ماژولاریتی”. یک خودرو را در نظر بگیرید؛ هیچکس آن را به صورت یک تکه طراحی یا تولید نمیکند. بلکه به ماژولهای مجزا شکسته میشود: ماژول موتور، ماژول شاسی، ماژول سیستم تعلیق و… هر کدام از اینها به صورت مستقل طراحی، تست و ساخته میشوند و در نهایت کنار هم قرار میگیرند.
این دقیقاً همان کاری است که ما در نرمافزار با ایجاد زیرمجموعه (Sub-assembly) انجام میدهیم. ما پیچیدگی را به بخشهای قابل مدیریت تقسیم میکنیم. این کار فقط برای مرتبسازی نیست؛ این یک استراتژی طراحی است که به شما اجازه میدهد روی یک بخش از مکانیزم تمرکز کنید، بدون اینکه حواستان پرتِ صدها قطعه دیگر شود.

زیرمجموعه (Sub-assembly): سلاح مخفی شما برای سازماندهی و افزایش 10 برابری سرعت
یک زیرمجموعه یا Sub-assembly در عمل، یک فایل Assembly است که داخل یک Assembly بزرگتر (که به آن Top-Level Assembly میگوییم) قرار میگیرد. این کار دو مزیت حیاتی و فوری دارد:
- سازماندهی: به جای یک لیست بلندبالا از ۵۰۰ قطعه، شما شاید ۱۰ زیرمجموعه اصلی در درخت طراحیتان داشته باشید. مثلاً “مجموعه محور ورودی”، “مجموعه دندههای کاهنده” و… پیدا کردن و ویرایش هر بخش، زمین تا آسمان سادهتر میشود.
- عملکرد و سرعت: وقتی شما اسمبلی اصلی را باز میکنید، سالیدورکس میتواند زیرمجموعهها را به صورت Lightweight (سبک) بارگذاری کند. یعنی به جای لود کردن تمام جزئیات هندسی صدها قطعه، فقط یک نمایش گرافیکی ساده از آنها را بارگزاری میکند. این کار به تنهایی میتواند زمان باز شدن فایلهای غولپیکر را از چندین دقیقه به چند ثانیه کاهش دهد. ⚙️
پروژه عملی رایمونکد: ساختاردهی یک مجموعه «گیربکس صنعتی» از صفر
تئوری کافی است. برای اینکه همه چیز ملموس شود، ما در این مقاله یک مجموعه گیربکس صنعتی ساده را به عنوان مثال در نظر میگیریم. این مجموعه شامل شفتها، چرخدندهها، بلبرینگها، پوسته و پیچومهرههاست. ما با هم یاد میگیریم چطور این مجموعه آشفته را به یک اسمبلی ماژولار و حرفهای تبدیل کنیم.
قدم اول: ساخت اولین زیرمجموعه از قطعات موجود (روش Form New Sub-assembly)
فرض کنید قطعات مربوط به شفت ورودی (یک شفت، دو برینگ و یک خار) را قبلاً در محیط مونتاژ اصلی وارد و قیدگذاری کردهاید. حالا میخواهیم اینها را به یک زیرمجموعه تبدیل کنیم.
- درخت طراحی (FeatureManager Design Tree) را باز کنید.
- با نگه داشتن کلید Ctrl، تمام قطعات مربوط به شفت ورودی را انتخاب کنید.
- روی یکی از قطعات انتخاب شده راستکلیک کنید.
- از منوی باز شده، گزینه Form New Sub-assembly را انتخاب کنید.
تمام! سالیدورکس به طور خودکار این قطعات را از اسمبلی اصلی برداشته و داخل یک زیرمجموعه جدید قرار میدهد. در درخت طراحی، به جای چند قطعه، حالا فقط یک آیتم جدید به نام (Assembly1) میبینید. اگر این اولین باری است که مونتاژ میکنید، شاید بهتر باشد اول مقاله آموزش اولیه مونتاژ در سالیدورکس را بخوانید.
زیرمجموعه مجازی (Virtual) در مقابل خارجی (External): کدام یک برای پروژه شما مناسب است؟
وقتی به روش بالا یک زیرمجموعه میسازید، سالیدورکس به صورت پیشفرض آن را به شکل “مجازی” یا Virtual ایجاد میکند. این یعنی فایل زیرمجموعه به صورت فیزیکی روی هارد شما وجود ندارد و دادههای آن داخل خود فایل اسمبلی اصلی ذخیره میشود. اما شما میتوانید آن را به یک فایل خارجی (با پسوند .SLDASM) هم تبدیل کنید. تفاوتشون چیست و کدام بهتر است؟
این سوالی است که جوابش کاملاً به پروژه شما بستگی دارد. بعد از حدود ۱۲ سال کار طراحی، من یک قانون سرانگشتی برای خودم دارم: برای پروژههای کوچک و سریع یا کانسپتهای اولیه که یک نفر روی آن کار میکند، Virtual Component عالی است چون مدیریت فایل ندارد. اما به محض اینکه پروژه جدی میشود، چند نفر روی آن کار میکنند یا قرار است از آن زیرمجموعه در پروژههای دیگر هم استفاده شود، بلافاصله آن را به External تبدیل میکنم. یک بار در یک پروژه بزرگ تیمی، به خاطر استفاده از کامپوننتهای مجازی، مدیریت ورژنها و آپدیتها به یک کابوس واقعی تبدیل شد و چند روز از وقت تیم تلف شد.
برای درک بهتر، این جدول را ببینید:
| ویژگی | زیرمجموعه مجازی (Virtual) | زیرمجموعه خارجی (External) |
| مدیریت فایل | آسان. همه چیز در یک فایل است. | پیچیدهتر. نیاز به مدیریت فایلهای متعدد. |
| کار تیمی | ضعیف. دو نفر نمیتوانند همزمان کار کنند. | عالی. هر نفر میتواند روی یک زیرمجموعه کار کند. |
| استفاده مجدد | غیرممکن. فقط در همین اسمبلی قابل استفاده است. | ایدهآل. میتوانید در بینهایت پروژه از آن استفاده کنید. |
| بهترین کاربرد | طراحی سریع، کانسپتهای اولیه، پروژههای تک نفره. | پروژههای استاندارد صنعتی، کار تیمی، طراحی ماژولار. |
استفاده هوشمندانه از Toolbox در انجام پروژه دانشجویی سالیدورک، حرفهای بودن کار شما را نشان میدهد.
تکنیکهای پیشرفته رایمونکد برای رام کردن مونتاژهای غولپیکر
خب، اصول اولیه را یاد گرفتیم. حالا برویم سراغ تکنیکهایی که طراحان حرفهای برای مدیریت مجموعههای واقعاً بزرگ و پیچیده، مثل خطوط تولید یا ماشینآلات صنعتی، استفاده میکنند. اینها ترفندهایی هستند که سرعت کارتان را چند برابر کرده و از هنگ کردنهای مداوم سیستم جلوگیری میکنند.

حالت Large Assembly Mode و قطعات Lightweight: تنفس مصنوعی برای سیستم شما
این دو گزینه دوستان صمیمی شما در کار با مونتاژهای سنگین هستند.
- Large Assembly Mode: وقتی این حالت فعال باشد (که معمولاً به صورت خودکار با رسیدن تعداد قطعات به یک حد مشخص فعال میشود)، سالیدورکس یک سری از تنظیمات گرافیکی سنگین مثل نمایش سایهها، لبههای نرم و… را غیرفعال میکند. این کار به تنهایی تاثیر زیادی روی روان بودن چرخش و جابجایی مدل دارد.
- Lightweight Components: این یکی حتی مهمتر است. وقتی یک قطعه به صورت Lightweight لود میشود، فقط اطلاعات گرافیکی و برخی دادههای اصلی آن بارگذاری میشود، نه کل درخت طراحی و تاریخچه ساختش. در نتیجه حافظه RAM بسیار کمتری اشغال میشود. شما میتوانید هر زمان که نیاز داشتید، روی یک قطعه یا زیرمجموعه Lightweight راستکلیک کرده و با انتخاب Set to Resolved آن را به حالت کامل برگردانید.
این تکنیکها مخصوصا زمانی که میخواهید روی کل مجموعه عملیات تشخیص تداخل قطعات را انجام دهید، حیاتی هستند چون از کرش کردن نرمافزار جلوگیری میکنند. هواست باشه این تنظیمات رو از بخش System Options فعال کنی.
جادوی Configurations: چگونه با یک فایل، چندین نسخه از یک مکانیزم را مدیریت کنیم؟
اینجاست که قدرت واقعی زیرمجموعهها خودش را نشان میدهد. فرض کنید گیربکس شما قرار است در سه مدل با نسبت تبدیلهای مختلف تولید شود. آیا باید سه فایل اسمبلی جداگانه بسازید؟ اصلاً و ابداً. با استفاده از Configurations، شما میتوانید داخل همان یک فایل زیرمجموعه “دندههای کاهنده”، چندین حالت مختلف تعریف کنید.
در یک کانفیگ، از چرخدنده A و B استفاده میکنید و در کانفیگ دیگر، آنها را Suppress (غیرفعال) کرده و چرخدنده C و D را جایگزین میکنید. حالا در اسمبلی اصلی، فقط با یک کلیک میتوانید بین مدلهای مختلف گیربکستان سوییچ کنید. این قابلیت برای طراحی خانواده محصولات (Product Family) یا نمایش حالتهای مختلف یک مکانیزم (مثلاً حالت باز و بسته یک جک) حکم طلا را دارد.
دستور Defeature: سادهسازی هوشمندانه مدل برای تحلیل در ANSYS یا اشتراکگذاری با کارفرما
گاهی وقتها شما نیاز دارید یک نسخه سادهشده از مدل خودتان را به جای دیگری بفرستید. مثلاً برای واحد تحلیل که میخواهد روی آن تحلیل المان محدود (FEA) انجام دهد (و نیازی به تمام سوراخها و پخهای مدل ندارد)، یا برای یک تامینکننده که فقط باید ابعاد کلی را بداند و شما نمیخواهید تمام جزئیات طراحی و مالکیت معنوی (IP) خود را فاش کنید.
دستور Defeature دقیقاً برای همین کار ساخته شده. این ابزار به شما اجازه میدهد جزئیات داخلی، سوراخهای کوچک، نوشتهها یا هر المان غیرضروری دیگری را به صورت خودکار حذف کنید و یک پارت “گنگ” (Dumb Solid) اما با همان شکل و حجم کلی تحویل بگیرید. این یک تکنیک فوقالعاده کاربردی برای مدیریت حرفهای مجموعههای بزرگ و تعامل با دیگران است.

⚠️ کتابخانه اشتباهات: 5 تله رایج در کار با زیرمجموعهها که باعث اتلاف وقت شما میشود
در کار با زیرمجموعهها، یک سری اشتباهات رایج وجود دارد که بارها دیدهام طراحان، حتی افراد باتجربه، در دامشان میافتند. حواستان به این موارد باشد:
- ارجاعات دایرهای (Circular References): این بدترین کابوس شماست. یعنی قطعه A در زیرمجموعه B قیدگذاری شده، و خود زیرمجموعه B هم به نوعی به قطعه A قید دارد. این کار باعث خطاهای بیانتها در Rebuild میشود.
- قیدگذاری به هندسه ناپایدار: هیچوقت یک قطعه را به لبه یک Fillet یا یک سطح پیچیده که ممکن است در آینده تغییر کند، قید ندهید. همیشه از صفحات اصلی (Planes)، محورها (Axes) یا سطوح مبنای طراحی استفاده کنید.
- قیدگذاری بیش از حد (Over Defining): نیازی نیست برای ثابت کردن یک قطعه ده تا قید مختلف به آن بدهید. این کار نه تنها اسمبلی را سنگین میکند بلکه بعدها ویرایش آن را هم غیرممکن میکند. برای درک عمیقتر این موضوع، حتماً راهنمای انواع قیدها یا Mates در سالیدورکس را مطالعه کنید.
- فراموش کردن قطعه ثابت (Fixed): هر زیرمجموعه باید حداقل یک قطعه ثابت (Fixed) به عنوان لنگر و مبنای بقیه قطعات داشته باشد.
- مدیریت فایل ضعیف: اگر از زیرمجموعههای خارجی استفاده میکنید، حتماً تمام فایلها را در یک فولدر پروژه نگه دارید و برای جابجا کردنشان از Pack and Go استفاده کنید، وگرنه تمام مسیرها و رفرنسها به هم میریزد.
شناسایی پیچ و مهرههای استاندارد در خدمات مهندسی معکوس، نیاز به تولید قطعات غیرضروری را حذف میکند.
جدول مقایسه روشهای سازماندهی در درخت طراحی
| روش | کاربرد اصلی | تاثیر بر عملکرد | قابلیت استفاده مجدد |
| Folders (پوشهها) | مرتبسازی بصری آیتمها | ❌ بدون تاثیر | ❌ ندارد |
| Virtual Sub-assembly | طراحی سریع و مفهومی | ✅ عالی (Lightweight) | ❌ ندارد |
| External Sub-assembly | کار تیمی، طراحی ماژولار | ✅ عالی (Lightweight) | ✅ عالی |
| Weldments (سازه جوشی) | قطعاتی که با جوشکاری به هم متصل میشوند | ✅ خوب | ✅ عالی |
تأثیر مستقیم ساختاردهی بر دنیای واقعی: زیرمجموعهها در نقشه ساخت (Drawing) و لیست قطعات (BOM)
شاید بگویید خب، اسمبلی من در نرمافزار مرتب شد، که چی؟ اهمیت اصلی این کار وقتی مشخص میشود که میخواهید از طرح خود خروجی بگیرید. وقتی شما یک ساختار منظم با زیرمجموعهها دارید:
- لیست قطعات (BOM) هوشمند: به راحتی میتوانید یک BOM درختی (Indented) تهیه کنید که دقیقاً ساختار مونتاژ شما را نشان میدهد. این برای واحد خرید و مونتاژ فوقالعاده ارزشمند است. دیگر نیازی نیست کسی حدس بزند کدام پیچ برای کدام قسمت است. برای اطلاعات بیشتر، میتوانید به مقاله ما در مورد تهیه یک لیست قطعات (BOM) دقیق مراجعه کنید.
- نقشههای انفجاری خوانا: ساختار ماژولار به شما کمک میکند تا یک نقشه انفجاری (Exploded View) حرفهای و چند مرحلهای بسازید. میتوانید اول خود زیرمجموعهها را از هم باز کنید و بعد در یک مرحله دیگر، قطعات داخل هر زیرمجموعه را منفجر کنید. این کار درک مراحل مونتاژ را بسیار ساده میکند. exploded view ها واقعا مهم هستند.
💡 نکته حرفهای: بهترین روش برای ویرایش یک قطعه در دل یک زیرمجموعه (Edit in Context)
لازم نیست برای ویرایش یک قطعه، فایل آن را جداگانه باز کنید. شما میتوانید در همان محیط اسمبلی اصلی، روی قطعه یا زیرمجموعه مورد نظر راستکلیک کرده و Edit Component یا Edit Assembly را بزنید. در این حالت، بقیه قطعات به صورت شفاف (Transparent) در میآیند و شما میتوانید قطعه خود را با دیدن هندسه قطعات مجاور ویرایش کنید.
این قابلیت، اساس روش طراحی بالا به پایین است. فقط هواستان باشد، این کار میتواند ارجاعات خارجی (External References) ایجاد کند که مدیریت آنها دانش خاص خود را میطلبد. اگر به این سبک طراحی علاقهمندید، مقاله مقایسهای ما بین روش طراحی بالا به پایین و پایین به بالا را از دست ندهید.
چالش: افزودن مکانیزم کلاچ به مجموعه گیربکس
حالا که با این مفاهیم آشنا شدید، یک چالش برایتان دارم. سعی کنید یک زیرمجموعه جدید برای یک مکانیزم کلاچ ساده به گیربکس اضافه کنید. برای این کار از قطعات استاندارد مثل پیچ و خار استفاده کنید. اگر با قطعات استاندارد آشنا نیستید، بهترین نقطه شروع، یادگیری کار با Toolbox سالیدورکس برای استفاده از قطعات استاندارد است. ببینید میتوانید این زیرمجموعه جدید را بدون ایجاد خطا به مجموعه اصلی اضافه کنید یا نه.
جمعبندی: چگونه تفکر ماژولار، شما را از یک «اپراتور نرمافزار» به یک «معمار سیستمهای مکانیکی» تبدیل میکند؟
در نهایت، تمام این تکنیکها یک هدف مشترک دارند: تغییر دیدگاه شما از یک اپراتور صرف که فقط قطعات را کنار هم میچیند، به یک معمار سیستمهای مکانیکی که پیچیدگی را مدیریت میکند. طراحی ماژولار و استفاده صحیح از ابزارها، به شما اجازه میدهد روی مسائل مهمتر مهندسی تمرکز کنید و نگران هنگ کردن نرمافزار یا گم شدن در یک درخت طراحی شلوغ نباشید. تسلط بر ایجاد زیرمجموعه و مدیریت اسمبلیهای بزرگ، یک مهارت کلیدی است که یک طراح خوب را از یک طراح عالی متمایز میکند.
سوالات متداول
1. تفاوت اصلی بین قرار دادن قطعات در یک فولدر و ایجاد یک زیرمجموعه چیست؟
یک فولدر فقط یک ابزار سازماندهی بصری در درخت طراحی است و هیچ تاثیری روی عملکرد سیستم یا ساختار فایل ندارد. اما یک زیرمجموعه، یک فایل اسمبلی مستقل است که به شما امکان بارگذاری Lightweight، استفاده مجدد، کار تیمی و ایجاد BOM ساختاریافته را میدهد.
2. آیا میتوان یک زیرمجموعه مجازی (Virtual) را به خارجی (External) تبدیل کرد؟
بله. به سادگی روی زیرمجموعه مجازی در درخت طراحی راستکلیک کرده و گزینه “Save Assembly (in External File)” را انتخاب کنید. با این کار، سالیدورکس آن را به عنوان یک فایل .SLDASM مستقل ذخیره میکند.
3. چه زمانی نباید از زیرمجموعه استفاده کنم؟
برای مجموعههای بسیار ساده (کمتر از 10-15 قطعه) یا قطعاتی که یک واحد عملکردی ثابت و جدانشدنی را تشکیل میدهند (مثل یک قطعه جوشکاری شده)، شاید ایجاد یک زیرمجموعه باعث پیچیدگی بیمورد شود. در این حالت استفاده از دستور Weldment یا Forming a new part بهتر است.
4. منظور دقیق از “ارجاع دایرهای” (Circular Reference) چیست؟
وقتی یک قید در اسمبلی اصلی به هندسه یک قطعه در زیرمجموعه وابسته است، و همزمان یک قید دیگر در همان زیرمجموعه به هندسه یک قطعه در اسمبلی اصلی وابسته است. این یک حلقه بینهایت ایجاد میکند که سالیدورکس نمیتواند آن را حل کند و باعث خطای Rebuild دائمی میشود.
5. آیا استفاده از زیرمجموعه، تهیه نقشه ساخت را سختتر نمیکند؟
خیر، برعکس! این کار تهیه نقشه را بسیار سادهتر و خواناتر میکند. شما میتوانید نماهای جداگانه برای هر زیرمجموعه ایجاد کنید، لیست قطعات (BOM) را به صورت درختی و تفکیکشده نمایش دهید و نقشههای انفجاری چندمرحلهای و واضحتری بسازید.
6. چگونه قطعات استاندارد Toolbox (مثل پیچ و مهره) را در زیرمجموعهها مدیریت کنیم؟
بهترین کار این است که پیچ و مهرهها را در همان زیرمجموعهای قرار دهید که قطعات مربوطه را به هم متصل میکنند. مثلاً پیچهای اتصال پوسته گیربکس، باید در زیرمجموعه “پوسته” قرار گیرند، نه در اسمبلی سطح بالا (Top-Level).
7. آیا میتوان برای یک زیرمجموعه، Configurations تعریف کرد؟
بله، و این یکی از قدرتمندترین قابلیتهاست. شما میتوانید حالتهای مختلف یک مکانیزم (مثلاً باز، بسته، سایز کوچک، سایز بزرگ) را در کانفیگهای مختلف یک زیرمجموعه تعریف کرده و در اسمبلی اصلی بین آنها سوییچ کنید.
8. “Edit in Context” چیست و چه ریسکی دارد؟
یعنی ویرایش یک قطعه در حالی که داخل محیط اسمبلی و در کنار بقیه قطعات قرار دارد. این کار عالی است چون به شما اجازه میدهد طراحی را بر اساس هندسه قطعات مجاور انجام دهید. ریسک اصلی آن، ایجاد “ارجاعات خارجی” است که اگر فایلها جابجا شوند یا نامشان تغییر کند، میتواند منجر به خطا شود.
9. آیا میتوان یک زیرمجموعه را داخل یک زیرمجموعه دیگر قرار داد؟ (Nesting)
بله، شما میتوانید تا هر چند سطح که نیاز دارید زیرمجموعهها را به صورت تودرتو (Nested) ایجاد کنید. این کار برای سازماندهی ماشینآلات بسیار پیچیده ضروری است.
10. بهترین روش برای نامگذاری زیرمجموعهها چیست؟
از یک سیستم نامگذاری ثابت و معنادار استفاده کنید. نامها باید عملکرد آن مجموعه را توصیف کنند. مثلا: P-1001-ASM-InputShaft (که P مخفف Project، 1001 شماره پروژه، ASM نوع فایل و InputShaft عملکرد آن است).