Kontynuując serię o programowaniu w AutoCAD, w tym artykule skupimy się na wykorzystaniu Visual Basic for Applications (VBA). W poprzednich częściach opisaliśmy AutoCAD API oraz AutoLISP jako narzędzia do automatyzacji pracy. VBA to kolejne rozwiązanie, które, choć mniej popularne niż kiedyś, wciąż znajduje zastosowanie w codziennej pracy projektantów i inżynierów.
Dlaczego warto poznać VBA?
VBA to język skryptowy, który jest zintegrowany z wieloma aplikacjami firmy Autodesk. Dzięki niemu można:
- Tworzyć interaktywne aplikacje wspomagające proces projektowy.
- Automatyzować powtarzalne zadania.
- Wykorzystać znajomość Visual Basic w innych programach, takich jak Excel czy Access.
AutoCAD VBA charakteryzuje się prostotą składni i możliwością łatwego tworzenia GUI, co czyni go przystępnym dla osób zaczynających swoją przygodę z programowaniem.
Przykład projektu: Generowanie blachy z otworami
Kod w VBA poniżej jest odpowiednikiem funkcji AutoLISP c:BlachaOtwory
, opisanej w poprzedniej części. Aplikacja generuje prostokąt reprezentujący blachę oraz otwory zgodnie z parametrami podanymi przez użytkownika.
Sub BlachaOtwory() ' Deklaracja zmiennych Dim width As Double, height As Double Dim rows As Integer, cols As Integer Dim spacingX As Double, spacingY As Double Dim holeDiameter As Double Dim startX As Double, startY As Double Dim i As Integer, j As Integer ' Pobieranie danych od użytkownika width = CDbl(InputBox("Podaj szerokość blachy:", "Blacha z otworami")) height = CDbl(InputBox("Podaj wysokość blachy:", "Blacha z otworami")) rows = CInt(InputBox("Podaj liczbę rzędów otworów:", "Blacha z otworami")) cols = CInt(InputBox("Podaj liczbę kolumn otworów:", "Blacha z otworami")) spacingX = CDbl(InputBox("Podaj rozstaw otworów w poziomie:", "Blacha z otworami")) spacingY = CDbl(InputBox("Podaj rozstaw otworów w pionie:", "Blacha z otworami")) holeDiameter = CDbl(InputBox("Podaj średnicę otworów:", "Blacha z otworami")) ' Obliczanie startowego punktu startX = -width / 2 + spacingX / 2 startY = -height / 2 + spacingY / 2 ' Tworzenie prostokąta blachy ThisDrawing.ModelSpace.AddRectangle ThisDrawing.Utility.GetPoint(, "Wskaż punkt początkowy:"), width, height ' Generowanie otworów For i = 0 To rows - 1 For j = 0 To cols - 1 Dim x As Double, y As Double x = startX + j * spacingX y = startY + i * spacingY ThisDrawing.ModelSpace.AddCircle Array(x, y, 0), holeDiameter / 2 Next j Next i MsgBox "Blacha z otworami została wygenerowana.", vbInformation, "Gotowe" End Sub
Jak uruchomić kod VBA w AutoCAD?
- Aktywuj środowisko VBA:
- Jeśli nie widzisz edytora VBA, upewnij się, że jest zainstalowany. Możesz pobrać dodatek z strony Autodesk.
- Otwórz edytor VBA:
- Wpisz polecenie
VBAIDE
w wierszu poleceń AutoCAD.
- Wpisz polecenie
- Dodaj nowy moduł:
- W edytorze VBA dodaj moduł i wklej powyższy kod.
- Uruchom procedurę:
- Wpisz
VBA
w AutoCAD, wybierz odpowiednią makro i kliknij „Run”.
- Wpisz
Porównanie VBA i AutoLISP
Cechy | VBA | AutoLISP |
---|---|---|
Łatwość nauki | Przyjazny dla początkujących | Wymaga znajomości składni LISP |
Interaktywność GUI | Wsparcie dla okien dialogowych | Brak natywnego wsparcia dla GUI |
Szybkość działania | Wolniejszy przy dużych operacjach | Szybszy dla skryptów geometrycznych |
Integracja z API | Pełny dostęp do obiektów AutoCAD | Ograniczony dostęp do niektórych funkcji |
Podsumowanie
VBA to świetne narzędzie do nauki programowania w AutoCAD i tworzenia prostych aplikacji. Dla bardziej zaawansowanych projektów warto jednak rozważyć przejście na .NET, który omówimy w następnym artykule z tej serii.
Jeśli chcesz dowiedzieć się więcej, zajrzyj do wcześniejszych artykułów:
Czekaj na kolejną część, gdzie poruszymy temat programowania w AutoCAD za pomocą .NET!