Ombouw van PARTS naar RWZI in bulk

Het zit allemaal in de titel vrienden,

Zal iemand een software of een Macro (nog beter) om verschillende onderdelen om te zetten in een stap op een enorme manier.

Of zelfs door direct door de assemblage te gaan, want in principe is het alleen mogelijk om dit te doen met de export in IGES en niet STEP.

Ik geef aan dat ik geen myCADservices-onderhoud heb, dus niet Batchconverter, waarvan ik weet dat het dat heel goed doet.

Ik hoop dat ik duidelijk genoeg ben geweest in mijn verzoek.

Bedankt

Hallo

Als u uw assemblage registreert in STEP; de persoon die uw RWZI zal openen, zal in zijn opties moeten instellen of deze met afzonderlijke stukken moeten kunnen openen en niet slechts één als u dat wilt.

Hallo. Probeer dit eens met een open onderdeel of assemblage. Hierdoor wordt elk onderdeel als een stapbestand in dezelfde map opgeslagen.

Option Explicit
Dim lComps As Object
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
If swModel Is Nothing Then
    MsgBox "Ouvrir un assemblage ou une pièce"
    Exit Sub
End If
swApp.SetUserPreferenceIntegerValue swUserPreferenceIntegerValue_e.swStepAP, 214
Select Case swModel.GetType
    Case swDocumentTypes_e.swDocASSEMBLY
        Dim swAssy As SldWorks.AssemblyDoc
        Dim swConf As SldWorks.Configuration
        Dim swRootComp As SldWorks.Component2
        Set swAssy = swModel
        Set swConf = swAssy.GetActiveConfiguration
        Set swRootComp = swConf.GetRootComponent3(True)
        Set lComps = CreateObject("Scripting.Dictionary")
        TraverseComponent swRootComp

    Case swDocumentTypes_e.swDocPART
        Save2Step swModel
        
    Case Else
        MsgBox "Ouvrir un assemblage ou une pièce"
        Exit Sub
End Select
End Sub

Sub TraverseComponent(swComp As SldWorks.Component2)
    Dim vChilds As Variant
    Dim vChild As Variant
    Dim swChildComp As SldWorks.Component2
    Dim swModel As ModelDoc2
    vChilds = swComp.GetChildren
    For Each vChild In vChilds
        Set swChildComp = vChild
        Set swModel = swChildComp.GetModelDoc2
        If swModel.GetType = swDocumentTypes_e.swDocASSEMBLY Then
            TraverseComponent swChildComp
        Else
            If Not lComps.Exists(swModel.GetPathName) Then
                lComps.Add swModel.GetPathName, Empty
                Save2Step swModel
            End If
        End If
    Next
End Sub

Private Sub Save2Step(swModel As SldWorks.ModelDoc2)
    Dim FilePath As String
    FilePath = Left(swModel.GetPathName, InStrRev(swModel.GetPathName, ".") - 1) & ".STEP"
    swModel.Extension.SaveAs2 FilePath, 0, swSaveAsOptions_e.swSaveAsOptions_Silent, Nothing, Empty, False, Empty, Empty
End Sub

 

2 likes

Bedankt JeromeP, het werkt en het is precies wat ik wilde.