#**************************************************************************
#  Wandanschlusseisen oben
#**************************************************************************
# Überarb. 2021-03-16 LF Eingabemaske + div.
#
save_fsm();
	
# Variablenbennung   und Vorbelegung zum Testen
# Integervariablen
name(i60,"xd_l");    xd_l   = 12;    # Durchmesser A1-Laengseisen
name(r50,"xd_l_a");  xd_l_a = xd_l / 1000.0 * WCOIUF;  # Durchmesser A1-Laengseisen in Eingabeeinheit
name(i61,"xd_b");    xd_b   = 8;     # Durchmesser A3 Stecker
name(r51,"xd_b_a");  xd_b_a = xd_b / 1000.0 * WCOIUF;  # Durchmesser A3 Stecker in Eingabeeinheit
name(i62,"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,"xdick");   xdick = 0.30 * WCOIUF;  # Wanddicke
name(r62,"xlang");   xlang = 2.00 * WCOIUF;  # Wandlaenge
name(r63,"xverank"); xverank = 0.3* WCOIUF;  # Verankerungslaenge in der Wand
name(r64,"xueb_st"); xueb_st  = 0.4* WCOIUF; # überstand der Stecker
name(r65,"xobp_a");  xobp_a = 0.75* WCOIUF;  # Ueberstaende der Eisen oben (siehe Maske)
name(r66,"xabs_b");  xabs_b = 0.20* WCOIUF;  # Abstand Stecker
name(r67,"wi_le");   wi_le = 0.0;            # Winkel Laengsrichtung  (fuer 3D)
name(r68,"wi_br");   wi_br = PI/2.0;         # Winkel in Tiefe (fuer 3D)
name(r69,"wi_z");    wi_z = 0;               # Winkel schräge Oberkante Wand
name(r70,"xlenst");	 xlenst  = xueb_st + xverank;  # Stecker Para A und C
# Punktvariablen
name(p60,"xeinfp"); 
name(p61,"xlendp"); 
name(p62,"xbendp"); 
	
# 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);
	distance_dd(xeinfp,xlendp,xlang);
	distance_dd(xlendp,xbendp,xdick);
	angle(xeinfp,xlendp,wi_le);
	angle(xlendp,xbendp,wi_br);
	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,"-30.30");
   	dlg_init(): #Init new Dialog
   	
	TRANSLATE_TEXT(s1,6,"Wanddicke","");
	STRING_COPY(s2,s1);  STRING_CAT(s2,":  "); STRING_CAT(s2,xdick,s21);
		dlg_label(1,1,s2,30);  	

	TRANSLATE_TEXT(s1,1001,"Betondeckung",txformat);		dlg_editbox(1,2,s1,xbetde,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,3,s1,xd_b,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,4,s1,xabs_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,1010,"Einbindung",""); 
	TRANSLATE_TEXT(s3,1005,"Stecker","");	 
	STRING_CAT(s2," "); STRING_CAT(s2,s3); STRING_COPY(s1,""); STRING_CAT(s1,s2,txformat);
		dlg_editbox(1,6,s1,xverank,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(s1,1014,"Wandanschluss",txformat); 
	dlg_start(s1,i5); # 0= OK;  -1=Cancel;  > 0 =Button Number
	if( i5 < 0) then exit;
	
xlenst  = xueb_st + xverank;  # Stecker Para A und C

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;
		 
		 
angles_from_pts(xeinfp,xlendp,r3,wi_z,r1);
wi_z = wi_z * 180.0 / PI;
write(wi_z);
		 
#Buegel...................
BWFORM("A3");
DURCHM   = xd_b;
ABSTAND  = xabs_b;
r1 = 2.0 * xbetde;
PARA_B = xdick - r1; 
PARA_A = xlenst;
PARA_C = xlenst:
ANZAHL  = (xlang / ABSTAND)+1;
stabmod();
STABECKE=1;
STABEIWI=0;     STABEIWI_Y=90.0;     STABEIWI_X=90.0;   
if(xumfa = 0) then
	begin
	STABEIWI_Y=270.0;
	STABEIWI_X=270.0;   
	end;
	
	STABEIWI_Y=STABEIWI_Y - wi_z;
	
VERLEGEWINKEL   = wi_le*180.0/PI;
VERLEGEWINKEL_Z = wi_z ; # lf

STABANF=xeinfp;
r1 = xlenst - xverank;
stabanf.z = stabanf.z + r1;
r1 = (anzahl-1) * abstand;
r1 = r1 - xlang;
r1 = r1 / -2.0;
polar(stabanf,wi_le,r1,stabanf);
polar(stabanf,wi_br,xbetde,stabanf);
LAGEPOSNR=xeinfp;
polar(LAGEPOSNR,wi_br,-0.5*WCOIUF,LAGEPOSNR);
stabgeo();
		
#Laengseisen
STABEIWI=0.0;     STABEIWI_Y=0.0;     STABEIWI_X=270.0;
if(xumfa = 0) then
	begin
	STABEIWI_X=90.0;   
	end;
	
VERLEGEWINKEL   = wi_br*180.0/PI;
VERLEGEWINKEL_Z = 0.0;
		
#Laengseisen oben
BWFORM("A1");
DURCHM   = xd_l;
ANZAHL   = 2;
r1 = 2.0 * xbetde;
r2 = xd_b_a * 2.0;
r3 = xd_l_A;
r1 = r1 + r2 + r3;
r1 = xdick - r1;
ABSTAND  = r1 / (anzahl-1);
r1 = 2.0 * xbetde;
PARA_A   =  xlang - r1;
stabmod();
# STABEIWI_x=90,0; STABEIWI_x=STABEIWI_x + wi_z;
STABEIWI = STABEIWI + wi_z;
STABECKE=1;
STABANF=xeinfp;
r1 = xlenst - xverank;
r1 = r1 - xbetde;
stabanf.z = stabanf.z + r1;
polar(stabanf,wi_le,xbetde,stabanf);
r2 = xd_b_a;
r3 = xd_l_a / 2.0;
r1 = xbetde + r2 + r3;
polar(stabanf,wi_br,r1,stabanf);
LAGEPOSNR=xeinfp;
polar(LAGEPOSNR,wi_br,0.5*WCOIUF,LAGEPOSNR);
stabgeo();
	
#Laengseisen unten
stabmod();
r1 = xlenst ;;
r1 = r1 - xbetde * 2.0;
stabanf.z = stabanf.z - r1
stabgeo();
	
	
restore_fsm();
end.
