基于AutoCAD动态块智能零件库的开发(有全套图纸)(可编辑) .doc
目 录全套图纸加 1360715675 各专业都有1 绪论11.1 引言11.2 国内外发展状况11.3 二次开发的方法21.4 AutoCAD环境下动态块功能开发的优点41.5 智能零件库开发的目的和意义42 智能零件库的开发原则62.1 智能零件库的基本功能62.2 智能零件库的特点63 智能零件库的开发73.1 智能零件库的建库流程73.2 智能零件库动态块的定义73.2.1 图形的绘制73.2.2 定义外部块73.2.3 定义动态块93.3 幻灯片和幻灯片库的制作203.3.1 幻灯片的制作203.3.2 幻灯片库的制作224 菜单的编制和加载244.1 菜单文件与自定义文件对比244.2 菜单文本文件结构与CUI结构对比254.3 定制下拉菜单274.5 菜单的加载294.6 主菜单调用程序的编写324.6.1 图像控件菜单的定制324.6.2 调用命令的定制345 智能零件库的管理385.1 对于动态块的管理385.2 对于对幻灯片库的管理395.3 对于菜单的管理405.4 智能零件库的调用415.4.1 使用下拉菜单调用零件库415.4.2 使用工具选项板调用456 结论51参 考 文 献52致 谢541 绪论1.1 引言 AutoCAD是由美国Autodesk欧特克公司于二十世纪八十年代初为微机上应用CAD技术而开发的绘图程序软件包,经过不断的完美,现已经成为国际上广为流行的绘图工具。AutoCAD具有良好的用户界面,通过交互菜单或命令行方式便可以进行各种操作。它的多文档设计环境,让非计算机专业人员也能很快地学会使用。在不断实践的过程中更好地掌握它的各种应用和开发技巧,从而不断提高工作效率。用AutoCAD绘图速度更快、精度更高、而且便于个性,它已经在航空航天、造船、建筑、机械、电子、化工、美工、轻纺等很多领域得到了广泛应用,并取得了丰硕的成果和巨大的经济效益。AutoCAD具有广泛的适应性,它可以在各种操作系统支持的微型计算机和工作站上运行,并支持分辨率由320×200到2048×1024的各种图形显示设备40多种,以及数字仪和鼠标器30多种,绘图仪和打印机数十种,这就为AutoCAD的普及创造了条件。但是作为一个基础性的计算机辅助设计平台,在进行专业设计时,仍然需要进行大量的底层开发工作。 零部件的数量大,结构形式多,形状复杂相似,尺寸变化较大,使得绘图不仅重复繁琐,而且反复查找数据。提高设计效率的最有效的方法之一就是开发专业标准件参数化图库。以往很多设计人员是通过使用某计算机语言进行编程,对AutoCAD进行二次开发来建立标准件参数化图库。这对普通工程设计人员有相当的难度。本课题则采用了AutoCAD中的新功能?动态块,建立了标准件参数化图库。这种方法建库简单、结构清晰、管理方便、数据组织容易、无须大量编程,普通工程设计人员很容易掌握。1.2 国内外发展状况 AutoCAD在国外制造业中广泛应用,较普遍的为美、日、德等国,其中以机床、汽车、飞机、船舶、航天器等制造业应用最为广泛、深入。例如,日本丰田汽车公司于1965年将数控用于模具加工。AutoCAD是在1982年正式出现在国内的。其中历经多次的改版更新,从V1.0、V1.17、V2.5、V2.6、R9R14、20002009,到今天的2010版。由于开发之初,AutoCAD就是以2D平面为基础平台来设计的,所以在平面方面的功能比较齐全。AutoCAD在全球CAD软件市场上的占有率还是很高的,其原因如下: 1使用者基础稳固,已成为全球CAD入门的标准学习软件。 2AutoCAD是一套罕见的开放式CAD软件。有很多人都熟悉它,所以就可以在其上轻易的开发出其他适合自己的功能,而且很多人都熟悉,基本的教育训练期短。 在中国,Autodesk公司已经在清华大学,同济大学,哈尔滨工业大学,华南理工大学和上海交通大学投资建立了卓越中心(COE)。在每所大学,Autodesk公司都与重要的教职人员合作以改善和提高各学科的教学质量,例如,建筑学,民用工程学,机械工程学,工业设计,建筑管理等。十余年间,Autodesk见证了中国各行各业的快速成长。中国数百万的建筑工程设计师和产品制造工程师利用了Autodesk数字化设计技术,甩掉了图板、铅笔和角尺等传统设计工具,用数字化方式与中国无数的施工现场和车间交互各种各样的工程建筑与产品制造信息。欧特克产品成为中国设计行业的最通用的软件。Autodesk正在以其领先的产品、技术、行业经验和对中国不变的承诺根植于中国,携手中国企业不断突破创新。未来,Autodesk将继续凭借融合可持续设计理念的数字化设计解决方案,倾力推动从“中国制造”到“中国创造”的转型。1.3 二次开发的方法 所谓二次开发,就是以某一软件作为操作平台,利用它所提供的开发接口对其功能进行扩展,使之满足自身需要。AutoCAD通用性强,具有多种工业标准,广泛应用于机械、电子、航空、船舶、建筑、服装等领域;同时,AutoCAD具有开放的体系,在其发展过程中,相继推出了包括AutoLisp、ADS、ObjectARX、VBA、VisualLISP等工具通过编程来建立标准件图库;再加上AutoCAD强大的二维绘图功能,所以,我们选择AutoCAD作为开发平台,对其进行二次开发,形成了一个简单的二维机械零件库,为进一步形成机械零件设计系统做准备。但是这对普通工程设计人员有相当的难道,同时其应用仍然存在很大的局限性:1插入标准件时,需要输入的参数值较多,仍需反复查阅手册;2插入的标准件仍需要手动重新调整位置,编辑图形;3由于同一结构类型系列化不足,标准件图库庞大。1AutoLisp AutoLISP的全名是LISTProcessingLanguage,它出现于1985年推出的AutoCADR2.18中,是一种嵌入在AutoCAD内部的编程语言,是LISP原版的一个子集,它一直是低版本AutoCAD的首选编程语言。它是一种表处理语言,是被解释执行的,任何一个语句键入后就能马上执行,它对于交互式的程序开发非常方便。其缺点是继承了LISP语言的编程规则而导致繁多的括号。2ADS ADS的全名是AutoCAD DevelopmentSystem,它是AutoCAD的C语言开发系统,ADS本质上是一组可以用C语言编写AutoCAD应用程序的头文件和目标库,它直接利用用户熟悉的各种流行的C语言编译器,将应用程序编译成可执行的文件在AutoCAD环境下运行,这种可以在AutoCAD环境中直接运行的可执行文件叫做ADS应用程序。ADS由于其速度快,又采用结构化的编程体系,因而很适合于高强度的数据处理,如二次开发的机械设计CAD、工程分析CAD、建筑结构CAD、土木工程CAD、化学工程CAD、电气工程CAD等。3ObjectARX ObjectARX是一种崭新的开发AutoCAD应用程序的工具,它以C+为编程语言,采用先进的面向对象的编程原理,提供可与AutoCAD直接交互的开发环境,能使用户方便快捷地开发出高效简洁的AutoCAD应用程序。ObjectARX并没有包含在AutoCAD中,可在AutoDESK公司网站中去下载,其最新版本是ObjectARXforAutoCAD2000,它能够对AutoCAD的所有事务进行完整的、先进的、面向对象的设计与开发,并且开发的应用程序速度更快、集成度更高、稳定性更强。ObjectARX从本质上讲,是一种特定的C+编程环境,它包括一组动态链接库(DLL),这些库与AutoCAD在同一地址空间运行并能直接利用AutoCAD核心数据结构和代码,库中包含一组通用工具,使得二次开发者可以充分利用AutoCAD的开放结构,直接访问AutoCAD数据库结构、图形系统以及CAD几何造型核心,以便能在运行期间实时扩展AutoCAD的功能,创建能全面享受AutoCAD固有命令的新命令。ObjectARX的核心是两组关键的API,即AcDbAutoCAD数据库和AcEdAutoCAD编译器,另外还有其它的一些重要库组件,如AcRXAutoCAD实时扩展、AcGiAutoCAD图形接口、AcGeAutoCAD几何库、ADSRXAutoCAD开发系统实时扩展)。ObjectARX还可以按需要加载应用程序;使用ObjectARX进行应用开发还可以在同一水平上与Windows系统集成,并与其它Windows应用程序实现交互操作。4VBA VBA即Mcrosoftoffice中的VisualBasicforApplications,它被集成到AutoCAD2000中。VBA为开发者提供了一种新的选择,也为用户访问AutoCAD2000中丰富的技术框架打开一条新的通道。VBA和AutoCAD2000中强大的ActiveX自动化对象模型的结合,代表了一种新型的定制AutoCAD的模式构架。通过VBA,我们可以操作AutoCAD,控制ActiveX和其它一些应用程序,使之相互之间发生互易活动。5VisualLISP VisualLISP已经被完整地集成到AutoCAD2000中,它为开发者提供了崭新的、增强的集成开发环境,一改过去在AutoCAD中内嵌AtuoLISP运行引擎的机制,这样开发者可以直接使用AutoCAD中的对象和反应器,进行更底层的开发。其特点为自身是AutoCAD2000中默认的代码编辑工具;用它开发AutoLISP程序的时间被大大地缩短,原始代码能被保密,以防盗版和被更改;能帮助大家使用ActiveX对象及其事件;使用了流行的有色代码编辑器和完善的调试工具,使大家很容易创建和分析LISP程序的运行情况。在VisualLISP中新增了一些函数:如基于AutoLISP的ActiveX/COM自动化操作接口;用于执行基于AutoCAD内部事件的LISP程序的对象反应器;新增了能够对操作系统文件进行操作的函数。 本课题开发的智能标准件库利用AutoCAD的动态块功能,结合简单的编程过程,实现了标准零件库的智能性和灵活性,使用方便,便于扩展。1.4 AutoCAD环境下动态块功能开发的优点 AutoCAD中的动态块功能是对原有块功能的扩展。动态块即是在块中增加了可变参量,比如可以将不同长度、角度、大小、对齐方式、个数甚至整个图形样式等相关内容和数据设计到一个图块中,插入块后仅需简单拖动几个变量就能实现块参数的修改。这样不仅减少了大量重复工作,而且通过工具选项板就可方便地管理和控制,同时也减少图库中块的数量,十分适于建立标准件图库。当插入动态图块后,在图块的指定位置处会出现动态块的夹点,单击夹点可以改变图块的参数特性,如块的位置、反转方向、宽度尺寸、高度尺寸和可见性等,还可在块中增加约束,如沿指定方向的移动距离等。用户可以由动态夹点的外形来识别夹点功能,很方便地调整块的参数。1.5 智能零件库开发的目的和意义 利用AutoCAD的动态块功能建立智能零件库,实现AutoCAD零件的智能化和参数化设计,使设计人员在绘图时无需查阅手册,只需通过动态块相关功能选择标准件的规格参数,得到相应的图形,提高绘图效率。 对于动态块,在各个专业的绘图中都能够应用,而且由于提供的动作类型丰富,使得灵活性大大增加。当一个块参照时被定义了几个动作后,它就成为了一个小型数据集,能够涵盖一系列的产品,如标准螺栓、螺母等等。动态块具有灵活性和智能性。在操作时可以轻松地更改图形的动态块参照。可以通过自定义夹点或自定义特性来操作动态块参照中的几何图形。这使得我们可以根据需要在位调整块,而不用搜索另一个块以插入或重定义现有的块。总之,动态块的应用,将能够给我们的绘图工作带来巨大的便利。 2 智能零件库的开发原则2.1 智能零件库的基本功能 1实现了标准件的智能调用。调用的图形可以动态调整位置,自动对齐到插入对象。并根据用户需要选择标准件的表现形式和规格。 2标准件内容全面。包括了国家标准规定的各种螺栓、螺母、螺钉等标准件,基本可以摆脱设计手册的束缚。 3根据用户需要,完成对智能零件库的编辑和扩充。2.2 智能零件库的特点 1智能性和灵活性。标准件库中应用了动态块功能,它是对一般图块功能的扩展,是具有动态行为的图块。可以根据需要通过向图块中添加参数与动作,以控制图块中几何图形的表现形式,用户在操作时可以轻松地实现动态更改图形。 2图库结构清晰、组织管理层次分明。对于拓扑结构相同的零件只需建立一个动态块来实现标准件系列。一个动态块,就可方便地在图样中得到不同规格的该标准件图形,减少了设计中的许多重复工作及不必要的错误,提高了设计效率和质量。同时标准件图形减少,则组织管理方便,便于操作。 3界面形象直观。操作界面使用对话框和幻灯片图形,图文并茂,用户在在繁多的标准件库中可以快速准确的查询到自己需要的零件,调用灵活方便。 4资源的开放性。智能标准件库在软件中处于局部CUI,允许用户根据需要添加、修改零件库,并加载或卸载不同的标准件子库或输入其它标准件子库。 5操作相对简单、容易实现。由于利用了动态块建立参数化零件库中,编写程序较少,易于完成。3 智能零件库的开发3.1 智能零件库的建库流程 AutoCAD环境下的智能零件库系统建立流程如图3.1所示,首先通过软件绘制各类标准件图形,再将所建立的各类标准零件按一定的目录分门别类地储存在某路径下,并通过AutoCAD定义成外部块。然后根据需要添加参数与动作,定义成动态块。最后制作幻灯片,形成幻灯片库,并通过定制菜单查询和调用各类标准件。图3.1 AutoCAD建立智能零件库的流程3.2 智能零件库动态块的定义3.2.1 图形的绘制 首先根据机械设计手册数据绘制标准零件库图形,对于结构相同的标准件系列,只需绘制一个图形。因为结构相同的零件只需建立一个动态块来实现标准件系列。3.2.2 定义外部块1创建块 把所有绘制的标准零件库图形通过wblock命令定义为外部块,图3.2为定义外部块对话框。首先在名称输入框中输入一个块名;其次指定基点,常用的方法是点击拾取点按钮。在屏幕上指定,选择图块中包含的图形,通过点击对话框上的选择对象按钮,在屏幕上用窗口选择。设定结束后。按“确定”按钮关闭该对话框。这样六角头螺栓就被创建为块。图3.2 定义外部块2插入块 块在定义完后,在使用时需要将其插入到当前图形文件中。方法是选择插入菜单一块,这就出现一个插入块对话框,如图3.3所示,在名称框中输入要插入的块的名称。也可以在后边的下拉列表中选择。插入点就是要插入块的地方,它是与定义块时的基点相对应的。插入块的过程可以形象的看成是抓住块上的基点把它放到插入点上。插入点一般在屏幕上指定。插入块可以选择旋转一定的角度,一般在屏幕上捕捉特殊点来指定角度最方便。根据需要设置缩放比例为统一比例1。注意不要选择“分解”选项。插入时根据命令行的提示。指定插入点和旋转角度。图3.3 插入对话框(3)块操作中要注意的问题 使用AutocAD中的块操作还应注意如下几个问题: 当块中的图元绘在不同图层上,插入到当前绘图环境中的不同层上时,情况有点复杂。它遵循如下原则: a.图块中绘在O层上的图元,插入到当前绘图环境中时,插入到哪个层,图块中的对象就到哪个层。如果图块中O层上的图元绘制时颜色、线型使用的是“随层”。则插入后颜色、线型与当前插入的层一致;如果不是“随层”,而是某一种具体的颜色和线型,则插入后保持不变。 b.图块中绘在其他图层中的图元,插人到当前绘图环境中,不论插入到哪个图层,均保持其图层不变。如果当前绘图环境中有与图块中同名的图层,则同名图层中的图元仍到同名图层中:没有同名图层的则自动创建一个心的图层。 用BLOCK命令也可以定义块,只能供当前图插入使用,属于内部块:定义外部块用命令WBLOCK是将块以图形文件的形式写入磁盘,其文件后缀名是.dwg。由于外部块是定义在当前图形文件之外,保存在磁盘上的。所以它不但可以用在当前定义时的图形文件中,也可以用在以后所有的图形文件中。构件图形库时所用的都是外部块,该命令无对应的菜单或工具按钮。外部块的插入方法同内部块的插入。只不过在输入块的名称时,要选择名称框后的浏览按钮,找到外部块所在的路径。同样利用此方法,也可以将其他的图形文件之前并没有创建为块作为块插入到当前文件中来,如果要对其编辑,插入时可在插入对话框左下角的“分解”项前打“”,根据块与图层的关系,如果没有与被插入图形相对应的图层,则自动创建新的图层。 图块组成对象颜色、线型和线宽的情况:在块插入前,如果在被插图形文件中有图块的同名层,则块插入后,图块相应图层上对象的颜色、线型和线宽将跟随被插图形文件中图块的同名层的图层设置。这时,如果图块图层的设置与被插入图形文件图块同名层的设置不同,则在图块插入前后,图块颜色、线型和线宽有明显变化。如果在被插入图形文件中没有图块的同名层,则块插入后,图块相应图层上对象的颜色、线型和线宽将保持不变。块分解前后,图块所有对象的颜色、线型和线宽将保持不变。块插入后,图块组成对象的颜色、线型和线宽三者有条件的变化。3.2.3 定义动态块 动态块就是带有动作的图块。当这些图块插入图中后,可以利用定义的缩放、拉伸、旋转、翻转、查询等动作很方便的改变块中元素的位置、尺寸和可变的属性而保持块的完整性不变。动态块具有灵活性和智能性,用户在操作时可以轻松地更改图形中的动态块参照。可以通过自定义夹点或特性来操作动态块参照中的几何图形。这使得用户可以根据需要在位调整块,而不用搜索另一个块以插入或重定义现有的块。动态块是使用块编辑器创建的如图3.5所示,块编辑器是一个专门的编写区域,用于添加能够使块成为动态块的元素。用户可以从头创建块,也可以向现有的块定义中添加动态行为,也可以像在绘图区域中一样创建几何图形。 六角头螺栓是机械制图过程中使用较为广泛的螺栓。CAD产品并没有提供符合我国标准的基准螺栓的图块,为了方便使用,用户往往自定义一个图块,在需要时插入这个图块。这样看起来虽然很方便,但是在对这个图块进行编辑时往往非常不便。因为六角头螺栓有很多种规格,并且由很多不同元素构成的图形,用户自定义的图块是无法完成这样的变化的。最好的解决办法就是给块增加动作,使块变成动态块。首先明确标准件参数化后的使用方式,然后通过“块编辑器”命令,为已经定义好的图块添加参数和相关联的动作,确保块参照中对象的大小和位置随着参数正确变化,实现智能性。 现在插入一个已经有了 “六角头螺栓”这样的图块,选择住块然后点击右键块编辑器,或者在命令行输入“bedit”后按“enter”键,在弹出的对话框如图3.4所示,在“编辑块定义”窗口中选住要编辑的块点击 “确定”,即可进入块编辑器。块编辑器的界面如图3.5所示。图3.4 编辑块定义图3.5 块编辑器界面 (1)动态块的规划 在创建动态块之前应先了解其外观、隐性的内容即设计条件,以及在图形中的使用方式。以便在设计如何操控这个动态块参考时,可很快决定要变更或移动块内的对象,另外,还要确定这些对象将如何更改。例如,用户也可以创建?个可调整大小的动态块。同时,当重新调整这个动态块参考的大小时,可能会显示其他几何图形。这些牵一发而动全身的周边条件都将决定您加入到块定义中的参数和动作类型,以及让参数、动作和几何图形协同工作的方式。 (2)设计标准件的插入参数格式 螺栓的规格尺寸为公称直径和公称长度,插入的螺栓图块应该可以调整其规格,通过查询表提供一个具有螺栓规格尺寸的下拉列表,当从下拉列表中选择某一规格的螺栓后,除规格尺寸可作调整外,图形的其余各个部分 螺栓头部、螺纹长度、螺纹的小径等 尺寸均应根据与公称直径的比例关系作相应的调整 缩放、拉伸等,满足设计要求,如图3.6所示。图3.6 螺栓主视图的动态块 对齐夹点是移动螺栓靠近某个对象,则使螺栓与该对象在平面内的任意方向自动对齐; 线性夹点是使螺栓沿轴线方向往返移动,移动时遵循“值集”的定义,只能在标准件允许的长度系列中移动; 可见性和查询夹点是单击以显示项目列表。 (3)块元素间的协同工作方式 可以在块编辑器中向块定义中添加动态元素。除几何图形外,动态块中通常包含一个或多个参数和动作。在将参数和动作加入块定义之前,先要了解它们彼此之间及它们与块内几何图形之间的关联,如表3.1、3.2所示。也就是要了解牵一发而动全身的关联性。当我们将一个动作加入到动态块定义中后,需要将动作和参数关联起来,同时还可能需要?个几何图形选择集,这样就可以创建其关联性。当将多个参数和动作加入到动态块参考后,就需要为动态块参考按顺序设置正确的关联性,以便在图中正常工作。参数和动作仅显示在块编辑器中。将动态块参照插入到图形中时,将不会显示动态块定义中包含的参数和动作。参数添加到动态块定义中后,夹点将添加到该参数的关键点。关键点是用于操作块参照的参数部分。例如,线性参数在其基点和端点具有关键点。用户可以从任一关键点操作参数距离。 添加到动态块中的参数类型决定了添加的夹点类型。每种参数类型仅支持特定类型的动作。表3.1、3.2显示了参数、夹点和动作之间的关系。 参数:通过指定块中几何图形的位置、距离和角度来定义动态块的自定义特性。 动作:定义在图形中操作动态块参照时,该块参照中的几何图形将如何移动或修改。向动态块定义中添加动作后,必须将这些动作与参数相关联。也可以指定动作将影响的几何图形选择集。表3.1 动态块参数及可关联的动作动作点在图形中定义一个X和Y位置移动、拉伸线性可显示出两个固定点之间的距离,约束夹点沿顶置角度的移动,在块编辑器中移动、缩放、拉伸、阵列极轴可显示出两个固定点之间的距离并显示角度值移动、缩放、拉伸、阵列XY可显示出距参数基点的X距离和Y距离移动、缩放、拉伸、阵列旋转可定义角度旋转翻转显示为一条投影线,可以围绕这条投影线翻转对象翻转对齐可定义X和Y位置以及一个角度无(此动作隐含在参数中)可见性可控制对象在块中的可见性无(此动作时隐含的,并且受可见性状态的控制)查寻定义一个可以指定或设置为计算用户定义的列表或表中的值的自定义特性查寻基点在动态块参照中相对于该块的几何图形定义一个基点无 使用块编写选项板上的“参数集”选项卡可以向动态块定义添加一般成对的参数和动作。向块中添加参数集与添加参数所使用的方法相同。参数集中包含的动作将自动添加到块定义中,并与添加的参数相关联。接着,必须将选择集(几何图形)与各个动作相关联。 首次向动态块定义添加参数集时,每个动作旁边都会显示一个黄色警告图标。这表示用户需要将选择集与各个动作相关联。可以双击该黄色警示图标(或使用 BACTIONSET 命令),然后按照命令提示将动作与选择集相关联。 如果插入的是查寻参数集,双击黄色警示图标时将会显示“特性查寻表”对话框。与查寻动作相关联的是用户添加到此表中的数据,而不是选择集。表3.2列出了块编写选项板的“参数集”选项卡上所提供的参数集。表3.2 “参数集”参数集说明点移动向动态块定义中添加带有一个夹点的点参数和相关联的移动动作。线性移动向动态块定义添加带有一个夹点的线性参数和关联移动动作。线性拉伸向动态块定义添加带有一个夹点的线性参数和关联拉伸动作。线性阵列向动态块定义添加带有一个夹点的线性参数和关联阵列动作。线性移动配对向动态块定义添加带有两个夹点的线性参数和与每个夹点相关联的移动动作。线性拉伸配对向动态块定义添加带有两个夹点的线性参数和与每个夹点相关联的拉伸动作。极轴移动向动态块定义添加带有一个夹点的极轴参数和关联移动动作。极轴拉伸向动态块定义添加带有一个夹点的极轴参数和关联拉伸动作。环形阵列向动态块定义添加带有一个夹点的极轴参数和关联阵列动作。极轴移动配对向动态块定义添加带有两个夹点的极轴参数和与每个夹点相关联的移动动作。续表3.2 “参数集”极轴拉伸配对向动态块定义添加带有两个夹点的极轴参数和与每个夹点相关联的拉伸动作。XY 移动向动态块定义添加带有一个夹点的 XY 参数和关联移动动作。XY 移动配对向动态块定义添加带有两个夹点的 XY 参数和与每个夹点相关联的移动动作。XY 移动方格集向动态块定义添加带有四个夹点的 XY 参数和与每个夹点相关联的移动动作。XY 拉伸方格集向动态块定义添加带有四个夹点的 XY 参数和与每个夹点相关联的拉伸动作。XY 阵列方格集向动态块定义添加带有四个夹点的 XY 参数和与每个夹点相关联的阵列动作。旋转集向动态块定义添加带有一个夹点的旋转参数和关联旋转动作。翻转集向动态块定义添加带有一个夹点的翻转参数和关联翻转动作。可见性集添加带有一个夹点的可见性参数。无需将任何动作与可见性参数相关联。查寻集向动态块定义添加带有一个夹点的查寻参数和查寻动作。 本文以 “六角头螺栓”为例来创建动态块,六角头螺栓动态块要实现的以下几种功能: 根据用户的需要使用查询参数来选择六角头螺栓的规格。 根据用户的需要使用可见性参数来选择六角头螺栓的视图。 用户可以自定义六角头螺栓的公称长度、公称直径。 (4)六角头螺栓动态块的创建 要让一个图形成为动态块,至少要加入?个参数和一个动作。然后将动作与参数关联起来。成对的参数与动作则可使用“参数集”将其加入到动态块定义中。明确了块参照的操作使用方法,进一步确定添加的参数及其类型,并分析参数之间、参数和动作之间以及它们与块中的几何图形的相关性,确保块参照中对象的大小和位置随着参数正确变化。以下是对块加入参数和动作的过程: 使用对齐参数完成六角头螺栓对齐变化 a.选择参数中的对齐参数。 b.根据命令提示选择六角头螺栓的对齐基点。 c.关闭块编辑器,拖动六角头螺栓对齐的夹点测试动态块的设计是否成功。 用线性参数配合拉伸动作完成六角头螺栓公称长度变化 a.选择线性参数。 b.依次点击公称长度的两个端点,拉出“距离”参数到适当位置。 c.点击参数“距离”使其夹点变蓝,右击鼠标选择“特性”。 d.在“特性”中修改参数,在“距离标签”定义成“L” 给参数定义意义明确的标签这样方便以后的编辑、“距离类型”定义为“列表”。 e.在 “距离值列表”栏根据标准公称长度尺寸“20、25、30、35、70、80、90、160、180、200”,输入长度值,“夹点数”设为“1”。 f.添加拉伸动作,选择参数“L”,根据命令提示选择六角头螺栓图形,并把公称长度拉伸动作放在适当的位置。 g.关闭块编辑器,拖动公称长度的夹点测试动态块的设计是否成功。 使用线性参数配合拉伸动作完成六角头螺栓螺纹长度变化 a.选择参数中的线性参数。 b.依次点击螺纹的两个端点,拉出“距离”参数到适当位置。 c.点击参数“距离”使其夹点变蓝,右击选择“特性”。 d.在 “特性”中修改参数,在距离标签定义成 “螺纹长度”、“距离类型”定义为“列表”,在“距离值列表”栏根据标准长度尺寸“12、14、16、18、22、26、30、38、46、54、66、78”。输入其长度值,“夹点数”设为“1”。 e.添加螺纹长度拉伸动作,选择参数“螺纹长度”,根据命令提示选择螺栓图形,把螺纹长度拉伸动作放在适当的位置。 f.关闭块编辑器,拖动螺纹长度拉伸的夹点测试动态块的设计是否成功。 使用线性参数配合缩放动作完成六角头螺栓的公称直径变化 a.选择线性参数。 b.依次点击公称直径的两个端点,拉出“距离”参数到适当位置。 c.点击参数“距离”使其夹点变蓝,右击选择“特性”。 d.在“特性”中修改参数,在距离标签定义成 “M”、"距离类型“定义”为“列表”,在“距离值列表”栏根据标准直径尺寸“3、4、5、6、8、10、12、16、20、24、30、36”,输入直径值,“夹点数”设为“1”。 e.添加公称直径缩放动作,选择参数“M”,根据命令提示选择六角头螺栓的几何图形,并把公称直径缩放动作放在适当的位置。 f.关闭块编辑器,拖动公称直径缩放的夹点测试动态块的设计是否成功。表3.3 螺栓主视图动态块的参数与动作设置参数对象参数类型参数值集动作类型公称长度线性参数25,25,30,35,拉伸公称直径线性参数3,4,5,6,8,缩放规格查询参数M4×25,M4×30查询 公称直径与公称长度的参数值集根据国标确定,螺栓头对角距离与螺纹长度根据与公称直径的简化比例关系确定参数值集。根据块参照的操作方法,添加了查询参数“规格”,与其相应的查询动作为“螺纹规格”。图3.6显示了动态块“特性查询表”设置,建立了螺栓规格M×L参数查询集,其查询特性与其他参数相关联,此设置将在块参照中添加一个参数下拉列表,列表变量值为M4×25,M4×30,M5×25,M5×30,M5×40,。 添加查寻集 虽然对六角头螺栓动态块的设计参数已做好定义,在使用时只要根据设计要求拖动相应的夹点,就可以完成设计任务,但此时还需要设计人员掌握六角头螺栓的各个部位的参数,可以对六角头螺栓提供一个反向查询功能,只要知道型号就能完成设计。 a.在动态块编辑器选择“参数集”,选择 “查寻集”为六角头螺栓添加一个可查询的动作。 b.将“查寻集”的图标放在动态块中,然后双击“查寻集”的动作图标。 c.在特性查询表中添加特性如图3.7所示,分别输入六角头螺栓的参数,在左栏的“输入特性”中输入的是六角头螺栓参数的值,右栏中输入的“查询特性”是六角头螺栓的标准型号,并把右下角的“只读”特性改成“允许反向查询”,各参数输入完成后要认真检查其正确性,并点击“核查”,无误后“确定”退出,如图3.8所示。 图3.7 添加参数特性 图3.8 特性查询列表 设置可见性参数 在动态块中“可见性参数”用得比较多,设定可见性状态后在块上面出现一个向下的蓝色箭头,点击那个箭头就可以分别点选你需要的状态了,不需要用到快捷菜单就可以快速的进行切换,使用可见性状态来使动态块中的几何图形可见或不可见。 一个块可以具有任意数量的可见性状态。 使用可见性状态是创建具有多种不同图形表示的块的有效方式。 用户可以轻松修改具有不同可见性状态的块参照,而不必查找不同的块参照以插入到图形中。 “块编辑器”工具栏的右侧显示了当前可视性状态的名称。 所有块都至少有一个可见性状态。 您无法删除当前状态。 工具栏的这一区域还提供了几个用来设置可见性状态的工具。 设置可见性状态时,您可能希望或不希望看到在给定状态中不可见的的几何图形。 可以使用“可见性模式”按钮来显示或隐藏不可见的几何图形。 添加可见性参数的步骤: a.在块编辑器中的 “块编写选项板”窗口的 “参数”选项卡中,单击“可见性参数”工具。 b.按照命令行上的提示指定以下参数信息: 名称 标签 说明 显示的块参照的特性 创建基于当前状态的新可见性状态的步骤: a.在“块编辑器”工具栏上,单击 “管理可见性状态”。 b.在“可见性状态”对话框中,单击“新建”。 c.命名为“主视图”在“新建可见性状态”对话框中,输入新可见性状态的名称,如图3.9所示。 d.单击“在新状态中保持现有对象的可见性不变”。 e.单击“确定”。 创建当前状态的新可见性状态完成后关闭编辑器,会出现一个新的夹点此夹点始终显示在包含可见性状态的块参照中。 在块参照中单击该夹点时,将显示块参照中所有可见性状态的下拉列表。 从列表中选择一个状态“主视图”后,在该状态中可见的几何图形将显示在图形中,如图3.10所示。图3.9 “创建可见性”对话框图3.10 主视图 (5)动态块制作要点 先想好动态块需要实现的行为,然后规划所需的参数、动作及它们的顺序。 实现同一行为的方法很多,选用最简单明了的方法。 使用意义明确的标签、名称和说明。 将参数、动作布置到合适的位置。 过于复杂的动态块会占用额外的资源。 不同的插入和修改方法占用不同的资源。3.3 幻灯片和幻灯片库的制作3.3.1 幻灯片的制作 幻灯片是图形的快照,AutoCAD把屏幕图形以像素的方式保存下来,生成后缀为.SLD 的幻灯片文件。虽然它包含特定时刻的图形图片,但它并不是一个图形文件。用户既不能将幻灯文件输入到当前图形中,也不能编辑或打印幻灯片。而只能查看它。通常幻灯片文件主要用于演示线型、填充图案和部件图形等。使用“VSLIDE”命令可单个地查看幻灯片。要查看一系列幻灯片,可以使用脚本文件。幻灯片看起来很像普通图形,查看时要注意正确使用编辑命令。编辑命令影响幻灯片下的当前图形,而不是幻灯片本身。 某些命令可能会强制重画,这使幻灯片不再显示。目前幻灯片文件主要应用在AutoCAD环境下进行二次开发所涉及的用户化界面设计方面,实际上幻灯片的功能远非于此,幻灯文件具有下列用途: 1在AutoCAD中进行演示 2在绘制图形时查看其他图形的快照 3在对话框中创建图像控件菜单 以幻灯片格式保存当前视图,就可以创建幻灯片。在模型空间中创建的幻灯片只显示当前视口。在图纸空间中创建的幻灯片可显示所有可见视口及其内容。幻灯片只显示可见内容。不显示已关闭或冻结的图层上的对象,也不显示已关闭的视口中的对象。 查看幻灯文件时,它暂时替代了屏幕上的对象。用户可以上面绘图,但如果修改视图(通过重画、平移或缩放),幻灯文件将消失,AutoCAD仅重显示所绘制的图形和以前存在的所有对象。 可以逐个显示幻灯片,也可以使用脚本按顺序显示幻灯片。幻灯片也可以用于自定义菜单。例如,如果创建包含常用机械部件的插入块的脚本,可以设计一个显示每个部件的幻灯片的自定义图像控件菜单。在菜单上单击幻灯片图像时,AutoCAD将把块插入图形。 下面以“六角头螺栓”为例,介绍幻灯片的制作步骤: 1打开定义的动态块“六角头螺栓.dwg”,在绘图区域中显示要用于制作幻灯片的图形。 2将所选图形放到合适的大小,以致能充满整个绘图区,图像以3:2的宽高比显示。在命令行提示下输入“mslide”命令,将出现 “创建幻灯片文件”对话框,如图3.11所示。 3在“创建幻灯文件”对话