11 lines
8.7 KiB
JSON
11 lines
8.7 KiB
JSON
{
|
|
"header": {
|
|
"version": 1,
|
|
"type": "record"
|
|
},
|
|
"body": {
|
|
"record1": {
|
|
"<1>": "declare function msg\r\ndeclare subroutine end_dialog\r\n$insert spc_limits_equ\r\n$insert msg_equates\r\n\r\nopen 'CONFIG' to ConfigTable else\r\n Void = msg( '', 'Unable to open CONFIG table' )\r\n end_dialog( @window, '' )\r\n return 0\r\nend\r\nHFMax = .hf_max->text\r\nif mod( HFMax, 5 ) then\r\n MsgInfo = ''\r\n MsgInfo<mtext$> = 'HF Max limits must be evenly divisible by 5...' \r\n MsgInfo<micon$> = 'H'\r\n Void = msg( '', MsgInfo )\r\n return 0\r\nend\r\nWafEtchMin = .waf_etch_min->text\r\nWafEtchMax = .waf_etch_max->text\r\nWafEtchDiff = WafEtchMax-WafEtchMin\r\n\r\nif ( WafEtchMin[4,1] = 0 ) and ( WafEtchMax[4,1] = 0 ) else\r\n * DON'T LET THEM SPEC INTO THE THOUSANDS\r\n MsgInfo = ''\r\n MsgInfo<mtext$> = 'You can not spec in to the thousands for wafer etch.'\r\n MsgInfo<micon$> = '!'\r\n Void = msg( '', MsgInfo )\r\n return 0\r\nend\r\nif WafEtchDiff > .2 then\r\n MsgInfo = ''\r\n MsgInfo<mtext$> = 'The spec range for wafer etch can not exceed .200.'\r\n MsgInfo<micon$> = '!'\r\n Void = msg( '', MsgInfo )\r\n return 0\r\nend\r\nNumRows = 0\r\nBotVal = ''\r\nif WafEtchDiff > .02 then\r\n BotVal = WafEtchMin-.010\r\nend else\r\n BotVal = WafEtchMin\r\nend\r\nfor i = WafEtchMax to BotVal step -.010\r\n NumRows += 1\r\nnext i\r\nif mod( NumRows, 2 ) else\r\n MsgInfo = ''\r\n MsgInfo<mtext$> = 'The spec range for wafer etch would not generate the same qty of points on each side of the target. Please balance this.'\r\n MsgInfo<micon$> = '!'\r\n Void = msg( '', MsgInfo )\r\n return 0\r\nend\r\n\r\n\r\nRecord = ''\r\nRecord<SRDParticleMin$> = .srd_min->text\r\nRecord<SRDParticleMax$> = .srd_max->text\r\nRecord<SRDParticleDate$> = iconv( .srd_chg_date->text, 'D' )\r\n*\r\nRecord<SC1ParticleMin$> = .sc1_min->text\r\nRecord<SC1ParticleMax$> = .sc1_max->text\r\nRecord<SC1ParticleDate$> = iconv( .sc1_chg_date->text, 'D' )\r\n*\r\nRecord<HFParticleMin$> = .hf_min->text\r\nRecord<HFParticleMax$> = .hf_max->text\r\nRecord<HFParticleDate$> = iconv( .hf_chg_date->text, 'D' )\r\n*\r\nRecord<HFEtchRemMin$> = .hf_etch_min->text\r\nRecord<HFEtchRemMax$> = .hf_etch_max->text\r\nRecord<HFEtchRemDate$> = iconv( .hf_etch_chg_date->text, 'D' )\r\n*\r\nRecord<WafEtchMin$> = iconv( WafEtchMin, 'MD3' )\r\nRecord<WafEtchMax$> = iconv( WafEtchMax, 'MD3' )\r\nRecord<WafEtchDate$> = iconv( .waf_etch_chg_date->text, 'D' )\r\n*\r\nEvalFTIRInfo = .eval_ftir_info->array\r\nRecord<EvalFTIRHWaferID$> = EvalFTIRInfo<1>\r\nRecord<EvalFTIRHMin$> = iconv( EvalFTIRInfo<2>, 'MD3' )\r\nRecord<EvalFTIRHMax$> = iconv( EvalFTIRInfo<3>, 'MD3' )\r\nRecord<EvalFTIRHDate$> = iconv( EvalFTIRInfo<4>, 'D' )\r\nRecord<EvalFTIRMWaferID$> = EvalFTIRInfo<5>\r\nRecord<EvalFTIRMMin$> = iconv( EvalFTIRInfo<6>, 'MD3' )\r\nRecord<EvalFTIRMMax$> = iconv( EvalFTIRInfo<7>, 'MD3' )\r\nRecord<EvalFTIRMDate$> = iconv( EvalFTIRInfo<8>, 'D' )\r\nRecord<EvalFTIRLWaferID$> = EvalFTIRInfo<9>\r\nRecord<EvalFTIRLMin$> = iconv( EvalFTIRInfo<10>, 'MD3' )\r\nRecord<EvalFTIRLMax$> = iconv( EvalFTIRInfo<11>, 'MD3' )\r\nRecord<EvalFTIRLDate$> = iconv( EvalFTIRInfo<12>, 'D' )\r\n*\r\nEvalFTIRStdevInfo = .eval_ftir_stdev_info->array\r\nRecord<EvalFTIRHStdevWaferID$> = EvalFTIRStdevInfo<1>\r\nRecord<EvalFTIRHStdevMin$> = iconv( EvalFTIRStdevInfo<2>, 'MD3' )\r\nRecord<EvalFTIRHStdevMax$> = iconv( EvalFTIRStdevInfo<3>, 'MD3' )\r\nRecord<EvalFTIRHStdevDate$> = iconv( EvalFTIRStdevInfo<4>, 'D' )\r\nRecord<EvalFTIRMStdevWaferID$> = EvalFTIRStdevInfo<5>\r\nRecord<EvalFTIRMStdevMin$> = iconv( EvalFTIRStdevInfo<6>, 'MD3' )\r\nRecord<EvalFTIRMStdevMax$> = iconv( EvalFTIRStdevInfo<7>, 'MD3' )\r\nRecord<EvalFTIRMStdevDate$> = iconv( EvalFTIRStdevInfo<8>, 'D' )\r\nRecord<EvalFTIRLStdevWaferID$> = EvalFTIRStdevInfo<9>\r\nRecord<EvalFTIRLStdevMin$> = iconv( EvalFTIRStdevInfo<10>, 'MD3' )\r\nRecord<EvalFTIRLStdevMax$> = iconv( EvalFTIRStdevInfo<11>, 'MD3' )\r\nRecord<EvalFTIRLStdevDate$> = iconv( EvalFTIRStdevInfo<12>, 'D' )\r\n*\r\nEval4PPInfo = .eval_4pp_info->array\r\nRecord<Eval4PPHWaferID$> = Eval4PPInfo<1>\r\nRecord<Eval4PPHMin$> = Eval4PPInfo<2>\r\nRecord<Eval4PPHMax$> = Eval4PPInfo<3>\r\nRecord<Eval4PPHDate$> = iconv( Eval4PPInfo<4>, 'D' )\r\nRecord<Eval4PPMWaferID$> = Eval4PPInfo<5>\r\nRecord<Eval4PPMMin$> = Eval4PPInfo<6>\r\nRecord<Eval4PPMMax$> = Eval4PPInfo<7>\r\nRecord<Eval4PPMDate$> = iconv( Eval4PPInfo<8>, 'D' )\r\nRecord<Eval4PPLWaferID$> = Eval4PPInfo<9>\r\nRecord<Eval4PPLMin$> = Eval4PPInfo<10>\r\nRecord<Eval4PPLMax$> = Eval4PPInfo<11>\r\nRecord<Eval4PPLDate$> = iconv( Eval4PPInfo<12>, 'D' )\r\n*\r\nEval4PPStdevInfo = .eval_4pp_stdev_info->array\r\nRecord<Eval4PPHStdevWaferID$> = Eval4PPStdevInfo<1>\r\nRecord<Eval4PPHStdevMin$> = iconv( Eval4PPStdevInfo<2>, 'MD3' )\r\nRecord<Eval4PPHStdevMax$> = iconv( Eval4PPStdevInfo<3>, 'MD3' )\r\nRecord<Eval4PPHStdevDate$> = iconv( Eval4PPStdevInfo<4>, 'D' )\r\nRecord<Eval4PPMStdevWaferID$> = Eval4PPStdevInfo<5>\r\nRecord<Eval4PPMStdevMin$> = iconv( Eval4PPStdevInfo<6>, 'MD3' )\r\nRecord<Eval4PPMStdevMax$> = iconv( Eval4PPStdevInfo<7>, 'MD3' )\r\nRecord<Eval4PPMStdevDate$> = iconv( Eval4PPStdevInfo<8>, 'D' )\r\nRecord<Eval4PPLStdevWaferID$> = Eval4PPStdevInfo<9>\r\nRecord<Eval4PPLStdevMin$> = iconv( Eval4PPStdevInfo<10>, 'MD3' )\r\nRecord<Eval4PPLStdevMax$> = iconv( Eval4PPStdevInfo<11>, 'MD3' )\r\nRecord<Eval4PPLStdevDate$> = iconv( Eval4PPStdevInfo<12>, 'D' )\r\n*\r\nEvalADEInfo = .eval_ADE_info->array\r\nRecord<EvalADEHWaferID$> = EvalADEInfo<1>\r\nRecord<EvalADEHMin$> = iconv( EvalADEInfo<2>, 'MD3' )\r\nRecord<EvalADEHMax$> = iconv( EvalADEInfo<3>, 'MD3' )\r\nRecord<EvalADEHDate$> = iconv( EvalADEInfo<4>, 'D' )\r\nRecord<EvalADEMWaferID$> = EvalADEInfo<5>\r\nRecord<EvalADEMMin$> = iconv( EvalADEInfo<6>, 'MD3' )\r\nRecord<EvalADEMMax$> = iconv( EvalADEInfo<7>, 'MD3' )\r\nRecord<EvalADEMDate$> = iconv( EvalADEInfo<8>, 'D' )\r\nRecord<EvalADELWaferID$> = EvalADEInfo<9>\r\nRecord<EvalADELMin$> = iconv( EvalADEInfo<10>, 'MD3' )\r\nRecord<EvalADELMax$> = iconv( EvalADEInfo<11>, 'MD3' )\r\nRecord<EvalADELDate$> = iconv( EvalADEInfo<12>, 'D' )\r\n*\r\nEvalADEStdevInfo = .eval_ADE_stdev_info->array\r\nRecord<EvalADEHStdevWaferID$> = EvalADEStdevInfo<1>\r\nRecord<EvalADEHStdevMin$> = iconv( EvalADEStdevInfo<2>, 'MD3' )\r\nRecord<EvalADEHStdevMax$> = iconv( EvalADEStdevInfo<3>, 'MD3' )\r\nRecord<EvalADEHStdevDate$> = iconv( EvalADEStdevInfo<4>, 'D' )\r\nRecord<EvalADEMStdevWaferID$> = EvalADEStdevInfo<5>\r\nRecord<EvalADEMStdevMin$> = iconv( EvalADEStdevInfo<6>, 'MD3' )\r\nRecord<EvalADEMStdevMax$> = iconv( EvalADEStdevInfo<7>, 'MD3' )\r\nRecord<EvalADEMStdevDate$> = iconv( EvalADEStdevInfo<8>, 'D' )\r\nRecord<EvalADELStdevWaferID$> = EvalADEStdevInfo<9>\r\nRecord<EvalADELStdevMin$> = iconv( EvalADEStdevInfo<10>, 'MD3' )\r\nRecord<EvalADELStdevMax$> = iconv( EvalADEStdevInfo<11>, 'MD3' )\r\nRecord<EvalADELStdevDate$> = iconv( EvalADEStdevInfo<12>, 'D' )\r\n*\r\nRecord<ReactPartMin$> = .react_part_min->text\r\nRecord<ReactPartMax$> = .react_part_max->text\r\nRecord<ReactPartDate$> = iconv( .react_part_date_chg->text, 'D' )\r\n*\r\nRecord<ReactHazeMin$> = iconv( .react_haze_min->text, 'MD2' )\r\nRecord<ReactHazeMax$> = iconv( .react_haze_max->text, 'MD2' )\r\nRecord<ReactHazeDate$> = iconv( .react_haze_date_chg->text, 'D' )\r\n*\r\nRecord<HFEtchAkrionRemEtchMin$> = .hf_ake_etch_min->text\r\nRecord<HFEtchAkrionRemEtchMax$> = .hf_ake_etch_max->text\r\nRecord<HFEtchAkrionRemEtchDate$> = iconv( .hf_ake_etch_date->text, 'D' )\r\nRecord<HFEtchAkrionRemDiluteMin$> = .hf_akd_etch_min->text\r\nRecord<HFEtchAkrionRemDiluteMax$> = .hf_akd_etch_max->text\r\nRecord<HFEtchAkrionRemDiluteDate$> = iconv( .hf_akd_etch_date->text, 'D' )\r\n*\r\nRecord<HFParticleAkrionQualMin$> = .hf_akq_min->text\r\nRecord<HFParticleAkrionQualMax$> = .hf_akq_max->text\r\nRecord<HFParticleAkrionQualDate$> = iconv( .hf_akq_date->text, 'D' )\r\n*\r\nRecord<HFParticleAkrionHFLastMin$> = .hf_akh_min->text\r\nRecord<HFParticleAkrionHFLastMax$> = .hf_akh_max->text\r\nRecord<HFParticleAkrionHFLastDate$> = iconv( .hf_akh_date->text, 'D' )\r\n\r\n*\r\nwrite Record on ConfigTable, 'SPC_LIMITS' else\r\n Void = msg( '', 'Unable to write SPC_LIMITS in CONFIG table' )\r\n end_dialog( @window, '' )\r\n return 0\r\nend\r\nunlock ConfigTable, 'SPC_LIMITS' else\r\n Void = msg( '', 'Unable to unlock SPC_LIMITS in CONFIG table' )\r\nend\r\nend_dialog( @window, '' )\r\nreturn 0\r\n"
|
|
}
|
|
}
|
|
} |