В какую сборку входит деталь?

Автор Alekzander, 11.07.22, 13:57:49

« предыдущая - следующая »

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

Вират Лакх

Интересная тема. Как уже показали выше, поиск текста внутри файлов документов компаса можно осуществить с помощью кодировки UTF-16LE (она же просто UTF-16).
Поиск можно осуществить и с помощью Double Commander, и через Everything. Последняя мгновенно предоставляет нам список файлов, среди которых будем искать, что даст ускорение процесса по сравнению с обычным поиском. Кроме этого, у Everything есть API.
- В старых компасах (до 15.1 включительно) имя файла детали такой поиск находит в сборках, а в чертежах - нет.
Получается, для старых форматов поиск применения детали даже проще, чем для новых, где приходится сначала распаковать документ.
- В версии 16.1 применение нужно искать в MetaInfo с кодировкой UTF-16BE.
- В новых версиях (может по условию существования файла внутри архива) искать в Sources с кодировкой UTF-16BE.
-----------------
Итого.
1) Какой файл или список файлов ищем.
2) Берем API Everything или другие средства получения всех файлов сборок a3d на компе и по сети.
3) Перебираем сборки и ищем имя внутри каждого файла:
а) Если файл является архивом (PK), то ищем в Sources или MetaInfo.
б) Иначе файл является сразу документом компаса (KF). Ищем по нему.
+ Благодарностей: 1

Михаил88

А Вы пробовали в Everything
искать слово или фразу внутри файла?
Screenshot_1.png
У меня что то не находит. Или делаю что то не так.

Everything пользуюсь постоянно, но такой поиск не пробовал.

Вират Лакх

Тип содержимого - та же кодировка.

Alekzander

Добра всем!

Цитата: Валерий Изранов от 14.07.22, 06:54:31Вопрос, поставленный автором темы звучал так:
Как по модели детали узнать в какую сборку она входит?
...
Да и никому это совершенно не нужно.

Все интереснее...
А это кто так решил? Или так - из чего это следует?





IgorT

Цитата: Alekzander от 14.07.22, 08:11:54Добра всем!

Все интереснее...
А это кто так решил? Или так - из чего это следует?

Это он так учит мир как надо жить. Ну надо человеку кого-то научить.

Подумалось. А может надо искать не по всему файлу модели/чертежа, а в ОС? Они же так вроде как прописаны. Не?
Хотя я не знаю как организованы файлы Компаса...

Михаил88

Цитата: Вират Лакх от 14.07.22, 08:06:53Тип содержимого - та же кодировка.
Получается Everything c таким поиском не может заглянуть в содержимое файла. И в MetaProductInfo найти нужный текст. Если MetaProductInfo извлечь из архива(т.е. из 3d модели) то находит и показывает, что в MetaProductInfo присутствует нужный текст.
Screenshot_2.png

Alekzander

Цитата: IgorT от 14.07.22, 08:15:56Это он так учит мир как надо жить. Ну надо человеку кого-то научить.

Цитата: Валерий Изранов от 14.07.22, 06:54:31Да и никому это совершенно не нужно.

///Излишне говорить, что простым людям нечего делать на таких, с позволения сказать, кроватях.///
(х/ф 12 стульев)

Цитата: IgorT от 14.07.22, 08:15:56Подумалось. А может надо искать не по всему файлу модели/чертежа, а в ОС? Они же так вроде как прописаны. Не?
Хотя я не знаю как организованы файлы Компаса...

Я рассуждал просто. Если я открываю сборку - она находит компоненты и подтягивает (ну или не находит если их переместили или удалили)
Связь существует и она отрабатывается
Было бы логично если бы существовала и обратная

Ну то есть если деталь уже не входит ни в одну сборку - таких связей не будет. Если входит - она отобразится.

Вират Лакх

Цитата: Михаил88 от 14.07.22, 08:24:43Получается Everything c таким поиском не может заглянуть в содержимое файла.
У Everything, получается, пока нет такой опции как Искать в архивах (при этом ему надо знать, что a3d тоже является архивом) и Искать по свойствам, которые есть в винде и можно включить их отображение в проводнике, например, Обозначение, Наименование, Версия. Или я не нашел. Есть, конечно, плагины к коммандерам, но это другая история.
Михаил88, а как вы распаковываете документ компаса? В смысле не код и механизм, а куда? Новые файлы записываются на диск? Если так, то это плохо... Как бы такое организовать, чтобы весь процесс происходил в оперативке и не мутызгать HDD или SSD...

Михаил88

Цитата: Вират Лакх от 14.07.22, 09:21:38У Everything, получается, пока нет такой опции как Искать в архивах (при этом ему надо знать, что a3d тоже является архивом) и Искать по свойствам, которые есть в винде и можно включить их отображение в проводнике, например, Обозначение, Наименование, Версия. Или я не нашел. Есть, конечно, плагины к коммандерам, но это другая история.
Михаил88, а как вы распаковываете документ компаса? В смысле не код и механизм, а куда? Новые файлы записываются на диск? Если так, то это плохо... Как бы такое организовать, чтобы весь процесс происходил в оперативке и не мутызгать HDD или SSD...
А я и не распаковываю, я напрямую читаю. Модуль zipfile. Если надо могу скинуть сюда py файлик с тем что наработал, но чуть позже нет под рукой.

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

Для людей работающих по ночам и встающих довольно поздно.
В сообщении 79 описано, как за 5 минут удалить в папке все ненужные файлы, оставшиеся после редактирования сборки.
Не пропустите прочитать.

СВ

Предложение для тех, кто начал глубоко вникать в вопрос (Михаил, Владимир Сергеевич и др.):
один товарищ (выше) представил вариант удаления лишних моделей применительно только к конкретному проекту. И это изрядно востребованная задача - создать проект и удалить лишние модели.
Сможете ли создать решение под этот конкретный вопрос?
Либо это будет известная программа, для которой нужна будет только "инструкция" ("бумажная" или видео), либо своя программа (тоже с "инструкцией"). Вполне возможно, что нет смысла создавать "узко специализированное решение", если универсальное решение окажется ничуть не сложнее, но если "узко специализированное" будет гораздо проще, то почему бы его не сделать? (И выложить в новой теме м ОЧЕНЬ говорящим названием.)

Alekzander

Цитата: Валерий Изранов от 14.07.22, 06:54:31Потом вопрос несколько изменился. Его очень удачно сформулировал СВ
"Нужно удалить файл. А можно ли?"

Как автор темы могу с уверенностью сказать, что вопрос ничуть не изменился.
"Как узнать в какую сборку входит деталь?"

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

Цитата: Валерий Изранов от 14.07.22, 06:54:31Я предлагаю очень необычное решение. Предлагаю НЕ удалять НЕнужные файлы в папке, а скопировать нужные в любую пустую папку.

С обычно пользуюсь комплектовщиком Компас, чтобы скопировать в другую папку только нужные файлы.
Но вопрос был другой

IgorT

Цитата: СВ от 14.07.22, 10:51:36...
один товарищ (выше) представил вариант удаления лишних моделей применительно только к конкретному проекту. И это изрядно востребованная задача - создать проект и удалить лишние модели.
...
Комплектовщик делает это.

СВ

Комплектовщик собирает, а дальше требуется удалить лишнее. Причём не обязательно всё.

Михаил88

Цитата: СВ от 14.07.22, 10:51:36И это изрядно востребованная задача - создать проект и удалить лишние модели.
Сможете ли создать решение под этот конкретный вопрос?

Я уже давно написал такую программу. После окончания проекта открываем его главную сборку. Запускаем программу. Она удаляет все файлы с указанными расширениями, которые не участвуют в сборке. Дополнительно также удаляет все не нужные файлы.
Перед удаление архивирует указанную папку сделал на всякий случай.

Вы это имели ввиду?

СВ

 Примерно так, но с возможностью, так сказать, ручной сортировка на удаление (например, есть "спец.файлы" для чертежей, где Детали/Сборки показаны в другом положении/состоянии, и др. нужные ситуации, когда нельзя удалять).

Михаил88

Цитата: СВ от 14.07.22, 11:14:34Примерно так, но с возможностью, так сказать, ручной сортировка на удаление
а что это значит опишите подробнее?

СВ

 На примере (чисто условно) пружины: для чертежа - одна модель, для Сборки - другие, сжатые, например. Много ещё чего бывает ...

p3452

Цитата: СВ от 14.07.22, 11:14:34Примерно так, но с возможностью, так сказать, ручной сортировка на удаление (например, есть "спец.файлы" для чертежей, где Детали/Сборки показаны в другом положении/состоянии, и др. нужные ситуации, когда нельзя удалять).
Чем больше читаю форум, тем больше убеждаюсь в правильности выбранной стратегии - программа "оболочка"(в помощь проектировщику, конструктору) к CAD и не только к Компас!!!

Михаил88

14.07.22, 11:27:59 #99 Последнее редактирование: 14.07.22, 12:13:47 от Михаил88
Можно, как предложение создать некую папку в проекте из которой ничего удаляться не будет туда и можете разместить то что не нужно удалять.
Или как то такие файлы обозначить, чтобы программа их не удаляла. Как это сделать тут вариантов можно много придумать.