| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Программное создание таблицы AutoCAD. Муки творчества.

Программное создание таблицы AutoCAD. Муки творчества.

Ответ
Поиск в этой теме
Непрочитано 05.04.2013, 17:08
Программное создание таблицы AutoCAD. Муки творчества.
Do$
 
AutoCAD/Civil3D LISP/C#
 
Санкт-Петербург
Регистрация: 15.08.2008
Сообщений: 1,702

Здравствуйте, уважаемые коллеги!
Уже не в первый раз возникает необходимость вывести какие-то рассчитанные программно данные на чертеж в виде таблицы. Естественно, хочется, чтобы потом эту таблицу не пришлось долго и муторно приводить к нужному виду. Следовательно, надо заложить в программу возможность форматирования таблицы. Но тут встает вопрос - каким образом это лучше всего сделать?
У меня был опыт рисования таблиц из линий и мультитекста. Просто и сердито. Если нужно потом отформатировать такое творение, сил на это уходит прилично. Но раньше особо альтернативы не было, поэтому этот способ был практически единственным. Достоинств сейчас у этого способа практически нет никаких, за исключением того, что не нужно разбираться в том, как создавать и редактировать таблицы AutoCAD. А разбираться там есть в чем:

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

Возможностей масса! Но хочется понять, что разумнее делать программно, а что реализовывать штатными настройками?
В одной своей LISP-программе я использовал такой способ создания таблицы: в папку приложения помещал уже готовый шаблон DWG с настроенными таблицами и программно вставлял нужную таблицу в чертеж, используя ObjectDBX. Этот способ имеет огромный плюс - не надо программно настраивать всевозможные стили, таблица гарантированно создавалась в чертеже со всеми необходимыми настройками. При необходимости, внешний вид таблицы любой более-менее опытный пользователь может спокойно менять, не затрагивая код. За год использования программы ни одной осечки не было.
Сейчас я в основном пишу на C#.NET, в связи с чем снова возникает этот вопрос - как лучше? Механизма междокументного взаимодействия на NET я пока не знаю, но не думаю, что это будет большой проблемой. Теорию создания табличного стиля поверхностно изучил, возможности весьма порадовали. Опять же, как лучше: полностью до мелочей продумать и программно создать стиль таблицы вплоть до заранее сохраненного шаблона таблицы, или же создавать таблицу любого имеющегося стиля и программно при заполнении проводить форматирование, переопределяя заложенное стилями? Каким образом вносить изменения при необходимости? Создавать отдельный диалог для ввода настроек таблицы, скорее всего...
В общем, очень интересует ваше мнение по этому вопросу и, может быть, кто-то может поделиться удачным или печальным опытом?
Заранее спасибо!
Просмотров: 20316
 
Непрочитано 19.04.2013, 10:26
#21
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Alexeipost Посмотреть сообщение
Была таблица на 2000 строк - пришлось разбивать на 4 автокадовских файла.
AutoCAD не является табличным процессором. С обычными ведомостями\спецификациями он работает вполне сносно. Если таблица содержит так много записей, как указано в цитате, то скорее всего имеет смысл работать с ними в Excel\Calc и оттуда же выводить на печать, а не тянуть их в AutoCAD. Для решения любой задачи нужно стараться выбирать такой софт, который для этого более подходит (специализирован).

имхо.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 20.04.2013, 16:31
#22
Alexeipost


 
Регистрация: 07.12.2010
Уфа
Сообщений: 425
<phrase 1=


В экселе не удобно рамку вставлять. И из автокада печатать удобно в пдф - нажал и все ушло. А когда в проекте 100 листов, то печать из подшивки просто не заменима! Ладно, есть пример, который таблицу форматирует? Все строки высотой 800, выравнивание середина поцентру....
Alexeipost вне форума  
 
Непрочитано 18.06.2014, 11:27
#23
roaa

ОПС
 
Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128


Ищу несколько дней, но...
(vla-GetCellStyle MyTable 0 0) - стиль ячейки
(vla-GetRowType MyTable 0) - стиль строки
Какой командой вытащить стиль столбца таблицы?
roaa вне форума  
 
Автор темы   Непрочитано 18.06.2014, 11:30
#24
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


А разве есть стиль столбца?
Миниатюры
Нажмите на изображение для увеличения
Название: Стиль строки.png
Просмотров: 147
Размер:	63.2 Кб
ID:	130552  
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Непрочитано 18.06.2014, 11:54
#25
roaa

ОПС
 
Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128


Цитата:
Сообщение от Do$ Посмотреть сообщение
А разве есть стиль столбца?
Судите сами...
Незнаю как вставить рисунок в сообщение.
Выделяем ячейку-свойства. Там и сидит этот самый стиль.
Миниатюры
Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 152
Размер:	96.2 Кб
ID:	130553  
roaa вне форума  
 
Автор темы   Непрочитано 18.06.2014, 13:27
#26
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Есть подозрение, что с помощью VLisp не добраться до этих свойств.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Непрочитано 18.06.2014, 15:15
#27
roaa

ОПС
 
Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128


Цитата:
Сообщение от Do$ Посмотреть сообщение
Есть подозрение, что с помощью VLisp не добраться до этих свойств.
Попробую еще поискать...
Пришла идея использовать таблицы для сохранения настроек в самом чертеже, да и функции, наподобие написанных kpbls для ini-файлов, но для таблиц, очень бы не помешали.

----- добавлено через ~18 ч. -----
Подскажите, пожалуйста, как пользоваться командой GetCellDataType
roaa вне форума  
 
Автор темы   Непрочитано 19.06.2014, 17:27
#28
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от roaa Посмотреть сообщение
Пришла идея использовать таблицы для сохранения настроек в самом чертеже
Настроек чего?
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Непрочитано 19.06.2014, 23:52
#29
roaa

ОПС
 
Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128


Цитата:
Сообщение от Do$ Посмотреть сообщение
Настроек чего?
Многие для настроек своих программ создают ini, dat... А для сохранения какой-то информации - расширенные данные.
Почему б не использовать для этого таблицы и в самом чертеже.
Это только затейка, а как это будет целесообразно и удобно - пока вопрос.
roaa вне форума  
 
Автор темы   Непрочитано 19.06.2014, 23:56
#30
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Для сохранения настроек в чертеже есть специальный тип записи - XRECORD. Хранятся они в словарях. Есть корневой словарь документа - NOD (Named object dictionary), можно также добавлять словарь к любому объекту чертежа. Вот таким образом обычно хранят настройки, которые нужно сохранять в чертеже.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Непрочитано 20.06.2014, 00:23
#31
roaa

ОПС
 
Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128


Век живи - век учись...Спасибо

----- добавлено через ~10 ч. -----
А вопрос все таки остался и, думаю, функции будут достаточно востребованы.
roaa вне форума  
 
Непрочитано 20.06.2014, 16:34
#32
Erbol2014

ТОО
 
Регистрация: 22.05.2014
Аршалы
Сообщений: 52


Цитата:
Сообщение от roaa Посмотреть сообщение
Век живи - век учись...Спасибо
А вопрос все таки остался и, думаю, функции будут достаточно востребованы.
Будут всегда.
Цитата:
Сообщение от Do$ Посмотреть сообщение
Для сохранения настроек в чертеже есть специальный тип записи - XRECORD.
И придёт глобальный пипец при чистке чертежа.
Ini придумали для ХР, а как известно ничего лучше пока не создали,да и говорят 9-ка будет на базе ХР...
Erbol2014 вне форума  
 
Непрочитано 20.06.2014, 16:58
#33
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


Цитата:
Сообщение от Erbol2014 Посмотреть сообщение
Ini придумали для ХР
Да ладно - в 95 от него уже отказались...
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 20.06.2014, 17:22
#34
Erbol2014

ТОО
 
Регистрация: 22.05.2014
Аршалы
Сообщений: 52


Offtop:
Цитата:
Сообщение от Дима_ Посмотреть сообщение
Да ладно - в 95 от него уже отказались...
Всё верно - чтобы все подряд не программировали, и не создавали программы, а этим должны заниматься крупные конторы, которым нужно платить кучу бабла за мелкую прогу. Искусственно созданный ажиотаж, таким образом специально убили VB6.
Erbol2014 вне форума  
 
Автор темы   Непрочитано 20.06.2014, 17:40
#35
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от Erbol2014 Посмотреть сообщение
И придёт глобальный пипец при чистке чертежа.
При чистке чертежа удаляются XRECORDS? Первый раз такое слышу.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Непрочитано 20.06.2014, 23:16
#36
roaa

ОПС
 
Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128


И таблица всеж-таки более наглядна и легко контролируется...
roaa вне форума  
 
Непрочитано 21.06.2014, 01:00
#37
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


roaa, не путай метод хранения и метод представления данных.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.06.2014, 02:08
#38
roaa

ОПС
 
Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
roaa, не путай метод хранения и метод представления данных.
Я это помню. Спасибо! О том, где хранить данные у меня вопрос пока не стоит... С таблицей разобраться хочется.
roaa вне форума  
 
Непрочитано 03.08.2016, 09:33
#39
tujn08


 
Регистрация: 26.12.2013
Сообщений: 284


Привет!
Кто может подсказать как на lisp вставлять нужный стиль таблицы из палитры + заполнять ячейки.
И вопрос: стиль нельзя сохранять с заполненной шапкой?
tujn08 вне форума  
 
Непрочитано 03.08.2016, 10:21
#40
Владимир_М


 
Регистрация: 05.11.2015
Сообщений: 585


Цитата:
Сообщение от tujn08 Посмотреть сообщение
Привет!
Кто может подсказать как на lisp вставлять нужный стиль таблицы из палитры + заполнять ячейки.
И вопрос: стиль нельзя сохранять с заполненной шапкой?
Раз уже Вы пишите код, то и попробуйте в коде прописать все что Вам надо: и стиль таблицы, и ее шапку, ну и, естественно, заполнение ячеек... Точно ли нужна Вам эта зависимость от существующих стилей таблиц в шаблоне, от палитр?
Владимир_М вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Программное создание таблицы AutoCAD. Муки творчества.

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AutoCAD 2010. Создание собственных образцов штриховки. rassom AutoCAD 78 25.01.2022 12:07
Как сделать непечатаемым текст в ячейке таблицы в Autocad? Газизов Рафаэль AutoCAD 10 02.09.2014 16:51
Какой AutoCAD использовать ? denes AutoCAD 55 12.09.2011 14:29
программное создание размеров в dxf файле _Oleg_ Программирование 4 01.02.2011 16:36
Одна из целей: Создание экспертных систем на базе AutoCAD. Сергей Юрьевич Программирование 9 01.01.2005 15:17