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

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


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 пользователей

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

  • Сообщения

    • Killerchik
      Если нужно что-то поменять, выкладывайте фото экрана станка, я думаю можно будет дистанционно Вам объяснить, как отредактировать.
    • bubl leg
      Всем доброго! Вопрос следующий: мне тут по одному из прошлых вопросов сильно помогли: как измерить длину кривой - показали инструмент, который я в упор не видел:-D А вот сейчас у меня возникла потребность наоборот: уменьшить длину произвольной кривой, меняя цифры в настройках. Возможно такое? Скажем, есть у меня хитрая кривая в виде произвольной загогулины. И чтобы не вручную менять её размеры по ХУ, постоянно снова и снова замеряя получившуюся длину и подгоняя таким образом длину под свои потребности, а чтобы вот так: увидеть длину в настройках - вбить туда новую цифру и длина кривой будет соответственно уменьшена. При этом (вероятно) урежется сама кривая и будет показан только её сегмент - ничего страшного, мне именно это и надо. Буду благодарен любому совету!
    • Mixon513
      Всем спасибо что тыкнули пальцем. Действительно производитель перепутал данные вывода.
    • Mixon513
      Спасибо, в понедельник попробую. 
    • Guhl
      И всё-таки поучаствовали )))
    • Viktor2004
      Я изначально не участвовал в этой теме потому что во первых это не влияет на работоспособность станка, а во вторых, задача это элементарно решается на горячем станке, где видно в режиме онлайн в каких регистрах хранится номера стаканов, в каких номера инструментов и из каких регистров идет отображение на индикатор. Любой сервисник который находится у станка решит эту задачу за десять минут. А тут копаться в ладдере в котором ничего не отображается можно сутками, перенося в уме свои догадки что там могло бы быть.
    • Killerchik
      @Mixon513 Вы можете например на станке открыть ладдэр, поискать поиском R65 или Р0225 и посмотреть логику формирования этого значения.
    • rasta89
      Всем привет. Проводил в LS-Dyna расчет на усталость по SN. Получил результаты Damage и Life:   Но вот Expected Fatigue cycles = 0. Кто-нибудь может объяснить подробно почему? Может быть что-то упустил в картах, куда обратить внимание? Спасибо.  
    • Guhl
      Это надо сидеть и разбираться с логикой, которая в ладдере прописана разработчиками. Возможно, что править надо. Комментарии там на английском, вам повезло. В Яндексе задавать вопросы бесполезно на этот счет
    • Mixon513
      Подскажите где нужно менять параметры. Или как задать вопрос яндексу?
×
×
  • Создать...