دریافت و تنظیم روش‌ها برای دسترسی به ویژگی‌ها

دریافت و تنظیم روش‌ها برای دسترسی به ویژگی‌ها

دریافت و تنظیم روش‌ها برای دسترسی به ویژگی‌ها
متدهای 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 زیر مراجعه کنید .
نحو برای خانواده متدهای دریافت برای انواع داده های پایه در جدول زیر خلاصه شده است:
 
تایپ کنید
نحو
رشته
getString (نام رشته)
آرایه رشته ای
getStringArray (نام رشته)
ماتریس رشته
getStringMatrix (نام رشته)
عدد صحیح
getInt (نام رشته)
آرایه عدد صحیح
getIntArray (نام رشته)
ماتریس عدد صحیح
getIntMatrix (نام رشته)
دو برابر
getDouble (نام رشته)
آرایه دوتایی
getDoubleArray (نام رشته)
ماتریس دوگانه
getDoubleMatrix (نام رشته)
بولی
getBoolean (نام رشته)
آرایه بولی
getBooleanArray (نام رشته)
ماتریس بولی
getBooleanMatrix (نام رشته)
همه آرایه ها به عنوان کپی از داده ها برگردانده می شوند. نوشتن در یک آرایه بازیابی شده، داده های موجود در شی مدل را تغییر نمی دهد. برای تغییر محتویات یک آرایه در شی مدل، از یکی از متدهای set یا setIndex استفاده کنید.
تبدیل نوع خودکار از نوع ویژگی به نوع بازگشت درخواستی انجام می شود.
روش مجموعه
نحو برای انتساب با استفاده از متد set با این خط کد مثال زده می شود که عنوان گروه نمودار pg1 را تعیین می کند :
model.result(“pg1”).set(“title”, “دمای T بر حسب کلوین”);
آرگومان اول یک رشته با نام ویژگی است، در مثال بالا ” title “. آرگومان دوم مقدار است و می تواند یک نوع پایه باشد همانطور که در جدول زیر نشان داده شده است.
Type
Syntax
String
set(String name,String val1)
String array
set(String name,new String[]{“val1″,”val2”})
String matrix
set(String name,new String[][]{{“1″,”2”},{“3″,”4”}})
Integer
set(String name,17)
Integer array
set(String name,new int[]{1,2})
Integer matrix
set(String name,new int[][]{{1,2},{3,4}})
Double
set(String name,1.3)
Double array
set(String name,new double[]{1.3,2.3})
Double matrix
set(String name,new double[][]{{1.3,2.3},{3.3,4.3}})
Boolean
set(String name,true)
Boolean array
set(String name,new boolean[]{true,false})
Boolean matrix
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
متد 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(name,value,2);
عنصر سوم نام ویژگی را روی مقدار قرار می دهد .
متد 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”});
endwith();
model.geom(“geom1”).run();
with(model.physics(“c”).feature(“cfeq1”));
setIndex(“c”, “-0.1”, 0, 1);
setIndex(“c”, “-0.2”, 0, 6);
setIndex(“f”, “2.5”, 0);
endwith();
شاخص های ماتریس ضریب انتشار 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]);
endwith();
کد زیر اجزای یک نمودار تغییر شکل را تنظیم می کند.
with(model.result(“pg7”).feature(“surf1”).feature(“def”));
setIndex(“expr”, withstru, 0);
setIndex(“expr”, withstrv, 1);
setIndex(“expr”, withstrw, 2);
endwith();
کد زیر عنوان و رنگ افسانه یک گروه نمودار pg2 را تنظیم می کند و سپس نمودار را بازسازی می کند.
with(model.result(“pg2”));
  set(“titletype”, “auto”);
endwith();
with(model.result(“pg2”).feature(“surf1”));
  set(“colorlegend”, “on”);
endwith();
model.result(“pg2”).run();