num2str() 스크립트 명령어를 활용한 모델링 방법

script
modeling
forloop
num2str
set

#1

스크립트를 이용하여 아래 캡쳐 이미지에서 처럼, 반경의 크기가 r=100 nm인 10개의 구(sphere) array가 동일한 간격으로 배치되하고, 구의 이름을 sphere1 부터 sphere10 까지 순차적으로 변경하는 방법에 대해서 알아보겠습니다.

스크립트 파일: num2str_example.lsf (736 바이트)

아래 이미지와 같이for loop 구간내에서 num2str과 set 명령어 등을 조합하면 스크립트를 완성할 수 있습니다.
여기서 num2str()은 괄호안에 있는 숫자를 문자열(character)로 바꿔주는 역할을 하고, set은 선택한 개체의 이름, 크기, 위치 등의 속성을 변경할 수 있는 명령어 입니다.


각각의 command line의 의미에 대해서 살펴보자면,

deleteall; # 시뮬레이션 모델 내에 있는 모든 개체를 지움
N = 10; # 만들 개체의 개수
n = 1.5; # 만들 개체의 굴절률 (dielectric 물질이라 가정)
r = 100e-9; # 개체의 반지름
pitch = 500e-9; # 인접하는 개체들의 간격

for ( i = 1:N ) { # for loop i가 1에서부터 N까지 loop 내의 내용(명령어들)을 순차적으로 진행함)
addsphere; # 구를 생성 함
name = ‘sphere’ + num2str(i); #구의 이름을 지정, ex) sphere1 ~ sphere10
distance = pitch*(i-1); # 원점(0,0,0)에서 생성되는 개체의 중심점까지의 거리
set(‘material’, ‘<Object defined dielectric>’); # 굴절률(n, 상수)을 직접 입력하기 위해 <Object defined dielectric>를 선택함
set(‘index’, n); # dielectric 물질인 구의 굴절률(n)을 지정
set(‘radius’,r); # 구의 반지름®을 지정
set(‘name’, name); # 개체의 이름을 지정
set(‘x’,distance); # 개체의 x축 좌표를 지정
set(‘y’,0); set(‘z’,0); #개체의 y,z축 좌표를 지정
}

스크립트를 실행시키면 아래와 같이 10개의 구가 동일한 간격으로 배치되어 있고, 이들의 이름이 sphere1~sphere10까지 지정되어 있음을 확인할 수 있습니다.