Professional Documents
Culture Documents
PRZYKADOWY ROZDZIA
SPIS TRECI
KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG
TWJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK
CZYTELNIA
FRAGMENTY KSIEK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treci
Przedmowa............................................................................................13
Cz I
Cz II
Spis treci
Rozdzia 9. Elementy.............................................................................................213
Wsplne metody i waciwoci...............................................................................................213
Definicje ...........................................................................................................................214
3DFace ....................................................................................................................................214
Metody..............................................................................................................................214
Waciwo .......................................................................................................................215
3DPoly ....................................................................................................................................217
Metoda ..............................................................................................................................217
Waciwoci......................................................................................................................217
Arc...........................................................................................................................................218
Waciwoci......................................................................................................................219
Circle.......................................................................................................................................221
Waciwoci......................................................................................................................221
Ellipse......................................................................................................................................223
Waciwoci......................................................................................................................223
Hatch .......................................................................................................................................225
Metody..............................................................................................................................225
Waciwoci......................................................................................................................226
LightWeightPolyline...............................................................................................................228
Metody..............................................................................................................................228
Waciwoci......................................................................................................................229
Spis treci
Spis treci
Parametry uytkownika...........................................................................................................449
AutoCAD DesignCenter...................................................................................................450
Hipercze .........................................................................................................................450
Ustawienia szerokoci linii ...............................................................................................451
Waciwoci sortowania obiektw ...................................................................................451
Priorytet przy wprowadzaniu wsprzdnych ..................................................................452
Standardowe zachowanie Windows .................................................................................452
Pomoce rysunkowe .................................................................................................................453
AutoSnap ..........................................................................................................................453
AutoTrack .........................................................................................................................454
Wybr......................................................................................................................................455
Uchwyty............................................................................................................................455
Tryby wyboru oraz wskanik zbioru wskaza .................................................................456
Profile......................................................................................................................................456
Metody..............................................................................................................................457
Metody i waciwoci zwizane z ustawieniami.....................................................................458
Podsumowanie ........................................................................................................................458
10
Dodatki ...........................................................................................553
Dodatek A Zmienne systemowe AutoCAD-a 2002 .................................................555
Dodatek B Zmienne systemowe AutoCAD-a 2004 .................................................583
Dodatek C Wielkoci wyliczeniowe (enum)............................................................613
Dodatek D Dziedziczenie w obiektach ...................................................................621
Dodatek E
Rozdzia 12.
Edycja
W rozdziale tym przyjrzymy si kilku wbudowanym w VBA funkcjom AutoCAD-a
zwizanym z edycj. Odejdziemy tu od naszej wczeniejszej praktyki pisania samowystarczalnych przykadw, czyli tworzenia pewnego elementu i nastpnie zmieniania go
w pewien sposb w tej samej procedurze. Aby zastosowa omawiane metody edycji, tak
jak robi si to zazwyczaj, utworzymy obiekty za pomoc procedur bazujcych na listingach z wczeniejszych rozdziaw, a nastpnie zastosujemy metody zbioru ,
by wskaza elementy i zmodyfikowa je.
Uyjemy szeciu tego typu procedur:
,
,
,
,
oraz . (Nazwy tych procedur zaznaczylimy w listingach tego rozdziau kursyw).
Procedury
,
, oraz
zostay uproszczone dla celw tego rozdziau, a ich kod umiecilimy na kocu tego rozdziau. Dodajmy jeszcze, e kody tych
listingw, jak rwnie wszystkich innych zawartych w tej ksice, mona cign ze
strony internetowej wydawnictwa Prentice Hall pod adresem www.phptr.com.
W zwizku z tym, e czsto stosujemy zbiory wskaza, a w listingach zazwyczaj uywamy nazwy , zbir wskaza o okrelonej nazwie jest wymazywany na kocu
kadego listingu. Jeli z jakiego powodu dana procedura nie zadziaa poprawnie, naley
wwczas rcznie wymaza zbir , ktremu nadano okrelon nazw; w przeciwnym razie jeli sprbujemy uy ponownie tej samej nazwy, AutoCAD wygeneruje
komunikat o bdzie. W tym celu mona zastosowa podprogram z rozdziau 7. (patrz listing 7.6). (Jak wspomnielimy w rozdziale 7., mona te ewentualnie
oprni zbir wskaza i ponownie uy go za pomoc metody ).
340
Cz II
Array
Metoda ma dwie opcje: (tablica biegunowa) i %$ (tablica prostoktna), podobnie jak odpowiadajce jej polecenie AutoCAD-a. Opcja biegunowa suy
do kopiowania wybranych obiektw okrelon ilo razy, rozmieszczajc je jednoczenie
na okrgu wok podanego punktu rodkowego. Natomiast tablica prostoktna tworzy
ukad skopiowanych elementw uoonych w rzdy i kolumny o okrelonej odlegoci
od obiektu oryginalnego, ktry definiuje jeden z naronikw tablicy.
Metoda
podczas kopiowania automatycznie obraca kady z obiektw, orientujc go tak, e jego o symetrii przechodzi przez punkt rodkowy tablicy. Pod tym wzgldem metoda ta rni si od odpowiadajcej jej komendy AutoCAD-a, ktra umoliwia
wybr midzy obrotem obiektu a kopiowaniem bez obrotu.
ArrayPolar (metoda oglna (39)). $($ jako tablica ( zmiennych )*
=)*+
(,$"))* jako &% [> 1, tylko wprowadzanie], %. jako $) [tylko wprowadzanie],
jako ( [tylko wprowadzanie]).
Kt naley poda w radianach; wartoci ujemne wskazuj na obrt w kierunku przeciwnym do ruchu wskazwek zegara, natomiast zero powoduje bd.
Listing 12.1 rozpoczyna si od wywoania procedury
!
,
Nastpnie deklarujemy i nadajemy wartoci kilku obiektom, ktre maj zosta skopiowane do tablicy, jak rwnie okrelamy kt dopenienia (w radianach) oraz wsprzdne
punktu rodkowego. Deklarujemy rwnie nowy obiekt
Rozdzia 12.
Edycja
341
dynamicznie, poniewa musi on by w stanie przechowa dowolny rodzaj obiektu dodanego do zbioru wskaza. Po zadeklarowaniu zmiennej typu (, sucej do przechowywania nowo utworzonych obiektw, wykorzystujemy ptl ./+++,, aby do
kadego obiektu zastosowa metod
. Na koniec za pomoc metody 0"
wykonujemy zmian wielkoci wywietlanego obszaru, aby pokaza ca tablic.
ArrayRectangular (metoda oglna (39)). $($ jako tablica ( = )*+ %$ (,$") jako &% [> 1, tylko wprowadzanie], ,$")$"
jako &% [> 1, tylko wprowadzanie], ,$") jako &% [tylko wprowadzanie], jako $) [tylko wprowadzanie], $" jako
$) [tylko wprowadzanie], jako $) [tylko wprowadzanie]).
Oryginalny obiekt, z ktrego tworzona jest tablica, zajmuje w niej lewy dolny naronik;
natomiast ujemne parametry dotyczce kolumn i rzdw oznaczaj, e tablica budowana
jest w d i na lewo.
Metoda %$ dziaa we wszystkich trzech osiach. Uytkownik podaje liczb
rzdw, kolumn i poziomw (dla osi Z) cznie z odstpami omidzy nimi. Natomiast
znak uyty przy wprowadzaniu kadego z odstpw oznacza kierunek w osiach X, Y i Z.
Ustawienia w listingu 12.2 s bardzo podobne do tych z listingu 12.1. Natomiast do utworzenia obiektu testowego moemy uy zarwno procedury
!
,
342
Cz II
Copy
Aby za pomoc metody przenie nowo utworzony obiekt w inne miejsce, naley
zastosowa j wraz z metod , nazwa wprowadza tu w bd. Oprcz utworzenia
zbioru wskaza obiektw, ktre chcemy skopiowa, w ustawieniach naley doda take
dwa punkty suce jako wektor przemieszczenia. Funkcj t speniaj dwa pierwsze
paragrafy listingu 12.3.
Copy (metoda oglna (39)). $($ jako )* = )*+. (Obiekt skopiowany zostaje w tym samym miejscu).
Procedura ta umoliwia wybranie dowolnej liczby obiektw rysunkowych. W operacji
kopiowania wykorzystujemy ptl .+++,, suc do iteracji zbioru wskaza, aby
skopiowa, przesun i zmieni kolor nowych obiektw. Aby zrealizowa te czynnoci,
musimy najpierw zadeklarowa zmienn ptli () oraz nada rozmiary tablicy (
()*), bazujc na waciwoci $ nalecej do obiektu . W ten sposb
korzystamy z tej waciwoci dwukrotnie, ale nie musimy deklarowa dwch zmiennych:
jednej do zliczania elementw oraz obiektu
dla skadnikw zbioru wskaza.
Z kolei w listingu dotyczcym metody
(patrz listing 12.4) do wykonania podobnej
czynnoci uywamy alternatywnej konstrukcji ./+++,. Zastosowanie tej skadni
jest szybsze pod wieloma wzgldami.
Listing 12.3. Prosta operacja kopiowania
#
5
($
%
%$
%
($
$* ((
$* (%
$
%$
'* %(
)* %%
$
67
/0
8
59:
!
1 $
#
;(
-
"
$
#
;(
!
#
5
6
3 (. %
#
<
/
!
,
Rozdzia 12.
Edycja
343
Metoda )* powiela kilka obiektw nalecych do tego samego dokumentu lub
do rnych dokumentw, uywajc w tym przypadku opcjonalnego parametru .
Jeli nie podano tego parametru, wwczas nowe obiekty tworzone s w tym samym dokumencie co obiekt rdowy. Tablic )* tworzymy przy uyciu podstawowych
obiektw, ktre maj zosta skopiowane, natomiast wszelkie drugorzdne obiekty, podlege lub zwizane z podstawowymi, rwnie zostan skopiowane.
Metod )* przedstawilimy ju w rozdziale 8. przy okazji omawiania obiektu
), a jej zastosowanie mona byo zobaczy w listingu 8.10. Natomiast informacje
dotyczce procesu kopiowania i przenoszenia zwracane s w tablicy obiektw &
,
jeli byy one zawarte w odwoaniu do metody )*. Obiekt &
posiada kilka
waciwoci.
IsCloned. )*+&
jako ($ = obiekt rdowy zosta sklonowany,
. = obiekt rdowy nie zosta sklonowany, tylko do odczytu).
IsOwnerXlated. )*+&1
jako ($ = obiekt bdcy wacicielem
zosta przeniesiony z jednej bazy danych do innej, . = obiekt bdcy wacicielem
istnieje ju w nowym rysunku i nie zosta skopiowany, tylko do odczytu).
IsPrimary. )*+&
" jako ($ = obiekt rdowy jest skadnikiem
podstawowego zbioru obiektw, . = pochodny obiekt rdowy jest wasnoci podstawowego zbioru obiektw, tylko do odczytu).
Key. )*+2 jako % (tylko do odczytu) zwraca identyfikator obiektu rdowego.
Value. )*+($ jako % (tylko do odczytu) zwraca identyfikator nowego, skopiowanego obiektu.
Explode
Metoda
rozbija zoony obiekt na jego elementarne skadniki. W przeciwiestwie
do odpowiadajcego jej polecenia AutoCAD-a, metoda ta nie rozbija wymiarw, multilinii
oraz wikszoci obiektw 3D. Jeli zastosujemy j do obiektw, ktrych nie dotyczy,
system wygeneruje komunikat o bdzie )*/
3/$///
"
(obiekt nie obsuguje tej wasnoci lub metody). Obiekty obsugujce metod
zostay wymienione poniej. Naley take pamita o wyranym wymazaniu rozbitego obiektu, ktry pozostaje po utworzeniu nowego zbioru jego elementw skadowych.
Explode. $($ jako tablica ( zmiennych typu )* =)*+
,4 obiektu(w), ktry ma zosta rozbity. Dostp do pojedynczych elementw zawartych w blokach moliwy jest za pomoc metody &", nie jest zatem konieczne rozbijanie bloku w celu jego edycji. Metoda
obsugiwana jest przez obiekty:
,
5 , %'%
, &5,
%,
oraz %.
Listing 12.4 rozpoczyna si od utworzenia obiektu testowego
oraz proby
o wybranie zbioru wskaza. Jeli chcemy, moemy wybra rwnie kilka obiektw.
Natomiast drugi paragraf tej procedury przeprowadza faktyczne rozbicie. Deklarujemy
rwnie kilka zmiennych, cznie z $, ktra dostosowana jest do liczby elementw
w zbiorze wskaza (waciwo $ zwraca liczb o jeden wiksz od $, poniewa
numeracja rozpoczyna si od zera).
344
Cz II
GetBoundingBox
Metoda ta nie ma odpowiednika wrd polece AutoCAD-a. Jednak wszystkie elementy
posiadaj pewn ramk ograniczajc, ktr wykorzystywalimy, na przykad opisujc
geometri bry w rozdziale 10. W listingu przedstawionym w tym rozdziale wykorzystujemy procedur , ktra tworzy zoony obiekt przez poczenie dwch bry. Procedura z listingu 12.5 przeznaczona jest do przetwarzania jednoczenie tylko jednego
obiektu. Jeli wic wskaemy wiksz liczb obiektw, przetworzony zostanie tylko
pierwszy z nich.
Rozdzia 12.
Edycja
345
IntersectWith
Jest to druga metoda zwizana z edycj, ktra nie posiada odpowiednika wrd polece
AutoCAD-a. Zwraca ona punkty, w ktrych przecinaj si dane obiekty. Zadaniem procedury z listingu 12.6 jest podanie punktw przecicia tylko dwch pierwszych wskazanych obiektw.
IntersectWith. $($ jako tablica ( zmiennych typu $) =)*+&' (&)* [dowolny obiekt rysunkowy, tylko wprowadzanie],
jako &% [tylko wprowadzanie, enum
]). Metoda ta suy do
podania punktw, w ktrych przecinaj si wskazane obiekty rysunkowe (wszystkie z wyjtkiem
( i
%). Natomiast parametr
okrela, ktry z przecinajcych si elementw ma zosta przeduony do miejsca ich teoretycznego przecicia. Obowizujce wartoci wielkoci wyliczeniowej
s nastpujce:
(0)
,,
(1)
,
(3)
,
(4)
.
346
Cz II
Procedura z listingu 12.6 tworzy lini przecinajc w dwch punktach elips, a nastpnie
wywietla kursor wyboru. Na pocztku deklarujemy tablic (, przeznaczon do
przechowywania punktw przecicia (&
), ktra zapeniana jest za pomoc pierwszego zbioru wskaza. Ptla w drugim paragrafie procedury wywietla na ekranie punkty
przecicia, ktre przypisywane s do kolejnych trjpunktowych grup tablicy &
.
Listing 12.6. Znajdowanie punktw przecicia
!D
0
! -
! !$
!D!(
.,/
!
!
6
"
27
!
@7
!
5'
67
/ 859:E? ?F *?!
?.?! >A
(
?.?! >%
67
/6.. 98G!D
>(
/
!
,
Mirror
Dwie metody VBA zwizane z lustrzanym odbiciem odzwierciedlaj odpowiadajce im
polecenia interfejsu uytkownika w wersji 2D i 3D. Kada z nich moe by zastosowana
do dowolnego elementu AutoCAD-a.
Mirror (metoda oglna (39)). $($ jako odbity element typu )* = )*+ (
6 jako ( [tylko odczyt],
7 jako ( [tylko odczyt]. Metoda ta
suy do lustrzanego odbijania paskich obiektw wzgldem wskazanej osi. Zmienna systemowa & 1 steruje odbijaniem tekstu (0 = tekst pozostaje czytelny, . = tekst
odbity dosownie).
W listingu 12.7 wykorzystalimy obiekty i do zaprezentowania lustrzanego odbicia wzgldem linii zdefiniowanej za pomoc dwch punktw. Po wykonaniu tej
czynnoci kolor odbitego obiektu zostaje zmieniony na czerwony. Procedura z omawianego listingu pozwala na wybranie wielu elementw. Naley take doda, e zarwno
w przypadku wersji 2D, jak i 3D, jeli chcemy wymaza oryginalny obiekt, musimy osobno
zastosowa metod .
Listing 12.7. Lustrzane odbicie w paszczynie X-Y
6
Rozdzia 12.
Edycja
347
0
($
%
%$
%
($
$* ((
)%4* (%
$
%$
)* %(
)%4* %%
$
67
/ 99H89I
,
-
"
, !
6
(. %
#
1
/
0
!
,
Mirror3D (metoda oglna (39)). $($ jako odbity element typu )* =)*+ (
6 jako ( [tylko odczyt],
7 jako ( [tylko odczyt],
jako ( [tylko odczyt]). Metoda suy do lustrzanego odbijania bry wzgldem wskazanej paszczyzny.
Procedura przedstawiona w listingu 12.8 pozwala na lustrzane odbicie jedynie pierwszego wskazanego elementu. W naszym przypadku elementem tym jest obiekt ,
odbijany symetrycznie wzgldem paszczyzny zdefiniowanej za pomoc trzech punktw. Po wykonaniu operacji odbicia dodatkowo zmieniany jest kolor nowego elementu.
Listing 12.8. Lustrzane odbicie w przestrzeni trjwymiarowej
6
'
($
%
%$
%
'$
%
($
%$* ((
$* (%
$
%$
%$* %(
%$* %%
$
'$
%$* '(
%$* '%
%$
6 '
6 !$
6
' (. %. '
6 #
)4
0
!
,
348
Cz II
Move
Metod zastosowalimy ju wczeniej w poczeniu z metod (listing 12.3).
Natomiast listing 12.9 przedstawia operacj przesunicia zbioru wskaza o okrelon
odlego X.
Move (metoda oglna (39)). )*8/
6 jako ( (tylko wprowadzanie),
7 jako ( (tylko wprowadzanie).
W rozdziale 14. utworzymy narzdzie do przeksztacania wybranych obiektw wzgldem
punktu pocztkowego lub bazowego, na przykadzie ktrego omwimy kilka odmian
kopiowania i przesuwania obiektw o rne odlegoci oraz pod okrelonym ktem.
Listing 12.9. Przesunicie kilku obiektw
6
3
($
%
%$
%
!
!
@<!
G
JKL*
($
$* ((
$* (%
$
%$
* %(
$* %%
$
"
$
#
=(
!
6
3 (. %
/
!
,
Offset
Metoda tworzy rwnolege krzywe i linie oraz wsprodkowe okrgi i elipsy.
Jej zastosowanie jest ograniczone do wymienionych przed chwil obiektw. Jeli zastosujemy j do obiektw, ktrych ona nie dotyczy, system wygeneruje komunikat o bdzie
)*/
3/$////"
(obiekt nie obsuguje tej waciwoci lub metody).
Offset. $($ jako tablica ( zmiennych typu )* 9/ )*+
( jako $) [tylko wprowadzanie]). Metoda ta tworzy nowy obiekt odsunity
o okrelon odlego (dodatni lub ujemn, ale nie zerow) od istniejcego obiektu.
Metod t mona stosowa wycznie z obiektami, takimi jak: , , , ,
%'%
,
, oraz 1.
W listingu 12.10 tworzymy, a nastpnie wskazujemy pojedyncz elips, ktra zostaje powielona przez odsunicie od oryginalnego obiektu o odlego jednej jednostki wymiarowej.
Rozdzia 12.
Edycja
349
!
,
Rotate
Metody obrotu w 2D i 3D mona zastosowa do dowolnego obiektu rysunkowego cznie
z odnonikami atrybutw.
Rotate (metoda oglna (39)). )*+
jako ( [tylko wprowadzanie], % jako $) (kt w radianach, tylko wprowadzanie). Metoda ta
suy do obrotu obiektu wok okrelonego punktu w dwch wymiarach.
Procedura z listingu 12.11 pozwala na jednoczesne wskazanie kilku obiektw. Definiuje
ona take punkt bazowy (
) oraz kt obrotu wynoszcy w tym przypadku 45 stopni
(wyraony w radianach).
Listing 12.11. Obrt w paszczynie X-Y
1
# $
%
1-
# $
%*# (
(*# %
$
1$MN4'ON(
!
"
$
#
;(
!
1
# .1
/
!
,
Rotate3D (metoda oglna (39)). )*+ 6 jako ( [tylko wprowadzanie], 7 jako ( [tylko wprowadzanie], % jako $) (kt w radianach, tylko wprowadzanie). Metoda ta suy do obrotu bryy wok okrelonej linii.
350
Cz II
!
,
ScaleEntity
Podobnie jak odpowiadajce jej polecenie , metoda powiksza lub pomniejsza wszelkie elementy AutoCAD-a o podany wspczynnik. Skalowanie odbywa
si rwnomiernie we wszystkich trzech osiach.
ScaleEntity. )*+
jako ( (tylko wprowadzanie), . jako $) (tylko wprowadzanie). Metoda ta przeprowadza skalowanie rwnomiernie we wszystkich trzech osiach.
W procedurze z listingu 12.13 zastosowalimy metod , aby automatycznie wskaza wszystkie widoczne obiekty na rysunku testowym. Wszystkie zaznaczone elementy
zostaj pomniejszone o dwie trzecie przy uyciu punktu pocztkowego rysunku jako
punktu bazowego skalowania.
Listing 12.13. Skalowanie w przestrzeni trjwymiarowej
,
7 $
%
"
7 $
$*7 (
$*7 %
$
"
$''''
Rozdzia 12.
Edycja
351
!
"
$
#
=(
!
,7 ."
/
!
,
TransformBy
" jest ostatni z trzech metod edycyjnych, ktre nie posiadaj odpowiednikw wrd polece AutoCAD-a. Umoliwia ona dokonywanie zmian geometrycznych,
ktre maj fundamentalne znaczenie dla kadej grafiki komputerowej. Nie bdziemy
zagbia si w teori matematyczn transformacji macierzy 3D, ale naley pozna chociaby podstawow notacj, aby korzysta z metody ", ktra posiada bardzo
rozbudowane moliwoci.
352
Cz II
wymaga rwnie, aby wspczynniki skalowania miay jednakow warto we wszystkich trzech kierunkach. Istnieje natomiast moliwo poczenia przesunicia z obrotem
lub skalowaniem, poniewa wykorzystuje ono inne pozycje tablicy.
Listing 12.14. Tablice transformacji (44)
R1$$Q1$(1$%$R
R1($1((Q1(%Q(R
R1($1%(1%%Q%R
R$$$(R
0*R#
1
;1
$$R
R1
#
1
$$R
R$$($R
R$$$(R
L*R($$$R
R$#
1
=1
$R
R$1
#
1
$R
R$$$(R
S*R#
1
$1
$R
R$($$R
R=1
$#
1
$R
R$$$(R
Procedura pokazana w listingu 12.15 przedstawia dwie funkcje przeksztace tablicowych. Zaczynamy od utworzenia w nowym rysunku obiektu . Nastpnie deklarujemy dwuwymiarow tablic () jako zmienn matrycy 44 oraz zbir wskaza i obiekt
oglny. Obiekt (z rozdziau 10.) wskazywany jest automatycznie za pomoc opcji
nalecej do metody . Ten pojedynczy element przypisywany
jest zmiennej obiektu oglnego (ktra moe przechowywa dowolny rodzaj elementu
i jest wizana dynamicznie), tak e konieczne jest tylko jednokrotne oszacowanie +&":;<.
Nastpnie tworzymy zmienne potrzebne do samego przeksztacenia, czyli kt obrotu ( )
oraz punkt odniesienia (). Kt naley poda w stopniach, ktre s potem zamieniane na
radiany, wymagane przez metod ".
W listingu tym wykonujemy dwa przeksztacenia, z ktrych kade poprzedzone jest wywietleniem okna dialogowego pokazujcego uywane parametry. Najpierw obracamy
obiekt o kt 60 stopni (w kierunku zgodnym z ruchem wskazwek zegara) bez skadnikw translacji. Nastpnie zmieniamy skal obiektu na mniejsz o poow, jednoczenie
przemieszczajc go o 5 jednostek we wszystkich trzech osiach. Natomiast na koniec
wymazujemy zbir wskaza.
Mona take cign z Internetu drug aplikacj zwizan z metod " dotyczc tego rozdziau, ktra obraca obiekt o niewielkie kty, jednoczenie stopniowo zmniejszajc wywietlany widok za pomoc polecenia 0". Tworzy to interesujcy efekt animacji,
ktry daje blisze pojcie o zasadzie dziaania polecenia ) AutoCAD-a, a uzyskujemy to przez zawarcie kilku funkcji transformacji w ptli .+++,.
Rozdzia 12.
Edycja
353
Undo
Polecenie !
AutoCAD-a posiada kilka opcji sucych do sterowania rezultatem jej
dziaania, ktre polega na cofniciu wykonanego poprzednio polecenia. Opcje te wykorzystywane s do pogrupowania czynnoci w sekwencje, ktre mona cofn jako cao.
Natomiast metoda !
VBA obsuguje dwie z tych opcji, umoliwiajc okrelenie pocztku i koca sekwencji wykonanych czynnoci.
EndUndoMark (metoda obiektu ). )*+
!
5 ustawia rodowisko
AutoCAD-a w ten sposb, e czynnoci wykonane midzy !
5 a t metod
traktowane s jako oddzielna grupa (patrz listing !
5).
354
Cz II
,
Waciwoci informacyjne
Waciwoci AutoCAD-a zwizane z edycj posiadaj dostp typu odczyt i zapis, dziki
czemu s bardzo pomocne w aktywnym wykonywaniu funkcji edycyjnych oraz przy
zapytaniach. Na przykad waciwoci
i
mona wykorzysta do
programowego wykonania tych samych czynnoci, ktre realizuj polecenia
i ".
Aby fizycznie zmieni cechy charakterystyczne elementw rysunkowych, mona zastosowa rwnie waciwoci &
, oraz 5.
Waciwo umoliwia okrelenie powierzchni ograniczonej za pomoc kilku elementw AutoCAD-a. Waciwo t wykorzystujemy obszernie w projekcie przestrzeni
biurowej w rozdziale 19.
Area. Podaje obszar ograniczony obiektami. Typ: $) (odczyt i zapis). Waciwo
ta dotyczy wycznie obiektw, takich jak: , , , %'%
,
, % oraz .
Procedura w listingu 12.17 tworzy uproszczon polilini (obiekt %'%
),
a nastpnie wywietla za pomoc standardowego okna dialogowego powierzchni ograniczon przez ten obiekt. Natomiast jeli podejmiemy prb zastosowania tej waciwoci
Rozdzia 12.
Edycja
355
(jak rwnie waciwoci omwionych poniej) w stosunku do elementw, ktre jej nie
obsuguj, AutoCAD wygeneruje komunikat o bdzie.
Listing 12.17. Obliczanie powierzchni
2D
$
M
$
$* (
$* %
$* '
($
)
($* 4
($* &
($* M
$
6
52D
#
0
67
/95
*?
,
#
-
#
!$ #
%
67
/'=*?#
$ ?.?#
(
#
$ )*#
(
)
!$
#
% #
!$
@5
67
/'= *?#
$ ?.?#
(
!
,
356
Cz II
#
-
#
!$ #
67
/85
?@7
#
% ?.?#
M
#
% 4*#
M
4
!$
#
#
1
67
/%= *?#
% ?.?#
M
!
,
InsertionPoint (waciwo oglna (9)). Podaje punkt, w ktrym dany obiekt wstawiany
jest do rysunku. Typ: tablica ( zmiennych $) (odczyt i zapis). Jest to wsprzdna 3D dotyczca obiektw, takich jak: )$, )$ , 5 , , &5, , , oraz .
Listing 12.20 zmienia punkt wstawienia obiektu . Obiekt ten wskazywany jest za
pomoc metody
; nastpnie jego punkt wstawienia przypisujemy do zmiennej typu ( i wywietlamy jego wsprzdne na ekranie. Zmienna ta jest potem
redefiniowana, a jej nowe wartoci zwrcone zostaj do wskazanego elementu, ktry na
koniec zostaje uaktualniony.
Rozdzia 12.
Edycja
357
Normal (waciwo oglna (28)). Podaje trjwymiarowy wektor normalny osi Z obiektu
graficznego (trjelementowa tablica zmiennych $)). Typ: ( (odczyt i zapis).
Waciwo ta podaje wektor, ktry okrela kierunek normalny i ktry moe by dodany
do wybranego punktu, aby otrzyma inny punkt. Naley pamita, e nie jest to wsprzdna podajca umiejscowienie w przestrzeni.
Waciwo ," okrela o Z obiektu we wsprzdnych ukadu WCS. Waciwoci
tej mona uy jako parametru ,", gdy przeprowadzamy konwersj wsprzdnych
za pomoc metody
(patrz listing 7.27).
W listingu 12.21 zmieniamy waciwo ," elementu , utworzonego za pomoc
procedury
z rozdziau 9. Potem wskazujemy ten obiekt, a nastpnie deklarujemy zmienn , typu ( oraz nadajemy jej warto za pomoc waciwoci ,"
obiektu +&":6<. Jest to zbir wskaza, w ktrym znajduj si dwa elementy;
pierwszym z nich jest zewntrzna ptla (&":;<), ktra okrela granice kreskowania.
My natomiast bdziemy edytowa element &":6<, ktrym jest samo kreskowanie.
W kolejnym etapie po wywietleniu wartoci wektora ," za pomoc okna dialogowego nadajemy mu now warto, ktra przypisywana jest do elementu. Na koniec uaktualniamy ten obiekt i wywietlamy na ekranie nowe wsprzdne wektora.
Listing 12.21. Zmiana wektora normalnego
1
-
!(
67
/D8
*?$
?.?(
?.?%
358
Cz II
67
/
8
*?$
?.?(
?.?%
!
,
Rozdzia 12.
Edycja
359
giwana jest tylko przez obiekty: , )$, )$ , , %'%
, ,
,
, ,
, oraz .
W listingu 12.23 wskazujemy najpierw wszystkie elementy znajdujce si na rysunku,
po czym za pomoc ptli .+++, zwikszamy o 5 jednostek grubo tych obiektw,
ktre obsuguj waciwo 5. W procedurze tej umiecilimy cakiem rozbudowany mechanizm wychwytywania bdw, sucy do rozpoznania obiektw nieposiadajcych waciwoci 5 przez zmian ich koloru na czerwony. Natomiast okna
dialogowe wywietlaj status kadego elementu przed jego edycj i po niej.
Listing 12.23. Zmiana gruboci obiektu
8
!
8-
,
<
,
U
"
$
#
;(
8!
8
67
/,??<
JK*?!
8
!
88>4
!
@5
67
/,??
<
JK*?!
8
/
#
VA- !1'(4'$
!
,/
,
U*
!
#
1
!
@5
67
/,??5
J
>(
1/
,
360
Cz II
Metoda
""
emuluje wykonywanie serii czynnoci z poziomu wiersza polece
AutoCAD-a. Jej acuch musi zawiera wszystkie argumenty plecenia dokadnie w takiej
kolejnoci, w jakiej s one wymagane cznie z odstpami lub znakiem ASCII 13, tam
gdzie wymagany jest tzw. powrt karetki. (Wyraenie ) jest sta VBA odpowiadajc
znakowi powrotu karetki).
Listing 12.24. Wysyanie polece
#
#
,L(.(.$()4
8H85B.>3#
#
H
J
>3#
#
5
8C)4
5>3#>3#
#
06D=(.=(%$.%$
#
VA- !1'(4)4
,
Rozdzia 12.
Edycja
361
i
pochodz z rozdziau 9. Z kolei , ktra tworzy interesujcy ukad walca
i kuli, znajduje si w rozdziale 10. Natomiast procedury
,
, oraz
(patrz rozdzia 9.) zostay uproszczone dla celw tego rozdziau, a ich zmodyfikowany
kod pokazano poniej. Warto wspomnie, e kody wszystkich listingw umieszczonych
w tej ksice mona cign ze strony internetowej wydawnictwa Prentice Hall pod
adresem www.phptr.com.
,5
,5
$
%
/6 $
%
11
$
$*(
$*%
$
/6 $
(*/6 (
%*/6 %
$
11$4
6
5,5./6 .11
,
2
2
($
%
%$
%
11
($
=%4* ((
=(4* (%
$
%$
%4* %(
(4* %%
$
6
52 (. %
,
/
/
/
U
$
%
/U
.#W
U(
$
'* (
'* %
$
6
5//. .U
,
Podsumowanie
Rozdzia ten przybliy wiele metod AutoCAD-a sucych do zmiany jego obiektw
graficznych. Przyjrzelimy si nie tylko podstawowym metodom edycji, takim jak ,
, , czy te , ale take bardziej zaawansowanym, czyli tablicom
biegunowym i prostoktnym oraz przeksztaceniom macierzowym. Nastpnie skupilimy
362
Cz II