|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
28.02.2007, 11:56 | #1 | |
Как узнать номер ячейк табл Atable по коорд точки внутри нее
идущий по граблям
Регистрация: 26.05.2005
Сообщений: 5,095
|
||
Просмотров: 3522
|
|
||||
Нач. отдела САПР Регистрация: 14.05.2004
Тюмень
Сообщений: 466
|
Хмм.... Даже такое надо?! Неплохой вопрос.
Насколько я помню, такое вычисление у меня в интерфейс программиста не вынесено. Остается обратиться к свойстве таблицы и считать параметры рядов и колонок. Затем циклом их перебрать в том же лиспе. Ессно координаты сместить на точку вставки самой таблицы в WCS. Ну, а где координата совпадет, там и ячейка... У меня все это вычислено внутри .arx модуля. Не думал, что это потребуется программисту. Простите. В следующей версии поправлю. |
|||
|
||||
Lisp/VBA/VB.NET Hobbyist Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367
|
Цитата:
~'J'~ |
|||
|
|||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,095
|
Цитата:
Зачем, собственно, понадобилось: чтобы сделать маленькое окошко для быстрого редактирования отдельных ячеек (нужно при мелких правках достаточно большой таблицы). Сначала я хотел действовать "в лоб" - через nentsel и vla-get/put-textstring, но не тут-то было! Результат vla-put-textstring шел коту под хвост при открытии таблицы в редакторе Atable. Цитата:
Цитата:
Цитата:
>Fatty Большое спасибо за код, думаю, он еще пригодится. Но для других задач, где будут использоватся стандартные таблицы Акада. К таблицам Atable (это фактически безымянные блоки) vla-hittest неприменим |
||||
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,095
|
ALXD, не могли бы Вы привести пару примеров использования объектной модели Atable в ЛИСП'е?
У меня пока что получилось только импортировать AlxdGrid.tlb. Имена свойств, методов и констант стали подсвечиватся. Но воспользоваться ими не вышло. Например: Код:
PS В приведенных исходниках add-on'ов все операции производятся при открытом окне редактора ATABLE (как я понял). Меня в первую очередь интересует использование средств объектной модели при закрытом редакторе |
|||
|
||||
Нач. отдела САПР Регистрация: 14.05.2004
Тюмень
Сообщений: 466
|
А зачем импортировать библиотеку? Просто используй invoke-method, put/get-property!
Примерно так: ;get alxd atable object here (setq atObject (vlax-get-object "AlxdGrid.AlxdApplication")) ;check value (if (= atObject nil) (progn (alert (getlocal atableX2Glocal 30)) (exit) ) ) ; (vlax-dump-object atObject) ;get alxd atable spreadsheet here (setq atActiveSheet (vlax-get-property atObject 'AlxdEditor) atActiveSheet (vlax-get-property atActiveSheet 'AlxdSpreadSheets) wi (vlax-get-property atActiveSheet 'Active) atActiveSheet (vlax-get-property atActiveSheet 'Items wi) ) (if (= atActiveSheet nil) (progn (alert (getlocal atableX2Glocal 40)) (vlax-release-object atObject) (exit) ) ) ; (vlax-dump-object atActiveSheet) (setq ssets (vlax-get-property atActiveSheet 'Selections) wi (vlax-get-property ssets 'Count) ) чуть не забыл. в конце не забывайте (vlax-release-object ssets) (vlax-release-object atActiveSheet) (vlax-release-object atObject) |
|||