Funkce pro konverzi dat

(vlax-3D-point list) nebo (vlax-3D-point x y [z])
 
Argumenty:
 
list
- seznam o 2 nebo 3 číslech reprezentujících body
 
x, y
- čísla reprezentující x-ovou a y-ovou souřadnici bodu
 
z
- číslo reprezentující z-ovou souřadnici bodu
 
Popis:
  - vytvoří ActiveX kompatibilní (variant) 3D bodovou strukturu
 
Návratová hodnota:
  - typ variant obsahující třípoložkové pole čísel typu double
 
Příklady:
  _$ (vlax-3D-point 5 20)
    vrací #<variant 8197 ...>
  _$ (vlax-3D-point '(33.6 44.0 90.0))
    vrací <variant 8197 ...>

Podívejte se na funkce vlax-make-safearray, vlax-make-variant, vlax-safearray-fill a vlax-safearray-put-element.

(vlax-ename->vla-object entname)
 
Argumenty:
 
entname
- jméno entity (datový typ ename)
 
Popis:
  - transformuje entitu na objekt VLA
 
Návratová hodnota:
  - objekt VLA
 
Příklady:
  _$ (setq e (car (entsel)))
    vrací <Entity name: 27e0540>
  _$ (vlax-ename->vla-object e)
    vrací #<VLA-OBJECT IAcadLWPolyline 03f713a0>

Podívejte se na funkci vlax-vla-object->ename.

(vlax-make-safearray type '(l-bound . u-bound)
 
Elementy pole (max 16 dimenzí) a jejich inicializace:
 
čísla
- 0
 
řetězce
- string nulové délky
 
logické hodnoty
- :vlax-false
 
objekty
- nil
 
typ variant
- neinicializován (vlax-vbEmpty)
 
Argumenty:
 
type
- typ safearray. Specifikován následujícími konstantami:
 
  vlax-vbInteger (2) - integer
 
  vlax-vbLong (3) - Long integer
 
  vlax-vbSingle (4) - pohyblivá řádová čárka, jednoduchá přesnost
 
  vlax-vbDouble (5) - pohyblivá řádová čárka, dvojitá přesnost
 
  vlax-vbString (8) - řetězec
 
  vlax-vbObject (9) - objekt
 
  vlax-vbBoolean (11) - boolean
 
  vlax-vbVariant (12) - variant
 
'(l-bound . u-bound)
- dolní a horní index hranice dimenzí
 
Popis:
  - vytvoří pole safearray
 
Návratová hodnota:
  - vytvořené pole safearray
 
Příklady:
  Vytvoření jednorozměrného pole safearray, obsahující prvky typu double a začínající indexem 0:
  _$ (setq point (vlax-make-safearray vlax-vbDouble '(0 . 3)))
    vrací #<safearray...>
   
  Vytvoření dvourozměrného pole safearray, obsahující prvky typu řetězece a každá dimenze začínající indexem 1:
  _$ (setq matrix (vlax-make-safearray vlax-vbString '(1 . 2) '(1 . 2) ))
    vrací #<safearray...>

Podívejte se na funkce vlax-make-variant, vlax-safearray-fill, vlax-safearray-get-dim, vlax-safearray-get-element, vlax-safearray-get-l-bound, vlax-safearray-get-u-bound, vlax-safearray-put-element, vlax-safearray-type, vlax-safearray->list a vlax-variant-value.

(vlax-make-variant [value] [type])
 
Argumenty:
 
value
- hodnota, která má být přiřazena typu variant. Je-li vynechána je variant vytvořen s typem vlax-vbEmpty
 
type
- typ variant. Specifikován následujícími konstantami:
      vlax-vbEmpty (0) - neinicializováno (standardní hodnota)
      vlax-vbNull (1) - obsahuje neplatná data
      vlax-vbInteger (2) - integer
      vlax-vbLong (3) - Long integer
      vlax-vbSingle (4) - pohyblivá řádová čárka, jednoduchá přesnost
      vlax-vbDouble (5) - pohyblivá řádová čárka, dvojitá přesnost
      vlax-vbString (8) - řetězec
      vlax-vbObject (9) - objekt
      vlax-vbBoolean (11) - boolean
      vlax-vbArray (8192) - pole
 
Poznámka:
  - v případě, že nejsou specifikovány typy dat, jsou použity standardní nastavení:
    nil — vlax-vbEmpty
    :vlax-null — vlax-vbNull
    integer — vlax-vbLong
    rea l— vlax-vbDouble
    string — vlax-vbString
    VLA-object — vlax-vbObject
    :vlax-true, :vlax-false — vlax-vbBoolean
    variant — stejný typ jako iniciální hodnota
    vlax-make-safearray — vlax-vbArray
 
Popis:
  - vytvoří typ dat variant
 
Návratová hodnota:
  - vytvořený variant
 
Příklady:
  Vytvoření typu variant za použití standardních hodnot pro vlax-make-variant:
  _$ (setq varnil (vlax-make-variant))
    vrací #<variant 0 >
   
  Vytvoření neinicializovaného variantu:
  _$ (setq varnil (vlax-make-variant nil))
    vrací #<variant 0 >
   
  Vytvoření variantu integer bez nastavení argumentu type a nastavení hodnoty na 5:
  _$ (setq varint (vlax-make-variant 5 vlax-vbInteger))
    vrací #<variant 3 5>
    - z příkladu je patrné, že standardně je přiřazen datový typ na Long integer.
   
  Vytvoření variantu integer a nastavení jeho hodnoty na 5:
  _$ (setq varint (vlax-make-variant 5 vlax-vbInteger))
    vrací #<variant 2 5>

Podívejte se na funkce vlax-make-safearray, vlax-variant-change-type, vlax-variant-type, a vlax-variant-value.

(vlax-safearray-fill var 'element-values)
 
Argumenty:
 
var
- proměnná jejíž datový typ je safearray
 
'element-values
- seznam hodnot k uložení do pole. Je možné specifikovat tolik hodnot kolik je elementů v poli. Je-li specifikovaný počet hodnot menší než elementů, jsou zbylé elementy nastaveny na standardní hodnoty.
 
- pro vícedimenzionální pole, argument element-values musí být seznam hodnot, kde každý seznam odpovídá dimenzi pole.
 
Popis:
  - uloží data do elementů pole safearray
 
Návratová hodnota:
  - var
 
Příklady:
  Vytvoření jednodimenzionálního pole doublů:
  _$ (setq sa (vlax-make-safearray vlax-vbdouble '(0 . 2)))
    vrací #<safearray...>
   
  Použití funkce vlax-safearray-fill k naplnění pole:
  _$ (vlax-safearray-fill sa '(1 2 3))
    vrací #<safearray...>
   
  Vylistování obsahu pole:
  _$ (vlax-safearray->list sa)
    vrací (1.0 2.0 3.0)
   
  Použití funkce vlax-safearray-fill k nastavení prvního prvku pole:
  _$ (vlax-safearray-fill sa '(-66))
    vrací #<safearray...>
   
  Vylistování obsahu pole:
  _$ (vlax-safearray->list sa)
    vrací (-66.0 2.0 3.0)
   
  Vytvoření dvoudimenzionálního pole:
  _$ (setq mat2 (vlax-make-safearray vlax-vbString '(0 . 1) '(1 . 3)))
    vrací #<safearray...>
   
  Použití funkce vlax-safearray-fill k naplnění pole:
  _$ (vlax-safearray-fill mat2 '(("a" "b" "c") ("d" "e" "f")))
    vrací #<safearray...>
   
  Vylistování obsahu pole:
  _$ (vlax-safearray->list mat2)
    vrací (("a" "b" "c") ("d" "e" "f"))

Podívejte se na funkce vlax-safearray-get-dim, vlax-safearray-get-element, vlax-safearray-get-l-bound, vlax-safearray-get-u-bound, vlax-safearray-put-element, vlax-safearray-type a vlax-variant-value.

(vlax-safearray-get-dim var)
 
Argumenty:
 
var
- proměnná jejíž datový typ je safearray
 
Popis:
  - vrátí dimenzi objektu pole safearray
 
Návratové hodnoty:
  - integer - počet dimenzí ve var
  - chyba - v případě, že var není safearray
 
Příklady:
  Nastavení proměnné sa-int na jednodimenzionální pole safearray:
  _$ (setq sa-int (vlax-make-safearray vlax-vbinteger '(1 . 4)))
    vrací #<safearray...>
   
  Použití funkce vlax-safearray-get-dim k získání dimense sa-int:
  _$ (vlax-safearray-get-dim sa-int)
    vrací 1

Podívejte se na funkce vlax-make-safearray, vlax-safearray-get-l-bound a vlax-safearray-get-u-bound.

(vlax-safearray-get-element var element...)
 
Argumenty:
 
var
- proměnná jejíž datový typ je safearray
 
element...
- integer specifikující indexy požadovaného elementu. Jednorozměrné pole - jeden integer. Vícerozměrná pole - tolik indexů kolik je rozměrů pole.
 
Popis:
  - vrátí element z pole
 
Návratová hodnota:
  - hodnota elementu
 
Příklady:
  Vytvoření dvourozměrného pole, každá dimenze začíná indexem 1:
  _$ (setq matrix (vlax-make-safearray vlax-vbString '(1.2) '(1.2) ))
    vrací #<safearray...>
   
  Použití funkce vlax-safearray-put-element k naplnění pole:
  _$ (vlax-safearray-put-element matrix 1 1 "a")
    vrací "a"
  _$ (vlax-safearray-put-element matrix 1 1 "b")
    vrací "b"
  _$ (vlax-safearray-put-element matrix 2 1 "c")
    vrací "c"
  _$ (vlax-safearray-put-element matrix 2 2 "d")
    vrací "d"
   
  Použití funkce vlax-safearray-get-element k získání hodnoty druhého elementu v první dimenzi:
  _$ (vlax-safearray-get-element matrix 1 2)
    vrací "b"

Podívejte se na funkce vlax-safearray-get-dim, vlax-safearray-get-l-bound a vlax-safearray-get-u-bound.

(vlax-safearray-get-l-bound var dim)
 
Argumenty:
 
var
- proměnná jejíž datový typ je safearray
 
dim
- dimenze pole, první dimenze je dimenze 1
 
Popis:
  - vrátí dolní hranici (počáteční index) dimenze pole
 
Návratové hodnoty:
  - integer - dolní index dimenze
  - chyba - v případě, že var není pole nebo dim je neplatná (např. 0) nebo číslo je větší než dimenze pole
 
Příklady:
  Definice pole safearray:
  (vlax-make-safearray vlax-vbString '(1 . 2) '(0 . 1) ))
   
  Získání hodnoty počátečního indexu první dimenze pole:
  _$ (vlax-safearray-get-l-bound tmatrix 1)
    vrací 1 - první dimenze začíná indexem 1
   
  Získání hodnoty počátečního indexu druhé dimenze pole:
  _$ (vlax-safearray-get-l-bound tmatrix 2)
    vrací 0 - druhá dimenze začíná indexem 0

Podívejte se na funkce vlax-safearray-get-dim a vlax-safearray-get-u-bound.

(vlax-safearray-get-u-bound var dim)
 
Argumenty:
 
var
- proměnná jejíž datový typ je safearray
 
dim
- dimenze pole, první dimenze je dimenze 1
 
Popis:
  - vrátí horní hranici (koncový index) dimenze pole
 
Návratové hodnoty:
  - integer - horní index dimenze
  - chyba - v případě, že var není pole nebo dim je neplatná (např. 0) nebo číslo je větší než dimenze pole
 
Příklady:
  Definice pole safearray:
  (vlax-make-safearray vlax-vbString '(1 . 2) '(0 . 1) ))
   
  Získání hodnoty koncového indexu první dimenze pole:
  _$ (vlax-safearray-get-u-bound tmatrix 1)
    vrací 1 - první dimenze končí indexem 2
   
  Získání hodnoty koncového indexu druhé dimenze pole:
  $ (vlax-safearray-get-u-bound tmatrix 2)
    vrací 0 - druhá dimenze končí indexem 1

Podívejte se na funkci vlax-safearray-get-dim.

(vlax-safearray-put-element var index... value)
 
Argumenty:
 
var
- proměnná jejíž datový typ je safearray
 
index...
- množina hodnot indexů ukazujících na elementy, do kterých přiřazujeme hodnoty. Jednorozměrné pole - jeden hodnota indexu. Vícereozměrná pole - tolik hodnot indexů kolik je rozměrů pole.
 
value
- hodnota, která má být přidělena elementu pole safearray
 
Popis:
  - přidá element do pole
 
Návratová hodnota:
  - hodnota value - přiřazená do elementu
Příklady:
  Vytvoření jednodimenzionálního pole doublů:
  _$ (setq point (vlax-make-safearray vlax-vbdouble '(0 . 2)))
    vrací #<safearray...>
   
  Použití funkce vlax-safearray-put-element k naplnění pole:
  _$ (vlax-safearray-put-element point 0 100)
    vrací 100
  _$ (vlax-safearray-put-element point 1 100)
    vrací 100
  _$ (vlax-safearray-put-element point 2 0)
    vrací 0
   
  Vytvoření dvoudimenzionálního pole řetězců:
  $ (setq matrix (vlax-make-safearray vlax-vbString '(1 . 2) '(1 . 2) ))
    vrací #<safearray...>
   
  Použití funkce vlax-safearray-put-element k naplnění pole:
  _$ (vlax-safearray-put-element matrix 1 1 "a")
    vrací "a"
  _$ (vlax-safearray-put-element matrix 1 2 "b")
    vrací "b"
  _$ (vlax-safearray-put-element matrix 2 1 "c")
    vrací "c"
  _$ (vlax-safearray-put-element matrix 2 2 "d")
    vrací "d"

Podívejte se na funkce vlax-safearray-get-element, vlax-safearray-fill a vlax-safearray-type.

(vlax-safearray-type var)
 
Argumenty:
 
var
- proměnná jejíž datový typ je safearray
 
Popis:
  - vrátí datový typ pole safearray
 
Návratové hodnoty:
  - 2 - integer (vlax-vbInteger)
  - 3 - long integer (vlax-vbLong)
  - 4 - plovoucí řádová čárka - jednoduchá přesnost (vlax-vbSingle)
  - 5 - plovoucí řádová čárka - dvojitá přesnost (vlax-vbDouble)
  - 8 - řetězec (vlax-vbString)
  - 9 - objekt (vlax-vbObject)
  - 11 - boolean (vlax-vbBoolean)
  - 12 - variant (vlax-vbVariant)
  - chyba - argument var neobsahuje safearray
 
Příklady:
  Vytvoření jednodimenzionálního pole doublů a dvoudimenzionálního pole řetězců:
  _$ (setq point (vlax-make-safearray vlax-vbdouble '(0 . 2)))
    vrací #<safearray...>
  _$ (setq matrix (vlax-make-safearray vlax-vbString '(1.2) '(1.2) ))
    vrací #<safearray...>
   
  Použití funkce vlax-safearray-type k zjištění typu dat safearray:
  _$ (vlax-safearray-type point)
    vrací 5 - plovoucí řádová čárka - dvojitá přesnost (vlax-vbDouble)
  _$ (vlax-safearray-type matrix)
    vrací 8 - řetězec (vlax-vbString)

(vlax-safearray->list var)
 
Argumenty:
 
var
- proměnná jejíž datový typ je safearray
 
Popis:
  - vrátí elementy safearray převedené do seznamu
 
Návratová hodnota:
  - seznam
 
Příklady:
  Vytvoření jednodimenzionálního pole doublů:
  _$ (setq point (vlax-make-safearray vlax-vbdouble '(0 . 2)))
    vrací #<safearray...>
   
  Použití funkce vlax-safearray-put-element k naplnění pole:
  _$ (vlax-safearray-put-element point 0 100)
    vrací 100
  _$ (vlax-safearray-put-element point 1 100)
    vrací 100
  _$ (vlax-safearray-put-element point 2 0)
    vrací 0
   
  Převedení pole na seznam:
  _$ (setq pointlist (vlax-safearray->list point))
    vrací (100.0 100.0 0.0)
   
  Převedení dvourozměrného pole matrix na seznam:
  _$ (vlax-safearray->list matrix)
    vrací (("a" "b") ("c" "d"))

Podívejte se na funkci vlax-safearray-fill.

(vlax-tmatrix list)
 
Argumenty:
 
list
- seznam čtyřech seznamů, každý obsahuje čtyři čísla, reprezentující transformační matici elementů
 
Popis:
  - vrátí vhodnou reprezentaci 4x4 transformační matice pro použití ve VLA
 
Návratová hodnota:
  - typ variant safearray - reprezentující 4x4 transformační matici
 
Příklady:
  Definice transformační matice a přiřazení její hodnoty do proměnné tmatrix:
  _$ (setq tmatrix (vlax-tmatrix '((1 1 1 0) (1 2 3 0) (2 3 4 5) (2 9 8 3))))
    vrací #<variant 8197 ...>
   
  Použití funkce vlax-safearray->list k prohlédnutí hodnot v tmatrix:
  _$ (vlax-safearray->list (vlax-variant-value tmatrix))
    vrací ((1.0 1.0 1.0 0.0) (1.0 2.0 3.0 0.0) (2.0 3.0 4.0 5.0) (2.0 9.0 8.0 3.0))

(vlax-variant-change-type var type)
 
Argumenty:
 
var
- proměnná jejíž datový typ je safearray
 
type
- typ variant. Specifikován následujícími konstantami:
      vlax-vbEmpty (0) - neinicializováno (standardní hodnota)
      vlax-vbNull (1) - obsahuje neplatná data
      vlax-vbInteger (2) - integer
      vlax-vbLong (3) - Long integer
      vlax-vbSingle (4) - pohyblivá řádová čárka, jednoduchá přesnost
      vlax-vbDouble (5) - pohyblivá řádová čárka, dvojitá přesnost
      vlax-vbString (8) - řetězec
      vlax-vbObject (9) - objekt
      vlax-vbBoolean (11) - boolean
      vlax-vbArray (8192) - pole
 
Popis:
  - vrátí hodnotu variant po změně z jednoho typu na druhý
 
Návratové hodnoty:
  - hodnotu argumentu var po převodu na specifikovaný typ variant
  - nil - v případě, že konverze nelze provést
 
Příklady:
  Nastavení proměnné variant na hodnotu variant:
  _$ (setq varint (vlax-make-variant 5))
    vrací #<variant 3 5>
   
  Nastavení proměnné variantstr na hodnotu obsaženou v proměnné variant zkonvertovanou na řetězec:
  _$ (setq varintStr (vlax-variant-change-type varint vlax-vbstring))
    vrací #<variant 8 5>
   
  Ověření hodnoty v proměnné variantstr:
  _$ (vlax-variant-value varintStr)
    vrací "5" - to potvrdilo, že variantstr obsahuje řetězec.

Podívejte se na funkci vlax-variant-type.

(vlax-variant-type var)
 
Argumenty:
 
var
- proměnná jejíž datový typ je safearray
 
Popis:
  - zjistí typ dat variant
 
Návratové hodnoty:
  - 0 - neinicializovaná (vlax-vbEmpty)
  - 1 - neobsahuje platné data (vlax-vbNull)
  - 2 - integer (vlax-vbInteger)
  - 3 - long integer (vlax-vbLong)
  - 4 - plovoucí řádová čárka - jednoduchá přesnost (vlax-vbSingle)
  - 5 - plovoucí řádová čárka - dvojitá přesnost (vlax-vbDouble)
  - 8 - řetězec (vlax-vbString)
  - 9 - objekt (vlax-vbObject)
  - 11 - boolean (vlax-vbBoolean)
  - 8192 + n - safearray (vlax-vbArray) stejného typu. (Př. pole doublů (vlax-vbDouble) vrací 8197 (8192 + 5))
  - chyba - argument var neobsahuje safearray
 
Příklady:
  Nastavení variant na nil a zobrazení datového typu variant:
  _$ (setq varnil (vlax-make-variant nil))
    vrací #<variant 0 >
  _$ (vlax-variant-type varnil)
    vrací 0
   
  Nastavení variant na hodnotu integer a explicitní definování variantu jako datového typu integer:
  _$ (setq varint (vlax-make-variant 5 vlax-vbInteger))
    vrací #<variant 2 5 >
  _$ (vlax-variant-type varint)
    vrací 2

Podívejte se na funkce vlax-make-safearray, vlax-variant-change-type a vlax-variant-value.

(vlax-variant-value var)
 
Argumenty:
 
var
- proměnná jejíž datový typ je safearray
 
Popis:
  - vrátí hodnotu variant
 
Návratové hodnoty:
  - hodnota proměnné
  - chybová zpráva - když proměnná neobsahuje variant
 
Příklady:
  _$ (vlax-variant-value varstr)
    vrací "ghost"
  _$ (vlax-variant-value varint)
    vrací 5
  _$ (vlax-variant-value notvar)
    vrací ; *** ERROR: bad argument type: variantp 6.0 - vrátí chybu, protože notvar neobsahuje variant

Podívejte se na funkce vlax-make-safearray a vlax-make-variant.

(vlax-vla-object->ename obj)
 
Argumenty:
 
obj
- objekt VLA
 
Popis:
  - transformuje VLA objekt na entitu AutoLISPu
 
Návratová hodnota:
  - jméno entity AutoLISPu (datový typ ename)
 
Příklady:
  _$ (vlax-vla-object->ename vlaobj)
    vrací <Entity name: 27e0540>

Podívejte se na funkci vlax-ename->vla-object.