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 7 -- Tekst
Tworzenie tekstu
Podczas tworzenia tekstu w AutoCAD-zie każda indywidualna linia
tekstu jest odmiennym obiektem. Do tworzenia obiektu tekstowego
wykorzystujemy metodę AddText. Metoda ta wymaga podania na wejściu
trzech wartości: łańcucha tekstu (zmienna typu string), punktu
wstawienia tekstu i wysokości tworzonego tekstu.
Punkt wstawienia jest punktem w przestrzeni 3D AutoCAD-a,
zdefiniowanym w globalnym układzie współrzędnych. Parametr wysokości
tekstu jest liczbą dodatnią i jest mierzony w aktualnych jednostkach
rysunkowych.
Tekst jednowierszowy. Ten przykład tworzy linię tekstu w
przestrzeni modelu, w punkcie wstawienia o współrzędnych ( 2 , 2 , 0
). Składnia: Set TextObject = Object.AddText(TextString,
InsertionPoint, Height)
Przykładowa procedura tworząca tekst w przestrzeni modelu w
oparciu o podane wartościSub Tekst1()
'w pierwszej linii definiujemy nazwę procedury
Dim textObj As AcadText
'deklarujemy zmienną textObj jako obiekt AutoCAD-a.
Dim textString As String
'deklarujemy zmienną tekst string jako zmienną typu łańcuch
Dim insertionPoint(0 To 2) As Double
'deklarujemy zmienną insertionPoint jako zmienną typu double
Dim height As Double
'definiujemy zmienną height jako zmienną typu double
'przypisujemy wartości do zmiennych
textString = "Kurs VBA - www.cad.pl"
' przypisanie łańcucha tekstu do zmiennej tekstString
insertionPoint(0) = 100
' Przypisanie wartości współrzędnej X punktu wstawienia tekstu
insertionPoint(1) = 100
' Przypisanie wartości współrzędnej Y punktu wstawienia tekstu
insertionPoint(2) = 0
'Przypisanie wartości współrzędnej Z punktu wstawienia tekstu
height = 2
'Przypisanie wartości zmiennej height
Aby stworzyć tekst, wykorzystamy instrukcję Set do skojarzenia
odwołania do obiektu ze zmienną.Set textObj = ThisDrawing.ModelSpace.AddText
(textString, insertionPoint, height)
textObj.Update
'odświeżamy obiekt tekst
End Sub
'kończymy tworzenie procedury tworzenia tekstu
Rys. 1
Przykładowa procedura tworząca tekst w przestrzeni modelu w
oparciu o wartości pobrane od użytkownika.Public Sub Tekst2()
'Definiujemy nazwę procedury
Dim varStart As Variant
'Deklarujemy zmienną varStart jako zmienną typu variant
'zmienna ta zostanie wykorzystana przechowywania
'współrzędnych punktu wstawienia tekstu
Dim dblHeight As Double
'Deklarujemy zmienną dblHeight jako zmienną typu double
Dim strText As String
'Deklarujemy zmienną strText jako łańcuch
Dim objEnt As AcadText
'Deklarujemy zmienną objEnt jako obiekt AutoCAD-a
' Pobranie informacji od użytkownika
With ThisDrawing.Utility
'Pobranie od użytkownika punktu wstawienia tekstu
varStart = .GetPoint(, vbCr &
"Wskaż punkt wstawienia: ")
'Pobranie od użytkownika wysokości tekstu
dblHeight = .GetDistance
(varStart, vbCr & "Podaj wysokość: ")
'Pobranie od użytkownika łańcucha znaków -
'tekstu, który ma być utworzony
strText = .GetString(True, vbCr & "Wpisz tekst: ")
End With
'tworzymy tekst w przestrzeni modelu, korzystamy z
'funkcji set do skojarzenia obiektu ze zmienną
Set objEnt = ThisDrawing.ModelSpace.AddText
(strText, varStart, dblHeight)
objEnt.Update
'Odświeżenie obiektu
End Sub
'Koniec procedury
Efekt działania tej procedury widoczny jest na poniższym
rysunku.
Rys. 2 Tekst utworzony za pomocą procedury
tekst1
Przykładowa procedura tworząca tekst wielowierszowy w
przestrzeni modelu w oparciu o podane wartości
Składnia: Set MtextObject = Object.AddMText(InsertionPoint,
Width, TextString)
Każdy tekst w rysunku w AutoCAD-zie posiada stowarzyszony z nim
styl. Podczas tworzenia tekstu, AutoCAD wykorzystuje aktualny styl
tekstu do określenia rodzaju czcionki, rozmiaru, kąta pochylenia,
orientacji i innych cech nowego stylu. Formatowanie tekstu możemy
zmienić poprzez zmianę lub edycję stylu, w oparciu o który został on
stworzony. Nie można zmienić pojedynczych wyrazów lub znaków. Można
jednak utworzyć nowy styl tekstu dla pojedynczego wyrazu lub
znaku.Sub Mtext1()
'definiujemy za pomocą funkcji Sub nazwę nowej procedury
Dim mtextObj As AcadMText
'deklarujemy zmienną mtextObj jako obiekt AutoCAD-a
Dim insertPoint(0 To 2) As Double
'deklarujemy zmienną insertPoint jako zmienną typu double
Dim width As Double
'deklarujemy zmienną width jako zmienną typu double
Dim textString As String
'deklarujemy zmienną textString jako łańcuch, zmienna
'ta posłuży nam do przechowywania informacji o tekście,
'który ma zostać utworzony.
insertPoint(0) = 2
'przypisujemy wartość współrzędnej X punktu wstawienia
insertPoint(1) = 2
'przypisujemy wartość współrzędnej Y punktu wstawienia
insertPoint(2) = 0
'przypisujemy wartość współrzędnej Z punktu wstawienia
width = 4
'podajemy wysokość tekstu
textString = "Wydawnictwo Helion www.helion.pl."
'Pobranie od użytkownika łańcucha
'znaków - tekstu, który ma być utworzony
'tworzenie tekstu wielowierszowego w przestrzeni modelu
Set mtextObj = ThisDrawing.ModelSpace.AddMText
(insertPoint, width, textString)
End Sub
Rys. 3
Przykładowa procedura tworząca tekst wielowierszowy w
przestrzeni modelu w oparciu o podane wartościSub Mtext2()
'definiujemy za pomocą funkcji Sub nazwę nowej procedury
Dim varStart As Variant
'deklarujemy zmienną varStart jako zmienną typu variant
Dim dblWidth As Double
'deklarujemy zmienną dblWidth jako zmienną typu double
Dim strText As String
'deklarujemy zmienną textString jako łańcuch, zmienna
'ta posłuży nam do przechowywania informacji o tekście,
'który ma zostać utworzony.
Dim objEnt As AcadMText
'deklarujemy zmienną objEnt jako obiekt AutoCAD-a
'przystępujemy do pobierania informacji od użytkownika
With ThisDrawing.Utility
'przypisujemy zmiennej varStart współrzędne punktu
'wstawienia tekstu pobranego od
'użytkownika za pomocą metody GetPoint.
varStart = .GetPoint(, vbCr & "Wskaż punkt wstawienia: ")
'przypisujemy zmiennej dblWidth wartość szerokości
'tekstu wielowierszowego pobranego od
'użytkownika za pomocą funkcji GetDistance
dblWidth = .GetDistance(varStart,
vbCr & "Podaj szerokość tekstu: ")
'przypisujemy zmiennej strText wartość w postaci
'tekstu, który ma zostać utworzony
strText = .GetString(True, vbCr & "Enter the text: ")
End With
'wprowadzamy formatowanie tekstu
strText = "\Fromand.shx;\H0.5;" & strText
'tworzenie tekstu w przestrzeni modelu
Set objEnt = ThisDrawing.ModelSpace.AddMText
(varStart, dblWidth, strText)
objEnt.Update
End Sub
Rys. 4
[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 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 PLWWW?D PL AutoCAD kurs dla średniozaawansowanych11WWW?D PL AutoLISP FAQWWW?D PLwięcej podobnych podstron