čtvrtek 9. ledna 2014

Funkce na rychlé nastavení papíru ve výkresovém prostoru AutoCADu

Pokud často nastavujete ve výkresovém prostoru určité rozměry papírů a nebaví vás neustále vybírat v roletce typ plotru a pak hledat požadovaný rozměr papíru, můžete si zkusit tuto operaci zjednodušit malinkou LISP sekvencí, která požadované nastavení provede za Vás v jednom kroku. Funkce funguje tak, že po jejím zavolání se ve výkresovém prostoru nastaví tiskárna a požadovaný formát papíru a po jejím opětovném zavolání se otočí o 90°. Další zavolání provede opět otočení o 90° atd. V lsp souboru, který si můžete stáhnout na konci tohoto příspěvku, není ovšem tato funkce o které se zmiňuji, ale funkce, která jí teprve vygeneruje.
Samotný zdrojový kód pro funkci, která nastaví plotr na DWG to PDF a papír na formát A4 může vypadat třeba takto:

(defun c:pdfa4    ()
  (vl-load-com)
  (setq    layout (vla-get-layout (vla-get-paperspace (vla-get-activedocument (vlax-get-acad-object))))
    plotrotation (vla-get-plotrotation layout)
    )
(vla-put-configname layout "DWG To PDF.pc3")
  (vla-put-canonicalmedianame layout "UserDefinedMetric (210.00 x 297.00MM)")
  (if (= plotrotation 1)
    (vla-put-plotrotation layout 0)
    (vla-put-plotrotation layout 1)
    )
  (command "_regen")
  )

Ale pozor, kdybyste si tuto funkci zkopírovali do lsp souboru a zkusili ji načíst, nebude Vám s největší pravděpodobností fungovat, protože Váš DWG to PDF plotr se může jmenovat jinak a pravděpodobně se bude jmenovat jinak i papír A4 (u mě je to "UserDefinedMetric (210.00 x 297.00MM)")
V souboru na konci příspěvku je definována funkce, která se volá příkazem getprint. Před jejím spuštěním si ve výkresovém prostoru naposled ručně nastavte typ plotru a papíru, jaký bude nová funkce sama nastavovat. Po zadání příkazu getprint (stále ve výkresovém prostoru) se objeví dialogové okno, kde zadáme název a umístění naší nové funkce.

getprint1

Funkci lze později pomocí správce souborů přejmenovat i přemístit. Poté se vygeneruje soubor s funkcí a objeví se dialogové okno, které nás o tom informuje. Ve vygenerovaném souboru je třeba provést jen jednu drobnou úpravu. V prvním řádku si slova volani_funkce nahraďte příkazem, kterým budete funkci volat. Příkaz nesmí obsahovat mezery.

getprint2

Takto může vypadat vygenerovaná funkce po otevření v poznámkovém bloku

V mém případě (na obrázku nahoře) nastavuje funkce plotr na HP a papír na A4 (User1292), takže jsem první řádek změnil na
(defun c:HPa4 ()
Na velikosti písmen nezáleží. Po uložení souboru a jeho načtení můžeme funkci používat.

Načtení lsp souboru s funkcí do aktuálního výkresu AutoCADu lze provést v zásadě dvěma způsoby. Ten nejjednodušší je, že přetáhneme z okna správce souborů (třeba z Průzkumníku) ikonu lsp souboru do okna AutoCADu a funkci spustíme. Druhý způsob je využití příkazu _appload. V dialogovém okně vybereme požadovaný soubor s funkcí a máme-li zaškrtnuto tlačítko Add to History vloží se odkaz na tento soubor do okna Histroy list, takže příště již nebudeme muset soubor vyhledávat. V tomto případě je ale pravděpodobnější, že budeme chtít funkci načítat automaticky při každém spuštění AutoCADu, a proto ji přidáme do Startup Suit. Do tohoto dialogového okna se dostaneme klepnutím na tlačítko Contents v dialogu Load\Unload Application. Pomocí tlačítka Add přidáme soubor s funkcí. Funkce v souborech, které se zobrazují ve Startup Suit se načítají při každém spuštění AutoCADu a při otevření každého výkresu, takže je není třeba zvlášť načítat stačí je spustit stejně jako jakýkoliv jiný příkaz.

lsp13

Pokud si pomocí funkce getprint vygenerujete více funkcí na více papírů a plotrů není nutné je uchovávat v samostatných souborech. Funkce je možné nakopírovat do jednoho souboru a ten pak načítat.

Ve verzi 2014 si nezapomeňte v options na první kartě files přidat cestu odkud se lsp funkce načítají do položky Trusted Location nebo si lsp soubory nahrajte do složky, které již máte v Trusted Location uvedeny.

2014secureload1

 

Funkci na generování funkcí si můžete stáhnout zde

 

Jan Panoch