本帖最后由 fangmin723 于 2025-4-25 13:43 编辑
 - (defun c:demo1(/ lst n pt1 pts split2pt)
- (setq lst '(3885.634 3114.471 4281.739 3592.881 3356.668 3419.507 3373.397 2385.189 3968.103 3005.75))
- (defun Split2Pt(lst / ptlst x y)
- (setq ptlst nil)
- (while (setq x (car lst))
- (if (setq lst (cdr lst) y (car lst))
- (setq ptlst (cons (list x y) ptlst))
- (setq ptlst (cons (list x 0.0) ptlst))
- )
- (setq lst (cdr lst))
- )
- (reverse ptlst)
- )
- (setq pts (Split2Pt lst) pt1 (car pts) n 1)
- (print
- (mapcar
- '(lambda(x)
- (list
- (list (strcat "1->" (itoa (setq n (1+ n))) "距离") (distance pt1 x))
- (list (strcat "1->" (itoa n) "角度") (atof (angtos (angle pt1 x) 0 6)))
- )
- )
- (cdr pts)
- )
- )
- (princ)
- )
- (
- (("1->2距离" 621.108) ("1->2角度" 50.3766))
- (("1->3距离" 610.616) ("1->3角度" 150.029))
- (("1->4距离" 891.201) ("1->4角度" 234.916))
- (("1->5距离" 136.46) ("1->5角度" 307.182))
- )
|