Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

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

Hasonló előadás


Az előadások a következő témára: "Grafikus tervezőrendszerek programozása 7. előadás."— Előadás másolata:

1 Grafikus tervezőrendszerek programozása 7. előadás

2 Kiválasztási halmazok Kiválasztási halmazok létrehozása (ssget [mód]...) A mód megadja a kiválasztás típusát: –Semmi: A felhasználótól kér több rajzelem kiválasztását –”_w” : Ablak kiválasztás –”_c” : Metsző kiválasztás –”_l” : Utolsó rajzelem kiválasztása –”_p” : Előző kiválasztás –”_x” : Összes elem kiválasztása

3 Példa Általános kiválasztás (ssget) Előző kiválasztás (ssget ”_P”) A 2,2 –es ponton áthaladó rajzelemek kiválasztása (ssget ’(2 2)) Kiválasztás egy ablakkal (ssget ”_W” ’(0 0) ’(5 5))

4 Kiválasztási halmazok Maximum 128 kiválasztási halmaz lehet Miután nem kell a kiválasztási halmaz „szabadítsuk fel” Minden rajzelem csak egyszer szerepelhet a kiválasztási halmazban A kiválasztási halmaz átadható bármely AutoCAD parancsnak rajzelem választásnál

5 Kiválasztási halmazok kezelése 1. Kiválasztási halmaz mérete (sslength halmaz) A kiválasztási halmaz n-edik elemét adja meg (ssname halmaz index) –Az első elem indexe zérus –Helytelen index esetén nil -t ad vissza Megvizsgálja hogy egy rajzelem tagja-e a kiválasztási halmaznak (ssmemb ename halmaz)

6 Kiválasztási halmazok kezelése 2. (ssadd) : Új, üres kiválasztási halmazzal tér vissza (ssadd ename) : Új kiválasztási halmazt hoz létre egy rajzelemmel és a halmazzal tér vissza (ssadd ename halmaz) : Rajzelemet hozzáadja a kiválasztási halmazhoz és a módosított halmazzal tér vissza –Ha a rajzelem már benne van a halmazban, nem hiba (ssdel ename halmaz) : Rajzelemet törli a kiválasztási halmazból és a módosított halmazzal tér vissza

7 Kiválasztási halmazok filterezése 1. Csak TEXT objektumok kiválasztását engedi a felhasználó által (ssget '((0. “TEXT”))) Kiválasztja az összes circle objektumot a my layer-en (ssget “_X” ‘((8. “my”) (0. “circle”)) ) (ssget “_X” (list (cons 8 “my”) (cons 0 “circle”)) )

8 Példa Törölni minden sárga színű objektumot az adott fólián (defun c:torolsarga ( / name flist ss) (setq name (getstring “\nFolia neve:”)) (setq flist (list (cons 8 name) ‘(62. 2))) (setq ss (ssget “_X” flist)) (command “_erase” ss “”) )

9 Kiválasztási halmazok filterezése 2. Logikai műveletek a filterrel: – ” ” A nyitó és záró jelek legyenek egyensúlyban

10 Példa Kiválasztja a vonal objektumokat melyek a „text” fólián vannak Az objektumnak két tulajdonsága van: vonal és „text” fólián van (ssget ‘( (-4. “<and”) (0. “line”) (8. “text”) (-4. “and>”) )

11 Példa Vonal vagy a „text” fólián van (ssget ‘( (-4. “<or”) (0. “line”) (8. “text”) (-4. “or>”) )

12 Példa Kiválasztja azokat az objektumokat melyek vagy vonalak vagy a „text” fólián vannak (Csak az egyik feltételt elégítik ki.) (ssget ‘( (-4. “<xor”) (0. “line”) (8. “text”) (-4. “xor>”) )

13 Példa Kiválasztunk minden nem vonal objektumot (ssget ‘( (-4. “<not”) (0. “line”) (-4. “not>”) )

14 Példa Kiválasztja az összes circle objektumot amelyek a lay1 vagy lay2 fólián vannak Alapesetben ÉS kapcsolat feltételezett (ssget ”_X” ‘( (0. circle) (-4. ”<or”) (8. ”lay1”) (8. ”lay2”) (-4. ”or>”) ))

15 Példa Kiválasztja az egység sugarú köröket és az ABC layer-en levő vonalakat (ssget ”_X” '( (-4. "<OR") (-4. "<AND") (0. "CIRCLE") (40. 1.0) (-4. "AND>") (-4. "<AND") (0. "LINE") (8. "ABC") (-4. "AND>") (-4. "OR>") ))

16 Kiválasztási halmazok filterezése 3. Kiválasztás relációs függvények alapján –Reláció: =, /=, >, >=, <, <= Csak 2.0 egységnél nagyobb sugarú kör objektumok kiválasztását engedi (ssget ”_X” '( (0. "CIRCLE") (-4. ">=") (40. 2.0)))

17 Kiválasztási halmazok filterezése 4. Lehet felhasználói alkalmazások adataival is filterezni Például: (ssget ”_X” '((0. "CIRCLE") (-3 ("APPNAME")))) Olyan köröket választ ki amelyekhez APPNAME nevű felhasználói alkalmazási adatok vannak rendelve

18 Kiválasztási halmazok filterezése 5. Lehet wildcard (*) karaktert használni a szövegekben Például: (ssget ”_X” '((2. ”*_bb”))) Olyan blokkokat választ ki amelyek neve _bb -vel végződik

19 Szimbólum táblázatok Az AutoCAD nem látható objektumainak táblázatai: –LAYER: fóliák –LTYPE: vonaltípusok –VIEW: nézetek –STYLE: stílusok –BLOCK: blokkok –UCS: lokális koordinátarendszerek –VPORT: nézet ablakok –DIMSTYLE: méretezési stílusok –APPID: alkalmazás azonosítók

20 Szimbólum táblázatok A táblázatok módosíthatók: –entdel, entget, entmake, entmod, entnext, handent –tblsearch – egy objektummal tér vissza –tblnext – folyamatosan megy végig a táblázaton

21 tblnext (tblnext table-név [visszatekerés]) Ha visszatekerés nem zérus akkor az első objektumot adja vissza a táblázatból Egyébként a következő objektumot adja vissza

22 Példa (defun c:foliak (/ folia) (setq folia (tblnext "LAYER" 1)) (princ (cdr (assoc 2 folia))) (terpri) (while (setq folia (tblnext "LAYER")) (princ (cdr (assoc 2 folia))) (terpri) ) (terpri) )

23 Eredmény 0 Layer1 Layer2 Layer3 nil

24 tblsearch (tblsearch table-név symbol [setnext]) Egy szimbólumot keres a táblában Ha setnext értéke nil akkor nincs hatással a tblnext parancsra Ha setnext értéke nem nil akkor a tblnext parancs a tblsearch parancs által visszaadott objektum utáni objektumot adja vissza

25 Példa (setq t (tblsearch "LAYER" "0")) ( (0. "LAYER") (2. “0") (70. 0) (62. 7) (6. "CONTINUOUS") )

26 Megjelenítésvezérlő parancsok 1. A szöveges képernyőre váltás (textscr) A szöveges képernyőre letörlése (DOS) és átváltás (textpage) A grafikus képernyőre váltás (graphscr)

27 Megjelenítésvezérlő parancsok 2. Alacsony szintű rajzoló parancsok Csak a képernyőn jelennek meg Egy megadott objektumot frissít az aktuális ablakban (redraw [ename [mode]]) Egy vektort rajzol két pont közé (grdraw from to color [highlight]) Vektorokat rajzol a grafikus képernyőre (grvecs vlist [trans]) Egy szöveget ír az állapotsorba vagy a képernyőre (grtext [box text [highlight]])

28 Példa

29 Az összes rajzelemen végigmegy, kijelöli majd megszünteti a kijelölést (defun c:kiemel (/ elem) (setq elem (entnext)) (redraw elem 3) (command "_delay" 1000) (redraw elem 4) (while (setq elem (entnext elem)) (redraw elem 3) (command "_delay" 1000) (redraw elem 4) )

30 Slide Az aktuális képernyő elmentése –Prezentációhoz –Kép menühöz

31 Slide Parancs az aktuális képernyő elmentésére: mslide Csak a képernyőn megjelenő objektumok képét menti el Nem menti el : –a kikapcsolt fóliákon levő elemeket –a képernyőn kívüli elemeket A slide file kiterjesztése: sld

32 Slide-ok megtekintése A képernyő (slide) visszatöltése: vslide –Mintha egy képet töltenénk be –Az aktuális rajzot nem változtatja meg Prezentáció is készíthető, kép sorozat

33 Slide gyűjtemény Több slide egy file-ba szervezhető A slide gyűjtemény kiterjesztése : slb slidelib.exe progammal lehet létrehozni slidelib gyűjtemény < slide-lista A slide-lista a file név list A slide gyűjtemény módosítása csak az eredeti slide-okkal lehetséges!!!

34 Slide gyűjtemény példa slidelib ajtok.slb < ajto.lst ajto.lst tartalma például door1.sld door2.sld Eredmény: SLIDELIB 1.2 (3/8/89) © Copyright 1987-1989,1994,1995 Autodesk, Inc All Rights Reserved

35 Slide betöltése gyüjteményből ; dialógus ablak ne jelenjen meg Command: setvar Enter variable name or [?]: filedia Enter new value for FILEDIA : 0 Command: vslide Enter name of slide file to view: C:\temp\ajtok(door1) ; eredeti kép visszaállítása Command: redraw

36 Parancs file (script) Parancs sorozat végrehajtásához parancs file-t lehet definiálni A parancs file futtatása: script Egy sor egy parancs Minden SPACE-nek szerepe van!!! Megjegyzés pontosvesszővel kezdődik

37 Hasznos parancsok delay : várakozás milliszekundumig rscript : a parancs file ismétlése resume : a megszakított scipt folytatása graphscr : grafikus képernyőre váltás textscr : szöveges képernyőre váltás

38 Prezentációs parancs file ; Kezdjük a prezentációt, töltsük be: SLIDE1 VSLIDE SLIDE1 ; Előzetes betöltés, megjelenítés nélkül: SLIDE2 VSLIDE *SLIDE2 ; A SLIDE1 2000 milliszekundumig látható DELAY 2000 ; Jelenítsük meg SLIDE2-t VSLIDE ; Előtöltés SLIDE3 VSLIDE *SLIDE3 ; SLIDE2 megjelenítése 2000 milliszekundumig DELAY 2000 ; Jelenítsük meg SLIDE3-t VSLIDE ; SLIDE3 megjelenítése 3000 milliszekundumig DELAY 3000 ; Ismételjük a parancs file-t RSCRIPT

39 Rajzoló parancs file circle 20,20 10 zoom e delay 1200 circle 15,25 2 delay 1200 circle 25,25 2 delay 1200 line 20,22 18,18 22,18 c delay 1200 arc 14,16 e 26,16 20,22


Letölteni ppt "Grafikus tervezőrendszerek programozása 7. előadás."

Hasonló előadás


Google Hirdetések