VBA - obiekty AutoCADavistula.wis.pk.edu.pl/~qmq/AutoCAD_VBA/VBA-obiekty_CADa.pdf · Element...
-
Upload
truongkhanh -
Category
Documents
-
view
233 -
download
1
Transcript of VBA - obiekty AutoCADavistula.wis.pk.edu.pl/~qmq/AutoCAD_VBA/VBA-obiekty_CADa.pdf · Element...
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
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
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).
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.
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
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.
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
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.
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)
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])
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
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
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
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