MODULAR ======= Program pentru generare structuri modulare (prismatice; trunchi de piramida). Pentru NELSAS. DATE DE INTRARE: I. MODULUL DE BAZA: Acesta se defineste ca o prisma dreapta. 1) Numarul de noduri 2) Coordonate noduri II. EXPANSIUNE 1) Directie 2) Numar de module 3) Tip expansiune: prismatic; piramida. III) Baze: Bazele se considera in raport cu directia de extindere (observator la DIR+) Baza0 =Baza inferioara Baza0 =Baza superioara In fisierul de intrare: ngl = nr. grade de libertate nnBaza0 = nr. noduri POLIGON de baza inferior (Baza0) nnBaza1 = nr. noduri POLIGON de baza superior (Baza1) = curent nn = numar noduri dir = directia de extensie: X, Y, Z. nModule =numar module lmodul =lungime modul in directia "dir" iType =tip de extensie: 1 =prismatic; 2= trunchi de paramida; 3 = prisma shrink - pe o directie. ratio =raportul Baza1/Baza0 xFoot =coordonatele piciorului varfului piramidei(in Baza0) IV. CONECTIVITATE 1) Numar de elemente 2) Indice element (orientat); nod initial; nod final. V. TIPURI DE ELEMENTE 4 tipuri de elemente pot fi definite, in raport cu directia de extindere "dir": 1) Elemente PARALELE cu "dir" (Talpi; Bare verticale - daca dir =Z) 2) Elemente perpendiculare pe "dir" si paralele cu una din celelate axe (Montanti; Bare orizontale) 3) Diagonale longitudinale 4) Diagonale transversale. Pentru cele 4 tipuri de specifica ariile (se presupune ca sunt aceleasi). Datele 8-13 din Fisierul de intrare se refera la modulul de baza: 0) Comentarii: // ... 1) Titlul problemei: max. 80 caractere. 2) Numarul gradelor de libertate (2/3); nnBaza0; nnBaza1 3) Line-text: Ex.:"Coordonate" 4) Nod, coordonate 5) Line-text: Ex.:"Expansiune" 6) Directie expansiune: X, Y, Z 7) Numar de Module; Lungime modul; iTip: 1=prismatic; 2=trunchi de piramida; 3 = prisma - shrink pe o directie 8) Daca iType ==2: 8a) Ratio = raport dimensiuni Baza1/Baza0; 8b) Coordonate picior varf piramida (in Baza0). 9) Daca iType ==3: 9a) Shrink_ratio = raport de reducere in directia "dir_shrink" (poate fi si supra-unitar); 9b) Dir_shrink = directia de reducere (poate fi alta decat "Directie expansiune" - data 6) 10) Daca iType ==4: 10a) Tip arc: 1=circular; 2 =parabolic. 10b) l (semi-deschidere) 10c) h (inaltime). 11) Line-text: ex.:"Topologia" 12) Numar de elemente - in modulul de baza 13) Indice element; nod initial; nod final Datele urmatoare se refera tipurile de elemente din structura: 14) Numar de tipuri (acesta este <=4) 14-1a) Nume tip 1 (text <= 100 caractere) 14-1b) Arie tip 1 14-2a) Nume tip 2 (text) 14-2b) Arie tip 2 14-3a) Nume tip 3 (text) 14-3b) Arie tip 3 14-4a) Nume tip 4 (text) 14-4b) Arie tip 4 Exemplu: vezi Fisierele: "TestZ.dat" (iType =1); "TestZ-Piramida.dat" (iType =2); "TestZ-Xshrink.dat" (iType =3). NOTA 1: Modulul de baza ---------------------- Pentru trunchi de piramida (si pentru arc): MODULUL DE BAZA se defineste tot ca o PRISMA DREAPTA. Trunchi de piramida: Programul genereaza coordonatele "x(1:ngl)" si pentru Baza1 - cf. "ratio". In fisierul de salvare: Pentru nodurilor din Baza1: se salveaza coordonatele initiale (xBaza)= ca pentru prisma. NOTA 2: Numerotare noduri (Modulul de baza): -------------------------------------------- Nodurile din Baza0: se numeroteaza cu PRIMII INDICI: 1, 2, ..., nnBaza0. Nodurile in Baza1: - se numeroteaza IN ACELASI SENS ca in Baza0. - cu PRIMII INDICI: nnBaza0+1, ..., 2*nnBaza0, se numeroteaza nodurile care corespund nodurilor din Baza0 -in directia de extindere. - cu urmatorii indici: noduri intermediare (in care vin diagonale). Exemplu: nnBaza0 =3; nnBaz1 =5; Extindere =Y. Primii 3 indici de nod din Baza1 "4;5;6": corespund respectiv cu nodurile "1;2;3" din Baza0. ^ Y (Extindere) | | 4-----7------5------8-----6 Baza1 | / \ | / \ | | / \ | / \ | |/ \ | / \| 1------------2------------3 Baza0 ----->X NOTA 3: Numerotare elemente (Modulul de baza): --------------------------------------------- - PRIMII INDICI: elementelor paralele cu directia de extindere; - Urmatorii indici: elementele din Baza1; - Urmatorii indici: elementele diagonale (de preferinta, orientate Baza0 -> Baza1). - Urmatorii indici: diagonale in sectiunea transversala. - ULTIMII indici: elementele din Baza0. Exemplu: nelBaza =13; nel0 =2 ^ Y (Extindere) | | o--4--o--5--o--6---o--7---o Baza1 | / \ | / \ | 1 8 9 2 10 11 3 |/ \ | / \| o-----12-----o------13----o Baza0 NOTA 4: Numerotare noduri si elemente (Structura): -------------------------------------------------- NODURI: - Programul numeroteaza nodurile succesiv in module, dupa regulile de numerotare din modulul de baza. - O optiune permite re-numerotarea nodurilor astfel ca ultimii indici sa fie afectati nodurilor din Baza0 a modulului de baza. ELEMENTE: Programul numeroteaza elementele, atribuind: - Primii indici la elementele de tipul 1: in directia de extindere (longitudinal). - Urmatorii indici la elementele de tipul 2: pependiculare pe directia de extindere (transversal). - Urmatorii indici la elementele de tipul 3: diagonale longitudinale. - Urmatorii indici la elementele de tipul 4: diagonale in sectiunea transversala. - Ultimii indici: elementele in Baza0. Nota: Elementele din modulul de baza se re-numeroteaza dupa regulile de mai sus. NOTA 5: Axele de coordonate: --------------------------- - Structura plana (ngl=2): Axa verticala este axa Y. Orientare: "in sus". - Structura spataila (ngl=3): Axa verticala este axa Z. Orientare: "in sus". Axa X: orientata "spre dreapta"; Axa Y: orientata "spre inainte". ============================================= EXEMPLU DE FISIER DE INTRARE (Modular-Z-Diag-K.dat): ----------------------------- // Baza = dreptunghi 2x2; inaltime =2 // Expansiune: dir. Z // 3 module // Lungime modul =2 // Tip expansiune = 1 (prismatic) // Test cu extindere in Z - turn cu diagonale in K + diag. orizontale 3 4 8 Coordonate: 1 0 0 0 2 2 0 0 3 2 2 0 4 0 2 0 5 0 0 2 6 2 0 2 7 2 2 2 8 0 2 2 9 1 0 2 10 2 1 2 11 1 2 2 12 0 1 2 Expansiune: Z 3 2. 1 Topologie 25 1 1 5 2 2 6 3 3 7 4 4 8 5 5 9 6 9 6 7 6 10 8 10 7 9 7 11 10 11 8 11 8 12 12 12 5 13 1 9 14 9 2 15 2 10 16 10 3 17 3 11 18 11 4 19 4 12 20 12 1 21 9 10 22 10 11 23 11 12 24 12 9 25 10 12 3 Talpa 3. Montant 2. Diagonala 1. Diagonala orizontala 0.5 ========== Februarie 2003