Kontextabhängige Multifunktionsleisten-Registerkarten

Kontextabhängige Multifunktionsleisten-Registerkarten

_simonpedro
Explorer Explorer
474Aufrufe
4Antworten
Nachricht 1 von 5

Kontextabhängige Multifunktionsleisten-Registerkarten

_simonpedro
Explorer
Explorer

Hallo zusammen.

Ich arbeite mit AutoCAD 2023. Neu habe ich mir einen eigenen Arbeitsbereich mit dazugehöriger Multifunktionsleiste erstellt. Dazu habe ich eine partielle Anpassungsdatei erstellt und zu der Hauptanpassungsdatei dazu geladen.

 

Nun möchte ich (in der partiellen Anpassungsdatei) eine kontextabhängige Multifunktionsleisten-Registerkarte erstellen, die mit einem Befehl aufgeschaltet wird (Ähnlich wie bei dem Schraffur Befehl. Sobald ich diesen Befehl wähle wird der Schraffur Manager geöffnet). Die Registerkarte soll geöffnet werden, wenn ich meinen selbst erstellten Befehl "Bemassung" wähle.

 

Ich habe herausgefunden, dass die Registerkarten durch den Menuepunkt "Status kontextabhängiger Registerkarten" dazugeschaltet werden.  Jedoch kann ich keinen neuen Status erstellen.

 

Ist es überhaupt möglich einen neuen Status zu erstellen?

Oder allgemein eine kontextabhängige Registerkarte?

 

Ich bin für jeden Tipp dankbar.

0 „Gefällt mir“-Angaben
Akzeptierte Lösungen (1)
475Aufrufe
4Antworten
Antworten (4)
Nachricht 2 von 5

cadffm
Consultant
Consultant

Hi ,

 

>>"Ist es überhaupt möglich einen neuen Status zu erstellen?"

Ich sitze nicht am CAD, aber aus dem Bauch heraus: Nein.

Zumindest (denke ich) ist kein GUI Weg dafür vorgesehen, man kann aber sehr wohl Ergänzungen vornehmen,

dafür Bedarf aber einem kleinen Programm welches die Situation "mein Befehl läuft" erkennt,

damit Acad dann das zugeordnete Register einblendet.

 

Du schreibst 'eigener Befehl', also programmierst du selbst und stellt kein Problem dar (in .Net?)

 

 

 

>>"Oder allgemein eine kontextabhängige Registerkarte?"

? Jeder Registerkarte kann für die Kontextsensive Verwendung genutzt werden, daher verstehe ich die Frage wohl nicht.

 

-

Abgesehen von der sehr coolen Kontextsensitiven Geschichte:

Deine Programm könnte ja auch selbst das Register aktivieren/deaktivieren!?

 

Welche API nutzt du?

Sebastian

0 „Gefällt mir“-Angaben
Nachricht 3 von 5

_simonpedro
Explorer
Explorer

Vielen Dank für die schnelle Antwort.

 

Ich habe mich vielleicht eine wenig falsch ausgedrückt. Mein "eigener Befehl" ist lediglich ein Befehl mit einem Makro. Ich habe selber keine Programmierkenntnisse in Lisp oder dergleichen.

 

Mit "Oder allgemein eine kontextabhängige Registerkarte?" meine ich wie erstelle ich so etwas. Ich weiss, dass ich Registerkarten in die bestehenden Status verschieben kann. Jedoch sind die Status abhängig von bereits definierten Kontexten. Daher muss zuerst ein Status erstellt werden (und das ist offenbar nicht möglich) oder es besteht ein anderer Weg um so etwas zu erstellen.

0 „Gefällt mir“-Angaben
Nachricht 4 von 5

cadffm
Consultant
Consultant

Mon,

 

>> " Ich habe selber keine Programmierkenntnisse"

Oh, ja da hatte ich mehr hineininterpretiert, sorry.

 

>>"Jedoch sind die Status abhängig von bereits definierten Kontexten. Daher muss zuerst ein Status erstellt werden (und das ist offenbar nicht möglich)"

So ist es, es ist nichts vorgesehen für den Benutzer dies zutun.

Technisch geht es aber, man benötigt dazu dann ein entsprechendes Zusatzprogramm/Code,

Ich kenne da aber keine konfigurierbare Frontend Lösung, hilft dir also nicht.

 

>>"oder es besteht ein anderer Weg um so etwas zu erstellen."

Also komplett ohne Programmierkenntnisse würde ich zu einem zarten "Nein" tendieren.

 

Wenn dein MenüMakro<was immer es tut> aber praktisch zu 100% die Wahl von irgendwelchen anderen Schaltflächen benötigt (am besten nur 1x und danach könnten die Schaltflächen verschwinden),

dann könntest du dir einen Werkzeugkasten EINblenden und mit der Auswahl einer der Schaltflächen darin - wieder AUSblenden lassen.

 

Ist eine Registerkarte bereits geladen&sichtbar, dann kann man diese auch aktuell schalten lassen durch das Makro,

aber ich kenne keine Möglichkeit die "vorher Aktuelle" zu speichern um diese danach wieder aktuell zu setzen 😞

und vorallem - es geht nur mit bereits sichtbaren Registern.

 

Erzähle doch ein wenig über das Makro und dem Inhalt der Registerkarte um die es dir gehen würde,

Eine Beschreibung/Erklärung und ein Video der Verwendung würde aufschlußreich sein, denke ich.

 

Sebastian

Sebastian

0 „Gefällt mir“-Angaben
Nachricht 5 von 5

cadffm
Consultant
Consultant
Akzeptierte Lösung

Soeben habe ich mir das mal in 5min Ruhe genauer angesehen (habe das selbst noch nie gemacht)

und bin positiv überrascht: Man kann das auch "ohne Programm und Programmierkenntnisse" machen 😊

 

Allerdings sind Makros fehleranfällig (immer) und die Registerkarte kann nicht auf "das Makro läuft" reagieren,

aber auf Systemvariablen - und Werte von Systemvariablen kannst du ja mit dem Makro setzen

und auf diese können KontextabhängigeRegisterkarten reagieren.

 

Am Makro Anfang setzt du dann einen Variablenwert, die Registerkarte öffnet sich

und in einem voll-definiertes Makro (in dem also jede Eingabe bis zur allerletzten geregelt wird)

kann dann am Ende der Variablen Wert wieder geändert werden = Registerkarte verschwindet wieder.

 

Allerdings sind Makros ja fehleranfällig = Man kann diese einfach abbrechen oder der gewählte Befehl macht es aufgrund einer unerwarteten Eingabe.

In dem Fall bricht das Makro ab und kann den Variablenwert nicht mehr umstellen,

das bedeutet die Registerkarte würde weiterhin eingeblendet bleiben 😕

 

Für Nicht-LT User würde ich daher etwas LISP einsetzen, die Umsetzung Makro -> Lisp(Command ist simple

und eine Error-Routine welche dir die Sache mit der Variable regelt im Falle eines Abbruchs, das kann man

per copy&paste einfach verwenden.

Ansonsten wäre die "BringEsInOrdnung" Variante das Makro einfach noch einmal ordentlich auszuführen

oder einen Extraknopf der das macht - oder du weißt es auswendig und tippst entsprechendes im CLI ein.

 

_ _ _

 

Also: Wie bereits vermutet gibt es keine GUI Möglichkeit dafür,

jedoch ist es für den Anwender durchaus möglich dies zu erstellen - selbst ohne explizites Programmierwissen.

 

siehe hier, ein Makro was einfach als Beispiel zum erstellen eines Kreises per Zentrum+Radius gut ist,

aber es natürlich auch alles andere hätte sein können: Mit wird in der Zeit meines Makros (m)eine andere Registerkarte eingeblendet.

 

5OylLLnCF9

 

Details?

Das alles ist keine Raketenwissenschaft (Ich brauchte Google um auf den richtigen Dateinamen zu kommen und insgesamt 10min bis ich mein funktionierendes Beispiel zusammengeklöppelt atte),

aber da hier "alle möglichen User" mitlesen und recht schnell am wild testen sind - lasse ich es vorerst bei den allgemeinen Informationen.

 

 

 

Sebastian