#**************************************************************************
#  Bewehrung Wandecke 90 Grad mit 4 Längseisen
#  2021-03-08 LF
#**************************************************************************
save_fsm();
# Integervariablen
name(i60,"xanz_l");		xanz_l = 2;    # Anzahl A1-Laengseisen
name(i62,"xd_l");		xd_l   = 14;   # Durchmesser A1-Laengseisen 
name(i66,"xd_b");		xd_b   = 8;    # Durchmesser A3 Stecker Richtung A
name(i67,"xd_c");       xd_c   = 8;    # Durchmesser A3 Stecker Richtung b
name(i68,"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_b");	xdick_b   = 0.30 * WCOIUF;    # Wanddicke Richtung A
name(r63,"xdick_a");	xdick_a   = 0.30 * WCOIUF;    # Wanddicke Richtung B
name(r64,"xabs_b");		xabs_b   = 0.20 * WCOIUF;   # Abstand Stecker
name(r65,"xueb_st_a");	xueb_st_a  = 0.40 * WCOIUF;   # Stecker Länge oben/unten Richtung A
name(r66,"xueb_st_b");	xueb_st_b  = 0.40 * WCOIUF;   # Stecker Länge oben/unten Richtung B
name(r67,"xwi_k");	                                # Winkel entlang Kante 2-4
name(r68,"xwi_a");	                                # Winkel senkrecht zu Kante 2-4
name(r69,"xd_l_ber");	xd_l_ber = xd_l/1000*WCOIUF;# Durchmesser in Eing-Einheit für Abstandsberechnungen
name(r70,"xd_b_ber");	xd_b_ber = xd_b/1000*WCOIUF;
name(r71,"xd_c_ber");	xd_c_ber = xd_c/1000*WCOIUF;
name(r72,"xueb_st_l");  xueb_st_l = 0.60 * WCOIUF;    # ls Längseisen
# Punktvariablen
name(p60,"xecka"); 
name(p61,"xeckb"); 
name(p62,"xeckc"); 
name(p63,"xeckd");
name(p64,"stabanf");
 
# Textvariablen
name(s60,"txformat"); #Dialog Formatanweisung
  
	#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; 
		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);

	# Wanddicken errechnen *******************************
	
	angle(xeckb,xeckd,r1);              # Winkel p2-p4 
	distance(xeckb,xeckc,r20);          # Kathete rechnen (p2-p3)

	rotate_point(xeckc,xeckb,-r1);      # Punkte 3+4 auf horizontal drehen 1
	rotate_point(xeckd,xeckb,-r1); 

	angle(xeckb,xeckc,r2);	# Winkel p2-p3 rechnen
	sin(r2,r10),
	cos(r2,r11);

	xdick_a = r20 * r10);	# Länge Gegenkathete = Wandstärke 1
	xdick_b = r20 * r11);	# Länge Ankathete = Wandstärke 2

	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,"Wanddicke","");
	STRING_COPY(s2,s1);  STRING_CAT(s2,":  "); STRING_CAT(s2,xdick_a,s21);
	STRING_CAT(s2," / "); STRING_CAT(s2,xdick_b,s21); 
		dlg_label(1,1,s2,30); 
    TRANSLATE_TEXT(s1,5,"Wandhöhe","");
    STRING_COPY(s2,s1); STRING_CAT(s2,":  "); STRING_CAT(s2,xhoch,s21);
		dlg_label(17,1,s2,30);

	TRANSLATE_TEXT(s1,1001,"Betondeckung",txformat);
		dlg_editbox(1,2,s1,xbetde,10);

	TRANSLATE_TEXT(s2,1002,"Abstand","");	
	TRANSLATE_TEXT(s3,1005,"Steckeisen","");	 
	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,"Steckeisen","");	 
	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,"Steckeisen",""); 
	TRANSLATE_TEXT(s4,4,"von",""); 
	TRANSLATE_TEXT(s5,9,"Innenkante",""); 
	STRING_COPY(s2,"ls "); STRING_CAT(s2,s3); STRING_CAT(s2," 1 "); STRING_CAT(s2,s4);
	STRING_CAT(s2," "); STRING_CAT(s2,s5); STRING_COPY(s1,""); STRING_CAT(s1,s2,txformat);
		dlg_editbox(1,5,s1,xueb_st_a,10);

	TRANSLATE_TEXT(s3,1005,"Steckeisen",""); 
	TRANSLATE_TEXT(s4,4,"von",""); 
	TRANSLATE_TEXT(s5,9,"Innenkante",""); 
	STRING_COPY(s2,"ls "); STRING_CAT(s2,s3); STRING_CAT(s2," 2 "); STRING_CAT(s2,s4);
	STRING_CAT(s2," "); STRING_CAT(s2,s5); STRING_COPY(s1,""); STRING_CAT(s1,s2,txformat);
		dlg_editbox(1,6,s1,xueb_st_a,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,s3); STRING_COPY(s1,""); STRING_CAT(s1,s2,txformat);
		dlg_editbox(1,8,s1,xueb_st_a,10);
	
	TRANSLATE_TEXT(s1,7,"Wandecke",""); 
	
	dlg_start(s1,i5); # 0= OK;  -1=Cancel;  > 0 =Button Number
	if( i5 < 0) then exit;
	
	xd_c = xd_b;   # Durchm. STecker beide gleich 
	
	xd_l_ber = xd_l/1000*WCOIUF;# Durchmesser in Eing-Einheit für Abstandsberechnungen
	xd_b_ber = xd_b/1000*WCOIUF;
	xd_c_ber = xd_c/1000*WCOIUF;

	# ab hier Tests
	
	polar(xeckb,r1,xdick_b,p5);            # p5 rechnen Wandstärke 1 Testpunkt
	polar(xeckb,(r1 + (pi/2)),xdick_a,p6); # p6 rechnen Wandstärke 2 Testpunkt
	
	#rotate_point(p5,xeckb,-r1);       # Punkte drehen 2
	#rotate_point(p6,xeckb,-r1); 

	# Test Punkte anzeigen
	rotate_point(xeckc,xeckb,+r1);      # Punkte drehen 1
	rotate_point(xeckd,xeckb,+r1); 	
	#rotate_point(p5,xeckb,+r1);
	#rotate_point(p6,xeckb,+r1);       # punkte drehen 2
		
#	text(xecka,"1");
#	text(xeckb,"2");
#	text(xeckc,"3");
#	text(xeckd,"4");
#	p8 = p5; p8.x = p8.x + (0.20*WCOIUF);
#	p9 = p6; p9.x = p9.x - (1.00*WCOIUF);
#	text(p8,xdick_b);
#	text(p9,xdick_a);
#	text(p5,"5");
#	text(p6,"6");	
	
	# Bewehrung zeichnen ***************************
	
	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 = xeckb;	p2 = xeckc; end;
#	if(xumfa = 0) then 	begin
#		p3 = p1;
#		p1 = p2;
#		p2 = p3;
#	end;
	p1.z = xecka.z;
	p2.z = xecka.z;
	angle(xeckb,p5,xwi_k);
	angle(xeckb,p6,xwi_a);
		
	# Stecker Wand 1  *****************
	BWFORM("A3");
	DURCHM   = xd_b;
	ABSTAND  = xabs_b;
	r1 = 2.0 * xbetde;
	PARA_B = xdick_a - r1;
	xueb_st_a = (xueb_st_a + xdick_b - xbetde);
	PARA_A = xueb_st_a;
	PARA_C = xueb_st_a;
	ANZAHL  = (xhoch / ABSTAND) +1;
	stabmod();
	
	STABECKE=3;
	r4 = 180 / PI * xwi_k;
	r4 = r4 - 90.0;
	STABEIWI=0.0;     STABEIWI_Y=270.0;     STABEIWI_X=0.0;
	VERLEGEWINKEL   = r4;
	VERLEGEWINKEL_Z = 90.0;
	STABANF = xecka;
	r1 = (ANZAHL - 1) * ABSTAND;
	r2 = (xhoch - r1) / 2.0;
	stabanf.z = stabanf.z + r2 - (0.75 * xd_b_ber);
	polar(stabanf,xwi_k,xbetde,stabanf);
	polar(stabanf,xwi_a,xbetde,stabanf);
	LAGEPOSNR=p1;
	polar(LAGEPOSNR,xwi_a,1.5*WCOIUF,LAGEPOSNR);
	stabgeo();
    
	# Stecker Wand 2 ********************
	BWFORM("A3");
	DURCHM   = xd_c;
	ABSTAND  = xabs_b;
	r1 = 2.0 * xbetde;
	PARA_B = xdick_b - r1;
	xueb_st_b = (xueb_st_b + xdick_a - xbetde);
	PARA_A = xueb_st_b;
	PARA_C = xueb_st_b;
	ANZAHL  = (xhoch / ABSTAND) +1;
	stabmod();
	
	STABECKE=2;
	r4 = 180 / PI * xwi_a;
	r4 = r4 - 90.0;
	STABEIWI=0.0;     STABEIWI_Y=270.0;     STABEIWI_X=0.0;
	VERLEGEWINKEL   = r4;
	VERLEGEWINKEL_Z = 90.0;
	STABANF = xecka;
	r1 = (ANZAHL - 1) * ABSTAND;
	r2 = (xhoch - r1) / 2.0;
	stabanf.z = stabanf.z + r2 + (1.50 * xd_c_ber);
	polar(stabanf,xwi_k,xbetde,stabanf);
	polar(stabanf,xwi_a,xbetde,stabanf);
	LAGEPOSNR=p1;
	polar(LAGEPOSNR,xwi_a,1.5*WCOIUF,LAGEPOSNR);
	stabgeo();    
     
	# Laengseisen 1 ***********************
	BWFORM("A1");
	DURCHM   = xd_l;
	ANZAHL  = xanz_l;
	r1 = xdick_b - ((2 * xd_b_ber) + (1.5 * xd_l_ber) + (2 * xbetde));
	ABSTAND = r1;
	if(xueb_st_l = 0) then begin
	PARA_A = xhoch - 2.0 * xbetde;
	end;
	if(xueb_st_l > 0) then begin
	PARA_A = xhoch + xueb_st_l;
	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=xecka;
	polar(stabanf,xwi_k,(xbetde + xd_b_ber + (xd_l_ber * 0.75)),stabanf);
	polar(stabanf,xwi_a,(xbetde + xd_c_ber + (xd_l_ber * 0.75)),stabanf);
	if(xueb_st_l = 0) then begin
	stabanf.z = stabanf.z + xbetde;
	end;
	LAGEPOSNR=p1;
	polar(LAGEPOSNR,xwi_a,0.5*WCOIUF,LAGEPOSNR);
	stabgeo();
     
	# Laengseisen 2 ***********************
	BWFORM("A1");
	DURCHM   = xd_l;
	ANZAHL  = xanz_l;
	r1 = xdick_b - ((2 * xd_b_ber) + (1.5 * xd_l_ber) + (2 * xbetde));
	r2 = xdick_a - ((2 * xd_b_ber) + (1.5 * xd_l_ber) + (2 * xbetde));
	ABSTAND = r1;
	if(xueb_st_l = 0) then begin
	PARA_A = xhoch - 2.0 * xbetde;
	end;
	if(xueb_st_l > 0) then begin
	PARA_A = xhoch + xueb_st_l;
	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=xecka;
	polar(stabanf,xwi_a,(xbetde + xd_b_ber + (xd_l_ber * 0.75) + r2),stabanf);
	polar(stabanf,xwi_k,(xbetde + xd_c_ber + (xd_l_ber * 0.75)),stabanf);
	if(xueb_st_l = 0) then begin
	stabanf.z = stabanf.z + xbetde;
	end;
	LAGEPOSNR=p1;
	polar(LAGEPOSNR,xwi_a,0.5*WCOIUF,LAGEPOSNR);
	stabgeo();

end.
