WWW CAD PL VBA dla AutoCAD a kurs podstawowy5




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 5 -- Okrąg, Elipsa, Łuk





Rysowanie okręgu
Okręgi można rysować za pomocą kilku sposobów. Standardową metodą
jest określenie środka i promienia okręgu. Można również określić
środek i średnicę, lub samą średnicę poprzez podanie dwóch punktów.
Innym sposobem jest podanie trzech punktów, które wyznaczają obwód
okręgu. Okrąg można również narysować poprzez wskazanie trzech
obiektów, do których ma być on styczny, lub przez podanie promienia
i wskazanie dwóch obiektów, do których ma być on styczny.
Przykład 1 - Okrąg w oparciu o dane pobrane od
użytkownika
Poniższy przykład rysuje okrąg w oparciu o dane pobrane od
użytkownika (środek i promień).
Rys. 1
Tworzenie programu rozpoczynamy od zdefiniowania nazwy nowej
procedury Sub rys_okrąg1(). Kolejnym krokiem jest
zadeklarowanie zmiennych. Deklarujemy zmienne, które będą
przechowywały dane środka i promienia okręgu. Dim varSrodek As Variant
Dim dblPromien As Double

Oraz deklarujemy zmienną objEnt jako nowy obiekt AutoCAD-a
Dim objEnt As AcadCircle
Pobranie danych od użytkownika za pomocą GetPoint i
GetDistanceWith ThisDrawing.Utility
varSrodek = .GetPoint(, vbCr & "Wskaż środek okręgu: ")
dblPromien = .GetDistance(varSrodek, vbCr & "Podaj promień: ")
End With

Mamy już zadeklarowane zmienne i przypisane do nich wartości,
możemy więc przystąpić do narysowania okręgu. Aby narysować okrąg,
wykorzystamy instrukcję Set do skojarzenia odwołania do obiektu ze
zmienną. Rysowany jest okrąg o promieniu dblPromien i środku
varSrodek.
Set objEnt = ThisDrawing.ModelSpace.AddCircle(varSrodek,
dblPromien)
Na koniec odświeżamy ekran objEnt.Update i kończymy
naszą procedurę End Sub.
Przykład 2 - Okrąg w oparciu o istniejące dane
Poniższy przykład rysuje okrąg w oparciu o podane dane (środek i
promień).
PrzykładSub rysOkrąg2()
Dim ObOkrag As AcadCircle
'Deklaracja zmiennej jako obiekt AutoCAD-a
Dim PtSrodek(0 To 2) As Double '
'Deklaracja zmiennej dla punktu środka okręgu

Dim dblPromien As Double
'Deklaracja zmiennej dla promienia
'Dane okręgu:

PtSrodek(0) = 100#

'Współrzędna X środka okręgu

PtSrodek(1) = 200#

'Współrzędna Y środka okręgu

PtSrodek(2) = 0#

'Współrzędna Z środka okręgu

dblPromien = 50#

'Wartość promienia
'Tworzenie okręgu w przestrzeni modelu
Set ObOkrag = ThisDrawing.ModelSpace.AddCircle
(PtSrodek, dblPromien)
'Koniec procedury rysowania okręgu.
End Sub

Rysowanie elipsy
Celem dzisiejszej lekcji jest stworzenie procedury rysującej
elipsę w przestrzeni modelu w Autocad-zie. Na początek, dla
przypomnienia kilka podstawowych danych na temat elipsy.
Elipsa, zamknięta krzywa płaska, miejsce geometryczne punktów
płaszczyzny, których suma odległości do dwóch wybranych punktów
(tzw. ognisk elipsy) jest stała, dana jest równaniem
(x/a)2+(y/b)2=1, gdzie a2- b2=c2, 2c - odległość między ogniskami, a
- długość większej półosi elipsy, b - długość mniejszej półosi
elipsy, c/a = e i nazywa się mimośrodem elipsy. Pole elipsy wynosi S
= (ab)PI
Rys. 2
Pisanie procedury jak zwykle rozpoczniemy od zdefiniowania nazwy
procedury Sub rys_elipsę () Następnie przejdziemy do zadeklarowania
zmiennych.
Dim ellObj As AcadEllipse - delarujemy zmienną ellObj
jako nowy obiekt AutoCAD-a
Dim majAxis(0 To 2) As Double - deklarujemy zmienną,
która posłuży nam do przechowywania informacji o większej osi
elipsy.
Dim center(0 To 2) As Double - deklarujemy zmienną,
która posłuży nam do przechowywania współrzędnej środka elipsy.
Dim radRatio As Double - deklarujemy zmienną, która
posłuży nam do przechowywania informacji o stosunku większej i
mniejszej półosi.
Gdy mamy już zadeklarowane dane, możemy do nich przypisać
wartości.center(0) = 5#: center(1) = 5#: center(2) = 0#
majAxis(0) = 10: majAxis(1) = 20#: majAxis(2) = 0#
radRatio = 0.3

Aby narysować elipsę, wykorzystamy instrukcję Set do skojarzenia
odwołania do obiektu ze zmienną.
Set ellObj = ThisDrawing.ModelSpace.AddEllipse(center,
majAxis, radRatio)
End Sub kończy naszą procedurę.
Rysowanie łuku
Łuki można rysować na kilka sposobów. Standardową metodą jest
określenie trzech punktów - punktu początkowego, dowolnego punktu
leżącego na łuku i punktu końcowego. Można określać również kąt
rozwarcia, promień, kierunek i długość cięciwy łuku. Cięciwa to
linia prosta łącząca końce łuku. AutoCAD, standardowo, rysuje łuki w
kierunku przeciwnym do ruchu wskazówek zegara. W poniższych
przykładach łuk zostanie narysowany w oparciu o punkt środkowy,
promień, kąt początkowy oraz kąt końcowy.
Przykład 1 - rysowanie łuku o zadanych parametrach.
Środek łuku = (200,100,0)
Promień = 80
Kąt początkowy = 30 stopni
Kąt końcowy = 180 stopni
Rys. 3
Przechodzimy do tworzenia procedury rysującej łuk w AutoCAD-zie.
Definiujemy nazwę procedury Sub rys_luk1(). Przechodzimy
teraz do deklaracji zmiennych:Dim objArc As Object
'Deklaracja zmiennych (Łuk jako obiekt AutoCAD-a)
Dim PtSrodek(0 To 2) As Double
'Deklaracja zmiennych (środek łuku)

Dim dblPromien As Double

'Deklaracja zmiennych promień łuku

Dim KatStartDeg As Double

'Deklaracja zmiennych kat w pkt start w stopniach

Dim KatStartRad As Double

'Deklaracja zmiennych kat wpkt start w radianach

Dim KatKoniecDeg As Double
'Deklaracja zmiennych kat w pkt końcowym w stopniach

Dim KatKoniecRad As Double
'Deklaracja zmiennych kat wpkt końcowym w radianach

Przypisanie danych do zadeklarowanych zmiennychPtSrodek(0) = 200#
'Współrzędna X środka łuku
PtSrodek(1) = 100#
'Współrzędna Y środka łuku

PtSrodek(2) = 0#
'Współrzędna Z środka łuku
dblPromien = 80#
'Promień łuku
KatStartDeg = 30#
'Kąt 30 stopni (kąt początkowy łuku)
KatKoniecDeg = 180#
'Kąt 180 stopni (kąt końcowy łuku)

Aby narysować łuk, potrzebne są nam wartości kąta początkowego i
końcowego wyrażone w radianach, a nie w stopniach. Zamieniamy
stopnie na radiany korzystając ze wzoru:
Kąt w radianach = (Kąt w stopniach * PI / 180)KatStartRad = KatStartDeg * 3.141592 / 180#

'Zamiana stopni na radiany
KatKoniecRad = KatKoniecDeg * 3.141592 / 180#
'Zamiana stopni na radiany

Mając zadeklarowane dane oraz przypisane do nich wartości, a
także wartości kątów zamienione ze stopni na radiany, możemy
przystąpić do rysowania łuku w oparciu o te dane.
Set objArc = ThisDrawing.ModelSpace.AddArc(PtSrodek,
dblPromien, KatStartRad, KatKoniecRad)
End Sub kończy naszą procedurę
Rysowanie łuku przy wykorzystaniu danych pobranych od
użytkownika
W poniższym przykładzie potrzebne dane zostaną uzyskane za pomocą
funkcji:

środek łuku za pomocą funkcji GetPoint
promień za pomocą funkcji GetDistance (punktem odniesienia
jest tu środek łuku)
kąt początkowy i końcowy za pomocą funkcji GetAngle. Public Sub rys_łuk2()

'Zdefiniowanie nowej procedury
Dim varCenter As Variant

'Deklaracja zmiennej dla środka łuku

Dim dblRadius As Double

'Deklaracja zmiennej dla wartości promienia łuku

Dim dblStart As Double
'Deklaracja zmiennej dla kąta początkowego

Dim dblKoniec As Double
'Deklaracja zmiennej dla kąta końcowego

Dim objEnt As AcadArc
'Deklaracja zmiennej jako nowy obiekt AutoCAD-a

Po dokonaniu deklaracji zmiennych przechodzimy do pobrania danych
od użytkownika:
With ThisDrawing.Utility
Pobranie za pomocą metody GetPoint współrzędnych środka łuku
varCenter = .GetPoint(, vbCr & "Wskaż środek łuku:
")
Pobranie za pomocą metody GetDistance wielkości promienia
łuku.
dblRadius = .GetDistance(varCenter, vbCr & "Podaj
promień: ")
Pobranie za pomocą metody GetAngle kąta początkowego łuku
dblStart = .GetAngle(varCenter, vbCr & "Podaj kąt
początkowy: ")
Pobranie za pomocą metody GetAngle kąta końcowego łuku
dblKoniec = .GetAngle(varCenter, vbCr & "Podaj kąt
końcowy: ")
End With
Po przypisaniu wartości do zmiennych przystępujemy do rysowania
łuku w przestrzeni modelu
Set objEnt = ThisDrawing.ModelSpace.AddArc(varCenter,
dblRadius, _ dblStart, dblKoniec)
Odświeżamy ekran objEnt.Update i kończymy procedurę
End Sub
[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
WWW?D PL AutoCAD kurs dla średniozaawansowanych6
WWW?D PL
WWW?D PL
WWW?D PL AutoCAD kurs dla średniozaawansowanych4
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