Grafikus tervezőrendszerek programozása 6. előadás.

Slides:



Advertisements
Hasonló előadás
Koordináták, függvények
Advertisements

Valóban azt látjuk, ami a retinára vetül? Dr. Kosztyánné Mátrai Rita Eötvös Loránd Tudományegyetem, Bölcsészettudományi Kar, Informatika Tanszék.
Tananyag: konzultáció
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Grafikus tervezőrendszerek programozása 10. előadás.
Operációs Rendszerek I.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Adatbázis alapú rendszerek 1. Gyakorlat Követelmények / SQL.
PL/SQL folytatás Kurzorok Alprogramok Tárolt eljárások ADATBÁZIS ALAPÚ RENDSZEREK.
Mellár János 3. óra Szeptember 16. v
1 Informatikai Szakképzési Portál Adatbázis kezelés DCL – Adatvezérlő nyelv.
Grafikus tervezőrendszerek programozása 2. előadás.
Tömbök C#-ban.
Számítógépes geometriai leíró nyelvek
Programozási alapismeretek 6. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 6.2/  Rekordok/struktúrák.
Eltérés a CAD és GIS adatszerkezetek között CAD (DXF, DWG, DGN)GIS (Shape, TAB, GeoBase) Sokféle elem típusPont, törtvonal, felület, (szöveg) Egy fájl.
Táblázat kezelő programok
LINUX/UNIX PARANCSOK.
© Kozsik Tamás Tömbök, kollekciók és egyéb alaposztályok.
Bevezetés a Java programozásba
7. előadás (2005. április 12.) Láncolt lista File kezelés 1.
4. előadás (2005. március 8.) Pointerek Pointer aritmetika
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 9. Gyakorlat Alap file műveletek.
Programozás II. 3. Gyakorlat C++ alapok.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
Táblázatkezelés alapjai MS Excel, OpenOffice Calc
A CLIPS keretrendszer CLIPS "C" Language Integration Production System.
Függvények, mutatók Csernoch Mária.
Adatbázis-kezelés ACCESS program:
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Delphi programozás 8. ELŐADÁS ADO ActiveX Data Objects.
Grafikus tervezőrendszerek programozása
Grafikus tervezőrendszerek programozása 3. előadás.
Lénárt Anett egyetemi adjunktus - PTE PMMK Rendszer- és Szoftvertechnológia Tanszék Előadás JavaScript Tananyag: W eb - programozás.
Nézettáblák létrehozása, módosítása és törlése
Operációs rendszerek gyakorlat 9. Gyakorlat Vakulya Gergely.
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
Access XP Kifejezés-szerkesztő Összehasonlító operátorok:
Turbo Pascal 11..
Grafikus tervezőrendszerek programozása 8. előadás.
Grafikus tervezőrendszerek programozása 9. előadás.
Grafikus tervezőrendszerek programozása 7. előadás.
Grafikus tervezőrendszerek programozása 11. előadás.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Adatbázis-kezelés SQL-lel
Rendezések és szövegkezelő függvények
Fájlkezelés Pascalban
Mit kell megtanulni? Euler kéz, DH lépés mint mátrixok szorzata Minden, ami a mérési útmutató kérdéseihez szükséges (pdf 59. oldal) ARPS (azok az utasítások,
Műszer vezérlő - kezelő program GPI-745A teszterhez.
XML fejlesztések TSQL fejlesztések Tábla paraméter SQLCLR fejlesztések 8k limit feloldása Több paraméteres UDA-ek Ordered UDF-ek Entity Framework ADO.NET.
Számítógépes grafika I. AUTOCAD alapok
– SQL 3: SELECT - 1. – Tarcsi Ádám, január 31. Adatbázis gyakorlat.
Objektum orientált programozás 3. Függvények Nagy Szilvia.
Objektum orientált programozás
Turócziné Kiscsatári Nóra
Webprogramozó tanfolyam
ACCESS Lekérdezések, űrlapok, jelentések
Számítógépes grafika I. AUTOCAD alapok 2. előadás.
Számítógépes grafika I. AUTOCAD alapok 6. előadás.
Adatbáziskezelés. Adat és információ Információ –Új ismeret Adat –Az információ formai oldala –Jelsorozat.
Számítógépes grafika I. AUTOCAD alapok
Számítógépes grafika I. AUTOCAD alapok
Feladatok a lista adatszerkezethez Összeállította: Gergely János.
 Adatbázis:  Valamilyen szempont szerint rendszerezett adathalmaz.  Adatbázis kezelés:  Adatok tárolása  Műveletek végzése az adatbázison; (Adatok.
Függvények, mutatók Csernoch Mária. Függvények függvény definíciója az értelmezési tartomány tetszőleges eleméhez hozzárendel egy értéket –függvény helyettesítési.
Informatikai gyakorlatok 11. évfolyam
Függvények, mutatók Csernoch Mária. Függvények függvény definíciója az értelmezési tartomány tetszőleges eleméhez hozzárendel egy értéket –függvény helyettesítési.
PHP függvények MySQL adatbázisok kezelésére
Script nyelvek előadás
Total commander.
A CLIPS keretrendszer
Előadás másolata:

Grafikus tervezőrendszerek programozása 6. előadás

Asszociációs listák Alapesetben két elemű listák listája ( (kulcs1 érték1) (kulcs2 érték2)... ) Például ( (”Isaac Asimov” ”Alapitvány”) (”Frank Herbert” ”Dűne”) (”Ian Fleming” ”Goldfinger”) ) Felhasználás: –Tudás reprezentációra –AutoLisp változók értékeinek tárolására

Asszociációs listák kezelése 1. Egy érték lekérdezése (assoc elem lista) Példa (setq lst ‘((a 1) (b 2) (c 3))) (assoc ‘b lst) -> (b 2) (assoc ‘r lst) -> nil A kulcs bármilyen kifejezés lehet (setq lst ‘((a q) ((b) w))) (assoc ‘(b) lst) -> ((b) w)

Asszociációs listák kezelése 2. Csak a kulcs első előfordulását adja vissza (assoc ‘b ‘((a 1) (b 2) (c 3) (b 4)) ) -> (b 2) Nem csak két elemű listák lehetnek az elemek (assoc ‘b ‘((a 1 2 3) (b q w e) (c 88 99)) ) -> (b q w e)

Lista tagja Ellenőrzi hogy egy elem szerepel-e egy listában (member elem lista) Ha az elem szerepel a listában akkor visszaadja a lista maradékát a kifejezés előfordulásától Példa (member ‘q ‘(a q u a)) -> (q u a) (member ‘b ‘(a q u a)) -> nil (setq lst ‘((a 1) (b 2) (c 3))) (member ‘b lst) -> nil (member ‘(b 2) lst) -> ((b 2) (c 3))

Rajzelemek kezelés A rajzelemek kezeléséhez tudni kell a nevét A rajzelem neve: A rajzelem neve nem módosítható Rajzelem nevet nem lehet létrehozni A rajzelem név használható a command parancsban rajzelem kiválasztásra: Az utolsó rajzelem színének pirosra állítása (command ”_chprop” (entlast) ”” ”_color” ”_red” ””) Az utoljára létrehozott rajzelem nevének lekérdezése: (entlast)

Rajzelem kiválasztás Egy rajzelem kiválasztása: (entsel [prompt]) Bemenet: –Egy rajzelemet kell kiválasztani a képernyőn A függvény visszatérési értéke egy lista: –A rajzelem neve –A kiválasztási pont Csak egy rajzelem kiválasztását engedi !!!

Példa

Kiválasztás és transzformáció A nentsel és nentselp függvények hasonlóak az entsel függvényhez de két extra adatot ad vissza –Rajzelem neve –Kiválasztási pont –Lokálisból a globális koordináta rendszerbe való transzformáláshoz szükséges mátrix –A rajzelemet tartalmazó blokkok listája

Példa 1. Command: line Specify first point: 1,1 Specify next point or [Undo]: 3,1 Specify next point or [Undo]: 3,3 Specify next point or [Close/Undo]: 1,3 Specify next point or [Close/Undo]: c Command: block Enter block name or [?]: square Specify insertion base point: 2,2 Select objects:

Példa 2. Command: ucs Current ucs name: *WORLD* Enter option[New/Move/orthoGraphic/Prev/ Restore/Save/Del/Apply/?/World] : z Specify rotation angle about Z axis : 45 Command: insert Enter block name or [?]: square Specify insertion point or [Scale/X/Y/Z/Rotate/PScale/PX/PY/PZ/PRotate]: 7,0 Enter X scale factor, specify opposite corner, or [Corner/XYZ] : Enter Y scale factor : Specify rotation angle :

Példa 3. (setq ndata (nentsel)) ( ; Objektum neve ( ) ; Kiválasztási pont (( ) ; Aktuális koord. ( ) ; rendszerből a világ ( ) ; koord. rendszerbe ( ) ; transzformáló mátrix ) ( ) ; a kiválasztott objektumot ; tartalmazó block )

Rajzelemek definíciója A rajzelem nevének ismeretében lekérdezhető a rajzelem definíciója (entget ename) Egy asszociációs listát ad vissza !

Példa 1. (command ”_line” ”1,1” ”2,2” ””) (setq e (entget (entlast))) ( (-1. ) (0. "LINE") (330. ) (5. "89") (100. "AcDbEntity") (67. 0) (410. "Model") (8. "0") (100. "AcDbLine") ( ) ( ) ( ) )

Példa 2. A rajzelem típusa: (cdr (assoc 0 e)) -> ”LINE” A layer ahol a rajzelem van: (cdr (assoc 8 e)) -> ”0” A vonal kezdőpontja: (cdr (assoc 10 e)) -> ( ) A vonal végpontja: (cdr (assoc 11 e)) -> ( )

DXF Az asszociációs lista kulcsai DXF kódok Egy AutoCAD rajz elmenthető DWG és DXF file formátumban DWG – bináris, nem publikált formátum DXF – szöveges formátum A DXF formátum is teljes rajz reprezentáció !

Néhány DXF kód KódMegnevezés Entity name 0Rajzelem típusa, szöveges formában 5Rajzelem „handle” 6Vonal típus 7Szöveg típusa 8Layer neve 10Fő pontok, 3D-s pont 11-18Egyébb pontok 40Valós szám, pl. Kör sugara

Rajzelemek törlése Egy rajzelem „törlése” –AutoCAD paranccsal: _erase –AutoLisp: (entdel ename) A törölt rajzelem megmarad az adatbázisban így visszaállítható: –undo AutoCAD paranccsal –(entdel ename) Másodszori meghívásával

Rajzelemek módosítása (entmod assoc-lista) assoc-lista: Az entget parancs által visszaadott listához hasonló kell legyen A rajzelem típusát nem lehet megváltoztatni. A hivatkozott elemeknek létezniük kell. Pl. blokkok, szövegtípus A parancs ellenőrzést is végez. Komoly hiba esetén nem végez módosítást a rajzelemen.

Példa (command ”_line” ”0,0” ”1,1” ””) (setq ent (entget (entlast)) opos (assoc 11 ent) npos ( ) ; helyettesítsük a régi koordinátát new (subst npos opos ent) ) (entmod new)

entmake Rajzelem létrehozása: –command –entmake Az entmake függvény argumentuma egy associációs lista, de nem tartalmazza a rajzelem nevét

Összetett rajzelemek Összetett rajzelem: –Block –Régi típusú polyline Több rajzelemet is magukba foglalnak A rajzelemek szekvenciális (egymás utáni) elérése: (entnext [ename]) –(setq a (entnext)) : Az első rajzelemet adja vissza –(entnext a) : Az második rajzelemet adja vissza –Stb.

Teljes rajz adatbázis átnézése (defun count ( / ent c) (setq ent (entnext) c 0) (while ent (setq c (+ c 1) ent (entnext ent)) ) (princ ”Rajzelemek száma: ”) (princ c) (terpri) )

Rajzelem neve és handle A rajzelemek neve minden egyes rajz megnyitásnál megváltozik!!! Szükség lehet állandó hivatkozási névre A handle ilyen név, egy szám szöveges formában A handle-ből visszakapható a rajzelem neve (handent ”89”) ->

Felhasználói alkalmazások A rajzelemekhez adat(ok) füzhető(k) Ezek az adatok egy alkalmazáshoz is tartoznak Az alkalmazásokat be kell jegyezni az AutoCAD-ben: (regapp alkalmazás) Például: (regapp ”TEST-DATA”)

Felhasználói adatok A felhasználói adatok is tárolódnak a rajzban A felhasználói adatokat is asszociációs listában kell tárolni A listában DXF kódokat kell használni Néhány DXF kód NévMegnevezés 1000Szöveg 1003Layer neve 1005Rajzelem handle 10103D-s pont 1040Valós szám 1070Egész szám

Felhasználói adatok, példa (regapp ”TEST-DATA”) (setq lastent (entget (entlast))) (setq exdata '( (-3 ( ”TEST-DATA” (1000. ”Szöveg”) ) ))) ; adatok összefűzése (setq newent (append lastent exdata)) (entmod newent) ; rajzelem definíció és xdata lekérdezése (entget (car (entsel)) '(”TEST-DATA”))

Felhasználói adatok, eredmény ( (-1. ) (0. "LINE") (330. ) (5. "89") (100. "AcDbEntity") (67. 0) (410. "Model") (8. "0") (100. "AcDbLine") ( ) ( ) ( ) (-3 ("TEST-DATA" (1000. "Szöveg"))) )

Adatok csoportosítása (-3 (”my-app” (1002. ”{”) (1000. ”hossz”) ( ) (1002. ”}”) (1002. ”{”) (1000. ”szélesség”) ( ) (1002. ”}”) )