Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  beim Speichern einer IDW als DXF (R12) den Event abfangen

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:  beim Speichern einer IDW als DXF (R12) den Event abfangen (2632 mal gelesen)
Linkshänder
Mitglied
Dipl.-Inf.

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

Beiträge: 5
Registriert: 07.03.2005

Inventor 9 Service Pack 2

erstellt am: 27. Apr. 2005 11:19    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 IV-VB(A) Forum!

Ich bin noch relativ neu hier, aber ich danke allen Lesern, die vor der Länge der nachfolgenden Problemstellung nicht zurück schrecken

Problem:
Auf einem Rechner unserer Firma läuft ein Jobserver, der (über die EDM-Software gesteuert) IDWs in DXFs (R12) konvertiert. Diese DXFs werden von Mitarbeitern mit AutoCAD 2005 (kein Mechanical Desktop!) geöffnet, nachbearbeitet und wieder gespeichert (überschrieben). Nach diesem Speichern haben diese DXFs aber einen Fehler im Header. Wir haben da mal nachgeforscht und folgendes festgestellt:
In dem Jobserver-DXF-Header ist ein Schriftstil als STANDARD angegeben, nach dem AutoCAD-Speichern wird der durch einen Nullstring ersetzt. Allerdings wird dieser Schriftstil später referenziert und das führt zu dem Headerfehler.
Jetzt hab ich versucht, das irgendwie mit den Vorgaben/Speichern_unter-Optionen in den Griff zu kriegen aber bisher erfolglos. Also Plan B:
Ich lasse auf dem Jobserver ein kleines VB-Programm laufen, das den Speichern-unter-Event abfängt und dann die jeweilige DXF per eigener Routinen "überarbeitet".

Was ich bisher habe:
Ich kann den normalen Inventor-Speicher-Event abfangen (Danke an Paul Schuepbach für das Beispiel an anderer Stelle). Allerdings krieg ich den Speichern-unter Event nicht, obwohl das in der IV-VBA Hilfe steht, das das der gleiche Event ist. Ich habs auch mit OnTranslateDocument versucht. Hier mein entsprechender Code (ich will erstmal nur überhaupt checken, ob ich in die Events reinkomme):

Private Sub IVAppEv_OnSaveDocument(ByVal DocumentObject As Inventor.Document, ByVal BeforeOrAfter As Inventor.EventTimingEnum, ByVal Context As Inventor.NameValueMap, HandlingCode As Inventor.HandlingCodeEnum)
  If BeforeOrAfter = kBefore Then
    Text1.Text = Text1.Text & vbCrLf & "VOR Speichern: " & DocumentObject.FullFileName
  Else
    Text1.Text = Text1.Text & vbCrLf & "NACH Speichern: " & DocumentObject.FullFileName
    Text1.Text = Text1.Text & vbCrLf & Context.Item(1)
  End If
End Sub

Private Sub IVAppEv_OnTranslateDocument(ByVal TranslatingIn As Boolean, ByVal DocumentObject As Inventor.Document, ByVal FullFileName As String, ByVal BeforeOrAfter As Inventor.EventTimingEnum, ByVal Context As Inventor.NameValueMap, HandlingCode As Inventor.HandlingCodeEnum)
  Text1.Text = Text1.Text & vbCrLf & "OnTranslateDocument"
End Sub

Wahrscheinlich ist das ganze Problem von meiner Seite aus viel zu umständlich angegangen, aber ich möchte jetzt trotzdem gerne wissen, wie in an den SaveCopyAs-Event komme. Bitte helft mir.

Danke & Gruß
der Linkshänder

P.S.: Ich bin noch relativ neu hier und in der Inventor-VBA Programmierung, aber das Forum ist bisher wirklich hilfreich. Danke@all.


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

PaulSchuepbach
Moderator
Programmierer




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

Beiträge: 1005
Registriert: 01.10.2003

erstellt am: 27. Apr. 2005 13:36    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 Linkshänder 10 Unities + Antwort hilfreich

Hallo Linkshaender (hast Du auch einen 'normalen' Name ???),

schau mal in die API-Hilfe. Unter 'Inhalt' - 'Events' findest Du alle Events von Inventor. Wie Du nachlesen kannst, gibt es nicht explizit einen 'OnSaveAs'-, sondern nur einen 'OnSave'-Event.

Mir ist allerdings nicht ganz kalr, warum der OnSave-Event nicht reicht ? Wozu nur bei SaveAs ?

Eventuell gehst Du Dein Problem wirklich falsch an.


Gruesse,

Paul

www.morecam.ch/cad.htm

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

lbcad
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau und CAD-Trainer



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

Beiträge: 3794
Registriert: 15.02.2001

DELL Precision 7520 Win10Pro-64
Inventor mit Vault Professional 2022
---------------------
Während man es aufschiebt,
verrinnt das Leben.
Lucius Annaeus Seneca
(ca. 4 v. Chr - 65 n. Chr.)

erstellt am: 27. Apr. 2005 16: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 Nur für Linkshänder 10 Unities + Antwort hilfreich

jo - ich würde denn auch erst mal nachsehen, ob der externe Apparat das Moped nicht so frisieren kann, daß es nachher auch läuft 

------------------
Gruß Lothar

---------------------------------------------------

Während man es aufschiebt, verrinnt das Leben.
—Lucius Annaeus Seneca (ca. 4 v. Chr - 65 n. Chr.)

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

Ralf G
Mitglied
Unternehmer


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

Beiträge: 44
Registriert: 29.10.2004

IV8, SPI
PIV 3000 GK Nvidia Qudro4 380XGL

erstellt am: 27. Apr. 2005 19: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 Nur für Linkshänder 10 Unities + Antwort hilfreich

Hallo Linkshänder

wenn die fertigen 12er DXF von Hand geöffnet und dann wieder gespeichert werden, ist es eine Option die Datei mit der wiederherstellen Funktion mit Datenbankprüfung zu öffnen in A2005.
Ich arbeite zwar nur regelmäßig mit 2004, aber dieses Vorgehen hat bislang alle meine Probleme mit den tollen originalen Autodesk DXF Dateien älterer Bauart gelöst.

Alternativ würde ich dir ein Timergesteuertes VB Programm empfehlen welches das Jobserververezeichnis in sinnvollen Abständen in ein bis 2 neue Verzeichnisse leerarbeitet.
Zumindestens bis du weißt ob Du mit deinen Routinen überhaupt ein akzeptables Resultat erzielst.

Vieleicht hilfts

Tschau der Ralf

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

Linkshänder
Mitglied
Dipl.-Inf.

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

Beiträge: 5
Registriert: 07.03.2005

Inventor 9 Service Pack 2

erstellt am: 28. Apr. 2005 10:46    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

Vielen Dank für die Antworten!

@Paul:
Die Hilfe hatte ich schon vorher gelesen, aber entweder verstehe ich es falsch, oder es stimmt (funktioniert) nicht, was da steht:

ApplicationEvents.OnSaveDocument:
Event that is fired whenever a document is saved.

Context for OnSaveDocument event returns the filename in the case when a SaveCopyAs is done. The name of the value is "SaveCopyAsFilename" and is only returned in the case of the SaveCopyAs.

^^ das heißt doch, das das Programm auch beim SaveCopyAs auf jeden Fall in diesen Event reinspringt. Aber bei mir passiert da gar nichts, d.h. er geht gar nicht in meine Sub rein. Allerdings springt er beim normalen Speichern sehr wohl in die Sub.

@lbcad:
Was ich an der Datei machen will, würde hier die Diskussion unnötig vergrößern, aber mein Chef weiß genau, was er da haben will. Und er hat das DXF-KnowHow, das mir fehlt. Aber erstmal muß ich an den Event rankommen.

@Ralf: Was für eine Datenbankprüfung? Pflegt AutoCAD eine eigene DB? Und was macht die Prüfung genau?
Das mit dem Timergesteuerten Tool ist nicht möglich, weil der Jobserver die Dateien aus seinem Verzeichnis entnimmt und die überarbeiteten Dateien dann an die richtige Stelle im Archiv kopiert. Und das Archiv immer nach "neuen" DXFs durchsuchen - no way!
Also will ich nach dem Speichern "einspringen".

Vielen Dank für euer Interesse

Gruß
Stefan, der Linkshänder

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

Ralf G
Mitglied
Unternehmer


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

Beiträge: 44
Registriert: 29.10.2004

IV8, SPI
PIV 3000 GK Nvidia Qudro4 380XGL

erstellt am: 28. Apr. 2005 21: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 Nur für Linkshänder 10 Unities + Antwort hilfreich

Hallo Linkshänder

Zitat:
Original erstellt von Linkshänder:

@Ralf: Was für eine Datenbankprüfung?



Datei>Dienstprogramme>Wiederherstellung
nicht beirren lassen wenn erst nur DWG angeboten werden, man kann damit auch DXF Dateien wiederherstellen.
Zitat:

Pflegt AutoCAD eine eigene DB?


Die DWG Datenstruktur ist übertrieben vereinfacht nichts anderes als eine Datenbank mit grafischem Frontend (Autocad)

Zitat:

Und was macht die Prüfung genau?



weiß ich nicht genauer
Zitat:

Das mit dem Timergesteuerten Tool ist nicht möglich, weil der Jobserver die Dateien aus seinem Verzeichnis entnimmt und die überarbeiteten Dateien dann an die richtige Stelle im Archiv kopiert. Und das Archiv immer nach "neuen" DXFs durchsuchen - no way!
Also will ich nach dem Speichern "einspringen".


Das immer nach "neuen" Suchen nicht funktionieren wird war mir schon klar. Deslhalb dachte ich wie folgt
jobserver>Zwischenverzeichnis , von dort mit
tool>Endstandort verschieben( verschieben damit es leer bleibt)  + Sicherungsverzeichniss (optional)

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