「Vla-getwidth」の版間の差分
(ページの作成:「{{AutoLISP}} ; 構文 : (vla-getwidth ''vla-object'' ''SegmentIndex '' ''StartWidth '' ''EndWidth'') ; 機能 : ポリラインの セグメント インデックスを...」) |
(相違点なし)
|
2015年11月8日 (日) 18:16時点における最新版
- 構文
- (vla-getwidth vla-object SegmentIndex StartWidth EndWidth)
- 機能
- ポリラインの セグメント インデックスを指定して、ポリラインの始点と終点の幅を取得する。
- 引数
-
- vla-object … LWPolyline、Polyline の VLAオブジェクト
- SegmentIndex … 幅を設定するセグメントを指定するインデックス。最初のセグメントは、インデックス 0。
- StartWidth … 取得されたセグメントの始点の幅。
- EndWidth … 取得されたセグメントの終点の幅。
- 戻り値
- nil
- 注意 : SegmentIndex は、ポリラインの特定セグメントのインデックス。たとえば、3 つのセグメントを持つポリラインには、セグメント インデックス 0、1、および 2 がある。
Polyline : このメソッドはポリラインの Type プロパティが acCubicSplinePoly または acQuadSplinePoly の場合は失敗する。
- サンプル
(vl-load-com) (defun c:Example_getWidth() ;; 選択したポリラインの各セグメントの幅が表示するサンプル (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) (vla-GetEntity (vla-get-Utility doc) 'returnObj 'basePnt "ポリラインを選択 : ") ;; ポリラインの選択確認 (if (/= returnObj nil) (progn (if (= (vla-get-ObjectName returnObj) "AcDbPolyline") (progn ;; 選択したポリラインの各頂点の座標を取得。 ;; 座標点を配列で返す。 (setq retCoord (vlax-variant-value (vla-get-Coordinates returnObj))) (setq segment 0 i (vlax-safearray-get-l-bound retCoord 1) ;; 座標配列のインデックスを開始。 j (vlax-safearray-get-u-bound retCoord 1) ;; 座標配列の終了インデックス nbr_of_vertices (+ (/ (- j i) 2) 1)) ;; ポリラインの頂点の数 ;; ポリライン内のセグメント数を決定。 ;; 閉じたポリラインは、頂点があり、多くのセグメント。 ;; 開いているポリラインが 1 つ少ないセグメントの頂点を持っている。 ;; ポリラインが閉じているかどうかは確認 (if (= (vla-get-Closed returnObj) :vlax-true) (setq nbr_of_segments nbr_of_vertices) (setq nbr_of_segments (1- nbr_of_vertices)) ) ;; ポリラインの各セグメントの幅を取得。 (while (>= nbr_of_segments 0) ;; Get the width of the current segment (vla-GetWidth returnObj segment 'StartWidth 'EndWidth) (setq message_string (strcat "最初のセグメントは " (rtos (vlax-safearray-get-element retCoord i) 2) "," (rtos (vlax-safearray-get-element retCoord (1+ i)) 2) " 始まりの幅は " (rtos StartWidth 2) " 終わりの幅は " (rtos EndWidth 2))) (alert message_string) ;; Prepare to obtain width of next segment, if any (setq i (+ i 2)) (setq segment (1+ segment)) (setq nbr_of_segments (1- nbr_of_segments)) ) ) (alert "ポリラインじゃないし") ) ) (alert "図形選べてなす.") ) )
関連事項