solid edge vb.net add-in mit visual studio 2005 file31.08.2007 am schulacker 9 d-64846 groß-zimmern...
TRANSCRIPT
31.08.2007
am schulacker 9 d-64846 groß-zimmern fon/fax: +49 (6071)-71652 email : [email protected] www : www.wksyspro.de dipl-ing wolfgang kunert systemprogrammierung
©w
ww
.w
ks
ys
pr
o.d
e
Solid Edge VB.NET Add-In mit Visual Studio 2005 Visual Studio 2005 bietet unter „Andere Projekttypen“ einen Projekttyp „Gemeinsames Add-
In“ zur Erstellung eines (allgemeinen Microsoft Office) Add-In’s:
Es erscheint folgender Assistentendialog, der in 5 Schritten das Grundgerüst erstellen hilft:
In Schritt 2 von 5 wählt man aus der Liste der angebotenen Microsoft Hostprogramme
zunächst ein einziges (z.B. Word) aus. Die für Word erzeugten Code Fragmente ersetzen wir
später durch die notwendigen Solid Edge Elemente.
31.08.2007
am schulacker 9 d-64846 groß-zimmern fon/fax: +49 (6071)-71652 email : [email protected] www : www.wksyspro.de dipl-ing wolfgang kunert systemprogrammierung
©w
ww
.w
ks
ys
pr
o.d
e
In Schritt 3 von 5 vergibt man einen Namen und eine Beschreibung für das Add-In.
Im nächsten Schritt 4 von 5 kann man entscheiden, ob das Add-In automatisch mit dem Start
der Hostanwendung geladen werden soll und ob das Add-In für alle Anwender auf dem
Rechner verfügbar sein soll, oder nur für denjenigen, der das Add-In installiert hat.
31.08.2007
am schulacker 9 d-64846 groß-zimmern fon/fax: +49 (6071)-71652 email : [email protected] www : www.wksyspro.de dipl-ing wolfgang kunert systemprogrammierung
©w
ww
.w
ks
ys
pr
o.d
e
Im letzten Schritt erfolgt eine Zusammenfassung der bisher erfolgten Eingaben.
Mit der Auswahl von „Fertig stellen“ erscheint die neue Projektmappe mit 2 darin enthaltenen
Projekten: Das eigentliche Add-In und ein Setup-Projekt für die Installation des Add-In’s.
Nun entfernt man zunächst den Verweis auf die Microsoft.Office.Core Bibliothek und fügt
stattdessen die für die Solid Edge Automation benötigten Verweise ein. Zumindest also die
COM Solid Edge Framework Typbibliothek.
31.08.2007
am schulacker 9 d-64846 groß-zimmern fon/fax: +49 (6071)-71652 email : [email protected] www : www.wksyspro.de dipl-ing wolfgang kunert systemprogrammierung
©w
ww
.w
ks
ys
pr
o.d
e
Anschließend gilt es die Codedatei „Connect.vb“ anzupassen. Die markierten Bereiche sind
durch Solid Edge spezifischen Code zu ersetzen bzw. zu ergänzen.
Es sind mindestens die 3 durch das ISolidEdgeAddIn Interface definierten Methoden
„OnConnection“, „OnConnectToEnvironment“ und „OnDisconnection“ zu implementieren.
Beispielhaft zeige ich hier noch die Methodenrümpfe für die Implementierung der
Ereignishandler für die beiden Ereignisse „BeforeDocumentSave“ und „BeforeQuit“. Damit
die Nutzung von „MessageBox“ möglich wird, muss dem Projekt auch noch der Verweis
„System.Windows.Forms“ hinzugefügt werden.
31.08.2007
am schulacker 9 d-64846 groß-zimmern fon/fax: +49 (6071)-71652 email : [email protected] www : www.wksyspro.de dipl-ing wolfgang kunert systemprogrammierung
©w
ww
.w
ks
ys
pr
o.d
e
Große Bedeutung kommt der durch den Assistenten generierten CLSID in Form des Attributs
„GuidAttribute“ in der Datei „Connect.vb“ zu.
Diese CLSID ist in einer REG-Datei, z.B. mit dem Dateinamen „EigenesAddIn1.reg“, zur
korrekten Registrierung des Add-In’s zu verwenden. Die anderen unten aufgeführten CLSIDs
sind Solid Edge spezifisch und Solid Edge Versions unabhängig! Dabei sind nur diejenigen
Environment-Abschnitte (Part, Assembly, Draft, Sheet Metal oder Weldment) aufzunehmen,
in denen das Add-In aktiv sein soll!
REGEDIT4
[HKEY_CLASSES_ROOT\CLSID\{27769393-4393-4691-B6A6-06857F64B29E}]
@="EigenesAddIn1"
"AutoConnect"=dword:00000001
"409"=" EigenesAddIn1"
[HKEY_CLASSES_ROOT\CLSID\{27769393-4393-4691-B6A6-06857F64B29E}\Implemented
Categories\{26B1D2D1-2B03-11d2-B589-080036E8B802}]
@="EigenesAddIn1 for Solid Edge"
[HKEY_CLASSES_ROOT\CLSID\{27769393-4393-4691-B6A6-06857F64B29E}\Environment
Categories\{26618396-09D6-11d1-BA07-080036230602}]
@="Solid Edge Part Environment"
[HKEY_CLASSES_ROOT\CLSID\{27769393-4393-4691-B6A6-06857F64B29E}\Environment
Categories\{26618395-09D6-11d1-BA07-080036230602}]
@="Solid Edge Assembly Environment"
[HKEY_CLASSES_ROOT\CLSID\{27769393-4393-4691-B6A6-06857F64B29E}\Environment
Categories\{08244193-B78D-11D2-9216-00C04F79BE98}]
@="Solid Edge Draft Environment"
[HKEY_CLASSES_ROOT\CLSID\{27769393-4393-4691-B6A6-06857F64B29E}\Environment
Categories\{26618398-09D6-11D1-BA07-080036230602}]
@="Solid Edge Sheet Metal Environment"
[HKEY_CLASSES_ROOT\CLSID\{27769393-4393-4691-B6A6-06857F64B29E}\Environment
Categories\{7313526A-276F-11D4-B64E-00C04F79B2BF}]
@="Solid Edge Weldment Environment"
Die REG-Datei ist nach der Installation des Add-In’s über das Setup Projekt einmalig über
Doppelklick im Windows Explorer mit Administratorrechten auszuführen, könnte aber auch
optimaler Weise, bei Kenntnis um die Erweiterung des Setup Projekts, in dieses integriert
werden!
Es empfiehlt sich im Setup-Projekt dessen Eigenschaften
„ProductName“ und „Title“ auf Bezeichnungen ohne
angefügtes „Setup“ zu ändern, da dies ansonsten eine
unpassende Produktbezeichnung für das Add-In darstellt.
31.08.2007
am schulacker 9 d-64846 groß-zimmern fon/fax: +49 (6071)-71652 email : [email protected] www : www.wksyspro.de dipl-ing wolfgang kunert systemprogrammierung
©w
ww
.w
ks
ys
pr
o.d
e
Nun kann die Lösung erstellt werden. Im Setup Projekt findet man anschließend die beiden
Dateien „Setup.exe“ und „EigenesAddIn1Setup.msi“. Mit „Setup.exe“ startet man die
Installation des Add-In’s:
Schließlich muss noch einmalig die vorbereitete REG-Datei importiert werden, um die
notwendigen Solid Edge Registrierungseinträge zu erwirken.
31.08.2007
am schulacker 9 d-64846 groß-zimmern fon/fax: +49 (6071)-71652 email : [email protected] www : www.wksyspro.de dipl-ing wolfgang kunert systemprogrammierung
©w
ww
.w
ks
ys
pr
o.d
e
Nun naht der große Augenblick: Starten von Solid Edge und Aktivieren des soeben erstellten
Add-In’s über den Solid Edge Add-In-Manager.
Nach dem Wechsel in eine der registrierten Umgebungen ist das Add-In „scharf“ und es
werden die implementierten Ereignishandler durchlaufen.
Bei einem produktiven Solid Edge Add-In sollte man natürlich Meldungen per MessageBox
vermeiden, da ansonsten das Add-In den Ablauf blockiert. Meldungen dieser Art sollten
immer nur in Abhängigkeit der Solid Edge Application-Objekt Eigenschaft „DisplayAlerts“
erfolgen.
Das gezeigte Beispiel und die Vorgehensweise der Implementierung stellen keinen Anspruch
auf Vollständigkeit und jegliche Anwendung geschieht auf eigene Verantwortung.
Viel Erfolg!