Vla-getxdata
- 構文
- (vla-getxdata vla-object XDataType XDataValue)
- 機能
- オブジェクトに関連付けられた拡張データ(XData)を取得する。
- 引数
-
- vla-object … VLAオブジェクト(すべての図形オブジェクト、AttributeReference、Block、Dictionary、Dimension、DimStyle、Group、Layer、Layout、Linetype、Material、MLeaderStyle、PlotConfiguration、RegisteredApplication、TableStyle、TextStyle、UCS、View、Viewport、XRecord)
- XDataType … 拡張データ(Xdata)の各値の DXF グループ コード値を表す短整数値の配列を格納する変数。
- XDataValue … 拡張データ(Xdata)を構成する値の配列を格納する変数。
- 戻り値
- nil
- 注意 : 拡張データは、ObjectARX または AutoLISP で記述されたアプリケーションによって作成される、インスタンス固有のデータ サンプル。このデータは、あらゆる図形に追加できる。このデータは、図形の定義データの後に配置され、データベースに登録された順に管理される (CAD はこの情報を保持するが、それを使用することはない)。
- サンプル
(vl-load-com) (defun c:Example_SetXData() ;; 線分を作成し、その行に拡張データをアタッチするサンプル。 (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) ;; 線分を作成 (setq startPt (vlax-3d-point 1 1 0) endPt (vlax-3d-point 5 5 0)) (setq modelSpace (vla-get-ModelSpace doc)) (setq lineObj (vla-AddLine modelSpace startPt endPt)) (vla-ZoomAll acadObj) ;; 拡張データのすべての値を初期化する。リスト内の最初のデータは、アプリケーション名にする ;; 必要があり、最初のデータ型コードは 1001 にする必要があることに注意。 (setq DataType (vlax-make-safearray vlax-vbInteger '(0 . 9))) (setq Data (vlax-make-safearray vlax-vbVariant '(0 . 9))) (vlax-safearray-put-element DataType 0 1001) (vlax-safearray-put-element Data 0 "Test_Application") (vlax-safearray-put-element DataType 1 1000) (vlax-safearray-put-element Data 1 "This is a test for xdata") ;; 画層 (vlax-safearray-put-element DataType 2 1003) (vlax-safearray-put-element Data 2 "0") ;; 浮動小数点 (vlax-safearray-put-element DataType 3 1040) (vlax-safearray-put-element Data 3 1.23479137438413E+40) ;; 距離 (vlax-safearray-put-element DataType 4 1041) (vlax-safearray-put-element Data 4 1237324938) ;; 16 bit 整数 (vlax-safearray-put-element DataType 5 1070) (vlax-safearray-put-element Data 5 32767) ;; 32 bit 整数 (vlax-safearray-put-element DataType 6 1071) (vlax-safearray-put-element Data 6 32767) ;; 尺度要素 (vlax-safearray-put-element DataType 7 1042) (vlax-safearray-put-element Data 7 10) ;; 3D 点 (setq reals3 (vlax-3d-point -2.95 100 -20)) (vlax-safearray-put-element DataType 8 1010) (vlax-safearray-put-element Data 8 reals3) ;; ワールド空間の位置 (setq worldPos (vlax-3d-point 4 400.99999999 2.798989)) (vlax-safearray-put-element DataType 9 1011) (vlax-safearray-put-element Data 9 worldPos) ;; 線分に、xdata をアタッチ。 (vla-SetXData lineObj DataType Data) ;; 線分の xdata を返す (vla-GetXData lineObj "" 'xtypeOut 'xdataOut) )
関連事項