Тема: встроенный VBA в Acad2006 работает у кого-нибудь корректно?

Столько глюков в данной версии!!!
    MyTable.SetTextHeight acUnknownRow, 2.5
    MsgBox MyTable.GetTextHeight(acUnknownRow)
не дает 2.5 и т.д. и т.п.
Может кто-нибудь подскажет, в какой версии AutoCAD и языке программирования можно надеяться, что задекларированные в хэлпах функции будут работать?

Re: встроенный VBA в Acad2006 работает у кого-нибудь корректно?

Может кто-нибудь подскажет, в какой версии AutoCAD и языке программирования можно надеяться, что задекларированные в хэлпах функции будут работать?

2000i, 2002, 2005, 2007 (по первому впечатлению).

Re: встроенный VBA в Acad2006 работает у кого-нибудь корректно?

> Svetlana
Возможно тип acUnknownRow в твоей таблице
отсутствует
Проверь для acTitleRow & acDataRow
~'J'~

Re: встроенный VBA в Acad2006 работает у кого-нибудь корректно?

Начинала работать с  acDataRow - не работало. Тут ссылку мне дали для SP1, установила уже, так что повторять уже поздно, но сейчас acDataRow сработало в SP1. Но для выравнивания шрифтов  (свойство justify для текстовых объектов) SP1 не помогло (без программирования установка свойства в 2004 работает, а в 2006 при left слетает)

Re: встроенный VBA в Acad2006 работает у кого-нибудь корректно?

я сталкивался с тем, что код написанный для 2004 не работает в 2006 -м

Re: встроенный VBA в Acad2006 работает у кого-нибудь корректно?

По поводу выравнивания:
Применительно к лиспу, для начала. Вообще-то тут не только текстовые примитивы ("TEXT"), но и атрибуты тоже немного покатят Smile
Итак, поехали (для начала DXF, потом рассмотрим и ActiveX).
Нарисуем текстовый примитив "от балды" (выравнивание - влево) и сделаем (entget (entlast)) (ненужные данные пропущены):
Код:

((0 . "TEXT") (10 63.078 56.4998 0.0) (40 . 2.5) (1 . "654789") (11 0.0 0.0 0.0) (210 0.0 0.0 1.0))

для ActiveX соответственно будет:

(vlax-dump-Object (vlax-ename->vla-object (entlast)))
; IAcadText2: AutoCAD Text Interface
; Property values:
;   Alignment = 0
;   Backward = 0
;   Height = 2.5
;   InsertionPoint = (63.078 56.4998 0.0)
;   TextAlignmentPoint = (0.0 0.0 0.0)
;   TextGenerationFlag = 0
;   TextString = "654789"

Меняем (руками!) выравнивание, например, на "вправо":

_$ (entget (entlast))
((0 . "TEXT") (10 52.8418 56.4998 0.0) (40 . 2.5) (1 . "654789") (11 63.078 56.4998 0.0))
_$ (vlax-dump-Object (vlax-ename->vla-object (entlast)))
; IAcadText2: AutoCAD Text Interface
; Property values:
;   Alignment = 2
;   Backward = 0
;   Height = 2.5
;   InsertionPoint = (52.8418 56.4998 0.0)
;   TextAlignmentPoint = (63.078 56.4998 0.0)
;   TextGenerationFlag = 0
;   TextString = "654789"

Как видно, 10 и 11 группы при изменении выравнивания поменяли значения, в частности, в 11 группу ушли значения из 10 (соответственно для ActiveX - InsertionPoint и TextAlignmentPoint).
Этот момент надо учитывать при выполнении программного выравнивания. Для атрибутов все аналогично.