일반적으로코팅은지정한입사각, 물질의두께등하나의조건하에서이루어지지만열방사, 흡수, 두께또는입사각등의변화에따른결과가필요한경우사용자가이에대한조건과수식을직접만들어빠른시간내에다양하고정확한결과를얻어내어업무의생산성과효율성을크게올릴수있는기능입니다. 조건과수식을위한방법으로 Operations and Scripts라는두가지가있는데 Operations은 Table 파일에있는 Data를다루기위한매크로언어로매우쉽고빠르게작성, 저장이가능하며출력또한 Table 파일형식으로되며 Scripts는 Dialog Box를만들어해당파라미터를입력하면 Plot, Table 등원하는출력양식으로나타낼수가있습니다. ( 상세내용은웹사이트에있는해당버튼을클릭하면됩니다. ) Function 작성은아래와같이 2 가지방식이있습니다. Operations (Macro Language ) 단항연산에적용 Scripts Script 는 BASIC 과같은프로그래밍언어로반복이 많고좀더복잡한계산 Dialog box 사용자가 Parameter 입력방식인 Dialog Box 형태로만들어 Script Manger 라는 곳에저장, 관리하여쉽고간편하게원하는결과를산출해낼수있습니다. Copyright c 디지크라식 http://www.rf.co.kr
Dialog box 사용자가프로그램을 Dialog box 형태로만들어쉽고간편하게 Parameter 를입력, 다양한결과를계산해낼수있습니다. 프로그램에약 40 개정도의기본 tool 이제공되며고객이이외어떤 Model 이필요한 경우연락주시면제공가능여부를답변드리겠습니다. 현재기본으로제공되는 Scripts 그중에서예시를보여드리면 Copyright c 디지크라식 http://www.rf.co.kr
-Fringes II 한 Layer의두께를단계별로증감하여자동으로계산, 결과 Data를 Table과 Color Patch로보여주는기능. 1. File > New >Design - 해당 Design file 을생성. 두께조정조건두께 : 250 > 350 Interval : 10 2. Tools > Scripts
FringeII 선택 > Run Edit : Scripts file 을보여주어사용자가내용을보거나수정이가능. 3. 결과 Data 조건설정 3 Layer 중 2 번 Layer 최대두께 최소두께 증감간격 결과 Data 설정
Layer 두께를단계별로자동으로계산한결과 Data Table 과 Color Patch 가 나타납니다.
- Metal 광학상수 ( Metal n,k) 구하기 Operations (Macro Language ) 단항연산을위하여예를들어 Illuminant D65 ( 정규입사각, 21 레이어, SiO2와 Ta2O5. quarterwave stack ) 의스펙트럼결과 Table을 Macro 언어로만든다면 Output = D65 R/100 R 다음에는 0~9 따르는데, 즉 R1. F 다음에는 0 또는1, C는상수. Design 파일을만들고, 반사율파장대역 : 300~900 Interval : 0.75 Performance > Table Table 파일명을 Reflectance 저장 Copyright c 디지크라식 http://www.rf.co.kr
File > New > Operation 아래내용대로입력 C0 : 특별상수로실행시간을나타냄. Independent Value : 독립변수값의집합. R0 : standard source reference file C1 : 100 입력. 0~1 범위에서전환된백분율 F0 : coating response. Scale of 0 to 100% C1 : 100. Converts from percent to scale of 0 to 1. C0 : 특별상수로실행시간을나타냄. C1 : 100 입력. 0~1 범위에서전환된백분율 R0 의 Reference 창에마우스를놓고왼쪽버튼을클릭, References 폴더에저장되어있는파일중 CIE Illuminant D65 1nm.ref 찾아선정. Copyright c 디지크라식 http://www.rf.co.kr
F0 의 Heading 에 Reflectance Filename 창에마우스를놓고왼쪽버튼을클릭, Design 폴더에저장되어있는파일중 Reflectance.tbl 찾아선정. Column 창에마우스를놓고왼쪽버튼을클릭, 디자인파일창이보이면 Reflectance(%) Column 선택입력. Source Modification.opn 이름으로저장 Copyright c 디지크라식 http://www.rf.co.kr
Execute > Run Table 창이나타나면 Output Column 을선택후 File > Plot Column 이상이간단한사용예이며좀더복잡한 Operations 도매크로언어를이용간단히 작성이가능합니다. Copyright c 디지크라식 http://www.rf.co.kr
프로그램구문의요약 ( Summary of the syntax ) Copyright c 디지크라식 http://www.rf.co.kr
Scripts Script 는 BASIC 과같은프로그래밍언어로반복이많고좀더복잡한계산에 유용하고거의무한하게사용됩니다. 먼저주요개념들을소개하면 (1) Class : 특별한 Object 의내용을명시하는정의로이미본프로그램에서 designs, stacks, plots 등이정의되어져있습니다. (2) Object : 어떤실체를표현하는한 Methods( subroutines 또는 functions ) 또는 Properties ( variables 또는다른 objects ) 의정의된 Structure. (3) Messages : Object 들간의 Communication (4) Properties : 변수또는다른 Object로보통 NameOfObject.NameOfProperty 형식을갖습니다.. (5) Methods : Subroutines 또는 functions으로그기능에따라아래와같은형식으로되는데 NameOfObject.NameOfMethod Parameters. VariableOrObjectName = NameOfObject.NameOfFunction Parameters NameOfObject.NameOfSubroutine Parameters Set DataSet=ThisDesign.CalculateTable(XAxis, YAxis) Results.SetColumnTitle 1, "Wavelength (nm)" GetSourceNames IlluminantList, IlluminantFiles, SourceDefinitions (6) Declarations : 프로그램시작점으로 Option Explicit 라는선언문으로사용되며변수는 Dim : 변수설정으로, 변수이름 as,$, I%( 정수 ) 설정값 Dim Result ( 변수이름 ) As Double Dim J as Long Dim I% Dim Properties() as Double 다음에재지정시 ReDim Properties(1 to 20) Copyright c 디지크라식 http://www.rf.co.kr
(7) Object 만들기 Class는이미프로그램에 Scripting에가능한 Object를정의해놓았으며이미정의되어져있는 Object는그대로어떠한추가, 수정없이사용이가능하며아래와같이목록에있는항목들은해당파일이활성화되고 Script가시작됐을때그것이 Object로됩니다. 활성화된파일 사전정의된 Objects ThisSession 은다른 Object 에연결이될수있으므로반드시지정된해당파일이열리어활성화되어있어야하며 ThisMaterials은 substrates를포함하고있으며 substrates의이름을얻기위해서는 Dim Names() As String Names = ThisMaterials.GetSubstrateNames 사용되며 모든다른 Object 들은먼저 Dim 명시되어있어야하는데 Dim MyTable As Object 또는 Dim Dialg As DIALOG_1 (DIALOG_1 는하나의정의된 dialog object ) 다음단계로 Class 의실제 object 는간단히 Set 을이용하여가능합니다. Set ObjectName = Object Expression Copyright c 디지크라식 http://www.rf.co.kr
Object 표현에는많은다른방법이있는데 CreateObject function 생성 : Set ObjectName = CreateObject(Class) Plot 생성 : Dim MyPlot As Object Set MyPlot = CreateObject( EMacleod EMacleod.PlotCreator PlotCreator ) Table 생성 : Dim MyTable As Object 이와같은방식으로 Table, 2D, 3D Plot 등은정리된내용은아래표와같습니다. Copyright c 디지크라식 http://www.rf.co.kr
지금부터 Script Manger 에대해알아보겠습니다. Tools > Scripts.. > New Script Manager 기본적으로지원되는 Modules 저장되어있는 Module 을갖고오는부분 Script에는반드시 Main 불리는 procedure가있어야하며 Script Manager가 Script를실행할때먼저 Object들을정하고 Main을불러옵니다. Script 작성부분 아래와같이매우단순한 Script를작성 Sub Main MsgBox This is the simplest script possible. End Sub 입력한후 (start) 버튼을클릭하면 Script가실행, 결과를아래와같이보여줍니다. 저장 확인 을클릭하 면결과창이 사라집니다. Copyright c 디지크라식 http://www.rf.co.kr
파일이름을 simpletext 로저장한후, Script Manager 의항목에서해당파일이찾아, 선택후 Run 버튼을이용그대로실행이됩니다. Tools > Scripts.. >File 선택 > Run 좀더복잡한계산을하기위해서 Operation 방식으로했던내용을그대로 Script 를이용 하여작성해보겠습니다. 먼저해당디자인파일을열어, 활성화상태가되어야하는데정의된 Object 들은 Script 가실행될때활성화된파일에의존하며항상 ThisSession 라는이름으로하나의 Session 대상에정의되어져야있어야하기때문입니다. 해당디자인파일을열고 Tools > Scripts.. >New 하여 Script 창을생성시킵니다. Copyright c 디지크라식 http://www.rf.co.kr
일단 Script 창에 Option Explicit, 다음줄에 Sub Main, 몇줄뛰어 End Sub 입력하고주석문은... 으로형식으로하며주석문을제외하고는하나의 syntax 는한줄안에반드시입력되어져있어야합니다. 그럼아래와같이내용을작성합니다. Option Explicit 시작점. Sub Main 변수들지정. Dim Performance As Object 'Performance는본디자인의 performance를지정. Dim Source As Object ' Source 지정. Dim Results As Object 'T Table 결과지정. Dim PlotOfResults As Object ' Plot 결과지정. Dim W() As Double 파장배열지정 ' Dim Illuminant() As Double ' 광원배열지정 ' Dim NewSource() As Double ' new source data 배열지정 ' Dim I As Long ' 계산을위한 index 설정 ' Const Blue = &HFF0000& plot line 색. BGR 색상계사용 ' Const Orange = &H0080FF& & : 32 bit 수를이용되어진다는것을의미. performance 계산수행 ' Set Performance = ThisDesign.CalculateTable(ThisDesign.XaxisParameters,ThisDesign.YaxisParameters) 문장이길어도반드시한줄안에입력되어있어야합니다. 다음은 D65 source information 을불러오는데파일이름을정확히확인합니다. Set Source = CreateObject("EMacleod.Reference") Source.LoadReference "CIE Illuminant D65 1nm.ref" the source information 크기를알게되며저장합니다. ReDim W(1 To Source.LastIndex) ReDim Illuminant(1 To Source.LastIndex) ReDim NewSource(1 To Source.LastIndex) 결과를보여줄 table 을설정합니다. Set Results = ThisSession.NewTable ' 결과를하나의 table object 로설정하고적당한컬럼제목을줍니다. Results.SetColumnTitle 1, "Wavelength (nm)" Results.SetColumnTitle 2, "Rel Output Copyright c 디지크라식 http://www.rf.co.kr
' 이제는결과의표시와계산처리를진행합니다. For I=1 To Source.LastIndex ' 먼저 source reference 부터나오는 wavelengths 설정 W(I)=Source.X(I) ' 다음 plot 을쉽게하기위한 source data ' ' 필요시 interpolation 이용하여 GetValue method 적용하거나 ' interpolation 없이 Illuminant(I)=Source.Y(I) 방식도사용가능. Illuminant(I)=Source.GetValue(W(I)) new source 계산을 Interpolate 를이용하고 p-polarization polarization 선택' NewSource(I)=Illuminant(I)*Performance.InterpolateYp(W(I)) ' 결과 Table 에결과를보여준다 ' ' 초기에는올바른 row 의수를갖고있지않아 AddTableData method 이용하여 wavelength data 를입력하면 row 에더해지고 data 를그곳에넣어줍니다. Results.AddTableData 1, Format(W(I)) 이제새로운 row 가생성되고 new source data 를그곳에넣어주게되었습니다. ' SetTableData method 사용, I 를 row를구별하는데사용합니다.' Results.SetTableData 2, I, Format(NewSource(I)) Next I table 은이제준비됐고이제는그것을표시해야합니다. Results.ShowMe 결과를 plot 합니다. Set PlotOfResults=CreateObject("EMacleod.PlotCreator") plot 만들고 axis 이름을설정 ' PlotOfResults.XAxisTitle = "Wavelength (nm)" PlotOfResults.YAxisTitle = "Relative Output" 첫 plot은 D65 source에서있고 line styles 설정 ' PlotOfResults.LineColor=Blue PlotOfResults.SymbolSize=0 PlotOfResults.LineWidth=1 first trace에대한 data 추가 ' PlotOfResults.AddTrace W(), Illuminant(), "D65 Source" the second trace에대한 line styles 설정 ' PlotOfResults.LineColor=Orange PlotOfResults.SymbolSize=0 PlotOfResults.LineWidth=3 ' 그리고 data.' PlotOfResults.AddTrace W(), NewSource(), "New Source" End Sub Copyright c 디지크라식 http://www.rf.co.kr
한글은 Script 컴파일에문제가있을수있으므로영문으로하여아래와같이작성합니다. Option Explicit Sub Main Dim Performance As Object 'Performance will contain the performance of the design. Dim Source As Object ' Source will contain the illuminant Dim Results As Object ' This will be the table of results Dim PlotOfResults As Object ' This will be the plot of the results Dim W() As Double'This array will contain the wavelength' Dim Illuminant() As Double ' This array will contain the original source relative output' Dim NewSource() As Double ' This array will contain the new source data ' Dim I As Long ' We will need this as the index for the calculations ' Const Blue = &HFF0000& ' Line color for plot. The order of color is B G R ' Const Orange = &H0080FF& ' Note the use of the & to force the value to be treated 'As a 32 bit number.' ' Now we carry out the calculation of performance ' Set Performance = ThisDesign.CalculateTable(ThisDesign.XaxisParameters,ThisDesign.YaxisParameters) 'Note this should be on one line 'Next we load the D65 source information. 'Warning: check the file Name is correct Set Source = CreateObject("EMacleod.Reference") Source.LoadReference "CIE Illuminant D65 1nm.ref" 'Now we know the size of the source information we can dimension the arrays that 'will store it' ReDim W(1 To Source.LastIndex) ReDim Illuminant(1 To Source.LastIndex) ReDim NewSource(1 To Source.LastIndex) 'We also set up the table that will contain and display the results ' Set Results = ThisSession.NewTable ' Results is now set up as a table object' ' We give the columns appropriate titles ' Results.SetColumnTitle 1, "Wavelength (nm)" Results.SetColumnTitle 2, "Rel Output" ' Now we are ready to proceed with the calculations and display of results' For I=1 To Source.LastIndex ' First we set up the wavelengths. These are taken straight from the source reference' W(I)=Source.X(I) ' Next we need the source data in an array so that we can easily plot it. ' ' The GetValue method interpolates if necessary. ' ' We could also use Illuminant(I)=Source.Y(I) without interpolation.' Illuminant(I)=Source.GetValue(W(I)) ' Calculation of the new source. We interpolate if necessary and choose p-polarization' NewSource(I)=Illuminant(I)*Performance.InterpolateYp(W(I)) ' We display the results in the Results table ' ' To begin with the table does not have the correct number of rows ' ' so we insert ' the wavelength data using the AddTableData method ' 'that adds a row and ' puts the data into it.' Results.AddTableData 1, Format(W(I)) ' Now the new row has been created we can insert the new source data into it ' ' For this we use the SetTableData method and use I to identify the row. Copyright c 디지크라식 http://www.rf.co.kr
Results.SetTableData 2, I, Format(NewSource(I)) Next I 'The table is now ready but we need to display it ' Results.ShowMe ' We will also plot the results. ' 'The creation of a plot uses a different approach' Set PlotOfResults=CreateObject("EMacleod.PlotCreator") ' Creating a plot, We set up the axis titles' PlotOfResults.XAxisTitle = "Wavelength (nm)" PlotOfResults.YAxisTitle = "Relative Output" 'The first plot will be of the D65 source. We set up the line styles ' PlotOfResults.LineColor=Blue lt l PlotOfResults.SymbolSize=0 PlotOfResults.LineWidth=1 'Then we add the data for the first trace' PlotOfResults.AddTrace W(), Illuminant(), "D65 Source" 'Then the line styles for the second trace.' PlotOfResults.LineColor=Orange PlotOfResults.SymbolSize=0 PlotOfResults.LineWidth=3 ' And the data.' PlotOfResults.AddTrace W(), NewSource(), "New Source" End Sub 이와같이작성이완료되면 start 버튼을눌러작성된내용의에러가있는지를 확인하면서실행하면 table 과 plot 창이나타납니다. Copyright c 디지크라식 http://www.rf.co.kr
이상이없으면이름을정하여 ( 예 : test1) 저장하고그다음부터는해당 Design 파일을연상태에서 Tools > Script Script Manager의항목에서해당파일이찾아, 선택후 Run 버튼을클릭하면그대로실행이됩니다. Tools > Script Script Manager 의항목에보면 Example 1,2,3 과다른항목들이보이는데 선택후 Edit 하면작성내용을볼수가있어유사프로그램작성시참고바라며 Copyright c 디지크라식 http://www.rf.co.kr