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

Lekcja 18 - 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 widoku
Sub 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

 

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.