Как создать форму винта, используя функции Eyeshot

#c# #.net #3d #cad #eyeshot

#c# #.net #3D #сапр #eyeshot

Вопрос:

Мне нужно создать форму винта, используя библиотеки Eyeshot в приложении .NET.

В SolidWorks это легко достигается путем создания формы / профиля, который необходимо подметать / растягивать, и кривой спирали, которая используется в качестве направляющей или направления.

В SolidWorks позиционирование начальной точки спирали до некоторой точки в диаметре профиля и использование команды «Развертка» приводит к тому, что точка должна быть перемещена / повернута вокруг спирали, и создается желаемая форма.

Пример SolidWorks

В Eyeshot я создаю свой профиль как LinearPath сущность и использую

 SweepAsSolid(ICurve rail, double tol, sweepMethodType sweepMethod = sweepMethodType.RotationMinimizingFrames)
  

функция, но результат отличается. Кажется, что функция SweepAsSolid позиционирует начальную точку спирали в центре профиля, и создается другая форма.

Есть ли способ получить желаемую форму с помощью библиотек 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);
  

результат