Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Interaktion während Filedialog

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:  Interaktion während Filedialog (2098 mal gelesen)
Lexxus
Mitglied
Masch.Ing. ETH

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

Beiträge: 4
Registriert: 18.04.2008

erstellt am: 18. Apr. 2008 17:41    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 Forum

Ich bin schon seit längerem eifriger Leser dieses Forums.Ich find es absolut genial, wie man durch die einzenen Beiträge immer wieder einen Hinwies bekommt, wie man wieter kommt im Inventor-VBA. Hab auch schon einige VBA-Anwendungen für Inventor programmiert.
Jetzt hab ich aber ein Problem, wo ich nicht mehr weiter komme:
In einem VBA-Sub rufe ich den Filedialog von Inventor auf, schön nach Schulbuch (gem. Sampel in der Hilfe).
Jetzt möchte ich aber folgendes tun: Wenn im Browserfenster des Filedialogs ein File selektiert wird, soll dies abgefangen werden und auf eine bestimmte Art umgewandelt werden (z.B. falls den Name eine Nummer enthält, diese um eins erhöhen). Im Feld "Dateiname" soll dann der abgewandelte Dateiname erscheinen. Wie kriege ich das hin? Ich meine den Event abfangen und Namen des selektierten Files erhalten?
Ich hab schon ein bisschen geforscht: mit irgendwie CommandManager und OnSelect sollte das gehen, oder liege ich völlig falsch? Kann mir hier jemand ein Beispiel geben. Mit Beispielen verstehe ich es am besten.

Gruss aus der Schweiz

Lexxus

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: 18. Apr. 2008 23:11    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 Lexxus 10 Unities + Antwort hilfreich

Hallo Lexxus,

hääääääää..... mir ist nicht ganz klar, was Du genau machen möchtest. Vielleicht beschreibst Du Dein Anliegen mal so rum:
- ich habe DIES
- ich möchte DAS

Sorry, aber jeder (zumindest die Meisten) helfen gerne hier, aber dazu ist etwas mehr Information nötig.

------------------
Grüsse, Paul

Inventor-Programmierung, Inventor-Tools und Inventor API-Schulung

Meine Tochter auf Youtube

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

daywa1k3r
Moderator
Softwareentwickler




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

Beiträge: 3497
Registriert: 01.08.2002

Alienware m17x, Win7, Inventor2012

erstellt am: 19. Apr. 2008 09:24    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 Lexxus 10 Unities + Antwort hilfreich

Hallo,

also ohne jetzt nachgeschaut zu haben, du kannst den Dateinamen in dem Dialog beeinflussen, jedoch gibt es keine Events für die Selektion. OnSelect ist schon ein Event, bezieht sich jedoch auf die Änderungen des SelectSets (von Inventor Objekten).

Aber ich glaube zu wissen was du machen willst, denn so etwas haben wir schon mal gemacht. Eine Client-Server Applikation, die in einer Firma immer die Nummer nach bestimmten Schema vergibt (also fortlaufend, dass keine Doppelnamen entstehen). Aber wenn du so etwas stabil und zuverlässig realisieren möchtest, würde ich dir von VBA abraten.

------------------
Grüße Igor

FX64 Software Solutions

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

Lexxus
Mitglied
Masch.Ing. ETH

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

Beiträge: 4
Registriert: 18.04.2008

erstellt am: 21. Apr. 2008 10:07    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

Sorry, wenn ich mich etwas undeutlich ausgedrückt haben sollte.
Also, ich hab folgende Zeilen in einem VBA-Programm:

Dim oFileDlg As FileDialog
    Call ThisApplication.CreateFileDialog(oFileDlg)
    oFileDlg.FilterIndex = 1
    oFileDlg.InitialDirectory = asPaths(i)
    oFileDlg.Filter = "*.ipt" '"Inventor Files (*.iam;*.ipt)|*.iam;*.ipt|All Files (*.*)|*.*"  '"*.ipt"
    oFileDlg.DialogTitle = "Teil speichern mit nächster verfügbarer Nummer"
    oFileDlg.FileName = FileName
    oFileDlg.CancelError = True
    On Error Resume Next
   
    oFileDlg.ShowSave

Darin wird "schulbuchmässig" der Filedialog von Inventor aufgerufen. Soweit so gut.
Den Filename, den ich an den Dialog übergebe ("oFileDlg.FileName = FileName") habe ich schon vorher durch einen Suchalgorithmus bestimmt. Wie, ist in diesem Zusammenhang nicht wichtig.
Was ich jetzt nun möchte (daywa1k3r hat es schon richtig erahnt) ist folgendes:
Während des Dialogfenster offen ist, steht unten neben "Dateiname" der oben erwähnte Filename.
Darüber ist ja ein Bereich sichtbar, worin eine Auswahl von Files zu sehen ist. Sobald ein File angeklickt wird, wird ja der untenstehende Dateiname ersetzt durch den soeben angeklickten.
Das möchte ich abfangen. Es soll nicht der soeben angeklickte Filename erscheinen, sondern der nächsthöhere verfügbare Filename (Bei unserem Nummernsystem, die nächste verfügbare Nummer). Dabei ist der Suchalgorithmus nicht das Problem sondern das Abfangen.
daywa1k3r hat schon recht, über alle CAD-Files dies zumachen ( Wir haben so um die 100'000), ist etwas unsinnig über VBA zu realisiern, dazu sollte man eher ein PDM-System benutzen. Der Algorithmus sucht auch nur im gerade offenen Pfad, und wir haben Hunderterblöcke vom Nummernsystem her. Es soll nur eine Eingabehilfe sein, die Verantwortung, dass keine Doppelnamen entstehen liegt beim jeweiligen CAD-User.
Sachdienliche Hinweise nimmt jeder CAD-User entgegen, oder wenden Sie sich an die nächste CAD-Stelle. Nein, Spass bei Seite
Ich wäre froh, wenn Ihr mir trotzdem einen Rat geben könnt.

Gruss Lexxus

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

Manfred Zirk
Mitglied



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

Beiträge: 513
Registriert: 01.11.2002

IV2008 SP1 MDT2008 WIN XP SP2, Vista x64
Asus A8N-SLI, AMD Opteron 180 , 4GB,
Quadro FX 3400

erstellt am: 21. Apr. 2008 11:18    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 Lexxus 10 Unities + Antwort hilfreich

Hallo Lexxus,

wenn die Inventor-Dialogbox nicht alle gewünschten Möglichkeiten bietet,
dann könnte man vielleicht alternativ den Standard-Filedialog aus VBA verwenden.

Grüße

Manfred

[Diese Nachricht wurde von Manfred Zirk am 21. Apr. 2008 editiert.]

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

Lexxus
Mitglied
Masch.Ing. ETH

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

Beiträge: 4
Registriert: 18.04.2008

erstellt am: 22. Apr. 2008 17:28    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 Manfred

Wie ruft man den Standard-Filedialog auf?

Gruss Alex

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

Manfred Zirk
Mitglied



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

Beiträge: 513
Registriert: 01.11.2002

IV2008 SP1 MDT2008 WIN XP SP2, Vista x64
Asus A8N-SLI, AMD Opteron 180 , 4GB,
Quadro FX 3400

erstellt am: 22. Apr. 2008 20: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 Lexxus 10 Unities + Antwort hilfreich


Modul2.bas.txt

 
Hallo Lexxus,

anbei ein VBA-Modul mit dem Code für den Aufruf des Windows-Filedialogs in Inventor 2008 VBA.
Ich habe den Code ausprobiert, die Dialogbox geht auf und nimmt eine Auswahl entgegen.

Ich habe lediglich die Anpassung, damit der Code in Inventor VBA gestartet werden kann, hinzugefügt.
Die Prozedur "StartDialog" sollte in Inventor als Makro sichtbar sein und dient zum Starten Prozedur "TestIt"

Im VBA-Editor kann man die Prozedur "TestIt" direkt starten.

Du musst nur das Modul Modul2.bas in deine VBA-Projektdatei importieren.
Vorher bitte die Dateierweiterung .txt vom Dateinamen entfernen.

Ich denke, wenn man den Code etwas unter die Lupe nimmt und sich anschaut, wie der Programmierer mit der MsgBox das Ergebnis eingefangen hat, sollte man die Dialogbox schon anpassen können.
Weiter Infos zur Dialogbox und zur Win-API findest du bei Google
oder MSDN.

Grüße

Manfred

[Diese Nachricht wurde von Manfred Zirk am 23. Apr. 2008 editiert.]

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