WWW CAD PL VBA dla AutoCAD a kurs podstawowy12




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 12 -- Modyfikacje obiektów
AutoCAD-a





Modyfikowanie obiektówPublic 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 poliliniaDim 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ęść logoDim 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ęść logoSet 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ęść logoSet 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
VariantDim 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 poliliniMsgBox "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ówmirrorObj1.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 zmiennychbasePoint(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 stopnimirrorObj1.Rotate basePoint, rotationAngle
mirrorObj1.Update
'odświeżamy obiekt

obracamy drugą polilinię (mirrorObj2) względem punktu bazowego o
kąt 45 stopnimirrorObj2.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
[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
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 AutoCAD kurs dla średniozaawansowanych11
WWW?D PL AutoLISP FAQ
WWW?D PL

więcej podobnych podstron