Funkce pro práci s aplikacemi

(ads)
 
- neuvádí se

(arx)
 
Popis:
  - seznam jmen souborů nahraných ObjectARX aplikací (bez cesty)
 
Návratová hodnota:
  - seznam - soubory nahraných ObjectARX aplikací (bez cesty)
 
Příklady:
  (arx)
    vrací ("acadapp.arx" "acmted.arx" "oleaprot.arx")

Podívej se na arxload a arxunload.

(arxload application [onfailure])
 
Argumenty:
 
application
- čárkovaný řetězec nebo proměnná obsahující jméno spustitelného souboru, koncovka .arx může být vynechána
 
onfailure
- výraz spuštěný pokud nahrání selže
 
Popis:
  - nahrání ObjectARX aplikace
 
Návratová hodnota:
  - jméno aplikace - pokud nahrání proběhlo úspěšně
 

- hodnota onfailure argumentu - arxload selhalo a onfailure argument je uveden

 

- chybovou zprávu - nenastane-li žádný z výše uvedených případů

 

Poznámky:
  - v případě nahrání již nahrané aplikace zobrazí se chybová zpráva, z tohoto důvodu je dobré nejdříve zkontrolovat nahrané aplikace pomocí funkce (arx)

 

Příklady:
  (arxload "c:/program files/ACAD2000/geomcal.arx")
    vrací "c:/program files/acad2000/geomcal.arx"

Podívej se arxunload.

(arxunload application [onfailure])
 
Argumenty:
  application - čárkovaný řetězec nebo proměnná obsahující jméno souboru nahraného funkcí arxload, koncovka .arx a cesta může být vynechána
  onfailure - výraz spuštěný pokud nahrání selže
 
Popis:
  - odstraní aplikaci ObjectARX
 
Návratová hodnota:
  - jméno aplikace - pokud nahrání proběhlo úspěšně
 

- hodnota onfailure argumentu - arxunload selhalo a onfailure argument je uveden

 

- chybovou zprávu - nenastane-li žádný z výše uvedených případů

 

Poznámky:
  - zpráva, že ObjectARX applikace nemůže být odstraněna - aplikace je uzamčena

Podívej se arxload.

(autoarxload filename cmdlist)
 
Argumenty:
 
filename
- řetězec specifikující .arx soubor, který má být nahrán při zadání jednoho z řetězců specifikovaných v parametru cmdlist
 
- může obsahovat i cestu k souboru ve tvaru:
 
  - "c:/ ... /test" - kde / oddělovač adresářů
 
  - "c:\\ ... \\test" - kde \\ oddělovač adresářů
 
- není-li uvedena cesta, AutoCAD hledá soubor v podporované vyhledávací cestě
 
cmdlist
- seznam řetězců
 
Popis:
  - předdefinuje příkaz k nahrání přiřazeného souboru ObjectARX
 
Návratová hodnota:
  - nil
 
Příklady:
  Definování funkcí C:APP1, C:APP2 a C:APP3, při jejichž zadání se nahraje soubor bonusapp.arx:
  (autoarxload "BONUSAPP" '("APP1" "APP2" "APP3"))
  vrací nil

(autoload filename cmdlist)
 
Argumenty:
 
filename
- řetězec specifikující .lsp soubor, který má být nahrán v případě, že je nějaký z uvedených argumentů (v cmdlist) odentrován z Příkazové řádky
 
- není-li uvedena cesta AutoCAD hledá soubor.lsp v support file search path
 
cmdlist
- seznam řetězců
 
Popis:
  - předdefinování příkazů k nahrání přiřazených AutoLISP souborů
 
Návratová hodnota:
  - nil
  - chybovou zprávu - přiřadíte-li příkaz k souboru filename a příkaz není definován ve specifikovaném souboru
 
Příklady:
  Nahrání aplikace bonus.lsp je-li odentrován na příkazové řádce příkaz APP1, APP2 nebo APP3
    (autoload "BONUSAPP" '("APP1" "APP2" "APP3"))

(load filename [onfailure])
 
Argumenty:
 
filename
- řetězec specifikující soubor, který má být nahrán
 
- není-li uvedena koncovka, load vyzkouší několik koncovek: .vlx, .fas, .lsp
 
- je-li nalezen vhodný soubor, končí hledání a soubor je nahrán
 
- může obsahovat i cestu k souboru ve tvaru:
 
  - "c:/ ... /test" - kde / oddělovač adresářů
 
  - "c:\\ ... \\test" - kde \\ oddělovač adresářů
 
- není-li uvedena cesta, AutoCAD hledá soubor v library ceste
 
onfailure
- výraz spuštěný pokud nahrání selže
 
Popis:
  - vyhodnotí AutoLISPovský výraz v souboru
  - může být použita i v jiné funkci AutoLISPu
 
Návratová hodnota:
  - nespecifikována - vše proběhlo správně
  - hodnota onfailure argumentu - load selhal a onfailure argument je uveden
  - chybovou zprávu - nenastane-li žádný z výše uvedených případů
 
Příklady:
  Předpokládejme, že soubor /fred/test1.lsp obsahuje následující výrazy:
  (defun MY-FUNC1 (x)
  ...function body...
  )
  (defun MY-FUNC2 (x)
  ...function body...
  )
  Dále předpokládáme, že neexistuje žádný soubor test2 s koncovkou .lsp, .fas nebo .vlx:
    (load "/fred/test1")
      vrací MY-FUNC2
    (load "\\fred\\test1")
      vrací MY-FUNC2
    (load "/fred/test1" "bad")
      vrací MY-FUNC2
    (load "test2" "bad")
      vrací "bad"
    (load "test2")
      vyvolá AutoLISP chybu

Podívej se na funkci defun.

(startapp appcmd [file])
 
Argumenty:
 
appcmd
- řetězec specifikující aplikaci, která má být spuštěna
 
- neobsahuje-li celou cestu k aplikaci, startapp prohledává cestu zadanou v proměnné prostředí PATH
 
file
- řetězec specifikující soubor, který má být otevřen
 
Popis:
  - spustí Windows aplikaci
 
Návratová hodnota:
  - integer - větší než 0 proběhlo-li vše v pořádku
  - nil - v opačném případě
 
Příklady:
  Spuštění Windows aplikace Notepad a otevření souboru acad.lsp:
    (startapp "notepad" "acad.lsp")
      vrací 33
  Obsahuje-li argument mezery musí být uzavřen do úvozovek, příklad otevření souboru pokusny soubor.txt pomocí Notepadu:
    (startapp "notepad" "\"pokusny soubor.txt\"")
      vrací 33

(vl-vbaload filename)
 
Argumenty:
 
filename
- řetězec - jméno projektu Visual Basicu
 
Popis:
  - nahraje projekt VisualBasicu
 
Návratová hodnota:
  - neurčitá - proběhne-li vše v pořádku
 
Příklady:
  $ (vl-vbaload "c:/program files/acad2000/sample/vba/drawline.dvb")
    vrací "c:\\program files\\acad2000\\sample\\vba\\drawline.dvb"

Podívej se na funkci vl-vbarun.

(vl-vbarun macroname)
 
Argumenty:
 
macroname
- jméno makra Visual Basicu
 
Popis:
  - spustí makro Visual Basicu
 
Návratová hodnota:
  - macroname
 
Příklady:
  Nahrání VBA projektu:
  $ (vl-vbaload "c:/program files/acad2000/sample/vba/drawline.dvb")
    vrací "c:\\program files\\acad2000\\sample\\vba\\drawline.dvb"
  Spuštění makra z nahraného projektu:
  _$ (vl-vbarun "drawline")
    vrací "drawline"

Podívej se na funkci vl-vbaload.

(vlax-add-cmd global-name func-sym [local-name cmd-flags])
 
Argumenty:
  global-name - řetězec
  func-sym - jméno funkce bez argumentů
  local-name - řetězec (implicitně k global-name)
  cmd-flags - integer (implicitně k ACRX_CMD_MODAL + ACRX_CMD_REDRAW)
Primární flagy:
  ACRX_CMD_MODAL (0)
    - příkaz nemůže být vyvolána dokud jiný příkaz je aktivní
  ACRX_CMD_TRANSPARENT (1)
    - příkaz může být vyvolána dokud jiný příkaz je aktivní
Sekundární flagy:
  ACRX_CMD_USEPICKSET (2)
    - je-li pickfirst set opraven, je vyčištěn v AutoCADu. Příkaz je schopný vyčistit pickfirst set. Příkaz nemůže vyčistit ani nastavit grips.
  ACRX_CMD_REDRAW (4)
    - je-li pickfirst set nebo grip opraven, nic nemůže být vyčištěno v AutoCADu. Příkaz může vyčistit pickfist set a grip set.
 
Popis:
  - přidá příkaz do AutoCAD build-in příkazový set
  - pomocí této funkce můžete definovat funkci jako příkaz AutoCADu bez použití prefixu c: ve jménu funkce
  - funkce udělá AutoLISP funkci viditelnou jako ObjectARX příkaz v příkazové řádce AutoCADu během aktuálního AutoCAD sezení. Funkce zajišťuje přístup k ObjectARX acedRegCmds macro, které obstará pointer na ObjectARX systémový objekt AcEdCommandStack.
  - funkce automaticky převede příkaz do příkazové skupiny, je-li vydaný z dokumentového prostoru, vlax-add-cmd přidá příkaz do skupiny jméno doc-ID (doc-ID je hexadecimální hodnota identifikující dokument). Je-li volána ze samostatného prostoru jmen VLX, vlax-add-cmd přidá příkaz do skupiny jméno VLC-D doc-ID:VLX-name, kde VLX-name je jméno aplikace získaná z vlax-add-cmd
 
Poznámka:
  - jsou-li oba ACRX_CMD_USEPICKSET a ACRX_CMD_REDRAW nastaveny, efekt je stejný jako by byl nastaven pouze ACRX_CMD_REDRAW.
  - nedá se použít k expozici funkce, která vytváří objekty reaktorů nebo slouží jako reaktor callback
Návratová hodnota:
  - global-name - proběhne-li vše v pořádku
  - nil - jestiže acedRegCmds->addCommand(...) vrátí chybovou stav
Příklady:
  Funkce hello-AutoCAD nemá c: prefix, ale funkce vlax-add-cmd ji učiní viditelnou jako ObjectARX příkaz v příkazové řádce AutoCADu:
  _$ (defun hello-AutoCAD () (princ "hello Visual LISP"))
    vrací HELLO-AutoCAD
  _$ (vlax-add-cmd "hello-AutoCAD" 'hello-AutoCAD)
    vrací "hello-AutoCAD"