Library의 Source 이용하기

BRO에서는 현재 판매되고 있는 여러 종류의 상용 광원들에 대한 라이브러리를 제공하고 있다. 우리는 이 라이브러리를 불러와서 사용하기만 하면 된다. 라이브러리에서 광원을 불러와 사용하는 방법에 대해서 알아보자. 우선 ASAP의 버전에따라 다르게 접근해야 한다.

v8.0 이후부터 적용된 Quick Start 윈도우부터 알아보자. View > Quick Start Bar 메뉴를 선택하면 ASAP 윈도우 오른쪽에 Quick Start 윈도우가 생성된다. 여기서 Source 버튼을 클릭하면 왼쪽에 Sources 트리 구조 윈도우가 생성된다. 여기서 LED > Manufacturer >Nichia > NSCW215T를 선택해 보자.

Quick Start Bar
그림 11.1 Quick Start Bar 메뉴

만약 ASAP이 v8.0 이전 버전이라면 Quick Start 윈도우는 없다. 대신 Rays > Use BRO Light Source Library Wizard… 항목을 선택하면 된다. 물론 최신버전에서도 가능한 방법이다.

Source Wizard
그림 11.2 Use BRO Light Source Library Wizard… 메뉴

위의 두 방법으로 메뉴를 선택하고 나면 그림 11.3과 같이 동일한 BRO Light Source Library Wizard 윈도우가 생성된다. 다만 첫번째 방법은 처음부터 모델을 선택했기 때문에 Source Library File:에 NSCW215T가 이미 선택되어 있고, 두번째 방법은 선택항목에서 이 모델을 찾아야 한다. 그 다음부터는 두 경우 모두 동일하게 진행된다.

View Model
그림 11.3 BRO Light Source Library Wizard 윈도우

모델을 선택하였다면 옆의 View Model 버튼을 클릭해보자. 그러면 LED의 기준축과 함께 LED 형상을 보여준다. 이 사진을 보고 내가 원하는 LED가 맞는지 확인하면 된다.

View Model_02
그림 11.4 NSCW215T Specifications 윈도우

윈도우를 닫고 Next> 버튼을 클릭해보자. 그러면 Rayset Options 항목이 보인다. 우선 Option 1: Create and save rayset(s)를 선택하고 Next> 버튼을 클릭하자. ASAP에서 라이브러리 파일은 광원과 기구적인 형상에 대한 2종류의 정보를 가지고 있는데, 먼저 광원에 대한 정보를 불러온다.

Option1
그림 11.5 Rayset Options 선택 윈도우

그러면, Flux(Watts): 값과 Rayset Name 항목을 입력한다. Flux값은 LED Spec. Sheet가 있다면 정확한 값을 넣거나 아니면 원하는 값을 넣으면 된다. 여기서는 100을 입력하였다. 그리고 Rayset Name은 통일성을 위해서 nscw라고 입력하였다. Ray Count는 실제 만들어질 Ray의 개수을 입력하는데 Ray를 많이 만들수록 결과는 정밀해지지만 용량은 커진다. 물론 Simulation 시간도 오래 걸리게 된다. 두 항목을 입력하였다면 Next>를 클릭해보자.

Flux
그림 11.6 Create Raysets 윈도우

다음은 선택된 LED에서 나오는 파장대별 Intensity 그래프를 보여준다. 여기서 내가 Simulation 하려는 파장대를 선택하면 된다. 그래프의 선 위에서 마우스를 더블클릭하면 오른쪽 Waveleng-th 항목에 값이 생성된다. 마우스로 클릭해서는 정확한 값을 입력할 수 없기 때문에 항목에 값을 정확하게 수정해 주면 된다. 여기서는 peak 점인 463nm와 560nm 두 파장을 선택해 보았다.

Wavelength
그림 11.7 Spectral Selection 윈도우

그리고 Finish 버튼을 클릭하고 나면 Command Output 윈도우에 nscw_463nm_10k.dis 파일과 nscw_560nm.10k.dis 파일이 생성된 것을 확인할 수 있다.

Command Output
그림 11.8 Command Output 윈도우

그리고는 더이상 윈도우가 생성되지 않는다. 그런데 여기서 끝이 아니다. 앞에서 이야기 했듯이 Option 1: 에서는 Rayset(s)을 만들었고 이제는 기구적인 형상을 만들어 주어야 한다. 그래야 완벽한 LED를 구현했다고 할 수 있기 때문이다.

처음에 살펴본 라이브러리를 불러오는 2종류의 방법중 하나를 선택해서 똑같이 실행시켜보자. 그러면 그림 11.9와 같이 Rayset Options 윈도우가 생성될 것이다.

여기서는 Option 2: Write ASAP script commands to template 항목을 선택하고 Next>를 클릭하자.

Option2
그림 11.9 Rayset Options 선택 윈도우

ASAP Script Template Entry 윈도우에서 Template Name:nscw라고 입력하자. 이 이름은 원하는 아무 이름이나 넣어도 상관없다.

Template name
그림 11.10 ASAP Script Template Entry 윈도우

Source Geometry Setup – Write ASAP Script 윈도우의 아래쪽에 있는 시트에서 Rayset Name 셀의 아래 칸을 클릭해 보자. 윈도우가 처음 생성되면 Rayset … 이라고 표시되어 있을 것인데 마우스로 셀을 확장해 보면 정확한 이름을 확인할 수 있다. 이것은 현재 설정하고 있는 기구물 형상에 어떤 Ray를 적용할 것인지 설정하는 부분이다. 그림 11.6의 Option 1: 에서 설정했던 Rayset Name인 nscw를 입력해 주면 된다. Primary Axis나 Secondary Axis의 축을 변경할 수도 있고 원점의 위치를 변경 할 수도 있다. 다음은 Ray Files 아래의 셀을 클릭해보자.

Rayset Name
그림 11.11 Source Geometry Setup – Write ASAP Script 윈도우

그러면, Rayset File Selection 윈도우가 생성된다. 앞에서 Rayset Name에 nscw를 입력하였기 때문에 왼쪽에 있는 Current Rayset Liles: 박스에 두개의 .dis 파일이 보인다. 만약 앞에서 Rayset Name을 다르게 입력하였다면 이 항목은 보이지 않을 것이다. 두개의 .dis 파일을 선택하고 Add>>> 버튼을 클릭하자. 그러면 Selected Rayset Files:에 복사된다.

Rayset File Selection
그림 11.12 Rayset File Selection 윈도우

OK 버튼을 클릭하면, 그러면 다시 그림 11.11의 BRO Light Source Library Wizard 윈도우로 돌아간다. Finish 버튼을 클릭하자. 그러면 INR input 파일에 아래와 같은 코드가 자동으로 생성된다.

$IO LIBRARY 명령어를 통해서 NSCW215T.lib 파일을 불러온다. 만약 버전이 낮아서 위와 같이 되지 않는다면 탐색기에서 NSCW215T.lib 파일을 찾아서 그 경로를 변경해 주면 된다.

$IO LIBRARY “C:\Program Files\ASAP2008V2R1\Projects\LightSource\NSCW215T.lib”
NSCW215T_GEOM 0 0 0 +Z +Y 1 0PLACERAYS 0 0 0 +Z +Y NSCW_463NM_10K.DIS 463
PLACERAYS 0 0 0 +Z +Y NSCW_560NM_10K.DIS 560
$IO LIBRARY CLOSE

NSCW215T.lib 파일을 열어보면 NSCW215T_GEOM { 7 매크로를 확인할 수 있는데 NSCW215T_ GEOM 다음에 나오는 7개의 변수가 어떤 의미인지 확인 할 수 있다. 이중 6번째 변수를 주의해야 한다. Copy number는 아래의 파일을 복사해서 여러개의 source파일을 만들려고 할 때 사용하는 것으로써 여러개의 source에 대한 copy number를 다르게 설정해 주어야 한다. 그렇지 않고 copy number가 같은 것이 있다면 source가 엉뚱한 곳에 생성된다. 이 번호를 꼭 변경해 주어야 한다.

그림 11.11에서 Add 버튼을 눌러서 여러개의 Source를 생성할 수 있는데 시트의 첫번째 항에 있는 Rayset# 항목이 각각의 Copy number를 의미한다.

NSCW215T_GEOM { 7
$CLEAR 
!!define media, coatings and scatter models
&MEDCOATMOD #7 #6

**********************************
!!number of objects
 NUMOBJ=75
!!number of emitting objects 
 NEMITR=0
!!PART NUMBER
G6=”NSCW215T”
**********************************

!!call all sub-assemblies
 &PIECEPART #6    
!!assign same color to all objects
&COLOROBJ (NUMOBJ)
!!move the objects to specified datum
 &TRANSBULB #1 #2 #3 #4 #5 #6 G6″
$IF (#7) NE 0
&NSCW215T_CALC_SPEC
}
xcoordinate>
ycoordinate>
zcoordinate>
Primary axis>
Secondary axis>
Copy number>
Color Temperature in Kelvin or DUMMY>

매크로의 이름에서 알 수 있듯이 NSCW215T_GEOM은 Option 2:에서 설정한 LED의 형상에 관한 것이다. 그럼, 이번에는 Option 1:에서 설정한 광원에 대해서 알아보자. 광원은 PLACERAYS 매크로를 통해서 불러오는데 이것도 7개의 변수를 가진다. 같은 광원을 여러개 만들고 싶으면 NSCW215T_GEOM과 함께 PLACERAYS 매크로를 모두 복사해서 사용하면 된다.

PLACERAYS { 7
SPECTRUM OFF
  WAVELENGTH (#7) NM
  EMITTING DATA “#6” 1000
&RAYTRANS #1 #2 #3 #4 #5
}
xcoordinate>
ycoordinate>
zcoordinate>
Primary axis>
Secondary axis>
Ray Distribution file name>
Wavelength in nm>

명령어 $IO LIBRARY ~ $IO LIBRARY CLOSE로 LED가 만들어졌다면 이제 이것을 그려보자. 프로그램의 마지막 줄 다음에 아래의 명령어를 추가해보자.

PLOT FACETS OVERLAY
PLOT RAYS .5

LED 3D
그림 11.13 생성된 LED

$IO LIBRARY 명령어에 있는 경로를 통해서 NSCW215T.lib 파일을 다시 열어보면 LED가 어떻게 만들어지는지 알 수 있다. 특히 USETRAPOD 명령어를 통해서 LED의 Apodization(배광분포)을 설정한 부분을 확인 할 수 있다.

중간에 있는 SIN[..]이 광의 발산각도를 의미하고, X축과 Y축으로 -90도에서 90도까지의 빛의 세기를 각도의  양쪽에 각각 정의하였다. 물론 이 데이터들은 측정 장비를 통해 얻어진 결과들이다.

우리가 2차원이나 3차원의 BSDF 장비를 가지고 있어서 배광분포를 측정할 수 있다면 그 값을 지금과 동일한 방법으로 정의해서 사용하면 된다. 그리고 LED Data sheet에 있는 데이터를 이용해서도 User Apodization을 만들어 사용할 수 있다.

!!Apodization data here
USERAPOD  DIR  1  1

!!  X-VALUE  ANGLE        Y-VALUE
     0             SIN[-90]      0
    0.04      SIN[-85]      0.04
    0.11        SIN[-80     0.11
    0.18       SIN[-75]      0.18
    0.25      SIN[-70     0.25
    0.35      SIN[-65]      0.33
    0.44      SIN[-60]      0.40
     0.52     SIN[-55]      0.47
    0.6         SIN[-50]      0.56
    0.67      SIN[-45]      0.62
    0.74      SIN[-40]      0.71
    0.8         SIN[-35]      0.77
     0.86     SIN[-30]      0.83
     0.9        SIN[-25]      0.88
     0.94     SIN[-20]      0.93
   0.97      SIN[-15]      0.96
    0.98      SIN[-10]      0.98
    0.99      SIN[-5]        0.99
    1              SIN[0]         1
     0.99     SIN[5]         0.99
    0.98      SIN[10]       0.98
    0.97      SIN[15      0.96
     0.94     SIN[20      0.93
    0.9         SIN[25]       0.88
     0.86     SIN[30]       0.83
     0.8        SIN[35]       0.77
    0.74      SIN[40      0.71
    0.67      SIN[45      0.62
    0.6         SIN[50      0.56
    0.52      SIN[55]       0.47
     0.44     SIN[60      0.40
    0.35      SIN[65]       0.33
    0.25      SIN[70      0.25
     0.18      SIN[75]       0.18
    0.11        SIN[80]       0.11
    0.04      SIN[85      0.04
     0             SIN[90]       0
RETURN

이제 원하는 광원을 Library에서 찾아서 한번씩 만들어보자. Library에 따라서 배광분포가 정의된 부분이 없는 것도 있을 것이다.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: