To wszystko jest w tytule przyjaciele,
Czy ktoś będzie miał oprogramowanie lub makro (jeszcze lepsze), aby przekształcić kilka części w krok w masowy sposób.
Lub nawet przechodząc bezpośrednio przez montaż, ponieważ w zasadzie można to zrobić tylko za pomocą eksportu w IGES , a nie w STEP.
Zaznaczam, że nie mam obsługi technicznej myCADservices, więc nie Batchconverter, o którym wiem, że robi to bardzo dobrze.
Mam nadzieję, że moja prośba była wystarczająco jasna.
Dziękuję
Witam
Jeśli zarejestrujesz swój zestaw w STEP; osoba, która otworzy Twoją oczyszczalnię ścieków, będzie musiała ustawić w swoich opcjach lub być w stanie otworzyć ją za pomocą oddzielnych elementów, a nie tylko jednego, jeśli tego chcesz.
Witam. Spróbuj tego z otwartą częścią lub zespołem. Spowoduje to zapisanie każdej części jako pliku kroku w tym samym katalogu.
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 polubienia
Dziękuję JeromeP, działa i jest dokładnie tym, czego chciałem.