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

Модель или чертеж?


Klebanov

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

Подскажите, пожалуйста, как узнать с помощью API, что содержится в prt файле? 1)модель 2)чертеж или 3)модель/чертеж

Заранее спасибо!

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


Подскажите, пожалуйста, как узнать с помощью API, что содержится в prt файле? 1)модель 2)чертеж или 3)модель/чертеж

Заранее спасибо!

Вопрос не простой, чисто идеологически. Что значит чертеж или модель. По сути это разные документы и должны быть сделаны в разных файлах.

Другое дело узнать в модели есть листы чертежа или нет, потому что в чертеже всегда будет модель, если конечно мы говорим о трехмерных моделях в принципе.

То тут все просто, если есть листы чертежа, а на них виды это чертеж. Под рукой нет доки в UGOpen есть библиотеки UG_DRF и UG_DRAW. Непомню точно в каком есть функция возвращающая количество и таги листов чертежи, там же есть виды на чертежах.

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

Ну вот, например, у меня на входе PRT, в котором есть модель и чертежный лист к ней. На выходе мне нужно получить 2 файла TIFF:

-модель

-чертеж

вот такая проверка дает увидеть этот чертежный лист

object oDrawingSheets = oNXPart.GetType().InvokeMember("DrawingSheets", BindingFlags.GetProperty, null, oNXPart, null);

if (oDrawingSheets != null)

{

// Преобразуем объект в массив объектов

object[] oDrawingSheetsArray = (object[])oDrawingSheets.GetType().InvokeMember("ToArray", BindingFlags.InvokeMethod, null, oDrawingSheets, null);

// Если число элементов массива равно нулю - это значит что открыта 3D-модель детали или сборки

if (oDrawingSheetsArray.Length == 0)

{

//.....

}

else

{

// Попадаем сюда и делаем TIFF для чертежа

}

}

Модель я преобразую в чертеж следующим образом:

m_openSession = UFSession.GetUFSession();

UFDisp Disp = m_openSession.Disp;

Disp.BatchShade("C:\\test3.tif", 1920, 1080, UFDisp.ShadeMethod.HighQuality);

Проблема в том, что если в файле есть чертежный лист, то метод почему-то не работает

Собственно проблемы нет, если в PRT файле перед сохранением был оставлен режим "Start Modeling".

Подскажите, пожалуйста, как это сделать API функциями

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

Проблема в том, что если в файле есть чертежный лист, то метод почему-то не работает

Может из-за того что внешняя прога NX не работает с "визуализацией",

про это в справке где-то написано.

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

2 klebanov

А, кхм, напуркуа вот такой вот invoke надо делать:

object oDrawingSheets = oNXPart.GetType().InvokeMember("DrawingSheets", BindingFlags.GetProperty, null, oNXPart, null);

если есть поле (field или как там оно в шарпе правильно называтеся ... ) DrawingSheets ?

NXOpen.Drawings.DrawingSheetCollection oDrawingSheets = work_part.DrawingSheets;

Regardzzz ...

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

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

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

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

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

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

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

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

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

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

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



  • Сообщения

    • Jesse
      @ГЕЛА Ещё можно посчитать в балках и учесть влияние отверстия через коэффициент концентрации напряжений..) Но у вас отверстие на всю стенку, так что лучше, проще и быстрее посчитать всё это дело в оболочках как выше сказали. Скругления перехода от стенки к полке удалите и в запас считайте.
    • 5axisCNC
      Можно плоскость дна задать множеством вариантов например точка направление
    • mmaag
      Да, это из nc63 для one. Остальное надо смотреть в каталоге NC62, 63. Там описано много всякого виртуального софта, думаю, найдёте ссылки на что надо, если оно существует.
    • Guhl
      Это для sinumerik one? У 808 и 828 плк s7-200
    • mmaag
      https://www.dex.siemens.com/industrialsoftware/machine-tool-software/run-myvirtual-machine-operate?viewState=DetailView&cartID=&portalUser=&store=&cclcl=en_US&selected=industrialsoftware  
    • Guhl
      Я говорю про полноценный эмулятор, чтобы я на виртуальной панели чпу на кнопку нажимал и в виртуальном ладдере этот сигнал обрабатывался
    • Andrey_kzn
      В Step7 есть симулятор, называется PLCSim, работает хорошо, часто им пользуюсь. Особенно удобно, когда надо проверить какую-нибудь одну функцию, отладить её, а потом добавить в рабочий проект.
    • Guhl
      *SP - feed hold, сигнал в ладдере G8.5 (должен быть равен 1 для нормальной работы) SRN - program restart, сигнал G6.0 в ладдере (должен быть равен 0 для нормальной работы) Сигнал с датчика касания вероятно воздействует нас эти сигналы  
    • cnckarat
      Доброго времени суток, возникла проблема со станком, не выходит в референтные точки, выдает ошибку DS0021 START ERROR (ONE TOUCH MACRO), нашли описание ошибки, операция запуска макропрограммы не может быть принята 1) сигнал задержки подачи *sp равен 0. 2) генерируется сигнал тревоги. 3) сигнал srn равен 1. Станок benzinger со стойкой fanuc series 310is model a5, от куда начинать и что делать, пока не знаем. Найти sp и srn на станке не можем. В чем может быть проблема? От куда начинать и куда копать по данному вопросу? Вдруг кто сталкивался.
    • Guhl
      Мысли были попробовать, но поиск по этой теме не дал результата, поэтому не пробовал
×
×
  • Создать...