Zobrazit plnou verzi příspěvku: Problém s vypisováním textu ve smyčce

tetref
22.11.2004, 08:09
Řeším problém s vypisováním textu ve smyčce z jednotlivých řádků z listu vz excelu. Přestože se mění bod vložení, autocad vše vykresluje do počátku. Nezpůsobuje to vytvoření vždy stejného objektu, který se opakuje ve smyčce příkazem
set oText = thisdrawing.modelspace.addtext(text_obsah,  text_bodvlozeni, text_vyska)
U vykreslování typu line s tímto problém není.
Děkuji za případné odpovědi.

Jan Liska
22.11.2004, 09:54
Dobrý den,
jakým způsobem nastavujete bod vložení? Jakou verzi AutoCADu používáte? Zkoušel jsem následujici test (verze AutoCADu 2005) a vše se zdá být v pořádku:
Sub Test()    Dim height As Double        height = 2.5    For i = 0 To 10        Dim pt(0 To 2) As Double            pt(0) = 0#        pt(1) = (height + 0.5) * i        pt(2) = 0#        ThisDrawing.ModelSpace.AddText "A", pt, height    NextEnd Sub
S pozdravem,

Vladimír Michl
22.11.2004, 09:56
Není jednodušší tabulku rovnou vložit příkazem? (Vlož jako Entity AutoCADu)

Honza
22.11.2004, 10:03
Od ACAD 2004 jsem si navykl na tabulky používat MTEXT. Pracuje s tabelátory a tak již text pěkně zarovnává. Dále se jednoduše opravuje, edituje a hlavne se jednoduše vkládá. Čáry v tabulkách jsem vyloučil již dávno.   Takže mi mtext opravdu vyhovuje.

tetref
22.11.2004, 10:33
Nejedná se o žádnou tabulku, text se vypisuje jednotlivě v různých částech výkresu na základě výpočtů a některý je třeba dodatečně otočit či změnit zarovnání. Proto používám příkaz set.
Problém se vyřešil při vynechání příkazu set oLine, jenomže pak se nedá s vytvořeným textem hned pracovat.
Napadá mě tedy k entitě přistupovat pomocí SelectionSet s vybráním té poslední a pak s ní pracovat. Je to jediný možný postup?tetref38313.441412037

tetref
22.11.2004, 10:46
Při připsání příkazu object.update za řádek Set oLine je při provádění makra vidět ve výkrese, že se text vykresluje správně, ale následně se přemístí z mě neznámých důvodů do počátku. Proč?

Jan Liska
22.11.2004, 10:56
Dobry den,
bohužel nevím, jak vypadá váš program pro vykreslovaní textu - podle toho co popisujete, provádíte další úpravy textu a při nich dojde ke změně umístění. Pokud budete ochoten uvést další podrobnosti (např. výpis kódu pro vykreslení), bude možné zjistit přesnou příčinu popisovaného chování.
S pozdravem,

tetref
22.11.2004, 12:28
Omlouvám se všem, kterým jsem pomotal hlavu mým problémem, zjistil jsem, že všechno tkví v přiřazení vlastnosti acAlignment a vůbec ne v příkazu set oLine. Nechce mi to vzít jednotlivé druhy zarovnání ať jsou stanoveny pevně nebo formou proměnné.

tetref
22.11.2004, 12:35
Nenastavil jsem TextAlignmentPoint a to zřejmě způsobilo, že se všechno zarovnalo do počátku, děkuji za Vaši pomoc. Otevřela mi oči v tom, že jsem se zaměřil na ostatní řádky než bylo definování samotného textu. Ty se mi zdály být v pořádku a proto jsem v nich chybu vůbec nehledal.