| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: Erstellen eines neuen Items im Ribbon Plugins (3514 mal gelesen)
|
rewe89 Mitglied Softwareentwickler
Beiträge: 16 Registriert: 12.03.2013 Windows 7 64-bit AutoCAD 2013
|
erstellt am: 12. Mrz. 2013 10:14 <-- editieren / zitieren --> Unities abgeben:
Ich habe ein eigenes Plugin für AutoCAD geschrieben und möchte dieses Plugin über ein eigenes Item im Ribbon "Plugins" starten können, ähnlich dem Starten des Inventor Fusion Plugins, welches AutoCAD beilag. Im Anhang habe ich ein Bild angefügt, welches das Item des Inventor Fusion Plugins zeigt. Genau so ein Item möchte ich rechts daneben haben, nur eben mit einem Link zu meinem eigenen Plugin. Die Verknüpfung eines Items mit einem Befehl ist mir bekannt. Als Hilfslösung zum Starten meines Plugins habe ich derzeit die AcFusion.cuix bearbeitet und dort den Befehl zu meinem Plugin eingetragen. Jedoch weiß ich nicht, wie ich ein eigenes Item erstelle und wie ich es automatisch beim Start von AutoCAD laden kann. Kann mir bitte jemand weiterhelfen?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 12. Mrz. 2013 10:21 <-- editieren / zitieren --> Unities abgeben: Nur für rewe89
... mit Bordmitteln wüßte ich keine Lösung. Die .Net API stellt aber Möglichkeiten zum Laden mit Integration Eines Ribbon ontrols zur Verfügung. Grüße! Holger ------------------ Holger Brischke FREIE SCHULUNGSPLÄTZE -- C#.NET-Schulung im Mai 2013 Bei Interesse bitte melden! CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen.
defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rewe89 Mitglied Softwareentwickler
Beiträge: 16 Registriert: 12.03.2013 Windows 7 64-bit AutoCAD 2013
|
erstellt am: 12. Mrz. 2013 10:39 <-- editieren / zitieren --> Unities abgeben:
Wie macht es denn dann das Fusion Plugin? Dann müsste ich ja wieder ein Plugin schreiben, welches mein anderes Plugin programmatisch ins AutoCAD einfügt. Oder kann man auch von außen z.B. eine .exe starten, welche das neue Plugin fest mit AutoCAD verbindet? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 bis ACA 2013 Arcibem System: Windows Internet-Startseite: http://www.archi.de
|
erstellt am: 12. Mrz. 2013 10:56 <-- editieren / zitieren --> Unities abgeben: Nur für rewe89
Soll das automatisch geschehen? Ansonsten einfach in der CUI unter den MF-Leisten eine entsprechende eigene Gruppe erstellen (oder eine entsprechende eigene partielle Anpassungsdatei), und diese Gruppe in die Plugin-MF-Leiste ziehen. Grüsse, Henning ------------------ Henning Jesse VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rewe89 Mitglied Softwareentwickler
Beiträge: 16 Registriert: 12.03.2013 Windows 7 64-bit AutoCAD 2013
|
erstellt am: 12. Mrz. 2013 11:01 <-- editieren / zitieren --> Unities abgeben:
Das Plugin sollte später an Kunden ausgeliefert werden. Diese sollen zusätzlich zum Plugin noch die Anpassungsdatei erhalten, um so automatisch das neue Plugin im AutoCAD zu sehen. So ist zumindestens der Plan. Wenn ich die Anpassungsdatei erst in die Plugins-MF ziehen muss, wäre das leider nicht unbedingt das was ich erreichen will. 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: 12. Mrz. 2013 11:16 <-- editieren / zitieren --> Unities abgeben: Nur für rewe89
|
rewe89 Mitglied Softwareentwickler
Beiträge: 16 Registriert: 12.03.2013 Windows 7 64-bit AutoCAD 2013
|
erstellt am: 12. Mrz. 2013 11:25 <-- editieren / zitieren --> Unities abgeben:
Das Hineinladen meines Plugins in AutoCAD erledigde ich derzeit schon über diesen Weg (Erstellen eines neuen Plugin.bundle mit PackageContents.xml usw.) Auch wenn ich in der config datei eine CUIX Datei angeben kann, weiß ich leider noch nicht, wie ich generell ein Item in einer CUIX Datei dem Ribbon Plugins zuordnen kann. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 12. Mrz. 2013 11:39 <-- editieren / zitieren --> Unities abgeben: Nur für rewe89
|
rewe89 Mitglied Softwareentwickler
Beiträge: 16 Registriert: 12.03.2013 Windows 7 64-bit AutoCAD 2013
|
erstellt am: 12. Mrz. 2013 11:40 <-- editieren / zitieren --> Unities abgeben:
|
CADwiesel Moderator CAD4FM UG
Beiträge: 1989 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 12. Mrz. 2013 11:41 <-- editieren / zitieren --> Unities abgeben: Nur für rewe89
Die einfachste Lösung ist sicherlich das Erstellen einer eigenen cuix Datei, welche dann per menülad oder ActiveX bsierend geladen werden kann. Darin enthalten ist dann deine Ribbon Ansicht und Struktur. Als Beispiel kannst du dir die Express Menüstruktur anschauen. Natürlich ist das Erstellen der cuix auch erstmal nicht ohne Arbeit verbunden, würde aber den Vorteil haben, das du das Menü einfach mit auslieferst und der Kunde dann entweder selber das Menü zusätzlich nur zu laden braucht, oder du diese Menüladefunktion in dein Programm integrierst. ------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rewe89 Mitglied Softwareentwickler
Beiträge: 16 Registriert: 12.03.2013 Windows 7 64-bit AutoCAD 2013
|
erstellt am: 12. Mrz. 2013 11:47 <-- editieren / zitieren --> Unities abgeben:
Also komme ich definitiv nicht drum herum, einen programmatische Weg zu gehen und damit das Menü eins AutoCAD einzubinden? Dann stellt sich mir nur die Frage, wofür dann die CUIX-Dateien überhaupt gut sind (sorry für diese etwas unprofessionelle Frage, aber ich selbst arbeite erst seit zwei Monaten mit AutoCAD und bin eher Programmierer als AutoCAD-Anwender) Ich hätte gedacht, dass man in einer CUIX-Datei seine Menüs mit einfachen Mitteln bearbeiten kann, ohne erst programmatisch einen neuen Menüpunkt hinzufügen zu müssen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 12. Mrz. 2013 12:11 <-- editieren / zitieren --> Unities abgeben: Nur für rewe89
Zitat: Original erstellt von rewe89: Es basiert auf .net. Um genauer zu sein ist es eine (bzw. mehrere) C#-Anwendung/en
... dann hastdu doch alle Möglichkeiten. Beim Setup die 4 Reg-Einträge erzeugen, die das automatische Laden eines Plugins bewirken. Im Programm selber eine Klasse Autodesk.AutoCAD.Runtime.IExtensionApplication von erben lassen, und dort dann in der Initialize einen Reactor platzieren, der anzeigt, dass AutoCAD fertig gestartet wurde (DocumentBecameCurrent oder ähnliches). Der Reactor ist notwendig, weil die Ribbons beim Laden der dll noch nicht angesprochen werden können. In der Reactor-Funktion erzeugst du dann die eigenen RibbonTabs und CommandControls. Grüße! Holger ------------------ Holger Brischke FREIE SCHULUNGSPLÄTZE -- C#.NET-Schulung im Mai 2013 Bei Interesse bitte melden! CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen.
defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rewe89 Mitglied Softwareentwickler
Beiträge: 16 Registriert: 12.03.2013 Windows 7 64-bit AutoCAD 2013
|
erstellt am: 12. Mrz. 2013 12:16 <-- editieren / zitieren --> Unities abgeben:
Danke erstmal für diesen Tipp. Dazu noch eine Frage. Ich lade derzeit meine Plugins über die PackageContents.xml und nicht über die Registry. Meine Plugins werden zwar sofort beim Start geladen (sind also per festgelegtem Befehl verfügbar), sollen aber nicht sofort beim Start von AutoCAD gestartet werden. Wie ist es dann mit dem Reactor. Reagiert dieser trotzdem nur, wenn ich das Plugin starte (mit Befehl) oder passiert das automatisch, wenn AutoCAD das Plugin lädt? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
Beiträge: 1989 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 12. Mrz. 2013 12:18 <-- editieren / zitieren --> Unities abgeben: Nur für rewe89
Zitat: Ich hätte gedacht, dass man in einer CUIX-Datei seine Menüs mit einfachen Mitteln bearbeiten kann, ohne erst programmatisch einen neuen Menüpunkt hinzufügen zu müssen
Ist ja eigentlich auch so, wenn man weiß, was zu tun ist. Wenn du aber noch nie ein Menü erstellt hast, wirds nicht einfacher :D @Holger
Zitat: ...und dort dann in der Initialize einen Reactor platzieren...
ich hab' zwar nicht den .Net Durchblick, aber findest du das nicht etwas heftig, einen Reaktor nur um einen Menüeintrag zu generieren? ------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 12. Mrz. 2013 12:19 <-- editieren / zitieren --> Unities abgeben: Nur für rewe89
Zitat: Original erstellt von rewe89: Also komme ich definitiv nicht drum herum, einen programmatische Weg zu gehen und damit das Menü eins AutoCAD einzubinden?...
Ich denke nicht. Zitat: Original erstellt von rewe89: ... Dann stellt sich mir nur die Frage, wofür dann die CUIX-Dateien überhaupt gut sind (sorry für diese etwas unprofessionelle Frage, aber ich selbst arbeite erst seit zwei Monaten mit AutoCAD und bin eher Programmierer als AutoCAD-Anwender) Ich hätte gedacht, dass man in einer CUIX-Datei seine Menüs mit einfachen Mitteln bearbeiten kann, ohne erst programmatisch einen neuen Menüpunkt hinzufügen zu müssen.
Ich sehe das anders. Wenn man eigene Applikationen raus bringt, dann sollte die eigene Applikation UNABHÄNGIG alles mitbringen, was diese benötigt. Das geht sicher auch über eine CUIX, die du manuell in deiner AutoCAD-Umgebung speziell für deine Applikation erstellen musst. Dann solltest du aber darauf achten, dass du die Schaltflächen-Bilder in eine DLL packst, damit du nicht noch irgendwelche Suchpfade setzen musst. Die CUIX kannst du ja dann auch über einen AutoLoad-Mechanismus laden. Allerdings geht's in .Net nur über ein SendStringToExecute, was bekanntlich in Reactoren nicht funktioniert, was deshalb hinderlich ist, weil deine dll über Autoload sehr viel früher geladen wird, als dass ein Command überhaupt geschickt werden kann. Alternativ kannst du die CUI über die Einbindung der AutoCAD-Com-Komponente laden - was ich aber aufgrund der Versionsabhängigkeit nicht mache. Grüße! Holger ------------------ Holger Brischke FREIE SCHULUNGSPLÄTZE -- C#.NET-Schulung im Mai 2013 Bei Interesse bitte melden! CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen.
defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 12. Mrz. 2013 12:21 <-- editieren / zitieren --> Unities abgeben: Nur für rewe89
Zitat: Original erstellt von CADwiesel: ich hab' zwar nicht den .Net Durchblick, aber findest du das nicht etwas heftig, einen Reaktor nur um einen Menüeintrag zu generieren? ...
Nein, das finde ich nicht - zumal es keinen anderen Weg gibt. In .Net ist zudem das Erstellen eines Reactors sehr viel einfacher als in Lisp. Performance-Probleme wird es auch nicht geben, weil sich der Reactor nach der Ausführung selbst löscht. Grüße! Holger
------------------ Holger Brischke FREIE SCHULUNGSPLÄTZE -- C#.NET-Schulung im Mai 2013 Bei Interesse bitte melden! CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen.
defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 12. Mrz. 2013 12:25 <-- editieren / zitieren --> Unities abgeben: Nur für rewe89
Zitat: Original erstellt von rewe89: ... Meine Plugins werden zwar sofort beim Start geladen (sind also per festgelegtem Befehl verfügbar), sollen aber nicht sofort beim Start von AutoCAD gestartet werden. Wie ist es dann mit dem Reactor. Reagiert dieser trotzdem nur, wenn ich das Plugin starte (mit Befehl) oder passiert das automatisch, wenn AutoCAD das Plugin lädt?
das eine hat doch mit dem anderen nichts zu tun. Du legst doch fest, was bei Befehlsausführung passiert und du legst fest, wann ein Reactor anspringt (unabhängig vom Befehl) und was in dem Reactor passiert. Das Hinzufügen eines RibbonItems heißt ja nicht, dass der Befehl auch gleich ausgeführt wird. Du musst nur beim Laden der DLL sicher stellen, dass der Reactor erzeugt wird, das muss also in das Initialize rein. Grüße! Holger ------------------ Holger Brischke FREIE SCHULUNGSPLÄTZE -- C#.NET-Schulung im Mai 2013 Bei Interesse bitte melden! CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen.
defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rewe89 Mitglied Softwareentwickler
Beiträge: 16 Registriert: 12.03.2013 Windows 7 64-bit AutoCAD 2013
|
erstellt am: 12. Mrz. 2013 12:31 <-- editieren / zitieren --> Unities abgeben:
|
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 12. Mrz. 2013 12:35 <-- editieren / zitieren --> Unities abgeben: Nur für rewe89
|