Обратная связь

Вопросы связанные с работой ГИС Аксиома
Ответить
Аватара пользователя
pahanbl4
Сообщения: 23
Зарегистрирован: 11 окт 2019, 08:55

Обратная связь

Сообщение pahanbl4 » 16 окт 2019, 10:51

Здравствуйте!

Есть ли возможность обратной связи из приложения в Axioma.GIS?
Ситуация: Есть кнопка на панели Axioma.GIS при нажатии на которую запускается приложение (из dll). Необходимо по нажатию кнопки в этом приложении выполнить определенные действия в запустившей его Axioma.GIS.

Допустим в Mapinfo, с помощью интерфейса IDispatch, можно подключиться к экземпляру MapInfo из которого была запущена dll.
Здесь же, как я понял COM-объектов нет и скорее всего такое провернуть не получится..

:cry:
Аватара пользователя
Артём
Сообщения: 12
Зарегистрирован: 07 июн 2019, 11:48

Re: Обратная связь

Сообщение Артём » 16 окт 2019, 11:23

Как самое простое решение - это сделать так, чтобы приложение из dll генерировало команды на Питоне, а уже из Питона (который идёт вместе с Аксиомой) исполнять эти команды функцией eval.

Более надёжное решение - написать обёртки для взаимодействия вашей dll с Питоном с помощью какого-нибудь генератора типа SWIG/SIP/Boost.Python/ и т.п.

На каком языке написана ваша dll ? Для решения этой задачи по взаимодействию с Аксиомой по-любому без дополнительной прослойки на Питоне не обойтись.
Аватара пользователя
pahanbl4
Сообщения: 23
Зарегистрирован: 11 окт 2019, 08:55

Re: Обратная связь

Сообщение pahanbl4 » 17 окт 2019, 09:12

Dll написана на c#. Я собственно и использую pythonnet для запуска кода питона из dll для других инструментов.
У меня есть решение, но оно не совсем удобное: надо запустить приложение из него запустить Axioma.GIS тогда всё будет хорошо.
Но хотелось запускать инструмент с панели Axioma.GIS.
Инструмент писался для Mapinfo и как мог я его адаптировал под Axioma.GIS.
Переписать dll с c# на python сейчас возможности нет..
Аватара пользователя
gisamap
Сообщения: 191
Зарегистрирован: 18 окт 2019, 08:03

Re: Обратная связь

Сообщение gisamap » 18 окт 2019, 08:08

pahanbl4 писал(а): 17 окт 2019, 09:12 Dll написана на c#. Я собственно и использую pythonnet для запуска кода питона из dll для других инструментов.
У меня есть решение, но оно не совсем удобное: надо запустить приложение из него запустить Axioma.GIS тогда всё будет хорошо.
Но хотелось запускать инструмент с панели Axioma.GIS.
Инструмент писался для Mapinfo и как мог я его адаптировал под Axioma.GIS.
Переписать dll с c# на python сейчас возможности нет..
Добрый день.
c# Dll , как я понимаю из описания pythonnet можно вызвать из python.
Calling .NET code from Python

Python for .NET allows CLR namespaces to be treated essentially as Python packages.

import clr
from System import String
from System.Collections import *

Мо поему есть даже примеры https://github.com/pythonnet/pythonnet/ ... ster/demo/
Аватара пользователя
pahanbl4
Сообщения: 23
Зарегистрирован: 11 окт 2019, 08:55

Re: Обратная связь

Сообщение pahanbl4 » 18 окт 2019, 10:32

Добрый день!
c# Dll , как я понимаю из описания pythonnet можно вызвать из python.
Calling .NET code from Python

Python for .NET allows CLR namespaces to be treated essentially as Python packages.
Это прекрасно.. но нет времени.
Пока сделаю через "универсальный интерфейс", а дальше посмотрим..

Спасибо!
Ответить