#**************************************************************************
#  Wand Randeinfassung  1 Seite
#**************************************************************************
# überarb. 2021-03-18 LF EIngabemaske und div.

save_fsm();

# Integervariablen
name(i60,"xanz_l");		xanz_l = 3;    # Anzahl A1-Laengseisen
name(i62,"xd_l");		xd_l   = 14;   # 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,"xdick");		xdick   = 0.30 * WCOIUF;    # 
name(r63,"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,"xueb_la");	xueb_la  = 0.0 * WCOIUF;    # Anschluss Laengseisen
name(r66,"xwi_k");	                                # Jeweiliger Winkel entlang Kante 1-4
name(r67,"xwi_a");	                                # Jeweiliger senkrechter Winkel (nach aussen)entlang Kante 1-4
name(r68,"xlen_k");	                                # Jeweilige Kantenlaenge

# Punktvariablen
name(p60,"xecka"); 
name(p61,"xeckb"); 
name(p62,"xeckc"); 
name(p63,"xeckd"); 
# Textvariablen

	name(s60,"txformat"); #Dialog Formatanweisung
  
	TRANSLATE_TEXT(s1,-1,"WCO_SBW","");
	
	#Aufruf aus 3D Bauteilbewehrung->Punkte sind vorgegeben.    
	if(DREIDBAUTEIL = 1) then 
		begin 
		sbwecke(1001,xecka,0);
		sbwecke(1002,xeckb,0);
		sbwecke(1003,xeckc,0);
		sbwecke(1004,xeckd,0);
		xhoch = xeckb.z - xecka.z; 
		distance(xeckb,xeckc,xdick); 
		if(xhoch < 0.0)then xhoch = xhoch * -1.0;
	end;
      
	# Umfahrungssinn wg. drehen der Eisen 
	p1 = xeckb;
	p2 = xeckc;
	p3 = xeckd;
	CALC_AREA(1,3,r1,p4,xumfa);
	
	if (wcoiuf = 1) then	# Anzahl Kommastellen im Dialog
   	s21 = "-8.3";
   	else if (wcoiuf = 100) then
   	s21 = "-8.1";
   	else if (wcoiuf = 1000) then
   	s21 = "-8.0";
   	end;   	   	

    TRANSLATE_TEXT(s1,-1,"WCO_SBW","");	# aktiviert übersetzte Texte aus Datei		
		
	string_copy(txformat,"-30.30");
	
   	dlg_init(): #Init new Dialog
   	
	TRANSLATE_TEXT(s1,6,"Wandstärke","");
	TRANSLATE_TEXT(s3,5,"Wandhöhe","");	
	STRING_COPY(s2,s1);  STRING_CAT(s2,":  "); STRING_CAT(s2,xdick,s21); STRING_CAT(s2,"  ");
	STRING_CAT(s2,s3); STRING_CAT(s2,":  "); STRING_CAT(s2,xhoch,s21);
			dlg_label(1,1,s2,40);	
	
	TRANSLATE_TEXT(s1,1001,"Betondeckung",txformat);				dlg_editbox(1,2,s1,xbetde,10);

	TRANSLATE_TEXT(s2,1002,"Abstand",""); 
	TRANSLATE_TEXT(s3,1005,"Stecker","");	 
	STRING_CAT(s2," "); STRING_CAT(s2,s3); STRING_COPY(s1,""); STRING_CAT(s1,s2,txformat);
		dlg_editbox(1,3,s1,xabs_b,10);

	TRANSLATE_TEXT(s2,1003,"Durchmesser",""); 
	TRANSLATE_TEXT(s3,1005,"Stecker","");	 
	STRING_CAT(s2," "); STRING_CAT(s2,s3); STRING_COPY(s1,""); STRING_CAT(s1,s2,txformat);
		dlg_editbox(1,4,s1,xd_b,10);

	TRANSLATE_TEXT(s3,1005,"ls Stecker",""); 
	STRING_COPY(s2,"ls "); STRING_CAT(s2," "); STRING_CAT(s2,s3); STRING_COPY(s1,""); STRING_CAT(s1,s2,txformat);
		dlg_editbox(1,5,s1,xueb_st,10);		

	TRANSLATE_TEXT(s2,1004,"Anzahl",""); 
	TRANSLATE_TEXT(s3,1006,"Längseisen","");	 
	STRING_CAT(s2," "); STRING_CAT(s2,s3); STRING_COPY(s1,""); STRING_CAT(s1,s2,txformat);
		dlg_editbox(1,6,s1,xanz_l,10);		
		
	TRANSLATE_TEXT(s2,1003,"Durchmesser",""); 
	TRANSLATE_TEXT(s3,1006,"Längseisen","");	 
	STRING_CAT(s2," "); STRING_CAT(s2,s3); STRING_COPY(s1,""); STRING_CAT(s1,s2,txformat);
		dlg_editbox(1,7,s1,xd_l,10);	
	
	TRANSLATE_TEXT(s3,1006,"ls Längseisen",""); 
	STRING_COPY(s2,"ls "); STRING_CAT(s2," "); STRING_CAT(s2,s3); STRING_COPY(s1,""); STRING_CAT(s1,s2,txformat);
		dlg_editbox(1,8,s1,xueb_la,10);	
		
	TRANSLATE_TEXT(s1,28,"Wandende",txformat); 
	dlg_start(s1,i5); # 0= OK;  -1=Cancel;  > 0 =Button Number
	if( i5 < 0) then exit;
	   
	STABZEI  = 1;     POSNRZEI=0;     VERTEILZEI=0;
	VTLABST=0.5*WCOIUF;  
	VLPOSZEI = 0;     ANSICHT=2;
	HAKENVORN= 0;	  HAKENHINT=0;
    POSANZAHL= 1;     BTANZAHL=1;     BWLAGE=1;
    TEXTABST = 0.0;
	STABSPIEG= 0;     STABKREIS=6;  
	BOGEN    = 0;     POSNRLI=0;
	STABZEIFAK= 1.0;  POSDREWI=0.0;

	    
	p1 = xecka;	p2 = xeckc; end;
	if(xumfa = 0) then 	begin
		p3 = p1;
		p1 = p2;
		p2 = p3;
	end;
	p1.z = xecka.z;
	p2.z = xecka.z;
	distance(p1,p2,xlen_k)
	angle(p1,p2,xwi_k);
	r1 = PI /2.0;
	xwi_a = xwi_k - r1;
		
	#Stecker
	BWFORM("A3");
	DURCHM   = xd_b;
	ABSTAND  = xabs_b;
	r1 = 2.0 * xbetde;
	PARA_B = xdick - r1;
	PARA_A = xueb_st;
	PARA_C = xueb_st;
	ANZAHL  = ((xhoch - 2 * xbetde) / ABSTAND)+1;
	stabmod();
	STABECKE=3;

	r3 = 180.0 / PI;
	r1 = xwi_a * r3;	
    r1 = r1-90.0;
	STABEIWI=r1*-1.0;     STABEIWI_Y=270.0;     STABEIWI_X=0.0;
	VERLEGEWINKEL   = 0.0;
	VERLEGEWINKEL_Z = 90.0;
	STABANF=p1;
	r1 = (anzahl-1) * abstand;
	r1 = r1 - xlen_k;
	r1 = r1 / -2.0;
	stabanf = p1;
	
	r6 = xhoch - (2 * xbetde);
	r7 = r6 - ((ANZAHL - 1) * ABSTAND);
	r7 = (r7 / 2) + xbetde;
	
	stabanf.z = stabanf.z  + r7;

	polar(stabanf,xwi_k,xbetde,stabanf);
	polar(stabanf,xwi_a,xbetde,stabanf);
	LAGEPOSNR=p1;
	polar(LAGEPOSNR,xwi_a,1.5*WCOIUF,LAGEPOSNR);
	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 = xdick - (r2+2.0*r5);
	ANZAHL  = xanz_l;
	if(ANZAHL < 2)then ANZAHL = 2;
	ABSTAND  = r1 / (anzahl-1);
	if(xueb_la = 0) then begin
	PARA_A = xhoch - 2.0 * xbetde;
	end;
	if(xueb_la > 0) then begin
	PARA_A = xhoch + xueb_la;
	end;
		
	stabmod();
	STABECKE=1;
	STABEIWI= 0.0;     STABEIWI_Y=90.0;     STABEIWI_X=0.0;
	VERLEGEWINKEL   = xwi_k * 180.0 / PI;
	VERLEGEWINKEL_Z = 0.0;

	STABANF=p1;
	if(xueb_la = 0) then begin
	stabanf.z = stabanf.z + xbetde;
	end;
	r1 = xd_b / 1000.0 * WCOIUF;
	r2 = xd_l / 1000.0 * WCOIUF;
	r1 = r1 + r2 + xbetde;
		
	polar(stabanf,xwi_k,r1,stabanf);
	polar(stabanf,xwi_a,r1,stabanf);
		
	LAGEPOSNR=p1;
	polar(LAGEPOSNR,xwi_a,0.5*WCOIUF,LAGEPOSNR);
	stabgeo();

	
restore_fsm();
end.
