#**************************************************************************
#  Decke Randeinfassung  1 Seite
#**************************************************************************
save_fsm();
# Integervariablen
name(i60,"xanz_l");		xanz_l = 2;    # Anzahl A1-Laengseisen
name(i62,"xd_l");		xd_l   = 10;   # Durchmesser A1-Laengseisen 
name(i66,"xd_b");		xd_b   = 8;    # Durchmesser A3 Stecker
name(i67,"xumfa");		xumfa  = 0;	# Umfahrungssinn 0=math.Positiv(Gegenuhrteigersinn)  1=math.Negativ
# Realvariablen 
name(r60,"xbetde");		xbetde  = 0.03 * WCOIUF;    # Variable fuer Betondeckung allgemein
name(r61,"xhoch");		xhoch   = 2.50 * WCOIUF;    # Hoehe 
name(r62,"xabs_b");		xabs_b   = 0.20 * WCOIUF;   #  Abstand Stecker
name(r64,"xueb_st");	xueb_st  = 0.40 * WCOIUF;   # Stecker Länge oben/unten
name(r65,"xwi_k");	                                # Jeweiliger Winkel entlang Kante 1-4
name(r66,"xwi_a");	                                # Jeweiliger senkrechter Winkel (nach aussen)entlang Kante 1-4
name(r67,"xlen_k");	                                # Jeweilige Kantenlaenge

# Punktvariablen
name(p60,"xecka"); 
name(p61,"xeckb"); 
name(p62,"xeckc"); 
name(p63,"xeckd"); 
# Textvariablen

name(s60,"txformat"); #Dialog Formatanweisung
  
sbwecke(1001,xecka,0);
sbwecke(1002,xeckb,0);
sbwecke(1003,xeckc,0);

xhoch = 0.2 * WCOIUF; # Default Deckenhöhe
      
# Umfahrungssinn wg. drehen der Eisen 
p1 = xecka;
p2 = xeckb;
p3 = xeckc;
CALC_AREA(1,3,r1,p4,xumfa);


		
string_copy(txformat,"-20.20");
dlg_init(): #Init new Dialog
TRANSLATE_TEXT(s1,0,"Deckenhöhe",txformat);					dlg_editbox(1,3,s1,xhoch,10);
TRANSLATE_TEXT(s1,0,"Betondeckung",txformat);				dlg_editbox(1,4,s1,xbetde,10);
TRANSLATE_TEXT(s1,0,"Abstand Stecker",txformat);			dlg_editbox(1,6,s1,xabs_b,10);
TRANSLATE_TEXT(s1,0,"Durchmesser Stecker",txformat);		dlg_editbox(1,7,s1,xd_b,10);
TRANSLATE_TEXT(s1,0,"Überstand Stecker",txformat);			dlg_editbox(1,8,s1,xueb_st,10);
	
TRANSLATE_TEXT(s1,0,"Anzahl Längseisen",txformat);			dlg_editbox(1,10,s1,xanz_l,10);
TRANSLATE_TEXT(s1,0,"Durchmesser Längseisen",txformat);		dlg_editbox(1,11,s1,xd_l,10);
		
TRANSLATE_TEXT(s1,0,"Decke",txformat); 
dlg_start(s1,i5); # 0= OK;  -1=Cancel;  > 0 =Button Number
if( i5 < 0) then exit;
	   
POSNRZEI=2;     VERTEILZEI=0;
VTLABST=0.5*WCOIUF;  
VLPOSZEI = 0;     ANSICHT=1;
HAKENVORN= 0;	  HAKENHINT=0;
POSANZAHL= 1;     BTANZAHL=1;     BWLAGE=1;
TEXTABST = 0.0;
STABSPIEG= 0;     STABKREIS=0;  
BOGEN    = 0;     POSNRLI=0;
STABZEIFAK= 1.0;  

	    
p1 = xecka;	p2 = xeckb; end;
if(xumfa = 0) then 	begin
	p3 = p1;
	p1 = p2;
	p2 = p3;
	end;
distance(p1,p2,xlen_k)
angle(p1,p2,xwi_k);
r1 = PI /2.0;
xwi_a = xwi_k - r1;
		
r2 = xwi_k * 180 / PI;
if(r2 < 0) then r2 = r2 + 360;
if(r2 > 360) then r2 = r2 - 360;
if(  (r2 > 90) AND (r2 < 270) )then 
	begin
	r2 = r2  - 180.0;
	end;
POSDREWI=r2;
		
#Stecker
BWFORM("A3");
DURCHM   = xd_b;
ABSTAND  = xabs_b;
PARA_A = xueb_st;
r1 = 2.0 * xbetde;
PARA_B = xhoch  - r1;
PARA_A = xueb_st;
PARA_C = xueb_st;
ANZAHL  = (xlen_k / ABSTAND) +1;
stabmod();
STABECKE=2;
STABEIWI=90.0;     STABEIWI_Y=00.0;     STABEIWI_X=0.0;
VERLEGEWINKEL   = xwi_k * 180.0/PI;
VERLEGEWINKEL_Z = 0.0;
STABANF=p1;
r1 = (anzahl-1) * abstand;
r1 = r1 - xlen_k;
r1 = r1 / -2.0;
stabanf.z = stabanf.z  - xbetde ;
polar(stabanf,xwi_k,r1,stabanf);
polar(stabanf,xwi_a,xbetde,stabanf);
LAGEPOSNR=p1;
polar(LAGEPOSNR,xwi_a,-0.5*WCOIUF,LAGEPOSNR);
polar(LAGEPOSNR,xwi_k,xlen_k/2.0,LAGEPOSNR);
STABZEI  = 1;
POSNRZEI=2;  
stabgeo();
		
#Laengs am Rand
BWFORM("A1");
DURCHM   = xd_l;
r2 = 2.0 * xbetde;
r3 = xd_b / 1000.0 * WCOIUF;
r4 = xd_l / 1000.0 * WCOIUF;
r5 = r3 + r4;
r1 = xhoch - (r2+2.0*r5);
ANZAHL  = xanz_l;
if(ANZAHL < 2)then ANZAHL = 2;
ABSTAND  = r1 / (anzahl-1);
PARA_A = xlen_k - 2.0 * xbetde;
		
stabmod();
STABECKE=1;
ANSICHT=2;
r1 = xwi_k * 180.0/PI;
STABEIWI= r1 ; 
STABEIWI_Y=00.0;     STABEIWI_X=0;
VERLEGEWINKEL   = 0.0;
STABANF=p1;
STABZEI  = 5:	
polar(stabanf,xwi_k,xbetde,stabanf);
polar(stabanf,xwi_a,xbetde*1.5+r5,stabanf);
		
POSNRZEI=3; 
LAGEPOSNR=p1;
polar(LAGEPOSNR,xwi_a,-0.4*WCOIUF,LAGEPOSNR);
stabgeo();

	
restore_fsm();
end.
