Создание спецификации

Автор EVD, 02.04.09, 14:38:22

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

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

EVD

Подскажите как создать спецификацию из Delphi с нужным стилем?
В примерах и на форуме ничего не нашел, есть как работать с уже готовой, а как создавать нету.

Пробую так, спецификация создается, но стиль не меняется:

procedure TForm1.Button4Click(Sender: TObject);
var
  iKompas:IApplication;
  spw:ISpecificationDocument;
begin
  iKompas:=Co_Application.Create;
  iKompas.Visible:=true;
  spw:=ISpecificationDocument(iKompas.Documents.Add(ksDocumentSpecification,true));
  spw.SpecificationDescriptions.Active.LayoutName:='C:\Program Files\ASCON\KOMPAS-3D V8 Plus\Sys\SPDS_GR.LYT';
  spw.SpecificationDescriptions.Active.StyleID:=205;
  spw.SpecificationDescriptions.Active.Update;
end;

И в хелпе написано что для спецификации SpecificationDescriptions только для чтения, тогда как менять у спецификации?

Также в примерах нашел через Api5

procedure TForm1.Button1Click(Sender: TObject);
var
  k:KompasObject;
  docParam : ksDocumentParam;
  spcDoc   : ksSpcDocument;
begin
  k:=CoApplication.Create;
  docParam := ksDocumentParam( k.GetParamStruct( ko_DocumentParam ) );
  docParam.Init;
docParam.type_ := lt_DocSpc;
  spcDoc := ksSpcDocument( k.SpcDocument );
  spcDoc.ksCreateDocument( docParam );
end;


Пишет что не найден стиль спецификации, но как его задать?

sorockinalex1

procedure TForm1.Button1Click(Sender: TObject);
var
spcDoc    : ksSpcDocument;
docPar    : ksDocumentParam;
sheetPar  : kssheetpar;
spec      : ksSpecification;
begin
  //????????????? ????????
  if Kompas.ksIsModuleSpecificationActive=0 then
  Kompas.ksModuleSpecification(true);

  spcDoc:=ksSpcDocument(Kompas.SpcDocument);
  docPar := ksDocumentParam( kompas.GetParamStruct(ko_DocumentParam));

  docPar.Init;
  docPar.type_ := 4;
  docPar.regime  :=0;

  sheetPar := kssheetpar(docPar.GetLayoutParam);
  sheetPar.layoutName:= '\\ks-server3\setup\KOMPAS-3D_V9\Sys\GRAPHIC.LYT';
  sheetPar.shtType:=14;
  form1.Caption:=vartostr(spcDoc.ksCreateDocument(docPar));
  spcDoc.ksSaveDocument('lastspw.spw');
end;