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

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

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

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

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

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

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

Номер первого листа чертежа с помощью API

Автор isv, 26.04.16, 10:33:22

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

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

isv

Здравствуйте! Подскажите, пожалуйста, как с помощью API КОМПАС можно задать номер первого листа чертежа. Если ответ можно найти в SDK, просьба конкретизировать, где именно (ибо сам пока ответа не нашел).

podshibyakinea

procedure LIBRARYENTRY(command: WORD); pascal;
begin
  // связываем переменную Kompas с API КОМПАСа
Disp:=IDispatch(CreateKompasApplication);
KompasApi:=Disp as IApplication; // API7
if KompasApi<>nil then Document:=KompasApi.ActiveDocument;

if Document<>nil then
  begin
      pLayoutSheets:=Document.LayoutSheets;

  if pLayoutSheets<>nil then
    for i := 0 to pLayoutSheets.Count - 1 do
    begin
      pLayoutSheet:=pLayoutSheets.Item[i];
      if pLayoutSheet<>nil then
       begin
          pSheetFormat:=pLayoutSheet.Format;
          pLayoutSheet.SheetType;

          if pSheetFormat<>nil then
           begin
              if pSheetFormat.Format=ksFormatA0 then ShowMessage('Формат А0 x ' +  inttostr(pSheetFormat.FormatMultiplicity))
               else if pSheetFormat.Format=ksFormatA1 then ShowMessage('Формат А1 x '+  inttostr(pSheetFormat.FormatMultiplicity))
                else if pSheetFormat.Format=ksFormatA2 then ShowMessage('Формат А2 x '+  inttostr(pSheetFormat.FormatMultiplicity))
                 else if pSheetFormat.Format=ksFormatA3 then ShowMessage('Формат А3 x '+  inttostr(pSheetFormat.FormatMultiplicity))
                  else if pSheetFormat.Format=ksFormatA4 then ShowMessage('Формат А4 x '+  inttostr(pSheetFormat.FormatMultiplicity))
                   else if pSheetFormat.Format=ksFormatA5 then ShowMessage('Формат А5 x '+  inttostr(pSheetFormat.FormatMultiplicity))
                    else if pSheetFormat.Format=ksFormatUser then ShowMessage('Пользовательский Формат');

           end;
       end;
    end;

podshibyakinea

Не правильно прочитал. "задать", а не "получить"

Алхимик


Каких обеих вариантов?
Тут в коде, проверяется, какой формат у листа.

Алхимик

Могу конечно ошибаться, но вроде до этого поста:
Цитата: podshibyakinea от 27.04.16, 10:06:51
Не правильно прочитал. "задать", а не "получить"
Во втором посте был другой код.

isv

Возможно, я слишком кратко описал проблему.

Я имел в виду следующее:

В КОМПАСе в параметрах текущего чертежа в подразделе "Параметры документа" есть раздел "Нумерация листов". В нем есть поле "Номер первого листа". Если его изменить, изменится нумерация листов документа. Как с помощью API КОМПАС до этого параметра добраться? Заранее благодарю.

Алхимик

Сейчас начнут меня ругать опытные программисты) что лезу не в свою среду :shu:

Вроде то свойство что вам нужно, судя по описанию SDK.

чуть выше есть:
SheetAutoNumber - Автоматическая нумерация листов
ЦитироватьПримечание:
Опция, управляющая автонумерацией листов.
– Если опция включена, то всем листам документа автоматически присваиваются поряд­ковые номера.
– Если опция выключена, то графа Номер листа в основной надписи текущего документа не заполняется.
Вы можете ввести произвольный номер для каждого листа документа.
+ Благодарностей: 1

isv

Большое вам спасибо!  :fr: Что-то я невнимательно документацию смотрел...