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

Lekcja 19 - Bloki

 

 

W AutoCAD-zie możemy utworzyć dowolną ilość bloków (jeśli oczywiście zachodzi takowa potrzeba).

Najczęściej tworzymy nowy blok, korzystając z okna dialogowego Definicja bloku



Rys. 1 . Okno dialogowe Definicja Bloku

Istnieją dwa sposoby tworzenia bloków z poziomu VBA. Pierwszy sposób to tworzenie bloku z wykorzystaniem metody Add obiektu Blok w celu stworzenia pustego bloku, a następnie dodanie elementów rysunku do definicji bloku. Drugi sposób wykorzystuje metodę Insert do tworzenia definicji bloku, jak też odwołuje się do zewnętrznego pliku rysunku.

Tworzenie bloku i wstawianie go do rysunku

W poniższym przykładzie zostanie stworzony nowy blok, a następnie do definicji tego bloku zostanie dodany okrąg. Na koniec blok ten zostanie wstawiony do rysunku.

Przejdźmy teraz do omówienia poszczególnych linii programu.

Sub wstawianie_bloku()

Tworzymy nową procedurę. Deklarujemy zmienną blockObj jako nowy obiekt AutoCAD-a

(AcadBlock).

Dim blockObj As AcadBlock

Deklarujemy zmienną insertionPnt jako zmienną typu double. Zmienna ta posłuży nam do przechowywania współrzędnych punktu wstawienia bloku.

Dim insertionPnt(0 To 2) As Double

Przypisujemy wartości poszczególnym współrzędnym punktu wstawienia.
insertionPnt(0) = 0 insertionPnt(1) = 0 insertionPnt(2) = 0

Za pomocą instrukcji set tworzymy definicję nowego bloku o punkcie wstawienia inserionPnt i nazwie CircleBlock.
Set blockObj = ThisDrawing.Blocks.Add _ (insertionPnt, "CircleBlock")

Zdefiniowaliśmy nowy blok. Teraz musimy dodać obiekty do tego bloku (w naszym przypadku będzie to pojedynczy okrąg).

Na początku musimy zadeklarować potrzebne zmienne.

Dim circleObj As AcadCircle

Deklarujemy zmienną circleObj jako obiekt AutoCAD-a, deklarujemy zmienne center oraz radius jako zmienną typu double
Dim center(0 To 2) As Double Dim radius As Double

Przypisujemy wartości poszczególnym współrzędnym punktu wstawienia.
center(0) = 0 center(1) = 0 center(2) = 0

Przypisujemy wartość promieniowi okręgu.

radius = 1

Tworzymy okrąg o środku w punkcie center i promieniu w punkcie radius.

Set circleObj = blockObj.AddCircle(center, radius)

Wstawiamy blok

Dim blockRefObj As AcadBlockReference

Deklarujemy zmienną blockRefObj jako nowy obiekt AutoCAD-a. Przypisujemy wartości poszczególnym współrzędnym wstawienia bloku.
insertionPnt(0) = 2 insertionPnt(1) = 2 insertionPnt(2) = 0

Wstawiamy blok (tworzymy odwołanie obiektu do zmiennej za pomocą instrukcji SET)
Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock _ (insertionPnt, "CircleBlock", 1#, 1#, 1#, 0)

Powiększamy (Zoom Wszystko)

ZoomAll

Wyświetlamy okno informacyjne.
MsgBox "Ten okrąg należy do " & blockRefObj.ObjectName End Sub

koniec procedury

Testujemy naszą procedurę. Po uruchomieniu jej w AutoCAD-zie okrąg został narysowany i dodany do definicji bloku.

Klikamy w obszarze okręgu, a następnie po wciśnięciu prawego klawisza myszy z listy rozwijanej wybieramy Cechy


Rys. 2 Widok zaznaczonego okręgu w oknie AutoCAD-a oraz wyświetlonego okna cechy

Zmiana definicji obiektu w bloku

W tym przykładzie zostanie stworzony blok i zostanie dodany do niego okrąg. Następnie blok zostanie wstawiony do rysunku jako odwołanie do bloku. Na koniec zostanie zaktualizowana definicja okręgu w bloku, co spowoduje automatyczne przedefiniowanie bloku.
Sub przedefiniowanie_bloku() 'Definiowanie nowego bloku Dim blockObj As AcadBlock Dim insertionPnt(0 To 2) As Double insertionPnt(0) = 0 insertionPnt(1) = 0 insertionPnt(2) = 0 Set blockObj = ThisDrawing.Blocks.Add _ (insertionPnt, "CircleBlock") 'Dodanie okręgu do definicji bloku Dim circleObj As AcadCircle Dim center(0 To 2) As Double Dim radius As Double center(0) = 0 center(1) = 0 center(2) = 0 radius = 1 Set circleObj = blockObj.AddCircle (center, radius) 'Wstawienie bloku do rysunku Dim blockRefObj As AcadBlockReference insertionPnt(0) = 2 insertionPnt(1) = 2 insertionPnt(2) = 0 Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock _ (insertionPnt, "CircleBlock", 1#, 1#, 1#, 0) ZoomAll 'Przedefiniowanie okręgu należącego do bloku, 'a następnie zaktualizowanie odwołania do bloku circleObj.radius = 3 blockRefObj.Update End Sub 'Koniec procedury

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.