چگونه از APDL (Ansys Parametric Design Language) در محیط ورکبنچ استفاده کنیم؟
با وجود رابط کاربری گرافیکی (GUI) پیشرفته و کاربرپسند Ansys Workbench، تحلیلگران حرفهای برای حل مسائل پیچیده مهندسی همچنان به ابزارهای قدرتمندتری نیاز دارند. زبان اسکریپتنویسی پارامتریک Ansys یا (APDL)، کلید دسترسی به این قابلیتهای پیشرفته است. تسلط بر استفاده از APDL در ورک بنچ به شما امکان میدهد تا فراتر از محدودیتهای رابط گرافیکی قدم بردارید، وظایف تکراری را خودکار کنید و کنترل دقیقی بر تمام جنبههای تحلیل خود داشته باشید. این مقاله به عنوان یک راهنمای جامع، شما را با مفاهیم بنیادی APDL در محیط ورکبنچ، نحوه پیادهسازی عملی آن از طریق «Command Objects» و بهترین روشها برای توسعه و عیبیابی اسکریپتها آشنا میکند.
آنچه در این مقاله میخوانید
APDL چیست و چرا در ورکبنچ اهمیت دارد؟
Ansys Workbench و محیط کلاسیک Mechanical APDL (MAPDL) دو برنامه مجزا نیستند؛ بلکه دو رابط کاربری متفاوت برای دسترسی به یک موتور حلگر (Solver Engine) یکسان هستند. درک این رابطه برای استفاده مؤثر از اسکریپتها امری بنیادین است. محیط ورکبنچ یک پوسته مدرن و شیءگراست که بر روی موتور پردازشی قدرتمند و مبتنی بر دستور MAPDL ساخته شده است.
APDL که مخفف (ANSYS Parametric Design Language) است، یک زبان اسکریپتنویسی است که اساس کار نرمافزار اصلی Ansys (که اکنون با نام Mechanical APDL یا MAPDL شناخته میشود) را تشکیل میدهد. این زبان برای خودکارسازی وظایف، پارامترسازی مدلها و اجرای دستورات پیشرفتهای طراحی شده است که کنترل کاملی بر فرآیند تحلیل فراهم میکنند.
وقتی شما در محیط گرافیکی Ansys Mechanical (ورکبنچ) یک مدل میسازید، در واقع در حال ساخت یک توصیف شیءگرا از مسئله خود هستید. زمانی که روی دکمه Solve کلیک میکنید، ورکبنچ در پشت صحنه، این مدل را به یک فایل ورودی متنی حاوی دستورات APDL (معمولاً با نام ds.dat) تبدیل میکند. سپس این فایل برای حل به موتور پردازشی MAPDL ارسال میشود.
دلایل کلیدی برای استفاده از APDL در ورک بنچ عبارتند از:
- دسترسی به قابلیتهای پیشرفته: بسیاری از توابع، گزینهها و ویژگیهای پیشرفته در موتور MAPDL وجود دارند که هنوز به رابط کاربری گرافیکی ورکبنچ اضافه نشدهاند. اسکریپتنویسی به شما اجازه میدهد از تمام این قابلیتها بهرهمند شوید.
- عمق و وسعت کنترل: APDL به شما این امکان را میدهد که تقریباً تمام جنبههای مدل، از خواص مواد و المانها گرفته تا تنظیمات حلگر و خروجیهای خاص را مورد پرسوجو (interrogate) و کنترل قرار دهید.
- اتوماسیون: با استفاده از ساختارهای برنامهنویسی مانند حلقهها (
do-loops)، دستورات شرطی (if-then-else) و ماکروها، میتوانید فرآیندهای تکراری و زمانبر را خودکار کرده و در زمان خود صرفهجویی کنید.
در نهایت، میتوان ورکبنچ را به عنوان یک رابط مدرن و کارآمد برای ساخت مدل و موتور قدرتمند APDL را به عنوان قلب تپنده پردازش و تحلیل در نظر گرفت. بخش بعدی نحوه اتصال این دو دنیا را از طریق ابزاری به نام Command Object توضیح میدهد.
معرفی Command Objects (دستورات APDL)
پل ارتباطی اصلی بین محیط گرافیکی ورکبنچ و کدهای APDL، یک ابزار داخلی به نام «Command Object» است. این ابزار به شما اجازه میدهد تا کدهای APDL خود را مستقیماً به فرآیند حل تزریق کنید و رفتار پیشفرض ورکبنچ را مطابق نیاز خود تغییر دهید.
یک Command Object، ابزاری در درخت طراحی (Tree) ورکبنچ است که برای درج دستورات APDL در فایل ورودی که به موتور MAPDL ارسال میشود، استفاده میگردد. این ابزار به طور غیررسمی با نام «Code Snippet» یا «قطعه کد» نیز شناخته میشود و آیکون آن به شکل یک فایل متنی با حرف بزرگ قرمز C است.
برای اضافه کردن یک Command Object به درخت تحلیل، مراحل زیر را دنبال کنید:
- روی یک شیء معتبر در درختواره تحلیل (مانند شاخه
Static StructuralیاSolution) کلیک راست (RMB) کنید. - از منوی باز شده، گزینه
Insertرا انتخاب کنید. - روی
Commandsکلیک کنید.
پس از افزودن، با انتخاب Command Object در درختواره، یک پنجره متنی به نام Command Text Window در پایین صفحه باز میشود. شما میتوانید کدهای APDL خود را مستقیماً در این پنجره تایپ کرده یا از جای دیگری کپی کنید.
نکته مهم این است که محل قرارگیری Command Object در درختواره، زمان و نحوه اجرای کد شما را تعیین میکند. این موضوع استراتژیک در بخش بعدی به تفصیل بررسی میشود.
محل قرارگیری و انواع Command Objects
انتخاب محل مناسب برای درج Command Object یک تصمیم استراتژیک است که مستقیماً بر عملکرد کد شما تأثیر میگذارد. این انتخاب مشخص میکند که آیا کد شما در مرحله پیشپردازش (Preprocessing) برای تعریف یک رفتار خاص اجرا میشود یا در مرحله پسپردازش (Postprocessing) برای استخراج نتایج سفارشی به کار میرود.
Command Object ها را میتوان در مکانهای مختلفی از درخت تحلیل قرار داد که هر کدام در نقطه مشخصی از فایل ورودی APDL درج میشوند. جدول زیر این مکانها و ویژگیهایشان را خلاصه میکند:
نوع | مکان در درختواره | نقطه درج در فایل APDL | پارامتر شناسه (ID) |
| Body | پس از تعریف متریال برای آن Body |
|
| Contact Pair | پس از تعریف کانتکت |
|
| Joint | پس از تعریف اتصال |
|
| Spring | پس از تعریف فنر |
|
| Environment | درست قبل از دستور | – |
| Solution | درست بعد از دستور | – |
این قطعه کدها به دو دسته اصلی تقسیم میشوند:
- Item Snippets: این نوع قطعه کدها به یک جزء یا آیتم خاص در مدل (مانند یک
Body، یکContact Pairیا یکJoint) متصل میشوند. مزیت بزرگ این روش آن است که شناسه (ID) عددی آن جزء به صورت یک پارامتر (مثلاًMATIDبرای Body) به طور خودکار در دسترس کد شما قرار میگیرد. این قابلیت برای تغییر ویژگیهای خاص یک جزء بسیار مفید است. یک کاربرد بسیار رایج برای این قابلیت، تغییر نوع المان پیشفرض است. به عنوان مثال، میتوانید از یک قطعه کد متصل به یک Body برای تغییر المانهای آن از نوع SOLID186 به SOLID187 که دارای درجات آزادی بیشتری هستند، استفاده کنید. - General Snippets: این قطعه کدها به مراحل کلی تحلیل متصل هستند و به یک جزء خاص وابسته نیستند.
- PREP Snippet: این کد که زیر شاخه
Environmentقرار میگیرد، درست قبل از دستورSOLVEاجرا میشود. در این نقطه، ورکبنچ فرآیند تولید مدل را به پایان رسانده و از ماژول پیشپردازنده (/PREP7) خارج شده است. بنابراین، کد شما مستقیماً در ماژول حل (/SOLU) تزریق میشود. به همین دلیل، این مکان برای اعمال بارها، شرایط مرزی پیچیده یا تغییر تنظیمات حلگر مناسب است، اما برای تعریف متریال جدید یا تغییر مش، که نیازمند ماژول/PREP7هستند، مناسب نیست و منجر به خطا خواهد شد. - POST Snippet: این کد که زیر شاخه
Solutionقرار میگیرد، بلافاصله پس از ورود به ماژول پسپردازش (/POST1) اجرا میشود و برای استخراج نتایج سفارشی، ایجاد نمودارها و انجام محاسبات بر روی نتایج ایدهآل است.
- PREP Snippet: این کد که زیر شاخه
علاوه بر اجرای دستورات، تبادل داده بین ورکبنچ و اسکریپتهای APDL نیز امکانپذیر است که قدرت واقعی این ابزار را آشکار میسازد.
تبادل داده: پارامترها و استخراج نتایج
قدرت واقعی اسکریپتنویسی زمانی نمایان میشود که بتوان دادهها را به صورت پویا بین محیط ورکبنچ و کدهای APDL منتقل کرد. این قابلیت به شما اجازه میدهد تا مدلهای پارامتریک پیچیدهتری بسازید و نتایج کلیدی را برای استفاده در تحلیلهای دیگر یا گزارشها استخراج کنید.
ارسال پارامتر ورودی به Command Object در پنجره Details مربوط به هر Command Object، فیلدهایی با نام ARG1 تا ARG9 وجود دارد. شما میتوانید مقادیر عددی یا رشتهای را از محیط ورکبنچ از طریق این فیلدها به اسکریپت APDL خود ارسال کنید. این مقادیر در داخل اسکریپت با همین نامها (ARG1, ARG2, …) قابل دسترسی هستند. قدرت واقعی این آرگومانها زمانی آشکار میشود که آنها را به پارامترهای طراحی (Design Parameters) در ورکبنچ متصل کنید. با این کار، میتوانید متغیرهای کلیدی در اسکریپت APDL خود را مستقیماً از طریق جدول «Parameter Set» در ورکبنچ کنترل کرده و تحلیلهای پارامتریک و بهینهسازی را بر روی قابلیتهایی که در رابط کاربری گرافیکی وجود ندارند، اجرا کنید.
استخراج پارامتر خروجی از اسکریپت APDL برای بازگرداندن یک مقدار از اسکریپت APDL به ورکبنچ، کافی است پارامتر مورد نظر را با پیشوند my_ نامگذاری کنید. ورکبنچ به طور خودکار هر پارامتری که با این پیشوند تعریف شود (مثلاً my_result = 123.45 یا با استفاده از دستور *GET, my_nmd, ...) را به عنوان یک پارامتر خروجی شناسایی میکند. این پارامترها و مقادیرشان پس از اجرای تحلیل، در بخش Results در پنجره Details همان Command Object نمایش داده میشوند.
برای مثال، کد زیر که در یک POST Snippet برای یک تحلیل مودال قرار میگیرد، تعداد کل مدهای استخراج شده و فاکتورهای مشارکت (participation factors) برای ۱۲ مد اول را استخراج کرده و به عنوان پارامترهای خروجی به ورکبنچ بازمیگرداند:
*get,my_nmd,active,,set,sbst
*get,my_pf01,mode, 1,pfact
*get,my_pf02,mode, 2,pfact
*get,my_pf03,mode, 3,pfact
*get,my_pf04,mode, 4,pfact
*get,my_pf05,mode, 5,pfact
*get,my_pf06,mode, 6,pfact
*get,my_pf07,mode, 7,pfact
*get,my_pf08,mode, 8,pfact
*get,my_pf09,mode, 9,pfact
*get,my_pf10,mode,10,pfact
*get,my_pf11,mode,11,pfact
*get,my_pf12,mode,12,pfact
این تبادل داده تنها به مقادیر عددی محدود نمیشود و شما میتوانید خروجیهای گرافیکی سفارشی نیز تولید کنید.
ایجاد خروجیهای سفارشی: نمودارها و فایلهای متنی
با استفاده از APDL، میتوانید خروجیهای بصری و متنی پیشرفتهای تولید کنید که فراتر از قابلیتهای استاندارد گزارشگیری در ورکبنچ هستند. این قابلیت برای مستندسازی و تحلیل عمیقتر نتایج بسیار کاربردی است.
تولید نمودارها و پلاتهای تصویری شما میتوانید با استفاده از دستورات گرافیکی استاندارد MAPDL، هر نوع پلات یا نموداری را ایجاد کرده و آن را به صورت یک فایل تصویری ذخیره کنید. ورکبنچ به طور خودکار این تصاویر را شناسایی کرده و به درخت تحلیل اضافه میکند. فرآیند کلی به شرح زیر است:
- با دستور
/show,png، خروجی گرافیکی را به یک فایل با فرمت PNG هدایت کنید. - با استفاده از دستورات رسم APDL مانند
PLNSOL(برای رسم نتایج کانتوری) یا*VPLOT(برای رسم نمودار از آرایهها)، پلات مورد نظر خود را ایجاد کنید. - با دستور
/show,close، فرآیند نوشتن فایل تصویری را خاتمه دهید.
ورکبنچ به طور خودکار فایلهای PNG تولید شده در پوشه حل را شناسایی کرده و آنها را به عنوان یک آیتم تصویری (Image) در زیر اولین Command Object موجود در شاخه Solution نمایش میدهد.
استخراج دادههای جدولی یک چالش رایج، استخراج دادههای جدولی (Tabular Data) از MAPDL و بازگرداندن آن به محیط ورکبنچ است. در حال حاضر، راه مستقیمی برای این کار وجود ندارد. راهحل جایگزین، نوشتن دادهها در یک فایل متنی خارجی است. شما میتوانید با استفاده از دستوراتی مانند *VWRITE یا /out، نتایج، آرایهها یا هر پارامتر دیگری را در یک فایل با فرمت .txt یا .csv ذخیره کنید و سپس آن را به صورت دستی یا با ابزارهای دیگر مشاهده و پردازش نمایید.
استفاده صحیح از این تکنیکها نیازمند پیروی از بهترین روشها و یک فرآیند عیبیابی منظم است که در بخش بعدی به آن پرداخته میشود.
بهترین روشها و نکات کلیدی برای عیبیابی (Debugging)
نوشتن و عیبیابی اسکریپتهای APDL در ورکبنچ نیازمند یک رویکرد ساختاریافته است، زیرا این فرآیند به صورت تعاملی (interactive) انجام نمیشود و خطاها تنها پس از اجرای کامل تحلیل مشخص میشوند. پیروی از یک روند منظم، احتمال خطا را کاهش داده و فرآیند توسعه را تسریع میکند.
فرآیند پیشنهادی برای توسعه و عیبیابی کد بهترین و کارآمدترین روش برای توسعه اسکریپتهای APDL به صورت گام به گام به شرح زیر است:
- مدل خود را به طور کامل در محیط ورکبنچ و بدون هیچ Command Object آماده کنید.
- از منوی
Tools -> Write Input File...، فایل ورودیds.datرا از مدل خود ایجاد و در مکانی مشخص ذخیره کنید. - یک جلسه تعاملی از نرمافزار MAPDL (Ansys Mechanical APDL) را باز کرده و فایل
ds.datرا از طریق منویFile > Read Input from...یا با تایپ مستقیم دستور/INPUT, 'filename', 'dat'در خط فرمان، وارد کنید. این کار مدل شما را دقیقاً به همان شکلی که ورکبنچ میبیند، بازسازی میکند. - ماکرو یا قطعه کد APDL خود را به صورت تعاملی در محیط MAPDL بنویسید، اجرا و عیبیابی کنید. در این محیط میتوانید متغیرها را بررسی کرده، پلاتها را مشاهده کنید و از عملکرد صحیح هر خط کد اطمینان حاصل نمایید.
- پس از اینکه کد شما به درستی کار کرد، آن را در Command Object مربوطه در ورکبنچ کپی کنید یا آن را به عنوان یک فایل ماکرو (
.mac) ذخیره کرده و از طریق گزینهImportبه Command Object لینک دهید.
نکات کلیدی و توصیههای تکمیلی
- استفاده از فایلهای خارجی: برای کدهای طولانی، پیچیده یا کدهایی که در چندین تحلیل یا در چندین Command Object استفاده میشوند، بهتر است آنها را در یک فایل
.macذخیره کرده و با استفاده از گزینهImportبه Command Object لینک دهید. این کار مدیریت و استفاده مجدد از کد را آسانتر میکند. - تغییر نام معنادار: همیشه Command Object های خود را با کلیک راست و انتخاب
Renameبه نامهای معنادار تغییر دهید (مثلاً «اعمال بار حرارتی سفارشی» یا «استخراج نتایج خستگی»). این کار خوانایی درخت تحلیل را به شدت افزایش میدهد. - محدودیت کدهای PREP: به خاطر داشته باشید که کدهای قرار گرفته در شاخه
Environment(PREP snippets) در ماژول/SOLUاجرا میشوند. این بدان معناست که شما نمیتوانید در این اسکریپتها متریال جدید تعریف کنید یا مش را تغییر دهید، اما برای اعمال بارها، شرایط مرزی و تغییر تنظیمات حلگر کاملاً مناسب هستند. - بررسی فایل خروجی: مهمترین ابزار شما برای عیبیابی پس از اجرای تحلیل، فایل خروجی متنی (
solve.out) است. این فایل را میتوانید با کلیک بر رویSolution Informationدر درخت تحلیل مشاهده کنید. تمام خطاها، هشدارها و پیامهای موتور MAPDL در این فایل ثبت میشوند.
برای یادگیری و تسلط بر این تکنیک قدرتمند، رویکرد تدریجی “خزیدن، راه رفتن، دویدن” (Crawl, Walk, Run) را در پیش بگیرید. با اسکریپتهای ساده شروع کنید و به تدریج به سراغ مسائل پیچیدهتر بروید.
جمعبندی و نتیجهگیری
این مقاله نشان داد که چگونه استفاده از APDL در ورک بنچ از طریق ابزار Command Objects به تحلیلگران حرفهای اجازه میدهد تا محدودیتهای رابط کاربری گرافیکی را کنار زده و به تمام قدرت و انعطافپذیری موتور پردازشی Ansys دسترسی پیدا کنند. ما یاد گرفتیم که چگونه با تزریق قطعه کدها، قابلیتهای پیشرفته را فعال کنیم، دادهها را بین دو محیط تبادل کرده و خروجیهای سفارشی مانند نمودار و فایلهای متنی تولید کنیم.
به عنوان یک توصیه نهایی، به یاد داشته باشید که سرمایهگذاری برای یادگیری اصول APDL و فرآیند عیبیابی ساختاریافته، کلید استفاده موفق از این قابلیت قدرتمند است. تسلط بر این مهارت، توانایی شما را برای حل مسائل پیچیده مهندسی به سطح جدیدی ارتقا میدهد و درها را به روی اتوماسیون و تحلیلهای بسیار پیشرفته باز میکند.