WWW CAD PL VBA dla AutoCAD a kurs podstawowy18




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 ś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