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

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


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

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



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