Výrazy jazyka DIESEL v makrech

Řetězcové výrazy jazyka DIESEL lze použít v souborech uživatelských úprav (CUI/CUIx) jako další metodu vytváření maker a způsob, jak změnit popisek rozevírací nabídky.

Výrazy jazyka DIESEL mohou být použity pro prvky uživatelského rozhraní a musí být zapsány ve formátu $sekce=podnabídka, kde název sekce je M a podnabídka je požadovaný řetězec jazyka DIESEL.

Zvažte následující příklad:

^C^C^P$M=$(if,$(=,$(getvar,cvport),1),mspace,pspace)

Tento výraz jazyka DIESEL představuje způsob, jak přepínat mezi modelovým a výkresovým prostorem na základě aktuální hodnoty systémové proměnné CVPORT. Když je proměnná CVPORT nastavena na hodnotu 1, je proveden příkaz MODEL. V opačném případě je proveden příkaz VÝKRES. Tento výraz je vyhodnocen transparentně. Při vynechání speciálního znaku ^P (který zapíná a vypíná MENUECHO) zobrazí výraz pouze vydaný příkaz.

V následujícím příkladu je použitím výrazu jazyka DIESEL vynásobena aktuální hodnota proměnné DIMSCALE hodnotou 0.5, a tím je vypočteno měřítko při vložení bloku poznámek pomocí příkazu -VLOŽ.

^C^C-insert;note;0,0;$M=$(*,$(getvar,dimscale),0.5);;0;

Výrazy jazyka DIESEL mohou být použity také k definování popisků položek rozevírací nabídky, takže můžete nabídky deaktivovat nebo jinak měnit způsoby jejich zobrazení. Při použití výrazu jazyka DIESEL k označení rozevírací nabídky dbejte na to, aby prvním znakem byl znak dolaru $.

V tomto příkazu je aktuální hladina nastavena na BASE a následující výraz jazyka DIESEL je použit jako popisek položky rozevírací nabídky.

$(eval,"Current layer: " $(getvar,clayer))

Výsledkem je, že se zobrazí a aktualizuje příslušná rozevírací nabídka vždy, když se změní aktuální hladina.

Aktuální hladina: BASE

Poznámka: Šířka rozevíracích a místních nabídek je určována při načítání souborů uživatelských úprav. Položky nabídek, které jsou vytvářeny nebo měněny pomocí výrazu jazyka DIESEL, budou oříznuty tak, aby se vešly do existující šířky nabídky.

Pokud očekáváte, že generované popisky nabídky jazykem DIESEL budou příliš široké, můžete použít následující funkci, která vám pomůže zjistit, jestli je šířka položky nabídky vhodná. Tento příklad zobrazuje prvních 10 znaků aktuální hodnoty systémové proměnné CLAYER.

$(eval,"Current value: " $(substr,$(getvar,clayer),1,10))

Šířku položky nabídky nemůžete zvětšit přidáním mezer za její název, protože tyto mezery jsou při načtení nabídky ignorovány. Jakákoliv mezera, kterou chcete použít pro zvětšení šířky nabídky, musí být uvnitř výrazu jazyka DIESEL.

Následující příklad používá stejný výraz jazyka DIESEL jako popisek a část položky nabídky. Představuje snadný způsob, jak do výkresu vložit aktuální datum a čas.

Popisek nabídky

$(edtime,$(getvar,date),DDD", "D MON YYYY)

Makro

^C^Ctext \\\ $M=$(edtime,$(getvar,date),DDD", "D MON YYYY);

Makro jazyka DIESEL můžete také použít k označení položek rozevírací nabídky nebo k jejich deaktivaci. Pokud je některý příkaz aktivní, zobrazuje se následující popisek rozevírací nabídky jako nedostupný. Pokud příkaz není aktivní, text bude zobrazen normálně.

$(if,$(eq,$(getvar,tilemode),1),~)&Polygonal Viewport

Podobně můžete umístit značky vedle položky rozevírací nabídky nebo interaktivně změnit znak používaný pro danou značku.

$(if,$(and,$(getvar,ucsicon),1),!.)&On