Grossa Speaks Final

コンピュータに関するテーマを
気の向くまま取り上げています。
(時々雑談...)

2点間の中点を求める

2006年05月07日 | CAD
;;Kim_MidP.lsp
;;Command Name "mp"
;;2点間の中点を求める
;;
;;May 6,2006 Original
;;May 6,2006 Version 1.0
;;
;;Coding by Kim Grossa
;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;startP(Xs,Ys)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;midP(Xm,Ym)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;endP(Xe,Ye)
;;
;;*****使用方法
;;コマンドラインで"mp"と入力し、Enter
;;最初の点をクリック
;;最後の点をクリック
;;
(defun C:mp()

;*****現在のエンティティスナップの設定を退避
(setq oldES (getvar "OSMODE"))

;*****エンティティスナップを設定
(setvar "OSMODE" 47)
;1(Endpoint)+2(Midpoint)+4(Center)+8(Point)+32(Intersection)

;*****始点、終点を取得
(setq startP (getpoint "\n<Start point>:"))
(setq endP (getpoint startP "\n<End point>:"))

;*****始点、終点を結ぶ直線の角度の計算
(setq wireAng (angle startP endP))

;*****始点、終点間の距離を計算
(setq distS (distance startP endP))

;*****中点の座標の計算
(setq midP (polar startP wireAng (/ distS 2)))

;*****中点を描く
(command "POINT" midP)

;*****エンティティスナップの設定を復旧
(setvar "OSMODE" oldES)

)

最新の画像もっと見る

コメントを投稿