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 18 -- Widoki
Widoki
Widok jest graficznym przedstawieniem przestrzeni modelu
widzianego z danego punktu w przestrzeni.
Rys. 1 Widok płaski
Rys. 2 Widok 3D
Widok jest obiektem AutoCAD-a (AcadView).
Nowy widok tworzymy korzystając z metody Add (Views.Add )
Z poziomu VBA uzyskujemy dostęp korzystając ze składni Views.Item
Definiowanie nowego widokuSub view1()
'Rozpoczynamy pisanie nowej procedury
' od zdefiniowania jej nazwy.
Dim ptLd(0 To 1) As Double
'definiujemy zmienną ptLd jako zmienną typu double
Dim ptPg(0 To 1) As Double
'definiujemy zmienną ptPg jako zmienną typu double
ptLd(0) = 0
'przypisujemy wartość współrzędnej x lewego
'dolnego rogu definiowanego widoku
ptLd(1) = 0
'przypisujemy wartość współrzędnej y lewego
'dolnego rogu definiowanego widoku
ptPg(0) = 100
'przypisujemy wartość współrzędnej x prawego
'górnego rogu definiowanego widoku
ptPg(1) = 100
'przypisujemy wartość współrzędnej y prawego
'górnego rogu definiowanego widoku
Dim ptCtr(0 To 1) As Double
'definiujemy zmienną ptCtr jako zmienną typu double.
'Zmienna ta posłuży do przechowywania informacji
'o współrzędnych punktu centralnego widoku.
'Wyliczamy współrzędne X i Y punktu centralnego.
ptCtr(0) = ptLd(0) + ((ptPg(0) - ptLd(0)) / 2)
ptCtr(1) = ptLl(1) + ((ptPg(1) - ptLd(1)) / 2)
'Definiujemy zmienną objView jako nowy
'obiekt AutoCAD-a (AcadView)
Dim objview As AcadView
'Ustalamy aktualną przestrzeń na przestrzeń modelu
ThisDrawing.ActiveSpace = acModelSpace
'Umieszczamy obsługę błędów
On Error Resume Next
'Tworzymy nowy widok o nazwie "test"
Set objview = ThisDrawing.Views.Add("test")
'Obliczamy szerokość widoku
objview.Width = ptPg(0) - ptLd(0)
'Obliczamy wysokość widoku
objview.Height = ptPg(1) - ptLd(1)
'Podajemy punkt środkowy widoku
objview.Center = ptCtr
End Sub
'kończymy procedurę
Przechodzimy teraz do testowania naszej procedury. Przechodzimy
do AutoCAD-a przy pomocy kombinacji klawiszy Alt + F11 i uruchamiamy
makro view1.
Sprawdzamy efekt działania naszego makra.
Z menu górnego wybieramy : [Widok]->[Nazwane Widoki...]
Rys. 3 Okno dialogowe Widok z umieszczonym w
nim widokiem o nazwie test
Wyświetlenie wszystkich nazw widoków w rysunku Sub wyswietl_widoki()
'definiujemy nową procedurę
Dim objView As AcadView
'deklarujemy zmienną objView jako
'nowy obiekt AutoCAD-a
Dim strViewNames As String
'deklarujemy zmienną strViewNames jako
'łańcuch tekstowy
If ThisDrawing.Views.Count > 0 Then
'jeżeli w rysunku znajduje się chociaż jeden widok
'dla każdego widoku znajdującego się w rysunku
For Each objView In ThisDrawing.Views
'Przypisujemy zmiennej strViewNames nazwę tego widoku
strViewNames = strViewNames
& objView.Name & vbCrLf
Next
'zwiększamy licznik ; licznik jest równy
'liczbie widoków w rysunku (pętla logiczna FOR)
'Wyświetlamy nazwy widoków w oknie informacyjnym.
MsgBox "Nazwane widoki w bieżącym
rysunku:" & vbCrLf _
& strViewNames
Else
'w przeciwnym razie zostanie wyświetlone
'okno informacyjne, mówiące o tym, że
'w bieżącym rysunku nie znajdują się żadne
'nazwane widoki.
MsgBox "W bieżącym rysunku nie ma
żadnych nazwanych widoków."
End If
'koniec instrukcji warunkowej if
End Sub
'kończymy naszą procedurę
Efekt działania procedury jest widoczny na rysunku poniżej.
Rys. 4 Lista nazwanych widoków występujących
w bieżącym rysunku
Ustalanie aktualnego widoku
Widok raz stworzony przez użytkownika można ustalić jako
aktualny. W "czystym" AutoCAD-zie korzystamy z okna dialogowego
(rysunek 3) lub wpisujemy z klawiatury: View i potwierdzamy Enterem.
dla wersji PL jest to polecenie Widok
Rys. 5
Wybieramy z okna dialogowego nazwę widoku i klikamy myszą
przycisk Ustal aktualny. Gdy chcemy osiągnąć ten sam efekt z poziomu
VBA, wówczas korzystamy z metody SetView obiektu Viewport. Public Sub UstalWidok()
'ustalamy nazwę nowej procedury
Dim objView As AcadView
'definiujemy zmienną objView jako widok AutoCAD-a
Dim objActViewPort As AcadViewport
'definiujemy zmienną objAcViewPort jako aktywną rzutnię
Dim strViewName As String
'definiujemy zmienną strViewName jako łańcuch tekstu
'Ustalamy bieżącą przestrzeń jako przestrzeń modelu
ThisDrawing.ActiveSpace = acModelSpace
'Ustawienie bieżącej rzutni
Set objActViewPort = ThisDrawing.ActiveViewport
'Przedefiniowanie bieżącej rzutni w oparciu
'o informacje o widoku
'Prośba o wpisanie w oknie InputBox nazwy widoku
strViewName = InputBox("Podaj nazwę widoku:")
'Jeżeli zmienna strViewName ma przypisaną wartość
' pustą, opuszczamy procedurę
If strViewName = "" Then Exit Sub
'Jeżeli zwrócona zostanie wartość błędu, przejdź dalej
On Error Resume Next
'Ustal jako widok aktualny widok o nazwie
'wpisanej przez użytkownika w oknie InputBox
Set objView = ThisDrawing.Views(strViewName)
'Jeżeli widok nie jest wartością pustą, to:
If Not objView Is Nothing Then
'Ustal go aktualnym
objActViewPort.SetView objView
'Ustal jako aktywną rzutnię bieżącą rzutnię
ThisDrawing.ActiveViewport = objActViewPort
Else
'w przeciwnym wypadku
'Wyświetl okno informacyjne
MsgBox "Widok nie został znaleziony"
End If
'koniec instrukcji warunkowej if
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 średniozaawansowanych14WWW?D PL AutoCAD kurs dla średniozaawansowanych12WWW?D PLWWW?D PLWWW?D PL AutoCAD kurs dla średniozaawansowanych6WWW?D PLWWW?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 PL AutoCAD kurs dla średniozaawansowanych11WWW?D PL AutoLISP FAQWWW?D PLwięcej podobnych podstron