Чтение таблиц в nanoCAD 5.1 через COM API

Sibelectric
отредактировано 8 Apr Раздел: API

Есть таблица в Нанокад 5.1, созданная средствами нанокада. Т.е. это не импортированный объект-таблица AutoCAD, не созданный какими бы ни было сторонними плагинами.

Хочу прочесть таблицу Python-скриптом через COM API.

Когда я работал в автокаде, я делал это следующим образом:

app = win32com.client.Dispatch('AutoCAD.Application')


aDoc = app.ActiveDocument

mSp = aDoc.ModelSpace

selection = aDoc.SelectionSets.Add("Таблицы")

selection.SelectOnScreen( win32com.client.VARIANT(

VT_ARRAY | VT_I2, [0]), win32com.client.VARIANT(

VT_ARRAY | VT_VARIANT, ['ACAD_TABLE']))

Далее я мог просто пройтись по этому выбору и для каждой таблицы вывести в консоль число столбцов, к примеру:

for table in selection:

print(table.columns)

Когда я пробую это сделать в Нанокаде 5.1:

app = win32com.client.Dispatch('NanoCAD.Application')

aDoc = app.ActiveDocument

mSp = aDoc.ModelSpace

selection = aDoc.SelectionSets.Add("Таблицы")

selection.SelectOnScreen( win32com.client.VARIANT(

VT_ARRAY | VT_I2, [0]), win32com.client.VARIANT(

VT_ARRAY | VT_VARIANT, ['table2']))

Таблицы выделяются. Но при попытке вывести число столбцов в каждой таблице, или получить доступ к любому атрибуту:

for table in selection:

print(table.ColCount)

Выдает ошибку о неизвестном атрибуте "AttributeError: <unknown>.ColCount". Единственно возможный атрибут для чтения - это видимость.

Вопрос:

  1. Возможно ли вообще через COM на Python получить доступ к NanoCAD таблицам именно в версии 5.1?
  2. Есть ли официальное COM API по версии Нанокада 5.1?

Тэги темы:

Комментарии