• Объявления

    • admin

      Анонсы постов вашего блога в группах паяльника   04.09.2016

      Самые интересные посты будут анонсироваться в группах VK и FaceBook. Охват одного поста составляет несколько тысяч человек. Пример анонса записи про книгу Sprint Layout: в группе VK, в группе Facebook.  Поэтому если вы считаете, что ваш пост будет интересен аудитории, то не стесняйтесь - пишите, сделаем пост!
    • admin

      Просьба всем принять участие!   24.11.2017

      На форуме разыгрывается спектроанализатор Arinst SSA-TG LC (цена 18500 руб). Просьба всем перейти по ссылке ниже и принять участие!

ОколоCADовое

  • записей
    25
  • комментариев
    66
  • просмотра
    3 992

[Макросы SolidWorks] Пакетное сохранение конфигураций модели

aitras

1 289 просмотров

При создании 3D-моделей в SolidWorks часто удобно использовать такую вещь как конфигурации. Это разновидности детали или сборки внутри одного файла. Если рассматривать на примере переменного резистора, то конфигурациями удобно делать модели с различными валами:

2017-01-29_11-58-15.png

И если создавать конфигурации в SolidWorks можно при помощи таблиц, то вот сохранение всех конфигураций в раздельные STEP-файлы нужно делать вручную, что крайне неудобно. А если потом заметишь в модели ошибку и недочет, после исправления которого нужно все снова сохранять...

Но в SolidWorks же есть VBA! А значит можно написать макрос, который все это автоматизирует. После некоторого поиска и копания в VBA получился следующий код:

Option Explicit
    Sub main()
    Dim swApp As SldWorks.SldWorks
    Set swApp = Application.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Set swModel = swApp.ActiveDoc
    Dim swConfig As SldWorks.Configuration
    Set swConfig = swModel.GetActiveConfiguration
    Dim fname, current As String
    Dim step As Long
    Dim configs As Variant
    
    step = swApp.SetUserPreferenceIntegerValue(swStepAP, 214) 'Сохранять в формат STEP AP214
    fname = swModel.GetPathName
    fname = Mid(fname, 1, InStr(fname, ".") - 1) 'Записать путь к файлу с именем файла без расширения
    current = swModel.GetActiveConfiguration.name 'Имя текущей конфигурация
    configs = swModel.GetConfigurationNames 'В переменную записывается весь список конфигураций
     
    Dim i As Long
    For i = 0 To UBound(configs) 'Цикл по всем конфигурациям модели
        swModel.ShowConfiguration2 (configs(i))
        Dim name As String
        name = fname + configs(i) + ".STEP"   'Путь к файлу для новой конфигурации
        Call swModel.SaveAs3(name, 0, 0) 'Сохраняем как STEP открытый документ
    Next i 'К следующей конфигурации
    
    MsgBox ("Saved " + CStr(i) + " file(s)!"), vbInformation, "Done"
    swModel.ShowConfiguration2 (current) 'Возвращаем документ к исходной конфигурации
End Sub

Работает все крайне просто, по комментариям, думаю, будет понятно. Также файл макроса прикладываю отдельно. Останется только его запустить.

Простая версия: Скачать

UPD 14/03/17:

Макросу добавлен интерфейс, позволяющий:

1. Выбирать префикс к именам создаваемых файлов и имя подпапки, создаваемой для сохранения:

2017-03-14_18-58-28.png2017-03-14_18-58-49.png

2. Наблюдать процесс сохранения с отображением процентов и списка созданных файлов:

2017-03-14_18-49-54.png

3. Прерывать выполнение макроса:

2017-03-14_19-02-15.png

Скачать

  • Одобряю 2


7 комментариев


Рекомендуемые комментарии

Приветик.
Я вот за SolidWorks пытался сесть уже раз пять для освоения, но душа как то легла к Solid Edge :)

А сейчас похоже придется всетаки SW осваивать и плотно.
 

Не подскажешь - онлайн курсы/вебинары/книжки - куда тыкнуться сначала?
Желательно не разорваный по кускам материал, а програмное обучение. Но можно и кусками инфы накрайняк.

Изменено пользователем Ulis

Поделиться комментарием


Ссылка на комментарий

Добрый день.

Я его осваивал как-то самостоятельно и постепенно с простых моделей. Если и смотрел какие-то видеоуроки для понимания каких-либо инструментов, то совершенно случайные на ютубе. Книг не читал, только встроенную справку. Поэтому подсказать что-то конкретное не смогу.

Поделиться комментарием


Ссылка на комментарий

ОК. Это нормально. Таким же способом изучал Solid Edge ))
 

Поделиться комментарием


Ссылка на комментарий

Добавил макросу интерфейс, который позволяет:

1. Выбирать префикс к именам создаваемых файлов и имя подпапки, создаваемой для сохранения.
2. Наблюдать процесс сохранения с отображением процентов и списка созданных файлов.
3. Прерывать выполнение макроса.

2017-03-14_18-49-54.png

Файл приложил выше.

Поделиться комментарием


Ссылка на комментарий

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

PD.SLDPRT

Поделиться комментарием


Ссылка на комментарий

в dxf - идеальный вариант, но можно и в формате IGES, просто этот формат ест программа на лазере), если получится - с меня пиво)!!

Изменено пользователем de.dmitry

Поделиться комментарием


Ссылка на комментарий

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Комментарии блога

    • Я под столом, запишу на память!  PS Аватарка вырезана с этой фотки. Я с женой на дне рождения тёщи. В графинчике то, от чего моя рожа красная
    • Да, механическими немного проще, ибо электроника в механике, тягомотна в ремонте, на одни часы уходит от 20 дней, плюс значение имеет температура помещения.  Механика же дороже там одно масло стоит 700 грн.  а нужно несколько типов масел. Так что личное дело, мне например не нравится на Вашей аватаре лице красного цвета, это признак плохого наладчика.  Камни же в часах нескольких видов но обсуждать не стану. Французское названия янтаря (ambre) было заимствовано из арабского языка ( ʿanbar عنبر). Арабы считали камень затвердевшей росой, упавшей с неба. После трансформации в amber слово вошло во многие современные романские и германские языки. В Германии янтарь назвали нем. Bernstein — от нем. Brennenstein (горючий камень): он легко воспламеняется и горит красивым пламенем, издавая при этом аромат[8]. Средненижненемецкое название распространилось также в Польше (польск. bursztyn), от которого в свою очередь произошли белорусское и украинское название янтаря — бурштын[9]. Данные часы выпускали и "Маяк", "Слава", "Янтарь" и кто-то ещё
    • В почках? Часовые камни из сапфира делают.
      У меня последние механические часы остались на старой квартире после предпоследнего переезда (в 2000 году). Сейчас три штуки электронных. Одни самодельные с люминесцентным индикатором, висят в спальне, в режиме пониженной яркости, заодно играют роль ночника. Индикатор очень яркий, куплены были в виде конструктора году примерно 91-м, но в набор не входил трансформатор питания. Четыре года назад попался под руку трансформатор от калькулятора, как раз подходящий, собрал наконец-то конструктор. Правда, со своими переделками, звук будильника более приятный сделал. Вторые с большими цифрами из светодиодов (21 штука на цифру), висят в зале. Третьи китайские с ЖКИ индикатором и будильником. На случай отключения электричества. Так как в самодельных без сетевого питания отключается индикация, для экономии батареек. Хотя сами часы ходят, после включения время покажут точно.
      Наручные часы перестал носить после того, как "Монтана 7 мелодий", с металлическим браслетом, чуть не расплавилась на руке. Вихревые токи на этот браслет навелись, залез куда не нужно было. Было это в 89 году, в армии.
      Сейчас вылизывать ход электромеханических часов считаю идиотизмом. При существовании гораздо более надёжных и долговечных электронных. Лучше бы чисто механическими занялся, реставрацией антиквариата, а не винтажа. Пользы было бы больше, в том числе и в материальном смысле: им батарейки не нужны...
    • Ой, сколько глупости.  "Янтарь" это вид камня кристаллов, а часы вот такого типа сняты из производства ибо увлеклись кварцевыми.  Но у каждых часов есть своя технология как что-то уникальное, сам не поверю, что эти часы исполнялись для наручные там электроника имела повышенную стабилизацию.  Наручные часы в таком исполнении ойойо... Лично я оцениваю часы по точности и особенности удара, удивило что они долговечны, все из металла даже стрелки, и камни Янтарь(четыре), если вставить батарейку за 42 грн. то остановятся наверное через 8 лет. Выберите дизайн, например каминные 1971 года(узнайте в Интернете о "каминные часы") это пожалуй из категории декора. Итожу тему: конкретные часы, не зависимы от падения питания в пределах 200 мВ, но практика показала, что частота серьезно срывается при падении на 280 мВ, это и объясняет долгий ход, купите батарейку за 42 грн и выдержит наверное лет восемь.  Конденсатор тоже выгодно менять на Лов так как они менее зависят от обратных токов, что очевидно отдает катушка и сокращает жизнь конденсатора в связи с этим в новых сериях часов я наблюдаю разумные разработки, а установить современный конденсатор и точность и режимы повышаются. 
    • Яркий пример винтажа - китайские (или польско - китайские) радиоприемники с современной начинкой, но корпус выполнен в стиле 40х - 60х годов прошлого века. Они выглядят красиво и украшают интерьер. Аляповатая штамповка Янтаря с ними и рядом не стояла.
  • Записи блога