Плагины

Вопросы связанные с работой ГИС Аксиома
Аватара пользователя
Матвеич
Сообщения: 95
Зарегистрирован: 09 янв 2024, 14:43

Re: Плагины

Сообщение Матвеич » 28 мар 2024, 09:41

# Получение активного окна карты
active_map_view = axipy.view_manager.active

# Получение редактируемого слоя активного окна карты
editable_layer = active_map_view.editable_layer
# Получение таблицы редактируемого слоя
table = editable_layer.data_object

attributes = table.schema

attributes.append(attributes.string('new_attr')) # добавляет в конец
====================================================================
attributes.append(attributes.string('new_attr')) # добавляет в конец
AttributeError: 'Schema' object has no attribute 'string'
Аватара пользователя
Матвеич
Сообщения: 95
Зарегистрирован: 09 янв 2024, 14:43

Re: Плагины

Сообщение Матвеич » 28 мар 2024, 13:03

Александр ! Доброго времени суток !

Возможно ли чтобы при выполнении команд, в Гис Аксиома, они отображались бы в Консоль Python
(либо другом вспомогательном окне). Разработчики могут использовать это окно для того .чтобы увидеть
какие операторы и функции Python API , используются при выполнении различных команд ГИС Аксиома.

P.S. Это значительно облегчит жизнь разработчика.
Аватара пользователя
Андрей
Сообщения: 20
Зарегистрирован: 01 окт 2020, 11:40

Re: Плагины

Сообщение Андрей » 28 мар 2024, 14:38

Пример изменения структуры таблицы формата Tab:

Code: Select all

import axipy as axp

# Получение активного окна карты
active_map_view = axp.view_manager.active
# Получение редактируемого слоя активного окна карты
editable_layer = active_map_view.editable_layer
# Получение таблицы редактируемого слоя
table = editable_layer.data_object # type: axp.Table

# Изменение структуры таблицы формата Tab:

schema = table.schema # type: axp.Schema
# Код Integer
schema.append(axp.Attribute.integer("Код"))
# sem Char (100)
schema.append(axp.Attribute.string("sem", 100))
# h Decimal(10,3)
schema.append(axp.Attribute.decimal("h", 10, 3))
# new_attr string
schema.append(axp.Attribute.string("new_attr"))

# Прямое изменение схемы таблицы поддерживается только для форматов Tab и Shape.
table.schema = schema

Дополнительно прочитать про возможные операции со схемой (axipy.Schema) можно по ссылке: https://axioma-gis.ru/axipy/dev-guide/5 ... a.html#id3
Аватара пользователя
Александр
Сообщения: 521
Зарегистрирован: 18 апр 2019, 11:21

Re: Плагины

Сообщение Александр » 28 мар 2024, 15:01

Матвеич писал(а): 28 мар 2024, 13:03 Александр ! Доброго времени суток !

Возможно ли чтобы при выполнении команд, в Гис Аксиома, они отображались бы в Консоль Python
(либо другом вспомогательном окне). Разработчики могут использовать это окно для того .чтобы увидеть
какие операторы и функции Python API , используются при выполнении различных команд ГИС Аксиома.

P.S. Это значительно облегчит жизнь разработчика.
К сожалению, мы не можем реализовать данный подход в связи с высокой трудоемкостью этого процесса.
Мы изучили этот вопрос и пришли к выводу, что это будет для нас чрезвычайно сложно.
Аватара пользователя
Матвеич
Сообщения: 95
Зарегистрирован: 09 янв 2024, 14:43

Re: Плагины

Сообщение Матвеич » 28 мар 2024, 16:21

Уважаемый Андрей !
Благодарю Вас за помощь.
Всего то не учел :
import axipy as axp и
table.schema = schema

хотя у меня было : import axipy и работал по примеру из ссылок .... мудрено больно
Аватара пользователя
Андрей
Сообщения: 20
Зарегистрирован: 01 окт 2020, 11:40

Re: Плагины

Сообщение Андрей » 29 мар 2024, 13:01

"import axipy" и "import axipy as axp" делают одно и тоже, axp - это просто удобное сокращение. В коде можно использовать и тот и другой вариант - они равнозначны.

Code: Select all

>>> import axipy
>>> import axipy as axp
>>> axipy == axp
True
Аватара пользователя
Матвеич
Сообщения: 95
Зарегистрирован: 09 янв 2024, 14:43

Re: Плагины

Сообщение Матвеич » 01 апр 2024, 12:43

Доброго времени суток !!!

Андрей Благодарю Вас за помощь !!!

Форумчане вопрос : - "Возможно ли запустить файл *.exe (написан на Visual Basic) из Python API ?"
Аватара пользователя
gisamap
Сообщения: 291
Зарегистрирован: 18 окт 2019, 11:03

Re: Плагины

Сообщение gisamap » 01 апр 2024, 12:56

Добрый день.
Да - можно.
import subprocess
subprocess.run(["RegressionSystem.exe", "-config filename"])
https://stackoverflow.com/questions/159 ... ing-python
Аватара пользователя
Матвеич
Сообщения: 95
Зарегистрирован: 09 янв 2024, 14:43

Re: Плагины

Сообщение Матвеич » 01 апр 2024, 15:49

запускаю команды из консоли Python:
>>> import subprocess
>>> subprocess.run(["RegressionSystem.exe", "C:\DJOKER\Topik\TOOLS\geotools.exe"])

результат:

<console>:1: DeprecationWarning: invalid escape sequence \D
Unhandled Python Exception:
Traceback (most recent call last):
File "C:\Program Files\Axioma v5\bin\python\Lib\code.py", line 90, in runcode
exec(code, self.locals)
File "<console>", line 1, in <module>
File "C:\Program Files\Axioma v5\bin\python\Lib\subprocess.py", line 493, in run
with Popen(*popenargs, **kwargs) as process:
File "C:\Program Files\Axioma v5\bin\python\Lib\subprocess.py", line 858, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "C:\Program Files\Axioma v5\bin\python\Lib\subprocess.py", line 1327, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] Не удается найти указанный файл

какой именно файл не удается найти. Мой файл - "C:\DJOKER\Topik\TOOLS\geotools.exe"
вероятно команда : subprocess.run(["RegressionSystem.exe", "C:\DJOKER\Topik\TOOLS\geotools.exe"]) составлена мной неверно ?
Аватара пользователя
Матвеич
Сообщения: 95
Зарегистрирован: 09 янв 2024, 14:43

Re: Плагины

Сообщение Матвеич » 01 апр 2024, 15:53

Дополнение - я работаю в среде Python API ГИС Аксиома
Ответить