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

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

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

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

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

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

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

Признак стандартного изделия

Автор maskedball, 26.11.21, 09:54:12

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

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

maskedball

Добрый день.
Подскажите пожалуйста, как определить что открытая в Компас модель детали является стандартным изделием?
Когда деталь вставлена в сборку, я без труда могу определить что она является стандартным изделием, благодаря свойству Standard, которое доступно в интерфейсе IPart7.



var document3D = (IKompasDocument3D)app.ActiveDocument;
var standard = ((IPart7)document3D.TopPart.Parts[0]).Standard;

Но если модель стандартного изделия открыть в отдельном окне, то в этом случае мне не удается найти надежный признак принадлежности этой модели к стандартным изделиям из библиотеки (путь к библиотеке - \ASCON\KOMPAS-3D v18\Libs\PARTLib\DATA\vault\Methods\Kompas\3D\).

Единственное что мне удалось найти - свойство Organization в модели стандартного изделия. Значение этого свойства - Ascon. Но это уж слишком не надежный признак. Есть детали из библиотеки, у которых это свойство не заполнено.


IPart7.Standard разве не работает в отдельном окне?

maskedball

Цитата: Sabahs от 26.11.21, 11:07:32IPart7.Standard разве не работает в отдельном окне?

Работает. Но возвращает при этом false. Когда деталь вставлена в сборку его значение - true. Если открыть модель стандартного изделия в отдельном окне - false. Этот признак работает только в контексте сборки.

var assembly = (IKompasDocument3D)app.ActiveDocument;
var part = (IPart7)assembly.TopPart.Parts[0];
var assemblyPartIsStandard = part.Standard; // true

var partDoc = (IKompasDocument3D)app.Documents.Open(part.FileName);
var partDocIsStandard = partDoc.TopPart.Standard; // false

По правильному должен True давать, но можно сделать временную скрытую сборку, вставить в нее эту стандартную деталь и посмотреть свойство.
Почему нельзя сделать, что деталь стандартная, в детали?
Просто с таким давно сталкивался, думал сделали.

maskedball

Цитата: Sabahs от 26.11.21, 12:10:21По правильному должен True давать, но можно сделать временную скрытую сборку, вставить в нее эту стандартную деталь и посмотреть свойство.

Пробовал, но во временной сборке так же false...

Slaviation

Добрый день.
Источник болта в ...\PARTLib\DATA\vault\Methods - обыкновенная модель, у нее нет признака, что она "стандартная". Выходит есть способ только по расположению источника компонента сборки. Если файл источника компонента в папке, указанной в [Directories] / PartLib файла KOMPAS.ini, то можно посчитать его стандартным изделием.
+ Благодарностей: 1

maskedball

Цитата: Slaviation от 26.11.21, 12:35:12Добрый день.
Источник болта в ...\PARTLib\DATA\vault\Methods - обыкновенная модель, у нее нет признака, что она "стандартная". Выходит есть способ только по расположению источника компонента сборки. Если файл источника компонента в папке, указанной в [Directories] / PartLib файла KOMPAS.ini, то можно посчитать его стандартным изделием.

Похоже что это единственный признак... Спасибо!

p3452

"Вынос мозга" продолжается...

Есть некая Деталь, что ее делает "Стандартной" в Компас?

Цитата: p3452 от 27.11.21, 12:57:42"Вынос мозга" продолжается...

Есть некая Деталь, что ее делает "Стандартной" в Компас?
Тем, что она стандартная.
Пока она не изменена редактированием, она должна быть стандартной даже в отдельном окне.

Toptotal

Смотреть файлы пред выбором удобно не проводничком а ТС и там в свойствах вывести можно не только наименование или обозначения , но и раздел спецификации в котором обычно указано где она была..

p3452



p3452

Во-о-от!  :sun:
Именно "галочка" (флаг) делает обычную деталь "Стандартным изделием", но ТС, похоже, этого не понимает, судя по:

Цитата: maskedball от 26.11.21, 09:54:12Но если модель стандартного изделия открыть в отдельном окне, то в этом случае мне не удается найти надежный признак принадлежности этой модели к стандартным изделиям из библиотеки (путь к библиотеке - \ASCON\KOMPAS-3D v18\Libs\PARTLib\DATA\vault\Methods\Kompas\3D\).

Валерий Изранов

Версия, очень сильно похожая на правду.
Конечной целью получения TopPart.Parts(0).Standard
является желание, чтоб компонент в спецификации попал в раздел Стандартные изделия.
 У каждого компонента существует чуть меньше 40 системных свойств. Среди них есть Раздел спецификации.
Все они хранятся в файле компонента. Раздел спецификации в файле компонента может быть установлен
или не установлен- как Человек сделал. Файл позволяет хранить и «пользовательские» свойства.
Признак стандартности .Standard должен храниться в этом же файле среди «пользовательских» свойств – больше негде.
  Сборка позволяет каждому своему компоненту устанавливать свой, «сборочный» раздел спецификации.
Хранится в файле сборки для каждого компонента. Чтоб это почувствовать,
в К v18 у открытой сборки надо выбрать Управление>Отчеты>Редактор свойств и тренироваться до момента понимания.
 Папки со Стандартными компонентами почти наверняка появились до рождения Компаса
и что там Человек установил в Раздел спецификации и признак стандартности...
Только вручную смотреть Раздел спецификации.
 Абсолютно точно для всех версий Компаса – компоненты из папки,
путь к которой начинается с «C:\Program Files\ASCON» стандартные.
Изменять в этих папках что-либо крайне нежелательно.
Устанавливать раздел спецификации Стандартные изделия в составе сборки.