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

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

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

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

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

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

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

Получить название раздела из блока вложенных разделов с помощью КОМПАС-api

Автор z-arthur, 06.09.12, 17:13:05

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

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

z-arthur

Всем привет!

Необходимо с помощью api по Reference базового объекта спецификации определить, входит ли этот объект во вложенный раздел, и если входит, получить название самого раздела.
У кого-нибудь есть такой опыт?

Во вложении рисунок. На нем видно, что СЕ.01.00.003 входит во вложенный раздел "Детали". Необходимо определить название самого раздела ("Комплекты") или хотя бы определить то, что СЕ.01.00.003 входит во вложенный раздел, т.к. только у раздела "Комплекты" есть вложенные разделы.

z-arthur

Можно определить номер вложенного раздела с помощью КОМПАС API 7.

Номер вложенного раздела можно определить через свойство NestedSection интерфейса ISpecificationBaseObject (для меня этого достаточно, чтобы определить, находится ли объект спецификации в разделе "Комплекты").
Экземпляр интерфейса можно получить так:


function GetRootSectionName(objRef: Reference; const SectionName: string; iKompasApp7: IApplication): string;
var
  doc: IKompasDocument;
  description: ISpecificationDescription;
  baseObj: ISpecificationBaseObject;
begin
    Result := SectionName;
    doc := iKompasApp7.ActiveDocument;
    if Assigned(doc) then
    begin
      description := doc.SpecificationDescriptions.Active;
      if Assigned(description) then
      begin
        baseObj := description.BaseObjects.Item[objRef];
        if baseObj.NestedSection <> 0 then
        Result := 'Комплекты';
      end;
    end;
end;