[ Pobierz całość w formacie PDF ]
wielkość punktu, glob_appname nazwa, pod którą zarejestrujemy aplikacj jest to potrzebne, gdy chcemy dodać dane dodatkowe dla wybranych elementów rysunkowej bazy danych AutoCADa, glob_h_tekstu wielkość tekstu opisującego numer wzła i ele- mentu dla okna obejmującego całą konstrukcj w chwili startu programu jest ona równa wielkości tekstu dla okna podstawowego 12x9, 721 BvupMJTQ! !q3bluzd{oz!lv3t glob_h_tekstu_0 wielkość tekstu opisującego numer wzła i ele- mentu dla okna podstawowego nie ulega zmia- nie przez cały czas działania programu, glob_delta_tekstu odległość tekstu opisującego numer wzła i ele- mentu w osi X i Y od środka wzła i elementu, glob_wielkosc_punktu wielkość punktu reprezentującego wzeł konstru- kcji dla okna obejmującego całą konstrukcj w chwili startu programu jest ona równa wielkości punktu dla okna podstawowego 12x9, glob_wielkosc_punktu_0 wielkość punktu reprezentującego wzeł konstru- kcji dla okna podstawowego nie ulega zmianie przez cały czas działania programu, glob_typ_elementu typ elementu (belka) w momencie startu programu, glob_grupa_elementu grupa elementu w momencie startu programu, glob_material_elementu materiał elementu w momencie startu programu. Na samym końcu rejestrujemy aplikacj wykorzystując funkcj regapp o składni: (regapp application) Funkcja rejestruje nazw aplikacji (programu użytkowego) w aktualnym rysunku Auto- CADa. Nazwa programu użytkowego, przekazywana w argumencie application, jest podstawowym parametrem wykorzystywanym do grupowania, przechowywania, uzyskiwa- nia i modyfikowania zdefiniowanych przez taki program dodatkowych danych elementów. PECJFS[`[CJPS`EBOZDI PECJFS[`[CJPS`EBOZDI PECJFS[`[CJPS`EBOZDI PECJFS[`[CJPS`EBOZDI Funkcja odbiera zbiór danych przekazany w argumencie wywołania funkcji nazwa_zbioru. Po otwarciu pliku danych do odczytu, ustawiamy globalny układ współrzdnych (współrzdne wzłów zapisane w pliku podane są w układzie global- nym), po czym wykonujemy funkcje czytające zbiór danych, tworzące listy wzłów i elementów oraz rysujące na ich podstawie siatk MES konstrukcji. D[ZUBK`[CJPS`EBOZDI D[ZUBK`[CJPS`EBOZDI D[ZUBK`[CJPS`EBOZDI D[ZUBK`[CJPS`EBOZDI Funkcja czyta zbiór danych i wywołuje funkcje odbioru wzłów i elementów. Funkcja działa w ptli jeszcze1, która wykonywana jest do chwili odczytania linii "END.OF.DATA" lub do osiągnicia końca zbioru. Poszczególne linie pliku odbieramy za pomocą funkcji read-line i podstawiamy pod zmienną linia. Gdy linia pliku zawiera łańcuch "NODES", wywoływana jest funkcja CZYTAJ_MODUL _NODES, odbierająca moduł wzłów, po czym nastpuje powrót do ptli while jeszcze1. Gdy linia pliku zawiera łańcuch "ELEMENTS", wywoływana jest funkcja CZYTAJ_MODUL_ELEMENTS, odbierająca moduł elementów, po czym nastpuje powrót do ptli while jeszcze1. 26/!Pct vhb!qmjl x!ufltupxzdi!x!BvupMJTQjf 722 D[ZUBK`NPEVM`OPEFT D[ZUBK`NPEVM`OPEFT D[ZUBK`NPEVM`OPEFT D[ZUBK`NPEVM`OPEFT Funkcja czyta moduł wzłów i tworzy na tej podstawie list wzłów. Funkcja działa w ptli jeszcze2, która wykonywana jest do chwili odczytania linii "C END.OF .NODES". Jeżeli odczytana linia nie jest końcem modułu wzłów, sprawdzamy dodatkowo, czy nie jest to linia komentarza (duża litera C w pierwszej kolumnie, po której wystpuje co najmniej jedna spacja). Jeśli odczytana linia nie jest komentarzem, rozbijamy ją na list łańcuchów za pomocą funkcji PODZIEL_NA_ PODLANCUCHY. Wartość zwrotną funkcji podstawiamy pod zmienną lista1. Nastpnie sprawdzamy, czy zerowy element listy nie jest nagłówkiem modułu wzłów ("NODE.NUMBER" lub "NODE"). Jeśli nie, oznacza to, że lista zawiera dane o wzle. Pobieramy z niej wówczas dane odnośnie numeru wzła (numer) oraz jego współrzdnych X i Y (wsp_x, wsp_y). Jeśli współrzdna Z wzła została podana, podstawiamy ją pod zmienną wsp_z, w przeciwnym wypadku ustawiamy wartość współrzdnej Z na 0. Nastpnie łączymy współrzdne wzła w list wsp_wz, tworzymy list opis_węzla, zawierającą numer wzła oraz jego współrzdne, oraz dołączamy opis wzła do listy glob_lista_wezlow. Przykładowo, dla linii danych " 1 1.0000 1.0000 0.0000" lista opis_wezla ma postać (1 (1.0 1.0 0.0)) D[ZUBK`NPEVM`FMFNFOUT D[ZUBK`NPEVM`FMFNFOUT D[ZUBK`NPEVM`FMFNFOUT D[ZUBK`NPEVM`FMFNFOUT Funkcja czyta moduł elementów i tworzy na tej podstawie list elementów. Funkcja działa w ptli jeszcze2, która wykonywana jest do chwili odczytania linii "C END .OF.ELEMENTS". Jeżeli odczytana linia nie jest końcem modułu elementów, sprawdzamy dodatkowo, czy nie jest to linia komentarza (duża litera C w pierwszej kolumnie, po której wystpuje co najmniej jedna spacja). Jeżeli odczytana linia nie jest komentarzem, rozbijamy ją na list łańcuchów za pomocą funkcji PODZIEL_NA _PODLANCUCHY. Wartość zwrotną funkcji podstawiamy pod zmienną lista1. Nast- pnie sprawdzamy, czy zerowy element listy nie jest nagłówkiem modułu elementów ("NUMBER"). Jeśli nie, oznacza to, że lista zawiera dane o elemencie. Pobieramy z niej wówczas dane odnośnie numeru elementu, jego grupy, typu, materiału oraz topologii, tworzymy list opisu elementu opis_elementu oraz dołączamy opis elementu do listy glob_lista_elementow. Przykładowo, dla linii danych " 1 1 34000 1 1 2" lista opis_elementu ma postać (1 1 34000 1 1 2) 723 BvupMJTQ! !q3bluzd{oz!lv3t PCT[BS`NPEFMV PCT[BS`NPEFMV PCT[BS`NPEFMV PCT[BS`NPEFMV Funkcja ustawia takie granice rysunku, aby był w nich widoczny cały model siatki MES. NJO`NBY`OPEFT NJO`NBY`OPEFT NJO`NBY`OPEFT NJO`NBY`OPEFT Funkcja pomocnicza, wywoływana w funkcji OBSZAR_MODELU, znajdująca współ- rzdne dwóch punktów (wzłów), w obrbie których mieści si cała konstrukcja. Funkcja zmienia wartości zmiennych globalnych glob_punkt_ld oraz glob_punkt_pg. W przypadku, gdy na liście wzłów znajduje si tylko jeden wzeł, umieszczamy go w środku okna o wymiarach 12x9. Jeśli konstrukcja zawiera dwa lub wicej wzłów, znajdujemy współrzdne jej dwóch skrajnych punktów (x_min y_min), (x_max y_max), nastpnie znajdujemy długości boków prostokąta, którego przeciwległe wierzchołki rozpite są na tych punktach x_odl, y_odl. Mając obliczone długości boków prostokąta, obliczamy odległości x_r i y_r, o jakie powikszymy długości obliczonych boków. W ten sposób wokół konstrukcji powstanie dodatkowy wolny obszar (odpowiada to w przybliżeniu komen- dzie AutoCADa ZOOM 0.9X). Kolejną czynnością wykonywaną przez funkcj jest skalowanie granic rysunku. Rozróżniamy tutaj dwa przypadki: " wymiar prostokąta w osi Y jest mniejszy od wymiaru w osi X skalujemy przez współczynnik 0.75 (9 / 12) i dopasowujemy wymiary okna w osi Y, " wymiar prostokąta w osi Y jest wikszy lub równy od wymiaru w osi X skalujemy przez współczynnik 1.3333 (12 / 9) i dopasowujemy wymiary okna w osi X. Na koniec obliczamy współrzdne skrajnych brzegów rysunku po przeskalowaniu p1 i p2 oraz ustawiamy wartości zmiennych globalnych glob_punkt_ld i glob_punkt_pg. HSBOJDF HSBOJDF HSBOJDF HSBOJDF Funkcja wywoływana jest z dwoma argumentami: p1 i p2, określającymi skrajne brzegi rysunku, w obrbie których mieści si cała konstrukcja. Funkcja stosowana jest przy powikszeniach/pomniejszeniach, a jej zadaniem jest zachowanie na ekranie stałej wielkości punktu reprezentującego wzeł, stałej wysokości tekstu opisującego wzły i elementy oraz stałej odległości opisu wzła i elementu od środka wzła i środka ele- mentu. Skalowanie wymiarów przeprowadzamy w stosunku do okna podstawowego 12x9. Funkcja zmienia wartości zmiennych globalnych glob_h_tekstu, glob_wielkosc _punktu i glob_delta_tekstu oraz ustawia nową wartość zmiennej systemowej PDSIZE. 26/!Pct vhb!qmjl x!ufltupxzdi!x!BvupMJTQjf 724 PECJFS[`XF[MZ [ Pobierz całość w formacie PDF ] |