Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Stepdateien umwandeln

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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


Sehen Sie sich das Profil von Malte70 an!   Senden Sie eine Private Message an Malte70  Schreiben Sie einen Gästebucheintrag für Malte70

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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 ....


Sehen Sie sich das Profil von Lueghi an!   Senden Sie eine Private Message an Lueghi  Schreiben Sie einen Gästebucheintrag für Lueghi

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Malte70 10 Unities + Antwort hilfreich

Ohne mich näher mit dem Code beschäftigt zu haben:
müsste es nicht
Code:
Titel = swmodel.GetTitle

heißen?

------------------
Gruß Stefan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Malte70
Mitglied
Konstrukteur


Sehen Sie sich das Profil von Malte70 an!   Senden Sie eine Private Message an Malte70  Schreiben Sie einen Gästebucheintrag für Malte70

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von Malte70 an!   Senden Sie eine Private Message an Malte70  Schreiben Sie einen Gästebucheintrag für Malte70

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von Malte70 an!   Senden Sie eine Private Message an Malte70  Schreiben Sie einen Gästebucheintrag für Malte70

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von Malte70 an!   Senden Sie eine Private Message an Malte70  Schreiben Sie einen Gästebucheintrag für Malte70

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Fehler gefunden: SaveAs3 braucht ja den pfad mit dem namen, klar das der name nicht reicht   

------------------
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


Sehen Sie sich das Profil von Malte70 an!   Senden Sie eine Private Message an Malte70  Schreiben Sie einen Gästebucheintrag für Malte70

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Fehler gefunden: SaveAs3 braucht ja den pfad mit dem namen, klar das der name nicht reicht   

------------------
Ich lehne es ab, anzuerkennen, dass es Unmöglichkeiten gibt - Henry Ford

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



Sehen Sie sich das Profil von bk.sc an!   Senden Sie eine Private Message an bk.sc  Schreiben Sie einen Gästebucheintrag für bk.sc

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 15. Dez. 2020 13:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Malte70 10 Unities + Antwort hilfreich

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)


Sehen Sie sich das Profil von Christian_W an!   Senden Sie eine Private Message an Christian_W  Schreiben Sie einen Gästebucheintrag für Christian_W

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Malte70 10 Unities + Antwort hilfreich

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 >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz