|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
13.03.2009, 11:47 | #1 | |
AutoCAD 2009. Управление разбиением таблицы из VBA
проектирование
Тула
Регистрация: 12.02.2009
Сообщений: 4
|
||
Просмотров: 8050
|
|
||||
проектирование Регистрация: 12.02.2009
Тула
Сообщений: 4
|
Можно и так, но тогда придется многое повторять, что уже реализовано в таблицах (выравнивание текста, регулировка высоты ячеек при многострочном тексте, разбивка на страницы). Кроме того, будет сложно добавлять/удалять строки, и редактировать вручную полученную таблицу будет очень неудобно.
ЗЫ:Вообще планируется автоматизированное заполнение спецификации из txt-файла, с возможностью удобного редактирования вручную. |
|||
|
||||
Инженер Регистрация: 02.10.2008
С-Пб
Сообщений: 3,685
|
Может, в Excel создавать таблицу? Там на VBA - никаких проблем с форматированием, все довольно просто. А потом вставлять в Автокад.
Может, конечно, и в акадовском VBA можно разобраться, но как-то сложнее там с программным редактированием таблиц.
__________________
...Не пытайся гнуть ты ложку, Не вяжи её узлом. Ложка - ложка понарошку, А по правде, - это лом! |
|||
|
||||
проектирование Регистрация: 12.02.2009
Тула
Сообщений: 4
|
Согласен, в Excel создавать таблицу проще. Но вот как потом ее разбить на листы, да так чтобы там помещались основные надписи (штампы)?
По идее, нужно делать колнтитулами, но сколько я ни пробовал - билиберда получается. А есть ли вообще способы программного доступа к "ручкам" (для таблиц или дин. блоков)? А то в Object Browser (F2) чё-то их не нахожу. А из LISPа можно? Последний раз редактировалось Piroman, 13.03.2009 в 13:08. |
|||
|
||||
Инженер Регистрация: 02.10.2008
С-Пб
Сообщений: 3,685
|
Управлять динамическими параметрами вставленного блока - можно. В VBA, ну а в Лиспе тем более, наверное... Насчет "ручек" таблицы, - не знаю, как-то работа с таблицами в VBA мне кажется заморочной (хотя я не такой уж и знаток).
А насчет оформления листа в экселе.... Может, программно создать таблицу в екселе, сохранить файл, а затем вставить в чертеж dwg? Ну и штамп в автокаде выполнять. Т.е. алгоритм такой: макрос VBA ("из под автокада") читает данные чертежа, сортирует их как вам надо, затем запускает Excel (можно даже в фоновом режиме, с visible = false), создает новый файл, забивает в таблицу данные, форматирует таблицу, сохраняет файл под определенным именем, закрывает Excel. Затем в текущий документ dwg вставляет созданную таблицу...
__________________
...Не пытайся гнуть ты ложку, Не вяжи её узлом. Ложка - ложка понарошку, А по правде, - это лом! |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Piroman, а версию AutoCAD'a уточки. В 2008 такое поведение таблиц, по-моему, прописано на уровне ядра.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
проектирование Регистрация: 12.02.2009
Тула
Сообщений: 4
|
Кулик Алексей aka kpblc:
Цитата:
Вопрос в том, как это сделать ПРОГРАММНЫМ образом? Причем, не только первой части (тогда остальные части продолжения таблицы получаются того же размера что и первая). В моем случае, первая страница отличается от остальных (на первом листе большой штамп - короткая таблица, на остальных маленький штамп - длинная таблица) AlexV: Цитата:
По задумке, спецификация делается в txt-файле отдельной программой, а из этого файла экспортируется программой на VBA (возможно+Lisp) в таблицу AutoCAD-a (стить таблицы сделан вручную, и скорее всего, будет в шаблоне). В таком случае, все передачи данных то в Ексель, то обратно - переливание из пустого в порожнее, и ИМХО будет лишним (да и в Екселе я слабоват) |
|||
|
||||
Инженер Регистрация: 02.10.2008
С-Пб
Сообщений: 3,685
|
Ну, "хозяин - барин!" Просто, можно лепить спецификацию не в txt, а в экселевском файле. Эх, была б возможность в Акаде записи VBA макросов, как в офис-приложениях... Записал макрос, и сразу понятно, где какая собака порылась, можно применять код в своих программах.
В А2009 появилось что-то типа этого, но - не VBA, а какой-то видимо свой формат..
__________________
...Не пытайся гнуть ты ложку, Не вяжи её узлом. Ложка - ложка понарошку, А по правде, - это лом! |
|||
|
||||
Регистрация: 17.10.2008
Саратов
Сообщений: 426
|
Через VBA можно управлять некоторыми свойствами разрывов таблицы:
Код:
Может еще какие свойства и методы есть, я не применял пока. Как задавать высоты отдельным таблицам в общей разбиваемой таблице - не знаю. Возможно через ObjectARX Последний раз редактировалось Baldares, 13.03.2009 в 20:05. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Ну вот только не надо, что "не описаны" - все есть (только что специально проверял в справке 2009-го). Высоты отдельных частей автоматически разбитых таблиц, по-моему, регулируются автоматически. Возможно немного "поиграться", меняя высоты строк перед и после разрыва, но не думаю, что овчинка будет стоить выделки.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Я бы не разбивал таблицу, а создавал бы новые, куда переписывал содержимое старой, по частям. Процесс создания таблицы, да хоть в Layout не проблема. Штампы туда вставлять не надо, они там уже будут.
Создавать новые Layout тоже не проблема. Запустил прогу, ткнул в общую таблицу и тебе создалось куча Layout со штампами и нумерацией листов. |
||||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ObjectARX. Расчленение и удаление proxy-объектов | Profan | Готовые программы | 289 | 27.03.2024 14:50 |
Таблицы из Excel в AutoCAD вставляются неполностью | Nikolay_N | AutoCAD | 23 | 07.09.2019 21:12 |
Импорт настроек AutoCad 2009 | sashkalee | AutoCAD | 6 | 05.10.2009 15:09 |
AutoCAD Architecture 2009 стоит ли.. | mey | Вертикальные решения на базе AutoCAD | 25 | 19.04.2009 19:20 |
как с помощью vba начертить линию | vasyavip | Программирование | 77 | 09.10.2008 23:17 |