Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Export Step

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 Autodesk Produkte
Autor Thema:  Export Step (2840 mal gelesen)
Bluejay
Mitglied
Ingenieur


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

Beiträge: 198
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 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

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




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 04. Okt. 2012 13:38    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 Bluejay 10 Unities + Antwort hilfreich

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


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

Beiträge: 198
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 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

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




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 04. Okt. 2012 16:02    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 Bluejay 10 Unities + Antwort hilfreich

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


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

Beiträge: 198
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 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

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

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)2023 CAD.de | Impressum | Datenschutz