コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
GizmoLab 関連
オンラインショップ
CAD&CGブログ
YouTube
GitHub
CAD 系
GizmoTools
AutoLISP
Visual LISP
BricsCADのLISP
GzLib
DCL
OpenDCL
DWG
DXF
CADのコマンド一覧
システム変数
図形の種類
Ver別サポートAPI
CAD用語集
メモ
newLISP
CommonLISP
Script-Fu
Inno setup
JavaScript
ANDROID
Windowsでのファイルハッシュ確認
Prolog
Python
Clojure
Electron
フォント
数学メモ
イメージサイズとメモリ量
blender
Processwire
Win10,11メモ
IIJmio
mediawiki資料
ヘルプ
検索
検索
表示
ログイン
個人用ツール
ログイン
セーフ配列のソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
セーフ配列
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
{{AutoLISP}} ==セーフ配列の要素を取得する(AutoLISP/ActiveX)== 配列は、ActiveX 関数からの複数の値を返し、ActiveX 関数に複数の値を渡すために使用する。 注: AutoLISP での ActiveX のサポートは Windows のみ。(AutoCAD,互換CAD共:2014.06現在) 配列内の要素に割り当てられた値の取得には、次の関数を使用する。 * vlax-safearray-type: セーフ配列のデータ タイプを返す。 * vlax-safearray-get-dim: セーフ配列の次元数を返す。 * vlax-safearray-get-l-bound: セーフ配列の次元の下限(最初のインデックス)を返す。 * vlax-safearray-get-u-bound: セーフ配列の次元の上限(最後のインデックス)を返す。 * vlax-safearray-get-element: セーフ配列内の要素の値を返す。 ===配列のデータ タイプ=== AutoLISP 関数を使用するときは、使用するデータのタイプを知っている必要がある。各配列は、特定のタイプのデータで定義される。vlax-safearray-type 関数は、配列がどのタイプのデータを格納する目的で作成されたのかを特定するために使用する。この関数には、1 つの引数(配列を含む変数)が必要で、配列がどのタイプのデータを格納する目的で作成されたのかを表す整数値を返す。 たとえば、次のコードは 3 つの倍精度浮動小数点数型の 1 次元配列を作成する。 <pre class="brush:autolisp;"> (setq point (vlax-make-safearray vlax-vbDouble '(0 . 2))) (vlax-safearray-fill point (list 100 100 0)) #<safearray...> </pre> たとえば、次のコードは、配列が倍精度浮動小数点数を格納すると定義されていることから、5 を返す。 <pre class="brush:autolisp;"> (vlax-safearray-type point) 5 </pre> ===配列の次元=== 配列の値にアクセスするには、配列作成時の次元数と要素数の両方を知る必要がある。vlax-safearray-get-dim 関数は、配列作成時の次元数を表す整数を返す。 次のコードは、3 つの倍精度浮動小数点数型の 1 次元配列を作成す。 <pre class="brush:autolisp;"> (setq point (vlax-make-safearray vlax-vbDouble '(0 . 2))) (vlax-safearray-get-dim point) 1 </pre> 次の例は、文字列の 2 次元配列を作成す。 <pre class="brush:autolisp;"> (setq mat2 (vlax-make-safearray vlax-vbString '(0 . 1) '(1 . 3))) (vlax-safearray-get-dim mat2) 2 </pre> ===配列の次元内の要素=== 配列内の次元数がわかると(vlax-safearray-get-dim 関数を使用)、配列の下限(vlax-safearray-get-l-bound)および上限(vlax-safearray-get-u-bound)を取得することができる。配列の上限および下限により、次元内の要素数および配列の要素が検索できるインデックス範囲を特定することができる。 配列の次元内の要素数は、vlax-safearray-get-u-bound 関数と vlax-safearray-get-l-bound 関数によって返された値を減算することによって計算できる。 たとえば、次の例は、1 次元配列内の要素数を返す。 <pre class="brush:autolisp;"> (setq point (vlax-make-safearray vlax-vbDouble '(0 . 2))) (setq arrayRange (1+ (- (vlax-safearray-get-u-bound point 1) (vlax-safearray-get-l-bound point 1)))) 3 </pre> 次のコードは、2 次元配列の 2 番目の次元内の要素数を返す。 <pre class="brush:autolisp;"> (setq mat1 (vlax-make-safearray vlax-vbString '(0 . 1) '(2 . 5))) (setq arrayRange (1+ (- (vlax-safearray-get-u-bound mat1 2) (vlax-safearray-get-l-bound mat1 2)))) 4 </pre> ===配列内の要素の値の取得=== 配列内の次元数と要素数がわかると、vlax-safearray-get-element 関数を使用して要素の値を取得することができる。 たとえば、次のコードは 3 つの倍精度浮動小数点数型の 1 次元配列を作成す。 <pre class="brush:autolisp;"> (setq point (vlax-make-safearray vlax-vbDouble '(0 . 2))) (vlax-safearray-fill point (list 100 50 0)) #<safearray...> </pre> 次のコードは、配列内の 2 番目の要素の値を返す。 <pre class="brush:autolisp;"> (vlax-safearray-get-element point 1) 50.0 </pre> 次のコードは、文字列の 2 次元配列を作成し、最初の次元の 2 番目の要素を取得する。 <pre class="brush:autolisp;"> (setq mat2 (vlax-make-safearray vlax-vbString '(0 . 1) '(1 . 3))) (vlax-safearray-fill mat2 '(("a" "b" "c") ("d" "e" "f"))) (vlax-safearray-get-element mat2 0 2) "b"</pre> ----- 関連事項 * [[バリアント型を使用する]](AutoLISP/ActiveX) * [[セーフ配列]](AutoLISP/ActiveX) * [[バリアント型のセーフ配列]](AutoLISP/ActiveX) * [[セーフ配列の要素を作成する]](AutoLISP/ActiveX) * [[データ変換関数リファレンス]](AutoLISP/ActiveX) * [[値の配列を格納するバリアント型を作成するには]](AutoLISP/ActiveX) [[Category:AutoLISP]]
このページで参照読み込みされているページ:
テンプレート:AutoLISP
(
ソースを閲覧
)
セーフ配列
に戻る。
検索
検索
セーフ配列のソースを表示
話題を追加