Нумерация позиций

Автор freestyler, 09.10.26, 12:48:48

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

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

freestyler

Добрый день!
Есть сборочный чертеж с расставленными (ассоциативными) номерами позиций. Задача - заменить их на свои, полученные из внешнего источника.
Отдельного документа-спецификации нет, но через "Управление-Спецификация-Редактировать объекты спецификации" она открывается.
Что я делаю:
1. Нахожу ссылку на модель, открываю ее
2. Получаю у модели активный SpecificationDescription
3. Перебираю строки, при необходимости вписываю нужный номер позиции.
4. Делаю Update для SpecificationDescription, Rebuild модели и чертежа.
Но позиция при этом не меняется ни в "Управление-Спецификация-Редактировать объекты спецификации", ни на чертеже. Что я делаю не так?


SpecificationDescription spec = _doc3d7.SpecificationDescriptions.Active; //Получаю спецификацию

dynamic objects = spec.Objects; //Получаю список объектов спецификации и начинаю их перебирать
for (int i = 0; i < objects.Length; i++)
{
     ISpecificationObject spcObj = objects[i];
      if (spcObj.Type.ToString() != "ksObjectSpecificationBaseObject") continue; //Не базовый объект, пропускаем

     //Перебираю столбцы
     ISpecificationColumns columns = spcObj.Columns;
     foreach (ISpecificationColumn col in columns)
     {
          if (col.ColumnName == "Позиция") col.Text.Str = "777"; //Меняю номер позиции
    }
}
spec.Update(); //Обновляю СП
_doc3d7.RebuildDocument(); // Перестраиваю модель
_doc3d7.Save();

lavgirb

Цитата: freestyler от 09.10.26, 12:48:48...Есть сборочный чертеж с расставленными (ассоциативными) номерами позиций. Задача - заменить их на свои, полученные из внешнего источника.
Отдельного документа-спецификации нет...
А можно пояснить, с какой целью у Вас предварительно расставлены номера позиций?
Если потом эти номера надо заменять...
А если сразу проставить номера из своего внешнего источника? Не подойдет?

freestyler

Цитата: lavgirb от 10.10.26, 14:21:07А можно пояснить, с какой целью у Вас предварительно расставлены номера позиций?
Если потом эти номера надо заменять...
А если сразу проставить номера из своего внешнего источника? Не подойдет?
Оно так и будет. Но в источнике номера могут поменяться и надо их потом в документы Компаса проиписать.

Идеологически-то, я так понимаю, от перемены мест слагаемых сумма не меняется:
[расставить позиции (с дефолтной нумерацией от Компаса), потом проставить номера] = [проставить номера, потом расставить позиции]

Хмарик

Цитата: freestyler от 12.10.26, 08:00:26Но в источнике номера могут поменяться и надо их потом в документы Компаса прописать.
У всех почему то наоборот: Компас ставит позиции и их никто не меняет.

freestyler

Цитата: Хмарик от 12.10.26, 08:39:27У всех почему то наоборот: Компас ставит позиции и их никто не меняет.
Просто примите, что не все делают спецификации в Компасе, и сразу всё станет понятнее. Например, я в PDM вставил в структуру изделия провод (из базы), которого в модели нет. И после этого сдвинулась нумерация позиций, и этот сдвиг я хочу перенести на чертеж. Что не так в этой задаче?

Хмарик

freestyler, а если вам научиться делать спецификацию в Компасе?

freestyler

#6
Цитата: Хмарик от 12.10.26, 09:21:56freestyler, а если вам научиться делать спецификацию в Компасе?
Ну примите, пожалуйста, факт, что есть разные подходы к работе. Вот прям если я не делаю СП в Компасе, то это почему-то воспринимают как плевок в душу и стремятся меня научить. Я даже специально пример привел: добавляю провод из БД PDM системы, как я это сделаю в спецификации Компаса? Давайте еще приведу: у меня документация в Автокаде (Солиде, Инвенторе и т.д.), как я сгенерю СП в Компасе? У меня есть куча документов, сделанных не в Компасе, и которые никогда в нем делаться не будут (схемы, ведомости, эксплуатационные документы), как я их могу вставить (не вбить руками, а вставить) в спецификацию Компаса? У меня есть волшебный раздел "Комплекты", состоящий только из спецификации, в свою очередь состоящей только из ссылок на записи в БД, как я это сделаю и как потом вставлю в СП Компаса? Есть вообще проекты, где изначально спецификацию делает схемотехник, который Компаса в глаза не видел, а конструктор подключается к работе только через полгода. Есть такое понятие как допустимые замены, работа с которыми в стандартной СП Компаса реализована практически в ручном режиме, а если замена не "один к одному", или с доп условиями?

Вот есть такая фирма, Интермех называется. На секундочку, один из лидеров на рынке PDM систем РФ. Используется на более чем 5000 предприятий. Наверно они все (и пользователи и разрабы) - дураки и не знают что есть чудесная СП в Компасе, а страдают в своей дурацкой PDM со своим дурацким редактором СП.

freestyler

Попробую упростить вопрос: меняю (код в первом посте) это значение, а оно не меняется. Как так?

Снимок.PNG

lavgirb

#8
Цитата: freestyler от 12.10.26, 09:41:38Попробую упростить вопрос: меняю (код в первом посте) это значение, а оно не меняется. Как так?
Я записываю номера позиций в свойство "Позиция" компонентов.
Удаляю "Описания спецификаций" из сборки и из чертежа.
Потом проставляю номера позиций на чертеже. КОМПАС берет их из свойства "Позиция".
При замене номеров в свойстве "Позиция" эти номера меняются и в сборочном чертеже.
Как это работает, можно посмотреть в моей программе Браком. Там номера позиций синхронизируются со спецификацией в Excel.
+ Благодарностей: 1

freestyler

#9
Цитата: lavgirb от 12.10.26, 10:00:31Я записываю номера позиций в свойство "Позиция" компонентов.
Удаляю "Описания спецификаций" из сборки и из чертежа.
Потом проставляю номера позиций на чертеже. КОМПАС берет их из свойства "Позиция".
При замене номеров в свойстве "Позиция" эти номера меняются и в сборочном чертеже.

Получилось, спасибо!!
А может поделитесь секретом, если один компонент входит в сборку много раз, то в каждое вхождение вписываете позицию, или есть какой-то финт чтобы это оптимизировать?  ::)

Цитата: lavgirb от 12.10.26, 10:00:31Как это работает, можно посмотреть в моей программе Браком. Там номера позиций синхронизируются со спецификацией в Excel.
Я 15 лет назад по мотивам Вашей программы Брагин делал перенос позиций из Intermech Search в Inventor. Теперь по мотивам Браком делаю перенос позиций из Intermech IPS в Компас. Дежавю :-)

lavgirb

Цитата: freestyler от 12.10.26, 12:19:05А может поделитесь секретом, если один компонент входит в сборку много раз, то в каждое вхождение вписываете позицию, или есть какой-то финт чтобы это оптимизировать?  ::)
Не уверен, что можно как-то оптимизировать.
Записываю номер позиции в каждый компонент во все исполнения/варианты (но, в зависимости от конкретики, могут быть исключения).
Отображаю свойство "Позиция" в дереве модели.
Отображаю свойство "Позиция" в дереве чертежа.
Это довольно удобно для дополнительного контроля.


modelTree.png  drawTree.png

Цитата: freestyler от 12.10.26, 12:19:05Я 15 лет назад по мотивам Вашей программы Брагин... Дежавю :-)
Браип)

+ Благодарностей: 1

freestyler

Цитата: lavgirb от 12.10.26, 12:43:49Не уверен, что можно как-то оптимизировать.
Записываю номер позиции в каждый компонент во все исполнения/варианты (но, в зависимости от конкретики, могут быть исключения).
Тогда даже не буду на это время тратить, сделаю так же, спасибо!

Цитата: lavgirb от 12.10.26, 12:43:49Отображаю свойство "Позиция" в дереве модели.
Отображаю свойство "Позиция" в дереве чертежа.
Это довольно удобно для дополнительного контроля.
Интересная идея, когда основной функционал запилю надо будет попробовать реализовать..

Цитата: lavgirb от 12.10.26, 12:43:49Браип)
:)

lavgirb

Цитата: freestyler от 12.10.26, 13:19:52Интересная идея, когда основной функционал запилю надо будет попробовать реализовать..
Это можно ввести в шаблоны документов.
+ Благодарностей: 1