Внешние и лишние файлы моделей и чертежей в папке с проектом

Автор Вират Лакх, 17.10.23, 07:07:27

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

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

Вират Лакх

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

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

Цитата: Вират Лакх от 17.10.23, 07:07:27Макрос отобразит внешние файлы относительно папки выбранных файлов,
А зачем это надо?


evgs

На 62-й строчке ошибку выдает

files = glob.iglob(f'{directory}**\\*.?3d', recursive = True)

Вират Лакх

У вас старый питон:
1) Начиная с версии 3.6 в Python появился новый тип строк — f-строки.
2) Changed in version 3.5: Support for recursive globs using "**".
+ Благодарностей: 1

Вират Лакх

Новая версия:
1) Если компас не запущен, то сообщает об этом.
2) Переименовать лишние модели предлагает только верхний уровень или все уровни. На случай, когда есть подкаталог с "суперсборкой" или просто другими моделями.
3) Теперь можно макрос запустить, указав главные сборки как параметры. В командной строке это делать неудобно, а вот перетащить на файл макроса файл(ы) сборки - очень даже хорошо.
Ув. python'исты, оказывается, можно перетащить на файл скрипта другие файлы. Они передадутся как параметры.
Для этого нужно в реестре добавить DropHandler. У кого-то может сразу работает после перезапуска Проводника, но у меня по указанной ниже методике долго не получалось, пока не прочитал: "On Windows 10, I had to double click on the PY file and open with Python once in order for the drop handler to be recognized." Подозреваю, что сие действие копирует нужное из HKEY_CLASSES_ROOT в такое же в HKEY_LOCAL_MACHINE\SOFTWARE\Classes
https://stackoverflow.com/questions/142844/drag-and-drop-onto-python-script-in-windows-explorer
+ Благодарностей: 3

Toptotal

Прога нормальная, но мне важно и я привык при открытии сборки и ее закрытии обновляется дата создания или редактирования файлов входящих. Так в Солиде сделано, я открыл сборку и закрыл, цвета файлов новых изменились видишь сразу что входит в эту сборку. У меня в ТС цвето-временной фильтр шаблон, раскрашивает файлы от 0минут-3 дней разными оттенками, и я вижу по ним когда файлы открывались,появились и редактировались. Я не представляю как без цветовой дифференциации файлов работать можно..
Цитата: Вират Лакх от 20.10.23, 12:59:02оказывается, можно перетащить на файл скрипта другие файлы. Они передадутся как параметры.
В Тотале командере размещаете на баре любой скрипт или программу и перетаскиваете на эту иконку файлы , будет так же. Бары можно делать своипо несколько штук и убирающиеся. Вопщем что хочешь и как. Еще есть параметр строки при передачи фала,  программа F4 , с передачей файлов на обработку как одним списком так и разных окнах.

https://youtu.be/2FgWNKgSvqY

Helicoid

А как этот макрос запускать? Пользуюсь некоторыми макросами с расширениями .pyw - работают. С этим .py, если запускать так же как .pyw, то появляется только синее окно портативного питона и на мгновение черное окно. Компас v21.

Вират Лакх

py от pyw отличается наличием консоли - черного окна.
Что вам этот старый портативный питон сдался, который идёт в комплекте с компас-макро.
Поставьте новый на сегодняшний день https://www.python.org/downloads/ плюс из командной строки "pip install pywin32".

Умка

Много макросов на старом пайтоне, как их перевести на новый? Вот и держим python 2.6.

Вират Лакх

Основное:
Перед строками убрать u. Например, u'Текст' -> 'Текст'
Принты сделать функцией: Например, print 'abc' -> print('abc')
Ввод строки в окне: raw_input заменить на input
Импорт Tkinter -> tkinter, tkMessageBox -> tkinter.messagebox
Если используется .decode('cp1251'), то убрать её.
Вроде ещё кодировку файла скрипта заменить на UTF-8 (без BOM).
+ Благодарностей: 1