Korzystamy z cookies, więcej informacji »
Dodano: 16.05.2010 16:16 | brak komentarzy

Lekcja 14 - Zbiory wskazań

 

 

Zbiory wskazań w VBA

AutoCAD pozwala na wykonywanie operacji na grupach obiektów znajdujących się w tzw. "zbiorze wskazań". Na dzisiejszej lekcji nauczymy się, jak tworzyć zbiory wskazań, jak dodawać do nich elementy oraz jak przeprowadzać różne operacje na tak zgrupowanych obiektach.

Przykładowa procedura tworząca w AutoCAD-zie nowy zbiór wskazań o nazwie KursVBA.

Pisanie procedury rozpoczynamy od zdefiniowania jej nazwy

Sub ss_onscreen()

Deklarujemy zmienną ss jako nowy zbiór wskazań AutoCAD-a

Dim ss As AcadSelectionSet

Tworzenie nowego zbioru wskazań.

Set ss = ThisDrawing.SelectionSets.Add("KursVBa")

Wybieramy obiekty poprzez wskazanie ich na ekranie AutoCAD-a.

Call ss.SelectOnScreen

Wyświetlenie informacji w oknie MsgBox o tym, ile obiektów zostało dodanych do zbioru wskazań.

MsgBox ss.Count & " obiekty zostały dodane do zbioru wskazań"

Podświetlamy obiekty wskazane przez użytkownika.

ss.Highlight True

Wyświetlenie informacji w oknie MsgBox o tym, że obiekty znajdujące się w zbiorze wskazań zostały podświetlone.

MsgBox " obiekty zostały podświetlone"

Regeneracja rysunku.

ThisDrawing.Regen True

Wyświetlenie informacji w oknie MsgBox o tym, że zostanie usunięte podświetlenie obiektów.

MsgBox " usuwamy podświetlenie obiektów"

Usunięcie podświetlenia obiektów znajdujących się w zbiorze wskazań.

ss.Highlight False

Wyświetlenie informacji w oknie MsgBox o tym, że zostanie usunięty zbiór wskazań.

MsgBox " usuwamy zbór wskazań"

Usunięcie zbioru wskazań.

ss.Delete

Koniec procedury ss_onscreen.

End Sub

Jeszcze zanim przejdziemy do testowania powyższej procedury, musimy narysować kilka obiektów, które będziemy następnie dodawać do zbioru wskazań. Ewentualnie możemy wczytać projekt ss_rys.dvb, który narysuje obiekty widoczne na poniższym rysunku.


Rys. 1 Polilinia i dwa okręgi stworzone za pomocą procedury ss_rys

worzenie polilini i okręgów za pomącą VBA zostało szerzej wytłumaczone w lekcji 4 i 5.

W linii poleceń wpisujemy:

Polecenie: - vbaload

Otwórz projekt VBA: ss_rys

Po załadowaniu pliku projektu uruchamiamy nasze makro.

Polecenie: -vbarun

Nazwa makra: ss_rys.dvb!Module1.Rys_ss

Następnie przechodzimy do testowania naszej procedury.

Uruchamiamy makro wpisując w linii poleceń:

Polecenie: -vbarun

Nazwa makra: ss_rys.dvb!Module1.ss_onscreen


Rys. 2 Po uruchomieniu makra w linii poleceń pojawia się zachęta AutoCAD-a do wskazania obiektów

Wskazujemy zielony okrąg oraz prostokąt.


Rys. 3 Wskazany okrąg i prostokąt widoczny jako przerywana linia

Kończymy wskazywanie obiektów poprzez wciśnięcie klawisza Enter. W oknie MsgBox następuje wyświetlenie informacji w oknie o tym, ile obiektów zostało dodanych do zbioru wskazań.


Rys. 4 Okno informacyjne AutoCAD-a

Następuje podświetlenie tych obiektów.


Rys. 5 Podświetlenie obiektów

Następnie podświetlenie obiektów zostaje usunięte.


Rys. 6 Usunięcie podświetlenia obiektów

Następnie obiekty zostają usunięte ze zbioru wskazań.


Rys. 7 Usunięcie obiektów ze zbioru wskazań

Możemy korzystać z różnych trybów dodawania obiektów do zbioru wskazań.


Rys. 8 Tryby dodawania obiektów do zbioru wskazań

Przykładowa procedura, która tworzy w AutoCAD-zie nowy zbiór wskazań o nazwie KursVBA oraz umieszcza w tym zbiorze wskazań wszystkie obiekty znajdujące się na rysunku

Pisanie procedury rozpoczynamy od zdefiniowania jej nazwy.
Sub ss_All() 'Deklarujemy zmienną ss jako nowy zbiór 'wskazań AutoCAD-a. Dim ss As AcadSelectionSet 'Tworzenie nowego zbioru wskazań o nazwie KursVBA. Set ss = ThisDrawing.SelectionSets.Add("KursVBa") 'Wybieramy wszystkie obiekty znajdujące się 'na ekranie AutoCAD-a. ss.Select acSelectionSetAll 'Podświetlamy wybrane obiekty. ss.Highlight True 'Wyświetlenie informacji w oknie MsgBox o tym, 'ile obiektów zostało dodane do zbioru wskazań. MsgBox ss.Count & " obiekty(-ów) zostały dodane do zbioru wskazań" 'Wyświetlenie informacji w oknie MsgBox o tym, 'że obiekty znajdujące się w zbiorze wskazań 'zostały podświetlone. MsgBox " obiekty zostały podświetlone" 'Przeprowadzamy regenerację rysunku ThisDrawing.Regen True 'Wyświetlenie informacji w oknie MsgBox o tym, 'że zostanie usunięte podświetlenie obiektów. MsgBox " usuwamy podświetlenie obiektów" 'Usunięcie podświetlenia obiektów znajdujących 'się w zbiorze wskazań. ss.Highlight False 'Wyświetlenie informacji w oknie MsgBox 'o tym, że zostanie usunięty zbiór wskazań. MsgBox " usuwamy zbór wskazań" 'Usunięcie zbioru wskazań. ss.Delete 'Koniec procedury ss_All. End Sub

Z doświadczenia wiem, że nawet najbardziej logiczny wywód teoretyczny na nic się zda, jeżeli nie idzie za nim praktyczny przykład, ilustrujący zastosowanie omawianej metody. Dlatego też poniżej opisana jest procedura, która ma za zadanie przesunięcie obiektów dodanych do zbioru wskazań. Punktem bazowym przesunięcia jest punkt spt o współrzędnych (0,0,0), a drugim punktem przesunięcia jest punkt ept o współrzędnych (200,100,0).

Pisanie procedury rozpoczynamy od zdefiniowania jej nazwy.
Sub ss_move() 'Definiujemy potrzebne zmienne: 'Deklarujemy zmienną ss jako nowy 'zbiór wskazań AutoCAD-a. Dim ss As AcadSelectionSet 'Deklarujemy zmienną spt i ept jako 'zmienną typu double. Dim sPt(0 To 2) As Double Dim ePt(0 To 2) As Double 'Deklarujemy zmienną I jako liczbę 'całkowitą. Zmiennej tej przypiszemy 'wartość licznika. Dim I As Integer 'Przypisujemy wartości do zmiennych 'współrzędnych punktów spt i ept. sPt(0) = 0# 'współrzędna X punktu bazowego sPt(1) = 0# 'współrzędna Y punktu bazowego sPt(2) = 0# 'współrzędna Z punktu bazowego ePt(0) = 200# 'współrzędna X drugiego punktu ePt(1) = 100# 'współrzędna Y drugiego punktu ePt(2) = 0# 'współrzędna Z drugiego punktu 'Tworzymy nowy zbiór wskazań o nazwie ss. Set ss = ThisDrawing.SelectionSets.Add("ss") 'Dodajemy obiekty do zbioru wskazań 'poprzez wskazanie tych obiektów na 'ekranie AutoCAD-a. Call ss.SelectOnScreen 'Przesuwamy obiekty znajdujące się w zbiorze 'wskazań o wektor wyznaczony 'przez punkty sPt i ePt. 'Wchodzimy w pętlę For I = 1 To ss.Count 'Przesuwamy pierwszy obiekt ze 'zbioru wskazań ss.Item(I - 1).Move sPt, ePt 'Odświeżamy obiekt ss.Item(I - 1).Update 'Zwiększamy licznik Next I 'Po wyjści z pętli FOR usuwamy 'zbiór wskazań ss.Delete 'Kończymy procedurę End Sub

Dodaj komentarz
Żeby móc dodawać komentarze musisz być zalogowany.
Komentarze
Brak komentarzy.
Newsletter
Prosto na email będziesz otrzymywać między innymi
  • oferty pracy
  • zniżki na książki
  • najnowsze publikacje
AutoCAD cz. I

AutoCAD - kurs dla początkujących

 

Pierwszy z kursów przeznaczony jest dla osób rozpoczynających pracę w środowisku AutoCAD.
Omówiona została filozofia pracy z programem AutoCAD, wygląd głównego okna aplikacji oraz dopasowanie programu do własnych potrzeb.

Kolejne podrozdziały poświęcone są zagadnieniom rysowania i modyfikowania obiektów (linie, multilinie, okrąg, prostokąt wielobok, splajn). Zostały również omówione zasady pracy z warstwami, blokami oraz wymiarowanie. Ostatnie rozdziały kursu podstawowego omawiają zasady drukowania.