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

Массовое удаление Wave линков в UG


ART

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

Вообщем ситуация такая, после создания проекта и воплощения его в металле, нужно массово удалить все Wave линки во всех деталях. Вопрос где искать или как это сделать? Лицензии на Advanced Assembly нет.

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


Сборки->WAVE->Просмотрщик связей между деталями.

Нажатием соответствующей кнопочки выделить все детали. В списке связей между деталями отфильтровать как нужно. И из этого списка WAVE связи можно массово разорвать в один клик.

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

Мужики если вас не затруднит дайте скриншот где эта хрень находится. В NX 6 я ее найти не смог.

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

valeo-ua

а если не удалять а заморозить связи?

Не важно, главное чтобы не было изменений без моего одобрения.

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

Мужики если вас не затруднит дайте скриншот где эта хрень находится. В NX 6 я ее найти не смог.

лицензию WAVE подключи и попробуй использовать роль с полным меню

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

N_town

лицензию WAVE подключи и попробуй использовать роль с полным меню

У меня нет возможности подключить такую лицензию. Есть еще варианты?

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

лицензию WAVE подключи и попробуй использовать роль с полным меню

А что это - лицензия на WAVE ???

По моему если есть лицензия на ассемблинг то есть и WAVE.

2 Art

Язычек ассемблинг есть в меню бар?

post-4421-1263361291_thumb.jpg

Как выставленны опции Castomize?

post-4421-1263361302_thumb.jpg[

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

Лицензий на WAVE несколько. То что вы тут рассматриваете - это обычный, самый простой WEVE, лицензия на него входит в мало-мальский BUNDLE (вашу коробчатую лицензию на НХ как модуль), думаю что начиная с лицензии MACH3.

Но есть еще так сказать advanced WAVE - позволяет включить меню "WAVE-режим" в навигаторе сборки, вы можете морозить WAVE делать его позиционно-независимым (позиционно независимый может быть есть и в обычной лицензии на WAVE).

Короче говоря - если ваша лицензия позволяет создавать WAVE линки - значит она сможет их разорвать ИМХО.

А лицензий на ассемблинг тоже куча разных, начиная от возможнсоти купить какой либо модуль для ассемблига (тот же расширенный WAVE), так же не стомт забывать про адвансед ассемблинг. :) Узнать какой у вас модуль ассемблинга (обычный или адвансед) можно изучив список модулей в вашем бандле заюзав утилитку License_Tools

Да и Diletant, выстави роли с полным меню (если не включены)

post-17615-1263364207_thumb.jpg

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

Да и Diletant, выстави роли с полным меню (если не включены)

А где вы увидели что у меня урезанная роль?

Да и галочка в кастомайзе влияет на другие вещи...

Ссылка на сообщение
Поделиться на других сайтах
Diletant я лишь предположил (не один я), не серчайте! :) Изменено пользователем mbm
Ссылка на сообщение
Поделиться на других сайтах

Diletant я лишь предположил

Мне просто интересны основания вашего предпложения... :blink:

(не один я)

А кто еще???

не серчайте!

Да господь с вами, даже в мыслях не было.

Вас видимо смутил мой никнейм :bleh:

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

Всем большое спасибо.

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

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

Art, встречный (нескромный) вопрос. А зачем рвать линки?

Какая цель преследуеться?

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

Art, встречный (нескромный) вопрос. А зачем рвать линки?

Какая цель преследуеться?

Тоже думал о том чтобы рвать линки в конце или в процессе проекта, проектировать\моделиться большие сборки невозможно с включенными линками, во 1х долгая загрузка, что не самое страшное, во 2х:

линки часто теряются, ломаются, детали по которым они строились модифицируются, а следовательно меняются ID элементов моделей с кот. построены WAVE, часто предсказать поведение WAVE, особенно в бол. сбоках бывает крайне тяжело. Сборка с вырубленными WAVE связями, при окончании проекта, подходит как минимум для возмоности создания картинок, быстрой загрузке и анализу (Check Mate, Зазоры и др.), ну и наконце, сильно изменить большую сборку при вкл. WAVE просто невозможно, Вы больше будите терять время на понимание и восстановление проблем, а работать с WAVE+Routing - невозможно при сборках от 10к компонент. ИМХО, о наболевшем.

Всем большое спасибо.

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

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

Тут выход только один я вижу - грузить в структуре, а дальше подгружать\закрывать по очереди сборки и рвать связи (чтобы не запутаться).

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

Всем большое спасибо.

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

Конечно нет

Но все средства для создания таких вещей в UG есть

можно собрать обычный exe и использовать в нем библиотеки UG

и запускать его из командной строки

Все необходимые функции для работы с WAVE UGOPEN имеются

Пример работы с WAVE

Как видно из кода удалить wave просто

UF_OBJ_delete_object

void mated_wfaces::build_wave_objects()

{ int irc;

  tag_t feature_tag, work_part_tag, work_part_occ_tag, face_proto_tag, part_occ_tag, xform_tag;



  try

  {

	work_part_tag=UF_ASSEM_ask_work_part();

	work_part_occ_tag=UF_ASSEM_ask_work_occurrence();



	part_occ_tag=UF_ASSEM_ask_part_occurrence(face1_planar_tag);

	if(part_occ_tag != work_part_occ_tag) 

	{

	face_proto_tag=UF_ASSEM_ask_prototype_of_occ(face1_planar_tag);

	irc=UF_SO_create_xform_assy_ctxt(work_part_tag, part_occ_tag, work_part_occ_tag, &xform_tag);

	if(irc) throw ug_err(THIS_FILE, __LINE__, irc);

	irc=UF_WAVE_create_linked_face(face_proto_tag, xform_tag, work_part_tag, false, &feature_tag);

	if(irc) throw ug_err(THIS_FILE, __LINE__, irc);

	feature_wave_tags.push_back(feature_tag);

	irc=UF_WAVE_map_source_to_link_geom(feature_tag, face1_planar_tag,

										&wface1_planar_tag);

	if(irc) throw ug_err(THIS_FILE, __LINE__, irc);

	}



	part_occ_tag=UF_ASSEM_ask_part_occurrence(face2_planar_tag);

	if(part_occ_tag != work_part_occ_tag) 

	{

	face_proto_tag=UF_ASSEM_ask_prototype_of_occ(face2_planar_tag);

	irc=UF_SO_create_xform_assy_ctxt(work_part_tag, part_occ_tag, work_part_occ_tag, &xform_tag);

	if(irc) throw ug_err(THIS_FILE, __LINE__, irc);

	irc=UF_WAVE_create_linked_face(face_proto_tag, xform_tag, work_part_tag, false, &feature_tag);

	if(irc) throw ug_err(THIS_FILE, __LINE__, irc);

	feature_wave_tags.push_back(feature_tag);

	irc=UF_WAVE_map_source_to_link_geom(feature_tag, face2_planar_tag,

										&wface2_planar_tag);

	if(irc) throw ug_err(THIS_FILE, __LINE__, irc);

	}





	wface_cylindrical_tags.reserve(face_cylindrical_tags.size());

	for(std::vector<tag_t>::iterator ii=face_cylindrical_tags.begin();

		ii!=face_cylindrical_tags.end(); ++ii)

	{ tag_t wave_face;

	part_occ_tag=UF_ASSEM_ask_part_occurrence(*ii);

	  if(part_occ_tag != work_part_occ_tag) 

	  {

	  face_proto_tag=UF_ASSEM_ask_prototype_of_occ(*ii);

	  irc=UF_SO_create_xform_assy_ctxt(work_part_tag, part_occ_tag, work_part_occ_tag, &xform_tag);

	  if(irc) throw ug_err(THIS_FILE, __LINE__, irc);

	  irc=UF_WAVE_create_linked_face(face_proto_tag, xform_tag, work_part_tag, false, &feature_tag);

	  if(irc) throw ug_err(THIS_FILE, __LINE__, irc);

	  feature_wave_tags.push_back(feature_tag);

	  irc=UF_WAVE_map_source_to_link_geom(feature_tag, *ii,

										  &wave_face);

	  if(irc) throw ug_err(THIS_FILE, __LINE__, irc);

	  wface_cylindrical_tags.push_back(wave_face);

	  }

	  else wface_cylindrical_tags.push_back(NULL_TAG);

	}

  }

  catch(base_err &e) { e.trace(THIS_FILE, __LINE__); throw; }

  catch(...)		 { base_err e(THIS_FILE, __LINE__, "System error"); throw e; }

}





void  mated_wfaces::delete_wave_objects()

{ int irc;



printf("delete_wave_objects %d\n", feature_wave_tags.size());

  try

  {

	for(std::vector<tag_t>::iterator ii=feature_wave_tags.begin(); ii!=feature_wave_tags.end(); ++ii)

	{

	irc=UF_OBJ_delete_object(*ii);

	if(irc) throw ug_err(THIS_FILE, __LINE__, irc);

	}

  irc=UF_MODL_update();

  if(irc) throw ug_err(THIS_FILE, __LINE__, irc);

  feature_wave_tags.clear();



  wface1_planar_tag=wface2_planar_tag=NULL_TAG;

	for(std::vector<tag_t>::iterator ii=wface_cylindrical_tags.begin(); ii!=wface_cylindrical_tags.end(); ++ii)

	*ii=NULL_TAG;

  }

  catch(base_err &e) { e.trace(THIS_FILE, __LINE__); throw; }

  catch(...)		 { base_err e(THIS_FILE, __LINE__, "System error"); throw e; }

}

А вообще я думаю проблема от неправильного использования wave

В сборке wave по идее не должно быть

Он используется только в контрольных структурах

Как вариант можно еще предложить отключить wave через настроечные файлы UG

чтобы те кто не умеет им пользоваться не имели возможности его создавать

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

Как вариант можно еще предложить отключить wave через настроечные файлы UG

чтобы те кто не умеет им пользоваться не имели возможности его создавать

Это правильно! :smile:

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

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

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

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

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

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

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

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

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

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

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



  • Сообщения

    • Viktor2004
      смена инструмента это по сути две процедуры. Первая это поиск инструмента. Выполняется по команде Tx Вторая это смена инструмента. Выполняется по команде M6 Если в программе в разных строчках пишутся эти команды, там все нормально Но принято их писать в одной строке. Тогда обе они будут выполняться одновременно. Но одновременно их выполнять нельзя. Сначала магазин должен найти инструмент и только потом его менять Для этого команда М6 обычно вызывает программу O9001 и уже в этой программе организуют ожидание завершения поиска инструмента. Контролируют это через макропеременные #1000 или #1001 или им подобные. Именно этот цикл ожидания я не вижу в программе автора вопроса. Что бы этот цикл ожидания крутился сам в себе и вышел из него когда макропеременная приняла нужное значение
    • maxx2000
      @Viktor2004 а разве сменщик это не отдельная  (пусть и виртуальная) ось и станок ждёт пока закончится движение? Может быть тупо ждёт пока придёт определенное число импульсов с датчика. Типа  каждый раз уменьшает счётчик на 1 и ждёт пока не получится нужное число? Ну и как бы может быть тупо задано время смены инструмента? Тогда и переходит к следующей строке.
    • Viktor2004
      я не могу понять в какой команде станок ожидает пока магазин найдет нужный инструмент
    • A_1
      В одной строке. T1 M6 Сейчас не могу сказать.
    • Viktor2004
      данная программа вызывается командой где М6 и Тх пишутся в одной строке или обязательно в в разных? это что за команды?
    • A_1
      Тогда он всегда будет перемещаться по X, Y. Мне нужно, чтобы это движение было только при смене на новый инструмент, но не на "текущий".
    • Viktor2004
      Производитель станка криво написал программу смены Одно то что N200 стоит выше чем N100 об этом говорит Вставьте перед M28 вот это   G30X0Y0  и в параметре 1241 пишите координаты X Y куда хотите что бы оси выходили Только значение для Z там не трогайте
    • ANDY159
      1. Уменьшаем зерно. 2. Увеличиваем предел прочности. 3. Увеличиваем относительное удлинение. 4. Увеличиваем ударную вязкость при -70 град. 5. Увеличиваем длительную жаропрочность. 6. Увеличиваем коррозионную стойкость. 7. Уменьшаем ТКЧ. 8. УБИРАЕМ БРАК.   Кому нужен качественный металл -  обращайтесь  svm-perm@mail.ru
    • A_1
      Да, есть опасность столкновения с высокой заготовкой - приспособлением. В программе смены инструмента два варианта её выполнения, и предполагаю, что это связано с проверкой того, что в шпинделе может находиться вызываемый инструмент. Почему всегда выполняется переход на кадр N200?
    • gudstartup
      а в чем опасность если ось Z в метре над столом меняет что там рука чего заденет? а так запишите в пар 1241 желаемые координаты и перемещайтесь туда после Z
×
×
  • Создать...