| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Im Fluss: Daten konsolidiert - Prozesse synchronisiert , ein Anwenderbericht
|
Autor
|
Thema: VBA Laden (822 mal gelesen)
|
Wolli Mitglied Konstrukteur
Beiträge: 704 Registriert: 28.02.2001 Win7 64Bit+32Bit VM-Ware I7 12GB ACAD Mech 2010 Inventor Pro 2010 + 2012 Ansys 13 NLS
|
erstellt am: 24. Jun. 2002 12:42 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, ich möchte in der acad.lsp ein VBA-Programm laden lassen. Die Angabe des zu ladenden VBAs muß wohl auch das entsprechende Modul stehen, ich habe mir folgendes für die acad.lsp zusammengeschustert, haut aber nicht ganz hin => Fehlermeldung in der ACAD-Befehlzeile "Ungültiger Dateiname" (command "_-vbaload" "P:/Autodesk/Lisp-VBA-acad2002/Plotsicherung/plot.dvb!Tools.findeBlock_V3") wenn ich das Tools.findeBlock_V3 weglasse wird das vba zwar geladen, aber das Modul findeBlock_V3 steht nicht wie gewünscht beim Plot-Event zur Verfügung. Wo ist der Fehler? Danke und Gruß Wolfgang
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
@LANTHIS Mitglied Bauingeniuer
Beiträge: 4 Registriert: 19.03.2002
|
erstellt am: 24. Jun. 2002 12:51 <-- editieren / zitieren --> Unities abgeben: Nur für Wolli
|
Wolli Mitglied Konstrukteur
Beiträge: 704 Registriert: 28.02.2001 Win7 64Bit+32Bit VM-Ware I7 12GB ACAD Mech 2010 Inventor Pro 2010 + 2012 Ansys 13 NLS
|
erstellt am: 24. Jun. 2002 13:05 <-- editieren / zitieren --> Unities abgeben:
Danke Karsten für Deine schnelle Antwort, ich habe funktion mit sub ersetzt, die Fehlermeldung bleibt "Ungültiger Dateiname" Ich vermute am VBA muß ich garnichts ändern, da es vor einiger Zeit noch in ACAD2000 schon funktioniert hatte, der Fehler ist evtl. nur im Eintrag in der acad.lsp Gruß Wolfgang
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
@LANTHIS Mitglied Bauingeniuer
Beiträge: 4 Registriert: 19.03.2002
|
erstellt am: 24. Jun. 2002 13:15 <-- editieren / zitieren --> Unities abgeben: Nur für Wolli
Also mal im Detail besprochen. (command "_-vbaload" "P:/Autodesk/Lisp-VBA-acad2002/Plotsicherung/plot.dvb") Dieser Befehl lädt das Modul Plot.dvb. Der zweite Teil ist der Aufruf der Funktion Tools.findeBlock_V3 mittels (command "_-vbarun" "Tools.FindeBlock_V3") Liege ich da richtig? Karsten
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Wolli Mitglied Konstrukteur
Beiträge: 704 Registriert: 28.02.2001 Win7 64Bit+32Bit VM-Ware I7 12GB ACAD Mech 2010 Inventor Pro 2010 + 2012 Ansys 13 NLS
|
erstellt am: 24. Jun. 2002 13:28 <-- editieren / zitieren --> Unities abgeben:
Danke Karsten, ich hatte mich vermutlich nicht ganz richtig ausgedrückt, ich habs gerade ausprobiert, jetzt wird mit vbarun die funktion sofort gestartet wenn acad gestartet wird, das will ich aber nicht, das Programm soll nur geladen und nicht ausgeführt werden. Die Funktion wird dann beim Plot-Event automatisch gestartet und überprüft Zeichnungsnummer im Schriftfeld mit dem Dateinamen. Das hat auch im VBA-Editor funktioniert, nur schaffe ich es nicht das VBA bzw. die Funktion darin beim ACAD-Start automatisch über die acad.lsp zu laden. Wie läd man eine funktion eines VBAs in der acad.lsp? Danke und Gruß Wolfgang Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
UJJ Mitglied
Beiträge: 190 Registriert: 05.03.2002
|
erstellt am: 24. Jun. 2002 13:32 <-- editieren / zitieren --> Unities abgeben: Nur für Wolli
Ja, der erste Ausdruck lädt die VBA-Datei und der zweite führt eine Routine (Sub) daraus aus. Man kann es auch zusammenfassen: (command "_-vbarun" "P:/Autodesk/Lisp-VBA-acad2002/Plotsicherung/plot.dvb!Tools.findeBlock_V3") Jetzt wird die VBA-Datei erst geladen und dann die Routine ausgeführt. Uwe Ups, war etwas zu langsam. Hast du einen Event programmiert, kannst du das ganze wie oben beschrieben machen. Du rufst mit vbarun allerdings nicht die Sub-Routine auf, die die Änderungen vornimmt, sondern eine Routine die die Events initialisiert und die ruft dann beim Plotevent deine Sub-Routine auf.
[Diese Nachricht wurde von UJJ am 24. Juni 2002 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Wolli Mitglied Konstrukteur
Beiträge: 704 Registriert: 28.02.2001 Win7 64Bit+32Bit VM-Ware I7 12GB ACAD Mech 2010 Inventor Pro 2010 + 2012 Ansys 13 NLS
|
erstellt am: 24. Jun. 2002 13:48 <-- editieren / zitieren --> Unities abgeben:
Hallo Uwe, ich stelle mich vermutlich zu dämlich an, aber das vba mit der Funktion, sub oder wie auch immer soll nur geladen vbaload nicht gestartet vbarun werden. in meinem ersten Beitrag ist woh nur ein kleiner Fehler Komma Klammer Ausrufezeichen oder sowas in der art. was ist falsch? (command "_-vbaload" "P:/Autodesk/Lisp-VBA-acad2002/Plotsicherung/plot.dvb!Tools.findeBlock_V3") Danke und Gruß Wolfgang Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
UJJ Mitglied
Beiträge: 190 Registriert: 05.03.2002
|
erstellt am: 24. Jun. 2002 14:22 <-- editieren / zitieren --> Unities abgeben: Nur für Wolli
|
Wolli Mitglied Konstrukteur
Beiträge: 704 Registriert: 28.02.2001 Win7 64Bit+32Bit VM-Ware I7 12GB ACAD Mech 2010 Inventor Pro 2010 + 2012 Ansys 13 NLS
|
erstellt am: 24. Jun. 2002 14:48 <-- editieren / zitieren --> Unities abgeben:
|
Harry K Mitglied Bau-Ingenieur
Beiträge: 42 Registriert: 05.11.2001
|
erstellt am: 26. Jun. 2002 13:46 <-- editieren / zitieren --> Unities abgeben: Nur für Wolli
Hallo Wolli, vielleicht noch ein Versuch... Es kommt darauf an, auf welche Art Du deine Ereignis-Routine anspricht (Anwendungsebene, Dokumentebene, Objektebene). Am einfachsten wäre hier wohl die Anwendungsebene. Füge einfach eine sub wie im beigefügten Bild ein. Sie muß unter Objekte-Thisdrawing stehen! Diese wird dann auch tatsächlich ausgelöst, z.B. beim Plotereignis. Diese Ereignisprozedur ruft dann deine eigene Sub 'Findeblock_v3' aus. Viel Erfolg Harry Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |