Создание групповой спецификации

Автор Aline_u, 10.03.21, 11:09:58

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

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

Aline_u

Уже несколько дней бьемся над созданием групповой спецификации.
Как перекинуть спецификацию из файла Excel в Компас разобрались, но создается простая спецификация. А у нас спецификация с переменными данными для исполнений. Никак не могу понять как во-первых изменить тип спецификации (но это в принципе можно сделать вручную), но самое главное, как туда добавит эти переменные данные.
Т.е. общие данные пишутся, к примеры разделы "Документация", "Сборочные единицы", "Детали", а вот потом должны пойти переменные данные для исполнений. Каким образом их добавлять программно?

Надо получить нечто похожее как на картинке, только ниже идет список с переменными данными для каждого исполненияБезымянный.jpg

VIO

Вот так попробуйте

Warlock-72

Цитата: VIO от 10.03.21, 11:57:48Вот так попробуйте
Владимир Иванович, вопрос касался программной реализации этого действия

Warlock-72

Цитата: Aline_u от 10.03.21, 11:09:58Уже несколько дней бьемся над созданием групповой спецификации.
Как ... туда добавить ... переменные данные ... программно? ...
Есть несколько специалистов, которые, вероятно, могли бы Вам помочь, например, Вират Лакх или Slaviation.
Попробуйте достучаться до них.
Но, imho, задачка эта - очень даже не простая, и "малой кровью", полагаю, тут не обойтись.

VIO

Цитата: Warlock-72 от 10.03.21, 13:04:53Владимир Иванович, вопрос касался программной реализации этого действия
Упс!!!
:)

Вират Лакх

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

ТрындецЪ

Насколько я помню, деталь попадает в исполнение, если у него заполнена ячейка "Кол-во" для этого исполнения.
В режиме редактирования конкретного ОС СП:
iSpc.ksSetSpcObjectColumnText(6, 1, 0, '15')# 15 шт в исполнении -00
iSpc.ksSetSpcObjectColumnText(6, 2, 0, '16')# 16 шт в исполнении -01
iSpc.ksSetSpcObjectColumnText(6, 3, 0, '17')# 17 шт в исполнении -02
...
Тут "6" - номер колонки "Кол-во";
следующая цифра - это порядковый номер исполнения (1 - основное, 2 - "-01" и т.д.) Могу ошибаться, давно не ковырял.
ksSetSpcObjectColumnText.png

Вират Лакх

Тут скорее всего должен участвовать номер блока исполнений.
Можно через API7 пойти (текущий объект спецификации, получение значения в колонке Количество):
Description = iApplication.ActiveDocument.SpecificationDescriptions.Active
i = Description.CurrentObject
SpcBaseObject = KompasAPI7.ISpecificationBaseObject(i)
columns = i.Columns
col = columns.Item(_нужный номер колонки спецификации_)
sc = SpcBaseObject.SummaryCount(col.ColumnTypeNumber, col.BlockNumber)
Количество колонок у раздела Документация отличается от других разделов.
Колонка Примечание может оказаться между первой и последующими колонками Количество (при смене стиля с обычного на групповую спецификацию).

Slaviation

Добрый день.
Посмотрите прилагаемый пример.