WWW CAD PL VBA dla AutoCAD a kurs podstawowy8




WWW.CAD.PL -- VBA dla AutoCAD-a -- kurs podstawowy




TEXTAREA {
FONT-FAMILY: verdana; FONT-SIZE: 10pt
}
INPUT {
FONT-FAMILY: verdana; FONT-SIZE: 10pt
}
SELECT {
FONT-FAMILY: verdana; FONT-SIZE: 10pt
}
OPTION {
FONT-FAMILY: verdana; FONT-SIZE: 10pt
}
PRE {
FONT-FAMILY: Courier; FONT-SIZE: 8pt
}
H2 {
FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 13pt
}
H3 {
FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 12pt
}
H4 {
FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 10pt
}
P {
FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 9pt
}
TD {
FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 9pt
}
XMP {
FONT-FAMILY: monospace; FONT-SIZE: 8pt
}
.ks {
FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 9pt
}
P.user {
COLOR: black; FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 8pt; TEXT-ALIGN: center
}
P.user A {
COLOR: black; FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 8pt; TEXT-ALIGN: center
}
LI {
COLOR: black; FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 8pt
}
.ll {
FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 8pt; MARGIN-BOTTOM: 3pt
}
.lll {
FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 8pt; MARGIN-BOTTOM: 0pt
}
.llll {
COLOR: black; FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 8pt; MARGIN-BOTTOM: 0pt; TEXT-ALIGN: right
}
.lllll {
FONT-FAMILY: Verdana, sans-serif; FONT-SIZE: 8pt; MARGIN-BOTTOM: 0pt; MARGIN-LEFT: 15pt
}





























VBA dla AutoCAD-a -- kurs dla początkujących
Lekcja 8 -- Obliczanie odległości pomiędzy dwoma
punktami





Obliczanie odległości pomiędzy dwoma punktami
Celem dzisiejszej lekcji jest napisanie programu, obliczającego
odległość pomiędzy dwoma wskazanymi przez nas punktami. W naszym
przypadku są to punkty Pt1, Pt2 o współrzędnych Pt1 = (x1,y1,z1) Pt2
= (x2,y2,z2). W VBA współrzędne każdego punktu reprezentowane są
poprzez indeksy liczone od 0 do 2. A więc dla naszych dwóch punktów
będą miały postać Pt1 = (Pt1(0), Pt1(1), Pt1(2)) Pt2 = (Pt2(0),
Pt2(1), Pt2(2)). Ilustruje to rysunek zamieszczony poniżej.
Rys. 1
Przy pomocy kombinacji klawiszy ALT + F8 uruchamiamy edytor makr
w AutoCAD-zie. Możemy też uruchomić go z menu górnego: Narzędzia
-> Makro -> Makra. W oknie dialogowym wpisujemy nazwę nowego
makra: ZmierzOdległość i klikamy przycisk Utwórz.
Rys. 2
Wyświetli się kolejne okno dialogowe, które pozwala nam na
dołączenie naszego makra do istniejącego rysunku lub Projektu.
Rys. 3
Z listy wybieramy Rysunek (nasze makro będzie dzięki temu
przechowywane w rysunku) i klikamy lewym klawiszem myszy przycisk
OK. Nasze makro zostało dołączone do bieżącego rysunku i został
uruchomiony interfejs programowania VBA tzw. VBA IDE. W oknie tym
powinien się znajdować kod naszego makra. Jak dotychczas składa się
on zaledwie z dwóch linijek - początkowej i końcowej. Teraz musimy
pomiędzy tymi dwoma liniami umieścić kod naszego makra.
Rys. 4 Okno interfejsu VBA w AutoCAD-zie z
widocznym kodem makra ZmierzOdległośćSub ZmierzOdległość()

'Początek makra ZmierzOdległość bez argumentów.

Dim pt1 As Variant

'Deklarujemy zmienną pt1 jako Variant.

Dim pt2 As Variant

'Deklarujemy zmienną pt2 jako Variant.
pt1 = ThisDrawing.Utility.GetPoint _
(, vbCrLf & "Pierwszy punkt: ")

Korzystając z funkcji GetPoint przypisujemy zmiennej pt1 punkt
wskazany przez nas na rysunku. Tekst znajdujący się w cudzysłowie
pojawi się w linii poleceń jako zachęta do wskazania pierwszego
punktu.
Rys. 5 pt2 = ThisDrawing.Utility.GetPoint _
(Pt1, vbCrLf & "Drugi punkt: ")

Korzystając z funkcji GetPoint przypisujemy zmiennej pt1 punkt
wskazany przez nas na rysunku. Tekst znajdujący się w cudzysłowie
pojawi się w linii poleceń jako zachęta do wskazania pierwszego
punktu. Obie linie kodu są bardzo podobne, różnica między nimi
(pomijając zamknięty w cudzysłów tekst zachęty do wskazania punktu
na rysunku) to umieszczenie w drugim przypadku przed znakiem powrotu
karetki (VbCrLf) przed przecinkiem Pt1.
Mamy już dwa punkty, które zostały przypisane do zmiennych pt1,
pt2. Możemy przystąpić do tworzenia procedury obliczającej odległość
między nimi. Najpierw musimy obliczyć odległości pomiędzy tymi
punktami wzdłuż osi X, Y, Z. W tym celu deklarujemy trzy nowe
zmienne, które będą nam przechowywać te odległości. Dim x As Double, y As Double, z As Double
Dim Dist As Double

Deklarujemy zmienną Dist jako Double. Posłuży nam ona do
przechowywania obliczonej odległości pomiędzy punktami.
x = pt1(0) - pt2(0)
Zmiennej x przypisujemy wartość uzyskaną w wyniku odjęcia
współrzędnej x pierwszego punktu od współrzędnej x drugiego
punktu.
y = pt1(1) - pt2(1)
Zmiennej y przypisujemy wartość uzyskaną w wyniku odjęcia
współrzędnej y pierwszego punktu od współrzędnej y drugiego
punktu.
z = pt1(2) - pt2(2)
Zmiennej z przypisujemy wartość uzyskaną w wyniku odjęcia
współrzędnej z pierwszego punktu od współrzędnej z drugiego
punktu.
Do wyliczenia odległości wykorzystamy znany ze szkoły wzór, który
w VBA ma postać:
Dist = Sqr((Sqr((x^2) + (y^2))^2) + (z^2))
Funkcja Sqr(liczba) oblicza pierwiastek z liczby. Np.
Sqr(4)=2
Otrzymaną wartość odległości wyliczonej z powyższego wzoru
wyświetlamy w oknie typu MsgBox.
Aby poprawnie sformatować komunikat w oknie MsgBox łączymy tekst
"Odległość pomiędzy punktami wynosi: " i wartość zmiennej dist. Na
końcu znajduje się zamknięty w cudzysłów tekst, który pojawi się w
nagłówku - w naszym przypadku jest to Obliczanie odległości.MsgBox " Odległość pomiędzy punktami wynosi: " _
& dist, , "Obliczanie odległości"
End Sub

Rys. 6
Program wyświetlił sformatowany tekst w oknie Msgbox.
[Poprzednia
lekcja] [Spis
treści] [Następna
lekcja][Przykłady w postaci
elektroniczej]
Piotr Głębicki, ©
Wydawnictwo Helion
2001.




Wyszukiwarka

Podobne podstrony:
WWW?D PL AutoCAD kurs dla średniozaawansowanych14
WWW?D PL AutoCAD kurs dla średniozaawansowanych12
WWW?D PL
WWW?D PL AutoCAD kurs dla średniozaawansowanych6
WWW?D PL
WWW?D PL
WWW?D PL AutoCAD kurs dla średniozaawansowanych4
WWW?D PL
WWW?D PL AutoCAD kurs dla średniozaawansowanych8
WWW?D PL CATIA V5 Modelowanie kurs dla początkujący
WWW?D PL AutoCAD kurs dla średniozaawansowanych1
WWW?D PL
WWW?D PL
WWW?D PL
WWW?D PL AutoCAD kurs dla średniozaawansowanych11
WWW?D PL AutoLISP FAQ
WWW?D PL

więcej podobnych podstron