Скопировать чертёж из файла в текущий чертёж.

Автор Ortodocs, 24.10.07, 16:28:33

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

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

Ortodocs

Народ, как из файла скопировать весь чертёж в текущий чертёж? Я новичок в работе с библиотеками для компаса. Кстати 8-й компас.
Есть кусок кода, но в нём чего-то не хватает, чего не знаю.
...
ksPhantom* pPhan=(ksPhantom*)kompas->GetParamStruct(ko_Phantom);
pPhan->Init();
pPhan->phantom=1;
ksType1* t1=(ksType1*)pPhan->GetPhantomParam();
t1->Init();
...
//копирование чертежа
ksDocument2D* pDoc2=(ksDocument2D*)kompas->ActiveDocument2D();;
pDoc2->ksSpecRough(SRP);
pDoc2->ksOpenDocument(StringToOleStr("D://путь к чертежу//чертёж.cdw"),0);
ksIterator* pIterat=(ksIterator*)kompas->GetIterator();
pIterat->ksCreateIterator(ALL_OBJ,0);
reference refGroup2=pDoc2->ksNewGroup(1);
long obj1=pIterat->ksMoveIterator(StringToOleStr("F"));
while (obj1) {
       pDoc2->ksAddObjGroup(refGroup2,obj1);
       obj1=pIterat->ksMoveIterator(StringToOleStr("N"));
}
pDoc2->ksEndGroup();
pDoc2->ksWriteGroupToClip(refGroup2,1);
pDoc2->ksCloseDocument();
t1->gr=pDoc->ksReadGroupFromClip();
pDoc->ksStoreTmpGroup(t1->gr);

Чертёж в итоге открывается, цикл while выполняется.
Подскажите.

Ortodocs

Вчера под конец раб дня пришла мысль проверить что возвращают методы работы с буфером обмена. Оказалось что после размещения группы в буфере обмена методом
pDoc2->ksWriteGroupToClip(refGroup2,1)
выполняется нормально, возвращая 1, а вот после чтения из буфера
t1->gr=pDoc->ksReadGroupFromClip()
возвращается 0, т.е. случай неудачи.
В чём ошибка?