autocad 2002 i 2004. tworzenie makr w vba

33
Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: [email protected] PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ IDZ DO IDZ DO ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG KATALOG KSI¥¯EK KATALOG KSI¥¯EK TWÓJ KOSZYK TWÓJ KOSZYK CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE O NOWOCIACH ZAMÓW INFORMACJE O NOWOCIACH ZAMÓW CENNIK ZAMÓW CENNI K CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE SPIS TRECI SPIS TRECI DODAJ DO KOSZYKA DODAJ DO KOSZYKA KATALOG ONLINE KATALOG ONLINE AutoCAD 2002 i 2004. Tworzenie makr w VBA Autor: 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 krelenia: 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¿liwoci jest jêzyk Visual Basic for Applications. Z kolei klucz do programowania za pomoc¹ tego jêzyka trzymasz w³anie 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¿liwociami 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¿liwoci AutoCAD-a o komunikacjê z innymi aplikacjami Pog³êbisz swoje umiejêtnoci 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. Jeli jeste gotów okie³znaæ ca³¹ moc zawart¹ w AutoCAD-zie 2002, jest to ksi¹¿ka której szuka³e!

Upload: wydawnictwo-helion

Post on 25-Dec-2014

967 views

Category:

Technology


2 download

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

Page 1: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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�!

Page 2: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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

Page 3: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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

Page 4: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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

Page 5: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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

Page 6: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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

Page 7: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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

Page 8: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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

Page 9: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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

Page 10: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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.

Page 11: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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

Page 12: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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���������������������������������!��������������� �������,������

Page 13: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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]).

Page 14: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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).

Page 15: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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.

Page 16: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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) �����������.

Page 17: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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����� �������������

Page 18: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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���������������������������������!��������������� �������,������

Page 19: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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.

Page 20: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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.

Page 21: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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�����% ���$����"�������$�''''

Page 22: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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

Page 23: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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 .��+++,���.

Page 24: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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).

Page 25: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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

Page 26: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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,

Page 27: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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.

Page 28: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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����������*���?���$ �?��.���?���( �?��.���?���%

Page 29: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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-

Page 30: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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]).

Page 31: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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.

Page 32: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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

Page 33: AutoCAD 2002 i 2004. Tworzenie makr w VBA

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.