| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Erste Schritte mit VBA u. Inventor (3533 mal gelesen)
|
Hans-Peter Dukeck Mitglied Programmierer
Beiträge: 359 Registriert: 17.02.2003
|
erstellt am: 16. Jul. 2003 16:08 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich mache derzeit meine ersten Schritte mit VBA und Inventor. Ich habe ein Add-In (ActiveX DLL) so wie in der Hilfe beschrieben erzeugt und einen neuen Werkzeugkasten mit einem Icon angelegt. Dieser Werkzeugkasten ist aber immer aktiv. Auch wenn alle Fenster geschlossen wurden. Wo bzw. welches Ereigniss wird in dem Add-In ausgelöst wenn z. B. ein Fenster geschlossen bzw. geöffnet werden? Oder noch besser wie kann ich meinen Werkzeugkasten wieder deaktivieren, wenn keine offenen Fenster vorhanden sind? Vielen Dank für die Tipps! Grüße Hans-Peter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 16. Jul. 2003 17:01 <-- editieren / zitieren --> Unities abgeben: Nur für Hans-Peter Dukeck
Hi, du kannst in Extras\Anpassen festlegen wo dein AddIn sichtbar werden soll. Als Werkzeugkasten ist es immer sichtbar. Daswegen gibt es PanelBar das immer in bestimter Umgebung sichtbar ist. Willst du dein AddIn in einer Baugruppe sichtbar haben, dann stelle die Umgebung auf Set oEnvBase = oEnvBase.Item("PMxAssemblyEnvironment") als Einzelteil Set oEnvBase = oEnvBase.Item("PMxPartEnvironment") ... Hier ein Teil aus Programming Help das dies erklärt: Code:
' Set a reference to the environment base collection object. Dim oEnvBase As EnvironmentBase Set oEnvBase = oApp.EnvironmentBaseCollection ' Create a new command bar Dim oCommandBar As CommandBarBase Set oCommandBar = oEnvBase.CommandBarBaseCollection.Add("AddIn Sample") ' Add buttons to the command bar for the two handlers. Call oCommandBar.Controls.Add(kBarControlButton, _ oButtonHandler1.ControlDefinition) Call oCommandBar.Controls.Add(kBarControlButton, _ oButtonHandler2.ControlDefinition) ' Get the 2d sketch environment base object. Dim oEnvBase As EnvironmentBase Set oEnvBase = oEnvBase.Item("PMxPartSketchEnvironment") ' Make this command bar accessible in the panel menu for the ' 2d sketch environment. oEnvBase.PanelBarList.Add oCommandBar
Bis bald... ------------------ Grüße daywa1k3r Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hans-Peter Dukeck Mitglied Programmierer
Beiträge: 359 Registriert: 17.02.2003
|
erstellt am: 17. Jul. 2003 08:36 <-- editieren / zitieren --> Unities abgeben:
Hallo daywa1k3r, vielen Dank für den Tipp. Schade ist nur das ich dann keine Werkzeugkästen mehr habe. Oder kann ich überprüfen wenn ich auf ein Icon klicke ob dann eine Zeichnung offen ist oder alle Fenster geschlossen sind. Danke! Grüße HP
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 17. Jul. 2003 11:23 <-- editieren / zitieren --> Unities abgeben: Nur für Hans-Peter Dukeck
Hallo, ja das geht, aber es ergibt keinen Sinn. Wenn du jetzt auf dein Icon in der Werkzeugleiste klickst, soll der prüfen ob das passende Dokument offen ist, und wenn nicht soll er sich verstecken ? Wie auch immer so kannst du prüfen ob ein Dokument offen ist, und von welchen Typ es ist. Code:
If ThisApplication.Documents.Count = 0 Then MsgBox "No Document" If ThisApplication.ActiveDocumentType = kAssemblyDocumentObject Then MsgBox "Assembly Document" If ThisApplication.ActiveDocumentType = kPartDocumentObject Then MsgBox "Part Document" If ThisApplication.ActiveDocumentType = kDrawingDocumentObject Then MsgBox "Drawing Document"
ThisApplication solltest du in der dll durch dein Application Object ersetzen (wahrscheinlich oApp). Bis bald... ------------------ Grüße daywa1k3r Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hans-Peter Dukeck Mitglied Programmierer
Beiträge: 359 Registriert: 17.02.2003
|
erstellt am: 17. Jul. 2003 14:03 <-- editieren / zitieren --> Unities abgeben:
|
Hans-Peter Dukeck Mitglied Programmierer
Beiträge: 359 Registriert: 17.02.2003
|
erstellt am: 17. Jul. 2003 14:23 <-- editieren / zitieren --> Unities abgeben:
Hi, ich habe noch was vergessen. kann ich in meiner activ-dll auch überprüfen ob ein dokument geschlossen wurde oder besser gesagt wird in meiner activx-dll ein ereignis ausgelöst wenn ein dokument geschlossen wird? Grüße HP Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 17. Jul. 2003 16:19 <-- editieren / zitieren --> Unities abgeben: Nur für Hans-Peter Dukeck
Zitat:
wird in meiner activx-dll ein ereignis ausgelöst wenn ein dokument geschlossen wird?
Ja, du sagst es: Ereignis -> Event. Ist aber ein wenig komplexer, das Thema. Ich melde micht heute Abend, da ich jetzt in der Arbeit bin. ------------------ Grüße daywa1k3r Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mtl3d Ehrenmitglied Konstrukteur
Beiträge: 1544 Registriert: 03.05.2002
|
erstellt am: 17. Jul. 2003 19:05 <-- editieren / zitieren --> Unities abgeben: Nur für Hans-Peter Dukeck
|
Hans-Peter Dukeck Mitglied Programmierer
Beiträge: 359 Registriert: 17.02.2003
|
erstellt am: 18. Jul. 2003 08:00 <-- editieren / zitieren --> Unities abgeben:
|
Hans-Peter Dukeck Mitglied Programmierer
Beiträge: 359 Registriert: 17.02.2003
|
erstellt am: 18. Jul. 2003 11:26 <-- editieren / zitieren --> Unities abgeben:
|
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 18. Jul. 2003 11:40 <-- editieren / zitieren --> Unities abgeben: Nur für Hans-Peter Dukeck
|
mtl3d Ehrenmitglied Konstrukteur
Beiträge: 1544 Registriert: 03.05.2002
|
erstellt am: 18. Jul. 2003 11:40 <-- editieren / zitieren --> Unities abgeben: Nur für Hans-Peter Dukeck
|