fc2ブログ

CODE21:二点間にある任意点高さZpを按分計算

2023年05月16日
■AutoLISP サンプルコード公開Gallery

;比例分布による任意点高さの計算と表記
;+++++++++++++
(defun C:CODE21 (/ Obj0 Ent0 Obj MyHandle ObjLength )
;+++++++++++++
    (Command "OsnapCoord" "1" "-Layer" "M" "FlagID" "" )
    (setq Pt1 (getpoint "\n1点目を指定:"))
    (Command "ID" Pt1)
    (setq Pt1x (nth 0 Pt1))
    (setq Pt1y (nth 1 Pt1))
    (setq Pt1z (getstring "\n1点目高さを入力:"))
    (Command "Ucs" "w" 
                   "-MText" "@" "J" "ML" "H" (getVar "Dimtxt") "@0,0" 
                   (Strcat "X="  (rtos Pt1x)) (Strcat "Y=" (rtos Pt1y))  (Strcat "Z=" Pt1z) ""
                  "Grips" "2"
                  "Ucs" "p")
    ;----
    (setq Pt2 (getpoint "\n2点目を指定:"))
    (Command "ID" Pt2)
    (setq Pt2x (nth 0 Pt2))
    (setq Pt2y (nth 1 Pt2))
    (setq Pt2z (getstring "\n2点目高さを入力:"))
    (Command "Ucs" "w" 
            "-MText" "@" "J" "ML" "H" (getVar "Dimtxt") "@0,0" 
            (Strcat "X="  (rtos Pt2x)) (Strcat "Y=" (rtos Pt2y))  (Strcat "Z=" Pt2z) ""
            "Grips" "2"
            "Ucs" "p")
    ;----
    (setq Pt (getpoint "\n計測する位置を指定:"))
    (Command "ID" Pt)
    (setq Ptx (nth 0 Pt))
    (setq Pty (nth 1 Pt))
    (setq dx (- Pt2x  Pt1x )
            dy (- Pt2y  Pt1y )
            dz (- (atof Pt2z ) (atof Pt1z ))
            Lx (- Ptx Pt1x)
            Ly (- Pty Pt1y))
    (if (/= 0 dx)
        (setq Delta (/ dz dx)
                Ptz (+ (atof Pt1z ) (* Delta Lx)))
        (setq Delta (/ dz dy)
                Ptz (+ (atof Pt1z ) (* Delta Ly)))
    );if
    (Command "Leader" Pt "_non" Pause "a"
            (Strcat "X="  (rtos Ptx)) (Strcat "Y=" (rtos Pty))  (Strcat "Z=" (rtos Ptz)) ""
           "Grips" "2");
    (princ)
)


 AutoLispサンプルコードプログラム 一覧(インデックス)

 AutoLispサンプルコードプログラム 【概説】

AutoLispサンプルコードプログラム
関連記事
スポンサーサイト



Gallery担当:山野 ロザリア平久郎
Posted by Gallery担当:山野 ロザリア平久郎