 - (defun c:tt ()
- (vl-load-com)
- (setvar "CMDECHO" 0)
- (setq p1 (getpoint "\n第一点:")
- p2 (getpoint p1 "\n第二点:")
- )
- ;;;两点距离
- (princ
- (strcat "\n****两点距离:" (rtos (distance p1 p2) 2 3))
- )
- ;;;等分数量:
- (setq n (getint "\n等分数量:"))
- ;;;等分子函数,根据两点点及等分数量得出等分点列表
- (defun tt-df (p1 p2 n)
- (if (> (1- n) 0)
- (cons (polar p1 (angle p1 p2) (/ (distance p1 p2) n 1.0))
- (tt-df (polar p1 (angle p1 p2) (/ (distance p1 p2) n 1.0))
- p2
- (1- n)
- )
- )
- )
- )
- ;;;等分点列表
- (setq lst (tt-df p1 p2 n))
- ;;; 起点、终点、等分点处画园
- (mapcar '(lambda (x)
- (vla-AddPoint
- (vla-get-modelspace
- (vla-get-activedocument (vlax-get-acad-object))
- )
- (vlax-3d-point x)
- )
- )
- (append (list p1) lst (list p2))
- )
- (prin1)
- )
|