
- (defun c:test ()
- (setq sen (car (entsel "\n选择四边形:")))
- (setq pt_lst (mapcar 'cdr
- (vl-remove-if '(lambda (x) (/= 10 (car x))) (entget sen))
- )
- )
- (setq pta (nth 0 pt_lst)
- ptb (nth 1 pt_lst)
- ptc (nth 2 pt_lst)
- ptd (nth 3 pt_lst)
- )
- (setq l1 (distance pta ptb)
- l2 (distance ptb ptc)
- l3 (distance ptc ptd)
- l4 (distance pta ptd)
- )
- (setq ang1 (angle pta ptd)
- ang2 (angle pta ptb)
- )
- (setq ang3 (angle ptb ptc)
- ang4 (angle ptb pta)
- )
- (setq ang5 (angle ptc ptd)
- ang6 (angle ptc ptb)
- )
- (setq ang7 (angle ptd pta)
- ang8 (angle ptd ptc)
- )
- (setq anga (abs (* (- ang1 ang2) (/ 180.0 pi)))
- angb (abs (* (- ang3 ang4) (/ 180.0 pi)))
- angc (abs (* (- ang5 ang6) (/ 180.0 pi)))
- angd (abs (* (- ang7 ang8) (/ 180.0 pi)))
- )
- (if (> anga 180)
- (setq anga (- 360 anga))
- )
- (if (> angb 180)
- (setq angb (- 360 angb))
- )
- (if (> angc 180)
- (setq angc (- 360 angc))
- )
- (if (> angd 180)
- (setq angd (- 360 angd))
- )
- (setq txt (strcat (rtos l1)
- ","
- (rtos l2)
- ","
- (rtos l3)
- ","
- (rtos l4)
- ",,,,"
- (rtos anga)
- ","
- (rtos angb)
- ","
- (rtos angc)
- ","
- (rtos angd)
- )
- )
- (command "TEXT" "J" "MC" pta "30" "0" "p0" "")
- (command "TEXT" "J" "MC" ptb "30" "0" "p1" "")
- (command "TEXT" "J" "MC" ptc "30" "0" "p2" "")
- (command "TEXT" "J" "MC" ptd "30" "0" "p3" "")
- (setq pt (getpoint "\n标注位置:"))
- (command "TEXT" pt "30" "0" txt "")
- )
|