| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | | | Mobil ans Ziel: PARAVAN gibt Gas mit SOLIDWORKS Simulation |
Autor
|
Thema: Stepdateien umwandeln (1282 / mal gelesen)
|
Malte70 Mitglied Konstrukteur
Beiträge: 61 Registriert: 11.11.2020 PC1 AMD Threadripper 1020X 12-Core G.Skill 64GB DDR4 MSI RX5700XT GDDR6 8GB 1TB SSD M2 Windows 10 Pro Inventor 2018 Inventor 2017 Solidworks 2015 Solidworks 2020 Solidworks 2018 SW PDM 2015 und 2020 Logitrace V.12 Autocad R13 Autocad 2017 Office 2019 Baugruppen meist ab 20.000 Teile<P>PC2 Dell Precision 5820
|
erstellt am: 10. Dez. 2020 17:22 <-- editieren / zitieren --> Unities abgeben:
So, wie versprochen lerne und lerne ich. erster selbst geschriebener code, fast ohne hin und herkopieren, nur die Hilfe und ich Nun zu meinem Problem: Ich möchte Step Dateien in sldprt "umwandeln". Die Step wird geöffnet, ausgebessert, gespeicher aber nicht geschlossen. Bei den letzten Sätzen (in dick) möchte er irgendwas Dimensioniert haben(Fehler91), ich hab nur nicht verstanden wo´s da hängt. Code:
Sub main()Dim swApp As SldWorks.SldWorks Dim swPart As SldWorks.PartDoc Dim swModel As SldWorks.ModelDoc2 Dim swModelDocExt As SldWorks.ModelDocExtension Dim swImportStepData As SldWorks.ImportStepData Dim status As Boolean Dim Errors As Long Errors = 0 Dim Warnings As Long Warnings = 0 Dim stepFileName As String Dim FileName As String Dim strOrdnerName As String Dim strName As String Dim longstatus As Long, longwarnings As Long Dim varsplit As Variant Dim part As Object Dim Titel As String Dim model As Object varsplit = Split(strName, ".")
strOrdnerName = "C:\Zwischenordner\Test\test\" strName = Dir(strOrdnerName & "*.stp") Do While strName <> "" stepFileName = strOrdnerName & strName If stepFileName = strOrdnerName Then Exit Do End If Set swModel = swPart Set swApp = Application.SldWorks 'Importinformationen holen Set swImportStepData = swApp.GetImportFileData(stepFileName) 'Wenn ImportStepData::MapConfigurationData nicht gesetzt ist,dann standardmäßig die Umgebungseinstellung 'swImportStepConfigData; andernfalls, überschreibe 'swImportStepConfigData mit ImportStepData::MapConfigurationData swImportStepData.MapConfigurationData = True 'Importieren der Step-Datei Set swPart = swApp.LoadFile4(stepFileName, "r", swImportStepData, Errors) Set swModel = swPart Set swModelDocExt = swModel.Extension 'Importdiagnose Starten und versuche alle Fehler zu korrigieren Errors = swPart.ImportDiagnosis(True, False, True, 0) Set part = swApp.ActiveDoc varsplit = Split(strName, ".") Debug.Print varsplit(0) endname = varsplit(0) & ".sldprt" 'speichern longstatus = part.SaveAs3(endname, 0, 2) Debug.Print (endname & " ==> " & value & " ==> " & valout) Set ModelDoc = swApp.OpenDoc6(FileName, 1, 0, "", Errors, Warnings) Titel = model.GetTitle swApp.CloseDoc Titel endname = Dir Loop End Sub
Vielen Dank schonmal ------------------ Ich lehne es ab, anzuerkennen, dass es Unmöglichkeiten gibt - Henry Ford Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lueghi Mitglied Admin für alle Systeme ....
Beiträge: 416 Registriert: 01.07.2005 CAD...: SWX2022 SP5, ACAD 2019, Tacton / LINO PDM...: PRO.FILE 8.6 ERP...: proAlpha 6.2e / 7.1 BS....: Win10, HP ZBook G5
|
erstellt am: 10. Dez. 2020 17:57 <-- editieren / zitieren --> Unities abgeben: Nur für Malte70
|
Malte70 Mitglied Konstrukteur
Beiträge: 61 Registriert: 11.11.2020 PC1 AMD Threadripper 1020X 12-Core G.Skill 64GB DDR4 MSI RX5700XT GDDR6 8GB 1TB SSD M2 Windows 10 Pro Inventor 2018 Inventor 2017 Solidworks 2015 Solidworks 2020 Solidworks 2018 SW PDM 2015 und 2020 Logitrace V.12 Autocad R13 Autocad 2017 Office 2019 Baugruppen meist ab 20.000 Teile<P>PC2 Dell Precision 5820
|
erstellt am: 11. Dez. 2020 08:14 <-- editieren / zitieren --> Unities abgeben:
Da oben die letzten beiden Dimensionierungen darauf festgelegt sind ist hier Model mit einem Objekt festgelegt, sollte also stimmen. swmodel wäre sonst SldWorks.ModelDoc2. ------------------ Ich lehne es ab, anzuerkennen, dass es Unmöglichkeiten gibt - Henry Ford Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Malte70 Mitglied Konstrukteur
Beiträge: 61 Registriert: 11.11.2020 PC1 AMD Threadripper 1020X 12-Core G.Skill 64GB DDR4 MSI RX5700XT GDDR6 8GB 1TB SSD M2 Windows 10 Pro Inventor 2018 Inventor 2017 Solidworks 2015 Solidworks 2020 Solidworks 2018 SW PDM 2015 und 2020 Logitrace V.12 Autocad R13 Autocad 2017 Office 2019 Baugruppen meist ab 20.000 Teile<P>PC2 Dell Precision 5820
|
erstellt am: 11. Dez. 2020 08:22 <-- editieren / zitieren --> Unities abgeben:
fehler gefunden, hätte statt als model, als part ausgeführt werden müssen. neuer fehler: er spielt das Programm ab,er öffnet das teil speichert es allerdings nicht aber nix passiert ------------------ Ich lehne es ab, anzuerkennen, dass es Unmöglichkeiten gibt - Henry Ford [Diese Nachricht wurde von Malte70 am 11. Dez. 2020 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Malte70 Mitglied Konstrukteur
Beiträge: 61 Registriert: 11.11.2020 PC1 AMD Threadripper 1020X 12-Core G.Skill 64GB DDR4 MSI RX5700XT GDDR6 8GB 1TB SSD M2 Windows 10 Pro Inventor 2018 Inventor 2017 Solidworks 2015 Solidworks 2020 Solidworks 2018 SW PDM 2015 und 2020 Logitrace V.12 Autocad R13 Autocad 2017 Office 2019 Baugruppen meist ab 20.000 Teile<P>PC2 Dell Precision 5820
|
erstellt am: 11. Dez. 2020 08:59 <-- editieren / zitieren --> Unities abgeben:
neuer stand: er speichert aber immernoch nicht Code:
Sub main() Dim swApp As SldWorks.SldWorks Dim swPart As SldWorks.PartDoc Dim swModel As SldWorks.ModelDoc2 Dim swModelDocExt As SldWorks.ModelDocExtension Dim swImportStepData As SldWorks.ImportStepData Dim status As Boolean Dim Errors As Long Errors = 0 Dim Warnings As Long Warnings = 0 Dim stepFileName As String Dim Filename As String Dim strOrdnerName As String Dim strName As String Dim longstatus As Long, longwarnings As Long Dim varsplit As Variant Dim part As Object Dim endname As String varsplit = Split(strName, ".")
strOrdnerName = "C:\Zwischenordner\Test\test\" strName = Dir(strOrdnerName & "*.stp") Do While strName <> "" stepFileName = strOrdnerName & strName If stepFileName = strOrdnerName Then Exit Do End If Set swModel = swPart Set swApp = Application.SldWorks 'Importinformationen holen Set swImportStepData = swApp.GetImportFileData(stepFileName) 'Wenn ImportStepData::MapConfigurationData nicht gesetzt ist,dann standardmäßig die Umgebungseinstellung 'swImportStepConfigData; andernfalls, überschreibe 'swImportStepConfigData mit ImportStepData::MapConfigurationData swImportStepData.MapConfigurationData = True 'Importieren der Step-Datei Set swPart = swApp.LoadFile4(stepFileName, "r", swImportStepData, Errors) Set swModel = swPart Set swModelDocExt = swModel.Extension 'Importdiagnose Starten und versuche alle Fehler zu korrigieren Errors = swPart.ImportDiagnosis(True, False, True, 0) Set part = swApp.ActiveDoc varsplit = Split(strName, ".") Debug.Print varsplit(0) endname = varsplit(0) & ".sldprt" 'speichern longstatus = part.SaveAs3(endname, 0, 2) Debug.Print (endname & " ==> " & value & " ==> " & valout) Filename = strOrdnerName & endname Debug.Print (Filename & " ==> " & value & " ==> " & valout) Set ModelDoc = swApp.OpenDoc6(Filename, 1, 0, "", Errors, Warnings) Dim Titel As String Titel = part.GetTitle swApp.CloseDoc Titel strName = Dir Loop End Sub
------------------ Ich lehne es ab, anzuerkennen, dass es Unmöglichkeiten gibt - Henry Ford Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Malte70 Mitglied Konstrukteur
Beiträge: 61 Registriert: 11.11.2020 PC1 AMD Threadripper 1020X 12-Core G.Skill 64GB DDR4 MSI RX5700XT GDDR6 8GB 1TB SSD M2 Windows 10 Pro Inventor 2018 Inventor 2017 Solidworks 2015 Solidworks 2020 Solidworks 2018 SW PDM 2015 und 2020 Logitrace V.12 Autocad R13 Autocad 2017 Office 2019 Baugruppen meist ab 20.000 Teile<P>PC2 Dell Precision 5820
|
erstellt am: 11. Dez. 2020 09:06 <-- editieren / zitieren --> Unities abgeben:
|
Malte70 Mitglied Konstrukteur
Beiträge: 61 Registriert: 11.11.2020 PC1 AMD Threadripper 1020X 12-Core G.Skill 64GB DDR4 MSI RX5700XT GDDR6 8GB 1TB SSD M2 Windows 10 Pro Inventor 2018 Inventor 2017 Solidworks 2015 Solidworks 2020 Solidworks 2018 SW PDM 2015 und 2020 Logitrace V.12 Autocad R13 Autocad 2017 Office 2019 Baugruppen meist ab 20.000 Teile<P>PC2 Dell Precision 5820
|
erstellt am: 11. Dez. 2020 09:34 <-- editieren / zitieren --> Unities abgeben:
|
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 15. Dez. 2020 13:25 <-- editieren / zitieren --> Unities abgeben: Nur für Malte70
Hallo Malte, hab deinen Code mal aufs wesentliche reduziert, da bekommt man sonst ja Augenkrebs. .
Code:
Sub main()Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swImportStepData As SldWorks.ImportStepData Dim longErrors As Long Dim longStatus As Long Dim stepFileName As String Dim strOrdnerName As String Dim strName As String Set swApp = Application.SldWorks strOrdnerName = "C:\Users\XXX\Desktop\" strName = Dir(strOrdnerName & "*.stp") Do While strName <> "" stepFileName = strOrdnerName & strName 'Importinformationen holen Set swImportStepData = swApp.GetImportFileData(stepFileName) 'Wenn ImportStepData::MapConfigurationData nicht gesetzt ist,dann standardmäßig die Umgebungseinstellung 'swImportStepConfigData; andernfalls, überschreibe 'swImportStepConfigData mit ImportStepData::MapConfigurationData swImportStepData.MapConfigurationData = True 'Importieren der Step-Datei Set swModel = swApp.LoadFile4(stepFileName, "r", swImportStepData, longErrors) 'Importdiagnose Starten und versuche alle Fehler zu korrigieren longErrors = swModel.ImportDiagnosis(True, False, True, 0) 'speichern longStatus = swModel.SaveAs3(strOrdnerName & (Split(strName, ".")(0)) & ".sldprt", 0, 2) swApp.CloseDoc swModel.GetTitle strName = Dir Loop End Sub
------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
Beiträge: 3189 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 15. Dez. 2020 15:58 <-- editieren / zitieren --> Unities abgeben: Nur für Malte70
Zitat: Original erstellt von bk.sc: ... da bekommt man sonst ja Augenkrebs. .
Danke @Malte Normalerweise schaut man zuerst nach dem Programm (set swApp = ...) holt sich dann das aktuelle Dokument (set swModelDoc = ...) schaut was es ist und leitet dann das Part/die Baugruppe/die Zeichnung von ab (set swPart = ...) man kann die Dokumente natürlich auch mit direkt mit open bekommen... Gruß, Christian
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|