VisualLisp 主程序结构分析_第1页
VisualLisp 主程序结构分析_第2页
VisualLisp 主程序结构分析_第3页
VisualLisp 主程序结构分析_第4页
VisualLisp 主程序结构分析_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、Visual Lisp 主程序结构分析华南理工大学化学与化工学院2016年LGFANGSCUT.EDU.CN方利国开发的图形对话框对话框程序jxfl:dialog /创建新窗体,代号为jxfl label=甲型法兰; /窗体名称:row /全局横向排列 :boxed_column /框中列,既纵向边框为全局大行中的第一列 label=法兰参数; /边框名称 :edit_box /编辑框,以下所有的编辑框为全局大行中的第一列中的框中列元素 label=法兰直径DN:; /编辑框名称 key=dn; /编辑框key值 edit_limit=15; /字符数限定 edit_width=10; /编辑

2、框宽度 value=1000; /缺省值 :edit_box label=D3:; key=db; edit_limit=15; edit_width=10; value=1055; :edit_box label=螺孔心距D1:; key=da; edit_limit=15; edit_width=10; value=1090; :edit_box label=法兰两端距离D:; key=ddd; edit_limit=15; edit_width=10; value=1130; :edit_box label=法兰厚度b:; key=bbb; edit_limit=15; edit_wid

3、th=10; value=48; :edit_box label=螺孔直径DL:; key=dl; edit_limit=15; edit_width=10; value=23;:edit_box label=h:; key=hhh; edit_limit=15; edit_width=10; value=13;:edit_box label=h1:; key=ha; edit_limit=15; edit_width=10; value=3;:edit_box label=凸台高度h2:; key=hb; edit_limit=15; edit_width=10; value=3;:edit

4、_box label=倒角1:; key=ja; edit_limit=15; edit_width=10; value=45;:edit_box label=倒角2:; key=jb; edit_limit=15; edit_width=10; value=60;:edit_box label=倒角3:; key=jc; edit_limit=15; edit_width=10; value=30; :column /纵向排列,为全局大行中的第二列 :boxed_column /框中列,为全局大行第二列中的第一个元素 label=绘制法兰位置(左下角点); :edit_box /为框中列中的

5、各元素。 label=横坐标:; key=xxx; edit_limit=15; edit_width=10; value=100; :edit_box label=纵坐标:; key=yyy; edit_limit=15; edit_width=10; value=100; :boxed_column 框中列,为全局大行第二列中的第二个元素 label=各参数位置示意图; :image key=jxfl_image; aspect_ratio=0.75; width=50; color=-2;ok_only; /确定按钮主程序的组成1、全局调用程序2、窗体处理子程序3、数据读入子程序、数据读

6、入子程序4、图形绘制子程序1、全局调用程序源程序:(defun c:jxflhz();定义命令 (setq dcl_id(load_dialog jxfl.dcl);加载窗体 (if ( dcl_id 0) (exit) ) (if (not (new_dialog jxfl dcl_id) (exit) (image1 “jxfl_image” “jxflsl”);定义图形函数,“jxfl_image”在dcl文件中 (action_tile accept (data_set) (start_dialog) (unload_dialog dcl_id) (draw_jxfl);执行绘图程序)

7、全局程序解释(defun c:jxflhz();定义全局程序名称为jxflhz /以下语句用于窗体调用和程序处理(setq dcl_id(load_dialog jxfl.dcl) /其中load_dialog表示加载窗体,jxfl.dcl为窗体文件,获取加载窗体文件的句柄,用于下面的判断。 (if ( dcl_id 0) (exit) ) (if (not (new_dialog jxfl dcl_id) (exit) /以上两句为判断窗体文件是否存在,若不存在即退出。 (image1 jxfl_image jxflsl) /定义图形函数,其中jxfl_image为前面图象控件中的Key值,

8、jxflsl为幻灯片名称,在程序调用中用到,并已在相同目录下存盘。 (action_tile accept (data_set)/当按下确定键时,执行数据处理子程序data_set,将该子程序直接添加到本主程序后面,减少调用麻烦。 (start_dialog) /加载窗体,对话框中开始输入数据 (unload_dialog dcl_id) /卸载窗体 (draw_jxfl) /执行绘图子程序,将前面调通的子程序直接添加到本主程序后面)2、窗体处理子程序/以下语句是对图像框的处理子程序(defun image1(key image_name / x x);/加载图形,其中key为前面图象控件中的

9、Key值,所调用的image_name为前面幻灯片名称,这里是形参,无需具体名称。 (start_image key) /开始图像 (setq x (dimx_tile key) /获取图形控件宽度 y (dimy_tile key) /获取图形控件长度 ) (fill_image 0 0 x y 250) /图向从(0,0)点开始,到(x,y)结束,以250号颜色即黑色为背景填充图形控件 (slide_image 0 0 x y image_name) /加载图形,为完全布满 (end_image) /结束图象 )添加数据处理及绘图子程序和前面主程序合并成一个程序文件,取名为jxflhz.l

10、sp保存在以下目录: AutoCAD 2008Support3、数据读入子程序、数据读入子程序(defun data_set() /数据从窗体传入和处理,程序取名为data_set(setq dn (atof (get_tile dn) /从窗体获取数据实现交互,其中get_tile为获取窗体中 (setq db (atof (get_tile db) /控件关键字Key为dn当前值,atof是将字符串转化为 (setq da (atof (get_tile da) /数值的函数,通过setq将数值赋值给dn,其它语句道 (setq d (atof (get_tile ddd) /理相同/ (

11、setq b (atof (get_tile bbb) (setq dl (atof (get_tile dl) (setq h (atof (get_tile hhh) (setq ha (atof (get_tile ha) (setq hb (atof (get_tile hb) (setq ja (atof (get_tile ja) (setq jb (atof (get_tile jb) (setq jc (atof (get_tile jc) (setq x (atof (get_tile xxx) (setq y (atof (get_tile yyy) (setq fa (*

12、 pi (/ ja 180) /角度和弧度的转换 (setq fb (* pi (/ jb 180) (setq fc (* pi (/ jc 180)标注点坐标设置(setq bz1 (list (- x 10) y);定义点为标注尺寸用 (setq bz2 (list (+ x (/ (- d dn) 2) 10) (+ y h) (setq bz3 (list (+ x (/ (- d da) 2) da) (+ y (- b hb) 20) (setq bz4 (list (+ x (/ (- d db) 2) db) (+ y b) (setq bz5 (list (+ x (/ (

13、- d dn) 2) dn) (+ y b) (setq bz6 (list (+ x d) (- (+ y b) hb)标注图绘制点赋值(setq p1 (list x y);定义关键点为作图用 (setq p2 (list (+ x (/ (- d da dl) 2) y) (setq p3 (list (+ x (/ (+ (- d da) dl) 2) y) (setq p4 (list (+ x (- (/ (- d dn) 2) (* ha (+ (/ (sin fb) (cos fb) (/ (cos fc) (sin fc) y) (setq p5 (list (+ x (-

14、(/ (- d dn) 2) (* ha (/ (cos fc) (sin fc) (+ y ha) (setq p6 (list (+ x (- (/ (- d dn) 2) (* ha (/ (cos fc) (sin fc) (+ y h) (setq p7 (list (+ x (/ (- d dn) 2) (+ y h ha) (setq p8 (list (+ x (/ (- d dn) 2) (+ y b) (setq p9 (list (+ x (/ (- d db) 2) (+ y b) (setq p10 (list (+ x (/ (+ (- d da) dl) 2) (

15、- (+ y b) hb) (setq p11 (list (+ x (/ (- d da dl) 2) (- (+ y b) hb) (setq p12 (list x (- (+ y b) hb) (setq p13 (list (+ x (/ d 2) (+ y b) (setq p14 (list (+ x (/ d 2) (+ y h ha) (setq p15 (list (+ x (/ d 2) (+ y h) (setq p16 (list (+ x (/ d 2) (+ y ha) (setq p17 (list (+ x (/ d 2) y) (setq p18 (list

16、 (+ x (/ (- d da) 2) (- y 20) (setq p19 (list (+ x (/ (- d da) 2) (+ y (- b hb) 20) (setq p20 (list (+ x (/ d 2) (+ y b 20) (setq p21 (list (+ x (/ d 2) (- y 20)图形绘制子程序(defun draw_jxfl(); /法兰绘制程序, 取程序名为draw_jxfl,读者可自己选定 (command layer n jxfl c 1 jxfl lw 0.5 jxfl s jxfl ); /新建图层画法兰, “n”为新建图层,“jxfl”为新

17、建图层名;“c”为设置图层颜色,“1”表示图层颜色为“1”号色;“lw”为设置图层线宽,“0.5”表示线宽为0.5,“s”,表示设置为当前图层,图层名为“jxfl”,以下所具有该图层性质,直至有新图层设置为止。以后碰到类似情况不在解释. (command pline p1 p2 p11 p12 p1 ); /绘制左边矩形 (command mirror (entlast) p20 p21 ) / 通过镜像生成右边矩形 (command layer n tc c 7 tc lw 0.15 tc s tc ); /新建填充图层 (command layer m tc ); (command hat

18、ch ansi31 0 all ) /填充左右两个矩形 (command layer m jxfl ); (command pline p3 p4 p5 p6 p7 p8 p9 p10 p3 ) /绘制由命令中各点所构成的图形(command mirror (entlast) p20 p21 )/ 通过镜像在右边生成刚才所谓的图形 (command layer n tc c 7 tc lw 0.15 tc s tc );新建填充图层 (command layer m tc );(2) (command hatch ansi31 0 all ) /填充最后所绘的所有图形 (setq ss (ss

19、add) / 设置ss为空实体集 (command layer m jxfl );(1) (command line p11 p10 )(ssadd (entlast) ss) /将刚所绘内容加入ss (command line p2 p3 )(ssadd (entlast) ss) /将刚所绘内容加入ss (command line p8 p13 )(ssadd (entlast) ss) (command line p7 p14 )(ssadd (entlast) ss) (command line p6 p15 )(ssadd (entlast) ss) (command line p5 p16 )(ssadd (entlast) ss) (command line p4 p17 )(ssadd (entlast) ss) (command layer n zz c 6 zz l ACAD_ISO04w100 zz

温馨提示

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

评论

0/150

提交评论