ActiveX 関数を使用してオブジェクトのプロパティの値を設定したり、取得することができます。
たとえば、この関数は、円の中心点を指定するようプロンプトを表示してから、AddCircle メソッドを呼び出して円を描きます。vlax-3d-point 関数は、指定された点を vla-addcircle 関数が要求するデータ タイプに変換します。
(setq 3dpt (vlax-3d-point (getpoint "\nPick the center point for a circle: ")) (setq myCircle (vla-addcircle mspace 3dpt 2.0))
たとえば、同心円を作成するには、Circle オブジェクトの vla‑get‑center 関数を使用します。
(vla-addCircle mSpace (vla-get-center myCircle) 1.0)
(setq myCenter (vla-get-center myCircle))
中心点は、セーフ配列タイプのバリアント型に返されます。セーフ配列には、3 つの倍精度浮動小数点数型(X、Y、Z 座標)が格納されています。
(setq centerpt (vlax-safearray->list (vlax-variant-value myCenter)))
中心点をバリアント型のセーフ配列からリストに変換すると、座標の変更が容易になります。
(setq newXaxis (- (car centerpt) 1))
結果は、変数 newXaxis に格納されます。
(setq newcenter (list newXaxis (cadr centerpt) (caddr centerpt)))
作成したリストが変数 newcenter に格納されます。
(vla-put-center myCircle (vlax-3d-point newcenter))
新しい中心点のリストを vla-put-center 関数が要求するデータ タイプに変換するために、このコマンドが vlax-3d-point 関数を使用していることに注目してください。
図面ウィンドウに結果が表示されます。