Наклонить 3dSolid

Автор Тема: Наклонить 3dSolid  (Прочитано 8545 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Наклонить 3dSolid
« : 12-12-2016, 12:03:39 »
Подскажите, есть объект 3dsolid
Делаю так:
Код - C# [Выбрать]
  1. SweepOptionsBuilder sob = new SweepOptionsBuilder();
  2.                 sob.Align = SweepOptionsAlignOption.AlignSweepEntityToPath;
  3.                 sob.Bank = true;
  4. Entity ProfEnt, AxisEnt; // объекты профиля и оси, вдоль которой делается тело
  5. ...
  6. Solid3d sol = new Solid3d();
  7. sol.CreateSweptSolid(ProfEnt, AxisEnt, sob.ToSweepOptions())
;

А мне нужно наклонить солид (как показано на рисунке)
Как это сделать?



Онлайн avc

  • ADN Club
  • *****
  • Сообщений: 828
  • Карма: 168
    • Мои плагины к Автокаду
Re: Наклонить 3dSolid
« Ответ #1 : 12-12-2016, 12:15:35 »
Я бы просто вытянул и слайсом отрезал торцы

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Наклонить 3dSolid
« Ответ #2 : 12-12-2016, 12:22:44 »
Я бы просто вытянул и слайсом отрезал торцы
У меня тоже была такая идея вытянуть
Солид и подрезать с краев.
На счет вытянуть мне понятно - я могу просто объект сделать немного длиннее.
А вот подрезать - мне в голову приходит только
способ применить логическую операцию с другим объектом.

Но может быть есть что-то проще?

Онлайн avc

  • ADN Club
  • *****
  • Сообщений: 828
  • Карма: 168
    • Мои плагины к Автокаду
Re: Наклонить 3dSolid
« Ответ #3 : 12-12-2016, 12:25:39 »
Или сначала 2 профиля наклонить, а потом между ними вытянуть. В интфейсе работает через _Loft, в API - не знаю.

Отмечено как Решение Алексей (IdeaSoft) 12-12-2016, 13:42:28

Онлайн avc

  • ADN Club
  • *****
  • Сообщений: 828
  • Карма: 168
    • Мои плагины к Автокаду
Re: Наклонить 3dSolid
« Ответ #4 : 12-12-2016, 12:27:16 »
А вот подрезать
Slolid3d.Slice(Plane)

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Наклонить 3dSolid
« Ответ #5 : 12-12-2016, 13:45:20 »
Спасибо, подрезать получилось!
Сделал так

Код - C# [Выбрать]
  1.   Line Ln; // линия оси солида
  2. ...
  3.   Vector3d VZ = new Vector3d(0, 0, 1);
  4.   Vector2d v2d = new Vector2d(Ln.EndPoint.X - Ln.StartPoint.X,
  5.                               Ln.EndPoint.Y - Ln.StartPoint.Y);
  6.   sol.Slice(new Plane(Ln.EndPoint, VZ,
  7.                       new Vector3d(v2d.GetPerpendicularVector().X,
  8.                                   v2d.GetPerpendicularVector().Y, 0)));


             

Онлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13894
  • Карма: 1789
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Наклонить 3dSolid
« Ответ #6 : 12-12-2016, 15:37:52 »
Похоже я не понял постановку задачи. Нужно было повернуть 3DSOLID относительно оси, по которой он выдавливался?
Тогда всё очень просто:
Код - C# [Выбрать]
  1. Matrix3d mat = Matrix3d.Rotation(ang, // угол поворота в радианах
  2.                                      AxisEnt.StartPoint - AxisEnt.EndPoint, // вектор оси
  3.                                      AxisEnt.StartPoint // Базовая точка
  4.                                     );
  5. sol.TransformBy(mat);
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Наклонить 3dSolid
« Ответ #7 : 12-12-2016, 16:26:57 »
Похоже я не понял постановку задачи
Нет не нужно его поворачивать просто наклонить.
Нужно деформировать тело наклонив его.
Был прямоугольник, а стал - параллелограмм в виде с боку.



Онлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13894
  • Карма: 1789
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Наклонить 3dSolid
« Ответ #8 : 12-12-2016, 17:12:25 »
Нужно деформировать тело наклонив его.
Вот так и нужно писать! :)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение