Jump to content

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


Павлуха

Recommended Posts

Павлуха

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

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

Кто поможет?

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

 

Link to post
Share on other sites


UnPinned posts
Chardash

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

Link to post
Share on other sites
Maik812

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

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

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

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

 

  • Нравится 1
  • Конфузия 1
Link to post
Share on other sites
Krusnik
44 минуты назад, Павлуха сказал:

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

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

Кто поможет?

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

А чего ждать?

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

Link to post
Share on other sites
Chardash
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

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

 

Edited by Chardash
  • Нравится 1
Link to post
Share on other sites
IgorT

Зачем Питон?

У SW на борту VBA. Там и макрос ваять следует.

  • Нравится 1
Link to post
Share on other sites
Maik812
1 час назад, Chardash сказал:

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

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

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

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

Link to post
Share on other sites
Chardash
11 минут назад, Maik812 сказал:

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

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

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

  • Нравится 1
Link to post
Share on other sites
7 часов назад, Maik812 сказал:

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

 

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

Link to post
Share on other sites
Maik812
13 минут назад, Shvg сказал:

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

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

Link to post
Share on other sites
Павлуха
06.02.2023 в 16:21, Krusnik сказал:

А чего ждать?

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

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

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

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

  • Нравится 1
Link to post
Share on other sites
07.02.2023 в 22:32, Павлуха сказал:

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

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

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

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

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

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

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

Edited by Shvg
Link to post
Share on other sites
Maik812
07.02.2023 в 22:32, Павлуха сказал:

Всё.

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

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

Link to post
Share on other sites
Kelny
22 часа назад, Павлуха сказал:

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

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

 

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

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

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

 

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

нужен макрос

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

Link to post
Share on other sites
Krusnik
6 часов назад, Maik812 сказал:

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

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

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

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

Link to post
Share on other sites
Srgwell
9 часов назад, Shvg сказал:

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

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

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

Edited by Srgwell
Link to post
Share on other sites
Павлуха
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 сказал:

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

 

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

Edited by Павлуха
Link to post
Share on other sites
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

 

 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.




  • Сообщения

    • 01aaddss
      merhaba, dmu50 makine ve post dosyasının bir simülasyonuna ihtiyacım var, bana yardımcı olabilir misiniz?
    • soklakov
      10^18 частиц. Да, мощнее имеющихся.
    • Golem
      Спасибо большое, я с таким не сталкивался.
    • VOleg
      Я бы сказал "Странный вопрос". За 40+ лет ни разу на чертеж детали не ставил номера позиций т.к. ни разу не нужно было. Но вот последние несколько лет люди начали спрашивать... Видимо на производство пришли "новые люди"... Вот, помогаю, как могу. Еще надо на листах металла на складе писать на какие детали куплен этот металл... И на трубы, что ли? А на сверлах писать какие отверстия нужно будет просверлить...
    • NGM
      Смотрю стандарт, и понимаю - сколько человек его прочтёт, столько трактовок и будет. Сплошные абстрактные формулировки; целый раздел про аттестацию, начинающийся с того, что она "не носит обязательный характер"... Зато, если буквально читать требования к специалисту к нормоконтролю - какой-то терминатор получается: и национальную систему стандартизации знает (всю!), и опыт по разработке КД/ТД имеет, и английским языком владеет. Вот для чего нужны такие ГОСТ-ы?! Заготовка для локального СТО, не более.  
    • NGM
      В идеальном мире розовых единорогов блюющих радугой подпись "Т. контр" в чертеже должен ставить технолог, который будет разрабатывать техпроцесс на проектируемое изделие. На практике я такого не встречал никогда. Предприятиям, где такое практикуется - моё заочное уважение. @Фарита, расслабьтесь. Лучшее, что Вы можете сделать у себя - организовать собственную группу конструкторов, которые будут: а) перечерчивать полученную КД под требования вашего производства, б) выносить мозги разработчику бесконечными ПИ. Поверьте, так работает абсолютное большинство предприятий промышленности - почти везде есть подразделения "конструкторского сопровождения производства", по факту являющиеся живыми примерами того, что ни ЕСКД, ни ЕСТД не работают и никогда не работали (во всяком случае, первое слово из обеих абревиатур).
    • vad0000
      Только одна клавиша не работает?
    • Fedor
      А может попробовать решить задачу  конструкторской оптимизации, то есть минимизировать величину расхождения с экспериментом... 
    • Metal_Cutter
      Это легко лечится, нужно отключить все Join-Up.
    • wake163
×
×
  • Create New...