AutoCAD VBA – Automatyzacja pracy i tworzenie skryptów
autocad vba

Automatyzacja pracy w AutoCAD przy użyciu VBA

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?

  1. Aktywuj środowisko VBA:
    • Jeśli nie widzisz edytora VBA, upewnij się, że jest zainstalowany. Możesz pobrać dodatek z strony Autodesk.
  2. Otwórz edytor VBA:
    • Wpisz polecenie VBAIDE w wierszu poleceń AutoCAD.
  3. Dodaj nowy moduł:
    • W edytorze VBA dodaj moduł i wklej powyższy kod.
  4. Uruchom procedurę:
    • Wpisz VBA w AutoCAD, wybierz odpowiednią makro i kliknij „Run”.

Porównanie VBA i AutoLISP

CechyVBAAutoLISP
Łatwość naukiPrzyjazny dla początkującychWymaga znajomości składni LISP
Interaktywność GUIWsparcie dla okien dialogowychBrak natywnego wsparcia dla GUI
Szybkość działaniaWolniejszy przy dużych operacjachSzybszy dla skryptów geometrycznych
Integracja z APIPełny dostęp do obiektów AutoCADOgraniczony 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!

AutoCADlispvba
Udostępnij:
Automatyzacja pracy w AutoCAD przy użyciu VBA
Napisane przez
Michał Wrochna
Co myślisz o tym artykule?
0 reakcji
love
0
like
0
so-so
0
weakly
0
0 komentarzy
Najnowsze komentarze
  • Najnowsze komentarze
  • Najlepsze komentarze
Zaloguj się, aby dodać komentarz.
Prawa zastrzeżone Pi Corp sp. z o.o. copyright 2020-2022