اگر کاربر جدی نرمافزار تحلیل اجزای محدود آباکوس هستید حتما تا به حال با نیازهایی روبرو شدهاید که پاسخ خود را میتوانید در اسکریپتنویسی پیدا کنید. در مجموعه آموزشی اسکریپت نویسی در آباکوس به زبان پایتون به دنبال آموزش اصولی ابزاری هستیم تا با استفاده از آن بتوانید این نوع نیازهای خود را پاسخ دهید.
نرمافزارهای تجاری امکانات پیش فرضی دارند که ممکن است برای کاربران کافی نباشد. ممکن است کاربر نیازمند ایجاد تعامل با یک مخاطب غیرحرفهایتر باشد که از تحلیل او استفاده میکند؛ ممکن است کاربر از تکرار برخی فعالیتها خوشحال نباشد و آرزو کند که با انجام یک بار، آن فعالیتها خود به خود تکرار شوند! بسیاری از نرمافزارهای تجاری با ایجاد امکانی تحت عناوین اسکریپتنویسی، ژورنال نویسی، ماکرونویسی و… این فضا را برای کاربر جدیتر خود فراهم میکنند تا بتواند امکانات جدیدی را در محدوده پلتفرم اصلی نرمافزار اضافه کند.
این امکان در نرمافزار المان محدود Abaqus با استفاده از زبان برنامهنویسیPython انجام شده است و ما در مجموعه اسکریپت نویسی در آباکوس به زبان پایتون” تلاش کردهایم در مرحله اول با فرض ناآشنا بودن مخاطب با زبان برنامهنویسی قدرتمند پایتون، او را تا سطح یک برنامهنویس غیرحرفهای بالا ببریم. در بخش دوم نیز با فرض آشنایی کاربر با نرمافزار آباکوس و ناآشنایی او با اسکریپت نویسی، ضمن حل چند مثال انتظار داریم که او بتواند در زمینه تخصصی خود تحلیلها را با اسکریپت نویسی در پایتون پیش ببرد.
بخش اول
در خلال دوره اسکریپت نویسی در آباکوس به زبان پایتون و با توجه به کمبود فرصت، تلاش کردهایم مخاطب را تشویق کنیم تا بسیاری از اطلاعات و مهارتهای مورد نیاز خود را با تمرین، کنجکاوی و جستجو در منابع بیشمار دیگر به تدریج ارتقا دهد. این مطلب به خصوص در بخش اول که به آموزش برنامهنویسی پایتون اختصاص دارد، مشهود است و میتوان امیدوار بود که مخاطب علاقمند حتی فراتر از اسکریپت نویسی در آباکوس به زبان پایتون، پایتون را به عنوان زبان برنامهنویسی خود انتخاب کرده و در آن تبحر پیدا کند؛ زبانی ساده، کم حجم، سریع، رایگان و در حال رشد و فراگیری سریع.
روند تغییرات سریع در مهارتهای مورد نیاز دنیای کنونی به سمتی است که بسیاری از تحصیلکردگان رشتههای مهندسی به سمت علوم داده (Data science) سوق پیدا کردهاند. شاید مخاطبین این آموزش نیز به مباحث دادهکاوی، دادهپردازی و کار با دادههای بزرگ علاقمند شده و مسیر خود را با جریان نیازهای جهانی هماهنگ کردند که در این صورت هم زبان برنامهنویسی پایتون یکی از همان چیزهایی است که نیاز دارند.
بخش دوم
در بخش دوم آموزش نیز با افزایش پیچیدگی تحلیلهای سازهای یا نیازمندی به تکرار و تحلیلهای پارامتریک، اسکریپتنویسی نقش خود را خوب ایفا خواهد کرد. روشهای جدیدتر بهینهسازی، تحلیل تلرانس، تحلیلهای آماری، قابلیت اطمینان و عمر، نیاز به برنامهنویسی در نرمافزارهای تجاری از جمله آباکوس را شفافتر میکند. نیاز به طراحی مقاوم قطعات و مجموعهها به نحوی که علاوه بر بهینه بودن در شرایط نامی، تحت اثر تلرانسها، نویزها و تفاوتهای ناگزیر که در دنیای واقعی روی میدهد، همچنان عملکرد مطلوبی داشتهباشند، از دیگر عرصههایی است که امروزه در حیطه آن فعالیتهای علمی و صنعتی گستردهای در حال انجام است و اسکریپتنویسی به کاربر جدی آباکوس این قدرت را میدهد که پا در این عرصهها بگذارد. کاربری که قطعا فراتر از یک اپراتور ساده نرمافزار، خلاقانه از این نرمافزار در جهت تعمیق و کاربردی کردن شبیهسازیهای عددی در صنایع مختلف بهره میبرد.
فهرست سرفصل ها و رئوس مطالب مطرح شده در این مجموعه آموزشی، در ادامه آمده است:
-
اهداف اسکریپت نویسی در آباکوس و تعریف ما از آن
برنامهنویسی پایتون مقدماتی
-
مقدمه ای بر زبان برنامه نویسی پایتون
- محیط های برنامه نویسی پایتون
- IDLE پایتون بخشها و تنظیمات آن
- Shell
- Text editor
-
متغیرها و نامگذاری آنها در پایتون
- نامگذاری متغیرها در پایتون
- کلمات کلیدی در پایتون
- انواع دادهها در پایتون
- integer
- float
- strings
- lists
- boolean
- اولین مثال برنامه
-
بررسی نصب پایتون، اپراتورها در پایتون، کنترل جریان
- نحوه نصب پایتون از سایت رسمی آن
- اپراتورهای پایتون
- اپراتورهای حسابی
- اپراتورهای مقایسهای
- اپراتورهای تخصیص
- اپراتورهای منطقی
- اپراتورهای عضویت
- اپراتورهای همانی
- دیگر اپراتورها
- اولویت اپراتورها
- کنترل جریان
- بلوک های دستوری در پایتون
- دستور if, elif,else
- مثال برنامه دوم
-
ادامه کار با sequence ها، ادامه کنترل جریان
- Sequence ها
- لیستها
- بازهها
- رشتهها
- حلقهها و حلقههای تودرتو
- حلقه while
- حلقه for
- break, continue
- مثال برنامه سوم
- Sequence ها
-
آدرسدهی و slicing در لیستها و رشتهها
-
کار تکمیلی با رشتهها
-
توابع و ماژولها در پایتون
- اهداف تابع نویسی و ماژولار سازی در برنامه نویسی و توسعه محصول (در اینجا برنامه!)
- نحوه تعریف توابع در پایتون
- معرفی توابع پیش تعریف شده اصلی و مفید در پایتون
- نوشتن توابع بازگشتی در پایتون
- مثالی از تابع نویسی و تابع نویسی بازگشتی در پایتون
- ماژولها در پایتون
- نحوههای فراخوانی ماژولها در پایتون و تفاوت آنها با هم
-
کار تکمیلی و متدهای تعریف شده بر روی لیستها
-
کار تکمیلی و متدهای تعریف شده بر روی رشتهها
-
فرمتبندی در خروجی و رشتهها
-
تکمیلی دادههای پایتون
- لیستهای تودرتو و ماتریس
- چندتایی(tuple) ها
- دیکشنریها
- متدهای تعریف شده بر روی دیکشنریها
- مجموعهها در پایتون
-
Exceptionها و خطاها و مدیریت آنها در پایتون
- دستور try/except/finally
-
کار با فایلها به عنوان منابع و ورودی و خروجیها در پایتون
- مودهای مختلف کار با فایلها و تفاوت آنها با هم
-
محیطهای استفاده از پایتون و جمع بندی برنامه نویسی پایتون
- محیطهای ویرایش متن دیگر: Notepad++، WingIDE، PythonWin، Atomو iPython و…
- مرور مباحث و جمع بندی زبان برنامه نویسی پایتون
پایتون در آباکوس
-
آشنایی با پایتون آباکوس
- تفاوت نسخههای اصلی پایتون و اهمیت آن برای ما
- آشنایی با محیطهای ویرایش متن و اسکریپت نویسی در آباکوس و استفاده از آن در آباکوس
- معرفی مراجع اسکریپتنویسی در آباکوس
-
گشت و گذاری در آباکوس با ابزارهای پایتون (قسمت اول)
- در قالب ساخت یک اسکچ و مدل ساده بدون استفاده از GUI
- رویارویی با اشیای پایتون در آباکوس
- رویارویی با متدهای پایتون آباکوس
- استفاده از مستندهای داخل آباکوس در مورد دستورات پایتون
- استفاده از Reference manual به عنوان مرجع اسکریپت نویسی در آباکوس
- رویارویی با نوع داده(زیر کلاس) های مخصوص آباکوس در پایتون(مخازن و…)
-
گشت و گذار در آباکوس با ابزارهای پایتون (قسمت دوم)
- حل یک مثال: در قالب ایجاد یک رابط تعاملی با مخاطب و ایجاد مدلی پارامتریک(یک n ضلعی منظم تو خالی) بنابر خواست کاربر بدون استفاده از GUI آباکوس
- استفاده از حلقه های پایتون در اسکریپت نویسی
- کار با لیستها و متدهای آنها در اسکریپت نویسی
- استفاده از ماژول ریاضیاتی پایتون در اسکریپت نویسی
- مواجهه با برخی دیگر از متدهای مهم در اسکریپت نویسی آباکوس
-
خلاصهسازی و نظم بخشیدن به دریافتهای دو جلسه گذشته
- ساختارهای اشیای اصلی آباکوس و ارتباط آنها با هم(mdb, session, odb)
- ساختار و نحوه استفاده از مرجع دستورات در اسکریپت نویسی
- اهمیت و کاربرد __doc__، __members__ و __methods__ در پایتون آباکوس
- Repository به عنوان زیرکلاسی از دیکشنری و کلاسی بسیار مهم در آباکوس
- متدهای مخازن
- ماژولهایی که در اسکریپت نویسی پرکاربرد هستند
-
حل یک مثال کامل: تحلیل استاتیکی یک دیسک توربین گاز
- در تمام مثالهای این مجموعه آموزشی مراحل اشکال زدایی (Debug) برنامهها حفظ شده است تا مخاطب با روند ایجاد برنامهای بدون ایراد آشنا شود
- استفاده از فایلهای متنی به عنوان ورودی اطلاعات و استخراج اطلاعات و پارامترها (هندسه) از لابلای مطالب آن با اسکریپتنویسی پایتون
- ایجاد اسکچ پارامتریک در آباکوس
- مدل سازی هندسی پارامتریک دیسک در آباکوس
- نحوه بهرهگیری از مفاهم فایلهای replay و macro برای اسکریپت نویسی سریعتر در آباکوس و ترکیب آن با توانمندیهای پایتون
- ماژولار کردن اسکریپتنویسی در آباکوس
- تنظیم Viewport در اسکریپت نویسی آباکوس با زبان پایتون
- دستورات تعریف متریال در اسکریپت نویسی آباکوس با زبان پایتون
- دستورات تعریف و اختصاص سکشن در اسکریپت نویسی آباکوس با زبان پایتون
- نحوه انتخاب برخی از اشیای موجود در مدل به شکل پارامتریک در پایتون آباکوس
- دستورات ایجاد اسمبلی و اینتسنس در پایتون آباکوس
- دستورات ایجاد گامهای تحلیل در پایتون آباکوس
- دستورات ایجاد شرایط مرزی و بارگذاری پارامتریک در پایتون آباکوس
- دستورات ایجاد Interaction پارامتریک در پایتون آباکوس
- ایجاد و اجرای Job و نکات مهم آن در پایتون آباکوس
- کار با odb و استخراج اطلاعات از نتایج در پایتون آباکوس
- استفاده از فایلهای متنی به عنوان خروجی نتایج در تحلیلهای اتوماتیک
-
حل یک مثال کوتاه: مطالعه و همگرایی شبکه به صورت خودکار بر روی مثال قبل(دیسک توربین) با پایتون آباکوس
- تمرکز بر دستورات ایجاد و تغییر خودکار و پارامتریک شبکه بندی (mesh)
- ایجاد نمودارها و خروجی تصویری(عکس) به شکل خودکار از آباکوس
- استفاده از حلقه شرطی (while) در پایتون آباکوس
- استفاده از خروجی فرمت بندیشده متنی در پایتون آباکوس
- پیدا کردن ماکزیمم تنش ایجاد شده در المانها به شکل اتوماتیک
-
حل یک مثال کامل: استخراج یک دیاگرام کمبل(Campbell diagram) برای یک پره کمپرسور توربین گاز (ساده شده)
- هدف اصلی: استفاده حداقلی از اسکریپت نویسی و حداکثری از CAE در یک تحلیل تکراری، پارامتریک و خودکار
- تغییر خودکار و برنامهریزی شده بارگذاری در یک تحلیل
- بازکردن یک تحلیل از پیش آماده (ایجاد شده در CAE)، با استفاده از پایتون، ایجاد تغییرات در آن، اجرا، خروجی گرفتن از آن و تکرار این فرآیند به تعداد دلخواه و به شکل اتوماتیک
-
حل یک مثال جامع مستقل: بررسی آماری تاثیرگذاری تلرانسهای تولیدی بر عملکرد سازهای یک قطعه فرضی (مدلی ساده شده از یک پره کمپرسور)
- اهداف آموزشی اصلی:
- مرور مطالب ارائه شده در این دوره (ایجاد تعامل گرافیکی با کاربر، حلقهها و لیستها، ایجاد مدل پارامتریک، استفاده از ماژولهای اصلی و غیر اصلی پایتون و آباکوس، مراجعه به Reference manual اسکریپت نویسی، استفاده از ماکرو برای سرعت بخشیدن به اسکریپت نویسی، ایجاد متریال، سکشن، شرایط مرزی و بارگذاری، اسمبلی، شبکهبندی، Job و اجرای آن، کار با فایل odb، کار با فایلهای متنی در آباکوس، استخراج نتایج با شکل و فرمت دلخواه از فایل نتیجه تحلیل آباکوس، تکرار مراحل مورد نیاز به شکل خودکار، اشکال زدایی از یک اسکریپت واقعی)
- تاکید بر یکی از کاربردهای جدی و به روز اسکریپت نویسی (تحلیل تلرانس و تحلیلهای آماری، شبیهسازی مونت کارلو، بهینهسازی، طراحی مقاومتی robust، شش سیگما و…)
- ایجاد مثالی مستقل برای مرور توسط کسانی که تمامی دوره را دنبال نکردهاند(بازآموزی)
- از نتایج تحلیل خروجی آباکوس چه استفادههایی غیر از آنچه تا به حال میکردهایم میتوان انجام داد؟
- اهداف آموزشی اصلی:
محسن ابیانی
در تاریخ
از نظر من مجموعه آموزشی “اسکریپت نویسی در آباکوس به زبان پایتون” بسیار مفید و آموزنده هست. پیشنهاد میکنم دوستانی که نیاز به یادگیری اسکریپت نویس دارند، از این مجموعه استفاده کنند. چرا که این مجموعه کمک میکند تا در مدت زمان نسبتا کوتاه به تسلط خوبی بر موضوع مطرح شده برسید.
پریسا بهنام
در تاریخ
با سلام. چند روز پیش این آموزش رو تهیه کردم و مطالعه کردم. من از برنامه نویسی هیچی نمیدونستم ولی الان دید خوبی پیدا کردم. همچنین اسکریپت نویسی در اباکوس رو برای کار پایان نامم لازم داشتم و به نظرم این آموزش در مقایسه با دیگر آموزش ها خیلی مفید تر بود. خیلی ممنونم از نحوه ی تدریس خوبتون براتون آرزوی موفقیت دارم