| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY: der unverzichtbare Partner für umfassende KI-Lösungen von Workstations bis zu Edge Computing und KI-Cluster-Bereitstellung, eine Pressemitteilung
|
Autor
|
Thema: Export Step (3161 mal gelesen)
|
Bluejay Mitglied Ingenieur
 
 Beiträge: 207 Registriert: 14.05.2007 Inventor 2011 for Simulation<P>Microsoft Windows XP Professional<P>Dell Precision T3400 Intel(R) Core(TM)2 Duo CPU E6750 @2,66 GHz 3,00 GB RAM
|
erstellt am: 04. Okt. 2012 12:49 <-- editieren / zitieren --> Unities abgeben:         
Guten Tag zusammen, ich bin weiter dabei mich in die VBA-Programmierung einzuarbeiten und habe zu einem kleinen Programm ein par Fragen - Folgender Code Exporttiert mir eine Step Datei in einen bestimmten Ordner mit dem Dateinnamen zusammengesetzt aus Modellnummer und REvesionsnummer. Diese sind leider nur bekannt wenn die Datei schon einmal in unserer Datenbank abgespeichert war. Dateien die nur local gespeichert worden und diesen Eintrag nicht in den Iprops haben, führen zu Fehlermeldung und werden nicht gespeichert! Frage wie kann ich das Programm dazu bringen mir auch locale gespeicherte Daten mit dem Dateinamen (ohne Revesionsnummer) in diesen Ordner zu Exportieren und das Auslesen von den Iprops nur dan zu machen wenn diese vorhanden sind. Im folgenden das Programm: Sub StepExport() If ThisApplication.Documents.Count = 0 Then MsgBox "Kein Dokument offen", 16, "Error" Exit Sub End If Dim dDoc As Object Dim fso As Object Set fso = CreateObject("Scripting.FilesystemObject") Dim ret As Variant Set dDoc = ThisApplication.ActiveDocument Dim oModNr As Inventor.Property Set oModNr = dDoc.PropertySets(4).Item("Modellnummer") Dim oRevNr As Inventor.Property Set oRevNr = dDoc.PropertySets(4).Item("Index")
If dDoc Is Nothing Then Exit Sub If Len(Trim(dDoc.FullFileName)) > 0 Then outfile = "C:\Exchange\" & "\" & oModNr.Value & "_" & oRevNr.Value & ".step" dDoc.SaveAs outfile, True Else MsgBox "Erst Speichern", vbInformation End If MsgBox "STEP wurde erfolgreich unter - C:\Exchange - gespeichert" End Sub
Danke für alle Hilfen
------------------ MFG BlueJay Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
      

 Beiträge: 2788 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 04. Okt. 2012 13:38 <-- editieren / zitieren --> Unities abgeben:          Nur für Bluejay
Hallo Auf die Schnelle: Code: On error resume next Set oRevNr = dDoc.PropertySets(4).Item("Index")If dDoc Is Nothing Then Exit Sub If Len(Trim(dDoc.FullFileName)) > 0 Then if oRevNr is nothing then outfile = "C:\Exchange\" & "\" & oModNr.Value & "_" & ".step" else outfile = "C:\Exchange\" & "\" & oModNr.Value & "_" & oRevNr.Value & ".step" end if dDoc.SaveAs outfile, True Else MsgBox "Erst Speichern", vbInformation End If MsgBox "STEP wurde erfolgreich unter - C:\Exchange - gespeichert" End Sub
------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bluejay Mitglied Ingenieur
 
 Beiträge: 207 Registriert: 14.05.2007 Inventor 2011 for Simulation<P>Microsoft Windows XP Professional<P>Dell Precision T3400 Intel(R) Core(TM)2 Duo CPU E6750 @2,66 GHz 3,00 GB RAM
|
erstellt am: 04. Okt. 2012 14:49 <-- editieren / zitieren --> Unities abgeben:         
Danke vielmals, einen ähnlichen Weg habe ich auch schon versucht, aber diese benutzerdefinierten Eigenschaften wie Modellnummer und Index sind nach einem lokalen Speichern noch nicht in den Iproperties eingetragen - damit wird dieser Zusammenbau des Dateinames leider nicht funktionieren - werde noch mal darübernachdenken - Danke Gruss ------------------ MFG BlueJay Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
      

 Beiträge: 2788 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 04. Okt. 2012 16:02 <-- editieren / zitieren --> Unities abgeben:          Nur für Bluejay
Hi Sorry, hab überlesen das das zweite Propertie auch nicht gefüllt ist. Kann leider grad den Code nicht testen, hoffentlich paßt es. Als Dateiname wird einfach der Dateiname des Originals hergenommen. Code: Sub StepExport()If ThisApplication.Documents.Count = 0 Then MsgBox "Kein Dokument offen", 16, "Error" Exit Sub End If Dim dDoc As Object Dim fso As Object Set fso = CreateObject("Scripting.FilesystemObject") Dim ret As Variant Set dDoc = ThisApplication.ActiveDocument Dim oModNr As Inventor.Property Set oModNr = dDoc.PropertySets(4).Item("Modellnummer") Dim oRevNr As Inventor.Property On Error Resume Next Set oRevNr = dDoc.PropertySets(4).Item("Index") If dDoc Is Nothing Then Exit Sub If Len(Trim(dDoc.FullFileName)) > 0 Then If oRevNr Is Nothing Then Dim FullDocName As String oFulldocName = dDoc.FullDocumentName Dim oArray() As String oArray = Split(oFulldocName, "\") Dim sName As String sName = oArray(LBound(oArray)) sName = Left(sName, Len(sName) - 4) outfile = "C:\Exchange\" & "\" & sName & ".step" Else outfile = "C:\Exchange\" & "\" & oModNr.Value & "_" & oRevNr.Value & ".step" End If dDoc.SaveAs outfile, True Else MsgBox "Erst Speichern", vbInformation End If MsgBox "STEP wurde erfolgreich unter - C:\Exchange - gespeichert" End Sub
------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
Bluejay Mitglied Ingenieur
 
 Beiträge: 207 Registriert: 14.05.2007 Inventor 2011 for Simulation<P>Microsoft Windows XP Professional<P>Dell Precision T3400 Intel(R) Core(TM)2 Duo CPU E6750 @2,66 GHz 3,00 GB RAM
|
erstellt am: 05. Okt. 2012 08:21 <-- editieren / zitieren --> Unities abgeben:         
Guten Morgen und vielen Dank, habe wieder was dazu gelernt - ein kleiner Fehler war noch in dem Scipt und zwar: sName = oArray(LBound(oArray)) geändert in sName = oArray(UBound(oArray)) und dann hats funktioniert Danke noch mal
------------------ MFG BlueJay Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |