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

Макрос для команды зафиксировать входящие подсборки и детали


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

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

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


16 минут назад, Alex1986 сказал:

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

Оно ведь неподвижно в головной сборке, зачем фиксировать компоненты в подсборках?

Верхний уровень можно зафиксировать выбрав первый компонент, потом опуститься в самый низ списка и нажав кнопку SHIFT на клавиатуре выбрать последний компонент, после выделения программой всех компонентов дерева через контекстное меню ЗАФИКСИРОВАТЬ.

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

Оно ведь неподвижно в головной сборке, зачем фиксировать компоненты в подсборках?

 

чтоб при редактировании подсборок не сдвинуть

 

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

чтоб при редактировании подсборок не сдвинуть

О каких подсборках речь?

Обычно сборка это нечто осознанное и построенное по некоторому набору взаимосвязей.

 

Как вариант сохранить вашу сборку в нейтральный формат или деталь Solidworks, а после снова втянуть в программу и в результате все компоненты окажутся обездвиженными (если втягивается нейтральный формат в новой версии Solidworks, то может потребоваться разрыв ссылки с исходным форматом через контекстное меню, что бы появились полные возможности редактирования в формате Solidworks).

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

сборка это нечто осознанное и построенное по некоторому набору взаимосвязей

не в случае, когда сборка чужая и прислана в step

После открытия step у меня детали в сборках не зафиксированы.

 

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

После открытия step у меня детали в сборках не зафиксированы.

Так может убрать галочку ИМПОРТИРОВАТЬ НЕСКОЛЬКО ТЕЛ КАК ДЕТАЛИ в параметрах импорта?

Или всё же может сохранить как:

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

деталь Solidworks

 

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

@Kelny ни один вариант не подходит, т.к. часть подсборок и деталей надо редактировать

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

часть подсборок и деталей надо редактировать

Ни что не мешает выделить часть деталей в сборку или другую деталь и продолжать редактировать, если это по каким-то причинам не удобно в одной общей детали.

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

@Kelny нарушится структура, которая меня вполне устраивает.

Вопрос был о макросе, а не о способах обойти.

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

Вопрос был о макросе, а не о способах обойти.

Чего-то я никак не пойму, зачем нужен макрос для выполнения действий, решаемых самой программой :doh:

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

@Plumber Подскажите, пожалуйста, как!

Я открываю файл, получаю кучу деталей и подсборок  не зафиксированными. 

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

не наталкивался ли кто-нибудь на макрос который выполнял бы команду зафиксировать для подсборок и деталей в сборке?

Не наталкивался, но специально нарыл на забугорщине ):

Можно фиксировать и освобождать все компоненты в сборке и подсборках:

 

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

Dim swApp As SldWorks.SldWorks

    Public Sub main()
    
Set swApp = GetObject(, "Sldworks.Application")
        Dim ActiveDoc As ModelDoc2
        Set ActiveDoc = swApp.ActiveDoc

        If Not ActiveDoc Is Nothing Then
            If ActiveDoc.GetType = 2 Then
                GoTo Traverse
            End If
        End If
        MsgBox ("Макрос работает только в сборках")
        Exit Sub

Traverse:
        
        Dim myModel As ModelDoc2
        Set myModel = ActiveDoc
        Call Traverse(myModel, myModel.ConfigurationManager.ActiveConfiguration.Name)

        MsgBox ("Готово")

    End Sub

    Private Sub Traverse(ByVal myModel As ModelDoc2, ByVal Config As String)

        Dim myAsm As AssemblyDoc
        Set myAsm = myModel

        Dim tFeature As Feature
        Set tFeature = myModel.FirstFeature
        Dim aSelMgr As SelectionMgr
        Set aSelMgr = myModel.SelectionManager
        Dim comp As Component2

        myModel.ShowConfiguration2 (Config)
        Do While Not tFeature Is Nothing

            'looks for reference features (parts/assemblies)
            If tFeature.GetTypeName = "Reference" Or tFeature.GetTypeName = "ReferencePattern" Then

                tFeature.Select (False) 'selects itself
                Set comp = aSelMgr.GetSelectedObject6(1, 0)   'sets feature as component

                Debug.Print (comp.Name)

                Dim mysubModel As ModelDoc2
                Set mysubModel = comp.GetModelDoc2
                If mysubModel Is Nothing Then GoTo NextLoop

                If mysubModel.GetType = 2 Then 'If Reference is an assembly run through again

                    myAsm.FixComponent 'чтобы освободить компоненты - поменять на myAsm.UnfixComponent
                    Call Traverse(mysubModel, comp.ReferencedConfiguration)

                Else 'Otherwise, means it's a part

                    myAsm.FixComponent 'чтобы освободить компоненты - поменять на myAsm.UnfixComponent

                End If

            End If

NextLoop:
            Set tFeature = tFeature.GetNextFeature()
        Loop

    End Sub

 

 

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

Подскажите, пожалуйста, как!

Выделяете в дереве всё гамузом (CTRL+A) далее правой кнопкой вызывается контекстное меню и там есть пунктик "Зафиксированный", да, он работает только для верхнего уровня, но все равно все подсборки по умолчанию вставляются с параметром "решить точно". Посему не вижу особой необходимости фиксировать элементы подсборок из верхней сборки, а сами подсборки вставляю в верхнюю уже с определёнными привязками.

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

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

@Plumber Спасибо! Это как раз то, что не надо :biggrin:

Мне нужно в подсборках изменять детали. И макрос, который нашел @Kir95 как раз замечательно справляется с этой задачей.

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

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

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

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

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

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

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

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

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

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

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




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