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

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

« предыдущая - следующая »

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

NikSis

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

Sabahs

Примера нет.
И в чём проблема?
У заплатки единственное свойство 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();


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

Sabahs

Air:=VarArrayCreate([0,2],varDispatch);

NikSis

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

Sabahs

26.10.18, 15:16:17 #5 Последнее редактирование: 26.10.18, 15:39:52 от Sabahs
Ясно, что не С++, у меня в профиле язык написан.
Вариантный массив с типом varDispatch.
PS. Примеры в SDK нужно внимательней смотреть.

NikSis

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

Sabahs

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