- (defun c:tt1 (/ h h1 lay os p1 p1x p1y p2 p2x p2y)
- (setq os (getvar "OSMODE"))
- (setvar "cmdecho" 0)
- (if (= nil (setq h (getint "\n请输入分格数<4>:")))
- (setq h 4)
- )
- (setq h1 (fix (* h 0.5)))
- (setq p1 (getpoint "\n指定第一点:"))
- (command "rectang" p1 pause)
- (setq p2 (getvar "lastpoint")
- p1x (car p1)
- p1y (cadr p1)
- p2x (car p2)
- p2y (cadr p2)
- )
- (setq pt3 (list (+ p1x (/ (- p2x p1x) h)) p2y))
- (setq pt2 (list p1x p2y))
- (setq pt4 (list (+ p1x (/ (- p2x p1x) h)) p1y))
- (setq pa1 (mid_2point p1 pt2))
- (setq pa2 (mid_2point pt3 pt4))
- (setvar "OSMODE" 0)
- (progn
- (command "pline" pt3 pa1 pt4 "")
- (setq ent1 (entlast))
- (command "mirror" ent1 "" pt3 pt4 "n")
- (setq entm (entlast))
- (command "-ARRAY" ent1 entm "" "R" 1 h1 (/ (- p2x p1x) h1))
- )
- ;;; (progn
- ;;; (command "pline" p1 pa2 pt2 "")
- ;;; (setq ent2 (entlast))
- ;;; (command "ARRAY" ent2 "" "R" 1 h (/ (- p2x p1x) h))
- ;;; )
- (progn
- (command "line" pt3 pt4 "")
- (setq ent3 (entlast))
- (command "ARRAY" ent3 "" "R" 1 (1- h) (/ (- p2x p1x) h))
- )
- (setvar "OSMODE" os)
- (princ)
- )
- ;;求两点的中点
- ;;(setq mid_ptA (mid_2point pt1 pt2))
- (defun mid_2point (e1 e2)
- (setq mid (mapcar '(lambda (x y) (/ (+ x y) 2))
- e1
- e2
- )
- )
- )
|