Есть таблица в Нанокад 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: .ColCount”. Единственно возможный атрибут для чтения - это видимость.
Вопрос:
- Возможно ли вообще через COM на Python получить доступ к NanoCAD таблицам именно в версии 5.1?
- Есть ли официальное COM API по версии Нанокада 5.1?