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

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

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

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

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

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

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

Подсчет количества операций в сборе и детали

Автор zeratul, 25.01.17, 08:39:01

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

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

zeratul

Добрый день! Выполняю считывание сборок и деталей из 1С.

Когда происходит считывание сборки формат *.a3d,  не могу понять как мне считать количество операции только данной сборки минуя детали?
На данный момент считывание количества операций делаю так

         Active = kompas_v5.Document3d.open(Объект.Path,True);
         If Active Then
            
            КоличествоВсегоОпераций = 0;
         
            doc3D = kompas_v5.ActiveDocument3D;
            PColl = doc3D.PartCollection(True);
            Если doc3D.IsDetail()<> 1 Тогда
               Для j = 0 По 1 Цикл//PColl.GetCount() - 1 Цикл
                  iPart = doc3D.GetPart(j);
                  If iPart.excluded Then
                     Continue;
                  EndIf;
                  КоличествоОпераций = iPart.EntityCollection(110).getcount();
                  КоличествоВсегоОпераций = КоличествоВсегоОпераций + КоличествоОпераций;                     
               КонецЦикла;
                                 EndIf;
                           EndIf;


Пробовал делать так:

kompas_v5.ActiveDocument3D.EntityCollection(110,false).getcount()
Но в таком случае всегда возвращается 0.


KrissKross

Цитироватьсчитать количество операции только данной сборки
Если имеется ввиду операции - такие как выдавливание, вращение и т.д.

тогда скорее всего надо обращаться к интерфейсу ksEntity или ksFeature
и по типу элемента (type - Тип объекта модели) определять Ваш вариант или нет


zeratul

Так я делаю через интерфейс
IPart - интерфейс COM

doc3D = kompas_v5.ActiveDocument3D;
PColl = doc3D.PartCollection(True);
Если doc3D.IsDetail()<> 1 Тогда
               
Для j = 0 По 1 Цикл

iPart = doc3D.GetPart(j);
If iPart.excluded Then
Continue;
EndIf;
КоличествоОпераций = iPart.EntityCollection(110).getcount();

в данном случае неверно идет подсчет, так как мне надо подсчитать количество операций именно самого документа doc3D