Slope Calculations 1
อันนี้ใช้ตัว getpoint เลือก 2 จุด แล้วตรวจสอบว่าจุดใดอยู่บนหรือล่างให้ด้วย
(defun c:slope1 (/ pt1 pt2 ptL ptT ang slp slple)
(setq old_cmdecho (getvar "cmdecho")) ; cmdecho
(setq old_osmode (getvar "osmode")) ; osnap
(setvar "cmdecho" 0) ;;echo off
(setvar "osmode" 1) ;;osnap end point
(setq pt1 (getpoint (strcat "\nPick Frist Point : ")))
(setq pt2 (getpoint (strcat "\nPick Second Point : ")))
;;--------Test points Low or Height-----------------+
(if(and(>(car pt1)(car pt2))(>(cadr pt1)(cadr pt2)))
(setq ptL pt2
ptT pt1
)
(setq ptL pt1
ptT pt2
)
)
(setq ris (-(cadr ptT)(cadr ptL))) ;;Rise Vertical
(setq run (-(car ptT)(car ptL))) ;;Run Horizontal
(setq ang (/ (* (atan (/ ris run)) 180) pi)) ;;Angle of Degree
(setq angra (* ang (/ pi 180))) ;;Angle of Radial
(setq slp (*(/ ris run) 100.0)) ;;Slope %
(setq slple (/ ris (sin angra))) ;;Slope Length
(alert
(strcat "\nSlope = "(rtos slp 2 0) "%"
"\nSlope Length = "(rtos slple 2 3) "m."
"\nAngle = "(rtos ang 2 3) "\U+00B0"
)
)
(setvar "osmode" old_osmode)
(setvar "cmdecho" old_cmdecho)
(princ)
)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น