| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Beispiel für VB.NET ADDIN? (4042 mal gelesen)
|
J.Schmäck Mitglied Dipl. Ing. Maschinenbau
Beiträge: 62 Registriert: 16.01.2004 IV6... IV10 Windows2000, Dell Workstation PWS650 2X CPU 2,4 GHz 2 GB RAM ATI Fire GL X1
|
erstellt am: 06. Feb. 2006 20:03 <-- editieren / zitieren --> Unities abgeben:
Hallo NG, ich arbeite mit VB.NET und möchte gerne eigene Addins in Inventor10 einbinden. Leider sind keine Beispiele für VB.Net im INV10 Verzeichnis:\Autodesk\Inventor 10\SDK\Samples\Vb.net Wie ich aus den Beiträgen in dieser NG ersehen kann, ist das Einbinden auch nicht ganz einfach. Hat jemand ein kleines Beispielprojekt und kann dieses Projekt hier als Download anbieten? Oder kennt jemand einen guten Link? Danke für jeden Tipp! Mit freundlichen Grüßen ------------------ J.Schmäck Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570 Laptop: Alienware m17x Win7, Inventor2012
|
erstellt am: 08. Feb. 2006 17:54 <-- editieren / zitieren --> Unities abgeben: Nur für J.Schmäck
|
J.Schmäck Mitglied Dipl. Ing. Maschinenbau
Beiträge: 62 Registriert: 16.01.2004 IV6... IV10 Windows2000, Dell Workstation PWS650 2X CPU 2,4 GHz 2 GB RAM ATI Fire GL X1
|
erstellt am: 09. Feb. 2006 19:37 <-- editieren / zitieren --> Unities abgeben:
Warum VB.Net? Ich habe mit dem C64 angefangen, und da war nun mal Basic drauf. Die neue Version von VB.Net ist, schnell, relativ gut zu erlernen und bietet dem Benutzer viele Hilfsangebote an. Kurz: VB.Net ist einfach super. Was will ich: Ich habe verschiedene Windows Anwendungen geschrieben, mit denen ich mir die tägliche Arbeit erleichtere. zwei Beispiele: Ein Programm, mit dem man X,Y,Z Punktelisten aus Excel oder Word Tabellen lesen kann und diese Punkte dann als Bohrpunkte oder nur Punkte oder durch Angabe eines zusätzlichen Radius auch als Kreis in eine Inventor.ipt importieren kann. Und… Ein Programm, das eine Inventor.idw nach ihrer Zeichnungsgröße (Papierformat und Ausrichtung) fragt und dann entscheidet welcher meiner Drucker das Papier drucken soll. So kann ich mit einem Klick drucken. Außerdem kann ich Seriendruckaufträge auslösen ohne Inventor offen zu haben. Und… Ich möchte: 1. diese Programme in der Inventor Umgebung zum laufen bringen. 2. Eine Setup-Datei erzeugen um gute Programm-Ideen auch anderen Inventornutzern zugänglich zu machen. (Freeware)
Mein heutiger Stand:
Ich habe ein Projekt erstellt, eine StandardAddInServer Applikation erstellt. Durch umschreiben eines Visual Basic6-Listing konnte ich in Inventor 10 eine neue Toolbar, Button´s und Comboboxen erstellen. Von meinem Zielen bin ich aber noch viele Stunden „Versuch und Irrtum“ entfernt. Ich kann das Button_Click Ereignis nicht auslösen oder nicht richtig nutzen: Dieses Ereignis scheint im Inventor _OnExecute zu heißen und die folgende Sub sollte angesprochen werden!? Private Sub oButtonTest_OnExecute(ByVal Context As Inventor.NameValueMap) ‘Hier soll meine Anwendung gestartet werden!? End Sub Mit einem guten Beispiel käme ich einfach schneller zum Ziel!
(PS.: Ich bin Hobby Programmierer, kann also weder VB.Net noch Inventor API perfekt) ------------------ J.Schmäck Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BernhardU Mitglied Techniker / Konstrukteur / Student
Beiträge: 328 Registriert: 17.08.2005 Windows XP SP3 AIP 2011 VS 2005
|
erstellt am: 09. Feb. 2006 20:14 <-- editieren / zitieren --> Unities abgeben: Nur für J.Schmäck
Hi J.Schmäck! Endlich mal wieder ein VB.Net Hobbyprogrammierer wie ich! Hab dir ein kleines Beispiel rangehängt! Hoffe es klappt! Hatte keine Zeit zum Testen! Ich musste auch die erstellte dll Datei löschen weil die Datei sonst zu groß wäre! musst du dann einfach selbst erstellen! Sollte es nicht funktionieren, dann einfach wieder melden!! Hoffe es hilft! mfg bernhard PS: Hätte ich ja fast vergessen! Autodesk hat zu IV ein nettes und hilfreiches Tool beigelegt! IV Wizard! Einfach mal den Inventor Ordner durchforsten! erspart einiges an schreibarbeit! [Diese Nachricht wurde von BernhardU am 09. Feb. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
J.Schmäck Mitglied Dipl. Ing. Maschinenbau
Beiträge: 62 Registriert: 16.01.2004 IV6... IV10 Windows2000, Dell Workstation PWS650 2X CPU 2,4 GHz 2 GB RAM ATI Fire GL X1
|
erstellt am: 09. Feb. 2006 20:22 <-- editieren / zitieren --> Unities abgeben:
|
J.Schmäck Mitglied Dipl. Ing. Maschinenbau
Beiträge: 62 Registriert: 16.01.2004 IV6... IV10 Windows2000, Dell Workstation PWS650 2X CPU 2,4 GHz 2 GB RAM ATI Fire GL X1
|
erstellt am: 09. Feb. 2006 22:06 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernhard U, ich habe dein Beispiel mit VB bearbeitet: 1. Imports Microsoft.VisualBasic.Compatibility.VB6 2. zwei BMP besorgt und die Pfad auf diese BMP gebogen 3. Inventor Aus 4. InventorAddin neu erstellen 5. Inventor an 6. eine Zeichnung geöffnet 7. in Inventor: Extras/Anpassen hier sollte jetzt: „SMC Zeichnung“ zu finden sein! Ist aber nicht. Das hatte ich gestern bei einem anderen Versuch auch. Public Sub Activate(ByVal AddInSiteObject As Inventor.ApplicationAddInSite, ByVal FirstTime As Boolean) Implements Inventor.ApplicationAddInServer.Activate ….. Wenn ich es richtig verstanden habe, ist FirstTime nur einmal: True – wenn das Addin noch nicht registriet ist. Damit hätte die For-Next Schleife und die If-Abfrage keinen wirklichen sinn, nur der Else-Teil würde einmal durchlaufen (Wenn FirstTime=True) und erst nach diesem Durchlauf ist die CommandBar: "SMC Zeichnung" erzeugt. Richtig? If FirstTime Then Dim i As Long For i = 1 To oApp.UserInterfaceManager.CommandBars.Count If oApp.UserInterfaceManager.CommandBars(i).DisplayName = "SMC Zeichnung" Then Call oApp.UserInterfaceManager.CommandBars(i).Controls.AddButton(blattbutton) Else Dim ocommandbar As CommandBar ocommandbar = InventorApplication.UserInterfaceManager.CommandBars.Add("SMC Zeichnung", "Blattgröße:smczeichnung", CommandBarTypeEnum.kRegularCommandBar, "{0984F160-7937-4EFB-ADE6-8339EDA769F0}")
Call ocommandbar.Controls.AddButton(blattbutton) End If Next End If … End Sub Wenn ich die If-Abfrage ausblende und deinen Code da zwischen ausführen lasse, bekomme ich beim Start von INV10 eine Fehlermeldung, aber die CommandBar: "SMC Zeichnung" ist dann vorhanden, aber auch nicht funktionsfähig. ‘If FirstTime Then Code ausführen ‘End if Für heute ist Schluss!
------------------ J.Schmäck Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BernhardU Mitglied Techniker / Konstrukteur / Student
Beiträge: 328 Registriert: 17.08.2005 Windows XP SP3 AIP 2011 VS 2005
|
erstellt am: 10. Feb. 2006 15:13 <-- editieren / zitieren --> Unities abgeben: Nur für J.Schmäck
Hi J.Schmäck! Die Schleife und die If Auswahl haben den Sinn, da ich mehrere AddIns geschrieben habe und ich alle in die Gleiche Commandbar setzten will schaue ich, ob die Commandbar vorhanden ist, wenn ja denn füge ich nur den Button hinzu uns sonst wird sie neu generiert! Möglicherweise, kann das IV Wizard dein Prolem lösen! Dass du möglicherweise etwas übersehen hast? Ja die FirstTime Variable wird ihrem Namen gerecht und beim ersten mal aktivieren des AddIns ist sie True! Du kanns auch testen, ob du überhaupt bis zu diesen Sub Public Sub Activate(ByVal AddInSiteObject As Inventor.ApplicationAddInSite, ByVal FirstTime As Boolean) Implements Inventor.ApplicationAddInServer.Activate kommst, indem du das Module von Daywalker einbindest hier und dann mithilfe der logfunktion schauts ob das AddIn anspricht! versuch mal das: blattbutton = InventorApplication.CommandManager.ControlDefinitions.AddButtonDefinition("Blatt", "Schriftfeld_einfügen:cmdblatt1", CommandTypesEnum.kQueryOnlyCmdType, "{0178C13E-EB13-4639-B7C7-7A97EDDDC06A}", "Blattgröße definieren", "Blattgröße definieren") blattbutton.Enabled = True blattbutton2 = blattbutton If FirstTime Then Dim ocommandbar As CommandBar ocommandbar = nventorApplication.UserInterfaceManager.CommandBars.Add("SMC Zeichnung", "Blattgröße:smczeichnung", CommandBarTypeEnum.kRegularCommandBar, "{0178C13E-EB13-4639-B7C7-7A97EDDDC06A}") Call ocommandbar.Controls.AddButton(blattbutton) End If Ich hab auch gerade entdeckt, dass ich dir die Falsche ID eingetragen hab bei den! Bei den Buttondefinitionen und den Comandbar-Definitionen musst du immer die ID eintragen, die beim StandardAddInServer ganz oben Steht = ProgID Ich würde einfach mal die Icons für den Button weglassen und auch die Schleife mit der Ifbedingung! Einfach bei Firststart dieCommandbar definieren und den Button zuweisen! Hoffe, dass es jetzt klappt!! mfg Bernhard Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
J.Schmäck Mitglied Dipl. Ing. Maschinenbau
Beiträge: 62 Registriert: 16.01.2004 IV6... IV10 Windows2000, Dell Workstation PWS650 2X CPU 2,4 GHz 2 GB RAM ATI Fire GL X1
|
erstellt am: 10. Feb. 2006 17:34 <-- editieren / zitieren --> Unities abgeben:
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|