Как создать чертёж с рамкой при открытии Компаса?

Автор Николай, 13.04.10, 13:36:39

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

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

Николай

Если заранее открыть Компас, создать чертёж с рамкой А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

Maxagg

Где в коде открыть я так и не увидел
вот вариант на паскале посозданию документа
  //открывем компас
  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);

bergovin

Всё это есть в SDK и в примерах (работа с документом кажется в Step3)