Сообщество программистов Autodesk в СНГ

ADN Club => VBA => Тема начата: user32 от 23-09-2019, 15:34:24

Название: Настройка таблиц
Отправлено: user32 от 23-09-2019, 15:34:24
Добрый день.
Я создал таблицу через COM, заполнил необходимыми мне данными, все вроде хорошо, но возникла необходимость более тонкой визуальной настройки таблицы, а именно:
1. Хочу удалить самую первую ячейку, где пишется название таблицы, но не могу понять как ее удалить...
2. У таблицы есть свойство
Код - Visual Basic [Выбрать]
  1. table.AllowManualPosition
, которое позволяет перемещать части резделенной таблицы в разные позиции... Как можно программно перемещать эти части? Никак не могу понять?

Заранее спасибо
Название: Re: Настройка таблиц
Отправлено: Александр Ривилис от 23-09-2019, 16:11:38
1. Хочу удалить самую первую ячейку, где пишется название таблицы, но не могу понять как ее удалить...
Код - Visual Basic [Выбрать]
  1. Table.DeleteRows 0, 1
Как можно программно перемещать эти части? Никак не могу понять?
Увы, но в COM/ActiveX API нет для этого средств. Во всяком случае я их не нашел. В AutoCAD .NET API для этого есть метод Table.SetBreakOffset ( int index,  Vector3d offset), который позволяет позиционировать каждую из таблиц.
 
Название: Re: Настройка таблиц
Отправлено: user32 от 23-09-2019, 17:05:20
Понял, спасибо. Не хотелось конечно плагином делать, так как это только часть функционала, но видимо придется)
Название: Re: Настройка таблиц
Отправлено: Алексей Кулик от 23-09-2019, 23:25:09
Я бы попробовал задавать высоту объекта таблицы. К сожалению, прямо сейчас не могу посмотреть, но я бы внимательно посмотрел на все возможные свойства таблицы - насколько я помню, подобное регулировалось программно.
Название: Re: Настройка таблиц
Отправлено: Александр Ривилис от 23-09-2019, 23:28:20
Алексей Кулик,
Table.SetBreakHeight nIndex, pHeight
Это позволит делать разные высоты у частей таблицы, но не позволит задать произвольное положение частей таблицы.
Вообще же произвольно положение частей таблицы появилось в AutoCAD 2008 (если мне не изменяет память), а COM/ActiveX практически не обновлялся с более ранних времён.
Название: Re: Настройка таблиц
Отправлено: Алексей Кулик от 23-09-2019, 23:39:26
Среди всего прочего (дампил таблицу через activex, acad2013) обнаружил свойство BreakSpacning, TableBreakFlowDirection, TableBreakHeight. Заявлено свойство EnableBreak, но в 2013 оно не поддерживается :( Может, в более поздних версиях реализовали - я не знаю. В общем и целом, стоит экспериментировать, если задача сильно нужна (просто мне оно пока не требовалось).
Название: Re: Настройка таблиц
Отправлено: Александр Ривилис от 23-09-2019, 23:45:58
Алексей Кулик,
Это всё есть, но никакая комбинация из них не позволяет свободно позиционировать части таблицы. Не зря в AutoCAD .NET API появился метод:
Код - C# [Выбрать]
  1. Table.SetBreakOffset ( int index,  Vector3d offset)
Меняя offset можно позиционировать части таблицы как угодно.
Если же достаточно их позиционировать их по горизонтали/вертикали с равным шагом , то в VBA есть свойство Table.BreakSpacing, которое определяет направление позиционирования по свойству TableBreakFlowDirection.