دریافت و تنظیم روشها برای دسترسی به ویژگیها
متدهای get و
set به ترتیب برای دسترسی و تخصیص مقادیر ویژگی در قسمتهای مختلف شی مدل استفاده میشوند. برای تخصیص عناصر جداگانه یک بردار یا ماتریس، از روش
setIndex استفاده می شود. مقادیر ویژگی می تواند از انواع داده های اصلی باشد:
رشته ،
int ،
double و
boolean ، و همچنین بردارها یا ماتریس هایی از این نوع (آرایه های 1D یا 2D).
متدهای دریافت ،
تنظیم و
ایجاد ( که در قسمت قبل توضیح داده شد) نیز از درخت مدل با کلیک راست و انتخاب
Copy as Code to Clipboard قابل دسترسی هستند .
خانواده متدهای
get برای بازیابی مقادیر خواص استفاده می شود. به عنوان مثال، متد
getDouble را می توان برای بازیابی مقدار خاصیت اندازه عنصر از پیش تعریف شده
hauto برای یک مش و ذخیره آن در یک متغیر
hv استفاده کرد :
double hv = model.mesh(“mesh1”).feature(“size”).getDouble(“hauto”);
برای اطلاعات بیشتر در مورد ملک
hauto به بخش
“کد مثال” در صفحه 33 زیر مراجعه کنید .
نحو برای خانواده متدهای دریافت برای انواع داده های پایه در جدول زیر خلاصه شده است:
|
|
|
|
|
getStringArray (نام رشته)
|
|
getStringMatrix (نام رشته)
|
|
|
|
|
|
|
|
|
|
getDoubleArray (نام رشته)
|
|
getDoubleMatrix (نام رشته)
|
|
|
|
getBooleanArray (نام رشته)
|
|
getBooleanMatrix (نام رشته)
|
همه آرایه ها به عنوان کپی از داده ها برگردانده می شوند. نوشتن در یک آرایه بازیابی شده، داده های موجود در شی مدل را تغییر نمی دهد. برای تغییر محتویات یک آرایه در شی مدل، از یکی از متدهای
set یا
setIndex استفاده کنید.
تبدیل نوع خودکار از نوع ویژگی به نوع بازگشت درخواستی انجام می شود.
نحو برای انتساب با استفاده از متد
set با این خط کد مثال زده می شود که عنوان گروه نمودار
pg1 را تعیین می کند :
model.result(“pg1”).set(“title”, “دمای T بر حسب کلوین”);
آرگومان اول یک رشته با نام ویژگی است، در مثال بالا ”
title “.
آرگومان دوم مقدار است و می تواند یک نوع پایه باشد همانطور که در جدول زیر نشان داده شده است.
|
|
|
set(String name,String val1)
|
|
set(String name,new String[]{“val1″,”val2”})
|
|
set(String name,new String[][]{{“1″,”2”},{“3″,”4”}})
|
|
|
|
set(String name,new int[]{1,2})
|
|
set(String name,new int[][]{{1,2},{3,4}})
|
|
|
|
set(String name,new double[]{1.3,2.3})
|
|
set(String name,new double[][]{{1.3,2.3},{3.3,4.3}})
|
|
|
|
set(String name,new boolean[]{true,false})
|
|
set(String name,new boolean[][]{{true, false},{false, false}})
|
استفاده از متد
set برای یک شی، خود شی را برمی گرداند. این به شما امکان می دهد چندین تماس را برای
تنظیم به صورت زیر اضافه کنید:
model.result(“pg1”).set(“رنگ لبه”، “سیاه”).set(“لبه ها”، “روشن”);
خط قبلی کد مقادیری را به هر دو ویژگی
edgecolor و
edges گروه نمودار
pg1 اختصاص می دهد و معادل دو خط است:
model.result(“pg1”).set(“edgecolor”, “black”);
model.result(“pg1”).set(“لبه”، “روشن”);
در این حالت متد
set یک شی گروه نمودار را برمی گرداند.
تبدیل نوع خودکار از نوع مقدار ورودی به نوع ویژگی انجام می شود. برای مثال، پارامتر مدل a را در نظر بگیرید
که فقط یک عدد اعشاری بدون واحد است. مقدار آن را می توان با عبارت زیر تنظیم کرد:
model.param().set(“a”, “7.54”);
جایی که مقدار “7” یک رشته است. در این مورد، نحو زیر نیز معتبر است:
model.param().set(“a”,7.54);
متد setIndex برای تخصیص یک مقدار به یک عنصر آرایه 1 بعدی یا 2 بعدی در موقعیتی که توسط یک یا دو شاخص (شروع از شاخص 0 شروع می شود) استفاده می شود.
خط زیر استفاده از
setIndex با یک شاخص را نشان می دهد:
model.physics(“c”).feature(“cfeq1”).setIndex(“f”، “2.5”، 0);
خط زیر استفاده از
setIndex با دو شاخص را نشان می دهد:
model.physics(“c”).feature(“cfeq1”).setIndex(“c”، “-0.1″، 0، 1);
برای متد
setIndex به طور کلی، از یکی از این گزینه ها برای تنظیم مقدار یک عنصر استفاده کنید:
setIndex (نام رشته، مقدار رشته، شاخص int)؛
setIndex (نام رشته، مقدار رشته، int index1، int index2);
آرگومان name یک رشته با نام ویژگی است
.
آرگومان value یک نمایش رشته ای از مقدار است . شاخص ها از 0 شروع می شوند، به عنوان مثال:
عنصر سوم
نام ویژگی را روی
مقدار قرار می دهد .
متد setIndex یک شی از همان نوع را برمیگرداند، به این معنی که روشهای
setIndex را میتوان درست مانند متد
set اضافه کرد.
اگر ایندکس فراتر از اندازه فعلی آرایه باشد، آرایه در صورت نیاز قبل از تنظیم عنصر در
شاخص گسترش می یابد . مقادیر هر عنصر میانی تازه ایجاد شده تعریف نشده است.
روش
setIndex و
set هر دو می توانند برای اختصاص مقادیر در آرایه های ناهموار استفاده شوند. به عنوان مثال، یک آرایه ناهموار با 2 ردیف را در نظر بگیرید. عبارات کد:
setIndex(name,new string[]{“1″,”2″,”3”},0);
setIndex(name, new string[]{“4″,”5”},1);
ردیف اول و دوم آرایه را تنظیم می کند و معادل عبارت واحد هستند:
set(“name”,new string[][]{{“1″،”2″،”3”}،{“4″،”5”}});
روشهای مرتبط با روشهای SET و GET
برای انواع شی که میتوان از روشهای
set ،
setIndex ، و
get برای آنها استفاده کرد، روشهای اضافی زیر در دسترس هستند، که نمونهای از آنها در مورد انتقال حرارت در رابط فیزیک جامدات است:
// String[] properties();
String[] props = model.component(“comp1”).physics(“ht”).feature(“solid1”).properties();
نام تمام ویژگی های موجود را برمی گرداند،
// hasProperty بولی (نام رشته);
boolean b = model.component(“comp1”).physics(“ht”).feature(“solid1”).hasProperty(“k_mat”);
اگر ویژگی دارای ویژگی نامگذاری شده باشد، true را برمی گرداند،
// رشته[] getAllowedPropertyValues(نام رشته);
String[] vals = model.component(“comp1”).physics(“ht”).feature(“solid1”).getAllowedPropertyValues(“k_mat”);
مقادیر مجاز را برای خواص نامگذاری شده برمی گرداند، اگر مجموعه ای محدود باشد.
بلوک کد زیر را می توان برای هشدار به کاربر برنامه از زمان های شبیه سازی بیش از حد بر اساس اندازه عنصر استفاده کرد:
if (model.mesh(“mesh1”).feature(“size”).getDouble(“hauto”) <= 3) {
exp_time = “زمان حل ممکن است بیش از 10 دقیقه برای اندازه عناصر ظریف تر باشد.”;
در مثال بالا،
getDouble برای بازیابی مقدار ویژگی
hauto استفاده میشود که با پارامتر
اندازه عنصر از پیش تعریف شده در پنجره
تنظیمات گره Size در زیر گره
Mesh مطابقت دارد . این تنظیم زمانی در دسترس است که
نوع Sequence روی
مش کنترل شده توسط کاربر ، در پنجره
تنظیمات گره
مش تنظیم شده باشد.
خط کد زیر آرایه ای از رشته های مربوط به افسانه های یک گراف نقطه ای 1 بعدی را بازیابی می کند.
String[] legends = model.results(“pg3”).feature(“ptgr1”).getStringArray(“legends”);
شکل زیر نمونه ای از بردار افسانه ها را در پنجره
تنظیمات نمودار نقطه ای مربوطه نشان می دهد.
خط کد زیر مجموعه
داده dset1 را برای
گروه Plot pg1 تنظیم می کند :
model.result(“pg1”).set(“داده”، “dset1”);
خطوط کد زیر ضریب انتشار ناهمسانگرد را برای مسئله معادله پواسون در هندسه بلوکی تنظیم می کند.
model.geom(“geom1”).create(“blk1”, “Block”);
with(model.geom(“geom1”).feature(“blk1”));
set(“size”, new String[]{“10”, “1”, “1”});
model.geom(“geom1”).run();
with(model.physics(“c”).feature(“cfeq1”));
setIndex(“c”, “-0.1”, 0, 1);
setIndex(“c”, “-0.2”, 0, 6);
شاخص های ماتریس ضریب انتشار 3 در 3 از ترتیب ستون اول پیروی می کنند.
کد زیر پارامتر جهانی
L را روی یک مقدار ثابت تنظیم می کند.
model.param().set(“L”, “10[cm]”);
کد زیر شاخص پیوند مواد را به آلیاژ متغیر رشته ای که در گره
Declarations تعریف شده است، تنظیم می کند.
model.material(“matlnk1”).set(“link”, alloy);
کد زیر مختصات یک مجموعه داده نقطه برش
cpt1 را با مقادیر آرایه 1
بعدی نمونه کدهای [] تنظیم می کند.
with(model.result().dataset(“cpt1”));
set(“pointx”, samplecoords[0]);
set(“pointy”, samplecoords[1]);
set(“pointz”, samplecoords[2]);
کد زیر اجزای یک نمودار تغییر شکل را تنظیم می کند.
with(model.result(“pg7”).feature(“surf1”).feature(“def”));
setIndex(“expr”, withstru, 0);
setIndex(“expr”, withstrv, 1);
setIndex(“expr”, withstrw, 2);
کد زیر عنوان و رنگ افسانه یک گروه نمودار pg2 را تنظیم می کند و سپس نمودار را بازسازی می کند.
with(model.result(“pg2”));
set(“titletype”, “auto”);
with(model.result(“pg2”).feature(“surf1”));
set(“colorlegend”, “on”);
model.result(“pg2”).run();