化工制图AutoCAD-二次开发及AutoLISP_第1页
化工制图AutoCAD-二次开发及AutoLISP_第2页
化工制图AutoCAD-二次开发及AutoLISP_第3页
化工制图AutoCAD-二次开发及AutoLISP_第4页
化工制图AutoCAD-二次开发及AutoLISP_第5页
已阅读5页,还剩121页未读 继续免费阅读

下载本文档

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

文档简介

本资料来源第9章二次开发及AutoLISP▪

AutoCAD二次开发在化工制图中的应用▪

AutoLISP语言基础▪VisualLISP基础▪

DCL基础AutoCAD二次开发在化工制图中的应用本章目录二次开发的目的及必要性几种主要的二次开发语言简介化工AutoCAD二次软件开发的思路及步骤二次开发的目的及必要性AutoCAD软件作为CAD工业的旗帜产品,以其强大的功能得到广大用户的青睐。它具有精确的坐标系,能够完成各种图形的精确绘制、任意缩放和修改,支持数字化仪的精确输入。尽管如此,由于AutoCAD是作为一个通用的绘图软件而设计开发的,但各行各业都有自己的行业和专业标准,许多单位也有自己的技术规格和企业标准,化工行业也不例外,有着大量的各种图纸设计标准,因而,AutoCAD不可能完全满足每一用户的具体应用要求。但是,AutoCAD具有开放的体系结构,它允许用户和开发者在几乎所有方面对其进行扩充和修改,同时可以利用多种开发语言,开发可以自动完成某一绘制任务的软件,可大大提高绘制速度,改善工作效率。以上工作可称之为AutoCAD的二次开发技术。也就说AutoCAD二次开发技术主要包括两个方面:一方面是对它的功能进行扩充和修改,如修改或增加菜单、进行各种定制工作;另一方面是利用开发工具编写能够完成特殊任务的自动绘制软件,如下面将介绍的通过人机交互界面输入必要的数据后,系统自动完成法兰的绘制,就属于这一类型,在化工绘图中,我们需要的也是有关这一方面的开发软件,它能最大限度地满足用户的特殊需要,通过调用各种已经开发好的专用零件图绘制软件,加快绘制速度,提高工作效率。尤其重要的是,可以将大量的计算工作交给计算机去完成。这样,不仅提高了绘图速度,同时也提高了绘制精度,避免了人为的计算错误。AutoCAD二次开发在化工制图中的应用目前很多化工技术人员对AutoCAD的使用一般还仅限于它自身的各种绘图功能,使用鼠标手工绘制各种图件,对其强大的二次开发功能还没有进行深入使用。如果能使用AutoCAD的二次开发技术开发出一套软件,让AutoCAD自动绘制我们目前使用的各种图件,就可以大大提高作图效率,发挥出AutoCAD的强大图形编辑、修改功能,对图件中的各种元素进行任意修改,满足各种不同的图件格式和绘图标准,由此可见,对于一个化工技术人员来说,学会自己开发AutoCAD二次应用软件显得十分必要,因为这将大大减少具体的绘制工作,而可以将主要精力集中到设备的设计中去,从而加快化工设备的开发速度。近几年来,随着计算机软、硬件技术的飞速发展及其应用的普及,也带来了化工领域使用计算机的浪潮。首先是各课程教学使用了CAI课件,学生们可以清楚地看到各种物质的具体颜色,并可以看到动画反应,让学生们能够形象生动地上课。然后是各种实验仿真软件的出现,让学生们不用亲自下到工厂,也不用浪费任何原料,在没有危险的情况下就可以完成对实验过程或者是生产流程的学习和实习。同时计算机可以对反应进行模拟,对实验数据的拟合都大大方便了化工工作者。随之诞生的各种化工专用软件,给化学工业的发展注入了新鲜血液,使化学工业的发展如虎添翼。AutoCAD二次开发在化工制图中的应用目前,随着化学工业的进一步向前发展,各种新的机械设备被人们设计和制造,这些设备的工程图都是一件很大的工程。比如一个完整热交换器图纸,就需要一个专人1~2天的工夫才能完成。利用AutoCAD的二次开发技术,可以编出对热交换器的图进行批处理的程序,只需通过简单的人机会话,计算机能自动绘制出图纸,这也是化工技术人员学习掌握AutoCAD二次开发技术的目的之所在。随着化学工业的不断日新月异,对设备图纸绘制的速度要求也将越来越快,利用AutoCAD二次开发技术开发而成的软件直接绘制各种设备的技术将在化学工业中得到更加广泛的应用,其开发技术必将伴着化学工业一起发展。AutoCAD二次开发在化工制图中的应用几种主要的二次开发语言简介⑴AutoLISPAutoLISP语言是AutoCAD所支持的一种内嵌式语言,它由美国Autodesk公司开发,其目的是使用户十分方便地利用AutoLISP编程语言对AutoCAD进行二次开发,它采用了与LISP语言中的CommonLISP最近的语法和习惯约定,同时又针对AutoCAD增加了许多新的功能,使用户可以直接调用几乎全部的AutoCAD命令,因此它既具有一般高级语言的基本结构和功能,又具有AutoCAD强大的图形处理能力,是目前计算机辅助设计和绘图中较广泛采用的语言之一。⑵VisualLISPVisualLISP(简称VLISP)是为加速AutoLISP程序开发而设计的强有力的工具。它提供了一个完整的集成开发环境(包括编译器、调试器及其他工具,它可以显著地提高自定义AutoCAD的效率)。VisualLISP提供的主要工具有:文本编辑器、格式编排器、语法检查器、源代码调试器、检验和监视工具、文件编译器、工程管理系统/快捷相关帮助与自动匹配功能和智能化控制台等。VisualLISP克服了AutoLISP一直以来开发中所存在的诸多不便和某些局限性。从语言方面看,VisualLISP对AutoLISP语言进行了扩展,可以通过MicrosoftActiveXAutomation接口与对象交互。同时,通过实现事件反应器函数,还扩展了AutoLISP响应事件的能力。VisualLISP已经被完整地集成到AutoCAD中。AutoCAD二次开发在化工制图中的应用⑶VBAVBA(VisualBasicforApplication)最早是建立在Office97中的标准宏语言,由于它在开发方面的易用性且功能强大,许多软件开发商都将其嵌入自己的应用程序中,作为一种开发工具提供给用户使用。而AutoCADVBA就是集成在AutoCAD中的VisualBasic开发环境,与VB的主要区别是VBA在与AutoCAD相同的进程空间中运行,提供了与AutoCAD关联的快捷的编程环境,程序设计直观快捷。它还提供了与其它可使用VBA应用程序集成的能力,可以作为其它应用程序如Word或Excel的自动化控制器。可以看出,VBA是其中编程很为快捷方便的一种,对于非计算机专业而更多熟悉VB编程语言的人来说,可以很快就掌握它。⑷ADSADS的全名是AutoCADDevelopmentSystem,它是AutoCAD的C语言开发系统,ADS本质上是一组可以用C语言编写AutoCAD应用程序的头文件和目标库,它直接利用用户熟悉的各种流行的C语言编译器,将应用程序编译成可执行的文件在AutoCAD环境下运行,这种可以在AutoCAD环境中直接运行的可执行文件叫做ADS应用程序。ADS由于其速度快,又采用结构化的编程体系,因而很适合于高强度的数据处理,如二次开发的机械设计CAD、工程分析CAD、建筑结构CAD、土木工程CAD、化学工程CAD、电气工程CAD等。AutoCAD二次开发在化工制图中的应用⑸ObjectARX

ObjectARX是一种崭新的开发AutoCAD应用程序的工具,她以C++为编程语言,采用先进的面向对象的编程原理,提供可与AutoCAD直接交互的开发环境,能使用户方便快捷地开发出高效简洁的AutoCAD应用程序。ObjectARX并没有包含在AutoCAD中,可在AutoDESK公司网站中去下载,其最新版本是ObjectARXforAutoCAD2005,它能够对AutoCAD的所有事务进行完整的、先进的、面向对象的设计与开发,并且开发的应用程序速度更快、集成度更高、稳定性更强。⑹ActiveXAutomation ActiveX技术来源于OLE(ObjectLinkingandEmbedding)技术。OLE最初是对象链接与嵌入,后来发展成为复合文档技术,包括文字、图片、声音、动画片和视频等媒体可以共同存在于一个文档中。它们可以由不同的应用程序产生,同时也可以在该文档中编辑。如果应用程序支持OLE文档,则在不同应用程序之间的切换由OLE自动完成。OLE技术和其它技术共同作用,从而实现不同应用程序之间的无缝链接。自动化技术(Automation)允许一个应用程序驱动另外一个程序。驱动程序被称为自动化客户,另一个为自动化服务器。自动化技术后来发展成为ActiveXAutomation。AutoCAD二次开发在化工制图中的应用⑺VisualJava

Java是最早由Sun公司创建的一种颇具魅力的程序设计语言,她是针对嵌入系统而设计的。像许多开发语言一样,Java是一组实时库的集合,可为软件开发者提供多种工具来创建软件、管理用户接口、进行网络通讯、发布应用程序等。对AutoCAD用户和开发者而言,Java代表着新一代的编程语言,它主要用于开发出全新的优秀产品。AutoCAD二次开发在化工制图中的应用化工AutoCAD二次软件开发的思路及步骤化工AutoCAD二次软件的开发和其它软件的开发一样,均需遵循一定的规律。一般来说,一个完善的AutoCAD二次软件开发过程可以分成4个阶段的内容,它们分别是系统规划、系统开发、系统运行与维护、系统更新。而系统规划又可以分成3个方面的内容,它们分别是战略规划、需求分析、资源分配。在这个阶段,我们主要任务是确定所需要开发软件的目的、使用对象、使用者的要求、开发者目前的能力及拥有的资源。软件开发的第二阶段是系统开发,它包括系统分析、系统设计、系统实施。这时的主要任务根据第一阶段已经做的工作基础上,提出所开发软件的逻辑方案、确定系统开发中每一步的内容和任务,在此基础上,再进行系统总体结构设计,提出系统总体布局的方案。至此,软件开发工作还停留在逻辑开发状态,尚未进入具体的编码工作。软件开发完成第二阶段的系统设计后,就进入了实质性的编码工作,也就是说进入了系统的实施阶段,这时要完成各种编码工作,完善系统各个接口之间的联络,改善界面的友好程度,对整个软件进行组装及调试,最后完成交付使用前的各项工作。如该保密的部分需要进行封装;可以公开的部分需要做好友善的人机界面。AutoCAD二次开发在化工制图中的应用软件开发的第三阶段是运行和维护阶段,一般对于规模较小的软件,对这方面的考虑就比较少。比如我们自己经常开发一些小软件来解决一些实际问题,就较少考虑以后的维护,一般只要满足目前的应用就可以了。但对于一个完善的软件来说,就需要考虑实际运行过程中出现的各种情况,并有解决方案及维护方法。这样,就会使得一个看上去较小的软件,也会变得复杂起来,但这种复杂为使用和维护带来了方便,提高了软件对付外来情况的能力,提高了软件的使用寿命,实际上等于节约了软件使用成本。任何一个软件,总有它更新的时候,此时,进入了软件开发的第4阶段,即系统更新阶段,在新的情况下,对原有的系统进行更新开发。AutoCAD二次开发在化工制图中的应用AutoLISP语言基础本章目录基本运算基本函数编程中常用的分支及条件判断函数常用的绘图命令AutoLISP命令调用过程

⑴加法

格式:(+<数><数>…)功能:求出所列数的总和实例:(+2030)结果为50(+15-10)结果为5⑵减法格式:(-<数><数>…)功能:求出第一个数逐次减去后面数的差实例:(-1203050)结果为40(-15-10)结果为25⑶乘法格式:(*<数><数>…)功能:求出所列数的乘积实例:(*2030)结果为600(*1.5-102)结果为-30⑷除法格式:(/<数><数>…)功能:求出第一个数逐次除以后面数的商实例:(/20)结果为20(/1302)结果为65(/330)由于表中的两个元素均为整型数,结果也为整型数,故结果为0(/3.030)结果为0.1

(/30(/69))系统显示被0除,原因在于表(/69)的值为0AutoLISP语言基础基本运算⑸自然数求幂格式:(exp<数>)功能:求e的<数>次幂值,e=2.71828实例:(exp2.0)结果为7.3890561(exp0)结果为1⑹普通数求幂格式:(expt<底数><幂>)功能:求<底数>的<幂>次方值实例:(expt23)结果为8⑺求自然对数格式:(log<数>)功能:求<数>的自然对数,要求<数>必须大于零实例:(log10.0)结果为2.3025851⑻求平方根格式:(sqrt<数>)功能:求<数>的平方根,要求<数>必须大于零实例:(sqrt4.0)结果为2.0AutoLISP语言基础基本运算⑼求绝对值格式:(abs<数>)功能:求<数>的绝对值实例:(abs-3)结果为3⑽求最大值格式:(max<数1><数2>…)功能:求<数1>,<数2>…的最大值实例:(max23410)结果为10⑾求余数格式:(rem<数1><数2>…)功能:求<数1>整除<数2>的余数,若参数多于两个,则将<数1>整除<数2>后的余数再整除<数3>,求出余数,以此类推。实例:(rem5094)结果为1AutoLISP语言基础基本运算AutoLISP语言基础⑴正弦函数SIN格式:(sin<角度>),其中<角度>用弧度表示功能:求<角度>的正弦值实例:(sin(/pi2))结果为1⑵余弦函数COS格式:(cos<角度>),其中<角度>用弧度表示功能:求<角度>余弦值实例:(cos(/pi2))结果为0⑶正切TAN格式:(tan<角度>),其中<角度>用弧度表示功能:求<角度>正切值实例:(tan(/pi4))结果为1⑷反正切函数ATAN格式:(atan<数>)功能:求<数>反正切值,单位为弧度,为[-π/2,π/2]实例:(atan(1))结果为0.785398,即(π/4)实例:(cos(/pi2))结果为0基本函数⑸取整函数FIX格式:(fix<数>)功能:求<数>的整数部分,相当于高级语言中的“INT(数)”语句。实例:(fix7.8)结果为7(fix-7.8)结果为-7(fix9)结果为9⑹实型化函数FLOAT格式:(float<数>)功能:求<数>转化为实型数,不考虑该数原来的类型实例:(float3)结果为3.0(float3.3)结果为3.3⑺赋值函数SETQ 格式:(setq<变量1><表达式1>[<变量2><表达式2>]…)功能:将表达式的值赋给变量,变量和表达式需成对出现实例:(setqa10)结果a=10(setqs“it”)结果s=“it”(setqb123c10d45)结果b=123c=10d=45(setqt(+3445))结果t=79(setqP1‘(3445))(setqp1'(3040))//确定点P1的坐标(setqp2'(300400))//确定点P2的坐标(command“line”p1p2“”)//绘制从P1点到P2点的直线AutoLISP语言基础基本函数⑻取表中第一元素CAR函数格式:(car<表>),表必须为引用表而非标准表,但可以是简单表,也可以是嵌套表。功能:提取<表>的顶层第一个元素实例:(car‘(135))结果为1(car‘((13)65))结果为(13)⑼取表中除第一元素外其它元素的CDR函数格式:(cdr<表>),表必须为引用表而非标准表,但可以是简单表,也可以是嵌套表。功能:提取<表>的除顶层第一个元素外的其它元素实例:(cdr‘(135))结果为(35)(cdr‘((13)65))结果为(65)⑽CAR和CDR的组合函数CAR和CDR可以任意组合,其组合深度可达4层,执行时从右到左依次执行,若搞错次序,其结果必然出错。4个层次的组合形式为CAR、CXXR、CXXXR、CXXXXR,其中X既可以是A也可以是D,例如:(cadr'(2(123)34))结果为(123)(caadr'(2((116)23)34))结果为(116)(caaadr'(2((116)23)34))结果为11(caaddr'(2((116)23)(34)))结果3AutoLISP语言基础基本函数⑾LAST函数格式:(last<表>),表必须为引用表而非标准表,但可以是简单表,也可以是嵌套表。功能:提取<表>的顶层中最后一个元素实例:(last'(123))结果为3(last‘(123(45)))结果为(45)⑿NTH函数格式:(nth<序号><表>),表必须为引用表而非标准表,但可以是简单表,也可以是嵌套表。功能:提取<表>中第<序号>个元素,注意第一个元素的序号为0号,以此类推。实例:(nth2'(23(45)5))结果为(45)(nth3'(23(45)5))结果为5⒀LIST函数格式:(list<表达式1><表达式2>……)功能:将所有的<表达式>按原位置构成新表,可用于确定点的坐标位置。实例:(list23'(56))结果为(23(56))(list23)结果为(23)下面是一个利用list确定点的位置,绘制圆的小程序:(setqp1(list22233))(setqp2(list200300))(command"circle"p2160)(command"circle"p1160)AutoLISP语言基础基本函数⒁ATOF函数格式:(atof<数字串>)功能:将<数字串>转换成实型数,返回实型数实例:(atof"23")返回结果为23.0⒂ASCII函数格式:(ascii<字符串>)功能:将<字符串>中第一个字符转换成ASCII码,并返回该值实例:(ascii"bc")返回结果为98⒃CHR函数格式:(chr<整数>)功能:将ASCII码为<整数>的转换成相应字符,并返回该字符实例:(chr69)返回结果为"E"(chr80)返回结果为"P“⒄ITOA函数格式:(itoa<整数>)功能:将<整数>转换成整数字符串实例:(itoa5)返回结果为"5“AutoLISP语言基础基本函数⒅ATOI函数格式:(atoi<数字串>)功能:将<数字串>转换成整数,返回值截去小数部分实例:(atoi"45.4")返回结果为45(atoi"-5.6")返回结果为-5(atoi"7")返回结果为7(atoi"34.6ac")返回结果为34(atoi"df43")45返回结果为0说明:当数字串中有非数字字符时,则转换到第一个非数字原子时终止。⒆STRCAT函数格式:(strcat<字符串1><字符串2>……)功能:将<字符串>按先后顺序头尾相连起来,组成一个新的字符串。实例:(strcat"bc""etr""ty")返回结果为"bcetrty"AutoLISP语言基础基本函数(20)SUBSTR函数格式:(substr<字符串><起点>[<长度>]功能:从<字符串>中提取一个子串,该子串从起点的字符位置开始,由连续<长度>个字符组成,若<长度>缺省,则到字符串结束。实例:(substr"b212c"23)返回结果为"212"(substr"b2er12c"2)返回结果为"2er12c“(21)READ函数格式:(read<字符串>)功能:将<字符串>转化成表或原子,文件处理时经常使用实例:(read"ad")返回结果为AD(read"b")返回结果为B(read"(ab)")返回结果为(AB)(read"(34)")返回结果为(34)AutoLISP语言基础基本函数编程中常用的分支及条件判断函数

在程序编写中经常会用到一些条件判断函数及循环函数,没有这些函数,就难以完成一个理想的程序,下面将一些在编程中使用程度较高的函数介绍一下。⑴关系运算函数关系运算函数是编程中分支及条件判断函数的基础,它对数值型表达式的大小进行比较,表达式可以是两个或两个以上,其返回值是逻辑变量。比较运算成立,则返回T;不成立则返回nil,常作为条件用于条件判断语句和循环判断语句中,这一点将在下面讲解中提到。AutoLISP共有6种关系运算函数,它们分别是“=”等于、“/=”不等于、“<”小于、“>”大于、“<=”小于等于、“>=”大于等于。其中等于的关系函数,其表达式只能两个,下面是6种关系函数的实际例子:AutoLISP语言基础(<2456)返回结果T(<2453)返回结果nil,全程比较(>8739)返回结果nil,全程比较(>8731)返回结果T(=22)返回结果T(="s""b")返回结果nil(/=123)返回结果T(/=113)返回结果nil,只比较前面两个表达式(<=335)返回结果T(>=551)返回结果T⑵逻辑运算函数AutoLISP共有3种逻辑运算函数,分别是逻辑和AND、逻辑或OR、逻辑非NOT,下面通过实例说明其应用。(andadc3)返回结果nil,只要有一个表达式为假,则返回nil(anddc)返回结果nil(setqa3b4)返回结果4,返回最后一个赋值(andab)返回结果T,由于前面给a、b赋了值(and(<23)(+13)(>35))返回结果nil(or12ab)返回结果T,只要有一个表达式为真,则返回T(or(>42)(<42))返回结果T(not2)返回结果nil(not(>69))返回结果T⑶二分支条件函数IF格式:(if<测试表达式><成立表达式><非表达式>)功能:对<测试表达式>进行运算,若<测试表达式>成立,则执行<成立表达式>,否则,执行<非表达式>,两者必居其一,所以称之为二分支条件函数,是在编程中经常用到的条件判断函数。下面是几个实际例子:(if(=13)35)测试式不成立,执行第二个表达式,第二个表达式为原子,返回5(if(<13)(setqa2)(setqa9))测试式成立,执行第一个表达式,返回2(if(=13)"yes")测试式不成立,但无第二个表达式,返回nil(if1"yes""no")测试表达式为1,虽然不为T,但也不为nil,仍执行第一表达式,返回“yes”AutoLISP语言基础⑷多分支条件函数COND前面二分支条件函数只能解决两种结果中选一种的条件判断,若有多个条件中选一,则需用COND函数。格式:(cond(<测试表达式1><结果表达式1>)(<测试表达式2><结果表达式2>)::(<测试表达式n><结果表达式n>))该函数的参数为任意数目的表,每个表有两个元素,第一个元素为测试式,第二个元素为结果。功能:对每一个支表中的<测试表达式>依次进行运算,若<测试表达式>成立,则执行该支表对应的<结果表达式>,停止后面的测试工作;否则,继续执行<测试表达式>,直到最后一个分支条件。AutoLISP语言基础⑸顺序控制函数PROGN常和IF函数一起使用,使其在某一条件下,顺序执行多个表达式。格式:(progn<表达式1>

<表达式2>::)功能:按顺序执行多个表达式,并返回最后表达式求值结果,表达式需为标准表。⑹常见测试函数ZEROP函数用于判断测试项是否为零,若为零,则返回T,否则返回nil。MINUSP函数用于判断测试项是否为负,若为负,则返回T,否则返回nil。NUMBERP函数用于判断测试项是否为数,若为数,则返回T,否则返回nil。ATOM函数用于判断测试项是否为原子,若为原子数,则返回T,否则返回nil。LISTP函数用于判断测试项是否为表,若为表,则返回T,否则返回nil。AutoLISP语言基础⑺循环函数在各种程序编写中,循环语句是不可缺少的,AutoLISP的两种主要循环函数是WHILE函数和REPEAT函数,下面分别介绍之。①WHILE函数格式:(while<测试表达式>[标准表1][标准表2]:)功能:先对测试表达式进行测试,若其值不为nil,则依次执行下面的各个[标准表],执行完各[标准表]后,再返回来对测试表达式进行测试,直至测试表达式为nil,停止循环执行。②REPEAT函数格式:(repeat<次数>[标准表1][标准表2]:)功能:按该定的次数进行循环计算式为nil,停止循环执行。AutoLISP语言基础常用的绘图命令⑴常用的交互命令在程序编写中经常要用到一些交互式命令,通过交互命令,可提高程序的人机对话能力。AutoLISP也提供了一些常见的交互命令,下面分别介绍。①输入整型数GETINT格式:(getint[提示])功能:该函数提示用户输入一个整型数,并返回该数,常和赋值函数SETQ合用实例:(setqn(getint“n=”))//等待用户输入一个整型数,并将该数赋值给n。②输入实型数GETREAL格式:(getreal[提示])功能:该函数提示用户输入一个整型数,并返回该数,常和赋值函数SETQ合用实例:(setqa(getreal“a=”))//等待用户输入一个实型数,并将该数赋值给a。③输入字符串GETSTRING格式:(getstring[提示])功能:该函数提示用户输入一个字符串,并返回该数,常和赋值函数SETQ合用实例:(setqm(getstring“yourname”))//等待用户输入一个字符串,并将该字符串赋值给m,若输入xiaodong,返回“xiaodong”。需要注意的是输入字符串时,千万别用空格键,否则只把空格键以前的内容作为输入的字符串。AutoLISP语言基础④输入点GETPOINT格式:(getpoint[基点][提示])功能:该函数提示用户输入一个点,若有基点,这将从基点到输入的点之间画一条直线拖动直线,但命令执行过后消失。实例:(setqP1(getpoint‘(4050)“第二点”))//等待用户从键盘输入点或用光标选点。⑤输入距离值GETDIST格式:(getdist[提示])功能:该函数提示用户输入一个距离值。实例:(setqtspac(getdist“输入距离”))//等待用户从键盘输入某一数值。⑵点的确定确定点的位置,是进行各种绘制工作的基础,除了前面介绍的用getpoint函数外,还可以用下面几种方法确定点(通过绘制直线的小程序加以说明验证)。实例:(setqp1'(3040))//用禁止求值表,确定P1点的位置(setqp2'(300400))(command"line"p1p2"")⑶直线的绘制LINE格式:(command“line”P1P2P3…………[条件])功能:将P1、P2、P3…….等点用直线连接起来,其中[条件]可缺省,若条件中输入“c“,则绘制的将是封闭曲线。AutoLISP语言基础⑷多义线绘制格式:(command“pline”<起点>“w”<起点线宽><末点线宽><第二点>……<末点>[条件])功能:将P1、P2、P3…….等点用各种曲线连接起来,其中[条件]可缺省,若条件中输入“c“,则绘制的将是封闭曲线。⑸矩形绘制格式:(command“rectang”[倒角(C)/标高(E)/圆角(F)/厚度(T)/宽度(W)]<指定另一个角点>[尺寸(D)]<指定另一个角点>)功能:绘制符合格式中定义的矩形。⑹圆的绘制格式:(command“circle”[三点(3P)/两点(2P)/相切、相切、半径(T)]<圆心<半径>)功能:绘制符合格式中定义的圆,默认的输入方式是圆心、半径,其它输入方式需根据具体选定的形式而定。⑺交点的确定格式:(inters<端点1><端点2><端点3><端点4>[<任选项>])功能:求<端点1>和<端点2>所确定的直线和<端点3>和<端点4>所确定的直线的交点,若存在则返回交点,若不存在,则返回nil。如果有任选项,且该项为nil,则可求延长线的交点。AutoLISP语言基础⑻图层的设置格式:(command“layer”“m”<图层名>“c”<图层颜色>“l”<图层线型>“lw”<图层线宽>"")功能:设置和格式中描述相符合的图层,除图层名为不可缺省外,其它均可采用默认值,当调用图层时,可只采用格式中的前4项。⑼剖面线绘制格式:(command“batcht”<填充图案模式>[<比例>][<角度>]<填充对象>)功能:将<填充对象>按格式中定义的要求进行填充,其中[<比例>]和[<角度>]可默认,<填充对象>有多种获取方法,如果是填充刚绘制好的实体,则可用entlast命令。⑽尺寸标注格式:(command“dim”<标注模式><标注起点><标注终点><标注线位置中点>)[<标注内容>])功能:<标注起点>和<标注终点>之间按标注模式标注尺寸,若标注内容缺省,则按默认方式标注。⑾文本书写格式:(command“text”[<起点类型>]<起点><字高><字旋转角度4><文字内容>)功能:将文字内容按格式中的定义书写出来,如缺省[<起点类型>]则以左下角为起点。AutoLISP语言基础AutoLISP命令调用过程首先将AUTOLISP的程序用任何一种ASCII码文本编辑器来编辑,在DOS环境下可采用EDIT编辑,在WINDOWS环境下可用附件中的记事本编辑,并注意在保存时以.LSP为后缀,一般的调用过程如下。①用编辑器编写好,以*.LSP存盘。②在AutoCAD中的命令中输入:(Load“盘符/子目录/文件名”),回车。③输入:(文件名、参数1、参数2……)[注意参数和参数之间不要加逗号],回车。④在AutoCAD的界面上自动生成图。AutoLISP语言基础VisualLISP基础本章目录安装启动编辑调试安装

VisualLISP无需单独安装,我们在安装AutoCAD2004时已经将其捆绑按安装在一起,只要在使用时调用它即可,这为我们省了不少安装软件过程中的麻烦,同时也使得该软件和AutoCAD之间的关系更加紧密。尤其是VisualLISP中的部分AutoLISP程序几乎可以移植到任何版本的AutoCAD中,而不受版本先后的影响。VisualLISP基础启动

启动VisualLISP有两种方法,但都需首先启动AutoCAD软件。第一种方法是从AutoCAD菜单中选择“工具”>>“AutoLisp”>>“VisualLisp编辑器”;第二中方法是在AutoCAD命令行中输入“vlisp”,启动VisualLisp编辑器。VisualLISP基础编辑VisualLISP的程序在编辑窗口进行编辑,编辑时,系统会自动进行一些识别,并将其显示成不同的颜色。如括号是红色;函数是蓝色,如果想输的是各种函数,一般为表中第一项,但输完后系统没有自动变成蓝色,则说明你输错了;双引号内的绘图命令为粉红色,包括双引号本身;各种变量是黑色;数字是绿色。掌握这些规律对减少编程中的错误很有帮助。在编程过程中,如果遇到一些较为生疏的函数,可以通过系统的帮助功能加以解决。VisualLISP基础调试调试是编程工作中一项十分重要又非常繁重的工作。在没有VisualLISP之前,AutoLISP程序的调试是十分困难的,常常找不到问题之所在。幸好有了VisualLISP,使调试工作有了质的飞跃。利用其提供的调试工具和专用工具,一般可以较快地找到问题。系统调试中最常见的错误是缺少括号或有多余括号;其次是错误函数或命令,常常是绘图命令输错,因为若函数错误,在编写中可以根据颜色判断;还有列表缺陷,被零除及函数被取消。对函数被取消这种现象有点特殊,因为它并不是当前所编的程序有问题,而是在上一次调试过程中,所编程序存在缺陷,使的AutoCAD处于命令等待状态。这时,需要通过视图转换,激活AutoCAD,取消命令等待状态,就可以了。根据我们自己开发程序的经验,认为调试工作需和整个软件的开发工作结合起来。在程序开发的步骤上考虑到调试工作问题,以采用从下到上的程序编程工作为佳,结合该方法,作者推荐如下的编程调试步骤。①将整个软件分解成功能相对独立的功能块,再将功能块分解成若干个小程序。VisualLISP基础②将小程序中的每一个语句,按照先后次序进行编辑。在编辑过程中首先利用颜色的改变,纠正一些明显的错误,如果对某一语句把握不大,可直接加载该语句,判断系统能否通过。关于加载运行可通过选中需要加载的语句,点击专用工具中栏中的第二个工具,一般情况下,以编完相对较完整的一段语句后,再将这段进行加载运行较好,如所有的赋值语句。一段语句编写完成,加载运行结果正确,则进入下一段语句的编写。如正确,但根据错误提示可明显找到问题的,则修改后再加载运行;如无法根据错误提示找到问题的,则可以采用调试工具栏中的各种方法进行错误查找,如仍无法查到,则需逐句加载,但在逐句加载中,需要补充对加载语句中所需变量值的设定工作。通过以上工作,将小程序全局调通,并进行封装。③将同一功能的小程序进行组装,并进行调试,调试完成,将功能程序进行封装。④将不同功能的功能程序进行组装,并进行全局调试,调试通过,完成软件基本开发工作。⑤根据客户应用的各种情况,对软件进行各种测试,对发现问题进行修改,最后得到完善软件,并将其封装。VisualLISP基础DCL基础本章目录定义控件程序编辑软件调试及加载定义对话框是人机交互的主要界面之一,它具有良好的视觉效果,操作方便、直观,输入数据与顺序无关。当我们编写好程序,需要通过外界输入数据时,对话框是一种首选的交互工具。对话框可以用DCL(DialogControlLanguage,即对话框控制语言)来编写。DCL本身可直接在VisualLISP的编辑框中按规律编写,并进行调试和预览工作,编辑完成后,将其后缀取为“.dcl”保存,然后在主程序中用VisualLISP语句调用即可。可向用户提供图形的交互环境,使操作更为方便和直观。DCL文件由ASCII码组成,后缀为“.dcl”。DCL基础控件控件是DCL中的主要组成部分,编写对话框主要就是编写各种控件,对各种控件的属性进行定义,常见的控件主要有Button(按钮)、Edit_box(编辑框)、Image_button(图像按钮)、List_box(列表框)、Popup_list(可下拉列表框)、Radio_button(单选按钮)、Slider(滑动条)、Toggle(复选框)、Text_part(文本控件的一部分)。每一个控件有具有不同的属性,其中控件的典型属性有以下几种。①Label指定显示在控件中的文字,该属性为一带引号的字符串。②Edit_limit指定在编辑框中允许输入的最大字符数个数,缺省值为132。③Edit_width以平均字符宽度为单位指定Edit_box控件中编辑或输入框的文本宽度,该属性值可以是一个整型或实型数值。④Fixed_height布尔型数值,制定控件的高度是否可以占据整个可用空间。缺省值为False,如果属性值为True,则控件的高度保持固定,不会占据由于布局或对齐操作而留出的可用空间。⑤Fixed_width布尔型数值,制定控件的宽度是否可以占据整个可用空间。缺省值为False,如果属性值为True,则控件的宽度保持固定,不会占据由于布局或对齐操作而留出的可用空间。DCL基础⑥Key指定一个ASCII码名称,应用程序可以通过该属性引用指定的控件,该属性为一带引号的字符串,没有缺省值。对话框中各控件的Key值必须是惟一的。注意:Key值区分大小写。⑦Value指定控件的初始值。该属性值为一个带引号的字符串,无缺省值。其中编辑框的Value值为缺省时的数值,可以不用加引号。⑧Aspect_ratio指定图像的宽高比。如果属性值为0.0则图像大小占据整个控件。⑨column控件按钮纵向排列,注意需从整体上观察。⑩row控件水平排列,同样需丛整体上观察。DCL基础程序编辑下面通过一个较典型的对话框来说明对话框程序的编写过程。首先来观察一下这个对话框的结构,从大范围来看,是一个大列,列中共有5大行组成,其中第二行又是一个框型列,而第三行是一个框型行,需要进行重新定义。另外在第一大行和第二大行之间留一个空白。图9-9对话框逻辑位置示意图图9-10具体对话框示意图DCL基础软件调试及加载软件编写好后,先将文件以后缀“.dcl”保存,将会发现除了程序中最前面的对话框名称dialogboxstructure是黑色以外,其它都是有颜色的。如果还发现有黑色的字符在控件名称或属性说明中出现,请先检查修改之,等程序满足颜色要求后,点击菜单栏中的“工具”,选择其中的“界面工具”,再点击“预览编辑器中的DCL”。如果所编程序正确的话,系统就会弹出正确的对话框;反之,系统会弹出出错信息,并说明错误在第几行。用户需根据系统提示的问题进行修改,直至在预览中获取正确的对话框。对话框程序编写好后,在具体应用时,尚需编写调用程序。DCL基础实例开发详见教材本章目录谢谢观看/欢迎下载BYFAITHIMEANAVISIONOFGOODONECHERISHESANDTHEENTHUSIASMTHATPUSHESONETOSEEKITSFULFILLMENTREGARDLESSOFOBSTACLES.BYFAITHIBYFAITH安全注射与职业防护PART01一、安全注射二、职业防护主要内容安全注射阻断院感注射传播让注射更安全!《健康报》

别让输液成为一个经济问题有数据显示,是世界最大的“注射大国”。2009年我国平均每人输液8瓶,远远高于国际上人均2.5—3.3瓶的平均水平。我国抗生素人均消费量是全球平均量的10倍。因此我国被称为:

“输液大国、抗生素大国和药品滥用大国”。2016年国家十五部委重拳出击

遏制细菌耐药《阻断院感注射传播,让注射更安全(2016-2018年)》专项工作指导方案量化指标医疗卫生机构安全注射环境、设施条件、器具配置等合格率100%医务人员安全注射培训覆盖率100%规范使用一次性无菌注射器实施注射100%(硬膜外麻醉、腰麻除外)医疗卫生机构对注射后医疗废物正确处理率100%医疗卫生机构内部安全注射质控覆盖率100%医务人员安全注射知识知晓率≧95%医务人员安全注射操作依从性≧90%医务人员注射相关锐器伤发生率较基线下降≧20%相关内容基本概念安全注射现况不安全注射的危害如何实现安全注射意外针刺伤的处理

基本概念

注射

注射是指采用注射器、钢针、留置针、导管等医疗器械将液体或气体注入体内,达到诊断、治疗等目的的过程和方法。包括肌内注射、皮内注射、皮下注射、静脉输液或注射、牙科注射及使用以上医疗器械实施的采血和各类穿刺性操作。

基本概念

符合三个方面的要求:对接受注射者无危害;对实施者无危害;注射后的废弃物不对环境和他人造成危害。不安全注射发生率东欧:15%中东:15%亚州:50%印度:50%中国:50%对我国某地3066个免疫接种点的调查表明:一人一针一管的接种点为33.5%一人一针的接种点为62.1%一人一针也做不到的接种点......

目前情况

不安全注射

没有遵循上述要求的注射常见不安全注射-对接受注射者不必要的注射注射器具重复使用注射器或针头污染或重复使用手卫生欠佳注射药品污染不当的注射技术或注射部位医用纱布或其他物品中潜藏的锐器常见不安全注射-对接受注射者减少不必要的注射是防止注射相关感染的最好方法据调查,从医疗的角度来说,有些国家高达70%的注射不是必须的应优先考虑那些同样能达到有效治疗的其他方法口服纳肛不安全注射-对实施注射者采血技术欠佳双手转移血液不安全的血液运输手卫生欠佳废弃锐器未分类放置不必要的注射双手针头复帽重复使用锐器锐器盒不能伸手可及患者体位不当不安全注射-对他人不必要的注射带来过多医疗废物医疗废物处置不当废弃锐器置于锐器盒外与医用纱布混放放在不安全的处置地点—如走廊中容易拌倒废物处理者未着防护用品(靴子,手套等)重复使用注射器或针头最佳注射操作注射器材和药物注射器材药物注射准备注射管理锐器伤的预防废物管理常规安全操作手卫生手套其他一次性个人防护装备备皮和消毒清理手术器械医疗废物二次分拣2023/7/6Dr.HUBijie702023/7/611/05/0970锐器盒摆放位置不合适,放在地上或治疗车下层头皮针入锐器盒时极易散落在盒外,医废收集人员或护士在整理过程中容易发生损伤不正确使用利器盒绝大部分医务人员对安全注射的概念的理解普遍仅局限于“三查七对”,因此安全注射的依从率也非常低。安全注射现况滥用注射导致感染在口服给药有效的情况下而注射给药临床表现、诊断不支持而使用注射治疗

由于滥用注射,导致感染的发生几率明显增加。安全注射现况注射风险外部输入风险:注射器具、药品、材料等产品质量;非正确使用信息,非正规或正规培训传递错误信息,非合理用药及操作习惯等。内部衍生风险:注射的“过度”与“滥用”、非正确的注射、未达标的消毒灭菌、被相对忽略的职业暴露、不被关注的医疗废物管理。

安全注射现况

当前院感注射途径传播的高风险因素使用同一溶媒注射器的重复使用操作台面杂乱,注射器易污染注射后医疗废物管理欠规范---注射器手工分离与二次分捡

对患者的危害-------传播感染

是传播血源性感染的主要途径之一,也是不安全注射的最主要危害。注射是医院感染传播的主要途径之一!不安全注射的危害导致多种细菌感染,如脓肿、败血症、心内膜炎及破伤风等。败血症破伤风心内膜炎脓肿不安全注射

不安全注射的危害

对医务人员的影响

针刺伤:每年临床约有80.6%-88.9%的医务人员受到不同频率的针刺伤!原因:防护意识薄弱、经验不足、操作不规范、防护知识缺乏。

不安全注射的危害

对社会的危害

拿捡来的注射器当“玩具”

不安全注射的危害

如何实现安全注射三防:人防、技防、器防四减少:减少非必须的注射操作减少非规范的注射操作减少注射操作中的职业暴露减少注射相关医疗废物

如何实现安全注射

重视环境的准备警惕锐器伤正确物品管理严格无菌操作熟悉操作规程执行手卫生安全注射

如何实现安全注射

进行注射操作前半小时应停止清扫地面等工作。避免不必要的人员活动。严禁在非清洁区域进行注射准备等工作。应在指定的不会被血液和体液污染的干净区域里,进行注射准备。当进行注射准备时,必须遵循以下三步骤:1.保持注射准备区整洁、不杂乱,这样可以很容易清洁所有表面2.开始注射前,无论准备区表面是否有血液或体液污染,都应清洁消毒。3.准备好注射所需的所有器材:-无菌一次性使用的针头和注射器-无菌水或特定稀释液等配制药液-酒精棉签或药棉-锐器盒重视环境的准备手卫生之前先做脑卫生!观念的改变非常重要!安全注射,“手”当其冲!认真执行手卫生工作人员注射前必须洗手、戴口罩,保持衣帽整洁;注射后应洗手。操作前的准备注射前需确保注射器和药物处于有效期内且外包装完整。操作前的准备给药操作指导单剂量药瓶——只要有可能,对每位患者都使用单剂量药瓶,以减少患者间的交叉污染多剂量小瓶——如果别无选择,才使用多剂量药瓶-在对每个患者护理时,每次只打开一个药瓶-如果可能,一个患者一个多剂量药瓶,并在药瓶上写上患者姓名,分开存储在治疗室或药房中-不要将多剂量药瓶放在开放病房中,在那里药品可能被不经意的喷雾或飞溅物污染药物准备给药操作指导丢弃多剂量药瓶:-如果已失去无菌状态-如果已超过有效日期或时间(即使药瓶含有抗菌防腐剂)-如果打开后没有适当保存-如果不含防腐剂,打开超过24小时,或制造商建议的使用时间后-如果发现未注明有效日期、储存不当,或药品在不经意间被污染或已知道被污染(无论是否过期)药物准备给药操作指导具有跳起打开装置的安瓿瓶——只要有可能,就使用具有跳起打开装置的安瓿瓶,而不是需要金属锉刀才能打开的安瓿瓶如果是需要金属锉刀才能打开的安瓿瓶,在打开安瓿瓶时,需使用干净的保护垫(如一个小纱布垫)保护手指药物准备准备好注射所需的所有器材:-无菌一次性使用的针头和注射器-无菌水或特定稀释液等配制药液-酒精棉签或药棉-锐器盒注射准备对药瓶隔膜的操作步骤在刺入药瓶前用蘸有70%乙醇棉签或棉球擦拭药瓶隔膜(隔层),并在插入器材前使其晾干每次插入多剂量药瓶都要使用一个无菌注射器和针头不要把针头留在多剂量药瓶上注射器和针头一旦从多剂量药瓶中吸出药品并拔出,应尽快进行注射注射准备贴标签多剂量药瓶配制后,应在药瓶上贴上标签:-配制日期和时间药物的种类和剂量-配制浓度-失效日期和时间-配制者签名对于不需要配制的多剂量药品,贴上标签:-开启日期和时间-开启者名字和签名注射准备皮肤消毒剂在有效期内使用。严格落实皮肤消毒的操作流程(以注射点作为中心,自内向外,直径5cm以上)。一人一针一管一用,禁止重复使用。熟悉操作规程,严格无菌操作使用同一溶媒配置不同药液时,必须每次更换使用未启封的一次性使用无菌注射器和针头抽取溶媒。必须多剂量用药时,必须做到一人一针一次使用。熟悉操作规程,严格无菌操作熟悉操作规程,严格无菌操作红圈标注地方绝对不能碰触!××熟悉操作规程,严格无菌操作皮肤消毒后不应再用未消毒的手指触摸穿刺点!皮肤消毒后应完全待干后再进行注射!熟悉操作规程,严格无菌操作现配现用药液抽出的药液、开启的静脉输入用无菌液体须注明开启日期和时间,放置时间超过2小时后不得使用;启封抽吸的各种溶媒超过24小时不得使用。药品保存应遵循厂家的建议,不得保存在与患者密切接触的区域,疑有污染或保存不当时应立即停止使用,并进行妥善处置。

熟悉操作规程,严格无菌操作

2小时内:——输注类药品;

24小时内:

——溶媒启封抽吸后;

——灭菌物品启封后(棉球、纱布等)提倡使用小包装。每周更换2次:

——非一次性使用的碘酒、酒精等,容器应灭菌。

7天内:——启封后一次性小包装的瓶装碘酒、酒精.药品保存:——应遵循厂家的建议(温度、避光)——不得保存在与患者密切接触的区域。——疑有污染禁用。应注明开启时间物品管理

禁止双手回套针帽禁止用手传递利器禁止用手分离注射器针头禁止手持锐器随意走动

温馨提示

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

最新文档

评论

0/150

提交评论