Korzystamy z cookies, więcej informacji »
Dodano: 10.05.2010 17:24 | brak komentarzy

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 GetDistance
With 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ład
Sub 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 zmiennych
PtSrodek(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

 

Dodaj komentarz
Żeby móc dodawać komentarze musisz być zalogowany.
Komentarze
Brak komentarzy.
Newsletter
Prosto na email będziesz otrzymywać między innymi
  • oferty pracy
  • zniżki na książki
  • najnowsze publikacje
AutoCAD cz. I

AutoCAD - kurs dla początkujących

 

Pierwszy z kursów przeznaczony jest dla osób rozpoczynających pracę w środowisku AutoCAD.
Omówiona została filozofia pracy z programem AutoCAD, wygląd głównego okna aplikacji oraz dopasowanie programu do własnych potrzeb.

Kolejne podrozdziały poświęcone są zagadnieniom rysowania i modyfikowania obiektów (linie, multilinie, okrąg, prostokąt wielobok, splajn). Zostały również omówione zasady pracy z warstwami, blokami oraz wymiarowanie. Ostatnie rozdziały kursu podstawowego omawiają zasady drukowania.