• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Создание "Заплатки" С++

Автор NikSis, 26.10.18, 14:07:08

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

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

NikSis

В общем задача то простая, есть 3 отрезка образующие треугольник и надо вставить заплатку, но не понимаю как правильно оформить операцию заплатки на C++.
Подскажите кто чем может.
Заранее спасибо.

Примера нет.
И в чём проблема?
У заплатки единственное свойство ISurfacePatch.Edges - массив ребер в виде SAFEARRAY DISPATCH - VT_ARRAY | VT_DISPATCH.
Создаёте массив, запихиваете в него свои три отрезка, затем массив  передаёте в ISurfacePatch.Edges и всё.

NikSis

Проблема в том что массив должен иметь какой то тип (int, double и тд.)  и я не понимаю какой надо. Да и выходит что у меня есть 3 ребра - p1, p2, p3.

ksEntityPtr t = part->NewEntity(o3d_LineSegment3D);
t->Create();
ILineSegment3DPtr p1 = kompas->TransferInterface(t, ksAPI7Dual, 0);
p1->BuildingType = ksLSTTwoPoints;
p1->SetPoint(true, 0, 0, 0);
p1->SetPoint(false, 3, 3, 3);
p1->Update();

ksEntityPtr y = part->NewEntity(o3d_LineSegment3D);
y->Create();
ILineSegment3DPtr p2 = kompas->TransferInterface(t, ksAPI7Dual, 0);
p2->BuildingType = ksLSTTwoPoints;
p2->SetPoint(true, 3, 3, 3);
p2->SetPoint(false, 9, 9, 9);
p2->Update();

ksEntityPtr u = part->NewEntity(o3d_LineSegment3D);
u->Create();
ILineSegment3DPtr p3 = kompas->TransferInterface(t, ksAPI7Dual, 0);
p3->BuildingType = ksLSTTwoPoints;
p3->SetPoint(true, 9, 9, 9);
p3->SetPoint(false, 0, 0, 0);
p3->Update();


И я не понимаю в какой массив присвоить эти ребра. Да и как вызвать, для построения Заплатки, тоже не понимаю


NikSis

Я может совсем не разбираюсь, но это даже вроде не C++ код. А если все таки и он, то он выдает ошибку. Если еще тот код с ребрами я переделал на С++. То тут я единственное что понял, что создается массив из 3 элементов, а вот какого типа, не понял.

#5
Ясно, что не С++, у меня в профиле язык написан.
Вариантный массив с типом varDispatch.
PS. Примеры в SDK нужно внимательней смотреть.

NikSis

Я думал во всех SDK одни и те же примеры. В VisualcAUTO этого step даже нет. Спасибо, буду сидеть, разбираться.

Они разделены, потому, что это разные технологии.