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

Как создать массив?


IBV

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

Коллеги,

подскажите как сделать?

Мне нужно, создать массив по кривой. Копировать нужно тело, что на картинке справа.

Ограничения:

Копировать тело нужно вращая вокруг оси цилиндра на какой-то угол (скажем 5 градусов) и соответственно перемещая его вдоль прямой.

Т.е. в каждая копия должна находтся в положении, когда красная грань тангенциальна образующей поверхности цилиндра, а зелёная грань параллельна его торцу.

Подчёркиваю - интересно узнать как это сделать в UG, пользователей других систем прошу не беспокоить.

post-76-1288970153_thumb.png

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


Коллеги,

подскажите как сделать?

Мне нужно, создать массив по кривой. Копировать нужно тело, что на картинке справа.

Ограничения:

Копировать тело нужно вращая вокруг оси цилиндра на какой-то угол (скажем 5 градусов) и соответственно перемещая его вдоль прямой.

Т.е. в каждая копия должна находтся в положении, когда красная грань тангенциальна образующей поверхности цилиндра, а зелёная грань параллельна его торцу.

Подчёркиваю - интересно узнать как это сделать в UG, пользователей других систем прошу не беспокоить.

Сделать можно с помощью модуля KBE

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

Сделать можно с помощью модуля KBE

не просветите как? ещебы и файлик глянуть.....сталкивался с подобной задачей но так и не допер как это сделать в ежике.

Спасибо.

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

.... создать массив по кривой ...

... пользователей других систем прошу не беспокоить.

Очень интересная задачка. Весь в нетерпении.

Про другие системы молчу как рыба об лед, (сам пока не решил), но надеюсь уважаемый BSV1 выложит в параллельной ветке иэящное решение.

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

Коллеги,

подскажите как сделать?

Мне нужно, создать массив по кривой. Копировать нужно тело, что на картинке справа.

Ограничения:

Копировать тело нужно вращая вокруг оси цилиндра на какой-то угол (скажем 5 градусов) и соответственно перемещая его вдоль прямой.

Т.е. в каждая копия должна находтся в положении, когда красная грань тангенциальна образующей поверхности цилиндра, а зелёная грань параллельна его торцу.

Подчёркиваю - интересно узнать как это сделать в UG, пользователей других систем прошу не беспокоить.

Сейчас UG под рукой нет

1) Адаптировать кривую чтобы получить к ней доступ в KBE

2) В навигаторе KBE создать аттрибут или несколько аттрибутов в виде списков где собрать данные необходимые для построения класса nx_block или ug_block - требуемые данные снять с кривой

3) Создать массив из nx_block и подставить туда значения из аттрибутов

Все пункты кроме 1 делаются исключительно через навигатор KBE

Как создать простейший массив

Откройте навигатор KBE

Выберете иконку Adopt exeist object и выберете кривую - наблюдайте что после адаптирования

кривая появится в навигаторе

Выберете в навигаторе корневой элемент root и нажмите правую кнопку мыши

Вывалится список

Add Attribute

В качестве name зададим n в качестве типа Integer

В поле Formula зададим 20

Это будет число точек на сплайне

Создадим еще один аттрибут c именем prop типа List

В поле формула введем ug_curve_askProperties()

Расположем курсор точно между скобок

В навигаторе встанем на нашу кривую которую адаптировали

Нажмем правую кнопку мыши и выберем Reference

ug_curve_askProperties( ug_spline_thru: );

Результат будет примерно таким

Данная функция возвращает List у которого 3 и 4 элементы являются стартовым и конечным параметром кривой

Создадим еще один аттрибут с именем pts типа List в котором насчитаем точки вдоль кривой количеством n

В поле формула зададим

For $a From 0 To n: By 1;

Append { ug_curve_askPointOnCurve(

ug_spline_thru:,

$a*(nth(4, prop:)-nth(3, prop:))/(n:) )

};

};

Здесь $a*(nth(4, prop:)-nth(3, prop:))/(n:) - формула для расчета параметра

где nth - функция которая вазвращает элемент списка

Append дабовляет слемент в список формируемый циклом For

Для создания массива блоков

В навигаторе встаем на элемент root

По правой кнопке мыши выбираем Add Child List Rule

В name filter выбираем класс nx_block

Редактируем требуемые поля как минимум нужно отредактировать

quantity

origin

Для ссылки на порядковый номер nx_block используется имя index:

Не забывать нажимать на зеленую галочку при редактировании аттрибутов nx_block

Все

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

Сейчас в NX6, появилась новая команда Move, которая как раз и решает

подобные задачи.

Сам не пользовался. Если IBV выложит файл - постараюсь сделать.

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

nut888

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

IgP

Сейчас в NX6, появилась новая команда Move, которая как раз и решает

подобные задачи.

"Сейчас" - это какая версия имеется в виду?

Сам не пользовался. Если IBV выложит файл - постараюсь сделать.

Если будет получаться, сделайте пожалуйста поворот чере 3 градуса, ладно?

Shnek_H-1.zip

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

А где в нём такое чудо? Не нашёл.

Главное меню->Edit->Move Object...

чтобы сейчас (начиная с NX6) найти любую команду (где она находится)

пользуйтесь "Command Finder" Главное меню->Help->Command Finder

но и это может не помочь ....

так как интерфейс у NX можно настроить как угодно.

но я задачку решил с помощью "Instance Geometry"

Главное меню->Insert->Associative Copy->Instance Geometry

к сожалению с угловым шагом не получается.....

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

IgP

К сожалению это не то.

Кстати, частично эта задача решена в SW. Там есть инструмент "вырезание телом". Но то работает, то не работает...

Но так, как в вашем файле - сделает точно.

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

IgP

К сожалению это не то.

А что не то?

Шаг не по углу (3 град.) ?

Ориентация не та ?

или что-то другое ?

Интересная задачка ....

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

А что не то?

1. Профиль канавки у меня не круглый. Это важно, но не очень.

2. Ширина профиля канавки у меня намного больше и местами она БОЛЬШЕ ШАГА ВИТКА.

3. Шаг - не принципиально, но хотелось бы ближе к требуемуму.

4. У вас размножен контур, а не тело. Я пробовал с телом - получается ерунда. Попробуйте размножить тело в моём файле.

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

1. Профиль канавки у меня не круглый. Это важно, но не очень.

2. Ширина профиля канавки у меня намного больше и местами она БОЛЬШЕ ШАГА ВИТКА.

3. Шаг - не принципиально, но хотелось бы ближе к требуемуму.

Честно говоря мало, что понял ...

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

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

4. Попробуйте размножить тело в моём файле.

так ведь размножил ...? в файле Shnek.zip - два файла, один мой чисто для примера,

другой Ваш, с размноженным телом,

да там нет выполнения углового шага (3 град.)

и в конце винтовой линии ориентация тела относительно цилиндра,

по крайней мере "непонятная" для меня.

но здесь возможны вар-ты:

- либо это из-за линии (она изначально из 4-х кусочков)

- а может так и должно быть

- может и я что-то пока не догоняю ......

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

Коллеги,

подскажите как сделать?

Мне нужно, создать массив по кривой. Копировать нужно тело, что на картинке справа.

Ограничения:

Копировать тело нужно вращая вокруг оси цилиндра на какой-то угол (скажем 5 градусов) и соответственно перемещая его вдоль прямой.

Т.е. в каждая копия должна находтся в положении, когда красная грань тангенциальна образующей поверхности цилиндра, а зелёная грань параллельна его торцу.

Подчёркиваю - интересно узнать как это сделать в UG, пользователей других систем прошу не беспокоить.

Попробовал сделать так:

1. Кривую созданную по закону рассек радиальными плоскостями

Таким образом получил многоточек

2. Создал компонент из прямоугольника со скруглениями

3. Вставил несколько компонент с условиями сопряжения "каждая копия должна находится в положении, когда красная грань тангенциальна образующей поверхности цилиндра, а зелёная грань параллельна его торцу." + выбрал на прямоугольнике точку привязки (там где начинается/кончается кривая), этой точкой привязываюсь к точкам, которые построил по пункту 1.

Замечание по поводу "красная грань тангенциальна образующей поверхности цилиндра" я сделал что красная грань касательная оси вращения. В данном случае это не важно, но при другой геометрии прямогугольника это может сказаться, но и это можно решить

Понимаю, что это нереально сделать руками, но автоматизировать можно.

Вот что получилось

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

Сейчас UG под рукой нет

1) Адаптировать кривую чтобы получить к ней доступ в KBE

2) В навигаторе KBE создать аттрибут или несколько аттрибутов в виде списков где собрать данные необходимые для построения класса nx_block или ug_block - требуемые данные снять с кривой

3) Создать массив из nx_block и подставить туда значения из аттрибутов

Что-то не получилось у меня, на пункте

For $a From 0 To n: By 1;

Append { ug_curve_askPointOnCurve(

ug_spline_thru:,

$a*(nth(4, prop:)-nth(3, prop:))/(n:) )

};

};

Выдал: The specified string contains a syntax error

Syntax error between here (List modifable) pts: For and here $a From 0 To n: By 1;

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

так ведь размножил ...? в файле Shnek.zip - два файла, один мой чисто для примера,

другой Ваш, с размноженным телом,

да там нет выполнения углового шага (3 град.) и в конце винтовой линии ориентация тела относительно цилиндра, по крайней мере "непонятная" для меня.

Да, пардон, не заметил. По поводу "непонятной" ориентации - про то и речь. Получается так, как получается и механизма управлением ориентацией в этой функции нет. Т.е. не подходит.

Честно говоря мало, что понял ...

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

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

Да, должен получиться шнек. Но не "как в мясорубке", а транспортный. Принцип совсем другой. Прогнать сечение по спирали (sweept) - там не прокатывает. Поверьте на слово - sweept не может создать тело с заданными условиями.

Понимаю, что это нереально сделать руками, но автоматизировать можно.

Так вот и пытаюсь понять, как автоматизировать. Руками - это аккурат до пенсии. И то можно не успеть.
Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Orchestra2603
      При чем здесь это? Речь не идет про эффективные или неэффективнеы алгоритмы. Вы утвержаете, что это просто невозможно.   При чем здесь первые или не первые, все или не все... Какое это имеет значение? У Ансис есть алгоритм Ланцоша, он находит столько, сколько запросите. В Маткаде - он да, находит все. Наверное, можно и не все, но я хз, как это делать. Я не понимаю, какое это имеет отношение к разговору.   Неа Ткните пальцем и объясните, в чем ошибка в конкретном рассуждении   Как я должен решать методом Гаусса задачу на собственные значения? Мне же не решения СЛАУ нужны! Их то, ясен пень, бесконечное множество для системы с вырожденной матрицей. Мне собственные значения нужны! Мне нужно базис найти, чтобы матрица (или матрицы в обобщенном случае) оператора была диагональной.   Сначала скажаите мне, зачем ее дать! В чем идея заключается? Вы все слюной брызжете, но ничего по делу еще не сказали. Какой-то нормальный контраргумент от вас можно толковый услышать?   Как еще изволите вас обслужить? Вы - полегче, уважаемый!
    • ДОБРЯК
      Вам нужно десять раз написать одно и тоже, чтобы вы поняли. Почитайте документацию к программе там же всё написано. Мне не сложно копировать...:=) Те алгоритмы которые вы используете находят все собственные числа и вектора. Для разреженных матриц это приводит к их заполняемости. Смекаете о чем я говорю. Или нужно еще разжевать? Во всех.   Решайте методом Гаусса. Матрица 2х2 в чем проблема сделать численную факторизацию любым методом? :=) Больше дела, меньше слов и букв...
    • mannul
      Скорость резания от 8 до 12 м/мин, подача 0,04 мм/зуб, глубина резания - 1,5 мм.
    • Orchestra2603
      " Стою на асфальте я, в лыжи обутый: То ли лыжи не едут, то ли я ..." (с)   1. Вы утверждаете, что для расчетов на СЗ и СВ в случае вырожденной матрицы жесткости нужно провести ее факторизацию. Без нее - никак! Непонятно, какую и зачем, но надо. Ок, допустим.  2. @Jesse,  я, @Fedor, да и вы сами показываете, что таки СЗ определяются для вырожденной матрицы. Значит, либо ваше утверждение про факторизацию неверно, либо она таки делается тихонько себе за кадром. 3. Еще одно наблюдение... Матлаб говорит, что он делает QZ разложение для матриц, у которых нет положительной определенности, т.е. для которых не работает разложение Холецкого. При этом опять же с собственные числа с одной вырожденной матрицей считаются нормально. Т.е. даже если вдруг и необходима такая факторизация (хотя я сомневаюсь, что вот прям обязательно она нужна), то делается она без особых трудностей.   В каком месте я неверно рассуждаю?   Так и не обязательно их записывать для расчета собственных колебаний. Ну... Можно конечно, но тогде некоторые частоты и формы, которые такой симметрией могут и не обладать, вы потеряете в расчете, поскольку введенные условия симметрии их исключат просто из модели.    
    • gudstartup
    • gudstartup
      у меня рободриллы и чпу и тем не менее picture нет наверно она к роботам относится
    • boomeeeer
      Если компания отечественная, то тоже нет смысла. Роботы, ЧПУ, лазеры и рободрилы
    • gudstartup
      это вряд ли если ось Y угловая а какая у вас редукция у вращающейся оправки? по 2мм нержавейки снимать это нелегкая задача для вашего маленького станочка
    • lem_on
      Посоветовал бы инструмент на ТС сменить. И диаметр уменьшить до 12 мм
    • neon0404
      Не помогло( Скорости тоже увеличивать пытался - не двигается
×
×
  • Создать...