Перейти к публикации

А кто может написать макрос?


Павлуха

Рекомендованные сообщения

Доброго времени суток.

Задумал я одно дельце, но для этого нужен макрос разделения имени файла на наименование и обозначение.

Кто поможет?

Подробнее опишу задачи макроса.

 

Ссылка на сообщение
Поделиться на других сайтах


UnPinned posts

Нет в задании о том, какие языки программирования используются, как обрабатывать файлы, либо они в папке, либо список в файле. С виду несложное задание, поищите статьи на тему регулярные выражения. Если просто список названий в файле, можно в notepad++ обработать используя регулярки. Если файлы в папке, можете подобные задачи на питон погуглить, полно таких задач. Хотя и в любом другом ЯП то же самое можно сделать

Ссылка на сообщение
Поделиться на других сайтах

А чем инструменты Солида не помогают? Что есть и во что нужно имя превратить?

В Тотале командоре есть инструмент переименования.. им можно.

есть и плагин "экспандер".

Кто бы сделал АПИ плагин к ТС?!

 

Ссылка на сообщение
Поделиться на других сайтах
44 минуты назад, Павлуха сказал:

Доброго времени суток.

Задумал я одно дельце, но для этого нужен макрос разделения имени файла на наименование и обозначение.

Кто поможет?

Подробнее опишу задачи макроса.

А чего ждать?

Пишите сразу все задачи.

Ссылка на сообщение
Поделиться на других сайтах
import os
import csv

def get_filenames(folder_path):
    filenames = []
    extensions = []
    for filename in os.listdir(folder_path):
        name, ext = os.path.splitext(filename)
        filenames.append(name)
        extensions.append(ext)
    return filenames, extensions

def save_to_csv(filenames, extensions, file_path):
    with open(file_path, 'w', newline='') as f:
        writer = csv.writer(f)
        writer.writerow(['filename', 'extension'])
        for i in range(len(filenames)):
            writer.writerow([filenames[i], extensions[i]])
 
if __name__ == '__main__':
    folder_path = 'c:/temp'
    filenames, extensions = get_filenames(folder_path)
    save_to_csv(filenames, extensions, f'{folder_path}/filenames.csv')

 

Скачайте и установите питон, pycharm бесплатную версию, создайте в нем проект и файл с расширением .py. Измените folder_path на свой, откуда читаете файлы. Программа проходит по файлам этой папки и сохраняет результат в нее же в файл filenames.csv

Или просто питон скачайте, создайте файл program.py с содержанием выше. Потом создайте батник со следующим содержимым изменив в нем путь на нужный

 

@echo off
python path\to\program.py
pause

И запускайте его

 

Изменено пользователем Chardash
Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Chardash сказал:

Программа проходит по файлам этой папки и сохраняет результат в нее же в файл filenames.csv

Или просто питон скачайте, создайте файл program.py с содержанием выше. Потом создайте батник со следующим содержимым изменив в нем путь на нужный

А так сможет питон ?

Переменование.gif

Ссылка на сообщение
Поделиться на других сайтах
11 минут назад, Maik812 сказал:

А так сможет питон ?

Переменование.gif

@Maik812 да, на Python можете написать программу, которая будет делать то, что Вам нужно. Но я эту задачу тоже выполняю в TC)

Ссылка на сообщение
Поделиться на других сайтах
7 часов назад, Maik812 сказал:

А так сможет питон ?

 

А ссылки при таком переименовании не теряются?

Ссылка на сообщение
Поделиться на других сайтах
13 минут назад, Shvg сказал:

А ссылки при таком переименовании не теряются?

Тут теряются... так как АПИ нету плагина, давно прошу. Есть у @brigval свой файловый менеджер. Но он делать  плагин к ТС не желает. А функционал у ТС самый мощный по плагинам и др САПР поддержка в частности КОМПАС там АПИ плагин есть..

Ссылка на сообщение
Поделиться на других сайтах
06.02.2023 в 16:21, Krusnik сказал:

А чего ждать?

Пишите сразу все задачи.

Нажимаем на кнопку, и получаем следующее:
1. Если название детали без разделителя, и не содержит надпись в формате ХХ.ХХ, то заносим название в свойства под названием Имя.
2. Если название детали без разделителя, и  содержит надпись в формате ХХ.ХХ, то заносим название в свойства под названием Номер.
3. Если имеет разделитель, и выглядит как Обозначение_наименование, то первое заносим под названием Номер, второе Имя.
4. Если название конфигурации содержит 00, то ничего никуда не заносим.
5. Если название конфигурации отличается от 00,  без разделителя, и не содержит надпись в формате ХХ.ХХ, то заносим название в свойства под названием Имя конф во вкладку конфигурации.
6. Если название конфигурации отличается от 00,  без разделителя, и содержит надпись в формате ХХ.ХХ, то заносим название в свойства под названием Номер конф во вкладку конфигурации.
7. Если имеет разделитель, и выглядит как Обозначение_наименование, то первое заносим под названием Номер конф, второе Имя конф во вкладку конфигурации.

Всё.
Остальное делается в таббилдере.

Да, должно применяться для всех деталей и подсборок в сборке пакетно.

Ссылка на сообщение
Поделиться на других сайтах
07.02.2023 в 22:32, Павлуха сказал:

Нажимаем на кнопку, и получаем следующее:
1. Если название детали без разделителя, и не содержит надпись в формате ХХ.ХХ, то заносим название в свойства под названием Имя.
2. Если название детали без разделителя, и  содержит надпись в формате ХХ.ХХ, то заносим название в свойства под названием Номер.
3. Если имеет разделитель, и выглядит как Обозначение_наименование, то первое заносим под названием Номер, второе Имя.
4. Если название конфигурации содержит 00, то ничего никуда не заносим.
5. Если название конфигурации отличается от 00,  без разделителя, и не содержит надпись в формате ХХ.ХХ, то заносим название в свойства под названием Имя конф во вкладку конфигурации.
6. Если название конфигурации отличается от 00,  без разделителя, и содержит надпись в формате ХХ.ХХ, то заносим название в свойства под названием Номер конф во вкладку конфигурации.
7. Если имеет разделитель, и выглядит как Обозначение_наименование, то первое заносим под названием Номер конф, второе Имя конф во вкладку конфигурации.

Всё.
Остальное делается в таббилдере.

Да, должно применяться для всех деталей и подсборок в сборке пакетно.

1. Формат ХХ.ХХ - это буквы, цифры и точка? Больше никаких символов не используется?

3. Разделитель  _  (знак подчеркивания) используется только один раз в названии файла?

4. Название конфигурации, например, 100, содержащее 00 не бывает?

Какой SW используется? Сборка полностью решенная?

Изменено пользователем Shvg
Ссылка на сообщение
Поделиться на других сайтах
07.02.2023 в 22:32, Павлуха сказал:

Всё.

Ни хрена не понятно.. Вы бы пример прикрепили бы.. что куда заносится теряешь на 3тьем пункте..

Название где ? в Имени файла? В Имени "Обозначение " ?

Ссылка на сообщение
Поделиться на других сайтах
22 часа назад, Павлуха сказал:

Так никто и не поможет?

Каков бюджет и сроки?

 

07.02.2023 в 22:32, Павлуха сказал:

Нажимаем на кнопку, и получаем

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

 

06.02.2023 в 13:36, Павлуха сказал:

нужен макрос

Попробуйте сами написать - это не сложно.

Ссылка на сообщение
Поделиться на других сайтах
6 часов назад, Maik812 сказал:

Ни хрена не понятно.. Вы бы пример прикрепили бы.. что куда заносится теряешь на 3тьем пункте..

Название где ? в Имени файла? В Имени "Обозначение " ?

Вроде всё понятно.

Название детали = имя файла (FileName).

Ссылка на сообщение
Поделиться на других сайтах
9 часов назад, Shvg сказал:

Нажимаем на кнопку, и получаем следующее:

Я так понял, что нажимаем кнопку при открытой головной сборке, и макрос должен прошарить все компоненты.

А если все равно приходиться открывать каждый, тогда используйте, уже дотёртый до дыр, MProp из набора SWPlus_v2017 абсолютно бесплатный

Изменено пользователем Srgwell
Ссылка на сообщение
Поделиться на других сайтах
40 минут назад, Srgwell сказал:

Я так понял, что нажимаем кнопку при открытой головной сборке, и макрос должен прошарить все компоненты.

А если все равно приходиться открывать каждый, тогда используйте, уже дотёртый до дыр, MProp из набора SWPlus_v2017 абсолютно бесплатный

 

Да, так и должно быть.

MProp не работает с М2 дисками почему-то.

Я когда комп новый собрал, так и не смог его поставить.

И тут задача чуть более специфичная, чем простой MProp.

 

9 часов назад, Shvg сказал:

1. Формат ХХ.ХХ - это буквы, цифры и точка? Больше никаких символов не используется?

3. Разделитель  _  (знак подчеркивания) используется только один раз в названии файла?

4. Название конфигурации, например, 100, содержащее 00 не бывает?

Какой SW используется? Сборка полностью решенная?

 

1. Это цифры и точки

2. Да

3. Не содержащее, 00 а именно 00.

4. 2022, ну и с переходом на будущие версии

5. Да.

 

2 часа назад, Kelny сказал:

Попробуйте сами написать - это не сложно.

 

Ткните пальце как.

Изменено пользователем Павлуха
Ссылка на сообщение
Поделиться на других сайтах
29 минут назад, Павлуха сказал:

Ткните пальце как.

https://help.solidworks.com/2010/russian/solidworks/sldworks/legacyhelp/sldworks/fundamentals/record_macro.htm

https://help.solidworks.com/2010/russian/solidworks/sldworks/legacyhelp/sldworks/fundamentals/vba.htm

Примеры в справке, например:

https://help.solidworks.com/2010/english/api/sldworksapi/get_custom_properties_for_configuration_example_vb.htm

Вопросы по VBA в справке редактора макросов или любом поисковике в интернете, например, VBA разделить строку по разделителю:

https://vremya-ne-zhdet.ru/vba-excel/funktsiya-split-parametry/

https://yandex.ru/search/?text=VBA+разделить+строку+по+разделителю&lr=216

 

 

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...