PROCEDURE faltkarte; {*CAD Uebung Vectorscript, BaTeamIN*}

{*Konzept Sanduhr ( vereinfacht ) : 2 Volumen, eine Aussen und andere Innen. Aussere Volumen als Box. Innere Volumen ist am kleinsten in der Mitte *}

VAR
	
	pageWidth:	REAL;
	pageHeight:	REAL;
	pageFold: REAL;
	distance: REAL;		{*zur Kante*}
	objectA1: INTEGER;  {*objanzahl( wenn ungerade Zahl, wird kleine Streifen in der Mitte in 2 geteilt) *}
	objectB1: REAL;			{*breite kleine Streifen fürs innere*}
	height: REAL;

PROCEDURE streifen;
	VAR 
		i:INTEGER;

	BEGIN
		FOR i:=1 TO objectA1 DO BEGIN;
			{*Aeusserestreifen*}

{*Reihe auf der horizontalen Linie nach Distance und objectB1*}

			moveto(distance+((i-1)*(3*objectB1)),height);
			lineto(distance+((i-1)*(3*objectB1)),3*height);
			moveto(distance+(2*objectB1)+((i-1)*(3*objectB1)),height);
			lineto(distance+(2*objectB1)+((i-1)*(3*objectB1)),3*height);

		END;

	END;

PROCEDURE streifeninner;
	VAR 
		i:INTEGER;

	BEGIN
		FOR i:=1 TO objectA1/2 DO BEGIN;
	
{*von Links nach Rechst wird es kleiner*}		
			
			{*innerestreifen*}
			moveto(distance+objectB1+((i-1)*(3*objectB1)),height+(i*objectB1));
			lineto(distance+objectB1+((i-1)*(3*objectB1)),3*height-(i*objectB1));

{*von Rechts nach Links wird es kleiner*}

			moveto(pageWidth-distance-objectB1-((i-1)*(3*objectB1)),height+(i*objectB1));
			lineto(pageWidth-distance-objectB1-((i-1)*(3*objectB1)),3*height-(i*objectB1));
			
		END;

	END;

PROCEDURE faltkanten;
	VAR 
		i:INTEGER;	

	BEGIN
		FOR i:=1 TO objectA1/2 DO BEGIN  

{*von Links nach Rechst kleiner*}

			moveto(distance+objectB1+((i-1)*(3*objectB1)),height+(i*objectB1));
			lineto(distance+(2*objectB1)+((i-1)*(3*objectB1)),height+(i*objectB1));
			moveto(distance+objectB1+((i-1)*(3*objectB1)),3*height-(i*objectB1));
			lineto(distance+(2*objectB1)+((i-1)*(3*objectB1)),3*height-(i*objectB1));

{*von Rechts nach Links kleiner*}

			moveto(pageWidth-distance-objectB1-((i-1)*(3*objectB1)),height+(i*objectB1));
			lineto(pageWidth-distance-(2*objectB1)-((i-1)*(3*objectB1)),height+(i*objectB1));

			moveto(pageWidth-distance-objectB1-((i-1)*(3*objectB1)),3*height-(i*objectB1));
			lineto(pageWidth-distance-(2*objectB1)-((i-1)*(3*objectB1)),3*height-(i*objectB1));

		END;
	END;

PROCEDURE faltkanten2;
	VAR 
		i:INTEGER;	

	BEGIN
		FOR i:=1 TO objectA1 DO BEGIN
			moveto(distance+((i-1)*(3*objectB1)),height);
			lineto(distance+(2*objectB1)+((i-1)*(3*objectB1)),height);
			moveto(distance+((i-1)*(3*objectB1)),3*height);
			lineto(distance+(2*objectB1)+((i-1)*(3*objectB1)),3*height);
		END;
	END;

BEGIN

	pageWidth:=ppageWidth;	{*A4 Horizontal. Gedacht für A4. wenn grösser als 890mm werden die kleinen Streifen in der Mitte grösser*}
	pageHeight:=ppageHeight;
	pageFold:= pageHeight/2;
	distance:=pageHeight/8;
	objectA1:=pobjektA1;
	objectB1:=(pageWidth-(2*distance))  /((objectA1*3)-1);
	height:=(pageHeight/4);

	

	
	penPat(2);
	penFore(0,0,55555);
	
	{*A4 horizontal*}

	moveto(0,0);
	lineto(pageWidth,0);
	lineto(pageWidth,pageHeight);
	lineto(0,pageHeight);
	lineto(0,0);

	streifen;

	streifeninner;

	penFore(55555,0,0);
	penPat(-2);

	faltkanten;

	faltkanten2;

	moveto(0,pageFold);
	lineto(PageWidth,pageFold);

	

END;

RUN(faltkarte);