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

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

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

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

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

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

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

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


Создавать даже "навороченные" таблицы и табличные стили в AutoCAD достаточно просто. Я когда-то разместил в Интернете подробный код по работе со всеми стилями, в т.ч. и со стилями таблиц (рассмотрена каждая опция диалоговых окон настроек стилей) - возможно что-то интересное для себя вычитаешь. Может ещё пригодится это, если задумаешь с буфером обмена работать... У меня на работе есть когда-то давно написанное мною приложение, которое в AutoCAD строит таблицы на основе их XML описания (аналог WPF), а так же сохраняет уже существующие таблицы AutoCAD в XML файл. Именно в таких XML я и прописывал нужное форматирование, объединения, стили и т.п. Если интересно - могу выложить исходники (но это уже на след. неделе, т.к. я уже дома).

Вынесение табличных стилей и таблиц во внешний XML файл позволяет работать с этой информацией из внешних, независимых приложений (на мой взгляд это существенный плюс).
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 05.04.2013 в 20:12.
hwd вне форума  
 
Автор темы   Непрочитано 05.04.2013, 21:39
#3
Do$

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


Цитата:
Сообщение от hwd Посмотреть сообщение
Я когда-то разместил в Интернете подробный код по работе со всеми стилями, в т.ч. и со стилями таблиц (рассмотрена каждая опция диалоговых окон настроек стилей)
Вот это просто подарок! Спасибо, сейчас буду разбираться в нем.
Цитата:
Сообщение от hwd Посмотреть сообщение
У меня на работе есть когда-то давно написанное мною приложение, которое в AutoCAD строит таблицы на основе их XML описания (аналог WPF), а так же сохраняет уже существующие таблицы AutoCAD в XML файл. Именно в таких XML я и прописывал нужное форматирование, объединения, стили и т.п. Если интересно - могу выложить исходники (но это уже на след. неделе, т.к. я уже дома).
Интересно!
Do$ вне форума  
 
Непрочитано 07.04.2013, 13:09
1 | #4
WhiteShark


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


Может имеет смысл обратиться к AlxD. Возможно, он уже реализовал ваши задумки в своей ATable http://alxd.it-dept.ru/ru/shareware/...0for%20AutoCAD
WhiteShark вне форума  
 
Автор темы   Непрочитано 07.04.2013, 13:48
#5
Do$

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


Все, что может быть интересно в этом пакете для меня, это:
Цитата:
COM модель для работы с таблицами программно (новинка!)
Но, в принципе, нынешнего стандартного функционала по работе с таблицами достаточно и без примочек. Хотя, могу ошибаться, т.к. подробно не изучал возможности ATable.
Тут еще другой момент. К сожалению, в реальных условиях очень сложно вписаться в рамки какого-то конкретного стиля таблицы. Более того, часто нет этого единого стиля даже если говорить об одной конкретной ведомости. Далеко не все формы прописаны в ГОСТах, а даже если прописаны, то с течением времени реальные таблицы "эволюционировали" по отношению к ГОСТовским, обросли новыми столбцами, строками и пр. элементами оформления. Бывает, что требования к одной и той же таблице ведомостей у разных заказчиков кардинально различаются. Делается проект дя Лен.области, к примеру - требования одни, для Краснодарского края - другие, для Сибири - третьи. Как учесть это в своей программе? Закладывать разные шаблоны таких таблиц. А как подготовится к тому, что требования могут появиться новые/поменяться? Заложить в программу возможность кастомизации шаблонов. ИМХО, в серьезном продукте без этого никак. В более-менее простых программах новые шаблоны добавляются разработчиками программы (если договоритесь). Как в этом случае может помочь ATable? Думаю, что никак.

P.S. Еще раз внимательно изучил страницу программы.
Ключевые моменты:
Цитата:
Платформа:
AutoCAD 2002, 2004, 2005, 2006
Цитата:
С появлением AutoCAD 2004 многим российским инженерам показалось, что появившийся в нем объект Table (Таблица) решит эти проблемы целиком и полностью. Но, как оказалось, таблицы оказались мало функциональны и трудно подстраиваемы под российские нормы и стандарты. Выпуск AutoCAD 2005 и 2006 не решил проблему, а только показал, что ее решения ожидать не приходится.

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

ATable for AutoCAD является удобным, мощным приложением, обладающим рядом уникальных функций и ориентированным на российского пользователя. Удобство ATable подтверждается тем, что все его команды и действия аналогичны командам Microsoft Word и Excel.

В 2010 версии Автокада функционал для работы с таблицами существенно расширился. Смысла в таком приложении стало гораздо меньше.
Цитата:
Отделу САПР современного предприятия будет интересно узнать, что стили (это отдельный файл с расширением ats) можно создавать и помещать в общедоступную сетевую папку. Это дает огромные возможности по стандартизации и совершенствованию таблиц на предприятии.

А вот это гораздо интереснее! Практически, то что нужно! Но этот функционал, думаю, проще самому реализовать.
Собственно, по сути, это то же самое, что и:
Цитата:
Сообщение от hwd Посмотреть сообщение
приложение, которое в AutoCAD строит таблицы на основе их XML описания (аналог WPF), а так же сохраняет уже существующие таблицы AutoCAD в XML файл. Именно в таких XML я и прописывал нужное форматирование, объединения, стили и т.п.

Последний раз редактировалось Do$, 07.04.2013 в 14:25.
Do$ вне форума  
 
Непрочитано 07.04.2013, 17:37
#6
hwd

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


По моему скромному мнению, с таблицами AutoCAD (во всяком случае 2009 - 2014) даже "родными" средствами можно сделать почти всё, что может потребоваться пользователю. Если чего-то не хватает в "родном" функционале, то реализовать это можно и самому, программно (API позволяет это сделать).

По указанной выше ссылке вижу длинные перечисления различных "возможностей" ATable, которые либо и так бесплатно присутствуют в таблицах (т.е. перечислена по сути "вода"), либо которые особо-то и не нужны (т.е. их отсутствие нисколько не мешает).
Цитата:
Стоимость ATable for AutoCAD вне конкуренции.
Возможно я плохо смотрел, но как раз эта самая "стоимость" нигде и не указана, поэтому насчёт "конкуренции" судить сложно... Offtop: Покупать ATable я не намерен
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 08.04.2013, 17:08
#7
KennyMckormik


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


"Цена ATable for AutoCAD вне конкуренции — всего 700 рублей!"

«САПР и графика» 4'2005

свежее не нашол
__________________
Timeo Danaos et dona ferentes :eek:

Последний раз редактировалось KennyMckormik, 10.04.2013 в 17:25.
KennyMckormik вне форума  
 
Непрочитано 08.04.2013, 17:28
#8
hwd

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


Цитата:
Сообщение от KennyMckormik Посмотреть сообщение
"Цена ATable for AutoCAD вне конкуренции — всего 700 рублей!"
«САПР и графика» 4'2005
8 лет назад... не самые "свежие" данные.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 16.04.2013, 08:09
#9
Alxd

Нач. отдела САПР
 
Регистрация: 14.05.2004
Тюмень
Сообщений: 466
<phrase 1=


Коллеги!

ATable давным давно стал бесплатным. http://alxd.it-dept.ru/ru/download
Обновлять описание на сайте некогда, поэтому обновляется только раздел Download.

ATable обладает COM интерфейсом и Lisp интерфейсом для создания таблиц. Все доп. модули к ATable, которые поставляются с ним же, написаны с использованием COM и Lisp.
Примеры на Lisp можно подглядеть в исходном коде модуля преобразования нарисованных вручную таблиц в таблицу ATable.
Примеры на COM... да какие там примеры, если Вы пишете на C#, подключите ATable и поглядите его объектную модель. Она простая как "три копейки". Несколько коллекций, несколько объектов и куча свойств у каждого.

Персонально для Do$. Стили таблиц в ATable может создавать сам пользователь программы. Сколько? Да сколько угодно! Хоть тысячу. Можете под каждого заказчика свои стили создать. Можете под каждый ГОСТ. Можете под каждого пользователя. Все зависит от Ваших потребностей и культуры проектирования. Можно даже сделать некий универсальный стиль, представляющий собой таблицу с избытком колонок, а потом в любой момент удалять лишние колонки и применять к ней нужный в конкретный момент стиль. В общем, что касается идеологии работы с таблицами, AutoCAD отдыхает

Кстати, любой модуль написанный программистом можно обернуть в add'on к ATable.
Код:
[Выделить все]
 
(defun c:atExchangeGrid2Grid( / )
  '("Импорт ручной таблицы..." "Импорт таблицы из чертежа созданной ручным способом или разбитую командной _explode" "alxd:atInterfaceGrid2Grid")
)

(defun alxd:atInterfaceGrid2Grid( / app tmp oSheets oSheet oDict xx xx2 coords topright botleft)
  (setq 
    app (vlax-get-object "AlxdGrid.AlxdApplication")
    oSheets (vlax-get-property (vlax-get-property app 'AlxdEditor) 'AlxdSpreadSheets)
    tmp (vlax-get-property oSheets 'Active)
    oSheet (vlax-get-property oSheets 'Items tmp)
  )

  ...

  (vlax-release-object oSheet)
  (vlax-release-object oSheets) 
  (vlax-release-object app)
  
  (princ)
)
И все! Вместо ... впишите свой код управления таблицей.

Аналогично на C#:
Код:
[Выделить все]
 
        [LispFunction("alxd:atInterfaceTDMS2Grid")]
        public void ExecFunction(ResultBuffer args) // This method can have any name
        {
            frmDialog dlg = new frmDialog();
            Autodesk.AutoCAD.ApplicationServices.Application.ShowModalDialog(null, dlg);
        }

        // LispFunction is similar to CommandMethod but it creates a lisp 
        // callable function. Many return types are supported not just string
        // or integer.
        [LispFunction("c:atExchangeTDMS2Grid", "c:atExchangeTDMS2Grid")]
        public ResultBuffer CallFunction(ResultBuffer args) // This method can have any name
        {
            ResultBuffer rb = new ResultBuffer(new TypedValue((int)LispDataType.Text, "Импорт из TDMS..."), new TypedValue((int)LispDataType.Text, "Импорт типовых таблиц из TDMS в текущую таблицу ATable"), new TypedValue((int)LispDataType.Text, "alxd:atInterfaceTDMS2Grid"));
            return rb;
        }
Программисту и так понятно, что надо заменить на свой код

В частности, таким образом мы создаем типовые таблицы для листа общих данных на основе данных, хранящихся в TDMS. Например, ведомость рабочих чертежей. Один клик и ведомость уже готова!

Можно создавать и изменять таблицы даже чистым Lisp'ом (без COM)! Вот только под руками примера нет. Да и мало кто станет так делать, когда под руками C#.
Alxd вне форума  
 
Непрочитано 16.04.2013, 08:27
#10
hwd

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


Цитата:
Сообщение от Alxd Посмотреть сообщение
Обновлять описание на сайте некогда, поэтому обновляется только раздел Download.
Зря, поскольку решение о том, скачивать или не скачивать, посетитель зачастую принимает после того, как ознакомится с описанием.

Цитата:
Сообщение от Alxd Посмотреть сообщение
Стили таблиц в ATable может создавать сам пользователь программы. Сколько? Да сколько угодно! Хоть тысячу. Можете под каждого заказчика свои стили создать. Можете под каждый ГОСТ. Можете под каждого пользователя. Все зависит от Ваших потребностей и культуры проектирования. Можно даже сделать некий универсальный стиль, представляющий собой таблицу с избытком колонок, а потом в любой момент удалять лишние колонки и применять к ней нужный в конкретный момент стиль. В общем, что касается идеологии работы с таблицами, AutoCAD отдыхает
Стили таблиц AutoCAD могут включать в свой состав шаблоны, благодаря которым, создавая новую таблицу на основе этого стиля, пользователь сразу может получать заполненную и нужным образом оформленную заготовку, готовую к использованию. Вы учли это когда писали об "отдыхе"? Выше по ссылке я показал программный способ создания табличных стилей на базе шаблона. Шаблон - это заранее созданная пользователем таблица со всеми необходимыми заголовками, объединениями, формулами, и базовым наполнением, которую стиль таблиц запоминает и включает в свой состав (поясняю на всякий случай).

Учитывая обозначенное мною выше уточнение, любопытно узнать, в чём ATable может перекрыть функционал стандартного Table?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 16.04.2013, 11:01
#11
Do$

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


Цитата:
Сообщение от Alxd Посмотреть сообщение
В общем, что касается идеологии работы с таблицами, AutoCAD отдыхает
Честно говоря, не увидел в Вашем описании ничего, чего сам AutoCAD делать не умеет. Собственно, hwd постом выше расписал почему.

Создание стилей проблемой особо не является (спасибо hwd за хороший пример). Можно и вовсе обойтись без создания стиля - просто программно настроить каждую ячейку. Все необходимые инструменты для этого в NET API есть. Больше сложности вызывает "объяснить" программе в какой столбец какие данные располагать, в зависимости от созданного/выбранного пользователем стиля. Не хочется каждый раз переписывать код под конкретный стиль.

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

Последний раз редактировалось Do$, 16.04.2013 в 11:11.
Do$ вне форума  
 
Непрочитано 16.04.2013, 11:07
#12
hwd

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


Насколько я знаю, ГОСТы чётко определяют состав ведомостей и спецификаций, а так же их внешний вид. Т.о. один раз создав шаблон для каждой ведомости, нет необходимости создавать её альтернативные стили, меняя цвета линий таблиц (или ещё чего-то там) т.к. это приводит к нарушению единообразия в проекте. Я за единообразие (нормоконтроль - тоже).
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 16.04.2013 в 11:13.
hwd вне форума  
 
Автор темы   Непрочитано 16.04.2013, 11:15
#13
Do$

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


Смотря в какой специальности... Есть ГОСТы на таблицы, в которых указано "допускаются в таблице при необходимости дополнительные графы: <список граф>". И тут уже есть простор для творчества. Есть такие формы ведомостей, которые и вовсе не гостированы, а делаются "как привыкли". только вот все привыкли по разному...
Do$ вне форума  
 
Непрочитано 16.04.2013, 11:17
#14
hwd

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


У нас пока, слава Богу, я такого не встречал. Наши нормоконтроллёры чётко обозначили набор ведомостей и спецификаций (все взяты из действующих ГОСТов), используемых в нашей организации.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 16.04.2013, 11:41
#15
Do$

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


Это вам повезло Обычно на мой вопрос к проектировщикам "откуда такая форма ведомости?" отвечают, что либо взята с проектов организации, задающей тон в отрасли, либо сами придумали или еще что-то из этой серии. Как правильно, они сказать не могут, потому как стандарта на это нет. Вот поэтому и возникают мысли сделать универсально. Либо оставить эту идею, выдавать расчетные данные по наиболее полной версии, а окончательное формирование выполнять вручную. Но тогда очень много времени уходит на это, эффект применения программы уменьшается сильно.
Do$ вне форума  
 
Непрочитано 16.04.2013, 12:15
#16
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Цитата:
Честно говоря, не увидел в Вашем описании ничего, чего сам AutoCAD делать не умеет
Это он теперь делать умеет. Напомню, что ATable появилась задолго до того, как подобные таблицы включили в AutoCAD.
ShaggyDoc вне форума  
 
Непрочитано 16.04.2013, 12:18
#17
hwd

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


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Это он теперь делать умеет. Напомню, что ATable появилась задолго до того, как подобные таблицы включили в AutoCAD.
Я понимаю это. Поскольку мы живём настоящим, а не прошлым, то интересует именно текущее положение вещей. В моём случае это AutoCAD 2009 и выше (т.е. последние шесть версий).
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 18.04.2013, 16:28
#18
Alexeipost


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


Автокад медленно и плохо работает с таблицами. У меня такая мысль: 1. Создаю связь с данными (данные берутся из экселя). 2. Программа должна делать таблицу на основе связи с данными, высоту строки ставить 800, размер шрифта 300, выравнивание - второй столбец левый край по центру с отступом 200, а все остальные середина по центру и разбивать эту таблицу (explode).
Alexeipost вне форума  
 
Непрочитано 18.04.2013, 16:55
#19
hwd

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


Цитата:
Сообщение от Alexeipost Посмотреть сообщение
Автокад медленно и плохо работает с таблицами.
Медленно - да. Плохо - понятие относительное.
Цитата:
Сообщение от Alexeipost Посмотреть сообщение
разбивать эту таблицу (explode).
Вот это действительно плохо, ибо превращать чертёж в мусор нехорошо...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 19.04.2013, 08:51
#20
Alexeipost


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


Для меня "медленно" - это:
В таблице вставленной из экселя (сделана связь) размером 600 строк и 10 столбцов, чтобы отредактировать формат ячейки (допустим центрирование слева по центру сделать) надо ждать 25-30 секунд.
"Плохо" - для меня это медленно!
К сожалению такие таблицы не редкость. Была таблица на 2000 строк - пришлось разбивать на 4 автокадовских файла. (В первом файле строки от 1 до 500, во втором от 501 до 1000 итд.).
В спецификацию обычно 100-120 строк - там ещё можно работать с таблицей. Но если больше, то уже не айс.
Разбивать таблицу - это не превращение чертежа в мусор, потому как тут нет чертежа! Тут только таблица, которая очень медленно работает. Чертежи в других файлах.
Alexeipost вне форума  
 
Непрочитано 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,848


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

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


Стиль вставляется или создается? Это раз.
Второе: стиль и таблица с этим стилем - разные вещи, их путать нельзя.
__________________
Моя библиотека 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,992


Цитата:
Сообщение от 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