#c# #.net #3d #cad #eyeshot
#c# #.net #3D #сапр #eyeshot
Вопрос:
Мне нужно создать форму винта, используя библиотеки Eyeshot в приложении .NET.
В SolidWorks это легко достигается путем создания формы / профиля, который необходимо подметать / растягивать, и кривой спирали, которая используется в качестве направляющей или направления.
В SolidWorks позиционирование начальной точки спирали до некоторой точки в диаметре профиля и использование команды «Развертка» приводит к тому, что точка должна быть перемещена / повернута вокруг спирали, и создается желаемая форма.
В Eyeshot я создаю свой профиль как LinearPath
сущность и использую
SweepAsSolid(ICurve rail, double tol, sweepMethodType sweepMethod = sweepMethodType.RotationMinimizingFrames)
функция, но результат отличается. Кажется, что функция SweepAsSolid позиционирует начальную точку спирали в центре профиля, и создается другая форма.
-
Использование спирали в качестве направляющей: Пример Eyeshot со спиралью в качестве направляющей
-
Использование прямой линии в качестве рельса: Пример для глаз с прямой линией в качестве рельса
Есть ли способ получить желаемую форму с помощью библиотек Eyeshot, используя ту же процедуру, что и в SolidWorks?
Ответ №1:
Я думаю, что метод ExtrudeWithTwist() — это то, что вы ищете:
Point3D moveText = new Point3D(0,3,0);
// new example
Line l1 = new Line(-3, 0, 3, 0);
Line l2 = new Line(3, 0, 3, 2);
Line l3 = new Line(3, 2, -3, 2);
Line l4 = new Line(-3, 2, -3, 0);
CompositeCurve cc1 = new CompositeCurve(l1, l2, l3, l4);
Surface[] loft1 = Surface.ExtrudeWithTwist(cc1, new Vector3D(0, 0, -10), new Point3D(0, 1, 0), Math.PI, 0.1);
foreach (Surface s in loft1)
{
s.Translate(10, 0, 0);
}
model.Entities.AddRange(loft1, 0, Color.Orange);