سازندهی اپلیکیشن / مباحث پایه در ساخت اپلیکیشن
ساخت یک اپ با ورودیها و خروجیهای ویژه
مدت زمان: ۲۶:۲۸
ساخت اپلیکیشن ها ، تمرین مناسبی به عنوان یک روش سطح بالا برای پارامتری کردن مدل می باشد، که برداشت اطلاعات را آسان تر و قدرتمند تر می کند. همچنین می توانید این اپلیکیشن ها را با افرادی که کاربر کامسول نیستند، با ایجاد شبیه سازی های پکیج شده و یا نمایشگرهای نتایج، به اشتراک بگذارید. در آخر شما می توانید با کدهای متنوع به کد های باقی ماند لینک برقرار نمایید. در این آموزش ، به شما نشان می دهیم که چگونه یک App ساده بسازید و با ابزارهای متنوع در دسترس ساخت اپ با محوریت Form editor و سپس method editor که جنبه های برناماه نوسی ساخت اپلیکیشن را کنترل می کند ، آشنا می شوید. سپس به شما نشان می دهیم که چگونه اپ ها را اجرا نمایید که می تواند از طریق کامسول یا کامسول سرور انجام شود.
در این مدل آموزشی، باسبار را بررسی می کنیم. تغییرات جزئی ای در مدل داده ایم. ما یک گره Volume maximum داریم که حداکثر دما در Domain باسبار مسی را ارزیابی می نماید. و همچنین ما یک گره report داریم که یک گزارش خلاصه از مدل ایجاد می نماید.
بنابراین ما در اینجا با یک مدل نسبتاً آسانی سروکار داریم، اما هرچه که شبیه سازی شما به طور افزاینده ای پیچیده تر می شود ، رفتن در میان تعریف فیزیک ها و دیگر تنظیمات مدل تلاش بیشتری نیاز دارد. یک راهی که ما می توانیم همه ی این اطلاعات را ساده سازی نماییم و آنها را برای دیگر کاربراین در دسترس تر قرار دهیم، تبدیل مدل به یک اپلیکیشن شبیه سازی می باشد، که ما می توانیم این کار را با استفاده از Application Builder انجام دهیم.
پس از ورود به قسمت ساخت اپلیکیشن ،اگر روی دکمه ی Model Builder کلیک کنیم، ما را مجددا به محیط ساخت مدل می آورد.
بنابراین این یک راهی است که ما می توانیم میان دو محیط ساخت جابه جا شویم. در اینجا در Application Builder ما شش گره اصلی داریم که با آنها برای توسعه ی یک اپ شبیه سازی کار می کنیم که شامل main Window، forms، events، declaration، methods و libraries می باشند و همه ی اینها در قسمت متناظرشان در زبانه Home در نوار در دسترس اند. برای ویرایش گر های form و method زبانه های جداگانه ای در نوار که آنها را پس از این خواهیم دید ظاهر می شوند.
برای شروع یک اپ جدید، اولین چیزی که می توانیم انجام دهیم این است که روی دکمه ی New Form کلیک کنیم که Form Wizard جدید را باز می کند. در اینجا می توانیم ورودی ها را به اپ شبیه سازیمان اضافه نماییم؛ گزینه های طول باسبار، پهنای باسبار و ولتاژ اعمال شده را برگزینیم. و همچنین مقدار بدست آمده از حداکثر دمای باسبار را به عنوان یک خروجی در اپ شبیه سازیمان وارد می گردانیم.
برای Graphics یک Plot از نتایج دما را اظافه می کنیم :
در قسمت دکمه ها، می خواهیم برای کاربر دکمه ای اضافه نماییم که Study را محاسبه نماید.
در نهایت روی دکمه ی OK کلیک می کنیم . اکنون به تمام مواردی که اضافه نمودیم دسترسی داریم .می توانید اندازه ها را به هر میزان که می خواهید تغییر دهید. اگر روی دکمه ی Test Application کلیک نمایید می توانید ببینید که فوراً یک اپی که کار می کند در دسترس داریم.
اکنون می توانید ، مقادیر دلخواه را به برنامه داده و خروجی را با زدن دکمه compute مشاهده فرمایید.
پیش از این ما تنها formها را از طریق form wizard اضافه نمودیم؛ اما شما می توانید هر کدام از این موارد را با استفاده از پنجره ی Editor Tools، که یک راه آسان و سریع برای اضافه نمودن یک فرم است ، یا با استفاده از Insert Objects و سپس انتخاب فرم مورد نظر از گزینه های متعدد در دسترس در اینجا برای هر قابلیت اضافی برای اپ شما، به صورت دستی وارد نمایید.
ما می خواهیم یک دکمه به منظور به روز رسانی هندسه اضافه نماییم بنابراین ما روی Button کلیک می نماییم. متن آن را به Update Geometry به روز رسانی می نماییم و Size را به large افزایش می دهیم تا با دکمه ی Compute بهتر مطابق شود.
و اکنون که ظاهر دکمه را ویرایش نمودیم، عملیاتی که موقع کلیک کردن روی دکمه اتفاق می افتد را مشخص می نماییم. می توانیم به Component مدلمان برویم و گره هندسه را انتخاب نماییم و روی Plot کلیک نماییم. بنابراین ما این Plot را داریم. اما اکنون ما می خواهیم تعیین نماییم که کجا این هندسه ظاهر گردد. می خواهیم که این هندسه در Object Graphics (پنجره نمایش هندسه) ظاهر گردد.پس بر روی روی Edit Argument کلیک کرده و سپس از form1 از به عنوان Argument استفاده نماییم.در نهایت روی OK کلیک می نماییم.
بنابراین اکنون، زمانی که کاربر روی این دکمه کلیک می کند، هندسه ی باسبار به روز رسانی می شود و آن در پنجره گرافیکی نمایش داده می شود. بنابراین این قابلیت مفید را برای کابر قبل از آنکه مدل را حل نمایند اضافه نمودیم.
اگر به Model Builder بازگردیم ، به یاد می آورید که ما یک گره Report1 داشتیم که یک گزارش خلاصه از مدل ایجاد می نماید.
شاید ما بخواهیم این گزینه در دسترس کاربر نیز باشد، بنابراین می توانیم به Application Builder برویم. در عوض وارد نمودن دستی یک Object و ویرایش نمودن تنظیمات(کاری که برای ایجاد دکمه انجام دادیم)، می توانیم از Editor Tools استفاده نماییم که به ما اجازه می دهد از Object های form یا یک گروه ای از object های form ، برای فرمان با تنظیمات پیش فرض استفاده نماییم.
بنابراین می توانیم(در پنجره سمت راست ) به سمت پایین اسکرول نماییم و به گره Report1 برویم و روی دکمه کلیک نماییم.
اکنون ما یک دکمه داریم که همه ی تنظیمات را به صورت خودکار به کار می برد و کاربران را قادر می سازد که یک گزارش ایجاد نمایند. بنابراین در اینجا در اپ ما ، سه دکمه داریم که با سه روش متفاوت اضافه نمودیم. دکمه ی compute که در حین استفاده از New Form Wizard اضافه گردید، دکمه ی Update Geometry که با استفاده از insert objects اضافه گردید. دکمه Create Report که پیش از این با استفاده از پنجره Editor Tools اضافه گردید. بنابراین این ها همه ی روش های متفاوتی هستند که شما می توانید دکمه ها و دیگر form ها را به اپ خود اضافه گردانید.
دوباره اگر به Model Builder باز گردیم در مورد گره Report شما می بینید که در مدل، ما گزینه ی export کردن یا یک فایل HTML یا یک سند ماکروسافت Word را داریم و شاید ما بخواهیم این گزینه را برای کاربرانمان در دسترس قرار دهیم. که ما می توانیم این کار را انجام دهیم. بنابراین کاری که ما می توانیم انجام دهیم این است که ما می توانیم به Model Builder باز گردیم و در زبانه Developer نوار ما می توانیم روی دکمه ی Data Access کلیک کنیم. از اینجا می توانیم تیک گزینه ی تنظیماتی را که می خواهیم برای کاربرانمان به عنوان ورودی یا خروجی در دسترس باشند را، را بزنیم. و شما می بینید که همه ی Check Box ها به صورت پیش فرض از حالت انتخاب خارج شده اند. چرا که شما می توانید برای این گره در میان تمام گره ها تصور کنید که اگر این گزینه ها به صورت پیش فرض تیک خورده بودند، باعث می شد که تنظیمات بسیار زیادی در پنجره Editor Tools ظاهر گردد. بنابراین بعد از انتخاب آن می توانیم Data Access را از حالت انتخاب خارج نماییم .
اکنون می توانیم به Application Builder بازگردیم و می بینید که فرمت خروجی اکنون در دسترس می باشد بنابراین Output format را به عنوان یک ورودی اضافه می نماییم.
اکنون می توانید ببینید که کاربر می تواند از میان فرمت های HTML و Word doc زمانی که آنها گزارششان را ایجاد می نمایند، انتخاب نمایند. بنابراین در اینجا می بینید که زمانی که ما Output format را به عنوان یک ورودی اضافه می نماییم، چندین Form Object به صورت یکجا اضافه شده است. و این یک مزیت دیگر اضافه نمودن قابلیت از طریق پنجره Editor Tools می باشد. اکنون به عنوان پارامتر بعدی ، می خواهیم ضخامت را به عنوان یک ورودی وارد نماییم. ما آن را انتخاب می نماییم و روی Input کلیک می نماییم .
شما می توانید ببینید که سه form به صورت یکجا اضافه شده اند. یک برچسب Text برای پارامتر، field برای Input و واحدها را نشان می دهند.
نکته ای وجود دارد و آن اینکه در مورد هندسه، کاربران می توانند هر مقداری را وارد نمایند، که ما نمی خواهیم آنها این کار را انجام دهند. برای مثال وارد نمودن یک مقدار منفی، که به طور واضحی ما نمی خواهیم. بنابراین برای مقابله با این اتفاق، به پنجره تنظیمات می رویم. و در قسمت Data Validation، می توانیم یک minimum و مقدار maximum وارد نماییم تا اطمینان حاصل نماییم که کاربر در داخل یک گستره ی معینی باقی می ماند. بنابراین برای thickness، یک مقدار مینیموم ۴ میلیمتر و سپس یک ماکزیموم ۱۲ قرار می دهیم. و برای Error massage، این چیزی است که زمانی که یک کاربر، مقداری خارج از گستره ما وارد می نماید ظاهر می شود.
حالا اگر ۳ را برای thickness، و اگر ما روی Update Geometry کلیک نماییم شما می بینید که پیام خطا ظاهر می گردد.
تا اینجا نشان دادیم که چگونه Form Editor برای ساخت سریع یک قابلیت در یک اپ مورد استفاده قرار می گیرد.
اکنون به سراغ Method Editor می رویم تا قابلیت های بیشتری که برای کاربران مفید خواهد بود اضافه نماییم. زمانی که قصد ایجاد متدها را داریم چند راه وجود دارد که می توانیم این کار را انجام دهیم؛ می توانیم روی گره Methods راست کلیک نماییم و New Method را انتخاب نماییم، یا دکمه ی New Method برای ایجاد یک متد جدید از صفر.
ما می توانیم از دکمه record Method استفاده نماییم که کمی بررسی آن خواهیم پرداخت. یا ساده ترین روش از طریق form می باشد که یک انتخاب فرمان برای اجرای آن قسمت در پنجره تنظیمات دارد. شما می توانید به سمت پایین بروید و از دکمه ی Convert to new method استفاده نمایید.
برای درک بهتر قابلیت Method ها ، برای دکمه ی Compute می توانید فرمان هایی را دیگری را ایجاد نماییم. مثلا می خواهیم یک اخطار شنیدنی به کاربران بدهیم که اپ حل را به پایان رسانیده است. می توانیم یک پخش صدا ،زمانی که شبیه سازی به اتمام رسیده، داشته باشیم. برای انجام اینکار می توانیم به libraries برویم و زیر Sounds یک صدا را برای پخش شدن انتخاب نمایید. مثلا Success ،سپس روی run کلیک نماییم. و اکنون آن به توالی فرمان ما اضافه شده است.
ما می توانیم از دکمه Convert to New button استفاده نماییم. و شما می بینید که توالی فرمان با یک Method، ءMethod 1، جایگزین شده است.
اگر به این Method برویم:
می توانیم سه خط فرمان برای محاسبه ی Study ببینیم، ترسیم نتایج دما، و سپس پخش صدا. اجازه دهید ما همچنین می خواهیم یک صدا را زمان که اپ شبیه سازی محاسبه را به پایان رسانید پخش گردد، برای زمانی که موفقیت آمیز نباشد. بنابراین آنچه که ما می توانیم انجام دهیم این است که ما می توانیم به پنجره Editor Tools برویم و زیر Libraries، و زیر Sounds، ما می توانیم صدای دومی انتخاب نماییم. ما از صدای فایل fail استفاده می نماییم و سپس روی run کلیک نماییم، و در نتیجه آن به متد ما اضافه می گردد.
اکنون ،می خواهیم شرطی برای آنکه چه زمانی هر صدا پخش گردد اعمال نماییم و مشخص گردد چه زمانی شبیه سازی موفقیت آمیز بوده یا در مقابلش چه موقع شکست خورده است. برای انجام این کار می توانیم از جمله ی if-else استفاده نماییم. بنابراین می توانیم تایپ نماییم، یا در عوض می توانیم از دکمه ی Language Elements برای باز کردن پنجره ی Language Elements استفاده نماییم .در این پنجره دستور العمل های زبان های برنامه نویسی متنوعی داریم که برای اضافه نمودن به کد ما در دسترس اند. می خواهیم یک جمله ی if-else اضافه نماییم، بنابراین به زیر قسمت Block Statements می رویم و روی if-else دبل کلیک نماییم.
بنابراین صداهای متناظر را در زیر قسمت های مناسب جمله قرار می دهیم:
اکنون می خواهیم شرایطمان را اضافه گردانیم که چه چیزی شبیه سازی ما را موفقیت آمیز می کند یا در مقابلش به شکست می کشاند. برای مثال می گوییم در شبیه سازی اگر حداکثر دما در Domain باسبار زیر ۵۰۰ کلوین باشد شبیه سازی موفقیت آمیز خواهد بود و اگر بالاتر از محدوده برود شبیه سازی شکست خورده است.
توجه نمایید که در مورد شکست منظور ما این نیست که اپ شبیه سازی حل را انجام نداده، بلکه تنها منظور ما این است دمای حداکثری پایین تر از گستره ای که ما برای موفقیت تعیین نموده ایم قرار نگرفته است. بنابراین می توانیم به پنجره Editor Tools برویم و اطمینان حاصل نماییم که در مکان صحیح قرار داریم(شماره ۲)، سپس Volume Maximum و Get را انتخاب نماییم.
بنابراین (خط شماره ۴) حداکثر دما در Domain باسبار مس را که ما متغییر maxTemp را به آن اختصاص دادیم، می گیرد. توجه نمایید که ما یک خطا داریم که به وسیله ی یک خط موجی شکل زیر متن مشخص گردیده است؛ این خطا می گوید که نمی توانیم یک متغییر Numerical، به یک متغییر double تبدیل نماییم؛ بنابراین به پنجره Language Elements باز می گردیم و برای ویژگی عددی جستجو می نماییم . اولین گزینه evaluateToDoubleArray2D، مقدار خروجی را که یک ویژگی عددی می باشد به یک آرایه Double تبدیل می نماید. (مطابق شکل زیر)
بنابراین می توانیم آن را به کد ما اضافه کرده و مقدار خروجی را جابه جا نماییم، و آن را در آرگمان ویژگی عددی وارد نماییم.
اکنون این، مقدار خروجی ما را به صورت یک آرایه دو بعدی دبل ارزیابی می نماید. بنابراین احتیاج داریم که دبل مان را به یک آرایه دبل تبدیل نماییم. می توانیم به سادگی براکت ها را در کنار دبل اضافه نماییم و سپس برای آنکه یک توصیفگر متن بهتری برای این باشد، اجازه دهید نام این متغییر را به maxTempArray تغییر دهیم. و سپس در این اینجا ما هنوز متغیر خودمان یعنی maxTemp را تعریف ننموده ایم، بنابراین آنچه که ما اینجا انجام می دهیم تعریف maxTemp دبل و اختصاص آن به اولین سلول در آرایه می باشد.
اکنون به طور کلی بعضی شرتکات ها و ویژگی های در دسترس مفید در هنگام نوشتن کد برای اپ وجود دارند که شما باید به خاطر بسپارید. وقتی که شما در حال نوشتن هستید شما می توانید روی method editor راست کلیک نمایید و Indent and format را انتخاب نمایید تا به صورت خودکار اطمینان حاصل نمایید که کد شما به طور مناسبی ترازبندی شده و متن به صورت همسان تورفته و فرمت بندی شده است.
بعلاوه، زمانی که شما با پیام خطایی مانند زیر مواجه می شوید، می توانید از ترکیب کلیدهای ctll و ۱ به منظور اصلاح خطا در کدتان استفاده نمایید.
این مورد ، می توانست چند مرتبه در زمانی که ما در حال ساخت کد بودیم مورد استفاده قرار گیرد و به ما اجازه می داد از چندین گام عبور نماییم. هرچند، ما می خواستیم به شما چندین پنجره و ابزار که شما می توانید برای ساخت کد در اپ شبیه سازی تان مورد استفاده قرار دهید را نشان دهیم و به این دلیل بود که ما از این شرتکات استفاده ننمودیم.
اکنون اگر برنامه را آزمایش نمایید ، می توانید ببینید در هنگامی که دما بالاتر از حد تعریف شده تجاوز نماید ، پیغام شکست به صورت صدا ظاهر می شود. برای مثال اگر ولتاژ اعمالی را به mV 80 تغییر دهیم، شبیه سازی شکست خورد چرا که حداکثر دما در باسبار از ۵۰۰کلوین تجاوز نمود. و اگر ما ولتاژ اعمالی را به mV 50 کاهش دهیم ،ما صدای موفقیت را که پخش می شود را می شنویم چرا که دمای حداکثر در باسبار زیر محدوده دمایی ما قرار می گیرد.
اکنون ما یک صدا داریم که پخش می شود، اما ما می خواهیم قابلیت های بیشتری اضافه نماییم تا به کاربر بهتر نشان دهیم چه موقع شبیه سازی شکست خورده یا موفق آمیز بوده است.در ادامه به بررسی قابلیت جذابی می پردازیم . برای اینکار ، روی دکمه ی record Code کلیک می نماییم.
می توانید خطوط قرمز کادر Application Builder و Model Builder را ببینید. و این قابلیت هر تغییری را که ما در مدل ایجاد می نماییم ضبط می نماید. برای تغییر نمایش رنگ، می توانیم به گره Temperature Plot وسپس Surface بروم، و سپس Color table را به GrayPrint تغییر دهیم. این یک نمایش بصری خوب از شکست شبیه سازی می باشد. سپس آن را به ThermalLight بر می گردانیم.
بنابراین اکنون می توانیم به زبانه Developer برویم و روی stop Recording کلیک نماییم.به Application Builder باز می گردیم و می بینید که کد آنچه که ما انجام دادیم اضافه گردیده است.
اکنون کد ایجاد شده را با تغییراتی اندک ، برای هر دو قسمت if و قسمت else اضافه می نماییم.(مطابق شکل زیر)
اکنون اگر در شبیه سازی، ولتاژ را به mV80 افزایش دهیم و اجرا نماییم صدای شکست پخش می گردید، و ما یک نشانگر بصری واضح تری مبنی بر این که شبیه سازی موفقیت آمیز نبود، داریم(رنگ خاکستری) و اگر ما mV 50 را وارد نماییم ، صدا پخش می گردد و راهنمای رنگ به ThermalLight تغییر می کند. چرا که مقدار حداکثر دما زیر معیاری که ما تعیین نموده ایم قرار می گیرد.بنابراین اکنون ما ساخت اپلیکیشن را به پایان رساندیم. اگر می خواهید کاربران اپ ساخته شده را به با استفاده از کامسول اما نه با دکمه Test Application، اجرا نمایند، کاری که می توانید انجام دهید این است که به گره root در Application Builder بروید و سپس در قسمت Application می توانید انتخاب نمایید که اپ به تنهایی باز شود .(بدون اجرا کل نرم افزار )
اکنون هر کجا که فایل را Save as نمایید می توانید آن را به صورت فایل جداگانه اجرا نمایید:
هر چند ،در این حالت هم اگر بر روی فایل راست کلیک نماییم و Edit را انتخاب نماییم، خواهید دید که کاربر هنوز می تواند به جزئیات مدل سازی اپ شبیه سازی دسترسی داشته باشد و آنها را ویرایش نماید. اگر می خواهیم که کاربراین نتوانند اپ را مانند اینجا باز نمایند، می توانیم دوباره به گره root برویم و یک پسورد را به منظور جلوگیری از ویرایش آن enable نماییم. همچنین می توانید یک پس ورد را برای جلوگیری از اینکه کاربران اپ را اجرا نمایند قرار دهید.
در آخر ، می توانیم اپ را از طریق کامسول سرور اجرا نماییم. کامسول سرور یک محصول کاملاً متفاوت می باشد و این محصول برای منتشر نمودن اپ ها به صورت مطمئن و امن بدون آنکه کاربران نیاز به یک لایسنس کامسول مالتی فیزیک داشته باشد، می باشد. دو روش برای اجرای اپلیکیشن شما به استفاده از کامسول مالتی فیزیک می باشد. اولین روش COMSOL Client برای سیستم عامل های ویندوز می باشد.
کامسول دانلود رایگان آن در دسترس می باشد. کامسول Client نمای مشابهی دارد و مانند دسکتاپ کامسول احساس می شود و شبیه آن است که اپ را با کامسول مالتی فیزیک اجرا نمایید.
راه دوم اجرای اپ ، از طریق یک مرورگر وب می باشد. توجه نمایید که هیچ نصبی برای کاربران برای اجرای اپ شما با استفاده از این وسیله ها نمی باشد.
گرافیک های سک بعدی، دو بعدی، و سه بعدی و گرافیک های تعاملی وجود دارند که از استاندارد WebGL استفاده می نمایند.
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.