AutoCAD图形打印技巧
众多使用过AutoCAD的朋友都知道,AutoCAD2000的打印功能较以前的版本已大有提高。如果您想打印出一幅图(譬如A3幅),但是您的打印机只能打印A4幅,这时您只有用打印功能里的窗选功能手工选择打印。为了以后图形的拼接方便,您还得手工给出窗选点的坐标,实在烦琐。笔者用Visual Lisp编了个小程序,能够实现从A3图幅到A4图幅的自动打印,稍加改动能够实现A1图幅到A3图幅的打印等,限于篇幅,这里不在详细介绍。原程序如下:
(Defun c:a34();;;打印主程序
(Command ″layer″ ″on″ ″*″ ″″)
(initpt)
(Command ″Plot″ ″w″ (ret1 pt 1 0) (ret2 pt 2 1) ″n″)
(Command ″Plot″ ″w″ (ret1 pt 0 0) (ret2 pt 1 1) ″n″)
(Command ″qsave″ ″y″)
)
;;;-----------;;;
(Defun initpt()
(SetQ ptmax (Getvar ″extmax″)
a1 (Car ptmax)
a2 (Cadr ptmax)
ptmin (Getvar ″extmin″)
b1 (Car ptmin)
b2 (Cadr ptmin)
s3 0
lengthx (- a1 b1)
lengthy (- a2 b2)
factor (/ 2850 1980)
unitx (/ lengthx 2)
unity (* unitx factor)
)
(If (<; (/ lengthx 2) (* lengthy factor))
(Progn (SetQ unity (/ lengthy 2)
unitx (/ unity factor)
)
)
)对瘦长的图形进行长宽对调
);;;确定图形的范围并对瘦长的图形进行“处理”;;;
;;;------------;;;
(Defun ret1 (Pt numx numy)
(SetQ s1 (* unitx numx)
s1 (+ s1 b1)
s2 (* unity numy)
s2 (+ s2 b2)
s3 0
pt (List s1 s2 s3)
)
);;;求窗选点1
;;;------------;;;
(Defun ret2 (Pt numx numy)
(SetQ s1 (* unitx numx)
s2 (* unity numy)
s1 (+ b1 (* s1 101))
s2 (* s2 101)
s3 0
pt (List s1 s2 s3)
)
);;;求窗选点2;;;