получение имен стилей ячеек существующего табличного стиля

Автор Тема: получение имен стилей ячеек существующего табличного стиля  (Прочитано 17430 раз)

0 Пользователей и 5 Гостей просматривают эту тему.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Получил ответ из ADN DevHelp. Метод GetCellStyles не работает ни в VisualLisp, ни в VBA, ни в .NET. Это баг, который будут исправлять. Так что предложенный мной вариант на данный момент единственное решение.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Получил ответ из ADN DevHelp. Метод GetCellStyles не работает ни в VisualLisp, ни в VBA, ни в .NET. Это баг, который будут исправлять. Так что предложенный мной вариант на данный момент единственное решение.
Читать не пробовал, насколько я помню (т.к. не требовалось) а создавать стили ячеек средствами .NET в табличном стиле приходилось. Для AutoCAD 2009 некоторые вещи мне когда-то сделать не удалось. А вот в AutoCAD новее чем 2009, API был измен, в виду чего для более новых версий ограничение было снято (автор указал, что использует версию 2014).

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

См. строки 401-404 кода здесь - по аналогии можно попробовать читать, а не назначать (сейчас под рукой акада у меня нет).

Нередко управляемые сборки я компилирую лишь для двух вариантов: для AutoCAD 2009 и для AutoCAD 2013. Они успешно работают в AutoCAD 2009-2016. Так что в плане совместимости с версиями AutoCAD, управляемые плагины находятся в более выгодном положении.

Метод GetCellStyles не работает ни в VisualLisp, ни в VBA, ни в .NET. Это баг, который будут исправлять.
Не работает во всех версиях акада до 2016 включительно?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Не работает во всех версиях акада до 2016 включительно?
Именно.
средствами .NET
Это ключевые слова. Средствами не-lisp (ObjectARX) я уже дал решение. Баг относится к COM/ActiveX-интерфейсу, а в ObjectARX/AutoCAD .NET API его нет.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дима_

  • ADN Club
  • ****
  • Сообщений: 473
  • Карма: 66
Когда я первый раз увидел эту тему - была мысль порыть dxf - но руки так и не дошли - думаю их там можно вытащить почти со 100% вероятностью.
з.ы. кстати, а автодеск в этом разрезе помочь не может?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
была мысль порыть dxf
Я "порыл". Но на полдороги плюнул на это дело. В DXF-файле действительно есть такая информация. Но из lisp'а/ObjectARX доступа к ней через DXF не видно (во всяком случае я сходу не нашел). Если средствами ObjectARX/AutoCAD .NET API этот вопрос решается, то зачем слишком усложнять?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Macondo

  • ADN OPEN
  • **
  • Сообщений: 57
  • Карма: 1
Можно ли средствами vlisp\active-x задать стиль для первой строки (или для каждой ячейки первой строки) стиль "Header"? Может, через vla-SetCellStyle (не нашёл информации по передаваемым параметрам).
P.S. Нашёл:
Код - Auto/Visual Lisp [Выбрать]
  1.  (vla-SetCellStyle vla-table 0 0 "_Header")
« Последнее редактирование: 21-01-2016, 20:02:16 от Macondo »

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Информация вообще-то вся в документации:
Цитировать
Signature

object.SetCellStyle nRow, nCol, szCellStyle

Object

Table
The objects this method applies to.

nRow

Long; Input-only
The row number of the cell to set.

nCol

Long; Input-only
The column number of the cell to set.

szCellStyle

String; Input-only
The cell style to set.

Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение