Univerza v Ljubljani

Fakulteta za strojnistvo

Laboratorij za CAD - LECAD


Seminar pri predmetu RPK

JANEZ BENEDICIC

Martinj Vrh, 5.9.2000


1.0. ABSTRACT

2.0. DEFINICIJA NALOGE

3.0. TEORETICNE OSNOVE

3.1. KONZOLNI NOSILEC

3.2. NOSILEC NA DVEH PODPORAH

3.3. IZRIS

3.3.1. Translacija

3.3.2. Skalacija

3.3.3. Rotacija

4.0. STRUKTURA PROGRAMA

4.1. UPORABA VEKTORJEV

4.2. UPORABA POSAMEZNIH MATEMATICNIH FUNKCIJ

5.0. PROGRAM

6.0. ZAKLJUCEK

7.0. UPORABLJENA LITERATURA





ABSTRAKT


I created a programme for calculation of refractable, static defined carrier in 3D space. We can use all types of supports and all three types loads on carrier in combination of all these. The programme calculates reactions in supports, moments,forces and also draws diagrams of this values.


KAZALO



DEFINICIJA NALOGE


Izdelajte program za preracun notranjih sil in momentov za raven nosilec v 3D prostoru. Obdelani naj bodo razlicni primeri staticno dolocenega vpetja in razlicni primeri obremenitev: koncentrirane sile na razlicnih pozicijah, kontinuirano porazdeljena sila na dolocenem odseku in kombinacija obeh primerov. Rezultati preracuna naj bodo prikazani graficno skupaj s shematskim prikazom nosilca in vpetja. Program izdelajte s programskim jezikom Java ali JavaScript (izris s pomocjo PHIGS knjiznice).


KAZALO



TEORETICNE OSNOVE

KONZOLNI NOSILEC

Konzolni nosilec Slika 1:Konzolni nosilec je primer staticno dolocene konstrukcije. Vpetje je enostransko in fiksno, tako da prenasa sile v vse smeri. Prav tako tudi momente.



Slika 1:Konzolni nosilec

NOSILEC NA DVEH PODPORAH

Nosilec na dveh podporah Slika 2:Nosilec na dveh podporah je podprt z dvema podporama, kjer je prva podpora fiksna in prenasa sile v vseh treh smereh, druga pa le v dveh. V eni smeri se lahko prosto pomika. Ti dve podpori momentov ne prenasata. Tudi to je staticno dolocena konstrukcija.



Slika 2:Nosilec na dveh podporah

IZRIS

Izris sem naredil v dveh delih. Prvi del je izris pri vnasanju podatkov, drugi del je izris rezultatov. Pri vnasanju podatkov se mi nosilec samodejno rise ob vnasanju tock. Nanj se risejo tudi vse vnesene obremenitve in podpore, tako da dobimo stvarno predstavo o nosilcu. Dimenzije nosilca so v razmerju med seboj, dimenzije obremenitev so le orientacijske. Pri prikazovanju rezultatov lahko le te prikazemo v izometricni projekciji po prednastavljenem kotu rotacije ali po zeljenem kotu. Poleg tega so mozni pogledi po posameznih ravnina (XY-ravnina, XZ-ravnina in YZ-ravnina) zaradi jasnosti nekaterih diagramov. Zaradi preglednosti se diagram posamezne notranje velicine izrise posebej.



Slika 3:Primer diagrama

HOMOGENE KOORDINATE:
Beseda homogen pomeni enoten, enovit. Bistvo homogenih koordinat je v tem da lahko za skalacijo, rotacijo in translacijo uporabimo eno in isto funkcijo, le matriko v funkciji menjamo glede na zeljeno transformacijo. V teh matrikah imamo se utez w, ki pa ima navadno vrednost 1. Utez je vedno razlicna od 0.
Imamo tocko A(x,y,z). Zapisali bomo transformacijsko matriko:

[x*,y*,z*]=[x,y,z]*R*S+T

-skalacija S

-rotacija R
Pri rotaciji se uporabljajo za rotacijo okrog posamezne osi razlicne matrike, ki so pa opisane v poglvju Rotacija. Primer rotacijske matrike okoli osi x:

-translacija T



Translacija

  1. Translacija tocke v prostoru v kartezijevih koordinatah:



  2. Translacija tocke v prostoru v homogenih koordinatah:



Skalacija

  1. Skalacija tocke v prostoru v kartezijevih koordinatah:


    X* = Sx * X
    Y*= Sy * Y
    Z*= Sz * Z

  2. Skalacija tocke v prostoru v homogenih koordinatah:




Rotacija

  1. Rotacija tocke v prostoru v kartezijevih koordinatah:

    Obicajno se rotacija izvaja okrog dolocene osi. Spodaj predstavljena rotacija je okrog Z-osi. Princip za ostali dve rotaciji je isti, le rotacijski matriki se razlikujeta.




  2. Rotacija tocke v prostoru v homogenih koordinatah:

    -Okrog X osi:



    -Okrog Y osi:



    -Okrog Z osi:



KAZALO



STRUKTURA PROGRAMA


Program je sestavljen iz dveh delov. Prvi je racunski del, drugi je izris. V racunskem delu sem najprej izracunal vse velicine nosilca, tako da sem potem lahko enostavno nadaljeval s samim izrisom. Za izvedbo racunskega dela je bilo potrebno dobro znanje vektorjev. Poleg teh dveh delov pa program vsebuje tudi zapis v datoteko Slika 4:Datoteka


.
Slika 4:Datoteka

UPORABA VEKTORJEV

V racunskem delu programa sem za dolocitev koordinat uporabljal vektorje. Vsaka tocka ima koordinate x, y, in z. Najenostavnejse in najlazje je dolociti in ugotoviti medsebojno relacijo tock z vektorji. Ker so vsi nosilci prostorski, zato ni problematcna uporaba vektorjev. Uporaba taksnega dolocanja tock mi je pozneje zelo olajsala delo pri racunanju transformacijskih matrik. Najenostavneje je dolociti lego tocke s pomocjo vektorjev. Uporaba:


  • Uporaba razlike vektorjev za izracun absolutne dolzine med dvema tockama
  • Razdelitev vektorja na bazne vektorje
  • Uporaba smernih kosinusov vektorja za izracun sil v novi bazi
  • Uporaba skalarnega produkta in vektorskega produkta za dolocitev novih baznih vektorjev
  • Uporaba ravnine in premice v prostoru za izracun pravokotne razdalje do sil, obremenitev

UPORABA FUNKCIJ ZA IZRIS

Pri izrisu nosilca in rezultatov sem poleg zgoraj nastetih operacij z vektorji uporabljal se dodatne funkcije poleg translacije, rotacije in skalacije:

  • Uporaba enacbe kroznice za izris krogov in funkcijo za izris sile
    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);


    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);
    } 
    


  • Uporaba drugih sestavljenih funkcij, ki se lahko vidijo v kodi programa

KAZALO



PROGRAM


ZAGON PROGRAMA NTM 1.0

KAZALO



ZAKJUCEK


Program NTM 1.0 ni IDEAS ali kateri od podobnih programov za izracun notranjih velicin nosilcev,je dokaz da se lahko z uporabo internetnih orodij lahko dokaj dobro in enostavno dobi rezultate(sicer ne tako tocne) kot bi jih za enak sistem v profesionalnem programu. Ni zahteven za uporabo. Z njim si lahko lazje predstavljamo nosilec in obremenitve nanj, ter sproti z vnasanjem dolocamo geometrijo! Prednost programa je tudi uporabnost pri snovanju, ker lahko preizkusimo vec modelov in nato te rezultate tudi primerjamo med seboj.


KAZALO




UPORABA LITERATURE


  • Peter Hribar, Spoznajmo Javascript, izdaja: Flamingo trade, 1998
  • Peter Hribar, HTML 4.0, izdaja: Flamingo trade, 1998
  • Bojan Kraut, Strojniski prirocnik, izdaja: Tehniska zalozba Slovenije, 1997


Janez Benedicic