明细栏设计说明书.doc_第1页
明细栏设计说明书.doc_第2页
明细栏设计说明书.doc_第3页
明细栏设计说明书.doc_第4页
明细栏设计说明书.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机绘图课程作业姓 名:景琦班 级:机0601-4学 号:20060627完成日期:2008-6-11一、设计任务及要求编写函数,完成工程图中明细栏的自动生成,并可对其通过数据读入方式进行自动填充。二、设计分析1、目标、功能函数能根据用户输入的零件数量在指定位置自动生成符合国标规定的明细栏,并通过从数据文件中读入数据的方式填写明细栏。函数能够根据用户的要求确定将明细栏完全绘制在标题栏上方或将部分内容绘制在标题栏的左侧,并对出界进行判断。2、解决问题的思路、方法等内容自动生成符合国标规定的明细栏,利用循环画线,利用图层设置粗、细线,参考书上绘制表格例题编写程序。通过IF语句判断输入的零件是否出界初始化三、系统结构画图框函数画明细拦并填充四、详细设计4.1函数功能分析:1、 初始化设计(defun c:setup() (setq oldrgn (getvar regenmode) oldcmd(getvarcmdecho) oldblp(getvarblipmode) oldmk(getvarlimcheck) oldpck(getvarpickbox) olderr *error* ) (setvarregenmode1) (setvarcmdecho0) (setvarblipmode0) (setvarlimcheck0) (setvarpickbox0) (commandunits2 4 1 0 0 n) (commandlstcale10) (commandlimits (0 0) (297 210)zoom a) (commandlayer n xsx c green xsx n lay0 c red lay0 n lay3 c blue lay3 n xx c yellow xx l dashed xx n dhx c cyan dhx l center dhx n csx s xsx ) (command style hz gbeitc,gbcbig 0.7 ) )2、 画图框(commandpline(275 5)(275 37)(415 37) (commandlayer s xsx ) (commandline(275 13)(335 13) line(275 21)(415 21) line(335 29)(385 29) line(290 5)(290 21) line(315 5)(315 21) line(335 5)(335 37) line(350 21)(350 37) line(365 21)(365 37) line (385 21) (385 37) ) (commandtextjmc(282.5 17)5 0制图 textjmc(282.5 9)5 0 校核 textjmc(342.5 33)5 0比例 textjmc(342.5 25)5 0重量 textjmc(375 33)5 0共 张 textjmc(375 25)5 0第 张 )3、 读取数据文件,自动填写 如果右输入的零件大于31或左边大于35则显示零件数目过多出界如图:如过符合要求则读入数据:4.2函数输入:函数名、零件数、右边零件数函数输出:标题栏、填写好的明细栏以及图纸。4.3数学(几何)模型图框左下角点为零点,根据国家的规定,算出标题栏以及明细栏其它点,画标题栏,明细栏。根据用户输入的零件总数和右边零件数,自动分配明细拦,并填充。4.4流程图输入函数名称“MXK”输入总零件数目和右边零件数。结果读入数据文件。4.5函数源代码;程序1:初始化绘图环境函数SETUP,设置绘图单位制、线型比例、图幅大小、建立绘图所图谶、线型;和颜色、设置字样,保存系统环境变量。(defun c:setup() (setq oldrgn (getvar regenmode) oldcmd(getvarcmdecho) oldblp(getvarblipmode) oldmk(getvarlimcheck) oldpck(getvarpickbox) olderr *error* ) (setvarregenmode1) (setvarcmdecho0) (setvarblipmode0) (setvarlimcheck0) (setvarpickbox0) (commandunits2 4 1 0 0 n) (commandlstcale10) (commandlimits (0 0) (297 210)zoom a) (commandlayer n xsx c green xsx n lay0 c red lay0 n lay3 c blue lay3 n xx c yellow xx l dashed xx n dhx c cyan dhx l center dhx n csx s xsx ) (command style hz gbeitc,gbcbig 0.7 ) );程序2:绘制图框、标题栏函数HTK。(defun c:htk() (commanderase w 0,0(getvarextmax) (commandlayer s xsx ) (commandpline(0 0)(420 0) (420 297)(0 297)c) (commandlayer s csx ) ;以下绘制图框线 (commandpline(25 5)(415 5)(415 292)(25 292)c) ;以下绘制对中符号 (commandline(0 148.5)(30 148.5) (commandline(410 148.5)(420 148.5) (commandline(210 0)(210 5) (commandline(210 287)(210 297) ;以下绘制标题栏 (commandpline(275 5)(275 37)(415 37) (commandlayer s xsx ) (commandline(275 13)(335 13) line(275 21)(415 21) line(335 29)(385 29) line(290 5)(290 21) line(315 5)(315 21) line(335 5)(335 37) line(350 21)(350 37) line(365 21)(365 37) line (385 21) (385 37) ) (commandtextjmc(282.5 17)5 0制图 textjmc(282.5 9)5 0 校核 textjmc(342.5 33)5 0比例 textjmc(342.5 25)5 0重量 textjmc(375 33)5 0共 张 textjmc(375 25)5 0第 张 ) ;画明细栏并填写数据 (setq hs (GETINT n 零件个数:) (setq z (getint n右边零件个数:) (if (/= hs 0)(progn (if (or ( z 31) ( (- hs z) 35) (command text j mc ( 210 148.5) 50 0 零件数目过多出界 );command (progn (setq filename (findfile 零件.txt) (setq f (open filename r) (commandtextjmc(282.5 41)5 0序号 textjmc(312.5 41)5 0名称 textjmc(342.5 41)5 0数量 textjmc(367.5 41)5 0材料 textjmc(400 41)5 0备注) (if ( hs z)(progn (command layer s csx ) (command pline (list 275 37) (list 275 (+(* 8 hs) 45) ) (command layer s xsx ) (command line (list 290 37) (list 290 (+(* 8 hs) 45) ) (command line (list 365 37) (list 365 (+ (* 8 hs) 45) ) (command line (list 385 37) (list 385 (+ (* 8 hs) 45) ) (setq i 0) (repeat (+ hs 1) (command line (list 275 (+ (* 8 i) 45) (list 415 (+ (* 8 i) 45) ) (setq i (+ 1 i) );repeat (setq i 0) (repeat hs (setq ff (read (read-line f) (setq l1 (car ff) l2 (cadr ff) l3 (caddr ff) l4 (last ff) ) (command text j mc (list 282.5 (+ 45 (+ 4 (* i 8) 5 0 l1 ) (command text j mc (list 327.5 (+ 45 (+ 4 (* i 8) 5 0 l2 ) (command text j mc (list 375 (+ 45(+ 4 (* i 8) 5 0 l3 ) (command text j mc (list 400 (+ 45 (+ 4 (* i 8) 5 0 l4 ) (setq i (1+ i) );repeat);progn(progn (command layer s csx ) (command pline (list 275 37) (list 275 (+ (* 8 (+ 1 z) 37) ) (command pline (list 275 (+ (* 8 (- hs z) 5) (list 275 (+ (* 8 (+ 1 z) 37) ) (command layer s xsx ) (command line (list 290 37) (list 290 (+ (* 8 Z) 45) ) (command line (list 365 37) (list 365 (+ (* 8 Z) 45) ) (command line (list 385 37) (list 385 (+ (* 8 Z) 45) ) (setq i 0) (repeat (1+ z) (command line (list 275 (+ (* 8 i) 45) (list 415 (+ (* 8 i) 45) ) (setq i (+ 1 i) ) (command layer s csx ) (command pline (list 135 5) (list 135 (+ (* 8 (- hs z) 5) ) (command layer s xsx ) (command line (list 245 5) (list 245 (+ (* 8 (- hs z) 5) ) (command line (list 225 5) (list 225 (+ (* 8 (- hs z) 5) ) (command line (list 150 5) (list 150 (+ (* 8 (- hs z) 5) ) (setq i 1) (repeat (- hs z) (command _.line (list 275 (+ 5 (* 8 i) (list 135 (+ 5 (* 8 i) ) (setq i (+ i 1) ) (setq i 0) (repeat Z (setq ff (read (read-line f) (setq l1 (car ff) l2 (cadr ff) l3 (caddr ff) l4 (last ff) ) (command text j mc (list 282.5 (+ 45(+ 4 (* i 8) 5 0 l1 ) (command text j mc (list 327.5 (+ 45 (+ 4 (* i 8) 5 0 l2 ) (command text j mc (list 375 (+ 45 (+ 4 (* i 8) 5 0 l3 ) (command text j mc (list 400 (+ 45 (+ 4 (* i 8) 5 0 l4 ) (setq i (1+ i) ) (setq i 0) (repeat (- hs z) (setq ff (read (read-line f) (setq l1 (car ff) l2 (cadr ff) l3 (caddr ff) l4 (last ff) ) (command text j mc (list 142.5 (+ 5 (+ 4 (* i 8) 5 0 l1 ) (command text j mc (list 187.5(+ 5 (+ 4 (* i 8) 5 0 l2 )

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论