Top Banner
1 VBA – obiekty AutoCADa
20

VBA - obiekty AutoCADavistula.wis.pk.edu.pl/~qmq/AutoCAD_VBA/VBA-obiekty_CADa.pdf · Element aplikacji kontrolowany przez VBA za pomocą jego ... odpowiedniej dla typu dodawanego

Feb 27, 2019

Download

Documents

truongkhanh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: VBA - obiekty AutoCADavistula.wis.pk.edu.pl/~qmq/AutoCAD_VBA/VBA-obiekty_CADa.pdf · Element aplikacji kontrolowany przez VBA za pomocą jego ... odpowiedniej dla typu dodawanego

1

VBA – obiekty AutoCADa

Page 2: VBA - obiekty AutoCADavistula.wis.pk.edu.pl/~qmq/AutoCAD_VBA/VBA-obiekty_CADa.pdf · Element aplikacji kontrolowany przez VBA za pomocą jego ... odpowiedniej dla typu dodawanego

2

ObiektObiektElement aplikacji kontrolowany przez VBA za pomocą jego właściwości i metod służących do manipulacji właściwoś-ciami i obiektami.

Przypisanie obiektu do zmiennej:Dim zmienna As typ_obiektuSet zmienna = obiekt

Zwolnienie zmiennej obiektowej:Set obiekt = Nothing

Nazewnictwo

Page 3: VBA - obiekty AutoCADavistula.wis.pk.edu.pl/~qmq/AutoCAD_VBA/VBA-obiekty_CADa.pdf · Element aplikacji kontrolowany przez VBA za pomocą jego ... odpowiedniej dla typu dodawanego

3

WłaściwośćWłaściwośćCecha obiektu (możemy ją rozumieć jako zmienną związaną z obiektem).

Odwołanie do właściwości obiektu:obiekt.właściwość

Przypisanie zmiennej wartości właściwości:zmienna = obiekt.właściwość

Przypisanie właściwości wartości:obiekt.właściwość = wyrażenie

Nazewnictwo

Page 4: VBA - obiekty AutoCADavistula.wis.pk.edu.pl/~qmq/AutoCAD_VBA/VBA-obiekty_CADa.pdf · Element aplikacji kontrolowany przez VBA za pomocą jego ... odpowiedniej dla typu dodawanego

4

MetodaMetodaManipulacja na obiekcie lub dokonywana przez obiekt (możemy ją rozumieć jako procedurę lub funkcję związaną z obiektem).

Wywołanie metody:obiekt.metoda(argumenty)

Nazewnictwo

KolekcjaKolekcjaZbiór obiektów powiązanych ze sobą. Często są to obiekty tego samego typu (np. warstwy rysunku w AutoCADzie, lub arkusze w Excelu).

Page 5: VBA - obiekty AutoCADavistula.wis.pk.edu.pl/~qmq/AutoCAD_VBA/VBA-obiekty_CADa.pdf · Element aplikacji kontrolowany przez VBA za pomocą jego ... odpowiedniej dla typu dodawanego

5

Nazewnictwo

Page 6: VBA - obiekty AutoCADavistula.wis.pk.edu.pl/~qmq/AutoCAD_VBA/VBA-obiekty_CADa.pdf · Element aplikacji kontrolowany przez VBA za pomocą jego ... odpowiedniej dla typu dodawanego

6

Obiekty (wybrane) AutoCADaAcadApplication

Obiekt ten reprezentuje AutoCADa jako takiego.

Odwołujemy się do niego poprzez: ThisDrawing.Application

Jego właściwości tyczą się głównie właściwości głównego okna aplikacji.

Page 7: VBA - obiekty AutoCADavistula.wis.pk.edu.pl/~qmq/AutoCAD_VBA/VBA-obiekty_CADa.pdf · Element aplikacji kontrolowany przez VBA za pomocą jego ... odpowiedniej dla typu dodawanego

7

AcadDocument Obiekt ten reprezentuje rysunek AutoCADa.

Do aktywnego dokumentu odwołujemy się poprzez: ThisDrawing

Metody – jego metody dotyczą głównie operacji na dokumentach AutoCADa (otwieranie, zamykanie, tworzenie nowego, itd.).

Właściwości – przez nie mamy głównie dostęp do obiektów zawartych w rysunku niżej w hierarchii:Layers – zwraca kolekcję warstw w rysunku;

ActiveLayer – zwraca lub ustala aktywną warstwę; np. kod: ThisDrawing.ActiveLayer = ThisDrawing.Layers.Item("0")ustala jako warstwę aktywną warstwę „0”;ModelSpace – zwraca obiekt reprezentujący przestrzeń modelową rysunku;

PaperSpace – zwraca obiekt reprezentujący obszar papieru rysunku;

Utility – zwraca obiekt AcadUtility, który zawiera szereg metod

komunikacji z użytkownikiem

Page 8: VBA - obiekty AutoCADavistula.wis.pk.edu.pl/~qmq/AutoCAD_VBA/VBA-obiekty_CADa.pdf · Element aplikacji kontrolowany przez VBA za pomocą jego ... odpowiedniej dla typu dodawanego

8

AcadLayers Kolekcja obiektów typu AcadLayer.

Odwołujemy się do niej poprzez: ThisDrawing.Layers

Metody – zawiera wszystkie metody AcadObject i dwie własne:Add – dodaje do kolekcji nową warstwę; jej parametrem jest nazwa

tworzonej warstwy jako łańcuch znakowy, np.:ThisDrawing.Layers.Add("Węzły")Item – zwraca element kolekcji (warstwę); jej parametrem może być

numer warstwy lub nazwa warstwy, np.:ThisDrawing.Layers.Item("Węzły")ThisDrawing.Layers.Item(2)

Właściwości – zawiera wszystkie właściwości AcadObject oraz wspólną Application i Count, która zwraca liczbę warstw

w rysunku.

Page 9: VBA - obiekty AutoCADavistula.wis.pk.edu.pl/~qmq/AutoCAD_VBA/VBA-obiekty_CADa.pdf · Element aplikacji kontrolowany przez VBA za pomocą jego ... odpowiedniej dla typu dodawanego

9

AcadLayer Reprezentuje sobą pojedynczą warstwę w rysunku.

Odwołujemy się do niej poprzez: ThisDrawing.Layers.Item(indeks)lubThisDrawing.Layers.Item(nazwa)a do aktywnejThisDrawing.ActiveLayer

Metody – zawiera wszystkie metody AcadObject, za wyjątkiem tego, że warstwa "0" nie może być usunięta.

Właściwości – zawiera wszystkie właściwości AcadObject oraz własne, z których najważniejsze to: Name – nazwa warstwy

Color – kolor na warstwie, Linetype – typ linii warstwy,

Lineweight – grubość linii warstwy, Freeze – czy jest zamrożona,

LayerOn – czy jest włączona, Lock – czy jest zablokowana;

przykładowe odwołanie: Nazwa=ThisDrawing.Layers.Item(2).Name

Page 10: VBA - obiekty AutoCADavistula.wis.pk.edu.pl/~qmq/AutoCAD_VBA/VBA-obiekty_CADa.pdf · Element aplikacji kontrolowany przez VBA za pomocą jego ... odpowiedniej dla typu dodawanego

10

AcadModelSpace Jest to kolekcja, która reprezentuje sobą wszystkie obiekty w przestrzeni modelu rysunku.

Ma strukturę identyczną do obiektu AcadBlock i posiada dokładnie te same metody i właściwości, za wyjątkiem utworzenia czy usunięcia.

Odwołujemy się do niej poprzez: ThisDrawing.ModelSpace

Metody i Właściwości – takie jak w AcadBlock.

Dodawanie obiektów do tej kolekcji polega na wywołaniu odpowiedniej dla typu dodawanego obiektu metody: Add***, np.:ThisDrawing.ModelSpace.AddPoint Pktgdzie Pkt jest argumentem metody AddPoint i reprezentuje zmienną

(tablicę 0 do 2) zawierającą współrzędne punktu.

Page 11: VBA - obiekty AutoCADavistula.wis.pk.edu.pl/~qmq/AutoCAD_VBA/VBA-obiekty_CADa.pdf · Element aplikacji kontrolowany przez VBA za pomocą jego ... odpowiedniej dla typu dodawanego

11

Metody Add*** (wybrane)Łuk: .AddArc(CenterPoint, Radius, StartAngle, EndAngle)

Okrąg: .AddCircle(CenterPoint, Radius)

Elipsa: .AddEllipse(CenterPoint, MajorAxis, RadiusRatio)

Linia (odcinek): .AddLine(StartPoint, EndPoint)

Punkt: .AddPoint(PointPosition)

Linia (odcinek): .AddLine(StartPoint, EndPoint)

Półprosta: .AddRay(StartPoint, SecondPoint)

Prosta: .AddXLine(FirstPoint, SecondPoint)

Tekst: .AddText(TextString, InsertionPoint, Height)

Blok tekstowy: .AddMText(InsertionPoint, Width, TextString)

Kreskowanie: .AddHatch(PatternType, PatternName, Associativity)

Page 12: VBA - obiekty AutoCADavistula.wis.pk.edu.pl/~qmq/AutoCAD_VBA/VBA-obiekty_CADa.pdf · Element aplikacji kontrolowany przez VBA za pomocą jego ... odpowiedniej dla typu dodawanego

12

Metody Get*** z AcadUtility (wybrane)Łańcuch znakowy: .GetString(HasSpaces[,Prompt])AdresPliku = ThisDrawing.Utility.GetString(False,”Podaj ścieżkę dostępu”)

Liczba całkowita: .GetInteger([Prompt])

Liczba zmiennoprzecinkowa: .GetReal([Prompt])

Punkt: .GetPoint([BasePoint][,Prompt])

Punkt przekątny: .GetCorner(BasePoint[,Prompt])

Odległość: .GetDistance([BasePoint][,Prompt])

Kąt (wzgl. kąta bazowego): .GetAngle([BasePoint][,Prompt])

Kąt bezwzględny: .GetOrientation([BasePoint][,Prompt])

Page 13: VBA - obiekty AutoCADavistula.wis.pk.edu.pl/~qmq/AutoCAD_VBA/VBA-obiekty_CADa.pdf · Element aplikacji kontrolowany przez VBA za pomocą jego ... odpowiedniej dla typu dodawanego

13

Metody SetVariable

Służy do ustawiania wartości zmiennych systemowych

Składnia:Obiekt.SetVariable NAZWA_ZM, WARTOŚĆ

Przykłady:ThisDrawing.SetVariable PDMODE, 32ThisDrawing.SetVariable PDSIZE, 5ThisDrawing.SetVariable PDSIZE, -1

Page 14: VBA - obiekty AutoCADavistula.wis.pk.edu.pl/~qmq/AutoCAD_VBA/VBA-obiekty_CADa.pdf · Element aplikacji kontrolowany przez VBA za pomocą jego ... odpowiedniej dla typu dodawanego

14

Metody SetVariable

Służy do ustawiania wartości zmiennych systemowych

Składnia:Obiekt.SetVariable NAZWA_ZM, WARTOŚĆ

Przykłady:ThisDrawing.SetVariable PDMODE, 32ThisDrawing.SetVariable PDSIZE, 5ThisDrawing.SetVariable PDSIZE, -1

Page 15: VBA - obiekty AutoCADavistula.wis.pk.edu.pl/~qmq/AutoCAD_VBA/VBA-obiekty_CADa.pdf · Element aplikacji kontrolowany przez VBA za pomocą jego ... odpowiedniej dla typu dodawanego

15

MsgBoxMsgBox(prompt[,buttons][,title]

[,helpfile,context])

Przyciski (wartości parametru buttons: 0, 1, 2, 3, 4, 5): vbOKOnly, vbOKCancel, vbAbortRetryIgnore, vbYesNoCancel, vbYesNo, vbRetryCancel Ikony (wartości parametru buttons: 16, 32, 48, 64): vbCritical, vbQuestion, vbExclamation, vbInformation

Wybrany przycisk (wartości: 0, 256, 512, 768):vbDefaultButton1, vbDefaultButton2, vbDefaultButton3, vbDefaultButton4

Modalność: (wartości: 0, 4096)vbApplicationModal, vbSystemModal

Zwracane wartości (kolejno 1, 2, 3, 4, 5, 6, 7): vbOK, vbCancel, vbAbort, vbRetry, vbIgnore, vbYes, vbNo

Page 16: VBA - obiekty AutoCADavistula.wis.pk.edu.pl/~qmq/AutoCAD_VBA/VBA-obiekty_CADa.pdf · Element aplikacji kontrolowany przez VBA za pomocą jego ... odpowiedniej dla typu dodawanego

16

MsgBox

Page 17: VBA - obiekty AutoCADavistula.wis.pk.edu.pl/~qmq/AutoCAD_VBA/VBA-obiekty_CADa.pdf · Element aplikacji kontrolowany przez VBA za pomocą jego ... odpowiedniej dla typu dodawanego

17

InputBoxInputBox(prompt[,title][,default][,xpos]

[,ypos][,helpfile,context])

prompt: komunikat w oknie.

title: tytuł na pasku (jeśli nie podany, to nazwa aplikacji)

default: wartość predefiniowana (jeśli nie podana, to obszar wprowadzania pusty)xpos, ypos: pozycja okna

Page 18: VBA - obiekty AutoCADavistula.wis.pk.edu.pl/~qmq/AutoCAD_VBA/VBA-obiekty_CADa.pdf · Element aplikacji kontrolowany przez VBA za pomocą jego ... odpowiedniej dla typu dodawanego

18

Edytor Visual Basic

Page 19: VBA - obiekty AutoCADavistula.wis.pk.edu.pl/~qmq/AutoCAD_VBA/VBA-obiekty_CADa.pdf · Element aplikacji kontrolowany przez VBA za pomocą jego ... odpowiedniej dla typu dodawanego

19

Edytor Visual Basic

Page 20: VBA - obiekty AutoCADavistula.wis.pk.edu.pl/~qmq/AutoCAD_VBA/VBA-obiekty_CADa.pdf · Element aplikacji kontrolowany przez VBA za pomocą jego ... odpowiedniej dla typu dodawanego

20

Uruchamianie makr

W AutoCADzie: Dostępne w oknie dialogowym 'Makro', skąd można je uruchomić Dostępne z linii poleceń-vbarun nazwa_makraKażda procedura i funkcja to osobne makro