• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Работа с документами Kompas из внешнего приложения

Автор SerG_Gld, 18.03.06, 17:17:23

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

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

SerG_Gld

  Возможно ли управлять документами открытыми в компас из внешней проги? Т.е., например, нужно из своей программы октрыть компас-документ и сохранить его как растр.
Если Я открываю Kompas как OLE
(var Kompas: Variant;
...
Kompas := CreateOLEObject('Kompas.Application.7');
), то стандартные свойства (как в rtw) не работают - пишет что какая-то библитека  компаса dll не найдена.
Работает Kompas.Visible, Kompas.Quit... А Kompas.Open уже не работет - пишет метод не существует, однако в SDK он есть.  8-)
   Но мне лучше если бы "стандартные" свойства работали.
  Буду очень благодарен если кто-нибудь подробно расскажет или ссылочку кинет, а ещё лучше примерчик на мыло Serg-gld@rambler.ru   ::)

JohnLeon

Цитата: SerG_Gld от 18.03.06, 17:17:23
  Возможно ли управлять документами открытыми в компас из внешней проги? Т.е., например, нужно из своей программы октрыть компас-документ и сохранить его как растр.
Да возможно, во первых на форуме есть пример с использованием API7. Также есть пример в SDK с использованием API5.
C:\Program Files\ASCON\KOMPAS-3D V8\SDK\Pascal\DELPHIAUTO\ksContrl
Методы естественно не доступны так как Kompas объявлен как Variant. Смотрите типы для объявления приложения КОМПАС.

Gek

Смотри, как я делаю
------------------------------------------
var  Kompas: KompasObject;

if (Kompas = nil)
then Kompas := KompasObject(CreateOleObject('Kompas.Application.5'));
Kompas.Visible := true;
------------------------------------------
Никаких Variant. После запуска Компаса доступны ВСЕ его функции. Единственный минус - выполняются они чуть дольше, чем в библиотеке. Дельфи 7, Компас 7, 7+, 8.

SerG_Gld


Gek

у меня вот что
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,
  Math, comObj, ksTLB, LDefin2D, LDefin3D, ksAuto, LibTool, LtDefine, ksConstTLB;
Все это тебе может не понадобиться. Попробуй удалять по одному и компилировать  ;)

SerG_Gld

В Uses прописал - Компас стал открываться, но документ в нем всё равно не создается.
Пример создания документа я взял из SDK - так что я не так сделал?

procedure TForm1.Button2Click(Sender: TObject);
var
  pDoc     : Reference;     
  doc,      : DocumentParam;
  par        : ViewParam;     
  number  : Integer;       
  buf        : String;

begin
  FillChar( doc, SizeOf(doc), 0 );
  StrCopy( doc.fileName, 'c:\1.cdw' );       
  StrCopy( doc.comment,  'create document' );
  StrCopy( doc.author,   'user' );           
  doc.regim          := 0;                   
  doc._type          := lt_DocSheetStandart; 
    doc.stPar.format   := 3;                 
  doc.stPar.multiply := 1;                   
  doc.stPar.direct   := 0;                   
  doc.shtType        := 1;                   
  StrCopy( doc.layoutName,'');               
   pDoc := CreateDocument(Addr(doc));
end;

Gek

С ходу тебе не отвечу. Я использовал контроллер (внешнее приложение) только для работы с 3D-документами. Они создаются так

iDoc2 := ksDocument3D(Kompas.Document3D);
iDoc2.Create(true, false);