Soubory nabídky, 12. díl
Vytváření místních nabídek Místní nabídky se definují v souboru MNU stejným způsobem jako nabídky roletové. Sekce nabídky POP0 definuje výchozí místní nabídku Uchopení objektu, sekce nabídky od POP500…
Vytváření místních nabídek
Místní nabídky se definují v souboru MNU stejným způsobem jako nabídky roletové. Sekce nabídky POP0 definuje výchozí místní nabídku Uchopení objektu, sekce nabídky od POP500 do POP999 jsou vyhrazeny pro místní nabídky.
AutoCAD odkazuje kontextové nabídky pomocí jejich zkratek (například **GRIPS) a používá je ve specifických situacích. Číslo POPn není zase tak důležití, jen názvy zkratek musí dodržovat konvence názvů. Následující zkratky jsou rezervovány produktem AutoCAD:
GRIPS
Obsah této nabídky definuje místní nabídku uzlů (stisknutí pravého tlačítka myši v oblasti výkresu zatímco je uzel na objektu vybrán).
CMDEFAULT
Obsah této nabídky definuje místní nabídku Výchozí režim (stisknutí pravého tlačítka myši v oblasti výkresu v okamžiku, kdy není aktivní žádný příkaz a není vybrán žádný objekt).
CMEDIT
Obsah této nabídky definuje místní nabídku Upravit (stisknutí pravého tlačítka myši v oblasti výkresu pokud je vybrán jeden nebo více objektů a není aktivní žádný příkaz).
CMCOMMAND
Obsah této nabídky definuje nabídku v příkazovém režimu (stisknutí pravého tlačítka myši v oblasti když je aktivní příkaz). Do této nabídky se kromě obsahu nabídky CMCOMMAND přidají volby příkazového řádku (klíčová slova v hranatých závorkách).
Kontextové místní nabídky
Místní nabídky CMEDIT a CMCOMMAND mohou být kontextově citlivé. Kromě obsahu nabídky CMEDIT je do této nabídky přidána nabídka vybraného objektu nebo objektů. Nabídky objektů používají následující konvenci názvů: OBJECT_názevobjektu nebo OBJECTS_názevobjektu.
Je-li vybrán pouze jeden objekt, je použita nabídka OBJECT_názevobjektu .A je-li vybráno více objektů stejného typu, použije se nabídka OBJECTS_názevobjektu . Není-li žádní nabídka OBJECT_objectname dostupná, AutoCAD použije nabídku OBJECTS_názevobjektu (pokud existuje).
Název objektu je ve všech případech název DXF objektu, kromě vkládaných objektů. K odlišení vkládání bloku a externí reference použijte názvy BLOCKREF a XREF..
Následující kód AutoLISPu definuje příkaz OTYPE,který hlásí název DXF vybraného objektu.
(defun C:OTYPE()
(cdr (assoc 0 (entget (car (entsel))))))
Například pro přidání položky místní nabídky specifické pro objekt jedné nebo více vybraným referencím bloku zadejte:
***POP512
**OBJECTS_BLOCKREF
[místní nabídka pro objekty bloku]
ID_BLOCK [Rozložit] ^C^C_explode
Podobně jako u nabídky CMEDIT lze i do nabídky CMCOMMAND vložit kontextově citlivé údaje. Všechny nabídky nazvané COMMAND_názevpříkazu jsou vloženy do nabídky CMCOMMAND. Text název příkazu může být platný příkaz produktu AutoCAD včetně všech uživatelsky definovaných nebo jiných příkazů.
Aby vše fungovalo s příkazy uvozenými pomlčkou (například -VLOŽ), musíte nabídku pojmenovat COMMAND_-VLOŽ.