#**************************************************************************
#  Stuetze rechteckig
#**************************************************************************
# Überarb. 2021-03-16 LF Eingabemaske + div.
#
save_fsm();

# Variablenbennung   und Vorbelegung zum Testen
# Integervariablen
name(i62,"xd_l");    xd_l = 12;     # Durchmesser A1-Laengseisen 
name(i66,"xd_b");    xd_b = 8;      # Durchmesser B1 Buegel
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(r63,"xhoch");    xhoch   = 2.50 * WCOIUF;    # Hoehe 
name(r64,"xbreit");   xbreit   = 0.30 * WCOIUF;   # Breite
name(r67,"xtief");    xtief    = 0.30 * WCOIUF;   # Tiefe
name(r68,"xabs_b");   xabs_b   = 0.20 * WCOIUF;   #  Abstand Buegel
name(r69,"xverank");  xverank  = 0.50 * WCOIUF;   # Verankerungslaenge A1 Eisen
name(r70,"wi_br");    wi_br    = 0.0;             # Winkel Breite   (fuer 3D)
name(r71,"wi_ti");    wi_ti    = PI/2.0;          # Winkel in Tiefe (fuer 3D)

# Punktvariablen
name(p60,"xeinfp"); 
name(p61,"xlendp"); 
name(p62,"xbendp"); 
name(p63,"xhendp"); 


# Textvariablen
name(s60,"txformat"); #Dialog Formatanweisung
  
	#Aufruf aus 3D Bauteilbewehrung->Punkte sind vorgegeben.    
	if(DREIDBAUTEIL = 1) then 
		begin 
		sbwecke(1001,xeinfp,0);
		sbwecke(1002,xlendp,0);
		sbwecke(1003,xbendp,0);
		sbwecke(1004,xhendp,0);
		distance(xeinfp,xlendp,xbreit);
		distance(xlendp,xbendp,xtief);
		angle(xeinfp,xlendp,wi_br);
		angle(xlendp,xbendp,wi_ti);
		xhoch = xhendp.z - xbendp.z;
   end;
      
	# Umfahrungssinn wg. drehen der Eisen in das Bauteil
	p1 = xeinfp;
	p2 = xlendp;
	p3 = xbendp;
	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,"-25.25");
   	dlg_init(): #Init new Dialog

	TRANSLATE_TEXT(s1,8,"Stütze","");
	STRING_COPY(s2,s1);  STRING_CAT(s2,":  "); STRING_CAT(s2,xbreit,s21);
	STRING_CAT(s2," / "); STRING_CAT(s2,xtief,s21); 
		dlg_label(1,1,s2,30); 
    TRANSLATE_TEXT(s1,14,"Hö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,1000,"Bügel","");	 
	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,1000,"Bügel","");	 
	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,1006,"ls Längseisen","");
	STRING_COPY(s2,"ls "); STRING_CAT(s2,s3); STRING_COPY(s1,""); STRING_CAT(s1,s2,txformat);
		dlg_editbox(1,5,s1,xverank,10);
		
	TRANSLATE_TEXT(s2,8,"Stütze",""); 
	TRANSLATE_TEXT(s3,15,"rechteckig","");	 
	STRING_CAT(s2," "); STRING_CAT(s2,s3); STRING_COPY(s1,""); STRING_CAT(s1,s2,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;
	 
	#Buegel...................
	BWFORM("B1");
	DURCHM   = xd_b;
	ABSTAND  = xabs_b;
	r1 = 2.0 * xbetde;
    PARA_A = xbreit - r1; 
	PARA_B = xtief  - r1;
	ANZAHL  = (xhoch / ABSTAND);
	stabmod();
	STABECKE=2;
	r3 = 180.0 / PI;
	r1 = wi_ti * r3;	
    r1 = r1+90.0;
	STABEIWI=r1*-1.0;     STABEIWI_Y=270.0;     STABEIWI_X=0.0;
	if(xumfa = 0) then
		begin
		STABEIWI_y=90.0;   
	end;
	VERLEGEWINKEL   = 0.0;
	VERLEGEWINKEL_Z = 90.0;
	STABANF=xeinfp;
	r1 = (anzahl-1) * abstand;
	r1 = r1 - xhoch;
	r1 = r1 / -2.0;
	stabanf.z = stabanf.z + r1;
	polar(stabanf,wi_br,xbetde,stabanf);
	polar(stabanf,wi_ti,xbetde,stabanf);
	LAGEPOSNR=xeinfp;
	polar(LAGEPOSNR,wi_ti,-0.5*WCOIUF,LAGEPOSNR);
	stabgeo();
	
	

	#Laengeisen
	for i88 = 1 to 2 do
      begin
		BWFORM("A1");
		DURCHM   = xd_l;
		ANZAHL   = 2;
		r1 = xd_b / 1000.0 * WCOIUF;
		r2 = xd_l / 1000.0 * WCOIUF;
		r1 = r1 + r2 + xbetde;
		r1 = r1 * 2.0;
		r2 = xtief - r1;
		ABSTAND  = r2;
		PARA_A   = xhoch + xverank;
		stabmod();

		STABECKE=1;
		STABEIWI= 0;     STABEIWI_Y=90.00;     STABEIWI_X=0.0;     
		VERLEGEWINKEL   = wi_ti*180.0/PI;
		VERLEGEWINKEL_Z = 0;
		STABANF=xeinfp;
		stabanf.z = stabanf.z + xbetde;
		r1 = xd_b / 1000.0 * WCOIUF;
		r1 = r1 + xbetde;
		r2 = xd_l / 1000.0 * WCOIUF;
		r1 = r1 + r2;
		polar(stabanf,wi_br,r1,stabanf);
		polar(stabanf,wi_ti,r1,stabanf);

		if(i88 = 2)then
		begin
			r1 = xd_b / 1000.0 * WCOIUF;
			r2 = xd_l / 1000.0 * WCOIUF;
			r1 = r1 + r2 + xbetde;
			r1 = r1 * 2.0;
			r1 = xbreit - r1;
			polar(stabanf,wi_br,r1,stabanf);
		  end;

		LAGEPOSNR=xeinfp;
		polar(LAGEPOSNR,wi_ti,0.5*WCOIUF,LAGEPOSNR);
		stabgeo();
	end;

	
restore_fsm();
end.
