Если заранее открыть Компас, создать чертёж с рамкой А4, например, то линии чертятся. Иначе-
серый лист с ksMessage "Готово" и всё закрывается. Как при открытии Компаса сразу вывести чертёж с рамкой?
И второй вопрос: Как при этом загружать Компас с определённым профилем, например, 7.pfl ?
VB6:
Private Sub Command1_Click() 'по клику
Set Kompas = CreateObject("KOMPAS.Application.5")
If Not Kompas Is Nothing Then 'если нет Kompas, то включить
Kompas.Visible = True 'Вкл.видимость
End If
Dim ksDocument2D As Object 'Document2D как объёкт
Set ksDocument2D = Kompas.ActiveDocument2D 'активизировать документ
If Not ksDocument2D Is Nothing Then 'если документа нет- открыть
ksDocument2D.ksArcBy3Points 68, 166, 85, 238, 102, 166, 1
ksDocument2D.ksLineSeg 68, 166, 74, 166, 1
...............................
...............................
ksDocument2D.ksLineSeg 94, 166, 102, 166, 1
End If
Kompas.ksMessage "Готово" 'вывести сообщение "Готово"
'Появится сообщение- сохранить изменения ?
Kompas.Quit 'закрытьKompas
Set Kompas = Nothing '
End Sub
Где в коде открыть я так и не увидел
вот вариант на паскале посозданию документа
//открывем компас
kompas:=KompasObject(CreateOleObject('Kompas.Application.5'));
//задаем параметры чертежа
//получаем структуру параметров документа
par:=ksDocumentParam( kompas.GetParamStruct(ko_DocumentParam));
//инициируем
par.Init;
//имя файла
par.fileName:='c:\0.cdw';
//коментарии
par.comment:='Чертеж';
//автор
par.author:='DELPHI VS';
//тип документа
par.type_:=1;
//режим редактирования
par.regime:=0;
//получить ссылку на параметры страницы
sp:=kssheetpar(par.GetLayoutParam);
//Для чертежа - имя библиотеки оформления
//Если строка пустая, берется библиотека Graphic.lyt
sp.layoutName:='';
//Для чертежа - тип штампа из указанной библиотеки
sp.shtType:=1;
//получаем структуру чертежа
doc2D:=ksdocument2D(kompas.Document2D);
//создаем чертеж относительно заданных параметров
doc2D.ksCreateDocument(par);
...
рисуем что надо
...
//сохраняем чертеж
doc2D.ksSaveDocument(par.fileName);
Нужно было написать программку на создание чертежа. А тут такая удача. Код рабочий. Проверил. Максимилиану спасибо. Единственно не разобрался, как формат чертежа программно установить. При использовании данного кода появляется чертеж А0 (вертикал.), а если нужно например А4. Как это сделать подскажите, пожалуйста.
Сам разобрался.
//открывем компас
kompas:=KompasObject(CreateOleObject('Kompas.Application.5'));
//задаем параметры чертежа
//получаем структуру параметров документа
par:=ksDocumentParam( kompas.GetParamStruct(ko_DocumentParam));
//инициируем
par.Init;
//имя файла
par.fileName:='c:\0.cdw';
//коментарии
par.comment:='Чертеж';
//автор
par.author:='DELPHI VS';
//тип документа
par.type_:=1;
//режим редактирования
par.regime:=0;
docLayout := ksSheetPar(Par.GetLayoutParam());
docLayout.Init;
docSheet := ksStandartSheet(docLayout.GetSheetParam());
// 0- Формат А0
// 1- Формат А1
// 2- Формат А2
// 3- Формат А3
// 4- Формат А4
docSheet.format := 4;
//получить ссылку на параметры страницы
sp:=kssheetpar(par.GetLayoutParam);
//Для чертежа - имя библиотеки оформления
//Если строка пустая, берется библиотека Graphic.lyt
sp.layoutName:='';
//Для чертежа - тип штампа из указанной библиотеки
sp.shtType:=1;
//получаем структуру чертежа
doc2D:=ksdocument2D(kompas.Document2D);
//создаем чертеж относительно заданных параметров
doc2D.ksCreateDocument(par);
...
рисуем что надо
...
//сохраняем чертеж
doc2D.ksSaveDocument(par.fileName);
Всё это есть в SDK и в примерах (работа с документом кажется в Step3)