第4章 autocad菜单开发和数据交换技术演示文稿
第4章 AutoCAD菜单开发和数据交换技术,4.1 AutoCAD菜单类型4.1.1 菜单类型1. 屏幕菜单2. 下拉菜单3. 光标菜单4. 图标菜单在屏幕上每次最多显示20个图标。5. 图形输入板菜单不常用6. 按钮菜单不常用,屏幕菜单和下拉菜单,屏幕菜单和光标菜单,图标菜单,4.1.2 菜单文件类型,通过MENU命令可以装入标准菜单或用户菜单。使用格式为 CommandMENU,4.2 菜单文件结构4.2.1菜单文件的总体结构 菜单文件是树型的逻辑结构,第一层为菜单段,菜单段以下为子菜单,子菜单以下还可以设置子菜单或菜单项,菜单项作为树的终端结点即树叶,如图所示。,4.2.2 菜单段每个菜单段有一个固定的标题,“***”是段标题的标记,从菜单段标题开始到下一个段标题或文件结束是这个段的内容。,,,4.2.3 子菜单当菜单包含菜单项的数目超过外部设备所规定的最大项数时,多出的菜单项将不能被调用,在这种情况下应设置子菜单。 1子菜单标题 子菜单标题都以“**”为标记,名字可由用户定义。 子菜单以下可以设子菜单或菜单项。 菜单段标题后的第一行为该段的根菜单。 2子菜单的引用表述式SectionSubmenu实现引用子菜单的功能。 S屏幕菜单段; P0光标菜单; P1-P16下拉菜单116段; I图标菜单段; Submenu是待激活的子菜单名,该子菜单名必须在已加载的菜单文件中。如果该项是缺省的话,将返回上一个子菜单。,4.2.4 菜单项菜单项是菜单树的树叶,它记录该菜单待执行的具体内容,如执行命令、调用函数、输入数据等等。(1)菜单项语法 1空格“ ”空格的作用相当于回车。 2分号“;”也相当于回车,但比空格可读性好,而且可以结束文本或尺寸文本的内容。 3加号“”用于续行,每个菜单项占一行,一行写不下,在该行尾放一个加号“”,其余可写到下一行。 4反斜杠“”反斜杠的作用是等待用户输入。,5字符“”相当于“Ctrl”键,它不单独使用,与其后的一个字符组合,构成特定的含义。其中 BSNAP捕捉命令的ON/OFF开关; C终止正在进行的命令; D显示光标位置的方式切换; E等轴测平面方式切换; GGRID网络的ON/OFF开关; H退格作用,倒退一个字符; I相当于按Tab制表键; M执行回车键; OORTHO正交方式的ON/OFF开关; P控制命令提示区是否显示来自菜单项的输入; Q在图形编辑状态下,联机打印的ON/OFF开关; T图形输入板数字化仪的ON/OFF开关; V激活下一个视窗。6星号“*”如果菜单项的工作是以“*CC”开头时,当该菜单项被拾取后,自动重复地用该菜单项的的命令以及选择项响应“Command”提示,直至用CtrlC结束。,2菜单项标题菜单项标题只对菜单项的作用进行注释,没有实际操作内容。菜单项标题放在方括号“ ”内,方括号之后是该菜单的工作内容。菜单项可以没有标题。,4.2.5菜单的开发方法(1)添加式;(2)创建式。,4.3下拉菜单设计,4.3.1下拉菜单的设计特点 1段标题固定为***POPn,n为116的整数。 2菜单栏标题由所有下拉菜单的第一项组成。 3下拉菜单的宽度为该段中字符数最多的菜单项宽度,高度为菜单项数。 4 在两菜单项之间显示一条分隔线。 5在菜单项右边将显示一条箭头,说明它含有子菜单,把鼠标移到该菜单项,下一级子菜单就会显示出来。 6说明该级菜单的最后一项。 7在菜单项右边显示“”,说明它将显示对话框。,***POP7**DRAWID_MnDraw 绘图ID_MnCircle -圆QDSJ.; -结构选取及零件图绘制 -圆柱齿轮 大齿轮ccIyzcl1 I* -小齿轮ccloadztclbzm.lspztclbzm --圆锥齿轮ccIyzcl I*轴的设计cczhou --帮助ccbz,***POP12 标准件 轴承 CCIZC I* 螺纹联接件 螺钉螺栓CCIldls I* 螺母 CCLUOM 垫圈CCDIQ 档圈CCDAQ 键CCJIAN 花键CCHJIAN 销CCXIAO 帮助CCSHELP,练习,4.4 图标菜单设计4.4.1 图标菜单的设计特点 1图标菜单段标题固定为***IMAGE。 2子菜单标题之下的第一项为图标菜单的标题。 3图标菜单只能通过屏幕菜单或下拉菜单调用。 在屏幕或下拉菜单段中的某个菜单项上,包含I*的作用是显示当前图标菜单。,4.4.2 图标菜单的设计,为增加图4-7所示图标菜单,对标准菜单文件ACAD.MNU的图标菜单区加入螺钉螺栓图标子菜单,方括号右边的内容为待执行命令或函数。,***IMAGE **ldls 常用螺钉螺栓 ld1,六角头螺栓细杆B级CCLD1 ld2,六角头螺栓C级CCLD2 ld3,六角头螺栓全螺纹C级CCLD3 ld4,六角头螺栓AB级CCLD4 ld5,六角头螺栓全螺纹AB级CCLD5 ld6,六角头螺杆带孔螺栓C级CCLD6 ld7,六角头头部带孔螺栓C级CCLD7 ld8,六角头螺杆带孔细牙螺栓AB级CCLD8 ld9,六角头头部带孔细牙螺栓AB级CCLD9 ld10,活节螺栓C级CCLD10 ld11,地脚螺栓CCLD11 ld12,等长双头螺柱B级CCLD12 ld13,开槽圆柱头螺钉CCLD13 ld14,开槽沉头螺钉CCLD14 ld15,十字槽盘头螺钉CCLD15 ld16,十字槽沉头螺钉CCLD16 ld17,内六角圆柱头螺钉CCLD17 ld18,开槽锥端紧定螺钉CCLD18 ld19,开槽长圆柱端紧定螺钉CCLD19 ld20,方头短圆柱锥端紧定螺钉CCLD20 ld21,方头长圆柱端紧定螺钉CCLD21,4.4.3 图标调用格式与制作1.图标调用格式 图标菜单中的图标是通过幻灯片来实现的,每一个图标实际对应一个幻灯片文件。在图标子菜单定义中,可以选用以下四种格式 1幻灯片文件名执行内容 2幻灯片文件名,幻灯片标号执行内容 3幻灯片库名幻灯片文件名执行内容 4幻灯片库名幻灯片文件名,幻灯片标号执行内容 如果标题部分有幻灯片标号,列表框中列出幻灯片标号,否则列出幻灯片文件名。2.制作图标菜单幻灯片 按照国家标准用简化画法绘出5种螺钉和螺栓图样,然后分别对每个图样用ZOOM命令尽可能放大到全屏幕,使用“mslide”命令制成幻灯片,名为ld1.sld、ld12.sld、ld13.sld、ld14.sld、ld17.sld,存入support子目录下。,3.建立幻灯片库 先将已存盘的幻灯片名(含扩展名.sld)按顺序编辑成列表文件ld1.lst,文件格式为 ld1.sld ld12.sld ld13.sld ld14.sld ld17.sld 在DOS状态下使用AutoCAD 2007目录下的可执行文件slidelib.建立幻灯片库。命令格式为 DProgram FilesAutoCAD 2007slidelib ld1.slbld1.txt确认幻灯片库已建成,可删除幻灯片文件(或在实验结束后删除)。,4.建立图标子菜单 在AutoCAD菜单文件acad 1.mnu图标菜单区***IMAGE插入如下内容 ***IMAGE **Ldls1 螺栓绘制 ld1,六角头螺栓 CCLD1 ld12,等长双头螺柱 CCLD12 ld13,开槽圆柱头螺钉 CCLD13 ld14,开槽沉头螺钉 CCLD14 ld17,内六角圆柱头螺钉 CCLD17然后存盘,退出编辑状态。,以上过程结束后,在AutoCAD编辑状态,使用Commandmenu命令调入Support子目录中的acad 1.mnu文件,这时下拉菜单区将增加一个“标准件”菜单项。用鼠标激活此菜单项并选子菜单“螺钉螺栓”,在屏幕图形区会出现图标,拾取其中的一项,就会执行图标菜单中对应项的命令,调用绘制螺栓的AutoLISP函数,给定螺栓直径和长度后,绘出一个螺栓的零件图。,4.5菜单的编译 用文本编辑程序可以直接建立“.MNU”类型的菜单文件。AutoCAD还提供了菜单编译程序MC.,它的作用是将含有宏定义的类型为“.MND”的菜单文件编译成“.MNU”类型的菜单源文件。MC.文件在AutoCAD的SAMPLE目录下。利用宏可以简化菜单源文件的文本编辑工作。,4.6 CAD数据交换 一个功能完善的CAD系统可能包括很多独立的模块,如设计计算、图形处理、数据管理、校核计算、有限元分析、设计优化、数控代码输出等。一些现成的软件系统往往只是针对某一类问题而设计的,如图形软件(AutoCAD等)有很强的图形生成和编辑能力,有限元分析系统(如 ANSYS等)擅长有限元分析计算,数据库管理系统适合于建立和管理数据库,我们可以利用这些现成的资源,作为二次开发的某些功能模块,使这些不同的系统间的数据相互交换,是实现大CAD系统或CADCAM集成的基础性课题之一。,4.6.1数据交换的作用 1.CAD与其它应用程序的数据交换 当用AutoCAD画好一张图,要用程序对这张图所表达的物体进行一些计算,这就需要从这张图上提取某些几何实体的数据,如果没有图形交换文件,就要按图示的工作步骤来进行。反之,如果需要先用某些应用程序计算出物体有关形状结构和大小的一些数据,然后再根据这些数据用AutoCAD系统画出这个物体的图形。因此,如果没有图形交换文件,只能按图示的工作步骤来进行这项工作。,,在上面两种情况下,由于数据是显示在屏幕或打印在纸上的,所以只能由人工来完成从清单上读数据、从键盘上输入数据的工作。这样的工作是繁重的,并且它的可靠性和效率都是不高的。利用图形交换文件很好的解决了这一问题,如图所示。它不仅使得操作简便,同时也提高了数据的可靠性和工作效率。,图形交换文件的类型主要有以下几种(1) DXF类型 DXF类型的图形交换文件是具有专门格式的ASCII码文本文件,它比较好读,易于被其它程序处理,主要用于实现高级语言编写的程序与AutoCAD系统连接,或其它CAD系统与AutoCAD交换图形文件。(2)DXB类型 DXB类型的图形交换文件是具有专门格式的二进制文件,它具有比DXF文件更紧凑的格式,它不像DXF文件那样容易被其它程序处理,主要面向具有CAD软件包的用户,用某些程序通过外部功能执行。,2.不同CAD系统之间的数据交换 随着CAD应用日益广泛,人们在不断完善各种单元技术的同时,又提出了计算机集成制造(CIM)的要求,而实现CIM系统的先决条件就是要在下述几个方面能够进行产品数据的交换不同的产品设计部门之间;设计、生产准备和制造部门之间;与各合同承制厂之间;不同时期研制的产品之间;不同的CAD系统之间;CAD,CAPP,CAM等系统之间。,目前市场上流行的CAD/CAM系统不仅用途和性能各异,而且其内部产品模型的数据结构和格式也不同。因此需要数据交换,数据交换方法目前有两种,如图所示。点对点交换 各系统之间通过专用数据处理程序直接交换,N个系统N(N-1)个处理程序。星式交换 各个系统借助一个标准数据交换格式进行间接交换,N个系统需要2N个处理程序。,4.6.2 DXF文件结构 DXF文件是一个具有专门格式的ASCII码文本文件。可以用文本编辑命令对其进行修改。1.文件的总体结构一个完整的DXF文件是由四个段(SECTION)和一个文件结尾组成的。其顺序如下标题(HEADER)段;表(TABLES)段;块(BLOCKS)段;实体(ENTITIES)段;文件结束(EOF)。,2.组代码和组值 DXF文件由若干个组构成。每个组有两行。第一行为组代码,第二行为组值。组代码相当于数据类型代码,每个组代码的含义已由AutoCAD系统约定。组值相当于数据值。组代码和组值合起来表示一个数据的含义和它的值。,1 组代码和组值的类型 组代码是一个非负、不超过三位的整数。组值的类型由组代码来决定,见下表。,表 组值的类型,2 组代码的含义每个组代码都有一定的含义。有些组代码的含义是固定的;有些组代码因应用的场合不同而有多个含义。分别说明如下0标识一个说明的开始。例如一个段、一个表、一个块、一个图层、一个实体等;1字符型数据的值。例如TEXT的字符串、文件名、属性值等;2一个类型的名字。例如段、表、块、线型、视图等的名字;35字符型数据的值。例如文件名、关于线型的说明部分、属性提示等;6线型名(固定的);7字样名(固定的);8图层名(固定的);9标题变量名(固定的); 1018X坐标值; 2028Y坐标值; 3037Z坐标值; 38基面高; 39实体的厚度;,4048高度、宽度、半径、距离、比例因子等;49重复性的值,如定义线型时的笔划长;5058角度值;62颜色号(固定的);66实体跟随标记,用于多义线(PLINE)或带有属性的插入体(INSERT);67用于模型空间还是图纸空间;70标题变量的状态,表的数量和标记等;71定义字样时对称方式及统计数量;72文本或线型的对齐方式及统计数量;73统计数量;210X方向分量;220Y方向分量;230Z方向分量;999注释行。,3.标题(HEADER)段1 标题段的作用 标题段记录了AutoCAD系统的所有标题变量的当前值或当前状态。这些标题变量记录了AutoCAD 系统的当前工作环境。例如,AutoCAD的版本号、插入基点、绘图界限的左下角、右上角、SNAP扑捉的当前状态、栅格间距、式样、当前图层名、当前线型、当前颜色等。,2 标题段的格式 标题段的前四行如下 0 SECTION 2 HEADER 这四行分成两个组。第一个组表达的内容是段的开始。第二个组表达的内容是HEADER(标题)。,接着依次描述了所有的标题变量。描述每一个标题变量的格式是用组代码9标识这个标题变量名,后面跟有一个或几个组用来描述这个标题变量的当前值或当前状态。例如,(3)每个标题变量的含义和它所要求的组代码及组值的含义ACADVER 1 AutoCAD版本号ANGBASE 50 ( 角度0的方向)ANGDIR 70 (0逆时针方向,1顺时针方向)ATTMODE 70 (属性的可见性0不可见,1标准的,2全部的)PDSIZE 40 (点的显示大小)PLINEWID 40 (当前的折线宽度)SNAPMODE 70 (SNAP扑捉的状态,非零时为开)SNAPSTYLE 70 (SNAP扑捉的式样,0standard,1isometric等轴的)SNAPUNIT 10 和20(SNAP扑捉的X轴方向和Y轴方向的栅格间距)TDCREATE 40 (建立图形文件的时间)TDINDWG 40 (该作业的累计时间)TDUPDATE 40 (上一次更新这个图形文件的时间)TDUSRTIMER 40 (用户所用的时间)TEXTSIZE 40 (当前文字高度)TEXTSTYLE 7 (当前字样名)TRACEWID 40 (当前的加宽线宽度)VIEWCTR 10 和20 (当前屏幕的视图中心)VIEWDIR 10,20和 30 (用VPOINT命令设置的当前视点)VIEWSIZE 40 (当前屏幕的视图高度)......,4. 表(TABLES)段(1)表段的作用 表段包含了七种表,每个表又包含可变数目的表项,按照这些表在文件中出现的顺序分别是视窗(VPORT)表、线型(LTYPE)表、图层(LAYER)表、字样(STYLE)表、视图(VIEW)表、用户坐标系(UCS)表、应用程序标识(APPID)表和尺寸标注式样(DIMSTYLE)表。这些表记录了当前图形编辑的支撑环境。(2)表段的格式,5. 块(BLOCKS)段 (1)块段的作用 块段记录了定义每一个块时的块名、当前图层名、块的种类、块的插入基点及组成该块的所有成员。块的种类分为图形块、带有属性的块和无名块三种。无名块包括用HATCH命令生成的剖面线和用DIM命令完成的尺寸标注。 (2)块段的格式,,,6实体(ENTITIES)段(1)实体段的作用实体段记录了每个几何实体的名称、所在图层的名称、线型名、颜色号、基面高度、厚度以及有关的几何数据。,2实体段的格式 0SECTION 2ENTITIES(实体段开始) 0(开始的实体)(实体名,例如LINE,CIRCLE等) 8(图层名)(例如AB) 6(线型名)(例如DASHED,为BYLAYER时无此组。) 62(颜色号)(例如3,为BYLAYER时无此组。) 38(基面高). (为0时无此组) 39(厚度).(为0时无此组)(以下是该实体的几何数据) 0(又一个实体开始) 0ENDSEC (实体段结束),4.6.3 DXF文件应用实例1DXF文件实例,图4-13的DXF文件如下...... 0SECTION 2ENTITIES (实体段开始) 0LINE (切线1) 8 (图层名) 0 (0层) 10 (起点的X坐标)7.873236 20 (起点的Y坐标)2.782406 30 (起点的Z坐标)0.0 11 (终点的X坐标)3.104196 21 (终点的Y坐标)3.486028 31 (终点的Z坐标)0.0,0 LINE (切线2) 8 (图层名) 0 (0层) 10 (起点的X坐标) 3.104196 20 (起点的Y坐标) 5.492233 30 (起点的Z坐标) 0.0 11 (终点的X坐标) 7.873236 21 (终点的Y坐标) 6.195854 31 (终点的Z坐标) 0.0,0 LINE (中心线1) 8 (图层名) 1 (1层) 10 (起点的X坐标) 1.729427 20 (起点的Y坐标) 4.48913 30 (起点的Z坐标) 0.0 11 (终点的X坐标) 10.365687 21 (终点的Y坐标) 4.48013 31 (终点的Z坐标) 0.0,0LINE (中心线2) 0ARC (圆弧1) 8 (图层名)0 (0层) 10 (圆心的X坐标)3.252194 20 (圆心的Y坐标)4.48913 30 (圆心的Z坐标) 0.0 40 (圆弧半径) 1.013961 50 (圆弧起始角)95.392841 51 (圆弧终止角)261.607159 0LINE (中心线3)0ARC (圆弧2) 0ENDSEC (实体段结束) 0EOF (DXF文件结束),2.DXF文件的生成及使用DXF文件绘图 生成DXF文件命令DXFOUT 调用DFX生成DWG文件命令DXFIN,