Перейти к публикации

Как получить координаты объекта?


U-304

Рекомендованные сообщения

Нужно, чтобы при запуске скрипта создавался текстовый файл, содержащий координаты выделенных кривых (вернее точек по которым они построены).

Порядок действий такой:

-получаем активный документ (cur_doc=CATIA.GetActiveDocument)

-получаем выделение (cur_doc.Selection)

А вот как быть дальше непонятно. Есть там метод GetCoordinates но что-то он не пашет, или скорее я не понимаю как он работает и что возвращает.

:wallbash: Я уже задолбался - получил имя выделенного объекта, количество если их несколько но дальше этого не пошло.

P.S. я в этом новичок, так что извиняюсь за ламерский вопрос. :surrender:

Изменено пользователем U-304
Ссылка на сообщение
Поделиться на других сайтах


Щас все выглядит вот так:

Sub CATMain()

Dim current_doc As Document

Dim PointCoordArray(2)



Dim i As Integer

Open "c:\test.txt" For Output As #1

Set current_doc = CATIA.ActiveDocument

Set PointSelection = current_doc.Selection



For i = 1 To PointSelection.Count

	Print #1, PointSelection.Item(i).Reference.Name,

	PointSelection.Item(i).GetCoordinates PointCoordArray

	For j = 0 To 2

  Print #1, PointCoordArray(j),

	Next

	Print #1, ""

Next



Print #1, ""

Print #1, "End of selection"

Close #1

End Sub
Пока подразумевается, что выделены сами точки и нужно только извлечь их координаты. Но метод GetCoordinates возвращает нули. Объясните плз, где я ошибся. :doh:
Ссылка на сообщение
Поделиться на других сайтах

Вот так работает. В Part’е проверял, из-под Product’а по идеи то же должно.

Sub CATMain()

On Error Resume Next

Dim current_doc As Document

Dim PointCoordArray(2)



Dim i As Integer

Open "c:\test.txt" For Output As #1

Set current_doc = CATIA.ActiveDocument

Set PointSelection = current_doc.Selection

For i = 1 To PointSelection.Count

    'Dim point1 As Point

    Set point1 = PointSelection.Item(i).Value

    Err.Clear

    point1.GetCoordinates (PointCoordArray)

    If Err.Number = 0 Then

      Print #1, point1.Name

        For j = 0 To 2

         Print #1, PointCoordArray(j),

        Next

      Print #1, ""

    End If

Next



Print #1, ""

Print #1, "End of selection"

Close #1

End Sub
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...