Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Fehlermeldung bei DXF export

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:  Fehlermeldung bei DXF export (1398 mal gelesen)
Xaigon
Mitglied



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

Beiträge: 15
Registriert: 16.08.2012

erstellt am: 18. Sep. 2012 12:39    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

Hallo Zusammen,

hab mir ein Makro gebastelt, dass bei Knopfdruck ein Ordner (DWG) erstellt und anschliessend die Zeichnung im DWG format in den Ordner DWG abspeichert. Leider bekomme ich die Fehlermeldung ("Fehler beim Schreiben der Datei"). Kann mir jemand helfen den fehler auszumärzen?
Hier noch der Code:

Code:
Public Sub DWG()
    On Error Resume Next
    If ThisApplication.ActiveDocument.DocumentType <> kDrawingDocumentObject Then
        Exit Sub
    End If
 
  Dim Pfad As String
    Pfad = CurDir & "\"

    If Dir(Pfad & "DWG", vbDirectory) = "DWG" Then
        'MsgBox "Ordner ''DWG'' ist vorhanden!"
        GoTo Sprung
    Else
        MkDir "DWG"
        'MsgBox "Ordner ''DWG'' wurde in folgendem Pfad angelegt:  " & Pfad
    End If

Sprung:
 
    Dim oDoc As Inventor.DrawingDocument
    Set oDoc = ThisApplication.ActiveDocument
    Dim oFileName As String
    oFileName = oDoc.FullDocumentName
   
    Dim oArray() As String
    oArray = Split(oFileName, "\")
 
    If oDoc.FullFileName = "" Then
        MsgBox "Bitte zuerst die Zeichnung speichern...  "
        Exit Sub
    End If
 
    Dim sName As String
    Dim i As Integer
    sName = oArray(LBound(oArray))
    For i = 1 To UBound(oArray) - 1
    sName = sName & "\" & oArray(i)

Next
    sName = sName & "\DWG\" & (oArray(UBound(oArray)))
   
    oDoc.SaveAs Replace(sName, Right(sName, 3), "DWG"), True
   
    If Err.Number = 0 Then
        MsgBox "Die Datei:" & vbCrLf & vbCrLf & Replace(sName, Right(sName, 3), "DWG") & vbCrLf & vbCrLf & "wurde erfolgreich gespeichert"
        FileSystemObject.CopyFile "oDoc.FullFileName", Pfad & "DWG"
    Else
        MsgBox "Fehler: " & Err.Description
    End If
   
End Sub


Gruss Xaigon

------------------
Greets

Xaigon

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: 18. Sep. 2012 16: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 Xaigon 10 Unities + Antwort hilfreich

Hi

Das hier wird immer True zurückgeben, egal ob das Verzeichnis existiert oder nicht. Daher kommt auch deine Fehlermeldung, wenn du in ein nicht vorhandenes Verzeichnis speichern willst.

Code:
If Dir(Pfad & "DWG", vbDirectory) = "DWG" Then

Bei meinem Test war CurDir übrigens C:\Windows\System32. Ich denke auch das ist nicht die beabsichtigte Funktionsweise.

------------------
MfG
Ralf

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

Xaigon
Mitglied



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

Beiträge: 15
Registriert: 16.08.2012

erstellt am: 19. Sep. 2012 12:56    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

Hallo Ralf,

ich hab das Makro ja so ausgelegt das es ein Unterordner erstellen muss, wenn es noch keinen gibt. Muss ich deiner Meinung nach diesen code

Code:
oDoc.SaveAs Replace(sName, Right(sName, 3), "DWG"), True

in diesen Umwandeln:

Code:

If Dir(Pfad & "DWG", vbDirectory) = "DWG" Then
  oDoc.SaveAs Replace(sName, Right(sName, 3), "DWG"), True

------------------
Greets

Xaigon

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: 19. Sep. 2012 14:35    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 Xaigon 10 Unities + Antwort hilfreich

Hallo

Hier eine Version die funktioniert. Wozu eigentlich das CopyFile am Ende?

Code:
Public Sub DWG()
    On Error Resume Next
    If ThisApplication.ActiveDocument.DocumentType <> kDrawingDocumentObject Then
        Exit Sub
    End If

    Dim oDoc As Inventor.DrawingDocument
    Set oDoc = ThisApplication.ActiveDocument
    Dim oFileName As String
    oFileName = oDoc.FullDocumentName
 
    Dim oArray() As String
    oArray = Split(oFileName, "\")

    If oDoc.FullFileName = "" Then
        MsgBox "Bitte zuerst die Zeichnung speichern...  "
        Exit Sub
    End If

    Dim sName As String
    Dim i As Integer
    sName = oArray(LBound(oArray))
    For i = 1 To UBound(oArray) - 1
    sName = sName & "\" & oArray(i)

Next
   
    If Dir(sName, vbDirectory) <> "DWG" Then
        MkDir sName & "\DWG"
        'MsgBox "Ordner ''DWG'' wurde in folgendem Pfad angelegt:  " & Pfad
    End If
   
   
    sName = sName & "\DWG\" & (oArray(UBound(oArray)))
 
    oDoc.SaveAs Replace(sName, Right(sName, 3), "DWG"), True
 
    If Err.Number = 0 Then
        MsgBox "Die Datei:" & vbCrLf & vbCrLf & Replace(sName, Right(sName, 3), "DWG") & vbCrLf & vbCrLf & "wurde erfolgreich gespeichert"
        FileSystemObject.CopyFile "oDoc.FullFileName", Pfad & "DWG"
    Else
        MsgBox "Fehler: " & Err.Description
    End If
 
End Sub


------------------
MfG
Ralf

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