Здравствуйте. Никак не пойму как создать фрагмент, а не чертеж.
kompas:=KompasObject(CreateOleObject('Kompas.Application.5'));
kompas.Visible:=true;
DocumentParam := ksDocumentParam(kompas.GetParamStruct(ko_DocumentParam));
DocumentParam.Init();
DocumentParam.type_:=ksDocumentFragment;
Document2D:=ksDocument2D(kompas.Document2D);
Document2D.ksCreateDocument(DocumentParam);
Хотя в DocumentParam.type_:=ksDocumentFragment; явно указывает на создание фрагмента.
Для API5 должен быть тип - lt_DocFragment, Вы используете переменную для API7.
Проще в API7 его создать, так
pDocuments.Add(ksDocumentFragment,True);
или так
pDocuments.AddWithDefaultSettings(ksDocumentFragment,True);
А если нужен интерфейс API5, то его можно уже от созданного фрагмента получить.
"Для API5 должен быть тип - lt_DocFragment"
Если можно код полностью для создания фрагмента.
Doc:=ksDocument2D(kompasApi.Document2D);
DocPar:=ksDocumentParam(KompasApi.GetParamStruct(ko_DocumentParam));
S:=Copy(Application.ExeName,1,Length(Application.ExeName)-3)+'frw';
DocPar.FileName:=S;
DocPar.comment:='Генератор программ на обработку крановых колес';
DocPar.author:='Мельник Б.Н.';
DocPar.type_:=lt_DocFragment;
DocPar.regime:=0;
Doc.ksCreateDocument(DocPar);
а kompasapi: KompasObject? Какие библиотеки подключаете. Что-то ругается на lt_DocFragment.
LDefin2D.pas
Ура! Получилось! Спасибо большое.