Korzystamy z cookies, więcej informacji »
Dodano: 16.05.2010 16:11 | brak komentarzy

Lekcja 12 - Modyfikacje obiektów AutoCAD-a

 

 

Modyfikowanie obiektów
Public Sub rys_logo() 'definiujemy nazwę nowej procedury

FAZA 1 - rysowanie logo składającego się z dwóch polilinii

Deklarujemy zmienne objEnt1 i objEnt2 jako obiekt polilinia
Dim objEnt1 As AcadLWPolyline Dim objEnt2 As AcadLWPolyline

Deklarujemy zmienną dbl Verticles. Zmienna ta będzie przechowywała wartości współrzędnych wierzchołków polilinii stanowiących górną część logo
Dim dblVertices(0 To 11) As Double Dim dblVertices2(0 To 7) As Double

Tworzy nową warstwę i ustawia ją aktywną

Dim newlayer1 As AcadLayer

Wykorzystujemy instrukcję Set do skojarzenia obiektu ze zmienną (tworzymy nową warstwę o nazwie "1_Logo_01"

Set newlayer1 = ThisDrawing.Layers.Add("1_Logo_01")

Ustawiamy tą warstwę jako warstwę bieżącą (aktywną)

ThisDrawing.ActiveLayer = newlayer1

Ustawiamy kolor warstwy na czerwony

newlayer1.Color = acRed

przypisujemy wartości współrzędnych wierzchołków polilini do zmiennych (są to współrzędne górnej polilinii)
dblVertices(0) = 17.1446: dblVertices(1) = 19.2585: dblVertices(2) = 21.4243: dblVertices(3) = 25.2029: dblVertices(4) = 21.4243: dblVertices(5) = 35.2017: dblVertices(6) = 10.2008: dblVertices(7) = 35.2017: dblVertices(8) = 4.1794: dblVertices(9) = 27.3974: dblVertices(10) = 17.1446: dblVertices(11) = 27.3974:

Rysujemy polilinię, która będzie stanowić górną część logo
Set objEnt1 = ThisDrawing.ModelSpace. AddLightWeightPolyline(dblVertices)

Zamykamy polilinię objEnt1.Closed = True i odświeżamy ekran objEnt1.Update

przypisujemy wartości współrzędnych wierzchołków polilini do zmiennych (są to współrzędne dolnej polilinii )
dblVertices2(0) = 17.1446: dblVertices2(1) = 3.4776 dblVertices2(2) = 47.2736: dblVertices2(3) = 45.3275 dblVertices2(4) = 36.7349: dblVertices2(5) = 45.3275 dblVertices2(6) = 17.1446: dblVertices2(7) = 18.1161

Rysujemy polilinię, która będzie stanowić dolną część logo
Set objEnt2 = ThisDrawing.ModelSpace. AddLightWeightPolyline(dblVertices2) objEnt2.Closed = True 'zamykamy tą polilinię objEnt2.Update

Zoom okno od pkt (-10,-10) do pkt (60,50) deklarujemy zmienną pkt1 jako double, zmienna ta będzie przechowywać współrzędne lewego dolnego rogu okna zoom

Dim pkt1(0 To 2) As Double

deklarujemy zmienną pkt2 jako double, zmienna ta będzie przechowywać współrzędne prawego górnego rogu okna zoom

Dim pkt2(0 To 2) As Double

Przypisujemy wartości do zmiennych pkt1 i pkt2 ( punkty te wyznaczają nam okno przybliżenia)
pkt1(0) = -10: pkt1(1) = -10: pkt1(2) = -10 pkt2(0) = 60: pkt2(1) = 50: pkt2(2) = 0

Wykonujemy przybliżenie

ThisDrawing.Application.ZoomWindow pkt1, pkt2

FAZA2 - wykorzystanie metody offset do modyfikowania obiektu (odsunięcie)

Składnia: Object.Offset

Definiujemy zmienne offsetObj1 I offsetObj2 jako zmienne typu Variant
Dim offsetObj1 As Variant Dim offsetObj2 As Variant

Wyświetlamy okno MsgBox, ( informuje nas, że górna polilinia zostanie odsunięta o jedną jednostkę do wewnątrz rysunku

MsgBox "Offset górnej części logo ", , " Info"

Wykonujemy odsunięcie offsetObj1 = objEnt1.Offset(-1)

Przypisujemy powstałemu obiektowi kolor biały offsetObj1(0).Color = acWhite offsetObj1(0).Update i odświeżamy ekran

Wyświetlamy okno typu MsgBox, informujące o tym, że nastąpi odsunięcie dolnej polilini
MsgBox "Offset dolnej części logo ", , "Info" offsetObj2 = objEnt2.Offset(-1)

Odsuwamy polilinię (objEnt2) o jeden punkt do środka

offsetObj2(0).Color = acWhite

Przypisujemy do obiektu kolor biały

offsetObj2(0).Update

Odświeżamy obiekt

FAZA 3 - usuwanie obiektów (metoda delete)

Składnia: Object.Delete

Wyświetlamy okno informacyjne

MsgBox "Kasowanie dolnej części logo", , " Info"

offsetObj2(0).Delete

Usuwamy obiekt powstały z odsunięcia dolnej polilini

ThisDrawing.Regen acActiveViewport

Przeprowadzamy regenerację bieżącej rzutni

MsgBox "Kasowanie górnej części logo", , " Info"

Wyświetlamy informację

offsetObj1(0).Delete

Usuwamy obiekt powstały z odsunięcia górnej polilinii

ThisDrawing.Regen acActiveViewport

Przeprowadzamy regenerację bieżącej rzutni

FAZA 4 - Lustro (metoda mirror)

Define the mirror axis

Aby wykonać odbicie lustrzane obiektu, musimy najpierw zdefiniować oś odbicia

Dim point1(0 To 2) As Double

deklarujemy zmienną, która będzie przechowywać współrzędne pierwszego punktu leżącego na osi odbicia

Dim point2(0 To 2) As Double

deklarujemy zmienną, która będzie przechowywać współrzędne pierwszego punktu leżącego na osi odbicia

Przypisujemy wartości do zmiennych
point1(0) = 0: point1(1) = 1: point1(2) = 0 point2(0) = 4: point2(1) = 1: point2(2) = 0

Wyświetlamy okno informacyjne.

MsgBox "Zoom window", , " Info"

Wyświetlamy okno informacyjne

pkt1(0) = -10: pkt1(1) = -60: pkt1(2) = 0

Przypisujemy wartości do zmiennych, które będą nam wyznaczać okno zoom.

pkt2(0) = 60: pkt2(1) = 50: pkt2(2) = 0

Wykonujemy przybliżenie oknem zdefiniowanym punktami pkt1 i pkt2

ThisDrawing.Application.ZoomWindow pkt1, pkt2

Wyświetlamy okno z informacją
MsgBox "Lustro górnej części logo ", , " Info" Dim mirrorObj1 As AcadLWPolyline

deklarujemy zmienną mirrorObj1 jako polilinię AutoCAD-a

Dim mirrorObj2 As AcadLWPolyline

deklarujemy zmienną mirrorObj1 jako polilinię AutoCAD-a

Odbijamy obiekt objEnt1 (górna część logo) względem osi wyznaczonej przez punkty point1 i point2

Set mirrorObj1 = objEnt1.Mirror(point1, point2)

Przypisujemy do obiektu powstałego w wyniku odbicia kolor czerwony
mirrorObj1.Color = acRed mirrorObj1.Update

odświeżamy obiekt. Wyświetlamy okno informacyjne

MsgBox "Lustro dolnej części logo ", , " Info"

Odbijamy obiekt objEnt2 (dolna część logo) względem osi wyznaczonej przez punkty point1 i point2
Set mirrorObj2 = objEnt2.Mirror(point1, point2) mirrorObj2.Color = acRed

Przypisujemy do obiektu powstałego w wyniku odbicia kolor czerwony

mirrorObj2.Update

odświeżamy obiekt

Wyświetlamy okno informacyjne

MsgBox "Przesuwanie dolnej części logo ", , " Info"

FAZA 5 - wykorzystanie metody Move do przesunięcia obiektu

Składnia: Object.Move

Przesuwamy obiekt powstały z odbicia górnej części logo. Punkt bazowy i przesunięcie wyznaczają nam punkty point1, point2 o współrzędnych (0,1) (4,1) punkty te zadeklarowane zostały przez nas przy odbijaniu obiektów
mirrorObj1.Move point1, point2 mirrorObj1.Update 'odświeżamy przesunięty obiekt

FAZA 6 - wykorzystanie metody Rotate do obracania obiektu

Składnia: Object.Rotate

Wyświetlamy okno informacyjne

MsgBox "Obrót dolnej części logo ", , " Info"

Definiujemy kąt obrotu obiektu (45 stopni) i punkt bazowy (4, 4.25, 0). Deklarujemy zmienną basePoint jako

Dim basePoint(0 To 2) As Double

Deklarujemy zmienną rotationAngle jako zmienną typu double

Dim rotationAngle As Double

Przypisujemy wartości do zmiennych
basePoint(0) = 4: basePoint(1) = 4.25: basePoint(2) = 0 rotationAngle = 0.7853981 ' 45 degrees

Obracamy pierwszą polilinię (mirrorObj1) względem punktu bazowego o kąt 45 stopni
mirrorObj1.Rotate basePoint, rotationAngle mirrorObj1.Update 'odświeżamy obiekt

obracamy drugą polilinię (mirrorObj2) względem punktu bazowego o kąt 45 stopni
mirrorObj2.Rotate basePoint, rotationAngle mirrorObj2.Update ' odświeżamy obiekt

Wyświetlamy okno informacyjne

MsgBox "Zoom window", , " Info"

Wykonujemy przybliżenie (zoom okno)
pkt1(0) = -5: pkt1(1) = -20: pkt1(2) = 0 pkt2(0) = 90: pkt2(1) = 50: pkt2(2) = 0 ThisDrawing.Application.ZoomWindow pkt1, pkt2

Wyświetlamy okno informacyjne

MsgBox "Oczko ", , " Info"

Rysujemy okrąg o środku w punkcie (11,33,0) i promieniu równym 1 (metoda sendcommand)
ThisDrawing.SendCommand "_circle 11,33,0 1 " End Sub

koniec procedury

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.