autocad 2002 i 2004. tworzenie makr w vba
DESCRIPTION
* Spraw, aby AutoCAD zrobił więcej, niż kiedykolwiek uważałeś za możliwe! * Zautomatyzuj najbardziej złożone zadania konstrukcyjne * Zintegruj dane rysunkowe z innymi systemami przedsiębiorstwa, bazami danych oraz Internetem * Steruj obszarem rysunku, rzutniami oraz wydrukiem * Zbuduj krok po kroku kompletną aplikację bazy danych dla AutoCAD-aAutoCAD 2002 jest nie tylko najpopularniejszym na świecie narzędziem do projektowania i kreślenia: to także potężna, programowalna platforma służąca do automatyzacji złożonych zadań projektowych integrująca dane projektowe z firmowymi systemami informatycznymi i pozwalająca rozwiązać wiele problemów technicznych i biznesowych. Kluczem do tych możliwości jest język Visual Basic for Applications. Kluczem do programowania za pomocą tego języka jest książka "AutoCAD 2002. Tworzenie makr w VBA"Jej autorowi, jak nikomu innemu, udało się powiązać kluczowe narzędzia AutoCAD-a z możliwościami języka VBA. Ukazując współdziałanie AutoCAD-a i VBA w warunkach rzeczywistej pracy pomagają czytelnikowi tworzyć praktyczne aplikacje. W kolejnych etapach czytelnik: * Przejmie kontrolę nad AutoCAD-em: opanuje podstawy automatyzacji, COM oraz programowanie zorientowane obiektowo * Zacznie swobodnie poruszać się po interaktywnym środowisku projektowania VBA dla AutoCAD-a * Wniknie w budowę pliku DXF, aby lepiej zrozumieć strukturę bazy danych rysunku AutoCAD-a * Opanuje model obiektu AutoCAD-a: dokumenty, interfejs użytkownika, zarządzanie plikami, zbiory, obiekty i inne elementy * Zautomatyzuje obiekty graficzne 2D i 3D, zewnętrzne odniesienia, elementy, bryły, wymiary oraz zdarzenia * Zastosuje język VBA do sterowania obszarem papieru, rzutniami oraz wydrukiem * Poszerzy możliwości AutoCAD-a o komunikację z innymi aplikacjami Pogłębisz swoje umiejętności śledząc powstawanie kompletnej aplikacji, integrującej rysunek AutoCAD-a z bazą danych Microsoft Access za pomocą technologii DAO (Data Access Objects) Microsoftu. Książka "AutoCAD 2002. Tworzenie makr w VBA" zawiera również zwięzłe opisy zmiennych systemowych i wyliczeniowych AutoCAD-a, dziedziczenia obiektów oraz elementów graficznych. Jeśli jesteś gotów okiełznać całą moc zawartą w AutoCAD-zie 2002, jest to książka której szukałeś!O autorze: Jeffrey E. Clark używa AutoCAD-a w swojej pracy od 15 lat, stworzył kilka komercyjnych aplikacji tego systemu. Jego prace publikowane były w wielu wydawnictwach [więcej...]TRANSCRIPT
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: [email protected]
PRZYK£ADOWY ROZDZIA£PRZYK£ADOWY ROZDZIA£
IDZ DOIDZ DO
ZAMÓW DRUKOWANY KATALOGZAMÓW DRUKOWANY KATALOG
KATALOG KSI¥¯EKKATALOG KSI¥¯EK
TWÓJ KOSZYKTWÓJ KOSZYK
CENNIK I INFORMACJECENNIK I INFORMACJE
ZAMÓW INFORMACJEO NOWO�CIACH
ZAMÓW INFORMACJEO NOWO�CIACH
ZAMÓW CENNIKZAMÓW CENNIK
CZYTELNIACZYTELNIA
FRAGMENTY KSI¥¯EK ONLINEFRAGMENTY KSI¥¯EK ONLINE
SPIS TRE�CISPIS TRE�CI
DODAJ DO KOSZYKADODAJ DO KOSZYKA
KATALOG ONLINEKATALOG ONLINE
AutoCAD 2002 i 2004.Tworzenie makr w VBAAutor: Jeffrey E. Clark
T³umaczenie: Jacek Marzec
ISBN: 83-7197-861-8
Tytu³ orygina³u: VBA for AutoCAD 2002
Writing AutoCAD Macros
Format: B5, stron: 672
AutoCAD 2002 jest nie tylko najpopularniejszym na �wiecie narzêdziem do
projektowania i kre�lenia: to tak¿e potê¿na, programowalna platforma s³u¿¹ca do
automatyzacji z³o¿onych zadañ projektowych integruj¹ca dane projektowe z firmowymi
systemami informatycznymi i pozwalaj¹ca rozwi¹zaæ wiele problemów technicznych
i biznesowych. Kluczem do tych mo¿liwo�ci jest jêzyk Visual Basic for Applications.
Z kolei klucz do programowania za pomoc¹ tego jêzyka trzymasz w³a�nie w swoich
rêkach, jest nim ksi¹¿ka „AutoCAD 2002. Tworzenie makr w VBA”
Jej autorowi, jak nikomu innemu, uda³o siê powi¹zaæ kluczowe narzêdzia AutoCAD-a
z mo¿liwo�ciami jêzyka VBA. Ukazuj¹c wspó³dzia³anie AutoCAD-a i VBA w warunkach
rzeczywistej pracy pomagaj¹ czytelnikowi tworzyæ praktyczne aplikacje.
W kolejnych etapach czytelnik:
• Przejmie kontrolê nad AutoCAD-em: opanuje podstawy automatyzacji, COM
oraz programowanie zorientowane obiektowo
• Zacznie swobodnie poruszaæ siê po interaktywnym �rodowisku projektowania
VBA dla AutoCAD-a
• Wniknie w budowê pliku DXF, aby lepiej zrozumieæ strukturê bazy danych
rysunku AutoCAD-a
• Opanuje model obiektu AutoCAD-a: dokumenty, interfejs u¿ytkownika, zarz¹dzanie
plikami, zbiory, obiekty i inne elementy
• Zautomatyzuje obiekty graficzne 2D i 3D, zewnêtrzne odniesienia, elementy, bry³y,
wymiary oraz zdarzenia
• Zastosuje jêzyk VBA do sterowania obszarem papieru, rzutniami oraz wydrukiem
• Poszerzy mo¿liwo�ci AutoCAD-a o komunikacjê z innymi aplikacjami
Pog³êbisz swoje umiejêtno�ci �ledz¹c powstawanie kompletnej aplikacji, integruj¹cej
rysunek AutoCAD-a z baz¹ danych Microsoft Access za pomoc¹ technologii DAO
(Data Access Objects) Microsoftu. Ksi¹¿ka „AutoCAD 2002. Tworzenie makr w VBA”
zawiera równie¿ zwiêz³e opisy zmiennych systemowych i wyliczeniowych AutoCAD-a,
dziedziczenia obiektów oraz elementów graficznych. Je�li jeste� gotów okie³znaæ ca³¹
moc zawart¹ w AutoCAD-zie 2002, jest to ksi¹¿ka której szuka³e�!
Spis treści
Przedmowa............................................................................................13
Część I Środowisko VBA AutoCAD-a................................................21
Rozdział 1. Przejęcie kontroli nad AutoCAD-em ........................................................23Komponenty i technologia Automation....................................................................................24
Podstawy.............................................................................................................................24Spojrzenie ogólne ...............................................................................................................27Szczegóły............................................................................................................................28
Tworzenie rysunku za pomocą Visual Basica..............................................................................31Ustawianie dostępnych odniesień.......................................................................................32Tworzenie procedury ..........................................................................................................32
Więcej na temat komponentów.................................................................................................33Dziedziczenie w AutoCAD-zie ..........................................................................................33
Tablice metod, właściwości i zdarzeń.......................................................................................35Podsumowanie ..........................................................................................................................37
Rozdział 2. Środowisko VBA ....................................................................................39Tworzenie i edycja makr...........................................................................................................39
Okna projektowania............................................................................................................40Okna usuwania błędów.......................................................................................................42
Zarządzanie makrami i ich wykonywanie ................................................................................47Menadżer VBA...................................................................................................................47Okno dialogowe Open VBA Project ..................................................................................48Okno dialogowe Macros.....................................................................................................49
Wiersz poleceń AutoCAD-a .....................................................................................................50Podsumowanie ..........................................................................................................................51
Rozdział 3. DXF: Klucz do struktury rysunku ............................................................53Format DXF ..............................................................................................................................53
Sekcje Objects i Classes .....................................................................................................55Stałe kody grup ...................................................................................................................55Zmienne kody grup.............................................................................................................56Znaczniki podkategorii .......................................................................................................57
Oglądanie rysunku za pomocą VBA.........................................................................................58Procedura GetSubclass odczytuje plik DWG.....................................................................58Procedura DXFsearch odczytuje plik DXF ........................................................................61
AutoLISP a VBA ......................................................................................................................65Zalety VBA.........................................................................................................................66Program narzędziowy VBA................................................................................................67
Podsumowanie ..........................................................................................................................67
4 AutoCAD 2002 i 2004. Tworzenie makr w VBA
Rozdział 4. Elementy modelu obiektu.......................................................................69Interfejsy Automation ...............................................................................................................69Obiekt Application....................................................................................................................70Zbiór Documents.......................................................................................................................71
Zbiory ModelSpace i PaperSpace.......................................................................................71Zbiory tabelaryczne ............................................................................................................72Zbiory obiektowe................................................................................................................73
Obiekt Document i jego elementy ............................................................................................74Obiekt Preferences ....................................................................................................................78Menu i paski narzędzi użytkownika..........................................................................................79
Zbiór MenuBar ...................................................................................................................79Zbiór MenuGroups .............................................................................................................80
Podsumowanie ..........................................................................................................................81
Część II Zastosowanie modelu obiektu AutoCAD-a ...........................83
Rozdział 5. Dokumenty i interfejs użytkownika .........................................................85Metody i właściwości................................................................................................................87Zarządzanie plikami..................................................................................................................88
Tworzenie pliku rysunkowego ...........................................................................................88Otwieranie, zapisywanie i zamykanie rysunku ..................................................................89Metoda WBlock..................................................................................................................93Eksportowanie i importowanie plików...............................................................................93Inne narzędzia zarządzania plikami....................................................................................94
Interfejs użytkownika................................................................................................................95Okna....................................................................................................................................95Zoom...................................................................................................................................99Widoki zdefiniowane przez użytkownika ........................................................................100Rzutnie..............................................................................................................................102
Hiperłącza ...............................................................................................................................109Zmienne wyliczeniowe AutoCAD-a.......................................................................................110Tablice metod, właściwości i zdarzeń.....................................................................................111Podsumowanie ........................................................................................................................111
Rozdział 6. Zbiory i obiekty ...................................................................................121Obiekt Application..................................................................................................................121
Metody..............................................................................................................................121Właściwości ......................................................................................................................121
Obiekt Document ....................................................................................................................123Metody..............................................................................................................................123Właściwości ......................................................................................................................125Zbiory ...............................................................................................................................130
Zarządzanie zbiorami..............................................................................................................131Metody..............................................................................................................................131Właściwości ......................................................................................................................134
Zbiory tabelaryczne.................................................................................................................136Zbiór Layers......................................................................................................................136Zbiór LayerStateManager.................................................................................................138Zbiór Linetypes.................................................................................................................140Zbiór RegisteredApplications...........................................................................................141Zbiór TextStyles ...............................................................................................................141Lokalne układy współrzędnych ........................................................................................143
Tablice metod, właściwości i zdarzeń.....................................................................................145Podsumowanie ........................................................................................................................145
Spis treści 5
Rozdział 7. Obiekty Utility .....................................................................................153Zbiory wskazań, filtry i grupy.................................................................................................154
Zbiory wskazań.................................................................................................................154Filtry .................................................................................................................................159Grupy ................................................................................................................................160
Obiekt Utility ..........................................................................................................................161Pobieranie danych.............................................................................................................162Konwersja danych ............................................................................................................169Dostęp do Internetu...........................................................................................................174
Słowniki i obiekt XRecord......................................................................................................177Tablice metod, właściwości i zdarzeń.....................................................................................179Podsumowanie ........................................................................................................................179
Rozdział 8. Bloki i zewnętrzne odnośniki..................................................................183Bloki........................................................................................................................................184
Korzystanie z bloków .......................................................................................................185Dostęp do odnośników bloków ........................................................................................188
Atrybuty i odniesienia do atrybutów.......................................................................................189Właściwości ......................................................................................................................190Blok zawierający dane......................................................................................................191
Obiekt MInsertBlock...............................................................................................................195Właściwości ......................................................................................................................195
Obiekt Database ......................................................................................................................197Metoda CopyObjects ........................................................................................................197Właściwości obiektu Database .........................................................................................199
Zewnętrzne odnośniki .............................................................................................................200Metody..............................................................................................................................200Redefinicja zewnętrznych odnośników ............................................................................202
Arkusze ...................................................................................................................................205Tablice metod, właściwości i zdarzeń.....................................................................................205Podsumowanie ........................................................................................................................205
Rozdział 9. Elementy.............................................................................................213Wspólne metody i właściwości...............................................................................................213
Definicje ...........................................................................................................................2143DFace ....................................................................................................................................214
Metody..............................................................................................................................214Właściwość .......................................................................................................................215
3DPoly ....................................................................................................................................217Metoda ..............................................................................................................................217Właściwości ......................................................................................................................217
Arc...........................................................................................................................................218Właściwości ......................................................................................................................219
Circle.......................................................................................................................................221Właściwości ......................................................................................................................221
Ellipse......................................................................................................................................223Właściwości ......................................................................................................................223
Hatch .......................................................................................................................................225Metody..............................................................................................................................225Właściwości ......................................................................................................................226
LightWeightPolyline...............................................................................................................228Metody..............................................................................................................................228Właściwości ......................................................................................................................229
6 AutoCAD 2002 i 2004. Tworzenie makr w VBA
Line .........................................................................................................................................231Właściwości ......................................................................................................................231
MLine......................................................................................................................................232Właściwości ......................................................................................................................232
MText......................................................................................................................................235Właściwości ......................................................................................................................236
Point ........................................................................................................................................238PolyfaceMesh..........................................................................................................................239
Właściwości ......................................................................................................................240PolygonMesh (3DMesh) .........................................................................................................243
Metoda ..............................................................................................................................243Właściwości ......................................................................................................................243
Polyline ...................................................................................................................................248Metody..............................................................................................................................248Właściwości ......................................................................................................................248
Raster ......................................................................................................................................250Metoda ..............................................................................................................................251Właściwości ......................................................................................................................251
Ray ..........................................................................................................................................253Właściwości ......................................................................................................................253
Region .....................................................................................................................................255Metoda ..............................................................................................................................256Właściwości ......................................................................................................................256
Shape.......................................................................................................................................258Metoda ..............................................................................................................................258Właściwości ......................................................................................................................258
Solid ........................................................................................................................................260Spline ......................................................................................................................................261
Metody..............................................................................................................................262Właściwości ......................................................................................................................263
Text .........................................................................................................................................265Właściwości ......................................................................................................................265
Trace........................................................................................................................................268XLine ......................................................................................................................................270
Właściwości ......................................................................................................................271Metody, właściwości i zdarzenia związane z elementami graficznymi..................................271Podsumowanie ........................................................................................................................272
Rozdział 10. Bryły ...................................................................................................279Box..........................................................................................................................................280Cone ........................................................................................................................................281Cylinder...................................................................................................................................283EllipticalCone..........................................................................................................................284EllipticalCylinder ....................................................................................................................284ExtrudedSolid..........................................................................................................................285ExtrudedSolidAlongPath ........................................................................................................287RevolvedSolid.........................................................................................................................289Sphere......................................................................................................................................291Torus .......................................................................................................................................292Wedge .....................................................................................................................................293Metody edycji brył ..................................................................................................................294Właściwości masowe ..............................................................................................................298Podsumowanie ........................................................................................................................301
Spis treści 7
Rozdział 11. Wymiary..............................................................................................303Pojęcia.....................................................................................................................................303
Menadżer stylów wymiarowania......................................................................................304Zmienne wymiarowania, style i nadpisywanie.................................................................306Asocjatywność..................................................................................................................306
Rodzaje wymiarów .................................................................................................................307Dim3PointAngular............................................................................................................307DimAligned ......................................................................................................................309DimAngular ......................................................................................................................310DimDiametric ...................................................................................................................312DimOrdinate .....................................................................................................................313DimRadial.........................................................................................................................315DimRotated.......................................................................................................................316Linia odniesienia...............................................................................................................317Tolerancja .........................................................................................................................320
Właściwości wymiarowania ...................................................................................................322Linie i strzałki ...................................................................................................................323Tekst .................................................................................................................................326Dopasowanie.....................................................................................................................326Jednostki podstawowe ......................................................................................................327Jednostki dodatkowe.........................................................................................................328Tolerancje .........................................................................................................................329Inne właściwości wymiarowe...........................................................................................330Zmienne wymiarowe niezwiązane z właściwościami ......................................................332
Tablice metod, właściwości i zdarzeń.....................................................................................333Podsumowanie ........................................................................................................................338
Rozdział 12. Edycja.................................................................................................339Metody związane z edycją ......................................................................................................339
Array .................................................................................................................................340Copy..................................................................................................................................342Explode .............................................................................................................................343GetBoundingBox ..............................................................................................................344IntersectWith.....................................................................................................................345Mirror................................................................................................................................346Move .................................................................................................................................348Offset ................................................................................................................................348Rotate................................................................................................................................349ScaleEntity........................................................................................................................350TransformBy.....................................................................................................................351Undo .................................................................................................................................353
Właściwości informacyjne......................................................................................................354Dostęp do wiersza poleceń......................................................................................................359Inne metody, właściwości i procedury związane z edycją......................................................360Podsumowanie ........................................................................................................................361
Rozdział 13. AutoCAD i zdarzenia ............................................................................363Zdarzenia obiektu Application................................................................................................363
Zdarzenia poziomu aplikacji.............................................................................................365Zdarzenia obiektu Document ..................................................................................................366
Procedury zdarzeń obiektu AcadDocument .....................................................................367Zdarzenia poziomu dokumentu ........................................................................................368
Zdarzenia obiektu Object ........................................................................................................369Ograniczenia obsługi zdarzeń .................................................................................................371Podsumowanie ........................................................................................................................372
8 AutoCAD 2002 i 2004. Tworzenie makr w VBA
Rozdział 14. Formularze i kontrolki ..........................................................................373Zdarzenia dotyczące poleceń ..................................................................................................376Zdarzenia dotyczące formularzy.............................................................................................378Kolejność zaznaczania ............................................................................................................379Narzędzie Relative ..................................................................................................................380
Moduł Relative .................................................................................................................381Formularz frmRelative......................................................................................................386
Metody i właściwości kontrolek .............................................................................................392Podsumowanie ........................................................................................................................392
Rozdział 15. Obszar papieru i plotowanie .................................................................397Interfejs plotowania.................................................................................................................397
Tabele stylów plotowania .................................................................................................397Ustawienia plotera ............................................................................................................397Arkusze obszaru papieru...................................................................................................398Ustawienia systemowe......................................................................................................398
Obiekty PlotConfiguration oraz Layout..................................................................................399Ustawienia wydruku .........................................................................................................399Arkusze .............................................................................................................................402Wspólne metody i właściwości ........................................................................................402
Rzutnie obszaru papieru..........................................................................................................410Metody..............................................................................................................................412Właściwości ......................................................................................................................413
Obiekt Plot ..............................................................................................................................414Metody..............................................................................................................................414Właściwości ......................................................................................................................415
Projekt BatchPlot ....................................................................................................................415Moduł FrmPlotFiles..........................................................................................................416Moduł BatchPlot ...............................................................................................................424
Metody i właściwości drukowania..........................................................................................428Podsumowanie ........................................................................................................................434
Rozdział 16. Ustawienia ..........................................................................................435Style programowania ..............................................................................................................436Pliki .........................................................................................................................................436
Metody..............................................................................................................................436Właściwości ......................................................................................................................437
Ekran .......................................................................................................................................438Wydajność wyświetlania ..................................................................................................439Rozdzielczość wyświetlania .............................................................................................440Elementy arkusza..............................................................................................................440Elementy okna ..................................................................................................................441
Otwieranie i zapisywanie plików............................................................................................443Zewnętrzne odnośniki.......................................................................................................443Środki ochrony pliku ........................................................................................................444Otwieranie i zapisywanie plików......................................................................................444Aplikacje ObjectARX.......................................................................................................445
Wydruk....................................................................................................................................445Standardowe ustawienia wydruku dla nowych rysunków................................................445Standardowe zachowanie stylów wydruku dla nowych rysunków ..................................446Ogólne ustawienia wydruku .............................................................................................447
System.....................................................................................................................................447Opcje połączenia baz danych............................................................................................448Opcje ogólne.....................................................................................................................448
Spis treści 9
Parametry użytkownika...........................................................................................................449AutoCAD DesignCenter...................................................................................................450Hiperłącze .........................................................................................................................450Ustawienia szerokości linii ...............................................................................................451Właściwości sortowania obiektów ...................................................................................451Priorytet przy wprowadzaniu współrzędnych ..................................................................452Standardowe zachowanie Windows .................................................................................452
Pomoce rysunkowe .................................................................................................................453AutoSnap ..........................................................................................................................453AutoTrack .........................................................................................................................454
Wybór......................................................................................................................................455Uchwyty............................................................................................................................455Tryby wyboru oraz wskaźnik zbioru wskazań .................................................................456
Profile......................................................................................................................................456Metody..............................................................................................................................457
Metody i właściwości związane z ustawieniami.....................................................................458Podsumowanie ........................................................................................................................458
Rozdział 17. Menu ..................................................................................................463Menu użytkownika i paski narzędziowe.................................................................................464
Spojrzenie na strukturę menu ...........................................................................................465Metody..............................................................................................................................467Właściwości ......................................................................................................................470
Menu rozwijane.......................................................................................................................472Paski narzędzi .........................................................................................................................474Zapisywanie modyfikacji ........................................................................................................477Tablice metod i właściwości ...................................................................................................477Podsumowanie ........................................................................................................................477
Część III Komunikacja z innymi aplikacjami i Internetem..................481
Rozdział 18. Rozszerzalność ....................................................................................483Dane dodatkowe......................................................................................................................483
Metody..............................................................................................................................484Wykorzystanie polilinii i danych dodatkowych ...............................................................488
Interfejs VBA..........................................................................................................................499Metody..............................................................................................................................499Właściwości ......................................................................................................................500Zdalne uruchamianie VBA...............................................................................................501
Status braku dokumentów.......................................................................................................502Aplikacje ARX........................................................................................................................502
Metody..............................................................................................................................502Podsumowanie ........................................................................................................................503
Rozdział 19. Projekt przestrzeni biurowej .................................................................505Baza danych Microsoft Access ...............................................................................................505
Tabele, klucze oraz ograniczenia integralności ................................................................506Tworzenie okna dialogowego użytkownika .....................................................................507Tworzenie zapytań w tle okna dialogowego ....................................................................509
Interfejs AutoCAD — Access.................................................................................................513Procedura cbo_Group_Change.........................................................................................516Procedura lstDepartment_AfterUpdate ............................................................................518Procedura lstProgDetail_Click .........................................................................................520Przydział powierzchni ......................................................................................................520
Podsumowanie ........................................................................................................................524
10 AutoCAD 2002 i 2004. Tworzenie makr w VBA
Rozdział 20. Model obiektu DWF .............................................................................525Drawing Web Format..............................................................................................................525
Struktura pliku ..................................................................................................................526Kody operacji....................................................................................................................527Współrzędne logiczne.......................................................................................................528
Aplikacja odczytująca Excela .................................................................................................528Moduł XLocate.................................................................................................................529Formularz XLdwf .............................................................................................................530
Opis obiektu Whip!.................................................................................................................538Metody i właściwości ogólne ...........................................................................................538Inne zbiory i obiekty.........................................................................................................546Wbudowane zdarzenia aplikacji Whip!............................................................................547
Metody i właściwości Whip! ..................................................................................................548Podsumowanie ........................................................................................................................551
Dodatki ...........................................................................................553
Dodatek A Zmienne systemowe AutoCAD-a 2002 .................................................555
Dodatek B Zmienne systemowe AutoCAD-a 2004 .................................................583
Dodatek C Wielkości wyliczeniowe (enum)............................................................613
Dodatek D Dziedziczenie w obiektach ...................................................................621
Dodatek E Program narzędziowy formatowania pliku DXF ......................................625
Skorowidz ...........................................................................................643
Rozdział 12.
Edycja
W rozdziale tym przyjrzymy się kilku wbudowanym w VBA funkcjom AutoCAD-a
związanym z edycją. Odejdziemy tu od naszej wcześniejszej praktyki pisania samowy-
starczalnych przykładów, czyli tworzenia pewnego elementu i następnie zmieniania go
w pewien sposób w tej samej procedurze. Aby zastosować omawiane metody edycji, tak
jak robi się to zazwyczaj, utworzymy obiekty za pomocą procedur bazujących na listin-
gach z wcześniejszych rozdziałów, a następnie zastosujemy metody zbioru ������������,
by wskazać elementy i zmodyfikować je.
Użyjemy sześciu tego typu procedur: �� ���, �������, �����, ����, ����
oraz �����. (Nazwy tych procedur zaznaczyliśmy w listingach tego rozdziału kursywą).
Procedury �������, ����, oraz ���� zostały uproszczone dla celów tego roz-
działu, a ich kod umieściliśmy na końcu tego rozdziału. Dodajmy jeszcze, że kody tych
listingów, jak również wszystkich innych zawartych w tej książce, można ściągnąć ze
strony internetowej wydawnictwa Prentice Hall pod adresem www.phptr.com.
W związku z tym, że często stosujemy zbiory wskazań, a w listingach zazwyczaj uży-
wamy nazwy ���������, zbiór wskazań o określonej nazwie jest wymazywany na końcu
każdego listingu. Jeśli z jakiegoś powodu dana procedura nie zadziała poprawnie, należy
wówczas ręcznie wymazać zbiór ������������, któremu nadano określoną nazwę; w prze-
ciwnym razie jeśli spróbujemy użyć ponownie tej samej nazwy, AutoCAD wygeneruje
komunikat o błędzie. W tym celu można zastosować podprogram ������������ z roz-
działu 7. (patrz listing 7.6). (Jak wspomnieliśmy w rozdziale 7., można też ewentualnie
opróżnić zbiór wskazań i ponownie użyć go za pomocą metody �����).
Metody związane z edycją
Najczęściej używane polecenia AutoCAD-a związane z edycją, takie jak ����, ����,
������, ������, ����, ������, �����, ����� oraz !��, mają swoje odpowiedniki w me-
todach VBA. Polecenia ����� i ���" nie posiadają bezpośrednich odpowiedników, po-
nieważ funkcje te wykonuje się przez zmianę wektorów definiujących modyfikowane
elementy. Istnieją również trzy metody edycyjne, nieposiadające odpowiedników w inter-
fejsie użytkownika. Są to: #����$��%���, &��������'��� oraz ��������". Jak będziemy
mogli się przekonać, ostatnia z nich posiada wyjątkowo duże możliwości.
340 Część II � Zastosowanie modelu obiektu AutoCAD-a
Array
Metoda ���� ma dwie opcje: ����� (tablica biegunowa) i ������%$��� (tablica prosto-kątna), podobnie jak odpowiadające jej polecenie AutoCAD-a. Opcja biegunowa służydo kopiowania wybranych obiektów określoną ilość razy, rozmieszczając je jednocześniena okręgu wokół podanego punktu środkowego. Natomiast tablica prostokątna tworzyukład skopiowanych elementów ułożonych w rzędy i kolumny o określonej odległościod obiektu oryginalnego, który definiuje jeden z narożników tablicy.
Metoda ���� ���� podczas kopiowania automatycznie obraca każdy z obiektów, orien-tując go tak, że jego oś symetrii przechodzi przez punkt środkowy tablicy. Pod tym wzglę-dem metoda ta różni się od odpowiadającej jej komendy AutoCAD-a, która umożliwiawybór między obrotem obiektu a kopiowaniem bez obrotu.
ArrayPolar (metoda ogólna (39)). ��$��(��$� jako tablica (������ zmiennych �)*���=�)*���+���� ���� (,$")�����)*���� jako &���%�� [> 1, tylko wprowadzanie], �%��-��.��� jako ��$)�� [tylko wprowadzanie], ������ ���� jako (������ [tylko wprowadzanie]).Kąt należy podać w radianach; wartości ujemne wskazują na obrót w kierunku przeciw-nym do ruchu wskazówek zegara, natomiast zero powoduje błąd.
Listing 12.1 rozpoczyna się od wywołania procedury ������� służącej do utworzeniaobiektu, który będziemy potem edytować. Możemy tutaj zastosować dowolny elementAutoCAD-a lub grupę wskazanych elementów. Natomiast zbiór wskazań ������������tworzony jest za pomocą metody narzędziowej ��������������.
Listing 12.1. Tworzenie biegunowej tablicy obiektów
������������� �������������
�������������������������������������������������������������������������������������������� ��������������������������
������������� ����!��������������"����������������������#�����$���% ������������������ ���&����"��������'�()����#�����$ ���'*�#�����( ���'*�#�����% ���$+
���������� �����������,������������������ ����-����������"��,������ ����!���������������������� ����� ������������������ .�"�����.�#���� ������/���� ���
����0���������������������������������!��������������� �������,������
Następnie deklarujemy i nadajemy wartości kilku obiektom, które mają zostać skopio-wane do tablicy, jak również określamy kąt dopełnienia (w radianach) oraz współrzędnepunktu środkowego. Deklarujemy również nowy obiekt ������, który jest kojarzony
Rozdział 12. � Edycja 341
dynamicznie, ponieważ musi on być w stanie przechować dowolny rodzaj obiektu doda-nego do zbioru wskazań. Po zadeklarowaniu zmiennej typu (������, służącej do przecho-wywania nowo utworzonych obiektów, wykorzystujemy pętlę .��/����+++,���, aby dokażdego obiektu zastosować metodę ���� ����. Na koniec za pomocą metody 0��"��wykonujemy zmianę wielkości wyświetlanego obszaru, aby pokazać całą tablicę.
ArrayRectangular (metoda ogólna (39)). ��$��(��$� jako tablica (������ = �)*���+�-��� �����%$��� (,$")���� ��� jako &���%�� [> 1, tylko wprowadzanie], ,$")�������$"��jako &���%�� [> 1, tylko wprowadzanie], ,$")���������� jako &���%�� [tylko wprowa-dzanie], ����������� ��� jako ��$)�� [tylko wprowadzanie], ��������������$"�� jako��$)�� [tylko wprowadzanie], ����������������� jako ��$)�� [tylko wprowadzanie]).Oryginalny obiekt, z którego tworzona jest tablica, zajmuje w niej lewy dolny narożnik;natomiast ujemne parametry dotyczące kolumn i rzędów oznaczają, że tablica budowanajest w dół i na lewo.
Metoda ���� �����%$��� działa we wszystkich trzech osiach. Użytkownik podaje liczbęrzędów, kolumn i poziomów (dla osi Z) łącznie z odstępami omiędzy nimi. Natomiastznak użyty przy wprowadzaniu każdego z odstępów oznacza kierunek w osiach X, Y i Z.
Ustawienia w listingu 12.2 są bardzo podobne do tych z listingu 12.1. Natomiast do utwo-rzenia obiektu testowego możemy użyć zarówno procedury �������, jak też wskazaćobiekty z dowolnego rysunku. Najpierw deklarujemy wymagane zmienne i nadajemy war-tości ilościom elementów oraz odległościom między rzędami, kolumnami i poziomami.Potem przeprowadzamy iterację zbioru wskazań za pomocą metody���� �����%$���,aby utworzyć nowy obiekt.
Listing 12.2. Tworzenie prostokątnej tablicy obiektów
���������1����������� �������������
�������������������������������������������������������������������������������������������� ��������������������������
��������1��������2����������#��������2����������2�3�������2��
��������1���������������������#���������������������2�3����������������1�������4*�1�������'����#�������4*�#�������'����2�3������'*�2�3������%
���������� �����������,������������������ ����-����������"��,������ ����!���������������������� ����� ���������1�����������1����.�#����.�2�3���.�1����.�#����.�2�3��� ������/���� ���
����0���������������������������������!��������������� �������,������
342 Część II � Zastosowanie modelu obiektu AutoCAD-a
Copy
Aby za pomocą metody ���� przenieść nowo utworzony obiekt w inne miejsce, należy
zastosować ją wraz z metodą ����, nazwa ���� wprowadza tu w błąd. Oprócz utworzenia
zbioru wskazań obiektów, które chcemy skopiować, w ustawieniach należy dodać także
dwa punkty służące jako wektor przemieszczenia. Funkcję tę spełniają dwa pierwsze
paragrafy listingu 12.3.
Copy (metoda ogólna (39)). ��$��(��$� jako �)*��� = �)*���+����. (Obiekt skopio-
wany zostaje w tym samym miejscu).
Procedura ta umożliwia wybranie dowolnej liczby obiektów rysunkowych. W operacji
kopiowania wykorzystujemy pętlę .��+++,���, służącą do iteracji zbioru wskazań, aby
skopiować, przesunąć i zmienić kolor nowych obiektów. Aby zrealizować te czynności,
musimy najpierw zadeklarować zmienną pętli (�) oraz nadać rozmiary tablicy (������
(����)*), bazując na właściwości ��$�� należącej do obiektu ������������. W ten sposób
korzystamy z tej właściwości dwukrotnie, ale nie musimy deklarować dwóch zmiennych:
jednej do zliczania elementów oraz obiektu �������� dla składników zbioru wskazań.
Z kolei w listingu dotyczącym metody ������ (patrz listing 12.4) do wykonania podobnej
czynności używamy alternatywnej konstrukcji .��/����+++,���. Zastosowanie tej składni
jest szybsze pod wieloma względami.
Listing 12.3. Prosta operacja kopiowania
����#5�� �������������������������������������������������������������������������������������������� ��������������������������
��������(�$���% �����������������%�$���% �������������(�$ ���$*�(�( ���$*�(�% ���$����%�$ ���'*�%�( ���)*�%�% ���$����6��7/��0����� ���8���5�9�����:�������
�������������!����������1���������� �$�����������#����;�( ����-����������"������$�����������#����;�(����������������� �� �����������!����� �#5�������������� �� �63��(.�%������������� �� �#�������<����������/��������������������������������!��������������� �������,������
CopyObjects (metoda obiektu ��������, ����). ��$��(��$� jako tablica (������
zmiennych typu �)*��� = �)*���+�����)*����. (�)*���� jako tablica (������ zmiennych
typu �)*��� [tylko wprowadzanie], ����� jako pojedynczy obiekt (������ [opcjonalnie,
tylko wprowadzanie], &� ���� jako tablica (������ zmiennych typu &� ��� [opcjonalnie,
tylko wprowadzanie]).
Rozdział 12. � Edycja 343
Metoda �����)*���� powiela kilka obiektów należących do tego samego dokumentu lubdo różnych dokumentów, używając w tym przypadku opcjonalnego parametru �����.Jeśli nie podano tego parametru, wówczas nowe obiekty tworzone są w tym samym do-kumencie co obiekt źródłowy. Tablicę �)*���� tworzymy przy użyciu podstawowychobiektów, które mają zostać skopiowane, natomiast wszelkie drugorzędne obiekty, podle-głe lub związane z podstawowymi, również zostaną skopiowane.
Metodę �����)*���� przedstawiliśmy już w rozdziale 8. przy okazji omawiania obiektu����)���, a jej zastosowanie można było zobaczyć w listingu 8.10. Natomiast informacjedotyczące procesu kopiowania i przenoszenia zwracane są w tablicy obiektów &� ���,jeśli były one zawarte w odwołaniu do metody �����)*����. Obiekt &� ��� posiada kilkawłaściwości.
IsCloned. �)*���+&������ jako ������� (��$� = obiekt źródłowy został sklonowany,.���� = obiekt źródłowy nie został sklonowany, tylko do odczytu).
IsOwnerXlated. �)*���+&������1���� jako ������� (��$� = obiekt będący właścicielemzostał przeniesiony z jednej bazy danych do innej, .���� = obiekt będący właścicielemistnieje już w nowym rysunku i nie został skopiowany, tylko do odczytu).
IsPrimary. �)*���+&� ��"��� jako ������� (��$� = obiekt źródłowy jest składnikiempodstawowego zbioru obiektów, .���� = pochodny obiekt źródłowy jest własnością pod-stawowego zbioru obiektów, tylko do odczytu).
Key. �)*���+2�� jako ���% (tylko do odczytu) zwraca identyfikator obiektu źródłowego.
Value. �)*���+(��$� jako ���% (tylko do odczytu) zwraca identyfikator nowego, skopio-wanego obiektu.
Explode
Metoda ������ rozbija złożony obiekt na jego elementarne składniki. W przeciwieństwiedo odpowiadającego jej polecenia AutoCAD-a, metoda ta nie rozbija wymiarów, multiliniioraz większości obiektów 3D. Jeśli zastosujemy ją do obiektów, których nie dotyczy,system wygeneruje komunikat o błędzie �)*���/����3�/�$�����/����/��������/��"���� („obiekt nie obsługuje tej własności lub metody”). Obiekty obsługujące metodę������ zostały wymienione poniżej. Należy także pamiętać o wyraźnym wymazaniu roz-bitego obiektu, który pozostaje po utworzeniu nowego zbioru jego elementów składowych.
Explode. ��$��(��$� jako tablica (������ zmiennych typu �)*��� =�)*���+������,�4�� obiektu(ów), który ma zostać rozbity. Dostęp do pojedynczych elementów zawar-tych w blokach możliwy jest za pomocą metody &��", nie jest zatem konieczne rozbija-nie bloku w celu jego edycji. Metoda ������ obsługiwana jest przez obiekty: �� ���,����5 ��, ��%��'��%�� �������, �&���������5, ���%������, ������� oraz �%���.
Listing 12.4 rozpoczyna się od utworzenia obiektu testowego �� ������� oraz prośbyo wybranie zbioru wskazań. Jeśli chcemy, możemy wybrać również kilka obiektów.Natomiast drugi paragraf tej procedury przeprowadza faktyczne rozbicie. Deklarujemyrównież kilka zmiennych, łącznie z ���$��, która dostosowana jest do liczby elementóww zbiorze wskazań (właściwość ��$�� zwraca liczbę o jeden większą od ���$��, ponieważnumeracja rozpoczyna się od zera).
344 Część II � Zastosowanie modelu obiektu AutoCAD-a
Pętla .��/����+++,���, zawarta w tej procedurze, przeprowadza iterację zbioru wskazań.Potrzebna jest nam także dodatkowa zmienna (�), aby śledzić pozycję tablicy ����)*.Należy jednak wspomnieć, że w tym przypadku bardziej efektywna byłaby tradycyjnapętla .��+++,���. Kolejną czynnością jest usunięcie wszystkich obiektów ze zbioru wska-zań po tym, jak zostały rozbite.
Trzeci paragraf tego listingu przeprowadza po prostu iterację elementów zbioru wskazańoraz zestawów rozbitych obiektów, zmieniając ich kolor na zielony, a następnie przywra-cając domyślny kolor warstwy po to, abyśmy mogli zobaczyć je na ekranie. (Aby prze-testować tę metodę, nie wskażemy zapewne dużej ilości obiektów).
Listing 12.4. Rozbicie kilku obiektów
����,/5���� ��������� ��
�������������������������������������������������������������������������������������������� ��������������������������
���������� �����������,������������������!�������������� ����!���������������#�������!�����������#��������������#����=�(����1�����,/5�� �$����#��� ����-����������"��,������ ����!�����������������,/5�� �� ����� ����,/5������������� ������������������������>�(������/���� ���
����"������$����#�������6��7/��,����������������?���?���27������?�27����,/5�� �� �?���@7������?�A��������@7����,/5�� �� ��������"�� ���27����,/5�� �� ���@7����,/5�� �� ������������,/5�� �� � �#�������<����������������,/5�� �� � �@5����������������6��7/��19��������8����?� �?��*���?�A��������������������,/5�� �� � ��� �������������������,/5�� �� � �#�������7�2����������������,/5�� �� � �@5�������������/�� ������/��������������������������������!��������������� �������,������
GetBoundingBox
Metoda ta nie ma odpowiednika wśród poleceń AutoCAD-a. Jednak wszystkie elementyposiadają pewną ramkę ograniczającą, którą wykorzystywaliśmy, na przykład opisującgeometrię brył w rozdziale 10. W listingu przedstawionym w tym rozdziale wykorzy-stujemy procedurę �����, która tworzy złożony obiekt przez połączenie dwóch brył. Pro-cedura z listingu 12.5 przeznaczona jest do przetwarzania jednocześnie tylko jednegoobiektu. Jeśli więc wskażemy większą liczbę obiektów, przetworzony zostanie tylkopierwszy z nich.
Rozdział 12. � Edycja 345
GetBoundingBox (metoda ogólna (39)). ��$��(��$� jako �)*��� =�)*���+#����$���%-
���. ��� ���� jako (������ (tylko odczyt), ��� ���� jako (������ (tylko odczyt).
W listingu 12.5 deklarujemy dwie zmienne (������/obsługujące dolną i górną granicę
ramki ograniczającej. Parametry te zwracane są przez metodę #����$���%��� jako trój-
elementowa tablica zmiennych ��$)�� oraz wyświetlane na ekranie za pomocą okna dia-
logowego. Natomiast w końcowym paragrafie stosujemy metodę ����, aby w tych
miejscach umieścić widoczne punkty. W ten właśnie sposób wykonywaliśmy rysunki
w rozdziale 10.
Listing 12.5. Ustalenie punktów obszaru ograniczającego
����<��7������7/� ����� ��������������������������������������������������������������������������������������������� ��������������������������
���������6������-���������������6�/����-������������������!����$ ��<��7������7/��6��.��6�/����6��7/����8�����B���� C�����9���������9��*���?��6���$ �?��.��?��6���( �?��.��?�A���������6���% �?������� ���?��6�/�$ �?��.��?��6�/�( �?��.��?��6�/�% �?������8� ��
��������������������������������������������������6����5������������6�/ ���������������������������6����5������������6�� �������������������-����������6��,�.�')�����������������������������!��������������� �������,������
IntersectWith
Jest to druga metoda związana z edycją, która nie posiada odpowiednika wśród poleceń
AutoCAD-a. Zwraca ona punkty, w których przecinają się dane obiekty. Zadaniem pro-
cedury z listingu 12.6 jest podanie punktów przecięcia tylko dwóch pierwszych wska-
zanych obiektów.
IntersectWith. ��$��(��$� jako tablica (������ zmiennych typu ��$)�� =�)*���+&����-
����'��� (&���������)*��� [dowolny obiekt rysunkowy, tylko wprowadzanie], �����-
������ jako &���%�� [tylko wprowadzanie, enum �������������]). Metoda ta służy do
podania punktów, w których przecinają się wskazane obiekty rysunkowe (wszystkie z wy-
jątkiem (������� i ���%������). Natomiast parametr ����������� określa, który z prze-
cinających się elementów ma zostać przedłużony do miejsca ich teoretycznego przecię-
cia. Obowiązujące wartości wielkości wyliczeniowej ������������� są następujące:
(0) �������,���,
(1) �����������������,
(3) ������������������,
(4) �����������.
346 Część II � Zastosowanie modelu obiektu AutoCAD-a
Procedura z listingu 12.6 tworzy linię przecinającą w dwóch punktach elipsę, a następnie
wyświetla kursor wyboru. Na początku deklarujemy tablicę (������, przeznaczoną do
przechowywania punktów przecięcia (&�� ��), która zapełniana jest za pomocą pierw-
szego zbioru wskazań. Pętla w drugim paragrafie procedury wyświetla na ekranie punkty
przecięcia, które przypisywane są do kolejnych trójpunktowych grup tablicy &�� ��.
Listing 12.6. Znajdowanie punktów przecięcia
����!��������D���� �����������������������
����0������������������������������������������������������������������������������������������������ ��������������������������
��������!��������-����������!���������������!����$ �!��������D������������!����( .���,/������� �������������!�������������� ����!��������������6����������������"������27����!���� ���@7����!���� ����5�'��������6��7/������8����5�9���:���E��?� �?��F� ���*���?�!������ �?��.��?�!�������>�A������������( �?��.��?�!�������>�% ��������6��7/�6��.�.���9�8G���!��������D������������ ��� �>�(������/��������������������������������!��������������� �������,������
Mirror
Dwie metody VBA związane z lustrzanym odbiciem odzwierciedlają odpowiadające im
polecenia interfejsu użytkownika w wersji 2D i 3D. Każda z nich może być zastosowana
do dowolnego elementu AutoCAD-a.
Mirror (metoda ogólna (39)). ��$��(��$� jako odbity element typu �)*��� = �)*���+��-
���� ( ����6 jako (������ [tylko odczyt], ����7 jako (������ [tylko odczyt]. Metoda ta
służy do lustrzanego odbijania płaskich obiektów względem wskazanej osi. Zmienna sys-
temowa �& ��1� steruje odbijaniem tekstu (0 = tekst pozostaje czytelny, .���� = tekst
odbity dosłownie).
W listingu 12.7 wykorzystaliśmy obiekty ������� i ���� do zaprezentowania lustrzane-
go odbicia względem linii zdefiniowanej za pomocą dwóch punktów. Po wykonaniu tej
czynności kolor odbitego obiektu zostaje zmieniony na czerwony. Procedura z omawia-
nego listingu pozwala na wybranie wielu elementów. Należy także dodać, że zarówno
w przypadku wersji 2D, jak i 3D, jeśli chcemy wymazać oryginalny obiekt, musimy osobno
zastosować metodę ������.
Listing 12.7. Lustrzane odbicie w płaszczyźnie X-Y
����6����� �������������
Rozdział 12. � Edycja 347
����������
����0������������������������������������������������������������������������������������������������ ��������������������������
��������(�$���% �����������������%�$���% �������������(�$ ���$*�(�( ���)�%4*�(�% ���$����%�$ ���)*�%�( ���)�%4*�%�% ���$����6��7/������ ���������9����9��H����8�9�I����
���������� �����������,������������������ ����-����������"��,������ ����!�������������������������� ����� ����6�����(.�% ������������� �#�������1��������/���� ���
����0���������������������������������!��������������� �������,������
Mirror3D (metoda ogólna (39)). ��$��(��$� jako odbity element typu �)*��� =�)-
*���+�������� ( ����6 jako (������ [tylko odczyt], ����7 jako (������ [tylko odczyt],
����� jako (������ [tylko odczyt]). Metoda służy do lustrzanego odbijania brył wzglę-
dem wskazanej płaszczyzny.
Procedura przedstawiona w listingu 12.8 pozwala na lustrzane odbicie jedynie pierw-
szego wskazanego elementu. W naszym przypadku elementem tym jest obiekt �����,
odbijany symetrycznie względem płaszczyzny zdefiniowanej za pomocą trzech punk-
tów. Po wykonaniu operacji odbicia dodatkowo zmieniany jest kolor nowego elementu.
Listing 12.8. Lustrzane odbicie w przestrzeni trójwymiarowej
����6����'�� ����� �
�������������������������������������������������������������������������������������������� ��������������������������
��������(�$���% �����������������%�$���% �����������������'�$���% �������������(�$ ���%$*�(�( ���$*�(�% ���$����%�$ ���%$*�%�( ���%$*�%�% ���$����'�$ ���%$*�'�( ���%$*�'�% ���%$
��������6���� ��������'�������������6���� �����������!����$ �6����'��(.�%.�' ����6���� �#�����)4
����0���������������������������������!��������������� �������,������
348 Część II � Zastosowanie modelu obiektu AutoCAD-a
Move
Metodę ���� zastosowaliśmy już wcześniej w połączeniu z metodą ���� (listing 12.3).
Natomiast listing 12.9 przedstawia operację przesunięcia zbioru wskazań o określoną
odległość X.
Move (metoda ogólna (39)). �)*���8/���� ����6 jako (������ (tylko wprowadzanie),
����7 jako (������ (tylko wprowadzanie).
W rozdziale 14. utworzymy narzędzie do przekształcania wybranych obiektów względem
punktu początkowego lub bazowego, na przykładzie którego omówimy kilka odmian
kopiowania i przesuwania obiektów o różne odległości oraz pod określonym kątem.
Listing 12.9. Przesunięcie kilku obiektów
����63�� �������������������������������������������������������������������������������������������� ��������������������������
��������(�$���% �����������������%�$���% �������������������������!�������������������!�����������������������������@�������<��!���������� �����GJK�L*�� ����(�$ ���$*����(�( ���$*�(�% ���$����%�$ �������*�%�( ���$*�%�% ���$
����"������$�����������#����=�(����������������!����� �63��(.�%������/��������������������������������!��������������� �������,������
Offset
Metoda ������ tworzy równoległe krzywe i linie oraz współśrodkowe okręgi i elipsy.
Jej zastosowanie jest ograniczone do wymienionych przed chwilą obiektów. Jeśli zasto-
sujemy ją do obiektów, których ona nie dotyczy, system wygeneruje komunikat o błędzie
„�)*���/����3�/�$�����/����/��������/��/"����” („obiekt nie obsługuje tej właści-
wości lub metody”).
Offset. ��$��(��$� jako tablica (������ zmiennych typu �)*��� 9/�)*���+������
(�������� jako ��$)�� [tylko wprowadzanie]). Metoda ta tworzy nowy obiekt odsunięty
o określoną odległość (dodatnią lub ujemną, ale nie zerową) od istniejącego obiektu.
Metodę tę można stosować wyłącznie z obiektami, takimi jak: ��, ������, ������, ����,
��%��'��%�� �������, �������, ������ oraz 1����.
W listingu 12.10 tworzymy, a następnie wskazujemy pojedynczą elipsę, która zostaje po-
wielona przez odsunięcie od oryginalnego obiektu o odległość jednej jednostki wymiarowej.
Rozdział 12. � Edycja 349
Listing 12.10. Odsunięcie obiektu
�����BB���� �������������
�������������������������������������������������������������������������������������������� ������������������������������6��7/������I�9��H����8�9�I����
������������� ����-��������������� �����������!����$ ��BB����(+ ��������� �$ �#�������1��
����0���������������������������������!��������������� �������,������
Rotate
Metody obrotu w 2D i 3D można zastosować do dowolnego obiektu rysunkowego łącznie
z odnośnikami atrybutów.
Rotate (metoda ogólna (39)). �)*���+ ����� ���� ���� jako (������ [tylko wprowa-
dzanie], ��������%�� jako ��$)�� (kąt w radianach, tylko wprowadzanie). Metoda ta
służy do obrotu obiektu wokół określonego punktu w dwóch wymiarach.
Procedura z listingu 12.11 pozwala na jednoczesne wskazanie kilku obiektów. Definiuje
ona także punkt bazowy (��� ��) oraz kąt obrotu wynoszący w tym przypadku 45 stopni
(wyrażony w radianach).
Listing 12.11. Obrót w płaszczyźnie X-Y
����1����� �������������������������������������������������������������������������������������������� ��������������������������
��������#�����$���% �����������������1���������-����������#�����$ ���%*�#�����( ���(*�#�����% ���$����1��������$�MN4'ON(
�������������!����������"������$�����������#����;�(����������������!����� �1�����#����.�1�����������/��������������������������������!��������������� �������,������
Rotate3D (metoda ogólna (39)). �)*���+ ������� ����6 jako (������ [tylko wprowadza-
nie], ����7 jako (������ [tylko wprowadzanie], ��������%�� jako ��$)�� (kąt w radia-
nach, tylko wprowadzanie). Metoda ta służy do obrotu bryły wokół określonej linii.
350 Część II � Zastosowanie modelu obiektu AutoCAD-a
Procedura z listingu 12.12 przystosowana jest do obsługi tylko pierwszego wskazanego
obiektu, ale obydwie metody związane z obrotem można stosować do wielu elementów,
jeśli w podprogramie umieścimy odpowiednią pętlę przetwarzającą wszystkie składniki
zbioru wskazań. W omawianym listingu umożliwiliśmy wprowadzanie kąta obrotu w stop-
niach, które są następnie konwertowane na radiany.
Listing 12.12. Obrót w przestrzeni trójwymiarowej
����1����'�� ����� �
�������������������������������������������������������������������������������������������� ��������������������������
��������(�$���% �����������������%�$���% �����������������1�����������������(�$ ���$*�(�( ���%*�(�% ���$����(�$ ���$*�(�( ���=%*�(�% ���$����1�������O$����1�������1�����P�'�()(4O%�Q�(N$
������������!����$ �1����'��(.�%.�1��������0���������������������������������!��������������� �������,������
ScaleEntity
Podobnie jak odpowiadające jej polecenie �����, metoda ����������� powiększa lub po-
mniejsza wszelkie elementy AutoCAD-a o podany współczynnik. Skalowanie odbywa
się równomiernie we wszystkich trzech osiach.
ScaleEntity. �)*���+����������� ���� ���� jako (������ (tylko wprowadzanie), �����-
.����� jako ��$)�� (tylko wprowadzanie). Metoda ta przeprowadza skalowanie równo-
miernie we wszystkich trzech osiach.
W procedurze z listingu 12.13 zastosowaliśmy metodę ������, aby automatycznie wska-
zać wszystkie widoczne obiekty na rysunku testowym. Wszystkie zaznaczone elementy
zostają pomniejszone o dwie trzecie przy użyciu punktu początkowego rysunku jako
punktu bazowego skalowania.
Listing 12.13. Skalowanie w przestrzeni trójwymiarowej
���������,������ �������������������������������������������������������������������������������������������� �����������������������������������
��������7�����$���% �����������������"�����������������7�����$ ���$*�7�����( ���$*�7�����% ���$����"�������$�''''
Rozdział 12. � Edycja 351
�������������!����������"������$�����������#����=�(����������������!����� ������,������7����.�"����������/��������������������������������!��������������� �������,������
TransformBy
��������"�� jest ostatnią z trzech metod edycyjnych, które nie posiadają odpowiedni-ków wśród poleceń AutoCAD-a. Umożliwia ona dokonywanie zmian geometrycznych,które mają fundamentalne znaczenie dla każdej grafiki komputerowej. Nie będziemyzagłębiać się w teorię matematyczną transformacji macierzy 3D, ale należy poznać cho-ciażby podstawową notację, aby korzystać z metody ��������"��, która posiada bardzorozbudowane możliwości.
TransformBy (metoda ogólna (39)). �)*���+��������"�� ��������"����������� jako
(������ (tablica 4×4 zmiennych ��$)��). Metoda ta umożliwia jednocześnie przesunięcie,
obrót oraz skalowanie obiektu za pomocą tablicy przekształceń o wymiarach 4×4. Jeślimetoda ta zostanie niewłaściwie sformułowana, AutoCAD zwraca komunikat o błędzie,a w niektórych przypadkach może to spowodować „ogólny błąd modelowania”, któryuniemożliwia dalsze działanie programu.
Jak mogliśmy zaobserwować przy okazji omawiania metody ����, przesunięcie reali-zowane jest po prostu przez określenie starego i nowego położenia obiektu za pomocąpunktów w układzie współrzędnych AutoCAD-a. Następnie odejmujemy od siebie współ-rzędne tych punktów, uzyskując wektor przesunięcia, który ma zastosowanie do dowol-nego punktu obiektu przesuwanego równolegle z jednego punktu do drugiego.
Natomiast operacje obrotu i skalowania nie są już tak proste, ponieważ każdy punktobiektu musi zostać przemieszczony w odmienny sposób w stosunku do punktu odniesie-nia. W przypadku skalowania każdy punkt obiektu odsuwany jest wzdłuż osi zaczepionejw punkcie odniesienia. Reprezentacja obrotu może mieć podobną formę, zrealizowanaza pomocą sinusa i cosinusa wymaganego kąta. Obydwie te funkcje można połączyć,
mnożąc każdy z punktów definicji obiektu przez tablicę o wymiarach 2×2, definiującąfunkcję transformacji.
Istnieje możliwość złożenia (konsolidacji) operacji przesunięcia, skalowania i obrotu
w dwóch wymiarach w tablicy o wymiarach 3×3. Reprezentację tę można rozszerzyć rów-
nież na trzy wymiary, jeśli zastosujemy tablicę 4×4. Ogólna tablica metody ��������"��
AutoCAD-a przedstawiona została w listingu 12.14a. Parametr oznacza tam kryteria
obrotu, zdefiniowane za pomocą sinusa i cosinusa. Natomiast � i � odnoszą się odpowiednio
do skalowania i przesunięcia. Wyrażone są one jako współczynniki skalowania w pierw-
szym przypadku oraz jako odległość — w drugim. Wszystkie one są liczbami rzeczywi-
stymi (typ ��$)��).
W listingach 12.14b, c i d przedstawiono odpowiednio obrót wokół osi X, Y i Z przy użyciu
funkcji sinus i cosinus. Obrót wokół każdej osi należy skonfigurować za pomocą osobnej
tablicy. Podobnie w przypadku skalowania, gdzie wykorzystywane są pozycje matryc
R00, R11 i R22 (patrz listing 12.14a), którego nie można połączyć z obrotem. AutoCAD
352 Część II � Zastosowanie modelu obiektu AutoCAD-a
wymaga również, aby współczynniki skalowania miały jednakową wartość we wszyst-
kich trzech kierunkach. Istnieje natomiast możliwość połączenia przesunięcia z obrotem
lub skalowaniem, ponieważ wykorzystuje ono inne pozycje tablicy.
Listing 12.14. Tablice transformacji (4×4)
����R�1$$Q���1$(����1$%�����$R����R�1($����1((Q���1(%Q����(R����R�1($����1%(����1%%Q����%R����R��$������$������$������(R�����������
0*��R#��1 �;����1 ��$������$R����R����1 ��#��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 przekształceń tablico-
wych. Zaczynamy od utworzenia w nowym rysunku obiektu �����. Następnie deklaru-
jemy dwuwymiarową tablicę (�) jako zmienną matrycy 4×4 oraz zbiór wskazań i obiekt
ogólny. Obiekt ����� (z rozdziału 10.) wskazywany jest automatycznie za pomocą opcji
���������������� należącej do metody ������. Ten pojedynczy element przypisywany
jest zmiennej obiektu ogólnego (która może przechowywać dowolny rodzaj elementu
i jest wiązana dynamicznie), tak że konieczne jest tylko jednokrotne oszacowanie ����-
���+&��":;<.
Następnie tworzymy zmienne potrzebne do samego przekształcenia, czyli kąt obrotu ( )
oraz punkt odniesienia (�). Kąt należy podać w stopniach, które są potem zamieniane na
radiany, wymagane przez metodę ��������"��.
W listingu tym wykonujemy dwa przekształcenia, z których każde poprzedzone jest wy-
świetleniem okna dialogowego pokazującego używane parametry. Najpierw obracamy
obiekt o kąt 60 stopni (w kierunku zgodnym z ruchem wskazówek zegara) bez składni-
ków translacji. Następnie zmieniamy skalę obiektu na mniejszą o połowę, jednocześnie
przemieszczając go o –5 jednostek we wszystkich trzech osiach. Natomiast na koniec
wymazujemy zbiór wskazań.
Można także ściągnąć z Internetu drugą aplikację związaną z metodą ��������"�� doty-
czącą tego rozdziału, która obraca obiekt o niewielkie kąty, jednocześnie stopniowo zmniej-
szając wyświetlany widok za pomocą polecenia 0��". Tworzy to interesujący efekt animacji,
który daje bliższe pojęcie o zasadzie działania polecenia ��)�� AutoCAD-a, a uzysku-
jemy to przez zawarcie kilku funkcji transformacji w pętli .��+++,���.
Rozdział 12. � Edycja 353
Listing 12.15. Przekształcenie macierzowe
���������B��7�� ����� ���������6�$���'.�$���' ����������������������������������������������������� ��������� ������������������������������������������������������������� ��������������������������������������������� ��������������!����$
��������1�������������������$���% ���������������$ ���$*���( ���$����1���=&$����1���1�P�'�()(4O%�Q�(N$����6��7/�����HK���?�1�?���������H���8HG����0�����?���$ �?��.��?���( �?��.��?���% ����6�$.�$ ���#��1 *�6�$.�( ���=����1 ����������������������6�$.�% ���$*�6�$.�' �����$ ����6�(.�$ �������1 *�6�(.�( ���#��1 ����������������������6�(.�% ���$*�6�(.�' �����( ����6�%.�$ ���$*������6�%.�( ���$����������������������6�%.�% ���(*�6�%.�' �����% ����6�'.�$ ���$*������6�'.�( ���$����������������������6�'.�% ���$*�6�'.�' ���(������ ���������B��7���6 ������ ����@5����
����6��7/���8��� ��4���;4.=4.=4��������6�$.�$ ���$�4*�6�$.�( ���$�������������������6�$.�% ���$*���6�$.�' ���=4����6�(.�$ ���$*���6�(.�( ���$�4�������������������6�(.�% ���$*���6�(.�' ���=4����6�%.�$ ���$*���6�%.�( ���$�������������������6�%.�% ���$�4*�6�%.�' ���=4����6�'.�$ ���$*���6�'.�( ���$�������������������6�'.�% ���$*���6�'.�' ���(������ ���������B��7���6
�����������������������������!��������������� �������,������
Undo
Polecenie !�� AutoCAD-a posiada kilka opcji służących do sterowania rezultatem jej
działania, które polega na cofnięciu wykonanego poprzednio polecenia. Opcje te wyko-
rzystywane są do pogrupowania czynności w sekwencje, które można cofnąć jako całość.
Natomiast metoda !�� VBA obsługuje dwie z tych opcji, umożliwiając określenie po-
czątku i końca sekwencji wykonanych czynności.
EndUndoMark (metoda obiektu ��������). �)*���+��!�����5 ustawia środowiskoAutoCAD-a w ten sposób, że czynności wykonane między �����!�����5 a tą metodątraktowane są jako oddzielna grupa (patrz listing �����!�����5).
354 Część II � Zastosowanie modelu obiektu AutoCAD-a
StartUndoMark (metoda obiektu ��������). �)*���+�����!�����5 ustawia środowi-sko AutoCAD-a w ten sposób, że czynności wykonane między tą metodą a ��!�����5traktowane są jako oddzielna grupa. W ten sposób zdefiniowane zostają oddzielne znacz-niki !�� dla każdej tego typu czynności tak, że później można je cofnąć raczej indywi-dualnie, a nie jako grupę.
Procedura w listingu 12.16 tworzy rząd okręgów odsuniętych od siebie o 3 jednostki miary,z których każdy posiada zdefiniowany znacznik cofnięcia. Możemy teraz wprowadzićpolecenie !�� lub ! i w ten sposób cofniemy po jednym okręgu za każdym razem. Jeślinatomiast nie wywołamy metody �����!�����5, wówczas polecenie !�� AutoCAD-aspowoduje cofnięcie od razu całego rzędu okręgów.
Listing 12.16. Znaczniki cofania poleceń
����@��6��8�� ���������� �����������#��������������������$���% �����������������1�������������������������$ ���$*��������( ���$*��������% ���$����1��������(
�������������!����������"������$���M�������������������������@��6��8�������������� ������������������6����5�������#������������.�1����� ���������������$ ����������$ �>�'��������������������,��@��6��8������/�����0����,������
Właściwości informacyjne
Właściwości AutoCAD-a związane z edycją posiadają dostęp typu „odczyt i zapis”, dziękiczemu są bardzo pomocne w aktywnym wykonywaniu funkcji edycyjnych oraz przyzapytaniach. Na przykład właściwości ��������� i ���������� można wykorzystać doprogramowego wykonania tych samych czynności, które realizują polecenia ����� i ���".Aby fizycznie zmienić cechy charakterystyczne elementów rysunkowych, można zasto-sować również właściwości &�������� ����, ������� oraz ����5����.
Właściwość ��� umożliwia określenie powierzchni ograniczonej za pomocą kilku ele-mentów AutoCAD-a. Właściwość tę wykorzystujemy obszernie w projekcie przestrzenibiurowej w rozdziale 19.
Area. Podaje obszar ograniczony obiektami. Typ: ��$)�� (odczyt i zapis). Właściwośćta dotyczy wyłącznie obiektów, takich jak: ��, ������, �������, ��%��'��%�� �������, �������, �%��� oraz ������.
Procedura w listingu 12.17 tworzy uproszczoną polilinię (obiekt ��%��'��%�� �������),a następnie wyświetla za pomocą standardowego okna dialogowego powierzchnię ogra-niczoną przez ten obiekt. Natomiast jeśli podejmiemy próbę zastosowania tej właściwości
Rozdział 12. � Edycja 355
(jak również właściwości omówionych poniżej) w stosunku do elementów, które jej nieobsługują, AutoCAD wygeneruje komunikat o błędzie.
Listing 12.17. Obliczanie powierzchni
��������� ���������� �����������2D���������������$���M ��������������$ ���$*���( ���$*���% ���$*���' ���($�����) ���($*��4 ���($*��& ���($*��M ���$���������� ������������������6����5�������2����D������������ ������ ����#���������������0��������6��7/�����9���5�������*���?��� ��������,������
Coordinate. Podaje współrzędną pojedynczego wierzchołka danego obiektu. Typ: (������(odczyt i zapis). Właściwość ta dotyczy wyłącznie obiektów, takich jak: �� ���, �����,��%��'��%�� �������, ����, �����������, �������, ���� oraz �����.
Właściwość ��������� umożliwia określenie lub zmianę pojedynczego wierzchołkanależącego do obiektów wymienionych powyżej. W listingu 12.18 wykorzystaliśmyuproszczoną polilinię z listingu 12.17.
Listing 12.18. Zmiana jednej współrzędnej
����#�������� �������������������������������������������������������������������������������������������� �����������������������������������
��������#�������-����������#��������������!����$ �#��������% ����6��7/��'=����*���?�#����$ �?��.��?�#����(
����#����$ ���)*�#����( ���)������������!����$ �#��������% ���#���������������!����$ �@5��������6��7/��'=��� �����*���?�#����$ �?��.��?�#����(
�����������������������������!��������������� �������,������
Deklarujemy zmienną (������ (�����) i w tym przypadku nadajemy jej wartości trze-ciego wierzchołka polilinii (współrzędna X-Y określona za pomocą punktów :=< i :><z listingu 12.17). Wiemy, że jest to punkt ���������:7<, pamiętając, że numeracja roz-poczyna się od zera. Natomiast elementy tablicy ����� (; i 6) zwracają współrzędne tegopunktu, wyświetlane następnie w oknie komunikatów. Następnie nadajemy nowe war-tości współrzędnym X i Y, wykorzystując do zmiany położenia wierzchołka właściwość��������� w trybie zapisu. Czynność tę zamyka metoda !����, po której usuwamy zbiórwskazań.
Coordinates. Podaje współrzędne wszystkich wierzchołków danego obiektu. Typ: tablica(������ zmiennych ��$)�� (odczyt i zapis). Właściwość ta dotyczy wyłącznie obiektów,
356 Część II � Zastosowanie modelu obiektu AutoCAD-a
takich jak: ��.���, �� ���, �����, ��%��'��%�� �������, �����, ����, �����������, ���%������, �������, ���� oraz �����.
Właściwość będąca zwielokrotnieniem właściwości ��������� jest do niej bardzo podobna(ale potencjalnie bardziej zagmatwana). Umożliwia ona dostęp do wszystkich wierzchoł-ków wybranego obiektu. Po raz kolejny wykonamy tu operację na polilinii z listingu 12.17.
Właściwość ���������� wykorzystana w listingu 12.19 przypisuje wszystkie wierzchołkido tablicy typu (������ o nazwie �����. Współrzędne X zawarte są w nieparzystychelementach tej tablicy, natomiast współrzędne Y — w parzystych. Jeśli chcemy więczmienić drugi i czwarty wierzchołek, stosujemy składniki tablicy przedstawione w oma-wianej procedurze. Na tym etapie pierwotna polilinia, która w listingu 12.17 miała po-czątkowo kształt kwadratu (porównaj), ma kształt grotu strzały skierowanej w kierunkulewego dolnego narożnika ekranu.
W międzyczasie należy wspomnieć także o odległości, którą, jeśli byłaby ona właściwościąVBA, należałoby w tym momencie wymienić, trzymając się porządku alfabetycznego.Odległości można określać za pomocą metody #����������, która jest jedną z metodobiektu narzędziowego, omówionych w rozdziale 7. (listing 7.12).
Listing 12.19. Zmiana kilku współrzędnych
����#��������� �������������������������������������������������������������������������������������������� �����������������������������������
��������#�������-����������#��������������!����$ �#������������6��7/������8��5��������?��@7����#��� >�( �Q�%�?������9��G8H���?�3�#��?��%=����*�A������?�#����% �?��.���?�#����' �?��)=����*���?�#����& �?��.���?�#����M ����#����% ���4*���#����' ���O����#����& ���O*���#����M ���4
������������!����$ �#�����������#�������������������1�������������6��7/��%=��� �����*���?�#����% �?��.���?�#����' �?��)=��� �����*���?�A��������#����& �?��.���?�#����M �����������������������������!��������������� �������,������
InsertionPoint (właściwość ogólna (9)). Podaje punkt, w którym dany obiekt wstawianyjest do rysunku. Typ: tablica (������ zmiennych ��$)�� (odczyt i zapis). Jest to współ-rzędna 3D dotycząca obiektów, takich jak: ����)$��, ����)$�� ��, ����5 ��, �����-��� ��������, �&���������5, �����, �����, ���� oraz ���������.
Listing 12.20 zmienia punkt wstawienia obiektu ����. Obiekt ten wskazywany jest zapomocą metody ������� ����; następnie jego punkt wstawienia przypisujemy do zmien-nej typu (������ i wyświetlamy jego współrzędne na ekranie. Zmienna ta jest potemredefiniowana, a jej nowe wartości zwrócone zostają do wskazanego elementu, który nakoniec zostaje uaktualniony.
Rozdział 12. � Edycja 357
Listing 12.20. Zmiana punktu wstawienia
����!����������� ��������������������������1����������������������������������������������������������������������������������������������������� ���������$���% ��������������$ ���'*��( ���'*��% ���$������������������������
��������1����-����������1�����������!����$ �!��������������6��7/����8������������*���?�1�$ �?��.���?�1�( �?��.���?�1�%
����1�$ ���4*�1�( ���M*�1�% ���$������������!����$ �!�������������1������������!����$ �@5��������������������1�������������6��7/������5��8�*���?�1�$ �?��.���?�1�( �?��.���?�1�% �����������������������������!��������������� �������,������
Normal (właściwość ogólna (28)). Podaje trójwymiarowy wektor normalny osi Z obiektugraficznego (trójelementowa tablica zmiennych ��$)��). Typ: (������ (odczyt i zapis).Właściwość ta podaje wektor, który określa kierunek normalny i który może być dodanydo wybranego punktu, aby otrzymać inny punkt. Należy pamiętać, że nie jest to współ-rzędna podająca umiejscowienie w przestrzeni.
Właściwość ,��"�� określa oś Z obiektu we współrzędnych układu WCS. Właściwościtej można użyć jako parametru ���,��"��, gdy przeprowadzamy konwersję współrzędnychza pomocą metody ������������������� (patrz listing 7.27).
W listingu 12.21 zmieniamy właściwość ,��"�� elementu �����, utworzonego za pomocąprocedury ����� z rozdziału 9. Potem wskazujemy ten obiekt, a następnie deklaru-jemy zmienną , typu (������ oraz nadajemy jej wartość za pomocą właściwości ,��"��obiektu �������+&��":6<. Jest to zbiór wskazań, w którym znajdują się dwa elementy;pierwszym z nich jest zewnętrzna pętla (&��":;<), która określa granice kreskowania.My natomiast będziemy edytować element &��":6<, którym jest samo kreskowanie.W kolejnym etapie po wyświetleniu wartości wektora ,��"�� za pomocą okna dialogo-wego nadajemy mu nową wartość, która przypisywana jest do elementu. Na koniec uaktu-alniamy ten obiekt i wyświetlamy na ekranie nowe współrzędne wektora.
Listing 12.21. Zmiana wektora normalnego
���������� ����������������������������1����������������������������������������������������������������������������������������������������� �����������������������������������
�������������-����������������������!����( ����������6��7/��D�8����������*���?���$ �?��.���?���( �?��.���?���%
358 Część II � Zastosowanie modelu obiektu AutoCAD-a
������$ ���(*���( ���(*���% ���=(������������!����( ����������������������!����( �@5��������0��������6��7/��������8����������*���?���$ �?��.���?���( �?��.���?���% �����������������������������!��������������� �������,������
Rotation (właściwość ogólna (16)). Podaje kąt obrotu obiektu w stosunku do osi X
globalnego układu współrzędnych (WCS). Typ: ��$)�� (odczyt i zapis). Dodatnie kąty
mierzone są w kierunku zgodnym z ruchem wskazówek zegara, patrząc w kierunku
ujemnych wartości osi Z.
Listing 12.22. Zmiana kąta obrotu
����1������ ��������������������������1����������������������������������������������������������������������������������������������������� ���������$���% ��������������$ ���'*��( ���'*��% ���$����������������������������6��7/��TC������*���?���������!����$ �1�����
��������1�����������������1�������'$����1�������1�����P�'�()(4O%�Q�(N$������������!����$ �1��������1����������������!����$ �@5��������6��7/��TC�����������������9*���?���������!����$ �1�����
�����������������������������!��������������� �������,������
Właściwość ������� zwraca lub przypisuje kąt obrotu większości obiektów graficznychAutoCAD-a. Jednostkami są w tym przypadku radiany.
Procedura przedstawiona w listingu 12.22 wykorzystuje metodę ������� ���� do wska-zania linii tekstu. Należy pamiętać, że w tym przypadku przed wybraniem obiektu trzebakoniecznie zregenerować rysunek. W przeciwnym razie bowiem metoda nie będzie działaćpoprawnie.
Okno komunikatów wyświetla aktualny kąt obrotu, po czym nadajemy mu nową wartość,podaną w stopniach, która jest niezwłocznie zamieniana na radiany. Następnie za pomocąwłaściwości ������� w trybie zapisu nową wartość kąta przypisujemy do wskazanegoelementu i ponownie wyświetlamy ją na ekranie.
Ostatnią właściwością z tej grupy jest ����5����, która służy do określenia lub wprowa-dzenia wymiaru Z elementu dwuwymiarowego.
Thickness. Właściwość ta określa odległość, na jaką wyciągnięty zostaje obiekt 2Dponad lub poniżej poziomu jego wzniesienia. Typ: ��$)�� (odczyt i zapis). Grubość tawykorzystywana jest do nadania trzeciego wymiaru obiektowi 2D. Właściwość obsłu-
Rozdział 12. � Edycja 359
giwana jest tylko przez obiekty: ��, ����)$��, ����)$�� ��, ������, ��%��'��%��- �������, ����, ����, �������, �����, ����, ���� oraz �����.
W listingu 12.23 wskazujemy najpierw wszystkie elementy znajdujące się na rysunku,
po czym za pomocą pętli .��+++,��� zwiększamy o 5 jednostek grubość tych obiektów,
które obsługują właściwość ����5����. W procedurze tej umieściliśmy całkiem rozbu-
dowany mechanizm wychwytywania błędów, służący do rozpoznania obiektów niepo-
siadających właściwości ����5���� przez zmianę ich koloru na czerwony. Natomiast okna
dialogowe wyświetlają status każdego elementu przed jego edycją i po niej.
Listing 12.23. Zmiana grubości obiektu
��������8����� �������������������������������������������������������������������������������������������� �����������������������������������
�������������!������������������8�����-�������������,����<��,���U����������"������$�����������#����;�(������������8������������!����� �����8������������6��7/��,���������?���?���<���JK*���?���������!����� �����8��������������������!����� �����8�����������8��>�4����������������!����� �@5������������6��7/��,���������?���?�������<���JK*���?���������!����� �����8����������/�����������������������#������VA-�!���1�'(4�'$�������������������������������!��������������� �������,/������
,���U������*������������!����� �#�������1��������������!����� �@5��������6��7/��,���������?���?�������5����������J��������������>�(����1��������/�,������
Dostęp do wiersza poleceń
Metoda �����""�� pozwala w języku VBA dla AutoCAD-a na tworzenie skryptów,
umożliwiając emulację wiersza poleceń aplikacji z poziomu VBA. Polecenia wykonywane
tą drogą działają zwykle wolniej niż odpowiadające im funkcje VBA, chociaż metoda ta
może być w pewnych okolicznościach przydatna. Z tego właśnie powodu firma Autodesk
zaleca, aby w przypadku istnienia odpowiednika wśród innych metod VBA nie stosować
�����""��.
SendCommand (metoda obiektu ��������). �)*���+�����""�� (��""�� jako �����%
[tylko wprowadzanie]).
360 Część II � Zastosowanie modelu obiektu AutoCAD-a
Metoda �����""�� emuluje wykonywanie serii czynności z poziomu wiersza poleceńAutoCAD-a. Jej łańcuch musi zawierać wszystkie argumenty plecenia dokładnie w takiejkolejności, w jakiej są one wymagane łącznie z odstępami lub znakiem ASCII 13, tamgdzie wymagany jest tzw. powrót karetki. (Wyrażenie �)� jest stałą VBA odpowiadającąznakowi powrotu karetki).
Listing 12.24. Wysyłanie poleceń
��������#������ ��������������������#��������,L��(.(.$�(�)4��� ����8�H�8��5������B.��>�3�#���������������������#������������H��������J���������>�3�#���������������������#����������5��8C����)4���5�������>�3�#��>�3�#���������������������#�������0��6�D�=(.=(�%$.%$����������������������#������VA-�!���1�'(4�)4��,������
Składnia metody �����""�� jest bardzo ściśle określona i wymaga, aby wszystkie argu-menty wywoływanego polecenia podawane były dokładnie w takiej kolejności, w jakiejspodziewane jest to w AutoCAD-zie. W listingu 12.24 pokazano zastosowanie tej me-tody do utworzenia kilku wierszy tekstu, w którym konieczne jest użycie znaku ���:6�<w celu rozróżnienia między końcem wiersza a odstępami w tekście. Natomiast za pomocąpolecenia !�� można przywrócić początkowy kąt wyświetlania tekstu.
Inne metody, właściwościi procedury związane z edycją
W modelu obiektu AutoCAD-a istnieje jeszcze wiele innych komponentów związanychz edycją obiektów oraz obsługą procesu edycji. Poniżej przedstawiliśmy zestawienienajważniejszych z nich, wraz z podaniem rozdziału, w którym zostały omówione.
Linie konstrukcyjne. 1���� oraz �� omówiono w rozdziale 9.
Pobieranie danych. W rozdziale 7. przedstawiono kilka metod związanych z pobiera-niem danych od użytkownika, takich jak #�� ����, #��2����� oraz #�������%.
Konwersja danych. Metody służące do przekształcania danych, takie jak �%���������%oraz ����������%, omówione zostały w rozdziale 7.
Siatka węzłów, skok oraz tryb ortogonalny. Operacje, takie jak włączanie i wyłączaniesiatki węzłów i skoku, ustawianie odstępów siatki oraz właściwość ������, są częściądyskusji na temat rzutni w rozdziale 5.
Tryb uchwytów rysunkowych. Rozdział 6. obejmuje m.in. omówienie włączania i wyłą-czania trybu uchwytów rysunkowych (�����).
Dokładność. Metody związane z ustawieniami dokładności liczbowej, które związanesą przede wszystkim z wymiarami, takie jak ��"���!���� ��������, ���� ��������,��������� ��������, ����������� �������� oraz ��!���� ��������, przedstawionow rozdziale 11.
Rozdział 12. � Edycja 361
Lokalne układy współrzędnych. Metoda !�� oraz właściwość �����!�� omówione
zostały w rozdziale 6.
W rozdziale niniejszymużywaliśmy często sześciu procedur służących do tworzenia
elementów rysunkowych, które poddawane były następnie edycji. Metody ������
i ������ pochodzą z rozdziału 9. Z kolei �����, która tworzy interesujący układ walca
i kuli, znajduje się w rozdziale 10. Natomiast procedury �������, ����, oraz ����
(patrz rozdział 9.) zostały uproszczone dla celów tego rozdziału, a ich zmodyfikowany
kod pokazano poniżej. Warto wspomnieć, że kody wszystkich listingów umieszczonych
w tej książce można ściągnąć ze strony internetowej wydawnictwa Prentice Hall pod
adresem www.phptr.com.
�������,���5��� ���������� �����������,���5�����������������$���% ������������������/��6 �$���% �����������������1��1�����������
�����������$ ���$*��������( ���$*��������% ���$�����/��6 �$ ���(*��/��6 �( ���%*��/��6 �% ���$����1��1�����$�4���������� ������������������6����5�������,���5����������.��/��6 .�1��1�� ,������
�������2���� ���������� �����������2�����������(�$���% �����������������%�$���% �����������������1��1�����������
����(�$ ���=%�4*�(�( ���=(�4*�(�% ���$����%�$ ����%�4*�%�( ����(�4*�%�% ���$���������� ������������������6����5�������2�����(.�% ,������
���������/�� ���������� �������������/�����������/�������������������U�����������������������$���% ���������������/�����U��.�#�������W�����U��������(�����$ ���'*��( ���'*��% ���$���������� ������������������6����5���������/�����/�.�.�U����� ,������
Podsumowanie
Rozdział ten przybliżył wiele metod AutoCAD-a służących do zmiany jego obiektówgraficznych. Przyjrzeliśmy się nie tylko podstawowym metodom edycji, takim jak ����,����, ������, czy też �����������, ale także bardziej zaawansowanym, czyli tablicombiegunowym i prostokątnym oraz przekształceniom macierzowym. Następnie skupiliśmy
362 Część II � Zastosowanie modelu obiektu AutoCAD-a
naszą uwagę na właściwościach związanych z informacjami o elementach, takimi jak��� lub ����5����.
W rozdziale 13. omówimy pewne rodzaje zjawisk występujących w normalnym toku
działania aplikacji, dla których możemy utworzyć specjalne procedury, zwane podpro-
gramami obsługi zdarzeń, które uruchamiane będą na skutek wystąpienia tychże zdarzeń.
Dyskusja ta wprowadzi nas do rozdziału 14., dotyczącego formularzy i kontrolek, które
stanowią rdzeń zarówno interfejsu użytkownika w VBA, jak i interaktywnego środowiska
programowania IDE.