Visual Basic dla AutoCAD



Podobne dokumenty
Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Plik->Opcje->Zakladka Główne->Dostosuj Wstążkę Zaznaczamy kwadracik Developer na liscie po prawej stronie. Klikamy OK.

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Visual Basic for Applications. Wstęp

Programowanie w języku Python. Grażyna Koba

Zakres tematyczny dotyczący podstaw programowania Microsoft Office Excel za pomocą VBA

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

LibreOffice Calc VBA

VBA obiekty AutoCADa 1

Instrukcje cykliczne (pętle) WHILE...END WHILE

Działki Przygotowanie organizacyjne

TABLICA (ang. array) pojedyncza zmienna z wieloma komórkami, w których można zapamiętać wiele wartości tego samego typu danych.

Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PODSTAWOWY.

Zastanawiałeś się może, dlaczego Twój współpracownik,

Materiały do laboratorium MS ACCESS BASIC

Makropolecenia w PowerPoint Spis treści

Algorytmika i Programowanie VBA 1 - podstawy

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

Przygotowanie własnej procedury... 3 Instrukcja msgbox wyświetlanie informacji w oknie... 6 Sposoby uruchamiania makra... 8

Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PRZEKROJOWY.

Visual Basic for Application (VBA)

Programowanie w języku C++ Grażyna Koba

Program szkolenia PODSTAWY VBA (VISUAL BASIC FOR APPLICATIONS) I FORMULARZE.

Utworzenie funkcji użytkownika w Visual Basic

Podstawy i języki programowania

Program szkoleniowy. 24 h dydaktycznych (18 h zegarowych) NAZWA SZCZEGÓŁY CZAS

VBA praca z makrami w Excelu

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania języka AutoLISP i środowiska VisualLISP w systemie CAx

VBA praca z makrami w Excelu: piszemy kod! Ulepszamy program! 0. Parę uwag o samym edytorze

Wprowadzenie do rysowania w 3D. Praca w środowisku 3D

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

PROGRAMOWANIE MAKR W PROGRAMIE EXCEL W JĘZYKU VISUAL BASIC

Automatyzacja pracy w AutoCAD

Podstawy programowania skrót z wykładów:

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

1 Podstawy c++ w pigułce.

Aplikacje w środowisku VBA. Visual Basic for Aplications

Wprowadzenie do programowania w VBA

Podstawy Programowania Podstawowa składnia języka C++

1 Podstawy c++ w pigułce.

PROGRAMOWANIE MAKR W PROGRAMIE EXCEL W JĘZYKU VISUAL BASIC

I. WSTĘP. Przykład 1. Przykład 2. Programowanie czyli tworzenie programów komputerowych (aplikacji komputerowych)

Instrukcje pętli przykłady. Odgadywanie hasła. 1) Program pyta o hasło i podaje adres, gdy hasło poprawne lub komunikat o błędnym haśle.

Podstawy Programowania C++

Zadanie. Menu Plik niech posiada dwie pozycje: Tekstowy i Excel, a każda z nich niech posiada dwie pozycje Otwórz i Zapisz, patrz rys. 2.

Cel: Przypisujemy przyciskom określone funkcje panel górny (Panel1)

MsgBox(Komunikat [, Przyciski] [, Tytuł] [, PlikHelp, HelpContext])

Maxima i Visual Basic w Excelu

Właściwości i metody obiektu Comment Właściwości

Tworzenie szablonów użytkownika

Visual Basic for Application (VBA)

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 2. Programowanie komputerowe

Zasady programowania Dokumentacja

Ten odcinek Akademii PC Kuriera poświęcony zostanie tworzeniu i wykorzystaniu funkcji i procedur w języku Visual Basic.NET.

1 Algorytmy. Algorytmy i VBA. 1. Zapoznaj się z symboliką schematów blokowych.

Języki programowania zasady ich tworzenia

Lab 9 Podstawy Programowania

Makra VBA w Excelu dla początkujących

Tablice. Jones Stygar na tropie zmiennych

Modelowanie obiektowe - Ćw. 1.

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 3. Programowanie komputerowe

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PRACA Z FORMULARZAMI UserForm

Technologia informacyjna programowanie Janusz Uriasz

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Laboratorium Programowania Kart Elektronicznych

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Programowanie obiektowe

Ćwiczenia nr 4. Arkusz kalkulacyjny i programy do obliczeń statystycznych

Pętle instrukcje powtórzeo

Przedmiot: Informatyka w inżynierii produkcji Forma: Laboratorium Temat: Zadanie 4. Instrukcja warunkowa.

Robert Barański, AGH, KMIW MathScript and Formula Nodes v1.0

VBA praca z makrami w Excelu

Automatyzacja plików graficznych

Algorytm. a programowanie -

Tablice, DataGridView

Podstawy informatyki

Rys.2.1. Drzewo modelu DOM [1]

Programowanie obiektowe

Visual Basic for Application (VBA)

Temat: Organizacja skoroszytów i arkuszy

Przedmiot: Informatyka w inżynierii produkcji Forma: Laboratorium Temat: Zadanie 5. MessageBox, InputBox, instrukcja Select Case i instrukcje pętli.

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

ALGORYTMY I PROGRAMY

INFORMATYKA TECHNICZNA Metody wprowadzania obiektów w programie AutoCAD za pomocą języka AutoLISP

AUTOMATYZACJA PRACY Z UŻYCIEM MAKR. Tom XII NPV WSP.KORELACJI ROZKŁ.EXP JEŻELI COS KOMÓRKA VBA DNI.ROBOCZE ILOCZYN LOG SUMA CZY.

Informatyka II. Laboratorium Aplikacja okienkowa

2. Zmienne i stałe. Przykłady Napisz program, który wypisze na ekran wynik dzielenia 281 i 117 w postaci liczby mieszanej (tj. 2 47/117).

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Transkrypt:

Visual Basic dla AutoCAD 1. Programowanie Język programowania to sztuczny język przeznaczony do zapisu algorytmów, w taki sposób, aby mogły one być wykonywane przez komputer. Język programowania charakteryzuje określona składnia (forma) i semantyka (znaczenia). Efektem programowania jest kod źródłowy programu, czyli sformalizowany zapis algorytmu w języku programowania. Następnie kod źródłowy zostaje przetłumaczony na zapis zrozumiały dla procesora w postaci kodu maszynowego (wykonywalnego lub binarnego). Jest to zapis przeznaczony do bezpośredniego wykonania przez procesor i wyrażony w postaci rozumianych przez niego rozkazów oraz ich argumentów. Do programowania służą środowiska programistyczne w skład, których wchodzą, co najmniej następujące programy: edytor tekstowy do pisania kodu źródłowego, edytor graficzny do projektowania graficznego interfejsu użytkownika, kompilator, który tłumaczy kod źródłowy na kod maszynowy oraz debugger program do śledzenia wykonywania programu w celu poszukiwania błędów. 2. Pojęcia podstawowe W czasie programowania dane do zadania zapisujemy w programie w postaci zmiennych, zaś działania na zmiennych programujemy stosując różnego typu instrukcje. Zmienne to para: nazwa i przyporządkowana jej wartość określonego typu zapisana w pamięci komputera. Nazwa zmiennej powinna być czytelna dla programisty. Przez nazwę programista uzyskuje dostęp do jej wartości zapisanej w pamięci. Instrukcje jest to najmniejszy samodzielny element języka programowania. Inaczej rozkaz, polecenie dla komputera. Instrukcją może być wykonanie działania arytmetycznego, powzięcie decyzji lub wykonanie pętli obliczeń. W celu stworzenia zmiennej należy wykonać instrukcję DIM. DIM nazwa_zmiennej AS typ_zmiennej Zmiennej możemy nadać wartość stosując instrukcję przypisania. nazwa_zmiennej = wartość np. Nazwa_towaru = "drukarka". Do zmiennych możemy również przypisać wyniki obliczania wyrażeń. Wyrażenia powstają przez zastosowanie operatorów, np. arytmetycznych takich jak dodawanie, dzielenie itd. zmienna1 = 2 + 3 1/11

Instrukcje wyboru. If Nazwa_towaru = "Drukarka" Then MsgBox "Nazwa towaru to: drukarka." Else MsgBox "Towar to nie jest drukarka" Select Case Nazwa_towaru Case "Drukarka" MsgBox "Nazwa towaru to: drukarka." Case "Monitor" MsgBox "Nazwa towaru to: monitor." Case "Klawiatura" MsgBox "Nazwa towaru to: klawiatura." Case Else MsgBox "Nieznany towar!" End Select Instrukcje pętli. For licznik = poczatek to koniec MsgBox "Aktualna wartość licznika to: " & licznik Next licznik. Do odpowiedz = InputBox("Zakończyć pętle (tak/nie)? ) Loop Until odpowiedz = "tak" Pierwszy program rozwiązywanie równania kwadratowego. Start Podaj a, b i c Oblicz Jeśli Oblicz x 1 oraz x 2 Jeśli Oblicz x 1 = x 2 Wyświetl wyniki Koniec Brak rozwiązania w dziedzinie liczb rzeczywistych 2/11

Sub RownanieKwadratowe() definicja potrzebnych zmiennych Dim a As Double Dim b As Double Dim c As Double Dim delta As Double Dim x1 As String Dim x2 As String przypisywanie wartosci danych do zmiennych a = InputBox("Podaj wartość współczynnika a: ") b = InputBox("Podaj wartość współczynnika b: ") c = InputBox("Podaj wartość współczynnika c: ") obliczanie wartości delty delta = b ^ 2-4 * a * c w zależności od wartości delty obliczamy rozwiązanie jeśli delta jest większa od 0 If delta > 0 Then x1 = (-b - delta ^ 0.5) / (2 * a) x2 = (-b + delta ^ 0.5) / (2 * a) w przeciwnym wypadku jeśli delta jest równa 0 ElseIf delta = 0 Then x1 = -b / (2 * a) x2 = "x1" w przeciwnym wypadku Else x1 = "Brak wartości rzeczywistej" x2 = " Brak wartości rzeczywistej" wyświetl wynik MsgBox "x1 = " & x1 & ", x2 = " & x2 3. Programowanie dla aplikacji model obiektowy aplikacji Nadrzędnym obiektem jest Aplikacja (Application) w ramach, której istnieje zbiór Dokumentów (Dosuments). Każdy Dokument (Document) zawiera obszar zwany Przestrzenią Modelu (ModelSpace) i Przestrzenią Papieru (PaperSpace). W ramach Przestrzeni Modelu powstają obiekty rysunkowe jak Okrąg (Circle), Linia (Line) lub Wymiar Kątowy (DimAngular). Każdy obiekt posiada swoje właściwości, metody i zdarzenia. Na przykład obiekt Line pamięta swój początek i koniec odpowiednio we właściwościach Line.StartPoint, Line.EndPoint. Linia posiada metodę pozwalającą ją przesunąć o nazwie Line.Move. Korzystając ze zdarzenia Line.Modified programista może zareagować w momencie modyfikacji linii. 3/11

4. Tworzenie linii Sub Example_AddLine() 'deklaracja zmiennych Dim lineobj As AcadLine Dim startpoint(0 To 2) As Double Dim endpoint(0 To 2) As Double 'punkt początkowy i końcowy linii startpoint(0) = 1#: startpoint(1) = 1#: startpoint(2) = 0# endpoint(0) = 5#: endpoint(1) = 5#: endpoint(2) = 0# 'utowrzenie linii Set lineobj = ThisDrawing.ModelSpace.AddLine(startPoint, endpoint) ZoomExtents 5. Tworzenie okręgu Sub Example_AddCircle() Dim circleobj As AcadCircle Dim centerpoint(0 To 2) As Double Dim radius As Double centerpoint(0) = 0#: centerpoint(1) = 0#: centerpoint(2) = 0# radius = 5# Set circleobj = ThisDrawing.ModelSpace.AddCircle(centerPoint, radius) ZoomAll 6. Przeglądanie zawartości rysunku W przykładzie przeglądamy rysunek i wyświetlamy w oknie dialogowym nazwy istniejących obiektów. Sub Example_Count() Dim I As Integer 'wyświetl liczbę obiektów MsgBox "Znaleziono " & ThisDrawing.ModelSpace.Count & " obiektów." 'wyświetl nazwę obiektów For I = 0 To ThisDrawing.ModelSpace.Count - 1 MsgBox "Element numer: " & I & ", to " & _ ThisDrawing.ModelSpace.Item(I).ObjectName Next 7. Zmiana właściwości obiektów 4/11

W przykładzie przeglądamy zawartość rysunku i zmieniamy kolor obiektów. Wszystkim odcinkom kolor zmieniamy na czerwony, a wszystkim okręgom na fioletowy. Sub Change_Color() Dim I As Integer For I = 0 To ThisDrawing.ModelSpace.Count - 1 Next Select Case ThisDrawing.ModelSpace.Item(I).ObjectName Case "AcDbLine" ThisDrawing.ModelSpace.Item(I).Color = acred Case "AcDbCircle" ThisDrawing.ModelSpace.Item(I).Color = acmagenta End Select 8. Korzystanie ze zbioru wskazań użytkownika W przykładzie korzystamy ze zbioru wskazań użytkownika. Po wywołaniu funkcji, użytkownik jest proszony o wskazanie elementu. Jeśli jest to okrąg zmieniamy jego promień na 15 jednostek. Sub Edycja_kola() 'zmienna typu AcadSelectionSet Dim ssetobj As AcadSelectionSet 'usuń wszystkie istniejace zbiory wskazań While ThisDrawing.SelectionSets.Count > 0 ThisDrawing.SelectionSets.Item(0).Delete Wend 'utwórz obiekt zbióru wskazań Set ssetobj = ThisDrawing.SelectionSets.Add("KOLO") 'utwórz zbiór wskazań użytkownika ssetobj.selectonscreen 'jesli pierwszy wskazany obiket ma nazwę "AcDbCircle" 'zmień jego promień If ssetobj.item(0).objectname = "AcDbCircle" Then ssetobj.item(0).radius = 15 9. Pobieranie współrzędnych punktu wskazanego przez użytkownika W przykładzie prosimy użytkownika o wskazanie dwóch punków. Następnie, na podstawie ich współrzędnych tworzymy odcinek. Sub Rysuj_linie() Dim firstpnt As Variant Dim secondpnt As Variant 5/11

firstpnt = ThisDrawing.Utility.GetPoint(, "Wskaż pierwszy punkt: ") secondpnt = ThisDrawing.Utility.GetPoint(, "Wskaż drugi punkt: ") Dim lineobj As AcadLine Set lineobj = ThisDrawing.ModelSpace.AddLine(firstPnt, secondpnt) ZoomAll W poniższym przykładzie, w punkcie wskazanym przez użytkownika stworzymy tekst "Dzień dobry" Sub Pisz_tekst() Dim firstpnt As Variant Dim textobj As AcadText firstpnt = ThisDrawing.Utility.GetPoint(, "Enter a point: ") Dim textstring As String Dim height As Double 'Tworzymy tekst w przestrzeni modelu textstring = "Dzien dobry" height = 0.5 Set textobj = ThisDrawing.ModelSpace.AddText(textString, firstpnt, height) ZoomAll 10. Gra Kółko i krzyżyk Poniższa funkcja rysuje planszę do gry w miejscu wskazanym przez użytkownika. Sub Szachownica() 'zmienna dla lewego, dolnego punktu planszy Dim basepnt As Variant 'zmienne dla końców odcinków tworzących plansze 'są to tablice zawierające X (indeks 0), Y (indeks 1) i Z (indeks 2) Dim Pnt1(0 To 2) As Double Dim Pnt2(0 To 2) As Double Dim Pnt3(0 To 2) As Double Dim Pnt4(0 To 2) As Double Dim Pnt5(0 To 2) As Double Dim Pnt6(0 To 2) As Double Dim Pnt7(0 To 2) As Double Dim Pnt8(0 To 2) As Double Dim Pnt9(0 To 2) As Double 'Definiujemy lewy, dolny narożnik planszy basepnt = ThisDrawing.Utility.GetPoint(, "Enter a point: ") 'Definiujemy współrzędne wszystkich punktów 6/11

Pnt1(0) = basepnt(0) + 10: Pnt1(1) = basepnt(1): Pnt1(2) = 0 Pnt2(0) = basepnt(0) + 10: Pnt2(1) = basepnt(1) + 30: Pnt2(2) = 0 Pnt3(0) = basepnt(0) + 20: Pnt3(1) = basepnt(1): Pnt3(2) = 0 Pnt4(0) = basepnt(0) + 20: Pnt4(1) = basepnt(1) + 30: Pnt4(2) = 0 Pnt5(0) = basepnt(0): Pnt5(1) = basepnt(1) + 10: Pnt5(2) = 0 Pnt6(0) = basepnt(0) + 30: Pnt6(1) = basepnt(1) + 10: Pnt6(2) = 0 Pnt7(0) = basepnt(0): Pnt7(1) = basepnt(1) + 20: Pnt7(2) = 0 Pnt8(0) = basepnt(0) + 30: Pnt8(1) = basepnt(1) + 20: Pnt8(2) = 0 Pnt9(0) = basepnt(0) + 30: Pnt9(1) = basepnt(1) + 30: Pnt9(2) = 0 End sub 'Tworzymy linie Dim lineobj As AcadLine Set lineobj = ThisDrawing.ModelSpace.AddLine(Pnt1, Pnt2) Set lineobj = ThisDrawing.ModelSpace.AddLine(Pnt3, Pnt4) Set lineobj = ThisDrawing.ModelSpace.AddLine(Pnt5, Pnt6) Set lineobj = ThisDrawing.ModelSpace.AddLine(Pnt7, Pnt8) 'Powiększamy obraz do rozmiarów szachownicy ZoomWindow Pnt1, Pnt9 Funkcje rysującą planszę wykorzystamy we właściwej procedurze gry w kółko i krzyżyk. Należy ja najpierw zmodyfikować o możliwość przekazania danych o punkcie w którym rysujemy planszę. Zmienną basepnt wpisujemy jako parametr wywołania funkcji, a zmienna lokalną basepnt usuwamy. Sub Szachownica(basePnt As Variant) Dim basepnt As Variant Procedura gry w kółko i krzyżyk będzie wyglądała następująco Sub Kolko_krzyzyk() Dim basepnt As Variant Dim Znak As String Dim insertionpoint(0 To 2) As Double Dim height As Double Dim markerpnt(0 To 2) As Double 'rysujemy szachownice za pomocą wcześniej przygotowanej procedury 'zmienną basepoint wykorzystamy później do lokalizacji wskazań na planszy Szachownica basepnt 'zaczyna kółko Znak = "0" 'licznik ruchów licznik = 1 'wysokość znaków height = 5 Do 'prosimy o pierwszy ruch nextpnt = ThisDrawing.Utility.GetPoint(, "Enter a point: ") 'oblicz współrzędne środka wskazanego pola markerpnt(0) = ((nextpnt(0) - basepnt(0)) \ 10) * 10 + 2.5 + basepnt(0) markerpnt(1) = ((nextpnt(1) - basepnt(1)) \ 10) * 10 + 2.5 + basepnt(1) 7/11

markerpnt(2) = 0 'jesli wskazanie jest w obszarze planszy If nextpnt(0) > basepnt(0) And nextpnt(0) < basepnt(0) + 30 And _ nextpnt(1) > basepnt(1) And nextpnt(1) < basepnt(1) + 30 Then 'zdecyduj jaki postawić znak If Znak = "0" Then Znak = "X" Else Znak = "0" 'narysuj znak ThisDrawing.ModelSpace.AddText Znak, markerpnt, height 'zwiększ licznik ruchów licznik = licznik + 1 'realizuj pętlę tak długo aż użytkownik wykona poprawnie 9 ruchów Loop Until licznik > 9 11. Współpraca z innymi aplikacjami Poniższa procedura odczytuje z arkusza Excela rodzaj obiektu oraz jego współrzędne i na tej podstawie rysuje obiekty w przestrzeni modelu. Przygotuj plik Excela. W pierwszej kolumnie wpisz nazwy tworzonych obiektów Linia lub Okrag. W kolejnych kolumnach wpisz, dla linii współrzędne końców odcinka, dla okręgu współrzędne środka i promień. Sub Excel() Dim Pnt1(0 To 2) As Double Dim Pnt2(0 To 2) As Double Dim lineobj As AcadLine Dim Promien As Double Dim circleobj As AcadCircle Przygotuj plik Excela Set ExcelWorksheet = GetObject("C:\...\Arkusz.xls") I = 1 Do Select Case ExcelWorksheet.activesheet.cells(I, 1) Jeśli w pierwszej komórce jest Linia, wczytaj współrzędne końców i narysuj odcinek Case "Linia" Pnt1(0) = ExcelWorksheet.activesheet.cells(I, 2) Pnt1(1) = ExcelWorksheet.activesheet.cells(I, 3) Pnt2(0) = ExcelWorksheet.activesheet.cells(I, 4) Pnt2(1) = ExcelWorksheet.activesheet.cells(I, 5) Set lineobj = ThisDrawing.ModelSpace.AddLine(Pnt1, Pnt2) Jeśli w pierwszej komórce jest Okrag, wczytaj współrzędne środka oraz promienia i narysuj okrąg Case "Okrag" Pnt1(0) = ExcelWorksheet.activesheet.cells(I, 2) 8/11

End Select I = I + 1 Pnt1(1) = ExcelWorksheet.activesheet.cells(I, 3) Promien = ExcelWorksheet.activesheet.cells(I, 4) Set circleobj = ThisDrawing.ModelSpace.AddCircle(Pnt1, Promien) Czytaj dopóki nie napotkasz pustej komórki Loop Until ExcelWorksheet.activesheet.cells(I, 1) = "" 12. Interfejs użytkownika dla polecenia rysowania linii Utwórz okno dialogowe i nazwij je ufrysuj. W oknie wstaw elementy interfejsu i nazwij je tak jak na poniższym rysunku. ufrysuj tbx1 tby1 tbx2 tby2 cblinia Utwórz procedurę, która będzie uruchomiona po naciśnięciu przycisku cblinia. W tym celu dwukrotnie kliknij na przycisk Rysuj linię. Private Sub cblinia_click() Dim lineobj As AcadLine Dim startpoint(0 To 2) As Double Dim endpoint(0 To 2) As Double ' zdefiniuj początek i koniec odcinka pobierając dane z okna dialogowego 9/11

startpoint(0) = ufrysuj.tbx1 startpoint(1) = ufrysuj.tby1 startpoint(2) = 0# endpoint(0) = ufrysuj.tbx2 endpoint(1) = ufrysuj.tby2 endpoint(2) = 0# Set lineobj = ThisDrawing.ModelSpace.AddLine(startPoint, endpoint) ZoomAll W folderze ThisDrawing definiujemy funkcję wywołującą okno rysowania odcinka. Sub RysowanieElementów() ufrysuj.show 13. Edycja okręgu W niniejszym przykładzie, za pomocą okna dialogowego, użytkownik będzie miał możliwość modyfikacji promienia okręgu. Chcemy aby polecenie edycji okręgu było dostępne z menu przyciskowego. Do utworzonego przycisku przypisujemy makro: ^C^C-vbarun ThisDrawing.EdycjaKola W folderze ThisDrawing definiujemy funkcję wywołującą okno. Sub EdycjaKola() ufedycjakola.show Tworzymy okno dialogowe ufedycjakola. ufedycjakola tbpromien cbzmienpromien W folderze ufedycjakola definiujemy następujące zmienne i funkcje: Zmienną zbioru wskazań: Public ssetobj As AcadSelectionSet 10/11

W czasie uruchomienia okna prosimy użytkownika o wskazanie obiektu. Dlatego w procedurze UserForm_Initialize wpisujemy: Private Sub UserForm_Initialize() Usuwamy wszystkie istniejace zbiory wskazań If ThisDrawing.SelectionSets.Count > 0 Then ThisDrawing.SelectionSets.Item(0).Delete Tworzymy nowy zbiór wskazań Set ssetobj = ThisDrawing.SelectionSets.Add("KOLO") ssetobj.selectonscreen Wartość promienia wskazanego okręgu wpisujemy do pola dialogowego If ssetobj.item(0).objectname = "AcDbCircle" Then ufedycjakola.tbpromien = ssetobj.item(0).radius Po naciśnięciu przycisku Zmień promień chcemy zmienić promień na wpisany przez użytkownika w pole edycyjne. Odpowiednio wypełniamy metodę Click przycisku cbzmienpromien. Private Sub cbzmienpromien_click() If ssetobj.item(0).objectname = "AcDbCircle" Then ssetobj.item(0).radius = ufedycjakola.tbpromien ssetobj.item(0).update Else MsgBox( To nie jest okrąg! & vbcr & Spróbuj ponownie. ) 11/11