Forum

Author Topic: PythonScript - Как получить координаты Shape  (Read 5196 times)

lelic

  • Newbie
  • *
  • Posts: 4
    • View Profile
Добрый день.

Хотел получить получить координаты фигуры, поскольку я начинающий программист на Python, что то идет не так.
При попытке получить название Shape выдает ошибку

Code: [Select]
import PhotoScan
doc = PhotoScan.app.document
ss = doc.chunk.shapes
for sp in ss:
   print(sp.label)
   #for ver in sp.vertices:

Консоль
Code: [Select]
AttributeError: 'PhotoScan.Shape' object has no attribute 'label'
Где я что упустил помогите пожалуйста.
Версия программы 1.2.5 (2680)

Alexey Pasumansky

  • Agisoft Technical Support
  • Hero Member
  • *****
  • Posts: 14813
    • View Profile
Re: PythonScript - Как получить координаты Shape
« Reply #1 on: August 24, 2017, 10:21:00 AM »
Здравствуйте,

в версии 1.3.3 Ваш код будет работать. Возможно, в старой версии не было доступа к названиям шейпов через Python.

Координаты Вы можете получить следующим образом:

Code: [Select]
for ver in sp.vertices:
print(ver)
Каждая вершина - это двух- или трёх-компонентный вектор, в зависимости от того, если ли высота для вершин или нет (sp.has_z == True).
Best regards,
Alexey Pasumansky,
Agisoft LLC

lelic

  • Newbie
  • *
  • Posts: 4
    • View Profile
Re: PythonScript - Как получить координаты Shape
« Reply #2 on: August 24, 2017, 11:12:38 AM »
В качестве справочника я использую photoscan_python_api_1_2_5.pdf для версии программы 1.2.5

Code: [Select]
import PhotoScan
doc = PhotoScan.app.document
ss = doc.chunk.shapes

for sp in ss:
#print(sp.label)
for ver in sp.vertices:
print(ver)

Но этот код тоже выдает ошибку
Code: [Select]
AttributeError: 'PhotoScan.Shape' object has no attribute 'vertices'Почти использование всех атрибутов выдает эту " object has no attribute"

Может я неправильно выбираю шейпы?

Alexey Pasumansky

  • Agisoft Technical Support
  • Hero Member
  • *****
  • Posts: 14813
    • View Profile
Re: PythonScript - Как получить координаты Shape
« Reply #3 on: August 24, 2017, 11:54:04 AM »
Только что проверил на финальном релизе версии 1.2 (1.2.6) - данный код отработал корректно, включая и доступ к названию  шейпов.
Best regards,
Alexey Pasumansky,
Agisoft LLC

lelic

  • Newbie
  • *
  • Posts: 4
    • View Profile
Re: PythonScript - Как получить координаты Shape
« Reply #4 on: August 24, 2017, 12:14:01 PM »
Спасибо Алексей!

Так я понял на версии 1.2.5 эти атрибуты еще не реализованы, если даже реализованы они сырые.
Ну чтож, будем пробовать на новых версиях.