Prostory jmen v AutoCADu

Přehled informací

Prostory jmen

Prostor jmen (namespace) je prostředí LISPu obsahující množinu symbolů (např. proměnné a funkce). Každý otevřený výkresový dokument v AutoCADu má vlastní prostor jmen. Proměnné a funkce jsou v jednom výkresovém dokumentu izolované od proměnných a funkcí v jiném dokumentu (prostoru jmen) viz obrázek:

Příklad principu fungování prostoru jmen

  1. Otevřete dva nové výkresy v AutoCADu.
  2. Rozdělte si plochu AutoCADu, aby jste viděli obě okna vedle sebe:

  1. Do příkazového řádku napište následující příkaz (nastavení proměnné typu řetězec - vykres1prom):
             (setq vykres1prom "Vykres výkres1.dwg")
  2. Aktivujte dokument výkres2.dwg (klikněte na dokument Výkres2.dwg).
  3. Pokuste se podívat na obsah proměnné vykres1prom:
             Příkaz:   !vykres1prom 
                             nil 
        

    Proměnná vrátí hodnotu nil - což znamená, že není definovaná.

  4. Definujte proměnnou vykres2prom následujícím způsobem. Do příkazového řádku napište:
             (setq vykres2prom 
               "Já jsem proměnná, ale v dokumentu Výkres2.dwg"
             ) 
        
  5. Aktivujte dokument Výkres1.dwg.
  6. Nyní otestujeme hodnoty proměnných vykres1prom a vykres2prom:
             Příkaz:   !vykres1prom "Vykres výkres1.dwg" 
             Příkaz:   !vykres2prom 
                             nil
        

Je patrné, že výkres Výkres1.dwg obsahuje pouze proměnnou vykres1prom, která má hodnotu "Vykres výkres1.dwg". Zjišťování hodnoty proměnné vykres2prom vrátí hodnotu nil což znamená, že není v dokumentu Vykres1.dwg definovaná. Proměnná vykres2prom byla nastavena v jiném prostoru jmen - v prostoru jmen dokumentu Výkres2.dwg.

Poznámka - prostor jmen aktivního dokumentu

Veškeré proměnné a funkce definované v AutoLISP souboru jsou známé pouze v dokumentu, který byl aktivní při nahrávání souboru. Funkce v souboru jsou nahrány a jsou známy jen a pouze v prostoru jmen aktivního dokumentu.

Ukázka připojení funkcí k dokumentu ve vícenásobných prostorech jmen

Předpokládáme, že máte otevřený AutoCAD se dvěma prázdnými dokumenty.

  1. Nahrajte libovolný soubor LISPu (v AutoCADu nebo editoru Visual LISP). Pokud nemáte vlastní funkci, můžete si stáhnout jednoduchou funkci jednoduchy.lsp.
  2. V prostředí AutoCADu nahrajete funkci:
  3. Spusťte funkci. Funkce v souboru jednoduchy.lsp se spustí napsání příkazu skruznice do příkazového řádku.
  4. Přepněte se do druhého okna dokumentu.
  5. S druhým aktivním oknem dokumentu (dokument, který nebyl aktivní během nahrávání funkce) se pokuste znovu spustit funkci. Odpovědí vám bude zobrazení chybové hlášky:

Z ukázky je patrné, že na funkci načtenou v jednom dokumentu NELZE spustit v druhé dokumentu. Funkce běží v prostoru jmen prvního dokumentu.

Poznámka - nahrání funkce do všech otevřených dokumentů

Pokud požadujete nahrání funkce do všech otevřených dokumentů, můžete použít příkaz (vl-load-all). Funkce nahraje funkci do všech otevřených dokumentů i do nově otevřených dokumentů během aktuální relace AutoCADu.