| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Fehler beim Hinzufügen von Toolbar-Buttons (1108 mal gelesen)
|
Boortsneggor Mitglied Ingenieur
Beiträge: 49 Registriert: 27.12.2011 Win7 Prof, Visual Studio 2010/2012, ObjectARX 2008/2012/2013, ACAD 2008/2012/2013
|
erstellt am: 10. Apr. 2014 15:13 <-- editieren / zitieren --> Unities abgeben:
Guten Tag, ich habe vor kurzem bei einem Kunden ein AutoCAD-Zusatz (AutoCAD 2013 x64), mit einer Toolbar installieren wollen. Leider schlägt das Hinzufügen eines Toolbar-Buttons aus mir noch unerklärlichen Gründen fehl. Ich füge die Toolbar und Ihre Buttons folgendermaßen ein:
Code:
AcadApplication aApp = Autodesk.AutoCAD.ApplicationServices.Application.AcadApplication as AcadApplication; AcadToolbar acadTB = aApp.MenuGroups.Item(0).Toolbars.Add("Test"); if (acadTB != null) { //Genau an dieser Stelle bekomme ich die Exception geworfen AcadToolbarItem bt0 = gaboTB.AddToolbarButton(0, "NewFunc", "Irgendeine Funktion...", "_NEWFUNC "); }
Beim Versuch den ersten Button zu erstellen bekomme ich die aussagekräftige Fehlermeldung "Eine externe Komponente hat eine Ausnahme ausgelöst.", welche ich mit Autodesk.AutoCAD.Runtime.Exception gecatched habe. Der Aufsatz läuft beim gleichen Kunden schon auf mehreren anderen Clients mit der gleichen AutoCAD-Version ohne Probleme. Nur bei diesem einen Client scheitert diese Methode. Ich habe es auch versucht bei uns zu reproduzieren, aber unter sämtlichen Bedingungen funktionieren diese Methoden einwandfrei. Hat vielleicht von schon mal jemand ähnliche Probleme gehabt, bzw. hat vielleicht einer eine Idee, wie man noch nähere Infos über die Ursache bekommen könnte? Vielen Dank für eure Hilfe! Grüße Robert ------------------ Robert Menger Menger Engineering GmbH Entwicklung Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ingenieur Studio HOLLAUS Mitglied CAD / CAFM / GIS Beratung-Programmierung-Schulung
Beiträge: 1049 Registriert: 06.11.2008 Autocad 2 bis Autocad 2020 (+Map3D, +Civil3D, +Infraworks) RKV .... CAFM+mehr HMap ... Vermessung und Verkehr OoC .... Raumplanung CBox ... Tools für AutoCAD und BricsCAD (kostenfrei)
|
erstellt am: 10. Apr. 2014 15:30 <-- editieren / zitieren --> Unities abgeben: Nur für Boortsneggor
Zitat: Der Aufsatz läuft beim gleichen Kunden schon auf mehreren anderen Clients mit der gleichen AutoCAD-Version
Als erstes würde ich versuchen "liegts am Rechner" oder "liegts am Anwender", also einen neuen lokalen Windows-Account auf dieser Workstation anlegen, mit diesem einloggen (damit sollte es ein jungfräuliches AutoCAD-Profil geben, ev. aufpassen, dass nicht schon irgendwelche Exchange-Plugins aktiviert sind) und das eigene Tool dann probieren. Funktioniert dieses auch, dann verifizieren, ob es das gleiche Servicepack von AutoCAD installiert ist, wenn ja, kann man eine AutoCAD-Reparaturinstallation durchführen. Alles in allem rel. wenig Aufwand, bereinigt aber einen Großteil der Grundsorge "wirklich gleich mit anderen" ... ------------------
www.cars4fun.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Boortsneggor Mitglied Ingenieur
Beiträge: 49 Registriert: 27.12.2011 Win7 Prof, Visual Studio 2010/2012, ObjectARX 2008/2012/2013, ACAD 2008/2012/2013
|
erstellt am: 10. Apr. 2014 16:52 <-- editieren / zitieren --> Unities abgeben:
Es handelt sich bei dem Client um eine komplett neu aufgesetzte VM. Das AutoCAD wurde schon zweimal komplett neu installiert. Andere Benutzer habe ich auch getestet. Auf dieser Maschine bekomme ich immer wieder dieses Problem. Es ist wie verhext... ------------------ Robert Menger Menger Engineering GmbH Entwicklung Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ingenieur Studio HOLLAUS Mitglied CAD / CAFM / GIS Beratung-Programmierung-Schulung
Beiträge: 1049 Registriert: 06.11.2008 Autocad 2 bis Autocad 2020 (+Map3D, +Civil3D, +Infraworks) RKV .... CAFM+mehr HMap ... Vermessung und Verkehr OoC .... Raumplanung CBox ... Tools für AutoCAD und BricsCAD (kostenfrei)
|
erstellt am: 10. Apr. 2014 17:38 <-- editieren / zitieren --> Unities abgeben: Nur für Boortsneggor
ServicePack ident mit anderen? Menü (das AutoCAD eigene) ist noch original? Das mit 2mal aufgesetzt: tritt es gleich nach dem Setup auf oder erst, wenn der User mit dieser VM mal ne zeitlang aktiv war? Wenn es eine VM ist, dann wäre diese ja "transportabel" ==> VS und SourceCode drauf und debuggen ... geht das? ------------------
www.cars4fun.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ingenieur Studio HOLLAUS Mitglied CAD / CAFM / GIS Beratung-Programmierung-Schulung
Beiträge: 1049 Registriert: 06.11.2008 Autocad 2 bis Autocad 2020 (+Map3D, +Civil3D, +Infraworks) RKV .... CAFM+mehr HMap ... Vermessung und Verkehr OoC .... Raumplanung CBox ... Tools für AutoCAD und BricsCAD (kostenfrei)
|
erstellt am: 10. Apr. 2014 17:41 <-- editieren / zitieren --> Unities abgeben: Nur für Boortsneggor
Und nur sicherheitshalber: im Code steht zuerst if ( acadTB != null) ... und nachfolgend AcadToolbarItem bt0 = gaboTB.AddToolbarButton(... Stimmt das so, das if sollte doch die Existenz eines Objekt prüfen bevor es dann verwendet wird, oder sehe ich es falsch? ------------------
www.cars4fun.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Boortsneggor Mitglied Ingenieur
Beiträge: 49 Registriert: 27.12.2011 Win7 Prof, Visual Studio 2010/2012, ObjectARX 2008/2012/2013, ACAD 2008/2012/2013
|
erstellt am: 10. Apr. 2014 19:26 <-- editieren / zitieren --> Unities abgeben:
Also der Code sollte soweit in Ordnung sein (bis auf gaboTB, das muss acadTB heißen), ich erstelle erst ein AcadToolbar-Object, und wenn das nicht null ist, füge ich dieser Toolbar die Buttons hinzu. Der Fehler tritt sofort nach der Installation auf, die AutoCAD-Versionen und Service-Packs sind identisch, es handelt sich sogar um eine Seriennummer. Das mit dem Installieren von VS auf der VM wird eher nichts, da es bei dem Kunde strikte IT-Richtlinien gibt. Ich habe aber eine spezielle Version des Aufsatzes kompiliert, die mir sämtliche Schritte mitlogged. Dadurch bin ich auch darauf gekommen, dass AutoCAD direkt bei der Funktion "AddToolbarButton()" ein Problem hat. Durch debuggen würde man wahrscheinlich auch nicht viel mehr herausbekommen. Ich habe ebenfalls geprüft, ob das Toolbar-Objekt ordentlich erstellt wird, aber auch das scheint zu funktionieren. ------------------ Robert Menger Menger Engineering GmbH Entwicklung Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ingenieur Studio HOLLAUS Mitglied CAD / CAFM / GIS Beratung-Programmierung-Schulung
Beiträge: 1049 Registriert: 06.11.2008 Autocad 2 bis Autocad 2020 (+Map3D, +Civil3D, +Infraworks) RKV .... CAFM+mehr HMap ... Vermessung und Verkehr OoC .... Raumplanung CBox ... Tools für AutoCAD und BricsCAD (kostenfrei)
|
erstellt am: 10. Apr. 2014 19:49 <-- editieren / zitieren --> Unities abgeben: Nur für Boortsneggor
Zitat: Der Fehler tritt sofort nach der Installation auf
Welche Exception kommt denn genau? Schwer auch, wenn wirklich 2 VM's erstellt werden, auf einer geht's und auf der anderen nicht ... die Worst-Case-Variante dafür wäre jetzt: lösche die "kaputte" VM und kopiere die funktionierende. ------------------
www.cars4fun.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ingenieur Studio HOLLAUS Mitglied CAD / CAFM / GIS Beratung-Programmierung-Schulung
Beiträge: 1049 Registriert: 06.11.2008 Autocad 2 bis Autocad 2020 (+Map3D, +Civil3D, +Infraworks) RKV .... CAFM+mehr HMap ... Vermessung und Verkehr OoC .... Raumplanung CBox ... Tools für AutoCAD und BricsCAD (kostenfrei)
|
erstellt am: 11. Apr. 2014 20:29 <-- editieren / zitieren --> Unities abgeben: Nur für Boortsneggor
|
Boortsneggor Mitglied Ingenieur
Beiträge: 49 Registriert: 27.12.2011 Win7 Prof, Visual Studio 2010/2012, ObjectARX 2008/2012/2013, ACAD 2008/2012/2013
|
erstellt am: 11. Apr. 2014 21:16 <-- editieren / zitieren --> Unities abgeben:
Das habe ich auch schon überlegt, aber die Acad-Version ist ja auch noch jungfräulich. Ich werde mir das am Montag nochmal anschauen. Vielen Dank erstmal für deine Hilfe und ein schönes Wochenende! ------------------ Robert Menger Menger Engineering GmbH Entwicklung Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Boortsneggor Mitglied Ingenieur
Beiträge: 49 Registriert: 27.12.2011 Win7 Prof, Visual Studio 2010/2012, ObjectARX 2008/2012/2013, ACAD 2008/2012/2013
|
erstellt am: 15. Apr. 2014 17:27 <-- editieren / zitieren --> Unities abgeben:
So, ich habe jetzt versucht, die Toolbar-Generierung noch etwas zu kapseln. Leider funktioniert es bei besagtem Kunden immer noch nicht. Immer wenn die Funktion AcadToolbar.AddToolbarButton() aufgerufen wird, kommt es zu einem Fehler. Die Fehlermeldung lautet lediglich "Eine externe Komponente hat eine Ausnahme ausgelöst!". Ich versteh das einfach nicht, das Toolbar-Objekt wird einwandfrei erstellt, warum kann ich dann diesem Objekt keine Buttons anfügen? Und warum tritt das nur bei diesem einen Client auf? Gibt es eventuell noch eine andere Möglichkeit, eine Toolbar im AutoCad zu erstellen? Für Vermutungen, Vorschläge zur genaueren Fehlerausgabe oder Lösungen wäre ich sehr dankbar! Vielen Dank schon mal! Grüße Robert ------------------ Robert Menger Menger Engineering GmbH Entwicklung Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ingenieur Studio HOLLAUS Mitglied CAD / CAFM / GIS Beratung-Programmierung-Schulung
Beiträge: 1049 Registriert: 06.11.2008 Autocad 2 bis Autocad 2020 (+Map3D, +Civil3D, +Infraworks) RKV .... CAFM+mehr HMap ... Vermessung und Verkehr OoC .... Raumplanung CBox ... Tools für AutoCAD und BricsCAD (kostenfrei)
|
erstellt am: 15. Apr. 2014 18:42 <-- editieren / zitieren --> Unities abgeben: Nur für Boortsneggor
Zitat: Die Fehlermeldung lautet lediglich "Eine externe Komponente hat eine Ausnahme ausgelöst!
Das hört sich doch nach dotNET-Fehler an und da kommt i.d.R. ein Meldungsdialog mit der Auflistung der verwendeten Assemblies (+Versionen) und am Anfang die Details (Signaturen) des Fehlers selbst ... kommt das nicht? Aktuell sehe ich in den bisherigen Threads: Deine App wurde auf virtuellen Rechnern installiert, die komplett ident sind ... und solange das tatsächlich richtig wäre, kann ich mir überhaupt keinen Reim darauf machen. Wären die VM's gleich, wären auch die Fehler gleich. Nachdem das nicht so ist, würde ich an dem Punkt ansetzen: a) bis wann waren die VM's gleich (Datum und Installationsstand/installierte Produkte) b) was geschah alles ab dem Zeitpunkt, an dem sich die "Gleichheit" der VM's dadurch aufgelöst hat, wo getrennt installiert wurde (und welche Produkte wurden dann getrennt installiert). Zitat: Gibt es eventuell noch eine andere Möglichkeit, eine Toolbar im AutoCad zu erstellen?
Ja, Befehl CUI ... klingt jetzt vielleicht ein wenig dumm, diese Äusserung, ist aber nicht so gemeint ... denn was macht den das AutoCAD, wenn Du den Vorgang, den Du in Deiner App programmiert hast, mit der CUI manuell nachstellst? Wäre z.B. die Framework-Installation defekt, dann würde vielleicht die gleiche Fehlermeldung kommen. Andere Variante: wenn Deine App auf einem anderen Rechner die Teile im Menü erstellt hat, dann sichere diese mal in eine CUIX, kopiere diese CUIX auf den defekten Rechner, kann diese ohne Fehler geladen werden? HTH & viel Erfolg! ------------------
www.cars4fun.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Boortsneggor Mitglied Ingenieur
Beiträge: 49 Registriert: 27.12.2011 Win7 Prof, Visual Studio 2010/2012, ObjectARX 2008/2012/2013, ACAD 2008/2012/2013
|
erstellt am: 18. Apr. 2014 15:59 <-- editieren / zitieren --> Unities abgeben:
Ich habe jetzt eine Lösung gefunden. Ich füge das Toolbar-Objekt nicht der ersten sondern irgend einer anderen MenuGroup hinzu. Dann wird die Toolbar geladen. Sie steht zwar dann nicht mehr unter Werkzeugkästen/AutoCad, das sollte aber kein Problem sein, oder? Warum das aber bei der ersten MenuGroup nicht klappt, ist mir weiterhin ein Rätsel. Vielen Dank für die Hilfe! ------------------ Robert Menger Menger Engineering GmbH Entwicklung Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ingenieur Studio HOLLAUS Mitglied CAD / CAFM / GIS Beratung-Programmierung-Schulung
Beiträge: 1049 Registriert: 06.11.2008 Autocad 2 bis Autocad 2020 (+Map3D, +Civil3D, +Infraworks) RKV .... CAFM+mehr HMap ... Vermessung und Verkehr OoC .... Raumplanung CBox ... Tools für AutoCAD und BricsCAD (kostenfrei)
|
erstellt am: 18. Apr. 2014 17:54 <-- editieren / zitieren --> Unities abgeben: Nur für Boortsneggor
|