Построение конуса из полилинии

Автор dubrovskij100, 17.04.12, 06:56:07

« назад - далее »

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

dubrovskij100

Всем здравствуйте!
Нужно получить конусообразную поверхность, путем вращения прямоугольного треугольника, построенного из ломаной в 3D (без использования эскиза). Треугольник построил нормально, а вот как к нему задать операцию вращения?
И вообще возможно ли такое? ))

вот текст моего кода на С# (можно привести пример и на других языках):

ksPart part = (ksPart)doc.GetPart((short)Part_Type.pNew_Part); // новый компонент
            if (part != null)
            {
                //построение полилинии в 3D :) то что нужно
                ksEntity entityLine = (ksEntity)part.NewEntity((short)Obj3dType.o3d_polyline);
                if (entityLine != null)
                {
                    // интерфейс свойств эскиза
                    ksPolyLineDefinition LDef = (ksPolyLineDefinition)entityLine.GetDefinition();
                   
                    if (LDef != null)
                    {
                        LDef.AddVertex(0, 0, 0, 0);
                        LDef.AddVertex(0, 0, 100, 1);
                        LDef.AddVertex(50, 0, 0, 1);
                        LDef.AddVertex(0, 0, 0, 1);
                        LDef.GetCountVertex();
                        entityLine.Create(); // создадим эскиз
                    }
               }
            }
и как теперь создать операцию вращения для полученного треугольника и определить ось вращения?
кто знает, подскажите пожалуйста )) Заранее спасибо!

В эскизе нужно построить осевую линию, которая будет осью операции, а затем используйте ksBaseRotatedDefinition или ksBossRotatedDefinitio.
http://forum.ascon.ru/index.php/topic,16120.0.html

dubrovskij100

Спасибо! Через эскиз уже делал, но для проекта это не очень хорошо, потому что в дальнейшем нужно будет в зависимости от где будет находиться конус строить и половину и 1/4 конуса, при этом нужно будет знать направление вращения.

Есть ли возможность создать вращение, не используя эскиз? Или хотя бы задать ось вращения для уже построенного треугольника?

Используйте IRotated там можно задавать ось и  в качестве формообразующего элемента можно использовать: эскиз, грань, кривую 3D. По поводу направления вращения, Вы его задаёте в операции и знаете.

GL_E

Блин! Пока печатал опоздал :`(

Без эскиза конус построить можно!

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


dubrovskij100

а есть пример? с IRotate или с случаем указанным, GL_E?

В этом вся и проблема, что нужно посмотреть как это делается программно, язык программирования не важен )) Буду и сам искать в этом направлении, но если не сложно скиньте пожалуйста пример. :)

За ответы всем большое Спасибо! :)

GL_E

С примерами - беда!
Если честно в KompasAPI я не силен! Но чутье мне подсказывает, что IRotate делает то же, что я нарисовал руками.

Цитата: dubrovskij100 от 17.04.12, 08:08:37
Есть ли возможность создать вращение, не используя эскиз? Или хотя бы задать ось вращения для уже построенного треугольника?
Я хочу сказать, что если можно сделать это руками, то программно тоже можно сделать.

P.S. Прошу прощения, если не оправдал надежд  :)

dubrovskij100

Благодарю, за то, что помогли!  :) Если сам найду это выложу сюда, как пример. :)

chelkar

Если еще актуально.
В прицепе пример на Питоне.
Строится ломаная из трех сегментов, затем она вращается вокруг первого (нулевого) сегмента.