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.
Podívejte se na funkce vlax-make-safearray a vlax-make-variant.
Podívejte se na funkci vlax-ename->vla-object.