Точка по трем координатам

Автор TedyIV, 11.04.19, 13:15:51

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

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

TedyIV

Заранее извиняюсь за повторение темы (такая уже есть), просто есть сомнение, что кто-либо ответит, если я напишу в старую тему.

Использовал пример из старой темы:


ksEntityPtr p ((ksEntity*)part->NewEntity(o3d_point3D), false);
p->Create();

IPoint3DPtr p7((IPoint3D*)Form5_kompas->TransferInterface(p, ksAPI7Dual, 0), false);

p7->X = 100;
p7->Y = 5;
p7->Z = 50;
p7->Symbol = ksDotPoint;
p7->_Update();


После запуска приложения ничего не произошло, т.е файл 3-мерной модели открылся, но точка не создана. Программа отработала без ошибок.

Очень прошу помощи. Уже все перепробовал, до чего додумался.

Работаю в Builder c++, Компас V17.1

А так.
IPoint3DPtr p7((IPoint3D*)Form5_kompas->TransferInterface(p, ksAPI3DCom, 0), false);

TedyIV

Так тоже точка не создается


TedyIV

Жаль нет примеров создания точки по трем координатам для CBuilderAuto ...

Примеры step3d3 смотрели в CDK?
Там через вершины сделано из эскиза.

TedyIV

Смотрел, мне такое не подходит. Так как я плоскости по трем точкам формирую с целью создания эскизов по ним и, следовательно, мне никак пока не создать объекты, ну и их вершины.



Можно, конечно, попробовать создавать поверхность, определяемую 3-мя точками и брать ее вершины


DesignЯR

ЦитироватьksEntityPtr p ((ksEntity*)part->NewEntity(o3d_point3D), false);
p->Create();

IPoint3DPtr p7((IPoint3D*)Form5_kompas->TransferInterface(p, ksAPI7Dual, 0), false);

p7->X = 100;
p7->Y = 5;
p7->Z = 50;
p7->Symbol = ksDotPoint;
p7->_Update();
ЦитироватьОчень прошу помощи. Уже все перепробовал, до чего додумался.

В этом коде не вижу где задается перед заданием самих координат.
p7->ParameterType=ksPParamCoord

Вот такой код работает

            IKompasDocument3D doc = (IKompasDocument3D)appl.ActiveDocument; if (doc == null)  return;
            Part7 part7 = doc.TopPart;
            IModelContainer modelcontainer = (IModelContainer)part7;
            IPoints3D points3D = modelcontainer.Points3D;
            IPoint3D point3d_1 = points3D.Add();
            point3d_1.ParameterType = Kompas6Constants3D.ksPoint3DTypeEnum.ksPParamCoord;
            point3d_1.Symbol = Kompas6Constants.ksAnnotationSymbolEnum.ksDotPoint;
            point3d_1.X = 10;
            point3d_1.Y = 10;
            point3d_1.Z = 10;
            point3d_1.Update();
+ Благодарностей: 1

Судя из выше изложенного уважаемый TedyIV, Вы не владеете языком, в тех рамках, которые нужны.

Fess11

Подскажите пожалуйста мне нужен раскрой в компасе как его сделать? моя почта fess.08@mail.ru