Discussion:
[Acad] [Lisp] Wstawienie tekstu
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
szadok
2009-11-14 00:04:40 UTC
Permalink
Witam,
niby prosta rzecz, chcę wstawić na rysunku z lispa kawałek tekstu. Ale w
zależności od tego, czy używany styl tekstu posiada zadeklarowaną
wysokość, czy też wysokość = 0 w czasie wpisywania komendy "text"
autocad albo nie zapyta o wysokość tekstu, albo zapyta.
Wobec czego w lispie linijki powinny wyglądać tak:

(command "_.text" punkt wysokosc kat text "" )
lub tak:
(command "_.text" punkt kat text "" )

Czy ktoś może wie, jak można sprawdzić, czy AC zapyta o wysokość tekstu?
Zmienne przeglądałem, nic ciekawego nie znalazłem. W obu przypadkach
zmienna textsize ma niezerową wartość.
Jak ew. uodpornić Lispa na ww problem? Chodzi ofkoz o sposób
najprostszy.

Od razu odpowiadam: tak, tak - wiem, używanie "command" w lispie jest
nieeleganckie, etc... ale na razie jakoś nie mam zapału [tylko czasem mnie
dopada potrzeba napisania czegoś krótkiego] do uczenia się
jakichś VBA, czy innych cudów o których istnieniu nawet nie wiem ;)


pzdr, szadok
--
'To jest cnota nad cnotami - trzymać język za zębami'
śp. babcia
ANTYSPAM:usuń cyfry z adresu mail
PiotrB.
2009-11-14 13:58:16 UTC
Permalink
Dnia 14-11-2009 o 01:04:40 szadok <***@terramail.pl> napisał(a):

musisz sprawdzić czy aktualny styl tekstu ma niezerową wysokość.
a najlepiej użyć VBA np.:


Sub textadd()
Dim textString, insertionPoint, height
Dim text As AcadText

textString = ThisDrawing.Utility.GetString(True, "Wpisz tekst: ")
insertionPoint = ThisDrawing.Utility.GetPoint(, "Wskaż punkt wstawienia:
")
height = ThisDrawing.Utility.GetDistance(insertionPoint, "Podaj wysokość
tekstu: ")

Set text = ThisDrawing.ModelSpace.AddText(textString, insertionPoint,
height)
End Sub

lub z mtext:

Sub mtextadd()
Dim textString, insertionPoint, height, width
Dim text As AcadMText

textString = ThisDrawing.Utility.GetString(True, "Wpisz tekst: ")
insertionPoint = ThisDrawing.Utility.GetPoint(, "Wskaż punkt wstawienia:
")

Set text = ThisDrawing.ModelSpace.AddMText(insertionPoint, 0, textString)

height = ThisDrawing.Utility.GetDistance(insertionPoint, "Podaj wysokość
tekstu: ")
text.height = height

width = ThisDrawing.Utility.GetDistance(insertionPoint, "Podaj szerokość
tekstu: ")
text.width = width
End Sub

Loading...