「Vla-get-perimeter」の版間の差分
(ページの作成:「{{AutoLISP}} ; 構文 : (vla-get-perimeter ''vla-object'' ) ; 機能 : 内部リージョンと外部リージョンのループ長の合計を取得する。 ; 引...」) |
細編集の要約なし |
||
| 9行目: | 9行目: | ||
; 引数 | ; 引数 | ||
:* vla-object … のVLAオブジェクト | :* vla-object … Region のVLAオブジェクト | ||
; 戻り値 | ; 戻り値 | ||
: | : ループの周長は作図単位で返す。 | ||
2016年2月22日 (月) 23:00時点における最新版
- 構文
- (vla-get-perimeter vla-object )
- 機能
- 内部リージョンと外部リージョンのループ長の合計を取得する。
- 引数
-
- vla-object … Region のVLAオブジェクト
- 戻り値
- ループの周長は作図単位で返す。
- サンプル
(vl-load-com)
(defun c:Example_Perimeter()
;; 円弧と直線から領域を作成して、領域の境界の長さを返すサンプル。
(setq acadObj (vlax-get-acad-object))
(setq doc (vla-get-ActiveDocument acadObj))
(setq modelSpace (vla-get-ModelSpace doc))
;; 線分と円を作成
(setq centerPoint (vlax-3d-point 5 3 0)
radius 2
startAngle 0
endAngle 3.141592)
(setq arcObj (vla-AddArc modelSpace centerPoint radius startAngle endAngle))
(setq lineObj (vla-AddLine modelSpace (vla-get-StartPoint arcObj) (vla-get-EndPoint arcObj)))
(setq curves (vlax-make-safearray vlax-vbObject '(0 . 1)))
(vlax-safearray-put-element curves 0 arcObj)
(vlax-safearray-put-element curves 1 lineObj)
;; リージョンを作成
(setq regionObj (vla-AddRegion modelSpace curves))
(vla-ZoomAll acadObj)
;; 境界を取得
(setq perimeter (vla-get-Perimeter (vlax-safearray-get-element (vlax-variant-value regionObj) 0)))
(alert (strcat "リージョンの境界は " (rtos perimeter 2)))
)
関連事項