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

Заморозка элементов


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

Подскажите, пожалуйста, можно ли автоматизировать процесс заморозки для большого числа файлов?

Т.е. чтоб не открывать один за другим. SW 2016.

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


7 часов назад, Alex1986 сказал:

можно ли автоматизировать процесс заморозки для большого числа файлов?

Т.е. чтоб не открывать один за другим.

Вот такой макрос двигает полосу заморозки и сохраняет детали из окна сборки (можно и в окне детали элементы замораживать).

 В окне запроса ввести 1 - заморозить, 4 - разморозить (sw 2015 и выше должен работать):

Скрытый текст

Option Explicit
    Dim swApp                       As SldWorks.SldWorks
    Dim swModel                     As SldWorks.ModelDoc2
    Dim swAssy                      As SldWorks.AssemblyDoc
    Dim swConf                      As SldWorks.Configuration
    Dim swRootComp                  As SldWorks.Component2
    Dim prtFreeze                   As Integer
    Dim lRet                        As Long
    Dim boolstatus                  As Boolean
    Dim Errors                      As Long
    Dim Warnings                    As Long
    Dim msgFreeze                   As String
    
  Sub TraverseComponent(swComp As SldWorks.Component2, nLevel As Long)
    Dim swChildComp                 As SldWorks.Component2
    Dim swPart                      As SldWorks.ModelDoc2
    Dim swChildModel                As SldWorks.ModelDoc2
    Dim swAssy                      As SldWorks.AssemblyDoc
    Dim swCompConfig                As SldWorks.Configuration
    Dim vChildComp                  As Variant
    Dim sPadStr                     As String
    Dim i                           As Long
  
    For i = 0 To nLevel - 1
        sPadStr = sPadStr + "  "
    Next i
      
    Set swChildModel = swComp.GetModelDoc2
    Set swAssy = swModel
    swAssy.ResolveAllLightWeightComponents (True)
    Set swChildModel = Nothing
  
    vChildComp = swComp.GetChildren
    For i = 0 To UBound(vChildComp)
        Set swChildComp = vChildComp(i)
        Set swChildModel = swChildComp.GetModelDoc2
            If swChildModel.GetType = 2 Then
                TraverseComponent swChildComp, nLevel + 1
            Else
                Set swPart = swApp.ActivateDoc3(swChildComp.GetPathName, False, swDontRebuildActiveDoc, Errors)
                If swPart.IsOpenedReadOnly = False Then

                    lRet = swPart.FeatureManager.EditFreeze2(prtFreeze, "", True, True)
                    swPart.ShowNamedView2 "*Isometric", -1
                    swPart.ViewZoomtofit2

                End If
                swApp.CloseDoc swPart.GetTitle
            End If
    Next i
End Sub
Sub main()
    On Error Resume Next
    
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc

    swApp.SetUserPreferenceToggle swUserEnableFreezeBar, True
    prtFreeze = InputBox(prtFreeze, "1 - Заморозить, 4 - Разморозить", "Выйти")
        
        If prtFreeze <> 1 And prtFreeze <> 4 Then
          Exit Sub
        End If
        
        If prtFreeze = "1" Then
            msgFreeze = "Геометрия деталей заморожена."
        ElseIf prtFreeze = "4" Then
            msgFreeze = "Геометрия деталей разморожена."
        End If
        
    Set swConf = swModel.GetActiveConfiguration
    Set swRootComp = swConf.GetRootComponent3(True)
    
        If swModel.GetType = swDocPART Then
            lRet = swModel.FeatureManager.EditFreeze2(prtFreeze, "", True, True)
        
        ElseIf swModel.GetType = swDocASSEMBLY Then
        
    TraverseComponent swRootComp, 1
    
    swModel.ShowNamedView2 "*Isometric", -1
    swModel.ViewZoomtofit2
    boolstatus = swModel.ForceRebuild3(False)
    boolstatus = swModel.Save3(swSaveAsOptions_Silent, Errors, Warnings)

            End If
MsgBox msgFreeze

End Sub

 

 

 

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

@Kir95 Не была опыта работы с макросами, скажите, пожалуйста, что с этим делать?

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

Не была опыта работы с макросами, скажите, пожалуйста, что с этим делать?

Инструменты -> Макросы -> Новый -> Откроется окно сохранения нового макроса (по умолчанию - папка для макросов, указанная в настройках программы). Сохраните с понятным названием, после этого откроется окно редактирования макроса, удалите в окне все записи и вставьте в него код из предыдущего поста, сохраните (Ctrl+S)  и нажмите на клаве F5, чтобы запустить макрос. Откроется окно запроса, ввести 1 - заморозить все детали в сборке, 4 - разморозить. Солид откроет по очереди все файлы деталей в сборке, полоса заморозки в деталях переместится вниз, солид сохранит и закроет каждый файл детали.

А если хотите в солиде

13 часа назад, Alex1986 сказал:

автоматизировать процесс

почитайте раздел справки:

http://help.solidworks.com/2016/russian/solidworks/sldworks/c_recording_playing_macros.htm

Ничего сложного :smile:, пробуйте.

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

@Kir95 Спасибо!

А как вместо знаков вопроса поставить обычные буквы?

 

ad725302f6e6.jpg

 

3a90fbadc295.jpg
 

 

10 часов назад, Kir95 сказал:

Ничего сложного :smile:, пробуйте.

Начать пробовать посоветуете с записи своих действий?

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

А как вместо знаков вопроса поставить обычные буквы?

Это проблема копирования-вставки на компе с кириллицей. Откройте макрос для редактирования (Инструменты -> Макросы -> Редактировать), перепишите в коде текст, где знаки вопроса.

5abb38b4e1277_.JPG.0fb06ecc382f124de9c77acebdddfedd.JPG

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

Начать пробовать посоветуете с записи своих действий?

 

Это один из способов получения нужного кода.. Но записывается не все.. Поэтому другой способ - изучить справку по API SW.. Это если есть опыт программирования..

Если опыта нет, надо проштудировать книжку по нужному языку.. Я, например, за неделю осилил "VBA для чайников" вместе с набором примеров в редакторе.. Ещё за неделю для проверки своих возможностей попытался повторить на vba калькулятор WinXP.. Большинство функций сделал..

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

Макрос замечательно работает на Win7 и не работает на Win10...

У меня Win10 и всё ок. Бывает, из-за библиотек каких-то, посмотрите в редакторе макроса Tools -> References, совпадают или нет с моими. Если нет каких-то, поставьте галки на недостающих:

Скрытый текст

5abbb9e84b678_-libraries.JPG.991ef11ffeaa7bf4dbd57da07de9a36b.JPG

Не работает, это ошибку выдаёт или просто не запускается?

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

не запускается, только открывается

Ну во первых снимите галочки со всех Solidworks 2016 и замените на аналогичные для своей версии Solidworks 2015.

 

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

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

solidworks object library feature not supported

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

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

снимите галочки со всех Solidworks 2016 и замените на аналогичные для своей версии Solidworks 2015.

 

А у меня 2016 версия...

 

профиль не скорректировал при переходе :)

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

А у меня 2016 версия...

 

профиль не скорректировал при переходе :)

Ну тогда наоборот, то что 2015 галки снять и заменить на 2016.

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

@Kelny На компьютере с Win7 точно такой же набор компонентов, только макросы работают...

 

48 минут назад, Kelny сказал:

то что 2015 галки снять и заменить на 2016

А где их взять?

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

А где их взять?

Так на вашей же картинке:

12fa59be3ee2.jpg

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

@Kelny Картинка одинаковая на компе с Win7 где все работает и на компе с Win10 где не работает.

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

@Alex1986 а какие-нибудь другие макросы работают на компе в вин10? Есть тема с траблом запуска любых макросов после обновления винды (Windows update KB3072630).

Хоть тема и давняя, но может быть именно вашим случаем. Нужно было отключать обновление, потом восстанавливать с диска солид и снова включать обновление.

https://forum.solidworks.com/thread/97769

 

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Fedor
      https://www.mathnet.ru/links/70adc00f76e7f355f5e14569f99dd8dc/tm1745.pdf#:~:text=Под полной обобщенной проблемой собственных,из собственных векторов относительно 5.   Хотите посложнее читайте классику по обобщенной проблеме ... :)
    • Jesse
      а что такое этот corioliss в Ansys? что делает эта опция?
    • Борман
      А ну вот как раз вспоминаю про гироскопический момент, как интеграл сил инерции, действующих на смещенное колесо. И вот тут как раз появляется зависимость от направления вращения. В одном случае этот момент будет выворачивать колесо наружу, а в другом пытаться вернуть колесо ближе к оси. Но это эффект следующего порядка, и prestress-модальник его не схватывает. А сиса как-то сама умеет это учитывать, отсюда будут и разные частоты. Много на эту тему почерпнул (для себя) из книги Жирицкого, на которую ссылался в теме по вашей ссылке. Эту тему я забросил в начале 2008 года и больше не касался ее.
    • rocket
      Добрый день, у нас 4 осевой станок Syntec 6MB с поворотной головой вокруг оси Y, покупали б/у и приехал еще с поворотной осью А подключенный но не видящий ось А. В итоге помогло поменять в параметрах в разделе/index 10 поменять на 2 и в index 24 где ось B поменять 4 на 0 а в index 25  поменять с 0 на 4 (чтобы он читал с 4 порта) если посмотреть как идет подключение, то от этого зависят цифры 
    • maxx2000
      Спасибо КЭП, но в ярлыке ничего прописывать не надо, достаточно создать новый ярлык. Вопрос был про вызов справки из приложения. Впрочем, перезагрузка ПК устранило это досадное недоразумение.
    • Maxmore
      Согласен полностью, через всё это пришлось пройти. От себя добавлю что у нас 400ый не PRO а обычный - его еще больше пришлось доводить до рабочего состояния, так как их производят разные заводы. с ITX508MY еще все более печально было - проблемы на пусконаладке, затем замена прокладок, затем пусконаладка уже с участием китайца...в общем да, помучаться пришлось. С большего оборудование рабочее, свои функции выполняет. Фануковские посты можно доработать до HNC без особых проблем.
    • Fedor
      Для любой размерности можно решать полином этой размерности. Такова сущность вопроса существования, а не конкретное явление вычисления. Дух, а не буква :)
    • anykeyto
      День добрый коллеги. Работает ли кто на этой стойке? Где берете информацию по программированию кроме мануала от Ками?  Интересует макропрограммирование, программирование цилиндрической интерполяции. Да и вообще, давайте делиться опытом. В свободном доступе практически нет никакой информации о работе станка и стойки этого чуда китайской инженерии.  Вопрос про G108, пользовался ли кто функцией CTOS/STOC?   
    • __Andrey__
      Доброго всем времени суток. Начал сборку станка для симуляции. Загрузил модель станка DMU50 в папку. В генераторе станков сделал настройки осей. Постпроцессор на sinumerik создал из шаблона. Скопировал папку cse_driver со станка с похожей кинематикой (sim06_mill_5ax). В файлы .dat внесены данные. При запуске симуляции по машинному коду ругается, что не найден файл PMAC. После закрытия окна с ошибкой продолжает работу и доходит до смены инструмента и там выскакивает ошибка. . Прошу помощи с этой проблемой. Файл to_ini генерируется в папку cse_driver.
    • anykeyto
      Устроился в начале года в контору где стоит IronMAC IMU-5X 400 Pro. Стойка HNC8-848di. Контора отправила на обучение, на курс 5-осной обработки на этой стойке, в цто Ками в Москве. В целом все доступно и понятно. Это когда было само обучение. Но в работе самой стойки есть куча вопросов. По факту на стойка не настроена. Не знаю, может наладчик который запускал станок попался ленивый, может в другом была причина. Но первый месяц-полтора занимался только настройкой системы (что знал, что пришло в процессе изучения параметров, ладдера, и прочее).   Сам станок интересный и понятный. Но русская локализация хромая, как и мануал от ками. Там голимый перевод то ли с английского, толи с китайского.... но вместо фрезы "нож" и так далее.  Основа тут G код, в целом почти фанук, но есть отличия. Есть группа циклов для фрезеровки сверления, резьбы и расточки, под них есть прям шаблон, в котором только переменные задаешь, но криво реализован синтаксис, который поправить можно уже непосредственно в коде.
×
×
  • Создать...