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

Смещение конечной точки кривой


vesnoplias

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

Здравствуйте, коллеги. 

 

Солид 2013х64.

Имеется пространственная кривая (в плоскости ХУ), построенная из массива точек, взятого из внешнего файла.

Количество точек - 200, общая длинна кривой около 20 мм. 

 

На чертеже детали, частью которой является эта кривая, стоит допуск отклонения от профиля. Необходимо построить пару вариантов отклонения этого профиля. Для всей кривой справляется эквизистанта. А хотелось бы еще построить случай, когда один конец кривой в "нуле", а второй сместился, но при этом общие характеристики профиля сохнанились. Т.е. начальная точка там, где задана массивом, конечная точка смещена, на 0,01, например, и весь контур смещен пропорционально.

 

3f04f2048be54472b7b0f9e7898f3b26.png

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


А что, просто круговой массив (копия) не устроит? Посчитай, сколько даст смещение на 0.01 по углу на такой радиус и поверни.

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

Получить из этой кривой короткую поверхность вытягиванием. И потом применить к ней поворот и при необходимости масштабирование.
 
Альтернатива: если точки из внешнего файла получены как результат вычисления какой-либо функции, то получить новый массив точек, прибавив к этой функции другую линейную, которая будет ответственна за смещение.
 
@@Bully, в SW нельзя выполнять операции поворота, перемещения, массива с 1d геометрией. Такое вот ограничение. Хочешь что-то сделать -- проще преобразовать ее в 2d.

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

....  в SW нельзя выполнять операции поворота, перемещения, массива с 1d геометрией. Такое вот ограничение. Хочешь что-то сделать -- проще преобразовать ее в 2d.

 

Сорри, а можно на примере пояснить сказанное?

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

В принципе, кривую можно спроектировать в эскиз и работать уже там. 

 

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

 

С массивом точек не получится, т.к. он получен математическим расчетом. При изменении любого параметра - меняется полностью вся геометрия кривой.

Ссылка на сообщение
Поделиться на других сайтах
@Bully, в SW нельзя выполнять операции поворота, перемещения, массива с 1d геометрией. Такое вот ограничение. Хочешь что-то сделать -- проще преобразовать ее в 2d.
 Тогда да, согласен. Чисто для наглядности показа возможного отклонения разницы никакой.
Поворот не прокатит, т.к. смещение должно быть направлено в центру (или от него). На рисунке - синяя точка начала координат.
Не понял, а как же 
когда один конец кривой в "нуле", а второй сместился,
Поворачивать же не только в нуле координат можно? Построил опорную точку на одном конце кривой и вперед.
Ссылка на сообщение
Поделиться на других сайтах
С массивом точек не получится, т.к. он получен математическим расчетом. При изменении любого параметра - меняется полностью вся геометрия кривой.

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

Вам же такое требуется?

3191d63a0cca4670412067d3e9bf6a3e.jpg

PS снова зацепление Новикова? )

 

 

Сорри, а можно на примере пояснить сказанное?

Уточню: Вы хотите на примере увидеть, что в SW нельзя производить операции перемещения с 1d геометрией?

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

Смещение точек должно происходить в радиальном наравлении, вдоль осевых линий на картинке ниже.

 

c5bb5a04230743de7ab16a7ea8e0191e.png

 

Данная кривая есть часть полости, или отверстия, если можно так выразиться. Соответственно, "отверстие" может быть тугим, прослабленным или иметь отклонение формы (овальность для круглого отверстия). Вот эти случаи и нужно смоделитьвать.

 

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

 

Массивом, к сожалению, поделиться не могу - нарушу конфиденциальность и могу потерять работу. А то и похуже...

 

 

И нет, не Новиков. 

Вот эта тематика (только не для организации, чья страница)

http://mez.org.ua/pages/gp-lab2-rus

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

.....

Сорри, а можно на примере пояснить сказанное?

Уточню: Вы хотите на примере увидеть, что в SW нельзя производить операции перемещения с 1d геометрией?

 

я не в курсе, что такое 1d геометрия.

Ссылка на сообщение
Поделиться на других сайтах
я не в курсе, что такое 1d геометрия.
 1D - это точка. Линию по точкам (по методике построения, как минимум) тоже можно отнести к "1D".
Ссылка на сообщение
Поделиться на других сайтах
Смещение точек должно происходить в радиальном наравлении, вдоль осевых линий на картинке ниже.  

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

Сейчас придумал один извращенный способ реализации желаемого в SW, чуть позже выложу)

 

@@IgorT, по CAE-шной терминологии я называю так отрезки, кривые итп, которые, будь они из гибкой проволоки, можно было бы "разогнуть" в прямой отрезок. Или то, что я моделировал бы балками) Т.е. пространственная спираль (которая вроде как вполне себе 3Д) -- 1d, т.к. ее можно разогнуть в линию. Соотв. 2d -- то, что можно представить как "лист".

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

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

странно.... у меня SW2012 делает массив точек.

Что я делаю не так?

 

массив точек так же можно смещать как хочешь.

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

Попробуйте, к примеру отзеркалить пространственную спираль (построенную командой Helix and Spiral).

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

странно.... у меня SW2012 делает массив точек.

Что я делаю не так?

 

массив точек так же можно смещать как хочешь.

А последовательность действий не опишите?

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

 

странно.... у меня SW2012 делает массив точек.

Что я делаю не так?

 

массив точек так же можно смещать как хочешь.

А последовательность действий не опишите?

 

1.рисуем точку

2. командой "массив" выбираем её. Указываем перемещение и кол-во экземпляров по осям. Нажимаем ОК. Получаем массив.

 

Перемещение:

 

1. Выбираем массив.

2 Команда "Переместить объекты". Указываем базовую точку. выбираем. Указываем положение целевой точки или смещение. Нажимаем ОК. 

 

Что-то не так?

 

Что я делаю не так?

Попробуйте, к примеру отзеркалить пространственную спираль (построенную командой Helix and Spiral).

 

Это не получится. А что, это когда-нибудь бывает нужно?

Ссылка на сообщение
Поделиться на других сайтах
1.рисуем точку 2. командой "массив" выбираем её. Указываем перемещение и кол-во экземпляров по осям. Нажимаем ОК. Получаем массив.   Перемещение:   1. Выбираем массив. 2 Команда "Переместить объекты". Указываем базовую точку. выбираем. Указываем положение целевой точки или смещение. Нажимаем ОК.    Что-то не так?

 

Все не так.

 

Имеется файл с координатами точек.

С помощью команды "Кривая через точки XYZ" строится линия, показанная на рисунках в моих постах выше. 

И нужно не просто переместить эту кривую в какое-то другое положение, а сделать смещение точек аналогично команде Эквидистанта, только с некоторыми условиями, описанными ранее.

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

 

1.рисуем точку 2. командой "массив" выбираем её. Указываем перемещение и кол-во экземпляров по осям. Нажимаем ОК. Получаем массив.   Перемещение:   1. Выбираем массив. 2 Команда "Переместить объекты". Указываем базовую точку. выбираем. Указываем положение целевой точки или смещение. Нажимаем ОК.    Что-то не так?

 

Все не так.

 

Имеется файл с координатами точек.

С помощью команды "Кривая через точки XYZ" строится линия, показанная на рисунках в моих постах выше. 

И нужно не просто переместить эту кривую в какое-то другое положение, а сделать смещение точек аналогично команде Эквидистанта, только с некоторыми условиями, описанными ранее.

 

я не об этом спрашивал.

 

А с файлом точек моё имхо - обработать сам файл. То есть пересчитать.

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

SW Motion. Полученную кривую можно сразу построить в SW либо снова сохранить в файл. Для наглядности отобразил еще и эквидистанту.

d7bd215888287440b90d517203963324.gif

 

Но все равно лучше решать математически, как тут уже все советовали. В любой точке можно определить производную, а значит и нормаль. Потом переместить точку в направлении нормали на заданное расстояние (которое будет линейная функция расстояния от точки до начала кривой вдоль кривой).

 

 

 

А что, это когда-нибудь бывает нужно?

У каждого разные запросы к инструментам моделирования. Бывают люди, которым и солидворкс не нужен. И вообще компьютер.

Ссылка на сообщение
Поделиться на других сайтах
SW Motion. Полученную кривую можно сразу построить в SW либо снова сохранить в файл. Для наглядности отобразил еще и эквидистанту.

 

А как это реализовать, не подскажите? А то я что-то потерялся...

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

А как это реализовать, не подскажите?

Хм.. В трех словах?)

Создать SolidWorks Motion анализ, где одно тело будет передвигаться вдоль заданной кривой, а второе -- вдоль первого тела. Для этого использовать Motors > PathMotors. Потом в результатах отрисовать траекторию перемещения нужной точки (на втором теле). Могу свою сборку скинуть в SW2013, если разберетесь.

 

vesnoplias.rar

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Anat2015
      Надо пользоваться как Гуглом, так и Яндексом, иногда помогает одно, в другом случае - другое. Раньше пользовался только гуглом, после февраля 2022 стал замечать проблемы, особенно по китайским сайтам.
    • A_1
      Добрый день. Отправляю фрагмент из руководства по эксплуатации по циклу G76. Значение P (высота резьбы) для метрической резьбы можно найти умножив шаг резьбы на коэффициент 0.542. В цикле G76 она задаётся в дискретах станка (в микронах обычно). Это значение всегда примерное, так как на него влияет величина радиуса при вершине резца. Нельзя полагать, что задав рассчитанную высоту резьбы мы получим годную деталь, всегда требуется коррекция, в том числе из-за разной жёсткости системы СПИД. Но правильнее корректировать значение X в цикле G76, а уточненная высота резьбы зависит от этого значения.
    • Maik812
      По компасу есть, по SW 2014 и ниже есть, по step пишите рег выражение. По igs рег выражение и тд. По Creo тоже есть через регулярные. T-Flex нах.. нужен такой CAD :)   #- CMNM ((.*))\. $1 Выводит значение после #- CMNM , но абракотабра.. нужно ковыряться в регулярках чтоб переводил в юникод. http://wincmd.ru/plugring/PCREsearch.html PCREsearch   Еще Можно и http://wincmd.ru/plugring/WinScriptAdv.html скриптовый плагин Все то что выводит ехплорер выводит Shelldetals
    • Maik812
      Есть возможность просто строчку вывести, часто этого достаточно. TextLine.zip  
    • Maik812
      Все есть Плагин PCREsearch  из чего хочешь выведет данные любые,  не закрытый формат был бы. Но даже pdf , есть конверте и выводит .  
    • Rich
      Спасибо, дружище, заработало. До момента установки 23 версии как второй и не знал о таком трабле, все старые вещи работали как часы, ну изредка менял библиотеку.
    • RomanSV
      Здравствуйте всем. И сразу к делу. Есть Итальянский обрабатывающий центр Pama Speedram 2000. При включении станка есть необходимость выводить все оси (X, Y, Z, W, V, http://mir-cnc.ru/public/style_emoticons/default/cool.png на референтные точки и при этом с двумя осями (V линейное перемещение стола и B круговое вращение стола) возникает проблема. Не важно какую из этих двух осей выводить первой на референтные точки выходит ошибка 300512 что в документации описывается как "Ось %1 привод %2 определена параллельная связь". В описании ошибки говорится что: "Актуальное положение ротора и считанная с датчика информация о положении была сравнена при запуске и при этом была определена погрешность более чем в 45 градусов." были проведены следующие действия к попытке устранить ошибку: 1 Заменены управляющие платы приводов этих осей 2 Перезалит образ диска 3 Сброшены NCU и PLC и залиты пусконаладочные архивы Все эти действия ни к чему не привели. До этого в Hardware Config была изменена конфигурация (заменен модуль FLM DI8 M12 на FLM DIO 4/4 M12-2A) но это никак не относится к осям этот модуль отвечает за смазку шпинделя. Так же открывался кожух оси V (линейное перемещение стола) но никаких действий с энкодером не производилось (просто сфоткали название). Сейчас положение стола находится таким образом что энкодер находится прямо под ним и доступ к нему соответственно закрыт. Есть ли у кого ни будь опыт устранения похожей или аналогичной ошибки? Может кто ни будь подскажет в каком направлении нужно двигаться и что проверить? Буду благодарен за любой совет.   С уважением, Роман С.
    • Snake 60
      @Rich Попробуйте заменить CreateObject("SldWorks.Application") на  Application.SldWorks Так же замените Dim swApp As Object на Dim swApp As SldWorks.SldWorks
    • maxx2000
    • Rich
      Столкнулся с одной проблемкой, может кто и подскажет... Стоят две версии SW (21 и 23). Макрос не хочет запускаться в 21. Трассировкой выяснил, что не работает основная функция "Set Part = swApp.ActiveDoc" ничего в переменную не передает. В 23 версии все работает.  нужные библиотеки подключены из SW21  
×
×
  • Создать...