Koda programa

 

var i=0; n=0; x=0; y=0; z=0; Fx=0; Fy=0; Fz=0; Mx=0; My=0; Mz=0; RMx=0; RMy=0; RMz=0; RFx=0; RFy=0; RFz=0; qx=0; qy=0; qz=0 
var d=0; c1=0; b=0; c2=0; c3=0; xrf=0; yrf=0; zrf=0;
var xrfx=0; zrfz=0; yrfy=0; xrf=0; zrf=0; yrf=0; qdx=0; qdy=0; qdz=0;
var a=new Array()
var Mox=new Array();
var Moy=new Array();
var Moz=new Array();
var Mox1=new Array();
var Moy1=new Array();
var Moz1=new Array();

//"zapis vnesenih podatkov v polja"

function zapis(form) {

			//"pregledovanje dolocene podpore"
			if(form.gumb[0].checked) {
			RMx=1
			RMy=1
			RMz=1
			RFx=1
			RFy=1
			RFz=1
			}
			if(form.gumb[1].checked){
			RMx=0
			RMy=0
			RMz=0
			RFx=1
			RFy=1
			RFz=1
				if(x!=0 || y!=0 || z!=0){
				alert("Vrednosti tocke x, y in z morajo biti 0 ! Prosim izbrisi in popravi !")
				}
			}
			if(form.gumb[2].checked){
			RMx=0
			RMy=0
			RMz=0
			RFx=0
			RFy=1
			RFz=1
			xrfx=RFx
			yrfy=RFy
			zrfz=RFz
			xrf=x
			yrf=y
			zrf=z
				if(x==0){
				alert("Vrednost x mora biti razlicna od 0 !  Prosim izbrisi in popravi !")
				}
			}
			if(form.gumb[3].checked){
			RMx=0
			RMy=0
			RMz=0
			RFx=1
			RFy=0
			RFz=1
			xrfx=RFx
			yrfy=RFy
			zrfz=RFz
			xrf=x
			yrf=y
			zrf=z
				if(y==0){
				alert("Vrednost y mora biti razlicna od 0 !  Prosim izbrisi in popravi !")
				}
			}
			if(form.gumb[4].checked){
			RMx=0
			RMy=0
			RMz=0
			RFx=1
			RFy=1
			RFz=0
			xrfx=RFx
			yrfy=RFy
			zrfz=RFz
			xrf=x
			yrf=y
			zrf=z
				if(z==0){
				alert("Vrednost z mora biti razlicna od 0 !  Prosim izbrisi in popravi !")
				}
			}
			if(form.gumb[5].checked){
			RMx=0
			RMy=0
			RMz=0
			RFx=0
			RFy=0
			RFz=0
			}
			
		n=i+1
		m=n
		a[i]=new Array(x,y,z,Fx,Fy,Fz,Mx,My,Mz,RMx,RMy,RMz,RFx,RFy,RFz,qx,qy,qz)
			//"kontrola pravilnost postavitve podpor"
			b=a[i][10]+b
			c1=a[i][12]+c1
			c2=a[i][13]+c2
			c3=a[i][14]+c3
			d=c1+c2+c3
			if(b==1 && d>3) {
			alert ("Prevec ali premalo podpor. S pritiskom na gumb Korekcija izbrises zadnji vnos.")
			}
			if(d==4 || d==6 || d==7) {
			alert ("Prevec ali premalo podpor. S pritiskom na gumb Korekcija izbrises zadnji vnos.")
			}

  i=i+1  
  
form.fx.value=0;
form.fy.value=0;
form.fz.value=0;
form.mx.value=0;
form.my.value=0;
form.mz.value=0;
form.q1x.value=0;
form.q1y.value=0;
form.q1z.value=0;
// standardna vrednost  kotov
form.kotx.value=42.8;
form.koty.value=20;
form.kotz.value=20;
}

//"potrditev vnosa"
function potrditevVnosa(form){
	if(confirm("Zelim vnesti podatke za to tocko!")){
	zapis(form);
	main();
	}
}

//"potrditev  izracuna"
function potrditevIzracuna(form){
	if(d==0){
	alert("Podpore niso definirane")
	}else{
		if(confirm("Zelim izracunati reakcije !")){
		reakcije(form)
		}
	}
}

//"korekcija trenutno vnešenih podatkov"
function korekcija(form){
if(i =0){
	alert("Vsi vnosi so ze izbrisani!")
	}else{
	i=i-1
	
	b=b-a[i][10]
	c1=c1-a[i][12]
	c2=c2-a[i][13]
	c3=c3-a[i][14]
	d=c1+c2+c3
	alert ("Izbrisan vnos številka"+(i+1)+
	" Tocka: x="+a[i][0]+"y="+a[i][1]+"z="+a[i][2]+"!")
	}
}

//"izpis za kontrolo pravilnosti"
function izpis() {
	for(i=0; i n; i++) {
	document.write("") 
		for(var j=0; j 15; j++){
		document.write(a[i][j], ",")
		}
	}

}

//"izracun reakcij sil v smeri"
var rfx=0; rfy=0; rfz=0; rmx=0; rmy=0; rmz=0; rfx1=0; rfy1=0; rfz1=0; rfx2=0; rfy2=0; rfz2=0;
var rfx2b=0; rfy2b=0; rfz2b=0; rfx1a=0; rfy1a=0; rfz1a=0; rx=0; ry=0; rz=0; rsy=0; rsx=0; rsz=0;

	//"dodatni pogoji za vkljucitev kontinuiranih obremenitev"
	
function reakcije(form) {

	//"dolocitev konzolnega ali nosilca na dveh podporah"	
	for(i=0; i n; i++) {
		if(i==0){
			qdx=0;
			qdy=0;
			qdz=0;
			rx=0;
			ry=0;
			rz=0;
			}else{
			if(a[i-1][15]==0){
				qdx=0;
				}else{
				qdx=1;
				}
			if(a[i-1][16]==0){
				qdy=0;
				}else{
				qdy=1;
				}
			if(a[i-1][17]==0){
			qdz=0;
			}else{
			qdz=1;
			}
		rx=Math.sqrt((a[i-1][1]-a[i][1])*(a[i-1][1]-a[i][1])+(a[i-1][2]-a[i][2])*(a[i-1][2]-a[i][2]))
		ry=Math.sqrt((a[i-1][0]-a[i][0])*(a[i-1][0]-a[i][0])+(a[i-1][2]-a[i][2])*(a[i-1][2]-a[i][2]))
		rz=Math.sqrt((a[i-1][1]-a[i][1])*(a[i-1][1]-a[i][1])+(a[i-1][0]-a[i][0])*(a[i-1][0]-a[i][0]))
		rsx=0; rsy=0; rsz=0;
		rsx=((a[i][0]-a[i-1][0])/2)+a[i-1][0]
		rsy=((a[i][1]-a[i-1][1])/2)+a[i-1][1]
		rsz=((a[i][2]-a[i-1][2])/2)+a[i-1][2]
		}
			if(b==1) {
			rfx=-a[i][3]+qdx*a[i][15]*rx+rfx;
			rfy=-a[i][4]+qdy*a[i][16]*ry+rfy;
			rfz=-a[i][5]+qdz*a[i][17]*rz+rfz;
			rmx=-a[i][6]-a[i][4]*a[i][2]+a[i][5]*a[i][1]-rsy*qdz*a[i][17]*rz+rsz*qdy*a[i][16]*ry+rmx;
			rmy=-a[i][7]-a[i][3]*a[i][2]-a[i][5]*a[i][0]+rsx*qdz*a[i][17]*rz-rsz*qdx*a[i][15]*rx+rmy;
			rmz=-a[i][8]-a[i][3]*a[i][1]+a[i][4]*a[i][0]-rsx*qdy*a[i][16]*ry+rsy*qdx*a[i][15]*rx+rmz;
			}else {
				
				if(xrfx==0 && xrf!=0){
					rfx2=0;	
					rfz2=-((a[i][7]-a[i][2]*a[i][4]+a[i][5]*a[i][0]-rsx*qdz*a[i][17]*rz+rsz*qdx*a[i][15]*rx)/(xrf))
					rfy2=(-a[i][4]*a[i][0]+a[i][3]*a[i][1]+a[i][8]+rsx*qdy*a[i][16]*ry-rsy*qdx*a[i][15]*rx)/(xrf)
				}

				if(yrfy==0 && yrf!=0){
					rfy2=0;
					rfx2=-((a[i][8]-a[i][0]*a[i][4]+a[i][3]*a[i][1]+rsx*qdy*a[i][16]*ry-rsy*qdx*a[i][15]*rx)/(yrf))	
					rfz2=(a[i][6]+a[i][2]*a[i][4]-a[i][5]*a[i][1]+rsy*qdz*a[i][17]*rz-rsz*qdy*a[i][16]*ry)/(yrf)
				}

				if(zrfz==0 && zrf!=0){
					rfz2=0;
					rfy2=-((-a[i][5]*a[i][1]+a[i][4]*a[i][2]+a[i][6]+rsy*qdz*a[i][17]*rz-rsz*qdy*a[i][16]*ry)/(zrf))
					rfx2=(a[i][7]-a[i][3]*a[i][2]+a[i][5]*a[i][0]-rsx*qdz*a[i][17]*rz+rsz*qdx*a[i][15]*rx)/(zrf)
				}
			
			}								
			rfx2b=rfx2b+rfx2
			rfy2b=rfy2b+rfy2
			rfz2b=rfz2b+rfz2
			rfx1=-a[i][3]+qdx*a[i][15]*rx-rfx2
			rfy1=-a[i][4]+qdy*a[i][16]*ry-rfy2
			rfz1=-a[i][5]+qdz*a[i][17]*rz-rfz2
			rfx1a=rfx1a+rfx1
			rfy1a=rfy1a+rfy1
			rfz1a=rfz1a+rfz1
			
		
			//"vrednost reakcije v podpori 2 je rf..2b v podpori 1 pa rf..1 "
		}
		rfx1a=(Math.round(1000*rfx1a))/1000;
		rfy1a=(Math.round(1000*rfy1a))/1000;
		rfz1a=(Math.round(1000*rfz1a))/1000;
		rfx2b=(Math.round(1000*rfx2b))/1000;
		rfy2b=(Math.round(1000*rfy2b))/1000;
		rfz2b=(Math.round(1000*rfz2b))/1000;
		rfx=(Math.round(1000*rfx))/1000;
		rfy=(Math.round(1000*rfy))/1000;
		rfz=(Math.round(1000*rfz))/1000;
		rmx=(Math.round(1000*rmx))/1000;
		rmy=(Math.round(1000*rmy))/1000;
		rmz=(Math.round(1000*rmz))/1000;
	
	if(confirm("Zelim izracunati vrednosti notranjih velicin !")){
	notranjeVelicine(form)
	}
	
	
}

//izpis vrednosti
function rezultatiReakcij(){
	if(b==1){
		alert("Rezultati reakcij v podpori : Rfx="+rfx+"; Rfy="+rfy+"; Rfz="+rfz+";\n\ Rmx="+rmx+"; Rmy="+rmy+"; Rmz="+rmz+";");
	}else{
		alert("Rezultati reakcij v fiksni podpori : Rfx1="+rfx1a+"; Rfy1="+rfy1a+"; Rfz1="+rfz1a+";\n Rezultati reakcij v pomicni podpori : Rfx2="+rfx2b+"; Rfy2="+rfy2b+"; Rfz2="+rfz2b+";");
	}
}
//"izracun notranjih velicin nosilca!"



var ax=0; ay=0; az=0; bx=0; by=0; bz=0; cx=0; cy=0; cz=0; ra=0; rb=0; rc=0; nos=0; ty=0; tz=0; nos1=0; ty1=0; tz1=0;
var ax1=0; ay1=0; az1=0; bx1=0; by1=0; bz1=0; cx1=0; cy1=0; cz1=0; ra1=0; rb1=0; rc1=0;
var rmsx=0; rmsy=0; rmsz=0;
var dxy=0; dxz=0; dyz=0; dxy1=0; dxz1=0; dyz1=0; dqxy=0; dqxz=0; dqyz=0; dqxy1=0; dqxz1=0; dqyz1=0; mx=0; my=0; mz=0; mx1=0; my1=0; mz1=0; mmx=0; mmy=0; mmz=0; mmx1=0; mmy1=0; mmz1=0; fnx=0; fny=0; fnz=0; fnx1=0; fny1=0; fnz1=0; qx1=0; qy1=0; qz1=0; qx=0; qy=0; qz=0; rsx0=0; rsy0=0; rsz0=0;  razdaljax=0; razdaljay=0; razdaljaz=0; rqsx=0; rqsy=0; rqsz=0; mzn=0; mxn=0; myn=0; mzn1=0; mxn1=0; myn1=0;

var N=new Array();
var Ty=new Array();
var Tz=new Array();
var N1=new Array();
var Ty1=new Array();
var Tz1=new Array();

var bb=new Array(); var bb1=new Array(); var cc=new Array(); var cc1=new Array();
var rrb=new Array(); var rrb1=new Array(); var rrc=new Array(); var rrc1=new Array();
bb[i]=new Array(); bb1[i]=new Array(); cc[i]=new Array(); cc1[i]=new Array();

function notranjeVelicine(form) {


	for(var r=0; r n; r++) {
	//alert(r);
	mzn=0;
	mxn=0;
	myn=0;
	mzn1=0;
	mxn1=0;
	myn1=0;
	i=r;
		
			if(b!=1){
				if(i==0){
				ax1=a[i+1][0]-a[i][0]; 
				ay1=a[i+1][1]-a[i][1];
				az1=a[i+1][2]-a[i][2];
				ax=a[i+1][0]-a[i][0];
				ay=a[i+1][1]-a[i][1];
				az=a[i+1][2]-a[i][2];
				}
				if(i!=0 && i n-1){
				ax1=a[i][0]-a[i-1][0];
				ay1=a[i][1]-a[i-1][1];
				az1=a[i][2]-a[i-1][2];
				ax=a[i+1][0]-a[i][0];
				ay=a[i+1][1]-a[i][1];
				az=a[i+1][2]-a[i][2];
				}
				if(i==n-1){
				alert
				ax=a[i][0]-a[i-1][0];
				ay=a[i][1]-a[i-1][1];
				az=a[i][2]-a[i-1][2];
				ax1=a[i][0]-a[i-1][0];
				ay1=a[i][1]-a[i-1][1];
				az1=a[i][2]-a[i-1][2];
				}
			if(az1!=0 && az1 0){
			cx1=1;
			cy1=0;
			cz1=(ax1*cx1)/az1
			}
			if(az1!=0 && az1>0){
			cx1=-1;
			cy1=0;
			cz1=(ax1*cx)/az1
			}
			if(az1==0){
			cx1=0;
			cz1=1;
			cy1=0;
			}
		bx1=cy1*az1-cz1*ay1
		by1=cz1*ax1-cx1*az1
		bz1=cx1*ay1-cy1*ax1
		ra1=Math.sqrt(ax1*ax1+ay1*ay1+az1*az1)
		rb1=Math.sqrt(bx1*bx1+by1*by1+bz1*bz1)
		rc1=Math.sqrt(cx1*cx1+cy1*cy1+cz1*cz1)

		
			if(az!=0 && az 0){
			cx=1;
			cy=0;
			cz=(ax*cx)/az
			}
			if(az!=0 && az>0){
			cx=-1;
			cy=0;
			cz=(ax*cx)/az
			}
			if(az==0){
			cx=0;
			cz=1;
			cy=0;
			}
		bx=cy*az-cz*ay
		by=cz*ax-cx*az
		bz=cx*ay-cy*ax
		ra=Math.sqrt(ax*ax+ay*ay+az*az)
		rb=Math.sqrt(bx*bx+by*by+bz*bz)
		rc=Math.sqrt(cx*cx+cy*cy+cz*cz)
	
		bb[i]=new Array(); bb1[i]=new Array(); cc[i]=new Array(); cc1[i]=new Array();
		bb[i][0]=bx; bb[i][1]=by; bb[i][2]=bz; bb1[i][0]=bx1; bb1[i][1]=by1; bb1[i][2]=bz1;
		cc[i][0]=cx; cc[i][1]=cy; cc[i][2]=cz; cc1[i][0]=cx1; cc1[i][1]=cy1; cc1[i][2]=cz1;
		rrb[i]=rb; rrb1[i]=rb1; rrc[i]=rc; rrc1[i]=rc1;
		
//	"notranje sile v nosilcu na dveh podporah"
		nn=i+1
		nos1=0;
		ty1=0;
		tz1=0;
		ty=0;
		nos=0;
		tz=0;

		rmsx=a[i][0];
		rmsy=a[i][1];
		rmsz=a[i][2];

		

			for(i=0; i nn; i++) {
		//alert("i"+i);
		//alert("nn"+nn);
		
		if(i==0){
			qdx=0;
			qdy=0;
			qdz=0;
			rx=0;
			ry=0;
			rz=0;
			rsx0=0;
			rsy0=0;
			rsz0=0;
			
			}else{
			if(a[i-1][15]==0){
				qdx=0;
				}else{
				qdx=1;
				}
			if(a[i-1][16]==0){
				qdy=0;
				}else{
				qdy=1;
				}
			if(a[i-1][17]==0){
			qdz=0;
			}else{
			qdz=1;
			}
		rx=Math.sqrt((a[i-1][1]-a[i][1])*(a[i-1][1]-a[i][1])+(a[i-1][2]-a[i][2])*(a[i-1][2]-a[i][2]))
		ry=Math.sqrt((a[i-1][0]-a[i][0])*(a[i-1][0]-a[i][0])+(a[i-1][2]-a[i][2])*(a[i-1][2]-a[i][2]))
		rz=Math.sqrt((a[i-1][1]-a[i][1])*(a[i-1][1]-a[i][1])+(a[i-1][0]-a[i][0])*(a[i-1][0]-a[i][0]))
		rsx=0; rsy=0; rsz=0;
		rsx=((a[i][0]-a[i-1][0])/2)+a[i-1][0]
		rsy=((a[i][1]-a[i-1][1])/2)+a[i-1][1]
		rsz=((a[i][2]-a[i-1][2])/2)+a[i-1][2]

		rsx0=((-a[i][0]+a[i-1][0])/2)
		rsy0=((-a[i][1]+a[i-1][1])/2)
		rsz0=((-a[i][2]+a[i-1][2])/2)


		}

		qx=(qdx*a[i][15]*rx)*(ax/ra)+(qdy*a[i][16]*ry)*(ay/ra)+(qdz*a[i][17]*rz)*(az/ra)
		qx1=(qdx*a[i][15]*rx)*(ax1/ra1)+(qdy*a[i][16]*ry)*(ay1/ra1)+(qdz*a[i][17]*rz)*(az1/ra1)
		qy=(qdx*a[i][15]*rx)*(bx/rb)+(qdy*a[i][16]*ry)*(by/rb)+(qdz*a[i][17]*rz)*(bz/rb)
		qy1=(qdx*a[i][15]*rx)*(bx1/rb1)+(qdy*a[i][16]*ry)*(by1/rb1)+(qdz*a[i][17]*rz)*(bz1/rb1)
		qz=(qdx*a[i][15]*rx)*(cx/rc)+(qdy*a[i][16]*ry)*(cy/rc)+(qdz*a[i][17]*rz)*(cz/rc)
		qz1=(qdx*a[i][15]*rx)*(cx1/rc1)+(qdy*a[i][16]*ry)*(cy1/rc1)+(qdz*a[i][17]*rz)*(cz1/rc1)

		mmx=(a[i][6])*(ax/ra)+(a[i][7])*(ay/ra)+(a[i][8])*(az/ra)
		mmx1=(a[i][6])*(ax1/ra1)+(a[i][7])*(ay1/ra1)+(a[i][8])*(az1/ra1)
		mmy=(a[i][6])*(bx/rb)+(a[i][7])*(by/rb)+(a[i][8])*(bz/rb)
		mmy1=(a[i][6])*(bx1/rb1)+(a[i][7])*(by1/rb1)+(a[i][8])*(bz1/rb1)
		mmz=(a[i][6])*(cx/rc)+(a[i][7])*(cy/rc)+(a[i][8])*(cz/rc)
		mmz1=(a[i][6])*(cx1/rc1)+(a[i][7])*(cy1/rc1)+(a[i][8])*(cz1/rc1)

		razdaljax=a[i][0]-rmsx
		razdaljay=a[i][1]-rmsy
		razdaljaz=a[i][2]-rmsz

		rqsx=razdaljax+rsx0
		rqsy=razdaljay+rsy0
		rqsz=razdaljaz+rsz0

		dxy1=(cx1*razdaljax+cy1*razdaljay+cz1*razdaljaz)/rc1
		dxy=(cx*razdaljax+cy*razdaljay+cz*razdaljaz)/rc
		dxz=(bx*razdaljax+by*razdaljay+bz*razdaljaz)/rb
		dxz1=(bx1*razdaljax+by1*razdaljay+bz1*razdaljaz)/rb1
		dyz=(ax*razdaljax+ay*razdaljay+az*razdaljaz)/ra
		dyz1=(ax1*razdaljax+ay1*razdaljay+az1*razdaljaz)/ra1

		dqxy1=(cx1*rqsx+cy1*rqsy+cz1*rqsz)/rc1
		dqxy=(cx*rqsx+cy*rqsy+cz*rqsz)/rc
		dqxz=(bx*rqsx+by*rqsy+bz*rqsz)/rb
		dqxz1=(bx1*rqsx+by1*rqsy+bz1*rqsz)/rb1
		dqyz=(ax*rqsx+ay*rqsy+az*rqsz)/ra
		dqyz1=(ax1*rqsx+ay1*rqsy+az1*rqsz)/ra1

		//alert("razdaljax"+razdaljax)
		//alert("dyz"+dyz)
		//alert("dyz1"+dyz1)

		
		if(i==0){
		if(a[i][12]==0 && a[i][13]==0 && a[i][14]==0){
		podx=0;
		pody=0;
		podz=0;
		pdx=0;
		pdy=0;
		pdz=0;
		}
		if(a[i][12]==0 && a[i][13]!=0){
		podx=0;
		pody=1;
		podz=1;
		pdx=0;
		pdy=0;
		pdz=0;
		}
		if(a[i][12]!=0 && a[i][13]==0){
		podx=1;
		pody=0;
		podz=1;
		pdx=0;
		pdy=0;
		pdz=0;
		}
		if(a[i][12]!=0 && a[i][14]==0){
		podx=1;
		pody=1;
		podz=0;
		pdx=0;
		pdy=0;
		pdz=0;
		}
		if(a[i][12]==1 && a[i][13]==1 && a[i][14]==1){
		podx=0;
		pody=0;
		podz=0;
		pdx=1;
		pdy=1;
		pdz=1;
		}
		nos=-((ax/ra)*(a[i][3]-qdx*a[i][15]*rx+rfx1a*pdx+rfx2b*podx)+(ay/ra)*(a[i][4]-qdy*a[i][16]*ry+rfy2b*pody+rfy1a*pdy)+(az/ra)*(a[i][5]-qdz*a[i][17]*rz+rfz1a*pdz+rfz2b*podz))+nos
			ty=-((bx/rb)*(a[i][3]-qdx*a[i][15]*rx+rfx1a*pdx+rfx2b*podx)+(by/rb)*(a[i][4]-qdy*a[i][16]*ry+rfy2b*pody+rfy1a*pdy)+(bz/rb)*(a[i][5]-qdz*a[i][17]*rz+rfz1a*pdz+rfz2b*podz))+ty
	
		tz=-((cx/rc)*(a[i][3]-qdx*a[i][15]*rx+rfx1a*pdx+rfx2b*podx)+(cy/rc)*(a[i][4]-qdy*a[i][16]*ry+rfy2b*pody+rfy1a*pdy)+(cz/rc)*(a[i][5]-qdz*a[i][17]*rz+rfz1a*pdz+rfz2b*podz))+tz
		
		fnx1=(ax1/ra1)*(a[i][3]+rfx1a*pdx+rfx2b*podx)+(ay1/ra1)*(a[i][4]+rfy2b*pody+rfy1a*pdy)+(az1/ra1)*(a[i][5]+rfz1a*pdz+rfz2b*podz);
		fny1=(bx1/rb1)*(a[i][3]+rfx1a*pdx+rfx2b*podx)+(by1/rb1)*(a[i][4]+rfy2b*pody+rfy1a*pdy)+(bz1/rb1)*(a[i][5]+rfz1a*pdz+rfz2b*podz);
		fnz1=(cx1/rc1)*(a[i][3]+rfx1a*pdx+rfx2b*podx)+(cy1/rc1)*(a[i][4]+rfy2b*pody+rfy1a*pdy)+(cz1/rc1)*(a[i][5]+rfz1a*pdz+rfz2b*podz);
		mx1=-(-dxz1*fnz1+dxy1*fny1-dqxy1*qy1+dqxz1*qz1+mmx1)
		my1=-(dyz1*fnz1-dxy1*fnx1+dqxy1*qx1-dqyz1*qz1+mmy1)
		mz1=-(dxz1*fnx1-dyz1*fny1+dqyz1*qy1-dqxz1*qx1+mmz1)


		fnx=(ax/ra)*(a[i][3]+rfx1a*pdx+rfx2b*podx)+(ay/ra)*(a[i][4]+rfy2b*pody+rfy1a*pdy)+(az/ra)*(a[i][5]+rfz1a*pdz+rfz2b*podz);
		fny=(bx/rb)*(a[i][3]+rfx1a*pdx+rfx2b*podx)+(by/rb)*(a[i][4]+rfy2b*pody+rfy1a*pdy)+(bz/rb)*(a[i][5]+rfz1a*pdz+rfz2b*podz);
		fnz=(cx/rc)*(a[i][3]+rfx1a*pdx+rfx2b*podx)+(cy/rc)*(a[i][4]+rfy2b*pody+rfy1a*pdy)+(cz/rc)*(a[i][5]+rfz1a*pdz+rfz2b*podz);
		
		mx=-(-dxz*fnz+dxy*fny-dqxy*qy+dqxz*qz+mmx)
		my=-(dyz*fnz-dxy*fnx+dqxy*qx-dqyz*qz+mmy)
		mz=-(dxz*fnx-dyz*fny+dqyz*qy-dqxz*qx+mmz)
		


		}else{
		if(a[i-1][12]==0 && a[i-1][13]==0 && a[i-1][14]==0){
		podx=0;
		pody=0;
		podz=0;
		pdx=0;
		pdy=0;
		pdz=0;
		}
		if(a[i-1][12]==0 && a[i-1][13]!=0){
		podx=0;
		pody=1;
		podz=1;
		pdx=0;
		pdy=0;
		pdz=0;
		}
		if(a[i-1][12]!=0 && a[i-1][13]==0){
		podx=1;
		pody=0;
		podz=1;
		pdx=0;
		pdy=0;
		pdz=0;
		}
		if(a[i-1][12]!=0 && a[i-1][14]==0){
		podx=1;
		pody=1;
		podz=0;
		pdx=0;
		pdy=0;
		pdz=0;
		}
		if(a[i-1][12]==1 && a[i-1][13]==1 && a[i-1][14]==1){
		podx=0;
		pody=0;
		podz=0;
		pdx=1;
		pdy=1;
		pdz=1;
		}
		nos1=-((ax1/ra1)*(a[i-1][3]-qdx*a[i][15]*rx+rfx1a*pdx+rfx2b*podx)+(ay1/ra1)*(a[i-1][4]-qdy*a[i][16]*ry+rfy2b*pody+rfy1a*pdy)+(az1/ra1)*(a[i-1][5]-qdz*a[i][17]*rz+rfz1a*pdz+rfz2b*podz))+nos1
		
		ty1=-((bx1/rb1)*(a[i-1][3]-qdx*a[i][15]*rx+rfx1a*pdx+rfx2b*podx)+(by1/rb1)*(a[i-1][4]-qdy*a[i][16]*ry+rfy2b*pody+rfy1a*pdy)+(bz1/rb1)*(a[i-1][5]-qdz*a[i][17]*rz+rfz1a*pdz+rfz2b*podz))+ty1
		
		tz1=-((cx1/rc1)*(a[i-1][3]-qdx*a[i][15]*rx+rfx1a*pdx+rfx2b*podx)+(cy1/rc1)*(a[i-1][4]-qdy*a[i][16]*ry+rfy2b*pody+rfy1a*pdy)+(cz1/rc1)*(a[i-1][5]-qdz*a[i][17]*rz+rfz1a*pdz+rfz2b*podz))+tz1
	

		if(a[i][12]==0 && a[i][13]==0 && a[i][14]==0){
		podx=0;
		pody=0;
		podz=0;
		pdx=0;
		pdy=0;
		pdz=0;
		}
		if(a[i][12]==0 && a[i][13]!=0){
		podx=0;
		pody=1;
		podz=1;
		pdx=0;
		pdy=0;
		pdz=0;
		}
		if(a[i][12]!=0 && a[i][13]==0){
		podx=1;
		pody=0;
		podz=1;
		pdx=0;
		pdy=0;
		pdz=0;
		}
		if(a[i][12]!=0 && a[i][14]==0){
		podx=1;
		pody=1;
		podz=0;
		pdx=0;
		pdy=0;
		pdz=0;
		}
		if(a[i][12]==1 && a[i][13]==1 && a[i][14]==1){
		podx=0;
		pody=0;
		podz=0;
		pdx=1;
		pdy=1;
		pdz=1;
		}
		nos=-((ax/ra)*(a[i][3]-qdx*a[i][15]*rx+rfx1a*pdx+rfx2b*podx)+(ay/ra)*(a[i][4]-qdy*a[i][16]*ry+rfy2b*pody+rfy1a*pdy)+(az/ra)*(a[i][5]-qdz*a[i][17]*rz+rfz1a*pdz+rfz2b*podz))+nos

		ty=-((bx/rb)*(a[i][3]-qdx*a[i][15]*rx+rfx1a*pdx+rfx2b*podx)+(by/rb)*(a[i][4]-qdy*a[i][16]*ry+rfy2b*pody+rfy1a*pdy)+(bz/rb)*(a[i][5]-qdz*a[i][17]*rz+rfz1a*pdz+rfz2b*podz))+ty
		
		tz=-((cx/rc)*(a[i][3]-qdx*a[i][15]*rx+rfx1a*pdx+rfx2b*podx)+(cy/rc)*(a[i][4]-qdy*a[i][16]*ry+rfy2b*pody+rfy1a*pdy)+(cz/rc)*(a[i][5]-qdz*a[i][17]*rz+rfz1a*pdz+rfz2b*podz))+tz
	
			
		fnx1=(ax1/ra1)*(a[i][3]+rfx1a*pdx+rfx2b*podx)+(ay1/ra1)*(a[i][4]+rfy2b*pody+rfy1a*pdy)+(az1/ra1)*(a[i][5]+rfz1a*pdz+rfz2b*podz);
		fny1=(bx1/rb1)*(a[i][3]+rfx1a*pdx+rfx2b*podx)+(by1/rb1)*(a[i][4]+rfy2b*pody+rfy1a*pdy)+(bz1/rb1)*(a[i][5]+rfz1a*pdz+rfz2b*podz);
		fnz1=(cx1/rc1)*(a[i][3]+rfx1a*pdx+rfx2b*podx)+(cy1/rc1)*(a[i][4]+rfy2b*pody+rfy1a*pdy)+(cz1/rc1)*(a[i][5]+rfz1a*pdz+rfz2b*podz);
		mx1=-(-dxz1*fnz1+dxy1*fny1-dqxy1*qy1+dqxz1*qz1+mmx1)
		my1=-(dyz1*fnz1-dxy1*fnx1+dqxy1*qx1-dqyz1*qz1+mmy1)
		mz1=-(dxz1*fnx1-dyz1*fny1+dqyz1*qy1-dqxz1*qx1+mmz1)

		fnx=(ax/ra)*(a[i][3]+rfx1a*pdx+rfx2b*podx)+(ay/ra)*(a[i][4]+rfy2b*pody+rfy1a*pdy)+(az/ra)*(a[i][5]+rfz1a*pdz+rfz2b*podz);
		fny=(bx/rb)*(a[i][3]+rfx1a*pdx+rfx2b*podx)+(by/rb)*(a[i][4]+rfy2b*pody+rfy1a*pdy)+(bz/rb)*(a[i][5]+rfz1a*pdz+rfz2b*podz);
		fnz=(cx/rc)*(a[i][3]+rfx1a*pdx+rfx2b*podx)+(cy/rc)*(a[i][4]+rfy2b*pody+rfy1a*pdy)+(cz/rc)*(a[i][5]+rfz1a*pdz+rfz2b*podz);
		
		mx=-(-dxz*fnz+dxy*fny-dqxy*qy+dqxz*qz+mmx)
		my=-(dyz*fnz-dxy*fnx+dqxy*qx-dqyz*qz+mmy)
		mz=-(dxz*fnx-dyz*fny+dqyz*qy-dqxz*qx+mmz)
		}
		mxn=mx+mxn
		myn=my+myn
		mzn=mz+mzn
		mxn1=mx1+mxn1
		myn1=my1+myn1
		mzn1=mz1+mzn1
		//alert("fny"+fny);
		//alert("mzn"+mzn);
		//alert("mxn"+mxn);
		}
		}else{
				//"se za konzolo"
			if(i==0){
				ax1=a[i+1][0]-a[i][0];
				ay1=a[i+1][1]-a[i][1];
				az1=a[i+1][2]-a[i][2];
				ax=a[i+1][0]-a[i][0];
				ay=a[i+1][1]-a[i][1];
				az=a[i+1][2]-a[i][2];
				}
				if(i!=0 && i n-1){
				ax1=a[i][0]-a[i-1][0];
				ay1=a[i][1]-a[i-1][1];
				az1=a[i][2]-a[i-1][2];
				ax=a[i+1][0]-a[i][0];
				ay=a[i+1][1]-a[i][1];
				az=a[i+1][2]-a[i][2];
				}
				if(i==n-1){
				alert
				ax=a[i][0]-a[i-1][0];
				ay=a[i][1]-a[i-1][1];
				az=a[i][2]-a[i-1][2];
				ax1=a[i][0]-a[i-1][0];
				ay1=a[i][1]-a[i-1][1];
				az1=a[i][2]-a[i-1][2];
				}
			if(az1!=0 && az1<0){
			cx1=1;
			cy1=0;
			cz1=(ax1*cx1)/az1
			}
			if(az1!=0 && az1>0){
			cx1=-1;
			cy1=0;
			cz1=(ax1*cx)/az1
			}
			if(az1==0){
			cx1=0;
			cz1=1;
			cy1=0;
			}
		bx1=cy1*az1-cz1*ay1
		by1=cz1*ax1-cx1*az1
		bz1=cx1*ay1-cy1*ax1
		ra1=Math.sqrt(ax1*ax1+ay1*ay1+az1*az1)
		rb1=Math.sqrt(bx1*bx1+by1*by1+bz1*bz1)
		rc1=Math.sqrt(cx1*cx1+cy1*cy1+cz1*cz1)

		
			if(az!=0 && az 0){
			cx=1;
			cy=0;
			cz=(ax*cx)/az
			}
			if(az!=0 && az>0){
			cx=-1;
			cy=0;
			cz=(ax*cx)/az
			}
			if(az==0){
			cx=0;
			cz=1;
			cy=0;
			}
		bx=cy*az-cz*ay
		by=cz*ax-cx*az
		bz=cx*ay-cy*ax
		ra=Math.sqrt(ax*ax+ay*ay+az*az)
		rb=Math.sqrt(bx*bx+by*by+bz*bz)
		rc=Math.sqrt(cx*cx+cy*cy+cz*cz)
		
		bb[i]=new Array(); bb1[i]=new Array(); cc[i]=new Array(); cc1[i]=new Array(); 
		bb[i][0]=bx; bb[i][1]=by; bb[i][2]=bz; bb1[i][0]=bx1; bb1[i][1]=by1; bb1[i][2]=bz1;
		cc[i][0]=cx; cc[i][1]=cy; cc[i][2]=cz; cc1[i][0]=cx1; cc1[i][1]=cy1; cc1[i][2]=cz1;
		rrb[i]=rb; rrb1[i]=rb1; rrc[i]=rc; rrc1[i]=rc1;
		

			nn=i+1
		nos1=0;
		ty1=0;
		tz1=0;
		ty=0;
		nos=0;
		tz=0;

		rmsx=a[i][0];
		rmsy=a[i][1];
		rmsz=a[i][2];

		

			for(i=0; i nn; i++) {
		//alert("i"+i);
		//alert("nn"+nn);
		
		if(i==0){
			qdx=0;
			qdy=0;
			qdz=0;
			rx=0;
			ry=0;
			rz=0;
			rsx0=0;
			rsy0=0;
			rsz0=0;
			
			}else{
			if(a[i-1][15]==0){
				qdx=0;
				}else{
				qdx=1;
				}
			if(a[i-1][16]==0){
				qdy=0;
				}else{
				qdy=1;
				}
			if(a[i-1][17]==0){
			qdz=0;
			}else{
			qdz=1;
			}
		rx=Math.sqrt((a[i-1][1]-a[i][1])*(a[i-1][1]-a[i][1])+(a[i-1][2]-a[i][2])*(a[i-1][2]-a[i][2]))
		ry=Math.sqrt((a[i-1][0]-a[i][0])*(a[i-1][0]-a[i][0])+(a[i-1][2]-a[i][2])*(a[i-1][2]-a[i][2]))
		rz=Math.sqrt((a[i-1][1]-a[i][1])*(a[i-1][1]-a[i][1])+(a[i-1][0]-a[i][0])*(a[i-1][0]-a[i][0]))
		rsx=0; rsy=0; rsz=0;
		rsx=((a[i][0]-a[i-1][0])/2)+a[i-1][0]
		rsy=((a[i][1]-a[i-1][1])/2)+a[i-1][1]
		rsz=((a[i][2]-a[i-1][2])/2)+a[i-1][2]

		rsx0=((-a[i][0]+a[i-1][0])/2)
		rsy0=((-a[i][1]+a[i-1][1])/2)
		rsz0=((-a[i][2]+a[i-1][2])/2)


		}

		qx=(qdx*a[i][15]*rx)*(ax/ra)+(qdy*a[i][16]*ry)*(ay/ra)+(qdz*a[i][17]*rz)*(az/ra)
		qx1=(qdx*a[i][15]*rx)*(ax1/ra1)+(qdy*a[i][16]*ry)*(ay1/ra1)+(qdz*a[i][17]*rz)*(az1/ra1)
		qy=(qdx*a[i][15]*rx)*(bx/rb)+(qdy*a[i][16]*ry)*(by/rb)+(qdz*a[i][17]*rz)*(bz/rb)
		qy1=(qdx*a[i][15]*rx)*(bx1/rb1)+(qdy*a[i][16]*ry)*(by1/rb1)+(qdz*a[i][17]*rz)*(bz1/rb1)
		qz=(qdx*a[i][15]*rx)*(cx/rc)+(qdy*a[i][16]*ry)*(cy/rc)+(qdz*a[i][17]*rz)*(cz/rc)
		qz1=(qdx*a[i][15]*rx)*(cx1/rc1)+(qdy*a[i][16]*ry)*(cy1/rc1)+(qdz*a[i][17]*rz)*(cz1/rc1)

		mmx=(a[i][6])*(ax/ra)+(a[i][7])*(ay/ra)+(a[i][8])*(az/ra)
		mmx1=(a[i][6])*(ax1/ra1)+(a[i][7])*(ay1/ra1)+(a[i][8])*(az1/ra1)
		mmy=(a[i][6])*(bx/rb)+(a[i][7])*(by/rb)+(a[i][8])*(bz/rb)
		mmy1=(a[i][6])*(bx1/rb1)+(a[i][7])*(by1/rb1)+(a[i][8])*(bz1/rb1)
		mmz=(a[i][6])*(cx/rc)+(a[i][7])*(cy/rc)+(a[i][8])*(cz/rc)
		mmz1=(a[i][6])*(cx1/rc1)+(a[i][7])*(cy1/rc1)+(a[i][8])*(cz1/rc1)

		kmmx=(rmx)*(ax/ra)+(rmy)*(ay/ra)+(rmz)*(az/ra)
		kmmx1=(rmx)*(ax1/ra1)+(rmy)*(ay1/ra1)+(rmz)*(az1/ra1)
		kmmy=(rmx)*(bx/rb)+(rmy)*(by/rb)+(rmz)*(bz/rb)
		kmmy1=(rmx)*(bx1/rb1)+(rmy)*(by1/rb1)+(rmz)*(bz1/rb1)
		kmmz=(rmx)*(cx/rc)+(rmy)*(cy/rc)+(rmz)*(cz/rc)
		kmmz1=(rmx)*(cx1/rc1)+(rmy)*(cy1/rc1)+(rmz)*(cz1/rc1)

		razdaljax=a[i][0]-rmsx
		razdaljay=a[i][1]-rmsy
		razdaljaz=a[i][2]-rmsz

		rqsx=razdaljax+rsx0
		rqsy=razdaljay+rsy0
		rqsz=razdaljaz+rsz0

		dxy1=(cx1*razdaljax+cy1*razdaljay+cz1*razdaljaz)/rc1
		dxy=(cx*razdaljax+cy*razdaljay+cz*razdaljaz)/rc
		dxz=(bx*razdaljax+by*razdaljay+bz*razdaljaz)/rb
		dxz1=(bx1*razdaljax+by1*razdaljay+bz1*razdaljaz)/rb1
		dyz=(ax*razdaljax+ay*razdaljay+az*razdaljaz)/ra
		dyz1=(ax1*razdaljax+ay1*razdaljay+az1*razdaljaz)/ra1

		dqxy1=(cx1*rqsx+cy1*rqsy+cz1*rqsz)/rc1
		dqxy=(cx*rqsx+cy*rqsy+cz*rqsz)/rc
		dqxz=(bx*rqsx+by*rqsy+bz*rqsz)/rb
		dqxz1=(bx1*rqsx+by1*rqsy+bz1*rqsz)/rb1
		dqyz=(ax*rqsx+ay*rqsy+az*rqsz)/ra
		dqyz1=(ax1*rqsx+ay1*rqsy+az1*rqsz)/ra1

		//alert("razdaljax"+razdaljax)
		//alert("dyz"+dyz)
		//alert("dyz1"+dyz1)
//alert("i"+i);
		if(i==0){
		if(a[i][12]==0 && a[i][13]==0 && a[i][14]==0){
		pdx=0;
		pdy=0;
		pdz=0;
		}
		if(a[i][12]!=0 && a[i][13]!=0 && a[i][14]!=0){
		pdx=1;
		pdy=1;
		pdz=1;
		}
		
		nos=-((ax/ra)*(a[i][3]-qdx*a[i][15]*rx+rfx*pdx)+(ay/ra)*(a[i][4]-qdy*a[i][16]*ry+rfy*pdy)+(az/ra)*(a[i][5]-qdz*a[i][17]*rz+rfz*pdz))+nos
		ty=-((bx/rb)*(a[i][3]-qdx*a[i][15]*rx+rfx*pdx)+(by/rb)*(a[i][4]-qdy*a[i][16]*ry+rfy*pdy)+(bz/rb)*(a[i][5]-qdz*a[i][17]*rz+rfz*pdz))+ty
		tz=-((cx/rc)*(a[i][3]-qdx*a[i][15]*rx+rfx*pdx)+(cy/rc)*(a[i][4]-qdy*a[i][16]*ry+rfy*pdy)+(cz/rc)*(a[i][5]-qdz*a[i][17]*rz+rfz*pdz))+tz
		
		fnx1=(ax1/ra1)*(a[i][3]+rfx*pdx)+(ay1/ra1)*(a[i][4]+rfy*pdy)+(az1/ra1)*(a[i][5]+rfz*pdz);
		fny1=(bx1/rb1)*(a[i][3]+rfx*pdx)+(by1/rb1)*(a[i][4]+rfy*pdy)+(bz1/rb1)*(a[i][5]+rfz*pdz);
		fnz1=(cx1/rc1)*(a[i][3]+rfx*pdx)+(cy1/rc1)*(a[i][4]+rfy*pdy)+(cz1/rc1)*(a[i][5]+rfz*pdz);
		mx1=-(-dxz1*fnz1+dxy1*fny1-dqxy1*qy1+dqxz1*qz1+kmmx1*pdx+mmx1)
		my1=-(dyz1*fnz1-dxy1*fnx1+dqxy1*qx1-dqyz1*qz1+kmmy1*pdy+mmy1)
		mz1=-(dxz1*fnx1-dyz1*fny1+dqyz1*qy1-dqxz1*qx1+kmmz1*pdz+mmz1)
//alert("1"+fny1);
//alert("dyz1"+dyz1);
//alert("mz1"+mz1);
		fnx=(ax/ra)*(a[i][3]+rfx*pdx)+(ay/ra)*(a[i][4]+rfy*pdy)+(az/ra)*(a[i][5]+rfz*pdz);
		fny=(bx/rb)*(a[i][3]+rfx*pdx)+(by/rb)*(a[i][4]+rfy*pdy)+(bz/rb)*(a[i][5]+rfz*pdz);
		fnz=(cx/rc)*(a[i][3]+rfx*pdx)+(cy/rc)*(a[i][4]+rfy*pdy)+(cz/rc)*(a[i][5]+rfz*pdz);
		
		mx=-(-dxz*fnz+dxy*fny-dqxy*qy+dqxz*qz+kmmx*pdx+mmx)
		my=-(dyz*fnz-dxy*fnx+dqxy*qx-dqyz*qz+kmmy*pdy+mmy)
		mz=-(dxz*fnx-dyz*fny+dqyz*qy-dqxz*qx+kmmz*pdz+mmz)
		


		}else{
		if(a[i-1][12]==0 && a[i-1][13]==0 && a[i-1][14]==0){
		pdx=0;
		pdy=0;
		pdz=0;
		}
		if(a[i-1][12]!=0 && a[i-1][13]!=0 && a[i-1][14]!=0){
		pdx=1;
		pdy=1;
		pdz=1;
		}
		
		nos1=-((ax1/ra1)*(a[i-1][3]-qdx*a[i][15]*rx+rfx*pdx)+(ay1/ra1)*(a[i-1][4]-qdy*a[i][16]*ry+rfy*pdy)+(az1/ra1)*(a[i-1][5]-qdz*a[i][17]*rz+rfz*pdz))+nos1
		
		ty1=-((bx1/rb1)*(a[i-1][3]-qdx*a[i][15]*rx+rfx*pdx)+(by1/rb1)*(a[i-1][4]-qdy*a[i][16]*ry+rfy*pdy)+(bz1/rb1)*(a[i-1][5]-qdz*a[i][17]*rz+rfz*pdz))+ty1
		
		tz1=-((cx1/rc1)*(a[i-1][3]-qdx*a[i][15]*rx+rfx*pdx)+(cy1/rc1)*(a[i-1][4]-qdy*a[i][16]*ry+rfy*pdy)+(cz1/rc1)*(a[i-1][5]-qdz*a[i][17]*rz+rfz*pdz))+tz1
	

		if(a[i][12]==0 && a[i][13]==0 && a[i][14]==0){
		pdx=0;
		pdy=0;
		pdz=0;
		}
		if(a[i][12]!=0 && a[i][13]!=0 && a[i-1][14]!=0){
		pdx=1;
		pdy=1;
		pdz=1;
		}
		
		nos=-((ax/ra)*(a[i][3]-qdx*a[i][15]*rx+rfx*pdx)+(ay/ra)*(a[i][4]-qdy*a[i][16]*ry+rfy*pdy)+(az/ra)*(a[i][5]-qdz*a[i][17]*rz+rfz*pdz))+nos
		ty=-((bx/rb)*(a[i][3]-qdx*a[i][15]*rx+rfx*pdx)+(by/rb)*(a[i][4]-qdy*a[i][16]*ry+rfy*pdy)+(bz/rb)*(a[i][5]-qdz*a[i][17]*rz+rfz*pdz))+ty
		tz=-((cx/rc)*(a[i][3]-qdx*a[i][15]*rx+rfx*pdx)+(cy/rc)*(a[i][4]-qdy*a[i][16]*ry+rfy*pdy)+(cz/rc)*(a[i][5]-qdz*a[i][17]*rz+rfz*pdz))+tz
		
		fnx1=(ax1/ra1)*(a[i][3]+rfx*pdx)+(ay1/ra1)*(a[i][4]+rfy*pdy)+(az1/ra1)*(a[i][5]+rfz*pdz);
		fny1=(bx1/rb1)*(a[i][3]+rfx*pdx)+(by1/rb1)*(a[i][4]+rfy*pdy)+(bz1/rb1)*(a[i][5]+rfz*pdz);
		fnz1=(cx1/rc1)*(a[i][3]+rfx*pdx)+(cy1/rc1)*(a[i][4]+rfy*pdy)+(cz1/rc1)*(a[i][5]+rfz*pdz);

		mx1=-(-dxz1*fnz1+dxy1*fny1-dqxy1*qy1+dqxz1*qz1+kmmx1*pdx+mmx1)
		my1=-(dyz1*fnz1-dxy1*fnx1+dqxy1*qx1-dqyz1*qz1+kmmy1*pdy+mmy1)
		mz1=-(dxz1*fnx1-dyz1*fny1+dqyz1*qy1-dqxz1*qx1+kmmz1*pdz+mmz1)
//alert("2"+fny1);
//alert("dyz1"+dyz1);
//alert("mz2"+mz1);
		fnx=(ax/ra)*(a[i][3]+rfx*pdx)+(ay/ra)*(a[i][4]+rfy*pdy)+(az/ra)*(a[i][5]+rfz*pdz);
		fny=(bx/rb)*(a[i][3]+rfx*pdx)+(by/rb)*(a[i][4]+rfy*pdy)+(bz/rb)*(a[i][5]+rfz*pdz);
		fnz=(cx/rc)*(a[i][3]+rfx*pdx)+(cy/rc)*(a[i][4]+rfy*pdy)+(cz/rc)*(a[i][5]+rfz*pdz);
		

		mx=-(-dxz*fnz+dxy*fny-dqxy*qy+dqxz*qz+kmmx*pdx+mmx)
		my=-(dyz*fnz-dxy*fnx+dqxy*qx-dqyz*qz+kmmy*pdy+mmy)
		mz=-(dxz*fnx-dyz*fny+dqyz*qy-dqxz*qx+kmmz*pdz+mmz)
		}
		

		mxn=mx+mxn
		myn=my+myn
		mzn=mz+mzn
		mxn1=mx1+mxn1
		myn1=my1+myn1
		mzn1=mz1+mzn1

		//alert("fny"+fny);
		//alert("mzn1"+mzn1);
		}
		}
	
		Ty[r]=(Math.round(1000*ty))/1000;
		N[r]=(Math.round(1000*nos))/1000;
		N1[r]=(Math.round(1000*nos1))/1000;
		Tz[r]=(Math.round(1000*tz))/1000;
		Tz1[r]=(Math.round(1000*tz1))/1000;
		Ty1[r]=(Math.round(1000*ty1))/1000;
		Mox[r]=(Math.round(1000*mxn))/1000;
		Moy[r]=(Math.round(1000*myn))/1000;
		Moz[r]=(Math.round(1000*mzn))/1000;
		Mox1[r]=(Math.round(1000*mxn1))/1000;
		Moy1[r]=(Math.round(1000*myn1))/1000;
		Moz1[r]=(Math.round(1000*mzn1))/1000;
	
	}
		
		
}
	



		//"izris parametrov"

function koordinat(){
var ks=new Array();
 ks[0]=new Ppoint(0.3,0.5+0.42);
 ks[1]=new Ppoint(0.3-0.008,0.5+0.42);
 ks[2]=new Ppoint(0.3,0.5+0.45);
 ks[3]=new Ppoint(0.3+0.008,0.5+0.42);
 ks[4]=new Ppoint(ks[0].x,ks[0].y);
 ks[5]=new Ppoint(0.3,0.5);
 ks[6]=new Ppoint(0.3+0.6459,0.5-0.2633);
 ks[7]=new Ppoint(0.3+0.649,0.5-0.2558);
 ks[8]=new Ppoint(0.3+0.6737,0.5-0.2746);
 ks[9]=new Ppoint(0.3+0.6429,0.5-0.2707);
 ks[10]=new Ppoint(ks[6].x,ks[6].y);

var kor_kriz=new Ppoint_list(11, ks);


 pset_line_colr_ind(2);
 pset_text_colr_ind(2);
 ptext(new Ppoint(0.25,0.5+0.43), "Y");
 ptext(new Ppoint(0.33+0.63,0.5-0.25), "X");
 ppolyline(kor_kriz);
}

function koordinat1(){

 var ks1=new Array();
 ks1[0]=new Ppoint(0.3, 0.5);
 ks1[1]=new Ppoint(0.3-0.231,0.5-0.283);
 ks1[2]=new Ppoint(0.3-0.2248,0.5-0.288);
 ks1[3]=new Ppoint(0.3-0.25,0.5-0.3062);
 ks1[4]=new Ppoint(0.3-0.2372,0.5-0.2779);
 ks1[5]=new Ppoint(0.3-0.231,0.5-0.283);
 ks1[6]=new Ppoint(ks1[0].x, ks1[0].y);

 var kor_kriz1=new Ppoint_list(7, ks1);

  pset_line_colr_ind(2);
 ppolyline(kor_kriz1);
 pset_text_colr_ind(2);
 ptext(new Ppoint(0.32-0.24,0.48-0.29), "Z");
}

//funkcije za prikaz posameznih ravnin
//x-y ravnina
kot=20;
	kotz=20;
	kotx=42.8;
	xkot=42.8;
	ykot=20;
	zkot=20;
function ravninaXY(){
kotx=0;
kot=0;
kotz=0;
return kotx;
	return kot;
	return kotz;
}
//x-z ravnina
function ravninaXZ(){
kotx=-90;
kot=0;
kotz=-90;
return kotx;
	return kot;
	return kotz;
}
//z-y ravnina
function ravninaZY(){
kotx=90;
kot=90;
kotz=0;
return kotx;
	return kot;
	return kotz;
}


//definiranje kota
function sprememba_kota(){
	kotx=xkot;
	kot=ykot;
	kotz=zkot;
	return kotx;
	return kot;
	return kotz;
	rotacijaNosilca();
	}


//rotacija
function rotacija(rotx,roty,rotz){
		var deg=Math.PI/180;
		spempredznakz=-rotz
		x1=rotx
		y1=(roty)*Math.cos(kotx*deg)+(spempredznakz)*Math.sin(kotx*deg);
		z1=(-(roty)*Math.sin(kotx*deg)+(spempredznakz)*Math.cos(kotx*deg));

		z11=z1
		x11=(x1)*Math.cos(kotz*deg)+(y1)*Math.sin(kotz*deg);
		y11=-(x1)*Math.sin(kotz*deg)+(y1)*Math.cos(kotz*deg);

		y111=y11
		x111=(x11)*Math.cos(kot*deg)+(z11)*Math.sin(kot*deg);
		z111=-(x11)*Math.sin(kot*deg)+(z11)*Math.cos(kot*deg);
return x111;
return y111;
return z111;
}
//rotacija za poljubenj kot
function rotacijaPoljubno(rotx,roty,rotz,pkotx,pkotz,pkoty){
		var deg=Math.PI/180;
		spempredznakz=-rotz
		x1=rotx
		y1=(roty)*Math.cos(pkotx*deg)+(spempredznakz)*Math.sin(pkotx*deg);
		z1=(-(roty)*Math.sin(pkotx*deg)+(spempredznakz)*Math.cos(pkotx*deg));

		z11=z1
		x11=(x1)*Math.cos(pkotz*deg)+(y1)*Math.sin(pkotz*deg);
		y11=-(x1)*Math.sin(pkotz*deg)+(y1)*Math.cos(pkotz*deg);

		y111=y11
		x111=(x11)*Math.cos(pkoty*deg)+(z11)*Math.sin(pkoty*deg);
		z111=-(x11)*Math.sin(pkoty*deg)+(z11)*Math.cos(pkoty*deg);
return x111;
return y111;
return z111;
}
//mali koordinatni sistem
function maliKoordinatniSistem(){
	mks=new Array();
	mks[0]=new Array(0.2,0,0);
	mks[1]=new Array(0,0.2,0);
	mks[2]=new Array(0,0,0.2);
	var rotiraniKSx=new Array;
	var rotiraniKSy=new Array;
	for(var i=0; i 3; i++){
		rotx=mks[i][0];
		roty=mks[i][1];
		rotz=mks[i][2];
	rotacija(rotx,roty,rotz);
	rotiraniKSx[i]=x111+0.75;
	rotiraniKSy[i]=y111+0.75;
	var tockaKS=new Array();
	tockaKS[0]=new Ppoint(0.75,0.75);
	tockaKS[1]=new Ppoint(rotiraniKSx[i],rotiraniKSy[i]);
	var maliKS=new Ppoint_list(2, tockaKS);
	 pset_line_colr_ind(2);
	 ppolyline(maliKS);
	 }
	pset_text_colr_ind(2);
	ptext(new Ppoint(rotiraniKSx[0]+0.02,rotiraniKSy[0]+0.02), "X");
	ptext(new Ppoint(rotiraniKSx[1]+0.02,rotiraniKSy[1]+0.02), "Y");
	ptext(new Ppoint(rotiraniKSx[2]+0.02,rotiraniKSy[2]+0.02), "Z");
}

//rotacija  prvo okrog x nato z in potem y
var tockax= new Array();
	var tockay= new Array();
	var tocka= new Array();

var pompodporaClenkasta=new Array();
		pompodporaClenkasta[0]=new Array(0,0,0);
		pompodporaClenkasta[1]=new Array(0.05,0,0.05);
		pompodporaClenkasta[2]=new Array(-0.05,0,0.05);
		pompodporaClenkasta[3]=new Array(0.05,0,-0.05);
		pompodporaClenkasta[4]=new Array(-0.05,0,-0.05);
		pompodporaClenkasta[5]=new Array(0.06,0,0.06);
		pompodporaClenkasta[6]=new Array(-0.06,0,0.06);
		pompodporaClenkasta[7]=new Array(0.06,0,-0.06);
		pompodporaClenkasta[8]=new Array(-0.06,0,-0.06);

function rotacijaNosilca(){
	var deg=Math.PI/180;
	
	var xx=0; yy=0; x1=0; y1=0; z1=0; x11=0; y11=0; z11=0; x111=0; y111=0; z111=0;  skal=1; skal1=1; skal11=1; skal2=1; premikx=0; premiky=0; transx=0; transy=0;
	
	transx1=0;
	transy1=0;

	for(var i=0; i n; i++){
		//alert(a[i][0]);
		 //spememba predznaka z koordinate
		spempredznakz=-a[i][2]
		x1=a[i][0]
	y1=(a[i][1])*Math.cos(kotx*deg)+(spempredznakz)*Math.sin(kotx*deg);
		z1=(-(a[i][1])*Math.sin(kotx*deg)+(spempredznakz)*Math.cos(kotx*deg));

		z11=z1
		x11=(x1)*Math.cos(kotz*deg)+(y1)*Math.sin(kotz*deg);
		y11=-(x1)*Math.sin(kotz*deg)+(y1)*Math.cos(kotz*deg);

		y111=y11
		x111=(x11)*Math.cos(kot*deg)+(z11)*Math.sin(kot*deg);
		z111=-(x11)*Math.sin(kot*deg)+(z11)*Math.cos(kot*deg);
	
		//translacija//
		if(y111 0){
			transy=0-y111;
			if(transy>transy1){
			transy1=transy;
			}
		}
		if(x111 0){
		transx=0-x111;
			if(transx>transx1){
			transx1=transx;
			}
		}
		tockax[i]=x111;
		tockay[i]=y111;
		//alert("xx0"+x111);
		//alert("yy0"+tockay[i]);
	}
	//skalacija
	for(var i=0; i n; i++){
		tockax[i]=tockax[i]+transx1;
		tockay[i]=tockay[i]+transy1;

		if(tockax[i]>0.98 || tockay[i]>0.98){
				skalx1=0.8/tockax[i];
				skaly1=0.8/tockay[i];
				
				if(skalx1 skaly1){
					skal1=skalx1;
				}else{
					skal1=skaly1;
				}
				if(skal1 skal){
					skal=skal1;
				}
		}
		//alert("xx1"+tockax[i]);
		//alert("yy1"+tockay[i]);
	}
		
	for(var i=0; i n; i++){
		tockax[i]=tockax[i]*skal+0.1;
		tockay[i]=tockay[i]*skal+0.1;	
		xx=tockax[i];
		yy=tockay[i];
		//alert("xx"+xx);
		//alert("yy"+yy);
		tocka[i]=new Ppoint(xx, yy)			
	}
	//risanje duplikat nosilca
	var tockaDuplikat=new Array();
	// risanje podpore
	var podporaClenkasta=new Array();
		podporaClenkasta[0]=new Array(0,0,0);
		podporaClenkasta[1]=new Array(0.05,0,0.05);
		podporaClenkasta[2]=new Array(-0.05,0,0.05);
		podporaClenkasta[3]=new Array(0.05,0,-0.05);
		podporaClenkasta[4]=new Array(-0.05,0,-0.05);
		podporaClenkasta[5]=new Array(0,0,0);
		
	
		for(var i=0; i n; i++){
			
		xxx=tockax[i]+0.001;
		yyy=tockay[i]+0.001;
		tockaDuplikat[i]=new Ppoint(xxx, yyy)	
		if(a[i][13]==1 && a[i][14]==1 && a[i][12]==1 && a[i][11]==0){
			
		var tockaPodporaClenkasta=new Array();
			for(var j=0; j 6; j++){
			rotx=podporaClenkasta[j][0]/2;
			roty=podporaClenkasta[j][1]/2;
			rotz=podporaClenkasta[j][2]/2;
			rotacija(rotx,roty,rotz);
			tockaPodporaClenkasta[j]=new Ppoint(x111+tockax[i],y111+tockay[i]);
			}
			//izris reakcij
			// v x smeri
			sx=tockax[i];
			sy=tockay[i];
			skotx=kotx;
			skoty=kot;
			skotz=kotz;
			texst="RFx1";
			color=7;
			izrisSile(sx,sy,skotx,skoty,skotz,texst,color);
			// v y smeri
			sx=tockax[i];
			sy=tockay[i];
			skotx=kotx-90+22.8;
			skoty=kot;
			skotz=0-90;
			texst="RFy1";
			color=7;
			izrisSile(sx,sy,skotx,skoty,skotz,texst,color);
			// v z smeri
			sx=tockax[i];
			sy=tockay[i];
			skotx=kotx+90;
			skoty=kot+90;
			skotz=kotz;
			texst="RFz1";
			color=7;
			izrisSile(sx,sy,skotx,skoty,skotz,texst,color);
		var podporac=new Ppoint_list(j, tockaPodporaClenkasta);
		pset_line_colr_ind(6);
		ppolyline(podporac);
		}
		//podpora pomicna v x smeri
	if(a[i][13]==1 && a[i][14]==1 && a[i][12]==0){
		pkotx=kotx;
		pkoty=kot;
		pkotz=kotz;
		sx=tockax[i];
		sy=tockay[i];
		podporaPomicna(pkotx,pkotz,pkoty,sx,sy);
			//reakcije v tej podpori
			// v y smeri
			sx=tockax[i];
			sy=tockay[i];
			skotx=kotx-90;
			skoty=kot;
			skotz=0-90;
			texst="RFy2";
			color=7;
			izrisSile(sx,sy,skotx,skoty,skotz,texst,color);
			// v z smeri
			sx=tockax[i];
			sy=tockay[i];
			skotx=kotx+90;
			skoty=kot+90;
			skotz=kotz;
			texst="RFz2";
			color=7;
			izrisSile(sx,sy,skotx,skoty,skotz,texst,color);
		}
	//podpora pomicna v y smeri
	if(a[i][13]==0 && a[i][14]==1 && a[i][12]==1){
		pkotx=kotx-90;
		pkoty=kot;
		pkotz=-90;
		sx=tockax[i];
		sy=tockay[i];
		podporaPomicna(pkotx,pkotz,pkoty,sx,sy);
			//reakcije v tej podpori
				// v x smeri
			sx=tockax[i];
			sy=tockay[i];
			skotx=kotx;
			skoty=kot;
			skotz=kotz;
			texst="RFx1";
			color=7;
			izrisSile(sx,sy,skotx,skoty,skotz,texst,color);
			// v z smeri
			sx=tockax[i];
			sy=tockay[i];
			skotx=kotx+90;
			skoty=kot+90;
			skotz=kotz;
			texst="RFz2";
			color=7;
			izrisSile(sx,sy,skotx,skoty,skotz,texst,color);
		}
	//podpora pomicna v z smeri
	if(a[i][13]==1 && a[i][14]==0 && a[i][12]==1){
		pkotx=kotx+90;
		pkoty=kot+90;
		pkotz=kotz;
		sx=tockax[i];
		sy=tockay[i];
		podporaPomicna(pkotx,pkotz,pkoty,sx,sy);
			//reakcije v tej podpori
				// v x smeri
			sx=tockax[i];
			sy=tockay[i];
			skotx=kotx;
			skoty=kot;
			skotz=kotz;
			texst="RFx2";
			color=7;
			izrisSile(sx,sy,skotx,skoty,skotz,texst,color);
			// v y smeri
			sx=tockax[i];
			sy=tockay[i];
			skotx=kotx-90;
			skoty=kot;
			skotz=0-90;
			texst="RFy2";
			color=7;
			izrisSile(sx,sy,skotx,skoty,skotz,texst,color);
		}
	//fiksna podpora
	
	if(a[i][13]==1 && a[i][14]==1 && a[i][12]==1 && a[i][11]==1 && a[i][10]==1){
	var podporaFiksna=new Array();
		podporaFiksna[0]=new Array(0,0.05,0.05);
		podporaFiksna[1]=new Array(0,0.05,-0.05);
		podporaFiksna[2]=new Array(0,-0.05,-0.05);
		podporaFiksna[3]=new Array(0,-0.05,0.05);
		podporaFiksna[4]=new Array(0,0.05,0.05);
		sx=tockax[i];
		sy=tockay[i];
		var tockaPodporaFiksna=new Array();
		for(var j=0; j 5; j++){
		rotx=podporaFiksna[j][0];
		roty=podporaFiksna[j][1];
		rotz=podporaFiksna[j][2];
		rotacija(rotx,roty,rotz);
		tockaPodporaFiksna[j]=new Ppoint(x111+sx,y111+sy);
		}
		var Fiksna=new Ppoint_list(j,tockaPodporaFiksna);
		pset_line_colr_ind(6);
		ppolyline(Fiksna);
		//reakcija v x smeri
		// v x smeri
			sx=tockax[i];
			sy=tockay[i];
			skotx=kotx;
			skoty=kot;
			skotz=kotz;
			texst="RFx";
			color=7;
			izrisSile(sx,sy,skotx,skoty,skotz,texst,color);
			// v y smeri
			sx=tockax[i];
			sy=tockay[i];
			skotx=kotx-90+22.8;
			skoty=kot;
			skotz=0-90;
			texst="RFy";
			color=7;
			izrisSile(sx,sy,skotx,skoty,skotz,texst,color);
			// v z smeri
			sx=tockax[i];
			sy=tockay[i];
			skotx=kotx+90;
			skoty=kot+90;
			skotz=kotz;
			texst="RFz";
			color=7;
			izrisSile(sx,sy,skotx,skoty,skotz,texst,color);
	}
}

var nosilec=new Ppoint_list(n, tocka);
pset_line_colr_ind(1);

ppolyline(nosilec);

var nosilec1=new Ppoint_list(n, tockaDuplikat);
pset_line_colr_ind(1);

ppolyline(nosilec1);
}

//funkcija, ki nam zagotavlja risanje aktivnih obremenitev
function risanjeAktivnihObremenitev(){
	for(var i=0; i n; i++){
		//sila v x smeri
		if(a[i][3]!=0){
			sx=tockax[i];
			sy=tockay[i];
			skotx=kotx;
			skoty=kot;
			skotz=kotz;
			texst="Fx";
			color=4;
			izrisSile(sx,sy,skotx,skoty,skotz,texst,color);
		}
		//sila v y smeri
		if(a[i][4]!=0){
			sx=tockax[i];
			sy=tockay[i];
			skotx=kotx-90;
			skoty=kot;
			skotz=-90;
			texst="Fy";
			color=4;
			izrisSile(sx,sy,skotx,skoty,skotz,texst,color);
		}
		//sila v z smeri
		if(a[i][5]!=0){
			sx=tockax[i];
			sy=tockay[i];
			skotx=kotx+90;
			skoty=kot+90;
			skotz=kotz;
			texst="Fz";
			color=4;
			izrisSile(sx,sy,skotx,skoty,skotz,texst,color);
		}
		//izris momentnih krogov okrog x
		if(a[i][6]!=0){
			sx=tockax[i];
			sy=tockay[i];
			pkotx=kotx;
			pkoty=kot;
			pkotz=kotz;
			texst="Mx";
			color=4;
			r=0.04;
		 izrisKroga(sx,sy,pkotx,pkotz,pkoty,texst,color,r)
		 }
		 //izris momentnih krogov okrog y
		if(a[i][7]!=0){
			sx=tockax[i];
			sy=tockay[i];
			pkotx=kotx-20;
			pkoty=kot-110;
			pkotz=0-265;
			texst="My";
			color=4;
			r=0.04;
		 izrisKroga(sx,sy,pkotx,pkotz,pkoty,texst,color,r)
		 }
		 //izris momentnih krogov okrog z
		if(a[i][8]!=0){
			sx=tockax[i];
			sy=tockay[i];
			pkotx=kotx+90;
			pkoty=kot+90;
			pkotz=kotz;
			texst="Mz";
			color=4;
			r=0.04;
		 izrisKroga(sx,sy,pkotx,pkotz,pkoty,texst,color,r)
		 }
	 if(i>0){
		
	if(a[i-1][15]!=0 || a[i-1][16]!=0 || a[i-1][17]!=0){
		 //izris qx zvezne obremenitve
		 if(a[i][15]!=0){
			sx1=tockax[i-1];
			sy1=tockay[i-1];
			sx=tockax[i];
			sy=tockay[i];
			pkotx=kotx;
			pkoty=kot;
			pkotz=kotz;
			texst="qx";
			color=4;
		zveznaObremenitevQ(sx,sy,color,texst,pkotx,pkotz,pkoty,sx1,sy1);
		}
		 //izris qy zvezne obremenitve
		 if(a[i][16]!=0){
			sx1=tockax[i-1];
			sy1=tockay[i-1];
			sx=tockax[i];
			sy=tockay[i];
			pkotx=kotx-90;
			pkoty=kot;
			pkotz=0-90;
			texst="qy";
			color=4;
		zveznaObremenitevQ(sx,sy,color,texst,pkotx,pkotz,pkoty,sx1,sy1);
		}
		//izris qz zvezne obremenitve
		 if(a[i][17]!=0){
			sx1=tockax[i-1];
			sy1=tockay[i-1];
			sx=tockax[i];
			sy=tockay[i];
			pkotx=kotx+90;
			pkoty=kot+90;
			pkotz=kotz;
			texst="qz";
			color=4;
		zveznaObremenitevQ(sx,sy,color,texst,pkotx,pkotz,pkoty,sx1,sy1);
		}
	}
	}
	}

}

// risanje zveznih obremenitev
function zveznaObremenitevQ(sx,sy,color,texst,pkotx,pkotz,pkoty,sx1,sy1){
	var zvezna=new Array();
		zvezna[0]=new Array(0,0,0);
		zvezna[1]=new Array(0.05,0,0);
		var zveznaObremenitev=new Array();
		for(var j=0; j 2; j++){
		rotx=zvezna[j][0];
		roty=zvezna[j][1];
		rotz=zvezna[j][2];
		rotacijaPoljubno(rotx,roty,rotz,pkotx,pkotz,pkoty);
		zveznaObremenitev[j]=new Ppoint(x111,y111);
		}
		
				var zveznaPovezava=new Array();
			zveznaPovezava[0]=new Ppoint(sx1,sy1);
			zveznaPovezava[1]=new Ppoint(zveznaObremenitev[1].x+sx1,zveznaObremenitev[1].y+sy1);
			zveznaPovezava[2]=new Ppoint(zveznaObremenitev[1].x+sx,zveznaObremenitev[1].y+sy);
			zveznaPovezava[3]=new Ppoint(sx,sy);
			var tockaZ1=new Ppoint_list(4, zveznaPovezava);
		pset_line_colr_ind(color);
		pset_text_colr_ind(color);
		ptext(new Ppoint(zveznaObremenitev[1].x+sx-0.1, zveznaObremenitev[1].y+sy+0.01), texst);
		ppolyline(tockaZ1);
	
	
}


//risanje momentnih krogov
function izrisKroga(sx,sy,pkotx,pkotz,pkoty,texst,color,r){
	var xkrog=new Array();
	var ykrog=new Array();
	var deg=Math.PI/180;	
var tockaKrog=new Array();
var tockaPuscicaKroga=new Array();
	for(var k=0; k 281; k++){
	zkroga=r*Math.cos(k*deg);
	ykroga=r*Math.sin(k*deg);
	xkroga=0;
	rotx=xkroga;
	roty=ykroga;
	rotz=zkroga;
	rotacijaPoljubno(rotx,roty,rotz,pkotx,pkotz,pkoty);
	tockaKrog[k]=new Ppoint(x111+sx,y111+sy);
	}
	var tockaS=new Ppoint_list(k, tockaKrog);
	pset_line_colr_ind(color);
	pset_text_colr_ind(color);
	ptext(new Ppoint(tockaKrog[280].x+0.03, tockaKrog[280].y+0.03), texst);
	ppolyline(tockaS);
	
	
	tockaPuscicaKroga[0]=new Ppoint(tockaKrog[280].x,tockaKrog[280].y);
	tockaPuscicaKroga[1]=new Ppoint(tockaKrog[280].x-0.001,tockaKrog[280].y+0.02);
	var tockaPuscica=new Ppoint_list(2, tockaPuscicaKroga);
	pset_line_colr_ind(color);
	ppolyline(tockaPuscica);
}


//podpora clenkasta pomicna
function podporaPomicna(pkotx,pkotz,pkoty,sx,sy){
	var tockaPomPodporaClenkasta=new Array();
			for(var j=0; j 9; j++){
			rotx=pompodporaClenkasta[j][0]/2;
			roty=pompodporaClenkasta[j][1]/2;
			rotz=pompodporaClenkasta[j][2]/2;
			rotacijaPoljubno(rotx,roty,rotz,pkotx,pkotz,pkoty)
			tockaPomPodporaClenkasta[j]=new Ppoint(x111+sx,y111+sy);
			}
			
			var podporab=new Ppoint_list(6, tockaPomPodporaClenkasta);
			pset_line_colr_ind(6);
			ppolyline(podporab);
			var crtaPodpora1=new Array();
				crtaPodpora1[0]=new Ppoint(tockaPomPodporaClenkasta[5].x,tockaPomPodporaClenkasta[5].y);
				crtaPodpora1[1]=new Ppoint(tockaPomPodporaClenkasta[6].x,tockaPomPodporaClenkasta[6].y);
			var podporab1=new Ppoint_list(2, crtaPodpora1);
			pset_line_colr_ind(6);
			ppolyline(podporab1);
			var crtaPodpora2=new Array();
				crtaPodpora2[0]=new Ppoint(tockaPomPodporaClenkasta[7].x,tockaPomPodporaClenkasta[7].y);
				crtaPodpora2[1]=new Ppoint(tockaPomPodporaClenkasta[8].x,tockaPomPodporaClenkasta[8].y);
			var podporab2=new Ppoint_list(2, crtaPodpora2);
			pset_line_colr_ind(6);
			ppolyline(podporab2);
}
//izris sil v x smeri
function izrisSile(sx,sy,skotx,skoty,skotz,texst,color){
var sila=new Array();
	sila[0]=new Array(0,0,0);
	sila[1]=new Array(0.1,0,0);
	sila[2]=new Array(0.08,0,0.005);
	sila[3]=new Array(0.08,0,-0.005);
	sila[4]=new Array(0.1,0,0);
	
var tockaSila=new Array();
	for(var k=0; k 5; k++){
	rotx=sila[k][0];
	roty=sila[k][1];
	rotz=sila[k][2];
	pkotx=skotx;
	pkoty=skoty;
	pkotz=skotz;
	rotacijaPoljubno(rotx,roty,rotz,pkotx,pkotz,pkoty);
	tockaSila[k]=new Ppoint(x111+sx,y111+sy);
	}
	var tockaS=new Ppoint_list(k, tockaSila);
	pset_line_colr_ind(color);
	pset_text_colr_ind(color);
	ptext(new Ppoint(tockaSila[4].x+0.002, tockaSila[4].y+0.002), texst);
	ppolyline(tockaS);
}


//izris krogov za momente//
function moment_krog(){
var xr=0; yr=0; beta=0;
var deg=Math.PI/180;
//izris z kroga
radij=0.05;
x0=0.25;
y0=0.4;
zr=0;

var krog=new Array();
	for(var k=0; k 280; k++){
		xr=radij*Math.cos(k*deg)+x0;
		yr=radij*Math.sin(k*deg)+y0;
		//se rotacija okrog x in y osi

		x1=xr
			y1=(yr)*Math.cos(kotx*deg)+(zr)*Math.sin(kotx*deg);
			z1=(-yr)*Math.sin(kotx*deg)+(zr)*Math.cos(kotx*deg);

			
			y111=y1
			x111=(x1)*Math.cos(kot*deg)+(z1)*Math.sin(kot*deg);
			z111=-(x1)*Math.sin(kot*deg)+(z1)*Math.cos(kot*deg);
			//alert("x"+x111);
			//alert("y"+y111);
			krog[k]=new Ppoint(x111, y111);
			
		}
var puscica=new Array
      puscica[0]=new Ppoint(krog[0].x, krog[0].y);
	  puscica[1]=new Ppoint(krog[0].x-0.003, krog[0].y+0.025);
	   puscica[2]=new Ppoint(krog[0].x, krog[0].y);
	  puscica[3]=new Ppoint(krog[0].x-0.02, krog[0].y+0.004);
var moment_puscica=new Ppoint_list(4, puscica);
		pset_line_colr_ind(5);
		 pset_text_colr_ind(5);
 ptext(new Ppoint(krog[0].x-0.01, krog[0].y+0.04), "Mz");
		ppolyline(moment_puscica);

	var moment_krog=new Ppoint_list(k, krog);
		pset_line_colr_ind(5);

		ppolyline(moment_krog);
//za y os
var krogy=new Array();
radij=0.05;
x0=0.018;
yr=0.8;
z0=0.3;

for(var k=0; k 280; k++){
		xr=radij*Math.cos(k*deg)+x0;
		zr=radij*Math.sin(k*deg)+y0;
		//se rotacija okrog x in y osi

		x1=xr
			y1=(yr)*Math.cos(kotx*deg)+(zr)*Math.sin(kotx*deg);
			z1=(-yr)*Math.sin(kotx*deg)+(zr)*Math.cos(kotx*deg);

		z11=z1
		x11=(x1)*Math.cos(kotz*deg)+(y1)*Math.sin(kotz*deg);
		y11=-(x1)*Math.sin(kotz*deg)+(y1)*Math.cos(kotz*deg);

			
			//alert("x"+x111);
			//alert("y"+y111);
			krogy[k]=new Ppoint(x11, y11);
			
		}
	var moment_krogy=new Ppoint_list(k, krogy);
		pset_line_colr_ind(5);

		ppolyline(moment_krogy);

	var puscicay=new Array
      puscicay[0]=new Ppoint(krogy[0].x, krogy[0].y);
	  puscicay[1]=new Ppoint(krogy[0].x+0.008, krogy[0].y+0.02);
	   puscicay[2]=new Ppoint(krogy[0].x, krogy[0].y);
	  puscicay[3]=new Ppoint(krogy[0].x-0.015, krogy[0].y+0.009);
var moment_puscicay=new Ppoint_list(4, puscicay);
		pset_line_colr_ind(5);
		 pset_text_colr_ind(5);
 ptext(new Ppoint(krogy[0].x-0.01, krogy[0].y+0.04), "My");
		ppolyline(moment_puscicay);

//za x os
var krogx=new Array();
radij=0.05;
xr=0.75;
y0=0.566;
z0=0.4;

for(var k=0; k 280; k++){
		zr=radij*Math.cos(k*deg)+x0;
		yr=radij*Math.sin(k*deg)+y0;
		//se rotacija okrog x in y osi

		

		z11=zr
		x11=(xr)*Math.cos(kotz*deg)+(yr)*Math.sin(kotz*deg);
		y11=-(xr)*Math.sin(kotz*deg)+(yr)*Math.cos(kotz*deg);

		y111=y11
			x111=(x11)*Math.cos(kot*deg)+(z11)*Math.sin(kot*deg);
			z111=-(x11)*Math.sin(kot*deg)+(z11)*Math.cos(kot*deg);	
			//alert("x"+x111);
			//alert("y"+y111);
			krogx[k]=new Ppoint(x111, y111);
			
		}
	var moment_krogx=new Ppoint_list(k, krogx);
		pset_line_colr_ind(5);

		ppolyline(moment_krogx);

	var puscicax=new Array
      puscicax[0]=new Ppoint(krogx[0].x, krogx[0].y);
	  puscicax[1]=new Ppoint(krogx[0].x+0.01, krogx[0].y+0.02);
	   puscicax[2]=new Ppoint(krogx[0].x, krogx[0].y);
	  puscicax[3]=new Ppoint(krogx[0].x-0.01, krogx[0].y+0.01);
var moment_puscicax=new Ppoint_list(4, puscicax);
		pset_line_colr_ind(5);
		 pset_text_colr_ind(5);
 ptext(new Ppoint(krogx[0].x+0.01, krogx[0].y+0.04), "Mx");
		ppolyline(moment_puscicax);

}



function main()
{ 
	var deg=Math.PI/180;
  var WorkstnID = 1;                 /* workstation identifier */
  var ConnID = document.Phigs;       /* connection identifier */
  var WorkstnType = PWODSX;          /* An OUTPUT, direct, single, Xwindow */
  var TheLine = 1;  /* structure ID (chosen by user) */
  var LinePts = new Array();         /* points for the polyline */
      LinePts[0] = new Ppoint(0.0, 0.0);
      LinePts[1] = new Ppoint(0.0, 0.0);
	 
  var LineData  = new Ppoint_list(2, LinePts); /* data for the polyline */
 
  popen_phigs("stderr", 0);             /* errors go to "stderr" */
  popen_ws(WorkstnID, ConnID, WorkstnType);
  popen_struct(TheLine);
  ppolyline(LineData);
  koordinat();
  koordinat1();
  rotacijaNosilca();
  risanjeAktivnihObremenitev();
  moment_krog();
  pclose_struct();
  ppost_struct(WorkstnID, TheLine, 1.0);
  pclose_ws(WorkstnID);
  pclose_phigs();           

}
	
//izrus diagrama 
var tockaN=new Array();
var tockaN1=new Array();
var tockaxN=new Array;
	var tockayN=new Array;
	var tockaxN1=new Array;
	var tockayN1=new Array;
	var tockaxTz=new Array;
	var tockayTz=new Array;
	var tockaxTz1=new Array;
	var tockaTz=new Array;
	var tockaTz1=new Array;
	var tockayTz1=new Array;
	var tockaxTy=new Array;
	var tockayTy=new Array;
	var tockaxTy1=new Array;
	var tockaTy=new Array;
	var tockaTy1=new Array;
	var tockayTy1=new Array;
var tockaMx=new Array();
var tockaMx1=new Array();
var tockaxMx=new Array;
	var tockayMx=new Array;
	var tockaxMx1=new Array;
	var tockayMx1=new Array;
	var tockaMy=new Array();
var tockaMy1=new Array();
var tockaxMy=new Array;
	var tockayMy=new Array;
	var tockaxMy1=new Array;
	var tockayMy1=new Array;
	var tockaMz=new Array();
var tockaMz1=new Array();
var tockaxMz=new Array;
	var tockayMz=new Array;
	var tockaxMz1=new Array;
	var tockayMz1=new Array;
function izris_diagramov(){
var deg=Math.PI/180;
//skalacija
velikostDiagrama=0.1/Math.abs(skal);
var skalN=1;
var skalTz=1;
var skalTy=1;
var skalMx=1;
var skalMy=1;
var skalMz=1;

	for(var i=0; i n; i++){
		skalN0=Math.abs(N[i])/velikostDiagrama;
		skalN1=Math.abs(N1[i])/velikostDiagrama;
			if(skalN0>skalN1){
				skalNy=skalN0;
			}else{
				skalNy=skalN1;
			}
			if(skalNy>skalN){
				skalN=skalNy;
			}
		skalTz0=Math.abs(Tz[i])/velikostDiagrama;
		skalTz1=Math.abs(Tz1[i])/velikostDiagrama;
			if(skalTz0>skalTz1){
				skalTzy=skalTz0;
			}else{
				skalTzy=skalTz1;
			}
			if(skalTzy>skalTz){
				skalTz=skalTzy;
			}
		skalTy0=Math.abs(Ty[i])/velikostDiagrama;
		skalTy1=Math.abs(Ty1[i])/velikostDiagrama;
			if(skalTy0>skalTy1){
				skalTyy=skalTy0;
			}else{
				skalTyy=skalTy1;
			}
			if(skalTyy>skalTy){
				skalTy=skalTyy;
			}
		skalMx0=Math.abs(Mox[i])/velikostDiagrama;
		skalMx1=Math.abs(Mox1[i])/velikostDiagrama;
			if(skalMx0>skalMx1){
				skalMxy=skalMx0;
			}else{
				skalMxy=skalMx1;
			}
			if(skalMxy>skalMx){
				skalMx=skalMxy;
			}
			skalMy0=Math.abs(Moy[i])/velikostDiagrama;
		skalMy1=Math.abs(Moy1[i])/velikostDiagrama;
			if(skalMy0>skalMy1){
				skalMyy=skalMy0;
			}else{
				skalMyy=skalMy1;
			}
			if(skalMyy>skalMy){
				skalMy=skalMyy;
			}
				skalMz0=Math.abs(Moz[i])/velikostDiagrama;
		skalMz1=Math.abs(Moz1[i])/velikostDiagrama;
			if(skalMz0>skalMz1){
				skalMzy=skalMz0;
			}else{
				skalMzy=skalMz1;
			}
			if(skalMzy>skalMz){
				skalMz=skalMzy;
			}
	}
	for(var i=0; i n; i++){
	tockaN[i]=new Array();
	tockaN1[i]=new Array();
	tockaTz[i]=new Array();
	tockaTz1[i]=new Array();
	tockaTy[i]=new Array();
	tockaTy1[i]=new Array();
	tockaMx[i]=new Array();
	tockaMx1[i]=new Array();
	tockaMy[i]=new Array();
	tockaMy1[i]=new Array();
	tockaMz[i]=new Array();
	tockaMz1[i]=new Array();
	
		for(var j=0; j 3; j++){
		tockaN[i][j]=((N[i]/skalN)/rrb[i])*bb[i][j]+a[i][j];
		tockaN1[i][j]=((N1[i]/skalN)/rrb1[i])*bb1[i][j]+a[i][j];
		tockaTz[i][j]=((Tz[i]/skalTz)/rrc[i])*cc[i][j]+a[i][j];
		tockaTz1[i][j]=((Tz1[i]/skalTz)/rrc1[i])*cc1[i][j]+a[i][j];
		tockaTy[i][j]=((Ty[i]/skalTy)/rrb[i])*bb[i][j]+a[i][j];
		tockaTy1[i][j]=((Ty1[i]/skalTy)/rrb1[i])*bb1[i][j]+a[i][j];
		tockaMx[i][j]=((Mox[i]/skalMx)/rrb[i])*bb[i][j]+a[i][j];
		tockaMx1[i][j]=((Mox1[i]/skalMx)/rrb1[i])*bb1[i][j]+a[i][j];
		tockaMy[i][j]=((Moy[i]/skalMy)/rrb[i])*bb[i][j]+a[i][j];
		tockaMy1[i][j]=((Moy1[i]/skalMy)/rrb1[i])*bb1[i][j]+a[i][j];
		tockaMz[i][j]=((Moz[i]/skalMz)/rrc[i])*cc[i][j]+a[i][j];
		tockaMz1[i][j]=((Moz1[i]/skalMz)/rrc1[i])*cc1[i][j]+a[i][j];
		}
	}
//rotacija //
		
	for(var i=0; i n; i++){
		//alert(a[i][0]);
		 //spememba predznaka z koordinate
		 //za N
		spempredznakz=-tockaN[i][2]
		x1=tockaN[i][0]
		y1=(tockaN[i][1])*Math.cos(kotx*deg)+(spempredznakz)*Math.sin(kotx*deg);
		z1=(-(tockaN[i][1])*Math.sin(kotx*deg)+(spempredznakz)*Math.cos(kotx*deg));

		z11=z1
		x11=(x1)*Math.cos(kotz*deg)+(y1)*Math.sin(kotz*deg);
		y11=-(x1)*Math.sin(kotz*deg)+(y1)*Math.cos(kotz*deg);

		y111=y11
		x111=(x11)*Math.cos(kot*deg)+(z11)*Math.sin(kot*deg);
		z111=-(x11)*Math.sin(kot*deg)+(z11)*Math.cos(kot*deg);
	
	tockaxN[i]=(x111+transx1)*skal+0.1;
	tockayN[i]=(y111+transy1)*skal+0.1;
		// za N1
	spempredznakz=-tockaN1[i][2]
		x1=tockaN1[i][0]
		y1=(tockaN1[i][1])*Math.cos(kotx*deg)+(spempredznakz)*Math.sin(kotx*deg);
		z1=(-(tockaN1[i][1])*Math.sin(kotx*deg)+(spempredznakz)*Math.cos(kotx*deg));

		z11=z1
		x11=(x1)*Math.cos(kotz*deg)+(y1)*Math.sin(kotz*deg);
		y11=-(x1)*Math.sin(kotz*deg)+(y1)*Math.cos(kotz*deg);

		y111=y11
		x111=(x11)*Math.cos(kot*deg)+(z11)*Math.sin(kot*deg);
		z111=-(x11)*Math.sin(kot*deg)+(z11)*Math.cos(kot*deg);

	tockaxN1[i]=(x111+transx1)*skal+0.1;
	tockayN1[i]=(y111+transy1)*skal+0.1;
	
	//za Tz
	spempredznakz=-tockaTz[i][2]
		x1=tockaTz[i][0]
		y1=(tockaTz[i][1])*Math.cos(kotx*deg)+(spempredznakz)*Math.sin(kotx*deg);
		z1=(-(tockaTz[i][1])*Math.sin(kotx*deg)+(spempredznakz)*Math.cos(kotx*deg));

		z11=z1
		x11=(x1)*Math.cos(kotz*deg)+(y1)*Math.sin(kotz*deg);
		y11=-(x1)*Math.sin(kotz*deg)+(y1)*Math.cos(kotz*deg);

		y111=y11
		x111=(x11)*Math.cos(kot*deg)+(z11)*Math.sin(kot*deg);
		z111=-(x11)*Math.sin(kot*deg)+(z11)*Math.cos(kot*deg);
	
	tockaxTz[i]=(x111+transx1)*skal+0.1;
	tockayTz[i]=(y111+transy1)*skal+0.1;
		// za Tz1
	spempredznakz=-tockaTz1[i][2]
		x1=tockaTz1[i][0]
		y1=(tockaTz1[i][1])*Math.cos(kotx*deg)+(spempredznakz)*Math.sin(kotx*deg);
		z1=(-(tockaTz1[i][1])*Math.sin(kotx*deg)+(spempredznakz)*Math.cos(kotx*deg));

		z11=z1
		x11=(x1)*Math.cos(kotz*deg)+(y1)*Math.sin(kotz*deg);
		y11=-(x1)*Math.sin(kotz*deg)+(y1)*Math.cos(kotz*deg);

		y111=y11
		x111=(x11)*Math.cos(kot*deg)+(z11)*Math.sin(kot*deg);
		z111=-(x11)*Math.sin(kot*deg)+(z11)*Math.cos(kot*deg);

	tockaxTz1[i]=(x111+transx1)*skal+0.1;
	tockayTz1[i]=(y111+transy1)*skal+0.1;

	//za Ty
	spempredznakz=-tockaTy[i][2]
		x1=tockaTy[i][0]
		y1=(tockaTy[i][1])*Math.cos(kotx*deg)+(spempredznakz)*Math.sin(kotx*deg);
		z1=(-(tockaTy[i][1])*Math.sin(kotx*deg)+(spempredznakz)*Math.cos(kotx*deg));

		z11=z1
		x11=(x1)*Math.cos(kotz*deg)+(y1)*Math.sin(kotz*deg);
		y11=-(x1)*Math.sin(kotz*deg)+(y1)*Math.cos(kotz*deg);

		y111=y11
		x111=(x11)*Math.cos(kot*deg)+(z11)*Math.sin(kot*deg);
		z111=-(x11)*Math.sin(kot*deg)+(z11)*Math.cos(kot*deg);
	
	tockaxTy[i]=(x111+transx1)*skal+0.1;
	tockayTy[i]=(y111+transy1)*skal+0.1;
		// za Ty1
	spempredznakz=-tockaTy1[i][2]
		x1=tockaTy1[i][0]
		y1=(tockaTy1[i][1])*Math.cos(kotx*deg)+(spempredznakz)*Math.sin(kotx*deg);
		z1=(-(tockaTy1[i][1])*Math.sin(kotx*deg)+(spempredznakz)*Math.cos(kotx*deg));

		z11=z1
		x11=(x1)*Math.cos(kotz*deg)+(y1)*Math.sin(kotz*deg);
		y11=-(x1)*Math.sin(kotz*deg)+(y1)*Math.cos(kotz*deg);

		y111=y11
		x111=(x11)*Math.cos(kot*deg)+(z11)*Math.sin(kot*deg);
		z111=-(x11)*Math.sin(kot*deg)+(z11)*Math.cos(kot*deg);

	tockaxTy1[i]=(x111+transx1)*skal+0.1;
	tockayTy1[i]=(y111+transy1)*skal+0.1;
	
	
	//za Mx
	spempredznakz=-tockaMx[i][2]
		x1=tockaMx[i][0]
		y1=(tockaMx[i][1])*Math.cos(kotx*deg)+(spempredznakz)*Math.sin(kotx*deg);
		z1=(-(tockaMx[i][1])*Math.sin(kotx*deg)+(spempredznakz)*Math.cos(kotx*deg));

		z11=z1
		x11=(x1)*Math.cos(kotz*deg)+(y1)*Math.sin(kotz*deg);
		y11=-(x1)*Math.sin(kotz*deg)+(y1)*Math.cos(kotz*deg);

		y111=y11
		x111=(x11)*Math.cos(kot*deg)+(z11)*Math.sin(kot*deg);
		z111=-(x11)*Math.sin(kot*deg)+(z11)*Math.cos(kot*deg);
	
	tockaxMx[i]=(x111+transx1)*skal+0.1;
	tockayMx[i]=(y111+transy1)*skal+0.1;
		// za Mx1
	spempredznakz=-tockaMx1[i][2]
		x1=tockaMx1[i][0]
		y1=(tockaMx1[i][1])*Math.cos(kotx*deg)+(spempredznakz)*Math.sin(kotx*deg);
		z1=(-(tockaMx1[i][1])*Math.sin(kotx*deg)+(spempredznakz)*Math.cos(kotx*deg));

		z11=z1
		x11=(x1)*Math.cos(kotz*deg)+(y1)*Math.sin(kotz*deg);
		y11=-(x1)*Math.sin(kotz*deg)+(y1)*Math.cos(kotz*deg);

		y111=y11
		x111=(x11)*Math.cos(kot*deg)+(z11)*Math.sin(kot*deg);
		z111=-(x11)*Math.sin(kot*deg)+(z11)*Math.cos(kot*deg);

	tockaxMx1[i]=(x111+transx1)*skal+0.1;
	tockayMx1[i]=(y111+transy1)*skal+0.1;
	
	//za My
	spempredznakz=-tockaMy[i][2]
		x1=tockaMy[i][0]
		y1=(tockaMy[i][1])*Math.cos(kotx*deg)+(spempredznakz)*Math.sin(kotx*deg);
		z1=(-(tockaMy[i][1])*Math.sin(kotx*deg)+(spempredznakz)*Math.cos(kotx*deg));

		z11=z1
		x11=(x1)*Math.cos(kotz*deg)+(y1)*Math.sin(kotz*deg);
		y11=-(x1)*Math.sin(kotz*deg)+(y1)*Math.cos(kotz*deg);

		y111=y11
		x111=(x11)*Math.cos(kot*deg)+(z11)*Math.sin(kot*deg);
		z111=-(x11)*Math.sin(kot*deg)+(z11)*Math.cos(kot*deg);
	
	tockaxMy[i]=(x111+transx1)*skal+0.1;
	tockayMy[i]=(y111+transy1)*skal+0.1;
		// za My1
	spempredznakz=-tockaMy1[i][2]
		x1=tockaMy1[i][0]
		y1=(tockaMy1[i][1])*Math.cos(kotx*deg)+(spempredznakz)*Math.sin(kotx*deg);
		z1=(-(tockaMy1[i][1])*Math.sin(kotx*deg)+(spempredznakz)*Math.cos(kotx*deg));

		z11=z1
		x11=(x1)*Math.cos(kotz*deg)+(y1)*Math.sin(kotz*deg);
		y11=-(x1)*Math.sin(kotz*deg)+(y1)*Math.cos(kotz*deg);

		y111=y11
		x111=(x11)*Math.cos(kot*deg)+(z11)*Math.sin(kot*deg);
		z111=-(x11)*Math.sin(kot*deg)+(z11)*Math.cos(kot*deg);

	tockaxMy1[i]=(x111+transx1)*skal+0.1;
	tockayMy1[i]=(y111+transy1)*skal+0.1;

	//za Mz
	spempredznakz=-tockaMz[i][2]
		x1=tockaMz[i][0]
		y1=(tockaMz[i][1])*Math.cos(kotx*deg)+(spempredznakz)*Math.sin(kotx*deg);
		z1=(-(tockaMz[i][1])*Math.sin(kotx*deg)+(spempredznakz)*Math.cos(kotx*deg));

		z11=z1
		x11=(x1)*Math.cos(kotz*deg)+(y1)*Math.sin(kotz*deg);
		y11=-(x1)*Math.sin(kotz*deg)+(y1)*Math.cos(kotz*deg);

		y111=y11
		x111=(x11)*Math.cos(kot*deg)+(z11)*Math.sin(kot*deg);
		z111=-(x11)*Math.sin(kot*deg)+(z11)*Math.cos(kot*deg);
	
	tockaxMz[i]=(x111+transx1)*skal+0.1;
	tockayMz[i]=(y111+transy1)*skal+0.1;
		// za Mz1
	spempredznakz=-tockaMz1[i][2]
		x1=tockaMz1[i][0]
		y1=(tockaMz1[i][1])*Math.cos(kotx*deg)+(spempredznakz)*Math.sin(kotx*deg);
		z1=(-(tockaMz1[i][1])*Math.sin(kotx*deg)+(spempredznakz)*Math.cos(kotx*deg));

		z11=z1
		x11=(x1)*Math.cos(kotz*deg)+(y1)*Math.sin(kotz*deg);
		y11=-(x1)*Math.sin(kotz*deg)+(y1)*Math.cos(kotz*deg);

		y111=y11
		x111=(x11)*Math.cos(kot*deg)+(z11)*Math.sin(kot*deg);
		z111=-(x11)*Math.sin(kot*deg)+(z11)*Math.cos(kot*deg);

	tockaxMz1[i]=(x111+transx1)*skal+0.1;
	tockayMz1[i]=(y111+transy1)*skal+0.1;
	}
}
	//zspis v tocko

function osne_sile(){
	for(var i=0; i n-1; i++){
	var lineN=new Array;
	lineN[0]=new Ppoint(tocka[i].x, tocka[i].y);
	lineN[1]=new Ppoint(tockaxN[i], tockayN[i]);
	lineN[2]=new Ppoint(tockaxN1[i+1], tockayN1[i+1]);
	lineN[3]=new Ppoint(tocka[i+1].x, tocka[i+1].y);
	lineN[4]=new Ppoint(lineN[1].x, lineN[1].y);
	lineN[5]=new Ppoint(tocka[i].x, tocka[i].y);
	lineN[6]=new Ppoint(lineN[2].x, lineN[2].y);
	
	var sila_osna=new Ppoint_list(7, lineN);
		pset_line_colr_ind(3);
			 pset_text_colr_ind(3);
 ptext(new Ppoint(tockaxN[i]+0.03, tockayN[i]+0.02), N[i]);
 ptext(new Ppoint(tockaxN1[i+1]-0.03, tockayN1[i+1]+0.02), N1[i+1]);
		ppolyline(sila_osna);
	}

}

//odpre phigs za izris diagramov
function main_diagrami_osne_sile()
{ 
	var deg=Math.PI/180;
  var WorkstnID = 1;                 /* workstation identifier */
  var ConnID = document.Phigs;       /* connection identifier */
  var WorkstnType = PWODSX;          /* An OUTPUT, direct, single, Xwindow */
  var TheLine = 1;  /* structure ID (chosen by user) */
  
 
  popen_phigs("stderr", 0);             /* errors go to "stderr" */
  popen_ws(WorkstnID, ConnID, WorkstnType);
  popen_struct(TheLine);
   rotacijaNosilca();
  maliKoordinatniSistem();
  izris_diagramov();
  osne_sile();
  pclose_struct();
  ppost_struct(WorkstnID, TheLine, 1.0);
  pclose_ws(WorkstnID);
  pclose_phigs();           
}


	//zspis v tocko

function precne_z(){
	for(var i=0; i n-1; i++){
	var lineN=new Array;
	lineN[0]=new Ppoint(tocka[i].x, tocka[i].y);
	lineN[1]=new Ppoint(tockaxTz[i], tockayTz[i]);
	lineN[2]=new Ppoint(tockaxTz1[i+1], tockayTz1[i+1]);
	lineN[3]=new Ppoint(tocka[i+1].x, tocka[i+1].y);
	lineN[4]=new Ppoint(lineN[1].x, lineN[1].y);
	lineN[5]=new Ppoint(tocka[i].x, tocka[i].y);
	lineN[6]=new Ppoint(lineN[2].x, lineN[2].y);
	
	var sila_precna_z=new Ppoint_list(7, lineN);
		pset_line_colr_ind(3);
			 pset_text_colr_ind(3);
 ptext(new Ppoint(tockaxTz[i]+0.04, tockayTz[i]+0.02), Tz[i]);
 ptext(new Ppoint(tockaxTz1[i+1]-0.04, tockayTz1[i+1]+0.02), Tz1[i+1]);
		ppolyline(sila_precna_z);
	}

}

//odpre phigs za izris diagramov
function main_diagrami_precne_z()
{ 
	var deg=Math.PI/180;
  var WorkstnID = 1;                 /* workstation identifier */
  var ConnID = document.Phigs;       /* connection identifier */
  var WorkstnType = PWODSX;          /* An OUTPUT, direct, single, Xwindow */
  var TheLine = 1;  /* structure ID (chosen by user) */
  
 
  popen_phigs("stderr", 0);             /* errors go to "stderr" */
  popen_ws(WorkstnID, ConnID, WorkstnType);
  popen_struct(TheLine);
  maliKoordinatniSistem();
  rotacijaNosilca();
  izris_diagramov();
  precne_z();
  pclose_struct();
  ppost_struct(WorkstnID, TheLine, 1.0);
  pclose_ws(WorkstnID);
  pclose_phigs();           

}

	//zspis v tocko

function precne_y(){
	for(var i=0; i n-1; i++){
	var lineN=new Array;
	lineN[0]=new Ppoint(tocka[i].x, tocka[i].y);
	lineN[1]=new Ppoint(tockaxTy[i], tockayTy[i]);
	lineN[2]=new Ppoint(tockaxTy1[i+1], tockayTy1[i+1]);
	lineN[3]=new Ppoint(tocka[i+1].x, tocka[i+1].y);
	lineN[4]=new Ppoint(lineN[1].x, lineN[1].y);
	lineN[5]=new Ppoint(tocka[i].x, tocka[i].y);
	lineN[6]=new Ppoint(lineN[2].x, lineN[2].y);
	
	var sila_precna_y=new Ppoint_list(7, lineN);
		pset_line_colr_ind(3);
			 pset_text_colr_ind(3);
 ptext(new Ppoint(tockaxTy[i]+0.03, tockayTy[i]+0.02), Ty[i]);
 ptext(new Ppoint(tockaxTy1[i+1]-0.03, tockayTy1[i+1]+0.02), Ty1[i+1]);
		ppolyline(sila_precna_y);
	}

}

//odpre phigs za izris diagramov
function main_diagrami_precne_y()
{ 
	var deg=Math.PI/180;
  var WorkstnID = 1;                 /* workstation identifier */
  var ConnID = document.Phigs;       /* connection identifier */
  var WorkstnType = PWODSX;          /* An OUTPUT, direct, single, Xwindow */
  var TheLine = 1;  /* structure ID (chosen by user) */
  
 
  popen_phigs("stderr", 0);             /* errors go to "stderr" */
  popen_ws(WorkstnID, ConnID, WorkstnType);
  popen_struct(TheLine);
   maliKoordinatniSistem();
  rotacijaNosilca();
  izris_diagramov();
  precne_y();
  pclose_struct();
  ppost_struct(WorkstnID, TheLine, 1.0);
  pclose_ws(WorkstnID);
  pclose_phigs();           

}

	//zspis v tocko

function moment_x(){
	for(var i=0; i n-1; i++){
	var lineN=new Array;
	lineN[0]=new Ppoint(tocka[i].x, tocka[i].y);
	lineN[1]=new Ppoint(tockaxMx[i], tockayMx[i]);
	lineN[2]=new Ppoint(tockaxMx1[i+1], tockayMx1[i+1]);
	lineN[3]=new Ppoint(tocka[i+1].x, tocka[i+1].y);
		
	var moment_x=new Ppoint_list(4, lineN);
		pset_line_colr_ind(3);
			 pset_text_colr_ind(3);
 ptext(new Ppoint(tockaxMx[i]+0.03, tockayMx[i]+0.02), Mox[i]);
 ptext(new Ppoint(tockaxMx1[i+1]-0.03, tockayMx1[i+1]+0.02), Mox1[i+1]);
		ppolyline(moment_x);
	}

}

//odpre phigs za izris diagramov
function main_diagrami_moment_x()
{ 
	var deg=Math.PI/180;
  var WorkstnID = 1;                 /* workstation identifier */
  var ConnID = document.Phigs;       /* connection identifier */
  var WorkstnType = PWODSX;          /* An OUTPUT, direct, single, Xwindow */
  var TheLine = 1;  /* structure ID (chosen by user) */
  
 
  popen_phigs("stderr", 0);             /* errors go to "stderr" */
  popen_ws(WorkstnID, ConnID, WorkstnType);
  popen_struct(TheLine);
  maliKoordinatniSistem();
  rotacijaNosilca();
  izris_diagramov();
  moment_x();
  pclose_struct();
  ppost_struct(WorkstnID, TheLine, 1.0);
  pclose_ws(WorkstnID);
  pclose_phigs();           

}

function moment_y(){
	for(var i=0; i n-1; i++){
	var lineN=new Array;
	lineN[0]=new Ppoint(tocka[i].x, tocka[i].y);
	lineN[1]=new Ppoint(tockaxMy[i], tockayMy[i]);
	lineN[2]=new Ppoint(tockaxMy1[i+1], tockayMy1[i+1]);
	lineN[3]=new Ppoint(tocka[i+1].x, tocka[i+1].y);
	var moment_y=new Ppoint_list(4, lineN);
		pset_line_colr_ind(3);
			 pset_text_colr_ind(3);
 ptext(new Ppoint(tockaxMy[i]+0.03, tockayMy[i]+0.02), Moy[i]);
 ptext(new Ppoint(tockaxMy1[i+1]-0.03, tockayMy1[i+1]+0.02), Moy1[i+1]);
		ppolyline(moment_y);
	}

}

//odpre phigs za izris diagramov
function main_diagrami_moment_y()
{ 
	var deg=Math.PI/180;
  var WorkstnID = 1;                 /* workstation identifier */
  var ConnID = document.Phigs;       /* connection identifier */
  var WorkstnType = PWODSX;          /* An OUTPUT, direct, single, Xwindow */
  var TheLine = 1;  /* structure ID (chosen by user) */
  
 
  popen_phigs("stderr", 0);             /* errors go to "stderr" */
  popen_ws(WorkstnID, ConnID, WorkstnType);
  popen_struct(TheLine);
  maliKoordinatniSistem();
  rotacijaNosilca();
  izris_diagramov();
  moment_y();
  pclose_struct();
  ppost_struct(WorkstnID, TheLine, 1.0);
  pclose_ws(WorkstnID);
  pclose_phigs();           

}

function moment_z(){
	for(var i=0; i n-1; i++){
	var lineN=new Array;
	lineN[0]=new Ppoint(tocka[i].x, tocka[i].y);
	lineN[1]=new Ppoint(tockaxMz[i], tockayMz[i]);
	lineN[2]=new Ppoint(tockaxMz1[i+1], tockayMz1[i+1]);
	lineN[3]=new Ppoint(tocka[i+1].x, tocka[i+1].y);
	var moment_z=new Ppoint_list(4, lineN);
		pset_line_colr_ind(3);
			 pset_text_colr_ind(3);
 ptext(new Ppoint(tockaxMz[i]+0.04, tockayMz[i]+0.02), Moz[i]);
 ptext(new Ppoint(tockaxMz1[i+1]-0.04, tockayMz1[i+1]+0.02), Moz1[i+1]);
		ppolyline(moment_z);
	}

}

//odpre phigs za izris diagramov
function main_diagrami_moment_z()
{ 
	var deg=Math.PI/180;
  var WorkstnID = 1;                 /* workstation identifier */
  var ConnID = document.Phigs;       /* connection identifier */
  var WorkstnType = PWODSX;          /* An OUTPUT, direct, single, Xwindow */
  var TheLine = 1;  /* structure ID (chosen by user) */
  
 
  popen_phigs("stderr", 0);             /* errors go to "stderr" */
  popen_ws(WorkstnID, ConnID, WorkstnType);
  popen_struct(TheLine);
 maliKoordinatniSistem();
  rotacijaNosilca();
  izris_diagramov();
  moment_z();
  pclose_struct();
  ppost_struct(WorkstnID, TheLine, 1.0);
  pclose_ws(WorkstnID);
  pclose_phigs();           

}

//izpis rezultatov v okno
function zapisText()
{
  
  okno = open("", "Rezultati", // novo okno
        "width=600,height=200,menubar=yes,scrollbars=yes");
  okno.creator = self;
okno.document.open("text/plain");
  rez=okno.document
  rez.write("Rezultati izracuna:\n");
rez.write("Reakcije:\n");
if(b==1){
		rez.write("Rezultati reakcij v podpori :\n\ Rfx="+rfx+";  Rfy="+rfy+";  Rfz="+rfz+";\n\ Rmx="+rmx+";  Rmy="+rmy+";  Rmz="+rmz+";\n");
	}else{
		rez.write("Rezultati reakcij v fiksni podpori :\n\ Rfx1="+rfx1a+"; Rfy1="+rfy1a+"; Rfz1="+rfz1a+";\n Rezultati reakcij v pomicni podpori :\n\ Rfx2="+rfx2b+"; Rfy2="+rfy2b+"; Rfz2="+rfz2b+";\n");
	}
rez.write("Notranje velicine:\n");
  for (var r= 0 ; r< n ; r++)
    {
	rez.write("Tocka:("+a[r][0]+","+a[r][1]+","+a[r][2]+"); N1="+N1[r]+"; N="+N[r]+"; Ty1="+Ty1[r]+"; Ty="+Ty[r]+"; Tz1="+Tz1[r]+"; Tz="+Tz[r]+"; Mx1="+Mox1[r]+"; Mx="+Mox[r]+"; My1="+Moy1[r]+"; My="+Moy[r]+"; Mz1="+Moz1[r]+"; Mz="+Moz[r]+"\n")
  
  }
  okno.document.close();  
}




Janez Benedicic