Альтернативное хранилище позиций

Автор freestyler, 12.05.26, 11:50:22

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

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

freestyler

Цитата: lavgirb от 12.05.26, 16:38:31Я бы попробовал изменить (или даже удалить) Внешний ключ изделия у компонента и посмотреть что случится с номером позиции в Вашей программе. Просто из любопытства)
Внешний ключ не влияет, проверил. Влияет обозначение (для стандартных - наименование).
В БД оно тоже позиции не пишет/не читает. Проверил открывая на разных машинах.

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

freestyler

Цитата: СВ от 12.05.26, 15:30:161 - современная СП в Компасе - достаточно удобная. Умеют ли ваши люди в ней работать?
2 - что в вашей программе такого, что предпочитаете её стандартной? Что-то многое дописываете вручную, ...?
Уже несовпадение позиций у Компаса и у вас - странно. У вас другой подход к порядку деталей в СП? Не стесняйтесь, заканчивайте темнить, рассказывайте подробно.

Самое простое - выложить программу. И добавить:- Пользуйтесь кто хочет.
Тогда появится шанс на её "ремонт".

Вы немного неправильно поняли термин "сторонняя программа" :-) Это кусок большой коммерческой PDM системы, одного из лидеров на рынке РФ. Стоимость одного РМ +/- как у Компаса. Поэтому "выложить" не могу, с сожалению. И даже озвучивать название не хотел бы.
К сожалению, разработчику этого продукта не дают покоя лавры Стива Джобса и они ответили "мы лучше вас знаем, как вам надо работать". Поэтому приходится ее реверсить чтобы подправить под наши требования.

Вариант использовать компасовскую СП даже не рассматривается, т.к. она не имеет, не будет (и не должна) иметь многих функций. Таких как интеграция именно с конкретной PDM, интеграция с БД НСИ, интеграция с модулем технологической подготовки, интеграция с другими CAD (Solid, ProE, Autocad) и т.д. Это просто вещи совершенно разного уровня.

lavgirb

Цитата: freestyler от 13.05.26, 09:33:01Внешний ключ не влияет, проверил. Влияет обозначение (для стандартных - наименование).
Так ведь обозначение компонента входит в текст внешнего ключа.

Цитата: freestyler от 13.05.26, 09:33:01Явно это сидит в файле.
ТЕСТ.123456.814 ЭСБ_Тестовый объект УИТ 20.03.2026.a3d
переименуйте в
ТЕСТ.123456.814 ЭСБ_Тестовый объект УИТ 20.03.2026.zip
Зайдите.
Посмотрите MetaProductInfo. Может там что-то найдете.

Можно сделать так.
Сохранить сборку программой сначала с номером поз. 777, потом ее копию с номером 888. Сравнить MetaProductInfo
+ Благодарностей: 1

freestyler

Цитата: lavgirb от 13.05.26, 10:19:37Так ведь обозначение компонента входит в текст внешнего ключа.
Ну внешний ключ по сути это и есть GUID в PDM системе плюс обозначение. Но привязка позиции явно идет только по обозначению из атрибута "Обозначение".

Цитата: lavgirb от 13.05.26, 10:19:37Сохранить сборку программой сначала с номером поз. 777, потом ее копию с номером 888. Сравнить MetaProductInfo
А вот за это огромное спасибище, не знал что так можно, MetaProductInfo мне в будущем сильно пригодится!!

Но, к сожалению, в данном случае MetaProductInfo идентичны. Различия есть в Contents, но они не человекочитаемы (

lavgirb

У компонентов есть уникальный идентификатор объекта. Может быть его значение используется для хранения номера позиции в БД...
Посмотрите здесь
Просто как вариант.

Еще когда-то здесь были сообщения, что в файле можно где-то хранить чуть ли не любые данные. Записывать и считывать программно.
Но это не точно. Может быть я не так понял. И тема была не про это. Может быть я ошибаюсь.
+ Благодарностей: 1

freestyler

Цитата: lavgirb от 13.05.26, 13:41:45У компонентов есть уникальный идентификатор объекта. Может быть его значение используется для хранения номера позиции в БД...
Посмотрите здесь
Просто как вариант.

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

Спасибо!

Михаил88

Цитата: lavgirb от 13.05.26, 13:41:45Еще когда-то здесь были сообщения, что в файле можно где-то хранить чуть ли не любые данные

Тоже пришла мысль, что может быть здесь, но не могу проверить, файлы в 22 версии. Если пересохранить хотя бы в 21 версию, попробую там посмотреть, или сами можете глянуть.
+ Благодарностей: 1


Михаил88

Запустил на сборке. Вот, что выдал IUserDataStorage.GetObject

IntermechCustomData
('cb$SPDataInModel', <memory at 0x00000220E03FB940>, 0)

IntermechCustomData
('cb$SPDataInDrawing', <memory at 0x000001B1A3237940>, 1)

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

lavgirb

Цитата: Михаил88 от 13.05.26, 18:44:43Запустил на сборке. Вот, что выдал IUserDataStorage.GetObject

IntermechCustomData
('cb$SPDataInModel', <memory at 0x00000220E03FB940>, 0)

IntermechCustomData
('cb$SPDataInDrawing', <memory at 0x000001B1A3237940>, 1)


Нда, 777 здесь не обнаружить.
+ Благодарностей: 1

Михаил88

#30
Цитата: lavgirb от 14.05.26, 09:52:10Нда, 777 здесь не обнаружить.

Да, я вчера попробовал разобрать с нейросетью, но никак.
+ Благодарностей: 1

lavgirb

Цитата: Михаил88 от 14.05.26, 09:54:23Да, я вчера попробовал разобрать с нейросетью, но ни как.
Однако теперь известен разработчик, который прячет номера позиций.
Но это ничего не меняет в плане поиска ответа по теме. )
+ Благодарностей: 1

Михаил88

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

freestyler

Цитата: Михаил88 от 13.05.26, 18:44:43Запустил на сборке. Вот, что выдал IUserDataStorage.GetObject

IntermechCustomData
('cb$SPDataInModel', <memory at 0x00000220E03FB940>, 0)

IntermechCustomData
('cb$SPDataInDrawing', <memory at 0x000001B1A3237940>, 1)

Да, очень похоже что это оно и есть, большое спасибо!
Где лежит теперь знаю, осталось понять как оттуда информацию извлечь.. Боюсь правда что ничего не получится(