Buscar

Origin 6 0

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Origin 6.0/3d.ogs/*------------------------------------------------------------------------------*
 *	File Name: 	3D.ogs		 													*
 *	Purpose:	3D Rotation Tools												*
 *	Author:		George John 8/19/98												*
 *	Modifications:																*			*
 *																				*
 *------------------------------------------------------------------------------*/
 [Init]
	if (layer.Is3D != 1)
	{
		type -b;
		return 1;
	}
	if ( RotAngle3D < 0 || RotAngle3D > 360 )
		RotAngle3D = 10;
	//;layer -3D M dialog;
	return 0;
[End]
	plot -Page
[OneToSix]
	if (run.section(,Init))
		return 1;
	//type -b "$(%1)";
	x = RotAngle3D;
	if(x < 0 || x > 360)
		x=20;
	i=int((1 + %1)/2);
	if(layer.3dcoor==1)
		%B="Z H V";
	else
		%B="Y H V";
	%A=%[%B,#i];
	//RotAngle.value=x;
	x *= mod(%1,2)==1?-1:1;
	if(layer.3dcoor==0 && i==1)
		x*=-1;/* we had a wrong convention for this */
	layer -3D R %A x;
	run.section(,End);
 [Per3Plus]
	if (run.section(,Init))
		return 1;
	layer -3d m P+1;
	run.section(,End);
 [Per3Minus]
	if (run.section(,Init))
		return 1;
	layer -3d m P-1;
	run.section(,End);
 [RotRestore]
	if (run.section(,Init))
		return 1;
	layer -3d m Rotation;
	//run.section(,End);
	x1=x1;// force axes redraw
 [FitFrame]
	if (run.section(,Init))
		return 1;
	layer -3d m F;
	run.section(,End);
Origin 6.0/3D.OTP
Origin 6.0/3dbars.OTP
Origin 6.0/AAA_ExI_J.OTP
Origin 6.0/AAA_mec_quant.OTP
Origin 6.0/AAA_VxI.OTP
Origin 6.0/ABFDLL.HLP
Origin 6.0/AddOn Setup/DATA.TAG[TagInfo]
Company=Microcal
Application=Origin
Version=6.00.000
Category=Development Tool
Misc=
Origin 6.0/AddOn Setup/data1.cab
Origin 6.0/AddOn Setup/data1.hdr
Origin 6.0/AddOn Setup/lang.dat
Origin 6.0/AddOn Setup/layout.bin
Origin 6.0/AddOn Setup/os.dat[Info]
Name=PLATFORM
Version=1.00.000
[0x0009]
OS Independent=0x0000000000000000
Windows 3.1 & 3.11=0x0000000000000001
Windows 95=0x0000000000000010
Windows 98=0x0000000000000040
Windows NT 3.51 (Intel)=0x0000000000001000
Windows NT 3.51 (Alpha)=0x0000000000002000
Windows NT 3.51 (MIPS)=0x0000000000004000
Windows NT 4.0 (Intel)=0x0000000000010000
Windows NT 4.0 (Alpha)=0x0000000000020000
Windows NT 4.0 (MIPS)=0x0000000000040000
Origin 6.0/AddOn Setup/Setup.bmp
Origin 6.0/AddOn Setup/Setup.exe
Origin 6.0/AddOn Setup/SETUP.INI[Startup]
AppName=AddOn
FreeDiskSpace=506
EnableLangDlg=Y
[ISUPDATE]
UpdateURL=http://
Origin 6.0/AddOn Setup/setup.ins
Origin 6.0/AddOn Setup/setup.lid[Languages]
key0=0009
Default=0009
count=1
Origin 6.0/AddOn Setup/_inst32i.ex_
Origin 6.0/AddOn Setup/_ISDel.exe
Origin 6.0/AddOn Setup/_Setup.dll
Origin 6.0/AddOn Setup/_sys1.cab
Origin 6.0/AddOn Setup/_sys1.hdr
Origin 6.0/AddOn Setup/_user1.cab
Origin 6.0/AddOn Setup/_user1.hdr
Origin 6.0/AREA.OTP
Origin 6.0/ARROW.OGS// Filename: Arrow.ogs
// Creation: 10/31/1996
// Purpose: Script to be called from the Arrow toolbar
//////////////////////////////////////////////////////////////////
[Horizontal]
	select -toggle horz;
[Vertical]
	select -toggle vert;
[Widen]
	select -head angle 5;
[Narrow]
	select -head angle -5;
[Lengthen]
	select -head length 5;
[Shorten]
	select -head length -5;
Origin 6.0/ASSAYS.OGS// Filename: Assays.ogs
// Creation: by Laurie Shea, 5/10/96
// Purpose: Modularized Code for standard curves
// Calibration Model
// 1. Linear Fit
// 2. Quadratic Fit
// 3. Cubic Fit
// 4. Spline Fit
// 5. Boltzmann Fit
// 6. Logistic Fit
// 7. ExpDecay Fit
//
// Modifications:
//	RKM 2/12/97 Standard.otw now in buttons directory MOVE_STANDARD
//	JMP 8/05/97 Use COPY commands instead of domenu operations for COPY and PASTE
////////////////////////////////////////////////////////////////////////////////
// Sets the number of replicates to display
////////////////////////////////////////////////////////////////////////////////
[Display]
	if(format.choice==1)
	{
		if (wks.ncols<replicates.value+1)
			worksheet -a replicates.value-wks.ncols+1;
		else
		{
			for(;wks.ncols>(replicates.value+1);)
			{
				delete %(%H,wks.ncols);
			}
		}
		for(ii=2;ii<=wks.ncols;ii++)
		{
			wks.col$(ii).type=1;
		}
		doc -uw;
	}
	else 
	{
		if(wks.ncols/2<replicates.value)
			worksheet -a (replicates.value*2-wks.ncols);
		else
		{
			if(wks.ncols/2>replicates.value)
	 		{
				jj=wks.ncols-(replicates.value*2+1)+1;
				repeat (jj) {delete %(%H,wks.ncols)};
			}
		}
		for(ii=1;ii<=wks.ncols;ii++)
		{
			if(ii/2!=int(ii/2))
				wks.col$(ii).type=4;
		}
		doc -uw;
	}
	
[SelectionCk]
	if(format.choice==2 && datarange.choice==2 && (wks.c2-wks.c1+1)/2 != int((wks.c2-wks.c1+1)/2))
	{
		type -b $calibrate.oddnumofcolumns;
		return 1;
	};
	if(datarange.choice==2 && wks.c1==wks.c2)
	{
		type -b $calibrate.noselection;
		return 1;
	} 
	return 0;
////////////////////////////////////////////////////////////////////////////////
// Code which is called from Standard worksheet
////////////////////////////////////////////////////////////////////////////////
[Standard]
	if (run.section(,selectionck)==0)
	{
		run.section(,worksheetselection);
		if(replicates.v1>1) 
		{
			switch (format.choice) 
	 		{
			case 1:
				run.section(,average1);
				break;
			case 2:
				run.section(,average2);
			break;
			}	
	 	}
		else
	 	{
			///RKM Standard.otw now in buttons directory MOVE_STANDARD
			doc -cw standard; 
			doc -t buttons\standard.otw;
			win -r %H Standard$(count+1);
			///
			%(%H,1)=%(%W,1);
			%(%H,2)=%(%W,2);
		 	delete %H_SD;
			sort -c 1 2 %(%H,1);	//sort in ascending order
		};
	}
////////////////////////////////////////////////////////////////////////////////
// Main Code called from 'Calculations' buttons
////////////////////////////////////////////////////////////////////////////////
[Main]
	
	switch (index)
	{
	case 1:
		run.section(,fit);
		run.section(,predictX);
		layer -a;
		break;
	case 2:
		run.section(,fit);
		run.section(,predictY);
		layer -a;
		break;
	case 3:
		run.section(,clear);
		break;
	case 4:
		run.section(,help);
		break;
	};
////////////////////////////////////////////////////////////////////////////////
//Fit the data to the selected model.
////////////////////////////////////////////////////////////////////////////////
[Fit]
	%W=%H;				//store active window name in %W
	/* %A holds the name of calibration model		*/
	%A=model.l$(model.choice)$;	//gets the calibration model
	%A=%[%A,#1];			//strips the word fit
	
	doc -cp %A;
	win -t plot standard %A$(count+1);
	
	if (%W!model.choice==6)
		layer1.x.type=2;
	if(exist(%W_SD)==1)
	{
		get %W_SD -e ErrorEnd;
		if(ErrorEnd!=0)
		{
			layer -i (%W_YAve) (%W_SD) (%W_Ynew);
			set %W_SD -o %W_Yave;		//Set as +- error bars
			set %W_SD -c 1;			//Set color to black
		}
		else
		{
			layer -i (%W_YAve) (%W_Ynew);
		}
		delete -v ErrorEnd;
	}
	else
	{
		layer -i (%W_YAve) (%W_Ynew);
	}
	layer -i201 %W_YAve;		//Set type to scatter (just to make sure)
	set %W_YAve -c 1;		//Set color to black
	layer -i201 %W_Ynew;		
	set %W_Ynew -c 4;		//Set color to blue
	layer -a;	//rescale to show all
	switch(%W!model.choice)
	{
 	 case 1 to 3:
		run.section(,commonlinear);
		break;
 	 case 4:
		run.section(,Spline);
	 break;
 	 case 5:
		run.section(,Boltzmann);
	 break;
	 case 6:
		run.section(,Logistic);
	 break;
	 case 7:
		run.section(,ExpDecay);
		break;
	}
////////////////////////////////////////////////////////////////////////////////
//
//Worksheet Selection 
//
////////////////////////////////////////////////////////////////////////////////
[WorksheetSelection]
	//if entire worksheet selected
	if(datarange.choice==1)
	{
		%W=%H;
	}
	else
	{
		%W=%H;
		getenumtempwks origin Selection;	//open hidden worksheet - name is in
%A
		NumCols=((%W!wks.c2-%W!wks.c1+1)-%A!wks.ncols)>=0?((%W!wks.c2-%W!wks.c1+1)-%A!wks.ncols):0;
		win -o %A
		{
			worksheet -a NumCols;
		}
		delete -v NumCols;
		for (ii=%W!wks.c1,jj=1;ii<=%W!wks.c2;ii++,jj++)
		{
			copy -b (%W!wks.r1) %(%W,ii) %(%A,jj) -b 1 -e (%W!wks.r2-%W!wks.r1+1);
		}
		%W=%A;
	};
////////////////////////////////////////////////////////////////////////////////
//
// Averages the data when the data is in XYYY Format
// first column assumed to be the X data
////////////////////////////////////////////////////////////////////////////////
[Average1]
// xyyy format
	///RKM Standard.otw now in buttons directory MOVE_STANDARD
	doc -cw standard; 
	doc -t buttons\standard.otw;
	win -r %H Standard$(count+1);
	///
	sum(%W,2,$(%(%W,@#)));
	%(%H,1)=%(%W,1);
	%(%H,2)=_Mean;	
	%(%H,3)=_SD;
	sort -c 1 3 %(%H,1);	//sort in ascending order
////////////////////////////////////////////////////////////////////////////////
// Averages the data when the data is in XYXY Format
//////////////////////////////////////////////////////////////////////////////////
[Average2]
//xyxy
	
		
	//Create 2 scratch worksheets
	//first worksheet averages the X columns
	getenumtempwks origin %WX;
	/*execute script for the named window*/
	win -o %A
	{
		worksheet -a (%W!wks.ncols/2 -2);
		for (ii=1;ii<=%(%W,@#)/2;ii++)
			wcol(ii)=%(%W,(ii-1)*2+1);
		%B=%H;
		page.closebits=2;
	};
	getenumtempwks origin %WY;
	win -o %A
	{
		worksheet -a (%W!wks.ncols/2 -2);
		for (ii=1;ii<=%(%W,@#)/2;ii++)
			wcol(ii)=%(%W,ii*2);
		page.closebits=2;
	};
	///RKM Standard.otw now in buttons directory MOVE_STANDARD
	doc -cw standard; 
	doc -t buttons\standard.otw;
	win -r %H Standard$(count+1);
	///
	
	sum(%B,1,$(%(%B,@#)));
	%(%H,1)=_Mean;
	sum(%A,1,$(%(%A,@#)));
	%(%H,2)=_Mean;	
	%(%H,3)=_SD;
	sort -c 1 3 %(%H,1);	//sort in ascending order
	win -o %A {win -ca};
	win -o %B {win -ca};
	
	
	
////////////////////////////////////////////////////////////////////////////////
//
// Linear Fit, Quadratic Fit, Cubic Fit depending upon the selected model
//
////////////////////////////////////////////////////////////////////////////////
[CommonLinear]
	/*depending upon the calibration model*/
	/*performs a linear regression on the data*/
	/*performs a 2nd order polynomial regression*/
	/*performs a 3rd order polynomial regression*/
	stat.reset();
	stat.data$=%(1,@D);
	%A=stat.data$;
	%B=errof(%(1,@D))$;
	if(exist(%B)==1)
	{
		get %B -e ErrorEnd;
		if(ErrorEnd!=0)
			stat.errbarData$=%B;
		else
			stat.errbarData$="";
		delete -v ErrorEnd;
	}
	else
	{
		stat.errbarData$="";
	}
	if (%W!model.choice==1)
		stat.name(0,%A,A,Line);
	else
		stat.name(0,%A,A,Poly);
	 
	%A=stat.name.worksheet$;
	if (exist(%A)==2)		//Kill the already existing AND open worksheet
		win -o %A {page.closebits=2;win -ca;};
	create %A -wd 1000 XFit YFit;	//create a worksheet with two columns named XFit and YFit
	if (%W!model.choice==2)
		stat.pr.order=2;
	else
	if (%W!model.choice==3)
		stat.pr.order=3;
	stat.fitxdata$=%A_XFit;
	stat.fitYdata$=%A_YFit;
	stat.makeX.fitnpts=1000;
	%A=stat.data$;
	limit %A;
	stat.makex.fitx1=limit.xmin;
	stat.makex.fitx2=limit.xmax;
	stat.makex();
	if (%W!model.choice==1)
		stat.LR();
	else
		stat.PR();	
	%A=stat.name.worksheet$;
	layer -i200 %A_YFit;	
	set %A_Yfit -c 2;
	%A=%A_XFit;	//%A stores the X values for the calibrated curve
	%B=%[%A,'_']_YFit;	//%B stores the Y values for the calibrated curve
////////////////////////////////////////////////////////////////////////////////
// Fits the data to an exponential decay
////////////////////////////////////////////////////////////////////////////////
[ExpDecay]
/* Exponential decay 1 Fit*/
/*Fit y0+A1*e^(-(x-x0)/t1) to %(1,@D) */
	
	nlsf.func$=ExpDecay1;
	run.section(fit,KineticInit,0.05);
	run.section(assays,AutoNLSF);
////////////////////////////////////////////////////////////////////////////////
// Sets the data plot line connection method to Spline
////////////////////////////////////////////////////////////////////////////////
[Spline]
	set %(1,@D) -l 9;		//line connection method set to Spline
	stat.name(0,%(1,@D),A,Spline);
	%B=stat.name.worksheet$;
	if (exist(%B)==2)		//Kill the already existing AND open worksheet
		win -o %B {page.closebits=2;win -ca;};
	copy -s 1000 %(1,@D) %B_spline;
	%B=stat.name.worksheet$;
	%B=%B_spline;		//Stores name of associated y column
	%A=xof(%B);		//Stores name of associated x column
	return 0;
////////////////////////////////////////////////////////////////////////////////
// Fits the data to a sigmoidal
////////////////////////////////////////////////////////////////////////////////
[Boltzmann]
//Sigmoidal fit to %(1,@D)
	nlsf.func$ = Boltzmann;
	copy -x %(1,@D) dummy;
	deriv dummy;
	integ -q dummy;
	dx = integ.dx/2; 
	x0 = integ.x0;
	limit %(1,@D);
	if(limit.imax < limit.imin) 
	{
		temp = limit.ymax;
		limit.ymax=limit.ymin;
		limit.ymin=temp;
	}
	A1=limit.ymin;
	A2=limit.ymax;
	run.section(,autoNLSF);
	/* the generic macro for iterating 20 times */
[Logistic]
	nlsf.func$= Logistic;
	limit %(1,@D);
	if (limit.imax<limit.imin) 
	{
		temp = limit.ymax;
		limit.ymax=limit.ymin;
		limit.ymin=temp;
	} 
	A1=limit.ymin;
	A2=limit.ymax;
	P=1;
	X0=limit.xmin*100;
	
	
	run.section(,autoNLSF);
	/* the generic macro for iterating 20 times */
////////////////////////////////////////////////////////////////////////////////
//
// Finds unknown X values from given Y values
//
////////////////////////////////////////////////////////////////////////////////
[PredictX]
	
	%W_Xnew=table(%B,%A,%W_Ynew);
////////////////////////////////////////////////////////////////////////////////
//
// Finds unknown Y values from given X values
//
////////////////////////////////////////////////////////////////////////////////
[PredictY]	
	%W_Ynew=table(%A,%B,%W_Xnew);
	
////////////////////////////////////////////////////////////////////////////////
//
// Clears columns Xnew and Ynew
//
////////////////////////////////////////////////////////////////////////////////
[Clear]
	_temp1=%(%H,1);
	_temp2=%(%H,2);
	if(wks.ncols!=4) 
		_temp3=%(%H,3);
	clearworksheet %H;
	%(%H,1)=_temp1;delete _temp1;
	%(%H,2)=_temp2;delete _temp2;
	if(wks.ncols!=4) 
	{
		%(%H,3)=_temp3;
		delete _temp3;
	}
	worksheet -s (wks.ncols-1) 1 (wks.ncols-1) 1;//place cursor in nice place
////////////////////////////////////////////////////////////////////////////////
// Provides instructions
/////////////////////////////////////////////////////////////////////////////////
[Help]
	type -b $calibrate.help;
////////////////////////////////////////////////////////////////////////////////
// NonLinear Least Squares Fitting
//////////////////////////////////////////////////////////////////////////////////
[AutoNLSF]
	nlsf.cleanupfitdata();
	nlsf.fitdata$=%(1,@D);
	nlsf.tolerance=0;
	nlsf.W$=errof(%(1,@D));		//use error bars as weight
	if (nlsf.w$=="") 
	 nlsf.wtype=0;
	else 
	 nlsf.wtype=1;
	nlsf.xBegin=limit.xmin;
	nlsf.xEnd=limit.xmax;
	xpoints=nlsf.xPoints;		//Save the current nlsf.xPoints
	nlsf.xPoints=1000;
	nlsf.fit(20);			//FIT, 20 iterations
	%B=nlsf.funccol$;		//stores name of calibrated curve
	%A=xof(%B);			//stores name of associated x column
	nlsf.xPoints=xpoints;		//Restore nlsf.xPoints
	delete -v xpoints;
Origin 6.0/Axabffio32.dll
Origin 6.0/Backup.OPJ
Origin 6.0/BAR.OTP
Origin 6.0/BAR3D.OTP
Origin 6.0/BASE.OGO
Origin 6.0/BASELINE.OGO
Origin 6.0/BASELINE.OGS// Filename: Baseline.ogs
// Purpose: Peak picking, baseline creation and integration
////////////////////////////////////////////////////////////////////////////////
[Tab.BaseLn.Init]
	Baseline!Tab.BaseLn.NumPoints.v1=10;
[Tab.Peaks.Init]
	Baseline!Tab.Peaks.MinWidth.v1=5;
	Baseline!Tab.Peaks.MaxWidth.v1=40;
Baseline!Tab.Peaks.MinHeight.v1=5;
	Baseline!Tab.Peaks.Labels=1;
	Baseline!Tab.Peaks.CenterMarker=1;
	Baseline!Tab.Peaks.BaseMarker=1;
[Tab.Area.Init]
	Baseline!Tab.Area.IntCurve.choice=1;
[Initialize]
	if (%C=="") 
	{
		type -b $Baseline.NoValidData;
		return 1;
	}
	if(Layer.is3D==1)
	{
		type -b $General.2DGraphsOnly;
		return 1;
	}
	else
	{
		curve.data$=%C;					//Active Dataset
		curve.worksheet$=%[%C,'_'];			//Worksheet containing Active Dataset
		curve.plotname$=%H;				//Active plot window
		return 0;
	}
[Check]
	if(run.section(,CheckBase)==0)
	{
		run.section(,Supp);		//If it is a dataset, run the Supp section
	}
	else
		return 1;
[Tab.BaseLn.Auto.clicked]
	if(Baseline!Tab.BaseLn.NumPoints.v1==0)
	{
		type -b $Baseline.Points;
		return 1;
	}
	run.section(,Create);
	curve.basey$=%A_basey; 
	curve.baseX$=%A_basex;
	curve.base$=%A_basey;
	curve.baselinepts=Baseline!Tab.BaseLn.NumPoints.v1;
	curve.minpeakrange=Baseline!Tab.Peaks.MinWidth.v1;
	curve.maxpeakrange=Baseline!Tab.Peaks.MaxWidth.v1;
	curve.minheight=Baseline!Tab.Peaks.MinHeight.v1;
	curve.baseline.fittype=2;
	if(curve.baseline()==0/0)
	{
		stat.makeX.fitnpts=Baseline!Tab.BaseLn.NumPoints.v1;
		stat.fitxdata$=%A_basex;
		stat.makex.fitx1=limit.xmin;
		stat.makex.fitx2=limit.xmax;
		stat.makex();
		set %A_basey -e Baseline!Tab.BaseLn.NumPoints.v1;
		curve.basey$=%A_basey; 
		curve.baseX$=%A_basex;
		curve.base$=%A_basey;
		%i=curve.base$; 
		%B=curve.data$;
		limit %B;
		(%i)=limit.ymin;
		layer -i200 %i;			//include the baseline data	
		set %i -c 2;
	}
	%i=curve.base$; 
	%B=curve.data$;
	limit %B;
	(%i)=%i>limit.ymax?limit.ymax:%i;
	(%i)=%i<limit.ymin?limit.ymin:%i;
	(%i)=%i==0/0?limit.ymin:%i;
	layer -i200 %i;			//include the baseline data	
	set %i -c 2;
	return;
[Tab.BaseLn.UserDef.clicked]
	run.section(,Create);
	limit %C;
	stat.makeX.fitnpts=Baseline!Tab.BaseLn.NumPoints.v1;
	stat.fitxdata$=%A_basex;
	stat.makex.fitx1=limit.xmin;
	stat.makex.fitx2=limit.xmax;
	stat.makex();
	set %A_basey -e Baseline!Tab.BaseLn.NumPoints.v1;
	curve.basey$=%A_basey; 
	curve.baseX$=%A_basex;
	curve.base$=%A_basey;
	%i=curve.base$; 
	%B=Baseline!Tab.BaseLn.YEquals$;
	Usereq(x)=%B;
	%A_Basey=Usereq(%A_basex);
	%B=curve.data$;
	limit %B;
	(%i)=%i==0/0?limit.ymin:%i;
	layer -i200 %i;			//include the baseline data	
	set %i -c 2;
	delete usereq;
	return;
[Tab.BaseLn.ExDataset.clicked]
	run.section(,Create);
	%A=Baseline!Tab.BaseLn.Dataset$;
	if(exist(%A)!=1)
	{
		type -b $Baseline.NoBaseData;
		break;
	};
	%B=create.wksname$;
	%B_basey=%A;
	%B_basex=xof(%A);
	curve.basey$=%B_basey; 
	curve.baseX$=%B_basex;
	curve.base$=%B_basey;
	%i=curve.base$; 
	layer -i200 %i;			//include the baseline data	
	return 0;		
[Create]
	if(run.section(,Initialize)!=0) break;
	%B=%C;	
	%A="";
	doc -e W {
		%A=$Baseline.PageLabel;
		if("page.label$"==%A)
		{
			%A=%H;
			Break;
		}
	}
	if (exist(%A)==2)
	{
		win -o %A
		{		
			create.wksName$=%A;
			create.enumwks=0;
			loop(ii,1,%A!wks.ncols)
			{
				del col(1);
			}
			if(page.extinfo==1)
			{
				type -b $Baseline.NoExcelWks;
				return 1;
			}
		}
	}
	else
	{
		create.wksName$="Base";
		create.enumwks=1;
	}
	create.wkslabel$=$Baseline.PageLabel;
	create.template$="CREATE";
	create.type1=4;
	create.type2=1;
	create.wks(basex basey);
	%A=create.wksname$;
	return;				//Origin stores the baseline data in %i
[Supp]
	%B=%C;	
	%i=curve.basey$;
	if (%i!="")
	{ 
		if (exist(%i)==1) 
			curve.base$=%i; 
		else
		{
			ty -b $baseline.novaliddata;
			return 1;
		}
	}
	else
	{
		ty -b $baseline.nodataset;
		return 1;
	}
	layer -i200 %i;						//include the baseline data in the layer
	set %i -c 2;
	return 0;
[Tab.BaseLn.Subtract.clicked]
	if(run.section(Baseline,Check)==1)
		return 1;
	if(run.section(,Initialize)!=0) return 1;
	if(run.section(,CheckI)==1);
	if (exist(%A)==1)
	{
		copy %A %A_bk; 				
		%A=curve.data$;
		copy %A %A_bk;				//backup the original data
		layer -e %i;				//take the baseline out of the layer
		%A - %i;
		%i - %i;
		layer -i200 %i;
		set %i -c 2;
		%B=curve.markerindex$;					
		doc -e S
		{
			if("%[%c,>'_']"=="pky" || "%[%c,>'_']"=="PosPkL" || "%[%c,>'_']"=="NegPkL" || "%[%c,>'_']"=="BMkY")	
				layer -e %c;
		};
		layer -a;						//rescale
		Baseline!StoreBaseline$=%i;					//store the baseline and active dataset 
		Baseline!StoreActive$=curve.data$;				//for undo checking
	}
	else
		type -b $Baseline.NoBaselineData;
[Tab.BaseLn.UndoSubtr.clicked]
	run.section(Baseline,Check);
	if(run.section(,Initialize)!=0) break;
	run.section(,CheckI);
	doc -e S
	{
		if("%[%c,>'_']"=="pky" || "%[%c,>'_']"=="PosPkL" || "%[%c,>'_']"=="NegPkL" || "%[%c,>'_']"=="BMkY")	
			layer -e %c;
	};
	layer -a;						//rescale
	%A=curve.basey$;
	%B=curve.data$;
	if(exist(%A_bk)!=1||exist(%B_bk)!=1)
	{
		ty -b $baseline.nobackup;
		return;
	}
	else
	{
		copy %B_bk %B;
		copy %A_bk %A;
		layer -a;
		delete %A_bk;
		delete %B_bk;
		%i=Baseline!StoreBaseline$;
	};
	return 0;
[Tab.BaseLn.Modify.clicked]
	run.section(Baseline,Check);
	dotool 0;
	%B=%C;	
	%A="";
	doc -e W {
		%A=$Baseline.PageLabel;
		if("page.label$"==%A)
		{
			%A=%H;
			Break;
		}
	}
	if(exist(%A)==2)
	{
		set %i -m 1;
		mvpts %i; 
	}
	else
	{
		type -b $Baseline.NoBaselineData;
	}
	
[Tab.Peaks.FindPeaks.clicked]
	doc -uw;
	%B=%C;	
	%A="";
	doc -e W {
		%A=$Baseline.PageLabel;
		if("page.label$"==%A)
		{
			%A=%H;
			Break;
		}
	}
	if(exist(%A)!=2)
	{	
		if(run.section(,CheckBase)!=0)
			break;
	}
	else
	{
		curve.basey$=%A_basey; 
		curve.baseX$=%A_basex;
		curve.base$=%A_basey;
	}
	if(run.section(,Initialize)!=0) break;
	%J=%C;
	%B=%C;
	%A="";
	doc -e W {
		%A=$Baseline.BasePeaks;
		if("page.label$"==%A)
		{
			%A=%H;
			Break;
		}
	}
	if (exist(%A)==2)
	{
		win -o %A
		{		
			create.wksName$=%A;
			create.enumwks=0;
			loop(ii,1,%A!wks.ncols)
			{
				del col(1);
			}
			if(page.extinfo==1)
			{
				type -b $Baseline.NoExcelWks;
				return 1;
			}
		}
	}
	else
	{
		create.wksName$="BsPeak";
		create.enumwks=1;
	}
	create.wkslabel$=$Baseline.BasePeaks;
	create.template$="CREATE";
	create.type1=2;
	create.type2=2;
	create.type3=4;
	create.type4=1;
	create.type5=5;
	create.type6=5;
	create.type7=2;
	create.type8=4;
	create.type9=1;
	create.wks(PkIndex PkDir Pkx Pky PosPkL NegPkL BMkIndex BMkX BMkY);
	%A=create.wksname$;
	curve.markerindex$=%A_BMkIndex;
	curve.peakindex$=%A_PkIndex;
	curve.peakdirection$=%A_PkDir; 		
	if(exist(%A)==2)
	{
		win -o %A
		{		
			if(page.extinfo==1)
			{
				type -b $Baseline.NoExcelWks;
				return 1;
			}
		}
	}
	Baseline!StoreString$=%A;
	
	if(Baseline!Tab.Peaks.MinWidth.v1<0 || Baseline!Tab.Peaks.MinWidth.v1>100) 
	{
		type -b $baseline.minpercent;	//minimum width must be between 0 and 100
		return;
	} 
	if(Baseline!Tab.Peaks.MaxWidth.v1<0 || Baseline!Tab.Peaks.MaxWidth.v1>100) 
	{
		type -b $baseline.maxpercent;	//maximum width must be between 0 and 50
		return;
	} 
	curve.minpeakrange=(Baseline!Tab.Peaks.MinWidth.v1)/100;
	curve.maxpeakrange=(Baseline!Tab.Peaks.MaxWidth.v1)/100;
	curve.minheight=(Baseline!Tab.Peaks.MinHeight.v1)/100;
	if (curve.pickpeaks()==0/0) run.section(,ErrSec);
	win -o %A
	{
		get %A_PkIndex -e end;			
		for(ii=1;ii<=end;ii+=1)
		{
			index=%A_pkindex[ii];		
			%A_Pkx[ii]=xvalue(index,%j);		//find the peak's x and y values in the active dataset
			%A_Pky[ii]=%j[index];			
		} 
		if (Baseline!Tab.Peaks.BaseMarker==1)
		{
			curve.markerindex$=%A_BMkIndex;
			get %A_BMkIndex -e end;
			for(i=1;i<=end;i+=1)
			{
				index=%A_BMkindex[i];
				%A_BMkX[i]=xvalue(index,%j);	//find the x and y values for the base markers
				%A_BMky[i]=%j[index];
			} 
		} 
	};
	win -o %A
	{
		get %h_PkY -b beginIndx;
get %h_PkY -e EndIndx;
		range = EndIndx-beginIndx+1;
		for(i=1;i<=range;i+=1;)
		{
			%A=($(col(Pkx)[i]));
			if(col(PkDir)[i]$=="POS")
				col(PosPkL)[i]$=%A;	//set values for positive labels
			else
				col(NegPkL)[i]$=%A;	//set values for positive labels
		} 
	};
	%A=Baseline!StoreString$;
	if(Baseline!Tab.Peaks.Labels)
	{
		%B=%A_PosPkL;
		layer -i %B;					//Add labels
		set %B -ty 70;					//Offset in the y direction by 70 percent
		set %B -tj 1;					//Left Alignment
		f=font(arial);
		set %B -tf f;					//set the font to Arial
		%B=%A_NegPkL;
		layer -i %B;					//Add labels
		set %B -ty -70;					//Offset in the y direction by 70 percent
		set %B -tj 1;					//Left Alignment
		f=font(arial);
		set %B -tf f;					//set the font to Arial
	} 
	if(Baseline!Tab.Peaks.CenterMarker)
	{
		%B=%A_Pky;
		layer -i201 %B;					//add Peak Centers
		set %B -c 2;					//Set the color to red
		set %B -k 6;					//Set the data point symbol to vertical line |
		set %B -z 8;					//point size to 15
		set %B -l 0;					//line connection to none
	} 
	if(Baseline!Tab.Peaks.BaseMarker)
	{
		%A=curve.markerindex$; 
		%B=%[%A, '_'];
		%B=%B_BMkY;
		layer -i201 %B;					//Add Base markers
		set %B -c 4;					
		set %B -k 10;
		set %B -z 12;
		set %B -l 0;
	} 
	return;
[DelPeaks]
	%A=curve.peakindex$;
	%A=%[%A,'_'];
	%A=%A_pky;
	if(exist(%A)==1)
	{
		Mark -x %A;
		def EndToolbox [;i1=_indx[1];undo -dr %A i1 i1; Mark -d %A -b i1 -e i1];
		GetPts 1 $Baseline.ClkPtsDel;
	} 
	else
	{
		ty -b $baseline.createpeak;
		return 1;
	} 
	win -o %A
	{
		if(Baseline!Tab.Peaks.BaseMarker)
		{
			if(exist(col(MrkIndx)))
			{
				wks.col=colnum(MrkIndx);
				hadcolm=1;
				delete col(MrkIndx);
			} 
 		if(exist(col(BMkX)))
			{
				wks.col=colnum(BMkX);
				delete col(BMkX);
 			} 
			if(exist(col(BMkY)))
				delete col(BMkY);
 		if(hacolm!=1)
				wks.col=wks.ncols+1;
			hadcolm=0;
 		wks.insert(MrkIndx BMkX BMkY);
 		n=colnum(BMkX);
 		wks.col$(n).type=4;			//set to X column
 		curve.markerindex$=%A_MrkIndx; 
		}
	};
	win -o %A
	{
		get %h_PkY -b beginIndx;
		get %h_PkY -e EndIndx;
		range = EndIndx-beginIndx+1;
		for(i=1;i<=range;i+=1;)
		{
			%A=($(col(Pkx)[i]),$(col(Pky)[i]));
			col(pKlabel)[i]$=%A;
		}
	};
	if(Baseline!Tab.Peaks.Labels)
	{
		layer -i201 %A;
		set %A -c 10;
		set %A -k 1;
		set %A -z 10;
		set %A -l 0;
	}
	if(Baseline!Tab.Peaks.CenterMarker)
	{
		%B=%[%A, '_'];
		%A=%B_Pklabel;
		layer -i %A;
//		set %A -z 8;
		set %A -c 8;
	}
	if(Baseline!Tab.Peaks.BaseMarker)
	{
		%A=curve.markerindx$; 
		%B=curve.data$;
		set %B -y %A;
		layer -i201 %A;
		set %A -c 4;
		set %A -k 7;
		set %A -z 15;
		set %A -l 0;
	}
[CheckBase]
	%A=curve.base$;
	if(exist(%A)!=1)
	{
		type -n $Baseline.CreateBase;
		run.section(,Tab.BaseLn.Auto.clicked);
	}
	else
	{
		return 0;
	}
[Modi]
	%A=curve.markerindex$;
	if(exist(%A))
	{
		set %A -m 1; 
		mvpts %A;
		//def EndToolBox {Runtool base follow;}; 
	} 
	else
	{
		ty -b $baseline.createmark;
		return 1;
	}
	
[Tab.Area.UseBaseLn.clicked]
	if(run.section(,Check)==0)
		run.section(,Integ,1);
[Tab.Area.FromY.clicked]
	if(run.section(,Check)==0)
		run.section(,Integ,2);
[Integ]
	if(run.section(,Initialize)!=0) break;
	curve.show=1;
	if(Baseline!Tab.Area.BaseMarker==1)
	{
		
		if (run.section(,CheckMark)!=0)
		{
			type -b $Baseline.CreateMark;
			return 1;
		}
	}
	switch (%1)
	{
	case 1:
		if (run.section(,CheckI)!=0)
		{
			type -b $Baseline.NoBaselineData;
			return 1;
		}
		break;
	case 2:
		curve.base$="";			//No baseline for integration
		break;
	};
	if(Baseline!Tab.Area.BaseMarker==1)
	{
		%B=%C;	
		%A=$Baseline.BasePeaks;
		doc -e W {
			if("page.label$"==%A)
			{
				%A=%H;
				Break;
			}
		}
		Baseline!StoreString$=%A;
		win -o %A
		{ 
			if(exist(col(area)))
			{
				wks.col=colnum(Area);
				delete col(Area);
				hadcolm=1;
			}
			if(exist(col(Hwidth)))
				delete col(Hwidth);
			if(exist(col(Center)))
				delete col(Center);
			if(exist(col(Height)))
				delete col(Height);
			wks.multix=1;
			if(hadcolm!=1)
				wks.col=wks.ncols+1;
			hadcolm=0;
			n=colnum(BMkIndex);
			wks.col=n;
			wks.insert(Area Center Height Hwidth); 
			curve.areas$=%h_Area; 
			curve.halfwidths$=%h_Hwidth;
			curve.centers$=%h_Center;
			curve.Heights$=%h_Height;
		};
		%a=curve.markerindex$;
		err=curve.mrkintegrate();
		run.section(,Output,1);
	}
	/// not integral curve and not using markers
	if(Baseline!Tab.Area.IntCurve.choice==1 && $(Baseline!Tab.Area.BaseMarker)!=1)
	{
		err=curve.integrate();
		run.section(,Output,0);
	}
	if(Baseline!Tab.Area.IntCurve.choice==2 || Baseline!Tab.Area.IntCurve.choice==3)
	{
		%A=curve.worksheet$;
 		win -o %A
 		{
 			%B=curve.data$;
 			wks.col=colnum(%B);
			%B=%[%B,>'_'];
 			for (;1;)
			{
				if (wks.col$(wks.col+1).type==3)
					wks.col+=1;
				else
					break;
			}
			wks.col+=1; 				//Insert after Y or any Error Bar data...
			wks.insert(Integ);
			curve.result$=%(%H,wks.col);
			%A=%(%H,wks.col);
		};
		err=curve.integrate();
		if(Baseline!Tab.Area.IntCurve.choice==3)
		{
			;win -t plot line;	
			queue
			{
				layer -i200 %A;
				set %A -c 4;
				layer -A;
			}
		}
		else
		{
			layer -i200 %A;
			set %A -c 4;
			layer -A;
		}
		run.section(,Output,0);
	}
	
	if(exist(%i)==1)
		curve.base$=%i;
	if (MkS1>=0) 
	{
		i1=MkS1;
		i2=MkS2;
	}
	else 
	{
		get %C -b i1;
		get %C -e i2;
	}
[Output]
	SaveRedirection=type.Redirection(16,3);	// SDB 1/7/99 v6.0148 REPORT_TO_OUTPUTLOG
	type.BeginResults();		/// RKM 12/10/98 v6.0141 REPORT_TO_OUTPUTLOG
	if (%1==0)
	{						//integrate with no markers
		type $baseline.Results;
		separator 3;
		type "$(Curve.integrate.Area)\t$(Curve.integrate.Center)\t$(Curve.integrate.height)";
		separator 3;
	}
	else
	{						//integrate with markers
		%A=curve.peakindex$;
		get %A -e end;
		type $baseline.Results2;
		separator 5;
		for(i=1;i<=end;i+=1)
		{
			%A=%[%A,'_'];	
			type "Peak $(i)\t$(%A_area[i])\t$(%A_Center[i])\t$(%A_height[i])\t$(%A_hwidth[i])";
		}
		separator 5;
	} 	
	type.EndResults();
	type.Redirection=SaveRedirection; // restore previous redirection.
	delete -v SaveRedirection;
	return 0;
[ErrSec]
	switch (curve.lasterrid())
	{
	case 849:
		type -b;				//Beep
		type -b $Baseline.MinWidth;		//Minimum width is too small
		type -q;				//Clear up the status bar
		break; 
	case 850:
		type -b;
		type -b $Baseline.Maxwidth;		//Maximum width is too small
		type -q;	
		break;
	};
////////////////////////////////////////////////////
//Verifies that the baseline data is in the layer //
////////////////////////////////////////////////////
[CheckI]
	%B=%C;	
	%A=curve.basey$;
	if(exist(%A)==1)
	{
		%I=%A;
		return 0;
	}
	else
		return 1;
[CheckMark]
	%B=%C;
	%A="";
	doc -e W {
		%A=$Baseline.BasePeaks;	
		if("page.label$"==%A)
		{
			%A=%H;
			Break;
		}
	}
	if(exist(%A)==2)
	{
		%B=%A_bmky;
		curve.markerindex$=%A_bmkindex;
		curve.peakindex$=%A_pkindex;
		curve.areas$=%A_area;
		curve.halfwidths$=%A_hwidth;
		curve.centers$=%A_Center;
		curve.heights$=%A_Height;
		return 0;
	}
	else
		return 1;
[Tab.Area.BaseMarker.clicked]
	Baseline!Tab.Area.IntCurve.choice=Baseline!Tab.Area.BaseMarker==1?1:0;
	
Origin 6.0/BASELINE.OPS[VERSION]
Version=1.000000
[PREPARE]
StoreBaseline.KIND$=EDITBOX;
StoreString.KIND$=EDITBOX;
StoreBaseline.SHOW=0;
StoreBaseline.ENABLE=1;
StoreBaseline$="";
StoreString.SHOW=0;
StoreString.ENABLE=1;
StoreString$="";
[Tab.BaseLn.PREPARE]
Tab.BaseLn.NumPoints.KIND$=EDITBOX;
Tab.BaseLn.Auto.KIND$=BUTTON;
Tab.BaseLn.UserDef.KIND$=BUTTON;
Tab.BaseLn.YEquals.KIND$=EDITBOX;
Tab.BaseLn.ExDataset.KIND$=BUTTON;
Tab.BaseLn.Dataset.KIND$=EDITBOX;
Tab.BaseLn.Subtract.KIND$=BUTTON;
Tab.BaseLn.UndoSubtr.KIND$=BUTTON;
Tab.BaseLn.Modify.KIND$=BUTTON;
Tab.BaseLn.NumPoints.SHOW=1;
Tab.BaseLn.NumPoints.ENABLE=1;
Tab.BaseLn.NumPoints$=10;
Tab.BaseLn.Auto.SHOW=1;
Tab.BaseLn.Auto.ENABLE=1;
Tab.BaseLn.Auto$=Automatic;
Tab.BaseLn.UserDef.SHOW=1;
Tab.BaseLn.UserDef.ENABLE=1;
Tab.BaseLn.UserDef$=User Defined Equation;
Tab.BaseLn.YEquals.SHOW=1;
Tab.BaseLn.YEquals.ENABLE=1;
Tab.BaseLn.YEquals$="";
Tab.BaseLn.ExDataset.SHOW=1;
Tab.BaseLn.ExDataset.ENABLE=1;
Tab.BaseLn.ExDataset$=Existing Dataset;
Tab.BaseLn.Dataset.SHOW=1;
Tab.BaseLn.Dataset.ENABLE=1;
Tab.BaseLn.Dataset$="";
Tab.BaseLn.Subtract.SHOW=1;
Tab.BaseLn.Subtract.ENABLE=1;
Tab.BaseLn.Subtract$=Subtract;
Tab.BaseLn.UndoSubtr.SHOW=1;
Tab.BaseLn.UndoSubtr.ENABLE=1;
Tab.BaseLn.UndoSubtr$=Undo Subtraction;
Tab.BaseLn.Modify.SHOW=1;
Tab.BaseLn.Modify.ENABLE=1;
Tab.BaseLn.Modify$=Modify;
[Tab.Peaks.PREPARE]
Tab.Peaks.MinWidth.KIND$=EDITBOX;
Tab.Peaks.MaxWidth.KIND$=EDITBOX;
Tab.Peaks.MinHeight.KIND$=EDITBOX;
Tab.Peaks.Labels.KIND$=CHECKBOX;
Tab.Peaks.CenterMarker.KIND$=CHECKBOX;
Tab.Peaks.BaseMarker.KIND$=CHECKBOX;
Tab.Peaks.FindPeaks.KIND$=BUTTON;
Tab.Peaks.MinWidth.SHOW=1;
Tab.Peaks.MinWidth.ENABLE=1;
Tab.Peaks.MinWidth$=5;
Tab.Peaks.MaxWidth.SHOW=1;
Tab.Peaks.MaxWidth.ENABLE=1;
Tab.Peaks.MaxWidth$=40;
Tab.Peaks.MinHeight.SHOW=1;
Tab.Peaks.MinHeight.ENABLE=1;
Tab.Peaks.MinHeight$=5;
Tab.Peaks.Labels.SHOW=1;
Tab.Peaks.Labels.ENABLE=1;
Tab.Peaks.Labels=1;
Tab.Peaks.Labels$=Labels;
Tab.Peaks.CenterMarker.SHOW=1;
Tab.Peaks.CenterMarker.ENABLE=1;
Tab.Peaks.CenterMarker=1;
Tab.Peaks.CenterMarker$=Center Markers;
Tab.Peaks.BaseMarker.SHOW=1;
Tab.Peaks.BaseMarker.ENABLE=1;
Tab.Peaks.BaseMarker=1;
Tab.Peaks.BaseMarker$=Base Markers;
Tab.Peaks.FindPeaks.SHOW=1;
Tab.Peaks.FindPeaks.ENABLE=1;
Tab.Peaks.FindPeaks$=Find Peaks;
[Tab.Peaks.SET]
Tab.Peaks.CenterMarker=1;
Tab.Peaks.BaseMarker=1;
[Tab.Area.PREPARE]
Tab.Area.IntCurve.KIND$=RADIOBUTTON;
Tab.Area.Add2Graph.KIND$=RADIOBUTTON;
Tab.Area.NewGraph.KIND$=RADIOBUTTON;
Tab.Area.BaseMarker.KIND$=CHECKBOX;
Tab.Area.UseBaseLn.KIND$=BUTTON;
Tab.Area.FromY.KIND$=BUTTON;
Tab.Area.IntCurve.V1$=Not Created;
Tab.Area.IntCurve.V2$=Add to Graph;
Tab.Area.IntCurve.V3$=Make New Graph;
Tab.Area.IntCurve.SHOW=1;
Tab.Area.IntCurve.ENABLE=1;
Tab.Area.IntCurve=1;
Tab.Area.IntCurve$="";
Tab.Area.Add2Graph.V1$=Add to Graph;
Tab.Area.Add2Graph.V2$=Make New Graph;
Tab.Area.Add2Graph.SHOW=1;
Tab.Area.Add2Graph.ENABLE=1;
Tab.Area.Add2Graph=0;
Tab.Area.Add2Graph$="";
Tab.Area.NewGraph.V1$=Make New Graph;
Tab.Area.NewGraph.SHOW=1;
Tab.Area.NewGraph.ENABLE=1;
Tab.Area.NewGraph=0;
Tab.Area.NewGraph$="";
Tab.Area.BaseMarker.SHOW=1;
Tab.Area.BaseMarker.ENABLE=1;
Tab.Area.BaseMarker=0;
Tab.Area.BaseMarker$=Use Base Markers;
Tab.Area.UseBaseLn.SHOW=1;
Tab.Area.UseBaseLn.ENABLE=1;
Tab.Area.UseBaseLn$=Use Baseline;
Tab.Area.FromY.SHOW=1;
Tab.Area.FromY.ENABLE=1;
Tab.Area.FromY$=From Y = 0;
[WINPOS]
TOP=73
LEFT=480
Origin 6.0/BOX.OTP
Origin 6.0/BUBBLE.OTP
Origin 6.0/Buttons/ASSAYS.OTW
Origin 6.0/Buttons/BATCH.OGS////////////////////////////////////////////////////////////////////////////////
// Filename:		BATCH.OGS
// Creation:		by Lorraine Weibel, 6/1/96
// Purpose:		Demonstration of a simple LabTalk batch process routine
// Modifications:	SDB-Updated for Origin 6.0
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
// Main Section
// This code calls other specialized sections to accomplish the main task.
//
// Execute script: run.section(Batch,Main);
// Operations: 
//	1. Import each file into a new worksheet
//	2. Plot all data in worksheet to a graph window
//	3. Perform Linear fit from Simplefit code in LR.OGS
//	4. Report Slope and Intercept values to Results log for each fit
////////////////////////////////////////////////////////////////////////////////
[Main]
	FDLOG.multiopen.colview=12;		//12/7/98 new property for dialog options
	FDLOG.UseGroup(Ascii);			//Open ASCII files
	if (FDLOG.multiopen()==0/0)
		return 1;
	loop(ii,1,FDlog.MultiOpen.Count)
	{
		FDlog.Get(A, ii);
		win -t data;
		open -w %A;
		run.section(,Plot,%H);	//Run Plot section
		run.section(,Fit);
	}
[Plot]
	win -t plot Origin; 		//Bring up origin.otp
	layer -w %1 201;			//Include worksheet data in the active layer
	layer -a;			//Rescale x and y axes 
	return 0; 
[Fit]
	type.BeginResults();		/// RKM 12/10/98 v6.0141 REPORT_TO_OUTPUTLOG
	layer -c;
	loop(ii,1,count)
	{
		%C=%[%Z,#ii];
		run.section(lr,simplefit);
		run.section(,Results,%[%Z,#ii]);
	};
	type.EndResults();
	return 0;
[Results]
	SaveRedirection=type.Redirection(16,3);		//SDB 1/7/99 REPORT_TO_OUTPUTLOG
	type -a "Slope of %1 is $(stat.lr.b)"; 		//Returns slope
	type -a "Y-Intercept of %1 is $(stat.lr.a)"; 	//Returns y-intercept value
	type;						//Type out an extra line.
	type.Redirection=SaveRedirection; 		//restore previous redirection.
	delete -v SaveRedirection;
	return 0;
Origin 6.0/Buttons/CONVERT.OTW
Origin 6.0/Buttons/INTERPOL.OTW
Origin 6.0/Buttons/LABELPKS.OTP
Origin 6.0/Buttons/PEAKSIM.OTW
Origin 6.0/Buttons/SIMPLE.OTP
Origin 6.0/Buttons/STANDARD.OTW
Origin 6.0/BUTTONS.OTP
Origin 6.0/CMAP.OTP
Origin 6.0/COLSTAT.OTW
Origin 6.0/COLUMN.OTP
Origin 6.0/CONTGRAY.OTP
Origin 6.0/CONTLINE.OTP
Origin 6.0/CONTOUR.OTP
Origin 6.0/COUNT.OTW
Origin 6.0/CREATE.OTW
Origin 6.0/custom.ogs// Filename: Custom.ogs
// Purpose: The Custom Routine button on the standard toolbar will use this code, by calling
//		the [Main] section 
// Modifications:
////////////////////////////////////////////////////////////////////////////////
// Main Code 
////////////////////////////////////////////////////////////////////////////////
[Main]
	type -b $General.Userbutton;
Origin 6.0/DL35WD32.DLL
Origin 6.0/DOUBLEY.OTP
Origin 6.0/DROPLINE.OTP
Origin 6.0/EBBMP2.FLT
Origin 6.0/EBBMP2.INI[EBBMP]
~Default Mode=Standard Options
~Mode=Standard Options
~Header=BMP Output Filter Setup
Standard Options=EBBMP.1
[Standard Options]
DefaultFileSpec=\ota\new_data\*.bmp
Driver=EBBMP.1
Color Format=221
Resolution Mode=310
X Resolution=150
Y Resolution=150
Width=11
Height=8.5
Size Mode=603
Compression Mode=224
Origin 6.0/EBJPG2.FLT
Origin 6.0/EBJPG2.INI[EBJPG]
~Default Mode=Standard Options
~Mode=Standard Options
~Header=JPG Output Filter Setup
Standard Options=EBJPG.1
[Standard Options]
Driver=EBJPG.1
Resolution Mode=310
Color Mode=103
X Resolution=150
Y Resolution=150
Width=11
Height=8.5
Size Mode=603
Color Format=212
Quality Mode=242
Quality=100
Format Type=1
Operation=245
Origin 6.0/EBPCX2.FLT
Origin 6.0/EBPCX2.INI[EBPCX]
~Default Mode=Standard Options
~Mode=Standard Options
~Header=PCX Output Filter Setup
Standard Options=EBPCX.1
PC Paintbrush=EBPCX.1
[Standard Options]
DefaultFileSpec=\ota\new_data\*.pcx
Driver=EBPCX.1
Color Mode=103
Resolution Mode=310
X Resolution=150
Y Resolution=150
Width=11
Height=8.5
Color Format=221
Size Mode=603
[PC Paintbrush]
DefaultFileSpec=\ota\new_data\*.pcx
Driver=EBPCX.1
Color Mode=103
Resolution Mode=310
X Resolution=640
Y Resolution=480
Width=1.00000
Height=1.00000
Color Format=219
Origin 6.0/EBPNG2.FLT
Origin 6.0/EBPNG2.INI[EBPNG]
~Default Mode=Standard Options
~Mode=Standard Options
~Header=PNG Output Filter Setup
Standard Options=EBPNG.1
[Standard Options]
DefaultFileSpec=\ota\new_data\*.png
Driver=EBPNG.1
Resolution Mode=310
Color Mode=103
X Resolution=150
Y Resolution=150
Width=11.30
Height=7.93
Size Mode=603
Data Format=
Color Format=221
Transparency=744
BkgColor Mode=753
Origin 6.0/EBPSD2.FLT
Origin 6.0/EBPSD2.INI[EBPSD]
~Default Mode=Standard Options
~Mode=Standard Options
~Header=PSD Output Filter Setup
Standard Options=EBPSD.1
[Standard Options]
DefaultFileSpec=\ota\new_data\*.psd
Driver=EBPSD.1
Color Format=221
Resolution Mode=310
X Resolution=150
Y Resolution=150
Width=11
Height=8.5
Size Mode=603
Compression Mode=224
Origin 6.0/EBTGA2.FLT
Origin 6.0/EBTGA2.INI[EBTGA]
~Default Mode=Standard Options
~Mode=Standard Options
~Header=TGA Output Filter Setup
Standard Options=EBTGA.1
[Standard Options]
DefaultFileSpec=\ota\new_data\*.tga
Driver=EBTGA.1
Resolution Mode=310
Compression Mode=1
Color Mode=103
X Resolution=150
Y Resolution=150
Width=11
Height=8.5
Bitmap Mode=221
Size Mode=603
X Size=
Y Size=
Color Format=
Origin 6.0/ebtif2.flt
Origin 6.0/ebtif2.ini[EBTIF]
~Default Mode=Standard Options
~Mode=Standard Options
~Header=TIFF Output Filter Setup
Standard Options=EBTIF.1
[Standard Options]
DefaultFileSpec=\ota\new_data\*.tif
Driver=EBTIF.1
Resolution Mode=310
Compression Mode=224
Color Mode=103
X Resolution=150
Y Resolution=150
Width=11
Height=8.5
Bitmap Mode=221
Size Mode=603
X Size=10
Y Size=10
Origin 6.0/EBXPM2.FLT
Origin 6.0/EBXPM2.INI[EBXPM]
~Default Mode=Standard Options
~Mode=Standard Options
~Header=XPM Output Filter Setup
Standard Options=EBXPM.1
[Standard Options]
DefaultFileSpec=\ota\new_data\*.xpm
Driver=EBXPM.1
Resolution Mode=310
Color Mode=103
X Resolution=150
Y Resolution=150
Width=11
Height=8.5
Size Mode=603
Color Format=221
Hotspot Mode=701
X Hotspot=0
Y Hotspot=1
Origin 6.0/EBXWD2.FLT
Origin 6.0/EBXWD2.INI[EBXWD]
~Default Mode=Standard Options
~Mode=Standard Options
~Header=XWD Output Filter Setup
Standard Options=EBXWD.1
[Standard Options]
DefaultFileSpec=\ota\new_data\*.xwd
Driver=EBXWD.1
Resolution Mode=310
Color Mode=103
X Resolution=150
Y Resolution=150
Width=11
Height=8.5
Size Mode=603
Hotspot Mode=701
X Hotspot=0
Y Hotspot=0
Data Format=711
Origin 6.0/EMCGM2.FLT
Origin 6.0/EMCGM2.INI[EMCGM]
~Default Mode=Standard Options (ANSI)
~Mode=Standard Options (ANSI)
~Header=CGM Output Filter Setup
Standard Options (ANSI)=EMCGM.1
ANSI CGM 3.0=EMCGM.9
MIL-D-28003 (CALS)=EMCGM.2
MIL-D-28003A (CALS)=EMCGM.3
Lotus Freelance Plus (Ver. 3.01)=EMCGM.4
Harvard Graphics (Ver. 2.3)=EMCGM.5
Inso GDSF (Ver. 1.0)=EMCGM.6
Inso GDSF (Ver. 2.0)=EMCGM.10
Applause II=EMCGM.7
CorelDraw=EMCGM.8
[Standard Options (ANSI)]
Driver=EMCGM.1
Color Mode=103
Text Mode=115
Line Mode=119
[MIL-D-28003 (CALS)]
Driver=EMCGM.2
Text Mode=115
Color Mode=103
Line Mode=119
; NOTE:
; The CALS profile allows a maximum font list of 4 fonts selected
; from the following fonts:
Font[001]="HERSHEY:SIMPLEX_ROMAN", "HERSHEY:SIMPLEX_ROMAN"
Font[002]="HERSHEY:DUPLEX_ROMAN", "HERSHEY:DUPLEX_ROMAN"
Font[003]="HERSHEY:COMPLEX_ROMAN", "HERSHEY:COMPLEX_ROMAN"
Font[004]="HERSHEY:COMPLEX_ITALIC", "HERSHEY:COMPLEX_ITALIC"
;Font[005]="HERSHEY:CARTOGRAPHIC_ROMAN", "HERSHEY:CARTOGRAPHIC_ROMAN"
;Font[006]="HERSHEY:CARTOGRAPHIC_GREEK", "HERSHEY:CARTOGRAPHIC_GREEK"
;Font[007]="HERSHEY:SIMPLEX_GREEK", "HERSHEY:SIMPLEX_GREEK"
;Font[008]="HERSHEY:SIMPLEX_SCRIPT", "HERSHEY:SIMPLEX_SCRIPT"
;Font[009]="HERSHEY:COMPLEX_GREEK", "HERSHEY:COMPLEX_GREEK"
;Font[010]="HERSHEY:COMPLEX_SCRIPT", "HERSHEY:COMPLEX_SCRIPT"
;Font[011]="HERSHEY:COMPLEX_CYRILLIC", "HERSHEY:COMPLEX_CYRILLIC"
;Font[012]="HERSHEY:TRIPLEX_ROMAN", "HERSHEY:TRIPLEX_ROMAN"
;Font[013]="HERSHEY:TRIPLEX_ITALIC", "HERSHEY:TRIPLEX_ITALIC"
;Font[014]="HERSHEY:GOTHIC_GERMAN", "HERSHEY:GOTHIC_GERMAN"
;Font[015]="HERSHEY:GOTHIC_ENGLISH", "HERSHEY:GOTHIC_ENGLISH"
;Font[016]="HERSHEY:GOTHIC_ITALIAN", "HERSHEY:GOTHIC_ITALIAN"
[MIL-D-28003A (CALS)]
Driver=EMCGM.3
Text Mode=115
Color Mode=103
Line Mode=119
; NOTE:
; The CALS profile allows a maximum font list of 4 fonts selected
; from the following fonts:
Font[001]="HERSHEY:SIMPLEX_ROMAN", "HERSHEY:SIMPLEX_ROMAN"
Font[002]="HERSHEY:DUPLEX_ROMAN", "HERSHEY:DUPLEX_ROMAN"
Font[003]="HERSHEY:COMPLEX_ROMAN", "HERSHEY:COMPLEX_ROMAN"
Font[004]="HERSHEY:COMPLEX_ITALIC", "HERSHEY:COMPLEX_ITALIC"
;Font[005]="HERSHEY:CARTOGRAPHIC_ROMAN", "HERSHEY:CARTOGRAPHIC_ROMAN"
;Font[006]="HERSHEY:CARTOGRAPHIC_GREEK", "HERSHEY:CARTOGRAPHIC_GREEK"
;Font[007]="HERSHEY:SIMPLEX_GREEK", "HERSHEY:SIMPLEX_GREEK"
;Font[008]="HERSHEY:SIMPLEX_SCRIPT", "HERSHEY:SIMPLEX_SCRIPT"
;Font[009]="HERSHEY:COMPLEX_GREEK", "HERSHEY:COMPLEX_GREEK"
;Font[010]="HERSHEY:COMPLEX_SCRIPT", "HERSHEY:COMPLEX_SCRIPT"
;Font[011]="HERSHEY:COMPLEX_CYRILLIC", "HERSHEY:COMPLEX_CYRILLIC"
;Font[012]="HERSHEY:TRIPLEX_ROMAN", "HERSHEY:TRIPLEX_ROMAN"
;Font[013]="HERSHEY:TRIPLEX_ITALIC", "HERSHEY:TRIPLEX_ITALIC"
;Font[014]="HERSHEY:GOTHIC_GERMAN", "HERSHEY:GOTHIC_GERMAN"
;Font[015]="HERSHEY:GOTHIC_ENGLISH", "HERSHEY:GOTHIC_ENGLISH"
;Font[016]="HERSHEY:GOTHIC_ITALIAN", "HERSHEY:GOTHIC_ITALIAN"
;Font[017]="HELVETICA", "Sans Serif Normal"
;Font[018]="HELVETICA BOLD", "Sans Serif Bold"
;Font[019]="HELVETICA OBLIQUE", "Sans Serif Italic"
;Font[020]="HELVETICA BOLD OBLIQUE", "Sans Serif Bold Italic"
;Font[021]="TIMES_ROMAN", "Serif Normal"
;Font[022]="TIMES_ROMAN BOLD", "Serif Bold"
;Font[023]="TIMES_ROMAN ITALIC", "Serif Italic"
;Font[024]="TIMES_ROMAN BOLD ITALIC", "Serif Bold Italic"
;Font[025]="COURIER", "Monospaced Normal"
;Font[026]="COURIER BOLD", "Monospaced Bold"
;Font[027]="COURIER ITALIC", "Monospaced Italic"
;Font[028]="COURIER BOLD ITALIC", "Monospaced Bold Italic"
[Lotus Freelance Plus (Ver. 3.01)]
Driver=EMCGM.4
Text Mode=115
CharacterSet=LMBCS
; CharacterSet=SHIFT-JIS
Font[001]="Swiss", "Swiss:Helvetica"
Font[002]="Swiss", "Swiss:Helvetica Bold"
Font[003]="Swiss", "Swiss:Helvetica Oblique"
Font[004]="Swiss", "Swiss:Helvetica Bold Oblique"
Font[005]="Serif Stroke", "Roman:Tms Rmn"
Font[006]="Serif Stroke", "Roman:Tms Rmn Bold"
Font[007]="Serif Stroke", "Roman:Tms Rmn Italic"
Font[008]="Serif Stroke", "Roman:Tms Rmn Bold Italic"
Color Mode=103
Line Mode=119
[Harvard Graphics (Ver. 2.3)]
Driver=EMCGM.5
Color Mode=103
Text Mode=115
Font[001]="", "Swiss:Helvetica"
Font[002]="", "Swiss:Helvetica Oblique"
Font[003]="", "Swiss:Helvetica Bold"
Font[004]="", "Roman:Tms Rmn"
Font[005]="", "Roman:Tms Rmn Italic"
Font[006]="", "Roman:Tms Rmn Bold"
Font[007]="", "HERSHEY:GOTHIC_ENGLISH"
Font[008]="", "Script:ZapfChancery"
Font[009]="", ""
Font[010]="", ""
Font[011]="", ""
Font[012]="", ""
Font[013]="", ""
Font[014]="", ""
Line Mode=119
[Inso GDSF (Ver. 1.0)]
Driver=EMCGM.6
Color Mode=103
Text Mode=115
Line Mode=119
[Applause II]
Driver=EMCGM.7
Text Mode=115
Font[001]="", ""
Font[002]="", ""
Font[003]="Swiss", "Swiss:Helvetica"
Font[004]="Swiss Italic", "Swiss:Helvetica Oblique"
Font[005]="Swiss Bold", "Swiss:Helvetica Bold"
Font[006]="Swiss Bold Italic", "Swiss:Helvetica Bold Oblique"
Font[007]="", ""
Font[008]="", ""
Font[009]="", ""
Font[010]="", ""
Font[011]="Dutch", "Roman:Tms Rmn"
Font[012]="Dutch Italic", "Roman:Tms Rmn Italic"
Font[013]="Dutch Bold", "Roman:Tms Rmn Bold"
Font[014]="Dutch Bold Italic", "Roman:Tms Rmn Bold Italic"
Color Mode=103
Line Mode=119
[CorelDraw]
Driver=EMCGM.8
Color Mode=103
Text Mode=115
Line Mode=119
[ANSI CGM 3.0]
Driver=EMCGM.9
Color Mode=103
Text Mode=115
Line Mode=119
[Inso GDSF (Ver. 2.0)]
Driver=EMCGM.10
Color Mode=103
Text Mode=115
Line Mode=119
Origin 6.0/EMDXF2.FLT
Origin 6.0/EMDXF2.INI[EMDXF]
~Default Mode=Binary DXF
~Mode=Standard Options (Text DXF)
~Header=DXF Output Filter Setup
Standard Options (Text DXF)=EMDXF.1
Binary DXF=EMDXF.3
[Standard Options (Text DXF)]
DefaultFileSpec=\ota\new_data\*.dxf
Driver=EMDXF.1
Font[001]="ROMANS", "HERSHEY:SIMPLEX_ROMAN"
Font[002]="GREEKS", "HERSHEY:SIMPLEX_GREEK"
Font[003]="SCRIPTS", "HERSHEY:SIMPLEX_SCRIPT"
Font[004]="ROMAND", "HERSHEY:DUPLEX_ROMAN"
Font[005]="ROMANC", "HERSHEY:COMPLEX_ROMAN"
Font[006]="ITALICC", "HERSHEY:COMPLEX_ITALIC"
Font[007]="SCRIPTC", "HERSHEY:COMPLEX_SCRIPT"
Font[008]="GREEKC", "HERSHEY:COMPLEX_GREEK"
Font[009]="CYRILLIC", "HERSHEY:COMPLEX_CYRILLIC"
Font[010]="ROMANT", "HERSHEY:TRIPLEX_ROMAN"
Font[011]="MONOTXT", "HERSHEY:TRIPLEX_ITALIC"
Font[012]="GERMANG", "HERSHEY:GOTHIC_GERMAN"
Font[013]="GERMANE", "HERSHEY:GOTHIC_ENGLISH"
Font[014]="GERMANI", "HERSHEY:GOTHIC_ITALIAN"
Font[015]="SYMATH", "Symbol:ZapfDingbats"
Output Unit=Inches
Color Mode=103
[Binary DXF]
DefaultFileSpec=\ota\new_data\*.dxf
Driver=EMDXF.3
Font[001]="ROMANS", "HERSHEY:SIMPLEX_ROMAN"
Font[002]="GREEKS", "HERSHEY:SIMPLEX_GREEK"
Font[003]="SCRIPTS", "HERSHEY:SIMPLEX_SCRIPT"
Font[004]="ROMAND", "HERSHEY:DUPLEX_ROMAN"
Font[005]="ROMANC", "HERSHEY:COMPLEX_ROMAN"
Font[006]="ITALICC", "HERSHEY:COMPLEX_ITALIC"
Font[007]="SCRIPTC", "HERSHEY:COMPLEX_SCRIPT"
Font[008]="GREEKC", "HERSHEY:COMPLEX_GREEK"
Font[009]="CYRILLIC", "HERSHEY:COMPLEX_CYRILLIC"
Font[010]="ROMANT", "HERSHEY:TRIPLEX_ROMAN"
Font[011]="MONOTXT", "HERSHEY:TRIPLEX_ITALIC"
Font[012]="GERMANG", "HERSHEY:GOTHIC_GERMAN"
Font[013]="GERMANE", "HERSHEY:GOTHIC_ENGLISH"
Font[014]="GERMANI", "HERSHEY:GOTHIC_ITALIAN"
Font[015]="SYMATH", "Symbol:ZapfDingbats"
Output Unit=Inches
Color Mode=103
Origin 6.0/EMPCT2.FLT
Origin 6.0/EMPCT2.INI[EMPCT]
~Default Mode=Standard Options
~Mode=Standard Options
~Header=PICT Output Filter Setup
Standard Options=EMPCT.1
[Standard Options]
Driver=EMPCT.1
Text Mode=115
Line Mode=119
Fill Mode=122
Background Rect=0
Color Mode=103
Origin 6.0/EMPDF2.FLT
Origin 6.0/EMPDF2.INI[EMPDF]
~Default Mode=Monochrome Printing
~Mode=Standard Options
~Header=PDF Output Filter Setup
Standard Options=MOPDF.1
*Monochrome Settings=MOPDF.1
[Standard Options]
Driver=MOPDF.1
; These are Base 14 Adobe Type 1 Fonts that should always be here
Font[001]="Helvetica", "Swiss:Helvetica"
Font[002]="Helvetica-Bold", "Swiss:Helvetica Bold"
Font[003]="Helvetica-Oblique", "Swiss:Helvetica Oblique"
Font[004]="Helvetica-BoldOblique", "Swiss:Helvetica Bold Oblique"
Font[005]="Times-Roman", "Roman:Times"
Font[006]="Times-Bold", "Roman:Times Bold"
Font[007]="Times-Italic", "Roman:Times Italic"
Font[008]="Times-BoldItalic", "Roman:Times Bold Italic"
Font[009]="Courier", "Modern:Courier"
Font[010]="Courier-Bold", "Modern:Courier Bold"
Font[011]="Courier-Oblique", "Modern:Courier Oblique"
Font[012]="Courier-BoldOblique", "Modern:Courier Bold Oblique"
Font[013]="ZapfDingbats", "Symbol:ZapfDingbats"
Font[014]="Symbol", "Symbol:Symbol"
; These are the fonts that can be added by a user in the system
Font[015]="BrushScript", "Matura"
Font[016]="BrushScript", "Brush Script"
Font[017]="Desdemona", "Desdemona"
Font[018]="Arial", "Arial"
Font[019]="Braggadocio", "Braggadocio"
Font[020]="ColonnaMT", "Colonna MT" 
Font[021]="BrushScript", "Brush738 BT"
Font[022]="Boton-Regular", "Bookman Old Style"
Font[023]="Algerian", "Algerian"
Font[024]="Boton-Regular", "Bookman Old Style"
Font[025]="WideLatin", "Wide Latin"
Font[026]="CenturyGothic", "Century Gothic"
Font[027]="PopplLaudatio-Regular", "EngraversGothic" 
Font[028]="Desdemona", "Onyx"
Font[029]="Perpetua", "Blackletter686"
Font[030]="Helvetica", "Arrus"
Font[031]="PopplLaudatio-Regular", "BernhardMod"
Font[032]="Times-Roman", "GeoSlab703" 
 
Text Mode=115
Line Mode=119
Fill Mode=122
Color Mode=103
Background Rectangle=0
[*Monochrome Settings]
Driver=MOPDF.1
Font[001]="", ""
Font[002]="", ""
Font[003]="", ""
Font[004]="", ""
Font[005]="", ""
Font[006]="", ""
Font[007]="", ""
Font[008]="", ""
Font[009]="", ""
Font[010]="", ""
Font[011]="", ""
Font[012]="", ""
Font[013]="", ""
Font[014]="", ""
Line Mode=119
Fill Mode=122
Text Mode=115
Color Mode=106
Origin 6.0/emps_2.flt
Origin 6.0/emps_2.ini[EMPS_] ; DUAL MODE AI/EPS
~Default Mode=Standard Options - EPS
~Mode=Standard Options - AI
~Header=AI/EPS Output Filter Setup
Standard Options - AI=EMPS_.2
Standard Options - EPS=EMPS_.4
;*********************************
[EMAI_] ; AI ONLY MODE
~Default Mode=Standard Options - AI
~Mode=Standard Options - AI
~Header=AI Output Filter Setup
Standard Options - AI=EMPS_.2
;*********************************
[EMEPS] ; EPS ONLY MODE
~Default Mode=Standard Options - EPS
~Mode=Standard Options - EPS
~Header=EPS Output Filter Setup
Standard Options - EPS=EMPS_.4
;*********************************
[Standard Options]
DefaultFileSpec=\ota\new_data\*.eps
Driver=EMPS_.4
Font[001]="Helvetica", "Swiss:Helvetica"
Font[002]="Helvetica-Bold", "Swiss:Helvetica Bold"
Font[003]="Helvetica-Oblique", "Swiss:Helvetica Oblique"
Font[004]="Helvetica-BoldOblique", "Swiss:Helvetica Bold Oblique"
Font[005]="Times-Roman", "Roman:Times"
Font[006]="Times-Bold", "Roman:Times Bold"
Font[007]="Times-Italic", "Roman:Times Italic"
Font[008]="Times-BoldItalic", "Roman:Times Bold Italic"
Font[009]="Courier", "Modern:Courier"
Font[010]="Courier-Bold", "Modern:Courier Bold"
Font[011]="Courier-Oblique", "Modern:Courier Oblique"
Font[012]="Courier-BoldOblique", "Modern:Courier Bold Oblique"
Font[013]="Symbol", "Symbol:Symbol"
Background Rect=1
Color Mode=103
Line Cap=134
Include Preview=0
Bitmap Mode=215
Color Printer=0
AI=3
Create PS Raster Files=TRUE
Hide AI Selection=FALSE
Band Raster Data=FALSE
Compression Mode=224
Resolution Mode=307
X Resolution=72
Y Resolution=72
[Standard Options - AI]
DefaultFileSpec=\ota\new_data\*.eps
Driver=EMPS_.2
Font[001]="Helvetica", "Swiss:Helvetica"
Font[002]="Helvetica-Bold", "Swiss:Helvetica Bold"
Font[003]="Helvetica-Oblique", "Swiss:Helvetica Oblique"
Font[004]="Helvetica-BoldOblique", "Swiss:Helvetica Bold Oblique"
Font[005]="Times-Roman", "Roman:Times"
Font[006]="Times-Bold", "Roman:Times Bold"
Font[007]="Times-Italic", "Roman:Times Italic"
Font[008]="Times-BoldItalic", "Roman:Times Bold Italic"
Font[009]="Courier", "Modern:Courier"
Font[010]="Courier-Bold", "Modern:Courier Bold"
Font[011]="Courier-Oblique", "Modern:Courier Oblique"
Font[012]="Courier-BoldOblique", "Modern:Courier Bold Oblique"
Font[013]="Symbol", "Symbol:Symbol"
Background Rect=0
Color Mode=103
Line Cap=134
Include Preview=1
Bitmap Mode=215
Color Printer=0
AI=3
Create PS Raster Files=TRUE
Hide AI Selection=FALSE
Band Raster Data=FALSE
Compression Mode=224
Resolution Mode=310
X Resolution=72
Y Resolution=72
[Standard Options - EPS]
DefaultFileSpec=\ota\new_data\*.eps
Driver=EMPS_.4
Font[001]="Helvetica", "Swiss:Helvetica"
Font[002]="Helvetica-Bold", "Swiss:Helvetica Bold"
Font[003]="Helvetica-Oblique", "Swiss:Helvetica Oblique"
Font[004]="Helvetica-BoldOblique", "Swiss:Helvetica Bold Oblique"
Font[005]="Times-Roman", "Roman:Times"
Font[006]="Times-Bold", "Roman:Times Bold"
Font[007]="Times-Italic", "Roman:Times Italic"
Font[008]="Times-BoldItalic", "Roman:Times Bold Italic"
Font[009]="Courier", "Modern:Courier"
Font[010]="Courier-Bold", "Modern:Courier Bold"
Font[011]="Courier-Oblique", "Modern:Courier Oblique"
Font[012]="Courier-BoldOblique", "Modern:Courier Bold Oblique"
Font[013]="Symbol", "Symbol:Symbol"
Background Rect=0
Color Mode=103
Line Cap=134
Include Preview=1
Bitmap Mode=215
Color Printer=0
AI=3
Create PS Raster Files=TRUE
Hide AI Selection=FALSE
Band Raster Data=FALSE
Compression Mode=224
Resolution Mode=310
X Resolution=72
Y Resolution=72
Origin 6.0/emwmf2.flt
Origin 6.0/emwmf2.ini[EMWMF]
~Default Mode=Standard Metafile
~Mode=Standard Metafile
~Header=WMF Output Filter Setup
Standard Options (Placeable Metafile)=EMWMF.2
Standard Metafile=EMWMF.1
Enhanced Metafile=EMWMF.7
Hidden Line Hidden Surface Removal=EMWMF.5
[Standard Options (Placeable Metafile)]
DefaultFileSpec=\ota\new_data\*.wmf
Driver=EMWMF.2
ColorTableSource=FILE
Text Mode=115
Line Mode=120
Fill Mode=123
Background Rect=1
Color Mode=103
Gradients=
[Standard Metafile]
DefaultFileSpec=\ota\new_data\*.wmf
Driver=EMWMF.1
ColorTableSource=FILE
Text Mode=115
Line Mode=119
Fill Mode=122
Background Rect=1
Color Mode=103
Gradients=
[Enhanced Metafile]
DefaultFileSpec=\ota\new_data\*.wmf
Driver=EMWMF.7
ColorTableSource=FILE
Text Mode=115
Line Mode=119
Fill Mode=122
Background Rect=1
Color Mode=103
[Hidden Line Hidden Surface Removal]
DefaultFileSpec=\ota\new_data\*.wmf
Driver=EMWMF.5
ColorTableSource=FILE
Text Mode=116
Line Mode=120
Fill Mode=123
Background Rect=0
Color Mode=103
Origin 6.0/ENLARGED.OTP
Origin 6.0/ERRBAR.OTP
Origin 6.0/EXCEL.OTW
Origin 6.0/FENCES.TTF
Origin 6.0/FFT.OGO
Origin 6.0/FFT.OTW
Origin 6.0/FFTPLOT.OTP
Origin 6.0/FFTPOWER.OTP
Origin 6.0/FFTTOOL.OGS// Purpose: Modularized Code for adding and arranging layers
[MenuInit]
	if(exist(%H)==2)
	{
		if(run.section(,WksInit)==0)
		{
			hw=dialog.domodal(Tools,FFTTool);
			return 0;
		}
	}
	if(exist(%H)==3)
	{
		if(run.section(,GraphInit)==0)
		{
			dialog.domodal(Tools,FFTTool);
			return 0;
		}
	}
	
[WksInit]	
	FFT.reset();
	fftdt=1.0;
	if(wks.iscolsel()<1||wks.iscolsel()>3)
	{
		type -b $FFT.SelcRang;
		return 1;
	}
	loop(ii,0,wks.iscolsel()-1)
	{
		colnum=wks.c1+%(%H,@O,ii);
		coltype=wks.col$(colnum).type;
		if(coltype==2||coltype==3||coltype==5||coltype==6||coltype==7)
		{
			type -b $FFT.SelcRang;
			return 1;
		}
	}
	switch (wks.iscolsel())
	{
	case 1:
		if(wks.col$(wks.c1).type==4)
		{
			type -b $FFT.SelcRang;		//If selected column is X, type Error message
			return 1;
		}
		else
		{
			%M=%(%H,wks.c1);
			run.section(,FFTSearchForX);
			%N="";			//Set imaginary to null
			FFT.real=1;
		}
		break;
	case 2:
		if(wks.col$(wks.c1).type==4 && wks.col$(wks.c1+%(%H,@O,1)).type==4)
		{
			type -b $FFT.SelcRang;		//If both columns are X, type Error message
			return 1;
		}
		if(wks.col$(wks.c1).type==1)
		{
			%M=%(%H,wks.c1);		//Set first column to real
			if(wks.col$(wks.c1+%(%H,@O,1)).type==1)
			{
				%N=%(%H,wks.c1+%(%H,@O,1));	//If second colum is Y, set it to imaginary
				fft.real=0;
				run.section(,FFTSearchForX);
			}
			else
			{		
				%O=%(%H,wks.c1+%(%H,@O,1));	//If second colum is X, set it to time
				%N="";				//Set imaginary to null
				fft.real=1;
			}
		}
		else
		{
			%O=%(%H,wks.c1);		//First column selected is X and set to Time
			%M=%(%H,wks.c1+%(%H,@O,1));	//Second column selected is Y and set to Real
			%N="";				//Set imaginary to null
			fft.real=1;
		}
		break;
	case 3:	
		NumX=0;
		for(ii=0;ii<3;ii++)
		{
			if(wks.col$(wks.c1+%(%H,@O,ii)).type==4)
			NumX++;
		}
		if(NumX!=1) 
		{
			type -b $FFT.SelcRang;
			return 1;
		}
		//Search for the X column
		if(wks.col$(wks.c1).type==4)
		{
			%O=%(%H,wks.c1);		//First column selected is X and set to Time
			%M=%(%H,wks.c1+%(%H,@O,1));	//Second column selected is Y and set to Real
			%N=%(%H,wks.c1+%(%H,@O,2));	//Third column selected is Y and set to Imaginary
		}			
		if(wks.col$(wks.c1+%(%H,@O,1)).type==4)
		{
			%O=%(%H,wks.c1+%(%H,@O,1));	//Second column selected is X and set to Time
			%M=%(%H,wks.c1);		//First column selected is Y and set to Real
			%N=%(%H,wks.c1+%(%H,@O,2));	//Third column selected is Y and set to Imaginary
		}			
		if(wks.col$(wks.c1+%(%H,@O,2)).type==4)
		{
			%O=%(%H,wks.c1+%(%H,@O,2));	//Third column selected is X and set to Time
			%M=%(%H,wks.c1);		//First column selected is Y and set to Imaginary
			%N=%(%H,wks.c1+%(%H,@O,1));	//Second column selected is Y and set to Real
		}			
		FFT.real=0;
		break;		
	}
	delete -v colnum;
	delete -v coltype;
	delete -v NumX;
	run.section(,FFTdatasets); 
	run.section(,FFTCheckres);
[GraphInit]
	fft.reset();
	fft.forward.Realdata$ = %C;
	%O = xof(%C);
	if(%[%O,'_']=="")
	{
		%O="";
		get %C -i fftdt;
		fft.forward.tdelta=fftdt;
	}
	fft.forward.timedata$ = %O;
	
	fft.forward=1;
	fft.real=1;
	if(fft.chkres())
		type -b $FFT.badResolution;
	i1=fft.chkres.i1;
	i2=fft.chkres.i2;
	return 0;
[Tab.Operation.Init]
	FFTTool!Tab.Operation.Forward.choice=1;
	FFTTool!Tab.Operation.Amplitude.choice=1;
[Tab.Settings.Init]
	if(exist(%H)==2)
	{
		FFTTool!Tab.Settings.Sampling$=%O;
		FFTTool!Tab.Settings.Real$=%M;
		FFTTool!Tab.Settings.Imaginary$=%N;
	 	if( %O != "")
	 	{
	 			FFTTool!Tab.Settings.SampInt.v1=FFT.forward.tdelta;
	 	}
	 	else
	 	{
	 		FFTTool!Tab.Settings.SampInt.v1=fftdt;	
	 	}
		return 0;
	}
	if(exist(%H)==3)
	{
	 	FFTTool!Tab.Settings.Sampling$=%O;
		FFTTool!Tab.Settings.Real$=%C;
		FFTTool!Tab.Settings.Imaginary$="";
	 	FFTTool!Tab.Settings.SampInt.v1=fft.forward.tdelta;	
		FFTTool!Tab.Settings.WinMethod.choice=fft.windowing;
		FFTTool!Tab.Settings.NormAmp=fft.normalize;
		FFTTool!Tab.Settings.Shift=fft.shifted;
		FFTTool!Tab.Settings.Unwrap=fft.unwrap;
	}
[FFTSearchForX]
	if hasx(%(%H,wks.c1))
		%O=xof(%(%H,Wks.c1));
	else
	{
		%O="";
		get %(%H,Wks.c1) -i fftdt;
	}
[FFTdatasets]
	fft.forward.timedata$=%O;
	fft.forward.realdata$=%M;
	fft.forward.imagdata$=%N;
[FFTCheckres]
	if(fft.chkres())
		type -b $FFT.badResolution;
 i1=fft.chkres.i1;
 i2=fft.chkres.i2;
 
[Tab.Operation.OK.clicked]
	run.section(,FFTsetting);
	switch(FFTTool!Tab.Operation.Forward.choice)
	{
		case 1:
			FFT.forward =1;
			run.section(,FFTforward);
			break;
		case 2:
			FFT.forward=0;
			run.section(,FFTBackward);
			break;
	};
	run.section(,FFTplotting);
	run.section(,FFTreportSize);
	run.section(,FFTcleanUp); 
	dialog.close(tools,ffttool);
[Tab.Operation.Cancel.clicked]
	dialog.close(tools,ffttool);
[FFTsetting]
	fft.windowing=FFTTool!Tab.Settings.WinMethod.choice;
	fft.normalize=FFTTool!Tab.Settings.NormAmp;
	fft.shifted=FFTTool!Tab.Settings.Shift;
	fft.unwrap=FFTTool!Tab.Settings.Unwrap;
	fft.convention=FFTTool!Tab.Settings.PhaseFact.choice-1;			//fft.convention=0 for EE as in Origin 5.0 and 1 for Science
	return 0;
//////////////////////////////////////////////////////////////////////
//
// Forward FFT
//
///////////////////////////////////////////////////////////////////////
[FFTForward]
	FFT.forward.tdelta = FFTTool!Tab.Settings.SampInt.v1;
	fft.forward.timedata$=FFTTool!Tab.Settings.Sampling$;
	fft.forward.realdata$=FFTTool!Tab.Settings.Real$;
	fft.forward.imagdata$=FFTTool!Tab.Settings.Imaginary$;
 if( %O != "")
 	{
 		if(FFT.forward.tdelta==0.0)
 		{
 			type -b $fft.zerosample;
 			return;
 		}
 	}
	GetEnumWks FFT;
	%W=%H;
	fft.output.samplingdata$=%H_freq;
	run.section(,FFToutputDataset);
	fft.forward(i1,i2);
	
	switch(FFTTool!Tab.Operation.Amplitude.choice)
	{
		case 1:
			GetEnumWin FFTPlot;
			break;
		case 2:
			GetEnumWin FFTPower;
			break;
	}; 
[FFToutputDataset]
	fft.output.Realdata$=%H_real;
	fft.output.Imagdata$=%H_imag;
	fft.output.ampdata$=%H_r;
	fft.output.phasedata$=%H_phi;
	fft.output.powerdata$=%H_power;
//////////////////////////////////////////////////////////////////////
//
// Backward FFT
//
///////////////////////////////////////////////////////////////////////
[FFTBackward]
	fft.forward.tdelta=1.0;
	fft.forward.timedata$="";
	fft.forward.realdata$="";
	fft.forward.imagdata$="";
	
	fft.backward.fdelta = FFTTool!Tab.Settings.SampInt.v1;
	fft.backward.freqdata$=FFTTool!Tab.Settings.Sampling$;
	fft.backward.realdata$=FFTTool!Tab.Settings.Real$;
	fft.backward.imagdata$=FFTTool!Tab.Settings.Imaginary$;
	if( %O != "")
 	{
 		if(FFT.backward.fdelta==0.0)
 		{
 			type -b $fft.zerosample;
 			return;
 		}
 	}
	/* Get Enum Named Wks */
	getenumwks IFFT;
	%W=%H;
	fft.output.samplingdata$=%H_time;
	run.section(,FFToutputDataset);
	fft.backward(i1,i2);
	
	switch(FFTTool!Tab.Operation.Amplitude.choice)
	{
		case 1:
			GetEnumWin IFFTPlot;
			break;
		case 2:
			GetEnumWin IFFTPowe;
			break;
	};
[FFTplotting]
	layer -s 1;
	/* use global variable FixedFrom */
	FixedFrom=0;
	if( (fft.real) || (fft.shifted==0) ) 
		FixedFrom=1;
 
	layer -s 2;layer -i200 %(%W,5);
	switch(FFTTool!Tab.Operation.Amplitude.choice)
	{
		case 1:
			layer -s 1;layer -i200 %(%W,4);
			break;
		case 2:
			layer -s 1;layer -i200 %(%W,6);
			break;
	};
	
	/* CPY v3.73 set rescale type depending on real or complex */
	//TC commented folowing block
	/*
	doc -e -lw 
	{
		if (FixedFrom) 
		{
			layer.x.rescale=4;
			X1=0;
			layer -a;
		} 
		else
		{ 
			layer.x.rescale=2;
			layer -a;
		}
	}; 
	*/ 
	//TC: the two X-axes are linked
	if (FixedFrom) 
	{
		layer.x.rescale=4;
		X1=0;
	} 
	else
	{ 
		layer.x.rescale=2;
	}
	layer -s 1; layer -a;
	layer -s 2; layer -a;
	return 0;
 
[FFTreportSize]
	SaveRedirection=type.Redirection(16,3);	// SDB 1/7/99 v6.0148 REPORT_TO_OUTPUTLOG
	type.BeginResults();		/// RKM 12/10/98 v6.0141 REPORT_TO_OUTPUTLOG
	type $Wksanaly.ReportSize;
	type.EndResults();
	type.Redirection=SaveRedirection; // restore previous redirection.
	delete -v SaveRedirection;
[FFTcleanUp]
	dialog.close(ffttool);
	del -v %M; del -v %N; del -v %O; del -v %W;
	del -v FixedFrom; del -v i1; del -v i2; del -v interval;
	return 0;
	//end NEW_FFT
Origin 6.0/FFTTOOL.OPS[VERSION]
Version=1.000000
[Tab.Operation.PREPARE]
Tab.Operation.Forward.KIND$=RADIOBUTTON;
Tab.Operation.Backward.KIND$=RADIOBUTTON;
Tab.Operation.Amplitude.KIND$=RADIOBUTTON;
Tab.Operation.Power.KIND$=RADIOBUTTON;
Tab.Operation.Cancel.KIND$=BUTTON;
Tab.Operation.OK.KIND$=BUTTON;
Tab.Operation.Forward.V1$=Forward;
Tab.Operation.Forward.V2$=Backward;
Tab.Operation.Forward.SHOW=1;
Tab.Operation.Forward.ENABLE=1;
Tab.Operation.Forward=1;
Tab.Operation.Forward$="";
Tab.Operation.Backward.V1$=Backward;
Tab.Operation.Backward.SHOW=1;
Tab.Operation.Backward.ENABLE=1;
Tab.Operation.Backward=0;
Tab.Operation.Backward$="";
Tab.Operation.Amplitude.V1$=Amplitude;
Tab.Operation.Amplitude.V2$=Power;
Tab.Operation.Amplitude.SHOW=1;
Tab.Operation.Amplitude.ENABLE=1;
Tab.Operation.Amplitude=1;
Tab.Operation.Amplitude$="";
Tab.Operation.Power.V1$=Power;
Tab.Operation.Power.SHOW=1;
Tab.Operation.Power.ENABLE=1;
Tab.Operation.Power=0;
Tab.Operation.Power$="";
Tab.Operation.Cancel.SHOW=1;
Tab.Operation.Cancel.ENABLE=1;
Tab.Operation.Cancel$=Cancel;
Tab.Operation.OK.SHOW=1;
Tab.Operation.OK.ENABLE=1;
Tab.Operation.OK$=OK;
[Tab.Settings.PREPARE]
Tab.Settings.Sampling.KIND$=EDITBOX;
Tab.Settings.Real.KIND$=EDITBOX;
Tab.Settings.Imaginary.KIND$=EDITBOX;
Tab.Settings.SampInt.KIND$=EDITBOX;
Tab.Settings.WinMethod.KIND$=RADIOBUTTON;
Tab.Settings.Welch.KIND$=RADIOBUTTON;
Tab.Settings.Hanning.KIND$=RADIOBUTTON;
Tab.Settings.Hamming.KIND$=RADIOBUTTON;
Tab.Settings.Blackman.KIND$=RADIOBUTTON;
Tab.Settings.NormAmp.KIND$=CHECKBOX;
Tab.Settings.Shift.KIND$=CHECKBOX;
Tab.Settings.Unwrap.KIND$=CHECKBOX;
Tab.Settings.PhaseFact.KIND$=RADIOBUTTON;
Tab.Settings.Science.KIND$=RADIOBUTTON;
Tab.Settings.Sampling.SHOW=1;
Tab.Settings.Sampling.ENABLE=1;
Tab.Settings.Sampling$=Data1_A;
Tab.Settings.Real.SHOW=1;
Tab.Settings.Real.ENABLE=1;
Tab.Settings.Real$=Data1_B;
Tab.Settings.Imaginary.SHOW=1;
Tab.Settings.Imaginary.ENABLE=1;
Tab.Settings.Imaginary$="";
Tab.Settings.SampInt.SHOW=1;
Tab.Settings.SampInt.ENABLE=1;
Tab.Settings.SampInt$=1;
Tab.Settings.WinMethod.V1$=Rectangular;
Tab.Settings.WinMethod.V2$=Welch;
Tab.Settings.WinMethod.V3$=Hanning;
Tab.Settings.WinMethod.V4$=Hamming;
Tab.Settings.WinMethod.V5$=Blackman;
Tab.Settings.WinMethod.SHOW=1;
Tab.Settings.WinMethod.ENABLE=1;
Tab.Settings.WinMethod=0;
Tab.Settings.WinMethod$="";
Tab.Settings.Welch.V1$=Welch;
Tab.Settings.Welch.V2$=Hanning;
Tab.Settings.Welch.V3$=Hamming;
Tab.Settings.Welch.V4$=Blackman;
Tab.Settings.Welch.SHOW=1;
Tab.Settings.Welch.ENABLE=1;
Tab.Settings.Welch=0;
Tab.Settings.Welch$="";
Tab.Settings.Hanning.V1$=Hanning;
Tab.Settings.Hanning.V2$=Hamming;
Tab.Settings.Hanning.V3$=Blackman;
Tab.Settings.Hanning.SHOW=1;
Tab.Settings.Hanning.ENABLE=1;
Tab.Settings.Hanning=0;
Tab.Settings.Hanning$="";
Tab.Settings.Hamming.V1$=Hamming;
Tab.Settings.Hamming.V2$=Blackman;
Tab.Settings.Hamming.SHOW=1;
Tab.Settings.Hamming.ENABLE=1;
Tab.Settings.Hamming=0;
Tab.Settings.Hamming$="";
Tab.Settings.Blackman.V1$=Blackman;
Tab.Settings.Blackman.SHOW=1;
Tab.Settings.Blackman.ENABLE=1;
Tab.Settings.Blackman=0;
Tab.Settings.Blackman$="";
Tab.Settings.NormAmp.SHOW=1;
Tab.Settings.NormAmp.ENABLE=1;
Tab.Settings.NormAmp=0;
Tab.Settings.NormAmp$=Normalize Amplitude;
Tab.Settings.Shift.SHOW=1;
Tab.Settings.Shift.ENABLE=1;
Tab.Settings.Shift=0;
Tab.Settings.Shift$=Shift Results;
Tab.Settings.Unwrap.SHOW=1;
Tab.Settings.Unwrap.ENABLE=1;
Tab.Settings.Unwrap=0;
Tab.Settings.Unwrap$=Unwrap Phase;
Tab.Settings.PhaseFact.V1$=-1 (Electrical Engineering);
Tab.Settings.PhaseFact.V2$=+1 (Science);
Tab.Settings.PhaseFact.SHOW=1;
Tab.Settings.PhaseFact.ENABLE=1;
Tab.Settings.PhaseFact=0;
Tab.Settings.PhaseFact$="";
Tab.Settings.Science.V1$=+1 (Science);
Tab.Settings.Science.SHOW=1;
Tab.Settings.Science.ENABLE=1;
Tab.Settings.Science=0;
Tab.Settings.Science$="";
[Tab.Settings.SET]
Tab.Settings.WinMethod=1;
Tab.Settings.NormAmp=1;
Tab.Settings.Shift=1;
Tab.Settings.Unwrap=1;
Tab.Settings.PhaseFact=1;
Origin 6.0/FFT_MAIN.OGO
Origin 6.0/FGROUP.OCS
Origin 6.0/FGROUP.OQS
Origin 6.0/FILE.OGS//**********************************************
// Filename:	FILE.OGS
// Creation:	8/16/95 by CP
// Purpose:	File menu scripts
//**********************************************
// Modification Log:
// 			10/10/95 JMP	Set comment box ON for FILE:OPEN and FILE:SAVE AS
//			10/10/95 JMP	Set comment box OFF for FILE:TEMPLATE:SAVE AS
//			10/12/95 JMP	Add script for FILE:TEMPLATE:OPEN Worksheet/Plot/Matrix
//			10/12/95 JMP	Replace script for FILE:IMPORT:ASCII to use FDLOG properties
//			10/24/95 JMP	Add section for Windows MetaFile
//			10/24/95 JMP	Use FDLOG methods and properties to explicitly control dialog boxes
//			DSB v3.85 11/8/95 SAVE_MATRIX Add open matrix window option NOT ACTUALLY DONE YET
//			QZCao, v3.98, 12/26/95, OLE_SUPPORT, Support ole
//			CPY v4.00 1/25/96 LONG_FILENAMES, add quotes to %A
//			03/05/96 JMP	CHECK_MULTICELL_SELECTION	ASCII export enables SELECTION only when wks.sel>1
//			CPY v4.11 b759 ENABLE_SAVE_MATRIX, remove marks on SAVE_MATRIX and enable David's change
//			ML v4.11 7/15/96 B1051 GET_FILE_NAME
//			JMP V4.11 7/18/96 EXCEL32DBASE32
//			RKM v4.18 7/26/96 commented out saving as 2.8
//			RKM for v5.0 added Close and Exit sections
//			11 Oct '96 grd Added binary import section
//			11/18/96 CPY	Add Excel Open option
//			11/25/96 JMP v4.13 added ImportOptions, ImportASCIIOptions, LastImport sections
//			JLIU	v4.14 12/6/96 INIT_OPTION_PROPERTY
//			CPY 12/16/96 SCRIPT_ACCESS_EXCEL_OLE 
//			HYYU 1/124/97	CHANGE_ODBCDLL_NAME
//			RKM 2/4/97 v4.161 ORG_PROF_MENUS, add menus specific
to Origin Professional
//			ML 2/19/97 SET_CORRECT_PATH_FROM_PAGE
//			JMP v4.95 	02/28/97 Use_Option_Path
//			JMP v4.961 	03/04/97 Use_New_MultiOpen_Dialog
//			JMP v4.962	03/05/97 SETDEFAULT_SETS_PATH_AND_DEFAULT
//			HYYU v4.962	4/8/97 CONSIDER_CANCEL_FOR_ODBC
//			JMP v4.978	4/25/97 USE_TRACKING_OF SINGLE EXTENSION TYPES
//			JMP v4.978	4/27/97 SYSTEM.EXCEL( )
//			HYYU v4.988	5/29/97 ODBC messabe
//			JMP v4.9983	7/01/97	EXPORT_LABELS Export labels independently of CSV
//			JMP v4.9984	7/02/97 READ_ONLY_OPEN Use Read only property to open as read only
//			HYYU v4.9985	7/9/97 t2646 KEEP_COLUMN_SPECIFICATIONS_FOR_ODBC_INPUT
//			EJP v5.003 08-01-97 UPDATE_APP_DATA_PATH
//			DVT	v6.011	t3643	4/7/98	ODBC_IMPORT_SQL
//			RKM v6.045	1/4/99 MULTI_IMPORT_WKS
//			CPY v6.0252 t6746 1/26/00 MULTI_OPEN_SUPPORT_BY_ROW_AND_BY_COL_APPEND
//**********************************************
//	Rules:		For using FDLOG.OPEN( ) do not specify path beforehand, it will be handled automatically
//			If path is specified beforehand, then the automatic path is ignored
//
//			For using FDLOG.SAVE( ) be sure to set default filename using .Default$ or .SetDefault(StringVar)
///////////////////////////////////////////////////
[Init]
	FDLOG.DlgName$="";
	FDLOG.OptionDLG$="";		//Reset button to off
	FDLOG.checkname$="";		//Reset check box to null
	FDLOG.ShowComment=0;		//close the comments box
	FDLOG.CheckStatus=0;		//Set checkbox to off
	FDLOG.default$="";		//Set contents of "File Name" edit box to nothing
	//------------------- CPY v6.0252 t6746 1/26/00 MULTI_OPEN_SUPPORT_BY_ROW_AND_BY_COL_APPEND
	FDLOG.MultiOpen.ComboName$="";
	if(FDLOG.MultiOpen.ComboSel<1 || FDLOG.MultiOpen.ComboSel>3)
		FDLOG.MultiOpen.ComboSel = 2;// import into new columns
	//------------------- end t6746	
	return 0;
///////////////////////////////////////////////////
[Open]
	run.section(,Init);
	//QZCao, v3.98, 12/26/95, OLE_SUPPORT, Support ole
	if(page.oleAskUpdate(Open)==1)
		return	0;
	FDLOG.UseGroup(Origin);
	
	FDLOG.ShowComment=1;	// open the comments box
	if(FDLOG.Open(A))
		return 1;
	%B=FDLOG.path$;
	switch(FDLOG.DefType)
	{
	case 1 to 2:
		//JMP v4.9984	7/02/97 READ_ONLY_OPEN
		if (FDLOG.AsReadOnly)
			doc -oR %B%A;
		else
			doc -open %B%A;
		break;
	case 7:
		ed.open(%B%A);
		break;
	default:
		doc -Append %B%A;
	}
	return 0;
///////////////////////////////////////////////////
[OpenExcel]
	run.section(,Init);
	FDLOG.UseGroup(Excel);
	//QZCao, v3.98, 12/26/95, OLE_SUPPORT, Support ole
	if(page.oleAskUpdate(Open)==1)
		return	0;
	if(FDLOG.Open(A))
		return 1;
	%B=FDLOG.path$;
	//JMP v4.9984	7/02/97 READ_ONLY_OPEN
	if (FDLOG.AsReadOnly)
		doc -aR %B%A;
	else
		doc -append %B%A;
	return 0;
///////////////////////////////////////////////////
[AppendProject]
	run.section(,Init);
	FDLOG.UseGroup(Origin);
	FDLOG.UseType("OPJ ORG");
	FDLOG.ShowComment=1;			// open the comments box
	if(FDLOG.Open(A))
		return 1;
	%B=FDLOG.path$;
	doc -Append %B%A;
	return 0;
///////////////////////////////////////////////////
[SaveProject]
	if(doc.isNew)
		run.section(,SaveProjectAs);
	else
	{
		//JMP v4.978	4/27/97 SYSTEM.EXCEL( )
		if (system.excel.SaveAsExcel==1 && system.excel()==0)
			return;
		save;
	}
	return 0;
///////////////////////////////////////////////////
[SaveProjectAs]
	//JMP v4.978	4/27/97 SYSTEM.EXCEL( )
	if ((system.excel.SaveAsExcel==1 || system.excel.SaveAsExcel==2) && system.excel()==0)
		return 1;
	run.section(,Init);
	//QZCao, v3.98, 12/26/95, OLE_SUPPORT, Support ole
	if(page.oleAskUpdate(SaveAs))
		return	0;
	FDLOG.default$=%G;
	///CPY 12/16/96 SCRIPT_ACCESS_EXCEL_OLE
	FDLOG.UseGroup(Origin);
	if(doc.OleInfo) /// for OLE embedding or linking
	{
		FDLOG.UseType("OGG")		
	}
	else
	{
		FDLOG.UseType("OPJ ORG");
	}
	FDLOG.ShowComment=1;	// open the comments box
	if(%X!="")
		FDLOG.path$=%X;
	if(FDLOG.SaveAs(A))
		return 1;
	%B=fdlog.path$;
	//QZCao, v3.98, 12/26/95, OLE_SUPPORT, Support ole
	page.oleUpdate(SaveAs);
	if(FDLOG.DefType==2) 
		save -DI3 "%B%A";
	else
		save -DI1 "%B%A";
	///
	return 0;
///////////////////////////////////////////////////
[Close]
	document -new Untitled;
///////////////////////////////////////////////////////
///QZCao, v3.98, 12/26/95, OLE_SUPPORT, Support ole
[OleUpdateEmbedded]
	page.oleaskupdate(Update);
///////////////////////////////////////////////////////
[GetWinType]
	// set %A to template name
	// set %B to Window template extension
	// set i to win type
	/// RB 5/24/99 t6477 6.0205 PUT_TEMPLATE_FILE_EXTENSION_TO_GLOBAL_STRING_%B
	win -GE; // set %A and %B
	i=exist(%H,10);
	return 0;
[SaveTemplate]
	run.section(,GetWinType); // update %B
	///JMP v4.95 02/28/97 Use_Option_Path
	type -v -c [Save %H as %A.%B?];
	save -T %H %A;
	return 0;
[SaveAsTemplate]
	run.section(,Init);
	run.section(,GetWinType); // update %B
	win -G; // set %A
	FDLOG.UseGroup(Template);
	switch(i)
	{
	case 2:
		FDLOG.UseType("OTW");
		break;
	case 3:
		FDLOG.UseType("OTP");
		break;
	case 5:
		FDLOG.UseType("OTM");
		break;
	default:
		return 1;
	};
	FDLOG.Default$=%A;
	if(FDLOG.SaveAs(A))
		return 1;
	%B=FDLOG.path$;
	save -T %H %B%A;
	return 0;
[OpenAnyTemplate]
	FDLOG.UseGroup(Template);
	run.section(,OpenTemplate);
	
[OpenTemplate]
	run.section(,Init);
	if(FDLOG.Open(A))
		return 1;
	%B=FDLOG.path$;
	doc -t %B%A;
	return 0;
///////////////////////////////////////////////////
[SaveWindow]
	run.section(,Init);
	i=exist(%H,10);
	switch(i)
	{
	case 2:
		///CPY 12/16/96 SCRIPT_ACCESS_EXCEL_OLE
		//FDLOG.Type1$=$DialogBox.SaveWksWindow;
		if(page.ExtInfo)
			FDLOG.UseGroup(Excel);
		else
		{
			FDLOG.UseGroup(Origin);
			FDLOG.UseType("OGW");
		}
		break;
	case 3:
		FDLOG.UseGroup(Origin);
		FDLOG.UseType("OGG");
		break;
	case 5:
		FDLOG.UseGroup(Origin);
		FDLOG.UseType("OGM");
		break;
	default:
		return 1;
	};
	%A=page.filepath$;
	if ("%A"!="")
		FDLOG.path$="%A";
	%B=page.filename$;
	if ("%B"=="")
		%B=%H;				//Use window name when no file name
	FDLOG.default$="%B";
	if(FDLOG.SaveAs(A))
		return 1;
	%B=FDLOG.Path$;
	save -i %B%A; 				// save independent window
	return 0;
/////////////////////////////////////////////////////////
[ImportOptions]
	worksheet -edit Import;
//////////////////////////////////////////////////////////
[ImportASCIIOptions]
	run.section(,Init);
	worksheet -edit Ascii;
	// ML v3.821 8/22/95
	// this was taken from 3.7842:
	if (i==1)
	{
		FDLOG.UseGroup(Ascii);
		FDLOG.DlgName$=$DialogBox.ImportTitle;
		if(FDLOG.Open(A))
			return 1;
		%B=fdlog.path$;
		open -W %B%A;
	}
	else
	 type -b $general.TemplSaved;
	return 0;
/////////////////////////////////////////////////////////
[SingleImport]
	run.section(,ImportAscii);
////////////////////////////////////////////////////////
/// RKM: Multi Import for Wks MULTI_IMPORT_WKS
////////////////////////////////////////////////////////
[MultiImportWKS]
	run.section(,Init);
	if(FDLOG.multiopen.sort==0)
	{
		//---------- CPY v6.0252 t6746 1/26/00 MULTI_OPEN_SUPPORT_BY_ROW_AND_BY_COL_APPEND
		// we are going to use combo, so 
		if(FDLOG.MultiOpen.ComboSel==1)
			FDLOG.multiopen.colview=14;// Filename, template, size, modied
		else
			FDLOG.multiopen.colview=12;	//By default, display Filename, Size and Modified
		//---------- end t6746
	}
	else
		FDLOG.multiopen.colview=0;	//Only display Filename
	FDLOG.UseGroup(Ascii);	
	FDLOG.Message$="";
	FDLOG.MultiOpen.ComboName$=$File.WKSImportAsComboTitle;
	FDLOG.MultiOpen.ComboList$=$File.WKSImportAsComboList;
	FDLOG.MultiOpen.ColToggle=2;	//Enable the Template column toggling with the checkbox
	
	if (FDLOG.multiopen()==0/0)
		return 1;
	// still need to wait for Irene to fix the index problem, right now it is 0,1,2, so later need to change this
	FDLOG.CheckStatus = FDLOG.MultiOpen.ComboSel==1?0:1;

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando