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

Вернуться   Форум 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 я пока не знаю, но не думаю, что это будет большой проблемой. Теорию создания табличного стиля поверхностно изучил, возможности весьма порадовали. Опять же, как лучше: полностью до мелочей продумать и программно создать стиль таблицы вплоть до заранее сохраненного шаблона таблицы, или же создавать таблицу любого имеющегося стиля и программно при заполнении проводить форматирование, переопределяя заложенное стилями? Каким образом вносить изменения при необходимости? Создавать отдельный диалог для ввода настроек таблицы, скорее всего...
В общем, очень интересует ваше мнение по этому вопросу и, может быть, кто-то может поделиться удачным или печальным опытом?
Заранее спасибо!
Просмотров: 20305
 
Непрочитано 03.08.2016, 10:24
#41
Кулик Алексей aka kpblc
Moderator

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


Стиль вставляется или создается? Это раз.
Второе: стиль и таблица с этим стилем - разные вещи, их путать нельзя.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 03.08.2016, 10:34
#42
tujn08


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


Цитата:
Сообщение от Владимир_М Посмотреть сообщение
Точно ли нужна Вам эта зависимость от существующих стилей таблиц в шаблоне, от палитр?
Я создал свой стиль, добавил в палитру.
1) Заголовки не сохраняются
2) при программном (или del) стирание ячеек, сбрасывается форматирование - формат заблокирован (как так-то?)
3) после программного заполнения таблицы хотел экспортировать в эксель т.к. с блоками это муторно будет.

Наверно придется блоком обойтись.
tujn08 вне форума  
 
Непрочитано 03.08.2016, 11:01
#43
Владимир_М


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


Ничего не понял..
Цитата:
Сообщение от tujn08 Посмотреть сообщение
Я создал свой стиль, добавил в палитру.
1) Заголовки не сохраняются
т.е. вот это понятно, не понятно при чем здесь программирование?
Цитата:
Сообщение от tujn08 Посмотреть сообщение
2) при программном (или del) стирание ячеек, сбрасывается форматирование - формат заблокирован (как так-то?)
понятно, что все-таки программирование присутствует на каком-то этапе, но остальное - со сбросом форматирования, не понятно...
Цитата:
Сообщение от tujn08 Посмотреть сообщение
3) после программного заполнения таблицы хотел экспортировать в эксель т.к. с блоками это муторно будет.

Наверно придется блоком обойтись.
вообще не понятно, при чем здесь эксель и блоки? еще ничего не поняли про таблицы и стили...
Владимир_М вне форума  
 
Непрочитано 03.08.2016, 12:09
#44
tujn08


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


Пунктами указал на проблемы и задачи.
1) Заголовки не сохраняются - возможно сделать (без программирования) что бы сохранялись?
2) при программном (или del) стирание ячеек, сбрасывается форматирование - почему и как избежать этого?
Код:
[Выделить все]
 (progn ; удаление содержимого в ячейке - удаляет форматирование
(vl-load-com)
(setq obj (vlax-ename->vla-object (car (entsel))))
;(vla-DeleteСellContent obj 3 3)
(vla-deletecellcontent obj 0 0) ; 1A
)
3) экспортировать в эксель - причина по которой хочу работать с таблицей с учетом п.1 и 2
tujn08 вне форума  
 
Непрочитано 03.08.2016, 14:23
#45
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от tujn08 Посмотреть сообщение
при программном (или del) стирание ячеек, сбрасывается форматирование - почему и как избежать этого?
А если так
Код:
[Выделить все]
 (setq tblobj (vlax-ename->vla-object (car (entsel))))
(vla-SetText tblobj 0 0 "")
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 03.08.2016, 14:36
#46
tujn08


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


Цитата:
Сообщение от VVA Посмотреть сообщение
А если так
ну так-то да. Вопрос как избежать удаления форматирования при включенной блокировке. И вообще почему это происходит.
VVA, как вставить стиль из палитры? Вкладка "Pr_" , стиль "Каб.2"
tujn08 вне форума  
 
Автор темы   Непрочитано 03.08.2016, 16:48
#47
Do$

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


Цитата:
Сообщение от tujn08 Посмотреть сообщение
Вопрос как избежать удаления форматирования
Если я правильно понимаю о чем речь - то никак. Форматирование ячеек таблицы нещадно сбрасывается при каждом чихе. Я его постоянно программно восстанавливаю при программной вставке/создании/редактировании таблицы.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
Ответ
Вернуться   Форум 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