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 10 -- Rysowanie prostokąta
Rysowanie prostokąta
Prostokąt w AutoCAD-zie rysowany jest standardowo poprzez podanie
lewego dolnego oraz prawego dolnego punktu prostokąta. W poniższym
przykładzie prostokąt zostanie narysowany w oparciu o pobrany od
użytkownika za pomocą funkcji GetPoint lewy dolny punkt prostokąta
oraz szerokość i wysokość prostokąta.
Rys. 1 Option Explicit
'Zadeklarowanie stałej publicznej Pi
Public Const dblcPI As Double = 3.1415923
Public Sub Bas1()
'Zadeklarowanie zmiennych, które będą przechowywać
'współrzędne wierzchołków prostokąta
Dim varPt1, varPt2, varPt3, varPt4 As Variant
'Zadeklarowanie zmiennych, które będą
'przechowywać wysokość i szerokość prostokąta
Dim dblHeight As Double
Dim dblWidth As Double
'Pobranie od użytkownika punktu wstawienia i
'przypisanie go do zmiennej varPt1
varPt1 = ThisDrawing.Utility.GetPoint(, "Punkt wstawienia:") 'Pt1
'Pobranie od użytkownika szerokości prostokąta i
'przypisanie go do zmiennej dblWidth
dblWidth = ThisDrawing.Utility.GetReal("Szer:") 'dblWidth
'Pobranie od użytkownika wysokości prostokąta i
'przypisanie go do zmiennej dblHeight
dblHeight = ThisDrawing.Utility.GetReal("Wys:") 'dblHeight
'Wyliczenie pozostałych współrzędnych prostokąta i
'przypisanie ich wartości zmiennym
With ThisDrawing.Utility
varPt2 = .PolarPoint(varPt1, 0, dblWidth) ' Pt2
varPt3 = .PolarPoint(varPt2, dblcPI / 2, dblHeight) 'Pt3
varPt4 = .PolarPoint(varPt3, dblcPI, dblWidth) 'Pt4
End With
'Rysowanie prostokąta
With ThisDrawing.ModelSpace
Call .AddLine(varPt1, varPt2)
Call .AddLine(varPt2, varPt3)
Call .AddLine(varPt3, varPt4)
Call .AddLine(varPt4, varPt1)
'Rysowanie linii łączących wierzchołki prostokąta.
Call .AddLine(varPt1, varPt3)
Call .AddLine(varPt2, varPt4)
End With
End Sub
Do wyznaczenia brakujących wierzchołków wykorzystaliśmy metodę
PolarPoint.
Rys. 2
Metoda PolarPoint jest używana do uzyskania nowego punktu, przy
znanym kącie i odległości od danego punktu. W wyniku otrzymujemy
zmienną typu Variant - trójelementową tablicę zmiennych typu
double.
Składnia: Function PolarPoint(Punkt, Kąt As Double, Odległość
As Double)
Zwraca ona punkt w podanej odległości i kącie od podanego punktu.
Wyznaczanie punktu Pt2
Znane nam są wszystkie wartości potrzebne do wyznaczenia punktu
Pt2 (patrz rys) :
Punkt = punkt początkowy (lewy dolny róg prostokąta Pt1)
Kąt = 0 stopni (kąt mierzony jest od osi X a obydwa punkty Pt1,
Pt2 leżą na osi X)
Odległość = Szerokości prostokąta
Wyznaczanie punktu Pt3
Po wyznaczeniu punktu Pt2 znane nam są wszystkie wartości
potrzebne do wyznaczenia punktu Pt3 (patrz rys) :
Punkt = Pt2 (prawy dolny róg prostokąta)
Kąt = 90 stopni = PI/2 radianów (kąt mierzony jest od osi X )
Odległość = Wysokość prostokąta
Wyznaczanie punktu Pt4
Po wyznaczeniu punktu Pt3 znane nam są wszystkie wartości
potrzebne do wyznaczenia punktu Pt4 (patrz rys) :
Punkt = Pt3 (prawy górny róg prostokąta)
Kąt = 180 stopni = PI radianów (kąt mierzony jest od osi X )
Odległość = szerokość prostokąta
Proszę zwrócić uwagę, że równie dobrze przy wyznaczaniu punktu
Pt4 jako punkt bazowy mogliśmy wykorzystać punkt Pt1. Wtedy Punkt =
Pt1, Kąt = PI/2 a odległość = wysokości prostokąta. Efekt byłby
identyczny.
Jeżeli z jakichś powodów nie chcielibyśmy korzystać z metody
PolarPoint, moglibyśmy wyznaczyć brakujące punkty w sposób
tradycyjny.
Jeśli Pt1 jest znany i ma współrzędne (X1, Y1, Z1) to:Pt2 X2 = X1 + szerokość
Y2 = Y1
Z2 = Z1
Pt3 X3 = X2
Y3 = Y2 + wysokość
Z3 = Z2
Pt4 X4 = X3 - szerokość lub X4 = X1
Y4 = Y3 lub Y4 = X1+wysokość
Z4 = Z3
Na początku listingu umieszczona została zadeklarowana stała PI,
ponieważ kąt musimy zawsze podawać w radianach, np. 90 stopni =
PI/2, 180 stopni = PI itd. Stopnie na radiany konwertujemy
korzystając ze wzoru X stopni = (X * PI) /180 radianów np. 35 stopni
= (35 * PI) / 180 radianów. Do procedury rysującej nasz prostokąt
dodałem rysowanie linii łączących Pt1 z Pt3 i Pt2 z Pt4. Zrobiłem to
celowo, aby uprzedzić pytania, po co to wszystko, skoro w
AutoCAD-zie mamy standardowe polecenie rysujące prostokąt. Celem
tego i innych ćwiczeń jest poznanie przez Was zasad programowania w
VBA w AutoCAD-zie i jeśli tak się stanie, to proszę mi wierzyć, że
nie będą Państwo narzekać na brak jakiejś funkcji w programie.
Jeżeli będzie Wam jakaś potrzebna, to sobie ją po prostu napiszecie,
a ograniczać Was będzie jedynie Wasza wyobraźnia.
[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 średniozaawansowanych14WWW?D PL AutoCAD kurs dla średniozaawansowanych12WWW?D PLWWW?D PLWWW?D PL AutoCAD kurs dla średniozaawansowanych6WWW?D PLWWW?D PL AutoCAD kurs dla średniozaawansowanych4WWW?D PLWWW?D PL AutoCAD kurs dla średniozaawansowanych8WWW?D PL CATIA V5 Modelowanie kurs dla początkującyWWW?D PL AutoCAD kurs dla średniozaawansowanych1WWW?D PLWWW?D PLWWW?D PLWWW?D PL AutoCAD kurs dla średniozaawansowanych11WWW?D PL AutoLISP FAQWWW?D PLwięcej podobnych podstron