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

Макрос. Пакетное сохранение выбранных файлов в IGS формате.


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

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

 

 

Sub SaveSelectedToIGS()
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swSelMgr = swModel.SelectionManager
    Set swView = swSelMgr.GetSelectedObject6(1, -1)
    
    Dim MySolidBodys() As String
    
    DocIsAssembly = LCase(Right(swModel.GetTitle, 6)) = "sldasm"
    If DocIsAssembly Then X_tupe = "COMPONENT" Else X_tupe = "SOLIDBODY"
    
    For i = 1 To 100
        If swSelMgr.GetSelectedObject6(i, -1) Is Nothing Then Exit For
        If swSelMgr.GetSelectedObject6(i, -1).AddPropertyExtension <> -1 Then 'Исключаем папки если нечайно выделили
            ReDim Preserve MySolidBodys(i - 1)
            MySolidBodys(i - 1) = swSelMgr.GetSelectedObject6(i, -1).Name
        Else
            k = k + 1
        End If
    Next i
    If i - k = 1 Then MsgBox ("Выделите тела или детали, которые нужно сохранить в IGS"): End
    If DocIsAssembly Then 'Cкрыть все
        SelectAllComponents
        swModel.HideComponent2
    Else
        swModel.ClearSelection2 True
        swModel.FeatureManager.HideBodies
    End If
    
    For Each X In MySolidBodys
        boolstatus = swModel.Extension.SelectByID2(X, X_tupe, 0, 0, 0, False, 0, Nothing, 0) 'Выделить
        If DocIsAssembly Then 'Показать нужный элемент
            swModel.ShowComponent2
        Else
            swModel.FeatureManager.ShowBodies
        End If
        swModel.ClearSelection2 True 'Снять выделение
        MyPathName = Left(swModel.GetPathName, Len(swModel.GetPathName) - Len(swModel.GetTitle)) & Left(swModel.GetTitle, Len(swModel.GetTitle) - 7) & "_" & X & ".IGS"
        longstatus = swModel.SaveAs(MyPathName)
        If DocIsAssembly Then 'Cкрыть все
            SelectAllComponents
            swModel.HideComponent2
        Else
            swModel.ClearSelection2 True
            swModel.FeatureManager.HideBodies
        End If
    Next X
    If DocIsAssembly Then 'Показать все
        SelectAllComponents
        swModel.ShowComponent2
    Else
        swModel.ClearSelection2 True
        swModel.FeatureManager.ShowBodies
    End If
    swModel.ClearSelection2 True

    Foldername = Left(swModel.GetPathName, Len(swModel.GetPathName) - Len(swModel.GetTitle)) '"\\server\Instructions\"
    Shell "C:\WINDOWS\explorer.exe """ & Foldername & "", vbNormalFocus
End Sub

Sub SelectAllComponents()
    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim swAssy As SldWorks.AssemblyDoc
    Dim swChildComp As SldWorks.Component2
    Dim vChildComp As Variant
    Dim boolstatus As Boolean
    Dim i As Integer
    
    Set swApp = CreateObject("SldWorks.Application")
    Set swModel = swApp.ActiveDoc
    Set swAssy = swModel
    
    vChildComp = swAssy.GetComponents(False)
    
    For i = 0 To UBound(vChildComp)
        Set swChildComp = vChildComp(i)
        boolstatus = swChildComp.Select3(True, Nothing)
    Next i
End Sub
 

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


UnPinned posts

Здравствуйте. Вам нужно загрузить менеджер конфигурации и ищ него уже получить либо текущую либо любую конфигурацию. 

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

макрос сохраняет выбранные комплектующие детали или сборки в IGS формате.

Solidworks Task Scheduler пробовали?

 

 

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • gudstartup
      @Viktor2004 вы бы сначала ось b выровняли а то я не вижу у вас в таблице ни одной компенсации для нее. а чпу точно 530?
    • gudstartup
      одна точка - одно значение  это правильно.  если у вас поверхность стола ровная и ось b повернута 90 реально а не только по индикации системы отсчета чпу остальные точки будут компенсированы верно так как находятся с ней на одной прямой.
    • Ninja
      Создай новый проект и начни всё сначала!
    • Bot
      21-22 июня компания «Топ Системы» приняла участие в одном из знаковых ежегодных мероприятий ИТ-сообщества Пермского края — CIO Конгресс «Камские огни». Основной темой мероприятия стало импортозамещение. Заместитель директора по развитию PLM-технологий в компании «Топ Системы» Игорь Николаевич Кочан открыл мероприятие с докладом «Российский программный комплекс T-FLEX PLM: импортозамещение, цифровизация производства, системная инженерия» и задал вектор последующих тематических обсуждений. Во время своего выступления Игорь Николаевич поделился примерами реализованных проектов по импортозамещению и цифровизации предприятия у заказчиков, подходом компании «Топ Системы» к развитию программного комплекса T-FLEХ PLM, представил новейшие программные разработки и достижения в развитии платформы T-FLEX DOCs, САПР T-FLEX CAD и других приложений. «Подробный анализ задач заказчиков и мировой опыт показывают: наилучшим выбором для работы с единой моделью изделия [...] View the full article
    • Bot
      В сборке T-FLEX CAD 17.1.15.0 были улучшены стабильность работы и производительность системы, а также реализованы предложения пользователей и внесены исправления по их замечаниям. Ниже описаны самые существенные изменения системы. 2D проектирование – команда Оси В команде Оси добавлены опции Оси между двумя окружностями и Ось между центрами 2 окружностей. Опция Оси между 2 окружностями — создаёт общую ось между окружностями и перпендикулярные ей оси на каждой окружности отдельно — всего три элемента. Опция Ось между центрами 2 окружностей — создаёт одну ось между центрами двух окружностей: В основной надписи формат даты изменён с ДД.ММ.ГГ на ДД.ММ.ГГГГ. Также оптимизирован алгоритмы построения 2D проекций, местных разрезов и разрывов. Устранён ряд зависаний при работе с большими проекциями и таблицами исполнений. 3D моделирование В операции Поверхность смещения вместо набора граней в качестве исходной геометрии теперь можно выбрать [...] View the full article
    • lexx174
      какие данные вы подразумеваете для начала?
    • Snake 60
    • Snake 60
      А что за софт зеленые галочки на папках ставит?
    • Snake 60
      Я имел ввиду трубы, которые являются раскосинами, допустим в фермах. У них система координат наследуется от многотельной детали и в ней труба повернута на произвольный угол (согласно ее положения в сборке) + такая труба имеет подрезку на концах. Такую деталь скармливать труборезу черевато, Обычно народ делает новую систему координат, так чтобы одна из осей была параллельна длине (желательно чтобы это была Х координата, хотя не обязательно) и только потом экспортируют в IGS с выбором этой СК. Вопрос, реализуемо ли создание СК || длине трубы средствами API? Есть пример, хотелось бы глянуть...
    • Chuvak
      Насчёт скосов не совсем понял, но реализовать выравнивание системы координат вдоль самой длинной стороны трубы скорее всего возможно, почему бы и нет)
×
×
  • Создать...