不知道这个合不合你的要求.
没考虑UCS的.可自己加工一下.

- ;;;打印阵列图形.
- ;;;R14下测试通过.
- (defun c:parr14 ()
- (setvar "cmdecho" 0)
- (princ "\n请确定打印配置已设置好.退出请按ESC.\n")
- (command ".undo" "begin")
- (setq page-v (getint "竖向打印页数(1):"))
- (if (not page-v)
- (setq page-v 1)
- )
- (setq page-h (getint "横向打印页数(1):"))
- (if (not page-h)
- (setq page-h 1)
- )
- (setq pt1 (getpoint "\n开始页第一个角点:"))
- (setq pt1-x (car pt1))
- (setq pt1-y (cadr pt1))
- (setq pt2 (getcorner pt1 "\n开始页第二个角点:"))
- (setq pt2-x (car pt2))
- (setq pt2-y (cadr pt2))
- (setq n-v 0)
- (repeat page-v
- (setq n-h 0)
- (repeat page-h
- (setq ptn-x1 (+ pt1-x (* n-h (abs (- pt2-x pt1-x)))))
- (setq ptn-y1 (+ pt1-y (* n-v (abs (- pt2-y pt1-y)))))
- (setq ptn-x2 (+ pt2-x (* n-h (abs (- pt2-x pt1-x)))))
- (setq ptn-y2 (+ pt2-y (* n-v (abs (- pt2-y pt1-y)))))
- (setq ptn1 (list ptn-x1 ptn-y1))
- (setq ptn2 (list ptn-x2 ptn-y2))
- (princ ptn1)
- (princ "\n")
- (princ ptn2)
- (princ "\n")
- (command ".plot" "w" ptn1 ptn2 "")
- (setq n-h (1+ n-h))
- )
- (setq n-v (1+ n-v))
- )
- (command ".undo" "end")
- )
|