微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题AutoCAD图形打印技巧
栏目OA专刊
作者张文明
发布1999年第42期38版
  众多使用过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;;;