欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    编程实例清华CAD二次开发LISP.ppt

    • 资源ID:6393741       资源大小:1.18MB        全文页数:105页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    编程实例清华CAD二次开发LISP.ppt

    第 8 章 编程实例,8.1设置作图环境 编程作图和交互作图一样,也需要设置作图的环境,例如图纸的范围、绘图的单位、目标捕捉的类型、图层、颜色、线型、线宽、字样等,如果缺少对作图环境的设置,只能是利用加载程序时AutoCAD提供的默认环境。设置一个合适的作图环境不仅可以提高作图的精度和效率,有时还会影响到所绘制的图纸是否符合企业的规范和满足生产的需要。用程序实现设置作图环境的功能可以通过command函数调用相关的命令,或者通过setvar函数改变相应系统变量的当前值或当前状态。有些功能只能通过上述一种途径实现,有些功能可以通过上述两种途径实现。,1.设置图纸的范围 例如设置A3图纸的作图范围(1)通过command函数设置图纸的范围(command limits 0,0 420,297)或者(command limits(0 0)(420 297)或者(command limits(list 0 0)(list 420 297)这时p1、p2分别是作图范围的左下和右上角点,上式可改写为:(command limits p1 p2),0,0,420,297,(2)通过setvar函数设置图纸的范围 系统变量limmin和limmax分别对应于图纸的左下和右上角点,只需用setvar函数设置它们以新的值即可。(setvar limmin(0 0)或者(setvar limmin(list 0 0)或者(setvar limmin 0,0)或者(setvar limmin p1)设置图纸的右上角点的表达式如下:(setvar limmax(420 297)或者(setvar limmax(list 420 297)或者(setvar limmax 420,297)或者(setvar limmax p2),2.设置绘图的长度和角度单位 例如将绘图的长度单位设置为十进制、3位小数,角度单位设置为十进制的度()十进制、2位小数、X轴正方向为0、逆时针方向为正。(1)通过command函数设置绘图的长度和角度单位(command units 2 3 1 2 0 N)command的参数说明如下:units:AutoCAD设置绘图单位的命令;2:长度单位为十进制;3:3位小数;1:角度单位为十进制的度;2:2位小数;0:X轴正方向为0;N:非顺时针,即逆时针为正。,(2)通过setvar函数设置设置绘图的长度和角度单位(setvar lunits 2);长度单位为十进制(setvar luprec 3);长度单位3位小数(setvar aunits 1);角度单位为十进制的度(setvar auprec 2);角度单位为长2位小数(setvar angbase 0.0);X轴正方向为0(setvar angdir 0);逆时针方向为正,3.设置目标捕捉的类型 交互操作时,目标捕捉类型的选项是字符串,它以编码的形式记录在系统变量osmode内,代码的具体含义是:0:NONe(不标捕捉任何类型的对象)1:ENDpoint(线段和圆弧的端点)2:MIDpoint(线段和圆弧的中点)4:CENter(圆、椭圆和圆弧的中心点),ENDpoint MIDpoint CENter,8:NODe(结点,用point命令生成的点)16:QUAdrant(圆和圆弧的象限点)32:INTersection(线段和圆弧的交点),NODe QUAdrant INTersection,64:INSertion(图块或字符串的插入点)128:PERpendicular(垂足),INSertion PERpendicular,256:TANgent(切点)512:NEArest(对象上的最近点)1024:QUIck(快速捕捉)2048:APParent Intersection(在观察方向上相交的点)4096:EXTension(延长线上的点)8192:PARallel(与所选对象平行的点),TANgent APParent Intersection EXTension PARallel,(1)通过command函数设置设置目标捕捉的类型(command osnap endpoint,midpoint,center);捕捉端点、中点和中心(command osnap none);不捕捉任何类型(2)通过setvar函数设置目标捕捉的类型(setvar osmode 7);7是捕捉端点、中点和中心的代码之和(setvar osmode 0);不捕捉任何类型 将osmode设置为0(不捕捉任何类型)是通常的设置。假定osmode的当前值为1,将捕捉直线或圆弧的端点。在这种情况下,如果指定的是p点,而p点处刚好有一条直线,那么实际获取的是该直线距p点较近的那个端点,而不是p点本身。所以应该用setvar函数将osmode设置为0。,4.抑制AutoCAD普通命令的提示 在运行程序的过程中,可能会显示AutoCAD普通命令的提示。例如command函数在调用line命令绘制直线时,在命令提示区会出现下图的提示。如果不关心这些信息,应该将其关闭,可以提高程序的运行速度。通过setvar函数抑制AutoCAD普通命令的提示,表达式如下:(setvar cmdecho 0)cmdecho是控制普通命令提示是否显示的系统变量,当其为1时,照常显示AutoCAD普通命令的提示,将其设置为0,将抑制这样的一些提示,但仍然显示某些AutoLISP函数的提示信息。通常应将cmdecho设置为0。,8.2 设置图层、颜色、线型和线宽 1.创建一个当前图层 假定图层的名字是“zhongxin”、颜色为红色、线型为center、线宽为0.2,通过command函数创建一个当前图层表达式如下:(command layer Make zhongxin Color 1 zhongxin Ltype Center zhongxin LWeight 0.2 zhongxin)因为在命令行操作时,layer命令需要空回车响应“?/Make/Set/New/ON/OFF/Color/Ltype/LWeight/Plot/Freeze/Thaw/LOck/Unlock/state”提示才能结束该命令,所以在右括号前增加一对引号(注意,引号内没有空格)。因为Make、Color、Ltype、LWeight等选项可以简写为M、C、L、LW,所以上式可改为:(command layer M zhongxin C 1 zhongxin L Center zhongxin LW 0.2 zhongxin),又因为当前图层的名字是Color、Ltype等选项默认的图层名,所以上式可改为:(command layer M zhongxin C 1 L Center LW 0.2)如果当前图层的颜色、线型、线宽等为默认的选择,表达式如下:(command layer M cuxian)图层cuxian是当前图层、颜色号为7(白/黑)、线型为continuous、线宽为当前图形对象的默认线宽。如果某图层已经存在,只是将其改变为当前状态,其表达式如下:(command layer M cuxian)或者(command layer S cuxian),2.设置新图形对象的颜色(1)通过command函数设置新图形对象的颜色(command color 3)或者(command color green);设置新图形对象的颜色为绿色(2)通过setvar函数设置新图形对象的颜色(setvar cecolor 2)或者(setvar“cecolor”“yellow”);设置新图形对象的颜色为黄色,3.设置新图形对象的线型(1)通过command函数设置新图形对象的线型(command linetype s centerset);设置新图形对象的线型为中心线(2)通过setvar函数设置新图形对象的线型(setvar celtype dashed);设置新图形对象的线型为虚线,4.设置线型比例因子的大小 除了实线(continuous)之外,每种线型都是由不同长度的短划线、空白段或点组成的。在不同的显示比例下,这些短划线和空白段的视觉效果可能过大或过小。改变线型比例因子的大小并不改变整条线段的长度,只改变短划线和空白段的大小。例如,将线型的短划线和空白段缩小一半。(1)通过command函数设置线型比例因子的大小(command ltscale 0.5)(2)通过setvar函数设置设置线型比例因子的大小(setvar ltscale 0.5),5.设置新图形对象的线宽(1)通过command函数设置新图形对象的线宽(command lweight 0.5);设置新图形对象的线宽为0.5(2)通过setvar函数设置新图形对象的线宽 系统变量celweight记录着新图形对象的线宽,它的值是整型的,以1为单位。例如设置新图形对象的线宽为0.5的表达式如下:(setvar celweight 50),【例8-1】定义绘制图8-1的平键外形轮廓线和中心线的命令,插入点p、键宽b、键长L、旋转角alf是交互输入的参数,要求粗实线所在图层的名字为cuxian、蓝色;中心线所在图层的名字为zhongxin,红色,线型为center(中心线)。,1.定义绘制平键轮廓线命令的源程序(defun c:pingjian(/p b l alf r l1 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10)(setvar osmode 0);关闭目标捕捉状态(setvar cmdecho 0);抑制普通命令的提示(commandlayer make cuxian c 5 cuxian);生成粗实线所在的图层,状态为当前层,名字为cuxian,颜色为蓝(setq p(getpoint 输入平键的定位点:);以交互方式得到平键的定位点p(setq b(getdist p 输入平键的宽度:);以交互方式得到平键的宽度b(setq l(getdist p 输入平键的长度:);以交互方式得到平键的长度l,(setq alf(getangle p 输入平键的旋转角:);以交互方式得到平键的旋转角alf(setq r(*0.5 b)l1(-l b);r和l1分别是平键宽度b和平键长度l的一半(setq p1(polar p(+alf(*0.5 pi)r);p1-p4是多义线的4个顶点(setq p2(polar p1 alf l1)(setq p3(polar p2(+alf(*1.5 pi)b)(setq p4(polar p1(+alf(*1.5 pi)b)(command pline p1 width 0.6 0.6 p2 arc p3 line p4 arc close);绘制平键的外形轮廓线(command layer m zhongxin c 1 l center);生成中心线所在的图层,状态为当前层,名字为zhongxinxian,颜色为红,线型为中心线(点划线),(setvar ltscale 0.5)(setq p5(polar p1(+alf(*0.5 pi)5)(setq p6(polar p2(+alf(*0.5 pi)5)(setq p7(polar p3(+alf(*1.5 pi)5)(setq p8(polar p4(+alf(*1.5 pi)5)(setq p9(polar p(+alf pi)(+r 8)(setq p10(polar p alf(+(-l r)8)(command line p5 p8);绘制中心线(command line p6 p7)(command line p9 p10),2.程序说明(1)定义AutoCAD命令与定义函数一样,都是通过defun函数,不同之处是命令名前必须加“C:”。(2)AutoCAD命令的变元表内不能有变元,除号之后的p、b、l等是这个函数的局部变量声明,即使没有局部变量的声明,也不能缺少变元表的一对括号。(3)第3行通过setvar函数和系统变量cmdecho抑制普通命令的提示,但并不抑制get函数的提示。(4)第5行getpoint函数的功能是在交互状态下获取一个点,既可以用鼠标在屏幕上指定一个点,也可以通过键盘键入一个点的坐标,如键入100,50,响应输入平键的定位点:的提示。(5)第6行getdist函数的功能是在交互状态下获取一个长度值,既可以通过键盘键入具体的数值,也可以用鼠标在屏幕上指定两个点,两点的长度即为输入的长度值,由于本例提供了参照点p,只需用鼠标在屏幕上指定一个点,该点与p的距离即为输入的长度值。,(6)第8行getangle函数的功能是在交互状态下获取一个角度值,既可以通过键盘键入具体的数值,也可以用鼠标在屏幕上指定两个点,两点连线与X轴的正向夹角即为输入的角度值,由于本例提供了参照点p,只需用鼠标在屏幕上指定一个点,该点与p的连线与X轴的正向夹角即为输入的角度值。注意:尽管键入的角度以度为单位(例如180),但获取的角度以弧度为单位(例如3.14159)。(7)第14行调用的是command函数,pline是被调用的AutoCAD具体命令;该表达式可简化为如下代码:(command pline p1 w 0.6 0.6 p2 a p3 l p4 a cl)其中w、a、l和cl分别是pline命令的选项width、arc、line和close。(8)第15行和第4行的功能都是生成当前图层。该表达式也可以改写为一个函数,其功能是生成一个当前层,并设置该层的颜色和线型。源代码如下:,(defun tuceng(name color ltyle)(command layer m name c color name l ltype)各变元的数据类型和含义如下:name:字符串,图层的名字。color:0-255的一个整数,图层的颜色号。ltype:字符串,AutoCAD提供的线型名,如dashed、center。将第4行改为调用该函数,表达式如下:(tuceng cuxian 3)将第15行改为调用该函数,表达式如下:(tuceng zhongxin 1 center)(9)切换到AutoCAD窗口,在Command提示下,键入pingjian,按照程序的提示,输入相应的数据,即可得到上图所示的图形。,8.3 定义字样 Style命令以AutoCAD提供的.shx类型的形文件或windows等提供的.ttf类型的字体文件为原型定义字样。新图开始时,只有一种字样,名字为standard,是以AutoCAD提供的形文件txt.shx为原型定义的。如果不满意standard字样或者需要书写汉字,就必须自己定义字样。以下是通过command函数调用Style命令定义字样的表达式。1以AutoCAD提供的形文件为原型定义字样(command style ziyang1 complex 0.0 1.0 0.0 N N N)各项含义如下:style:定义字样的命令。ziyang1:字样的名字。,complex:AutoCAD提供的形文件名,文件全名complex.shx。0.0:字的固定高度,若该值为0,表示没有固定的字高,每次调用text命令时,临时指定字高。1.0:宽度因子,为1.0时的高宽比约为3:2。0.0:字的倾斜角度(obliquing angle)。N:不反写(backwards),若为Y时,为反字(左右颠倒)。N:不倒写(upside-down),若为Y时,为倒字(上下颠倒)。N:不垂直书写。由于字体原型文件名之后的选项都是默认值,因此上述表达式可以简化表示为:(command style ziyang complex),2以Windows提供的字体文件stfanso.ttf为原型定义名字为hanzi1的字样(command style hanzi1 stfangso.ttf)由于可以用字体名代替字体文件名,因此上述表达式可以表示为:(command style hanzi2 华文仿宋)注意,该表达式没有对应是否垂直书写的选项。,3以一个大字体(big font)形文件为原型定义汉字字样 用Windows提供的字体文件可以很好地解决汉字书写的问题,但特殊字符“”、“”和“”不能用AutoCAD规定的c、%d、%p转义输入,用大字体形文件为原型定义的汉字可以很解决这个问题。其表达式如下:(command style hanzi3 gbcbig)其中gbcbig是定义汉字的大字体,文件的全名是gbcbig.shx。4普通形文件与大字体形文件组合,定义汉字字样 西文字符用普通的形文件为原型,汉字部份用大字体形文件为原型,从两种形文件中各选一个满意的形文件定义汉字字样。其表达式如下:(command style hanzi4 complex,gbcbig),【例8-2】定义绘制下图所示A4图框和标题栏的命令,零件名称、零件材料、数量、绘图比例是交互输入的参数,详细尺寸参照GB/T 14689-1993、GB/T10609-1989。,1.定义绘制A4图框和标题栏的源程序(defun c:a4(/v1 v2 v3 ljmch cl shl bl);定义命令的名字为a4(setq v1(getvar osmode);获取当前的目标捕捉类型,将其赋给变量v1(setq v2(getvar cmdecho);获取当前的普通命令提示状态,将其赋给变量v2(setq v3(getvar blipmode);获取当前的光标痕迹显示状态,将其赋给变量v3(setvar osmode 0);关闭目标捕捉状态(setvar cmdecho 0);不显示普通命令的提示(setvar blipmode 0);不显示光标痕迹,(setq ljmch(getstring n输入零件名称:);将输入的零件名称赋给变量ljmch(setq cl(getstring n输入零件材料:);将输入的零件材料赋给变量cl(setq shl(getint n输入零件数量:);将输入的零件数量赋给变量shl(setq shl(itoa shl);将整数shl转换为字符串(setq bl(getstring n输入绘图比例:);将输入的绘图比例赋给变量bl(command style hz gbcbig);定义汉字的字样名为hz(command layer m xixian c 1);创建当前图层xixian(command limits 0,0 210,297);设置图纸范围,(command line 0,0 210,0 210,297 0,297 c);绘制A4图纸边框(command layer m cuxian c 7 lw 0.6);创建当前图层cuxian(command line 25,5 205,5 205,292 25,292 c);绘制图框(command line 85,5 85,27 205,27);绘制标题栏(command line 85,13 205,13)(command line 100,13 100,27)(command line 120,13 120,27)(command line 132,5 132,27)(command line 162,5 162,13),(command line 180,5 180,27)(command layer m xixian)(command line 85,20 132,20)(command layer m wenzi c 5);创建当前图层wenzi(command text m(list 108.5 9)5 0 清 华 大 学 机 械 厂);填写标题栏(command text m(list 147 9)5 0(strcat 材 料 cl)(command text m(list 171 9)5 0(strcat 数 量 shl)(command text m(list 192.5 9)5 0(strcat 比 例 bl),(command text m(list 92.5 23.5)5 0 制 图)(command text m(list 92.5 16.5)5 0 校 核)(command text m(list 156 20)10 0 ljmch)(setvar osmode);恢复目标捕捉的原来状态(setvar cmdecho v2);恢复普通命令提示原来的显示状态(setvar blipmode v3);恢复光标痕迹原来的显示状态(princ);静默退出),2.程序说明(1)第2-4行用getvar函数获取系统变量osmode等的当前值,将其赋给变量v1、v2、v3,以便程序结束时恢复程序开始时的环境。(2)第5-7行用setvar函数将系统变量osmode等设置为有利于程序绘图的环境。(3)第11行(setq shl(itoa shl)的作用是将整数shl转换为字符串,以适应后面的字符串运算。(4)第30行中,text之后的m是书写文本的定位方式选项,表示中点定位。,(5)第31行中,strcat函数的功能是连接字符串,它将字符串材 料 和用户输入的字符串,例如40Cr,连接为一个字符串材 料 40Cr,cl)(6)第37-39行用setvar函数设置系统变量osmode等为程序开始时的值,恢复程序开始时的环境。(7)运行程序总要返回最后一个表达式的值,第40行(princ),它返回了一个没有任何值的结果,实现了静默退出。(8)绘制直线和书写文本的数据,参照GB/T 14689-1993、GB/T10609-1989计算之后得到的。(9)加载该程序,切换到AutoCAD窗口,在Command提示下,键入A4,输入零件名称、材料、数量和绘图比例,即可得到上图所示的图框和标题栏。,8.4 尺寸标注1.长度型尺寸标注 长度型尺寸标注需要确定尺寸线是水平、垂直还是指定的方向,如果默认尺寸测量值即为尺寸文本,那么关键是确定其第1条尺寸界线起点的位置p1、第2条尺寸界线起点的位置p2和尺寸线的位置p3。尺寸界线的起点通常与确定图形对象的点重合,因此可看作是已知的,于是剩余的工作就是确定位置尺寸线的位置p3。例如以下两个表达式,可得到下图所示的直线p1p2。(setq p1(10 10)p2(50 20)p3(30 25)(command line p1 p2),(1)指定尺寸线为水平或垂直方向的长度型尺寸标注(command dimlinear p1 p2 h p3)该表达式的说明如下:dimlinear:command函数调用标注长度型尺寸的命令。p1、p2:第1、2条尺寸界线起点的位置。h:尺寸线的方向。水平方向、垂直方向(v)还是指定其他方向(Rotated)。若选择其他方向,其后需增加角度数值。p3:确定尺寸线的位置点。可以是一个变量,如该例;可以是一个字符串x,y,串内的x、y确定了p3点在当前坐标系下的位置,如30,25;也可以用相对于第2条尺寸界线的起点p2的位置来确定它,这样会方便得多。其格式如下:x,y,表示相对于,x表示相对于p2点的X方向的增量,y表示相对于p2点的Y方向的增量。由于选项h已将其确定为水平型,所以x或x可以为任意数值。,(command dimlinear p1 p2 h p3)(command dimlinear p1 p2 h 30,25)(command dimlinear p1 p2 h-20,5)以上3个表达式用不同的形式确定了尺寸线的位置,见图a。如果要标注尺寸线为垂直方向的尺寸,只需将以上表达式中的h改为v即可。例如:(setq p1(10 10)p2(40 25)p3(45 25)(command line p1 p2)(command dimlinear p1 p2 v p3)结果见图b。,a,b,(2)默认尺寸线方向的长度型尺寸标注 如果不指定尺寸线的方向,p3点与p1、p2点的相对位置确定了尺寸线的方向。若p3点的X坐标在p1、p2点的X坐标之外,而且p3点的Y坐标在p1、p2点的Y坐标之间,尺寸线为垂直方向;其他情况的尺寸线为水平方向。如果将去掉上述3个表达式中的h选项,其结果不变,因为p3点的X坐标在p1、p2点的X坐标之间。若改为以下表达式之一(command dimlinear p1 p2(55 15)(command dimlinear p1 p2 55,15)(command dimlinear p1 p2 5,-5)将得到该直线的尺寸线为垂直方向的标注,见下图。,2.对齐型尺寸标注 对齐型尺寸标注的特点是,尺寸线的方向是确定的,它与被标注对象的两个端点或指定的两尺寸界线起点的连线平行。以下每个表达式都能生成下图所示的对齐型长度尺寸标注。(command dimaligned p1 p2 p3)(command dimaligned p1 p2 35,25)(command dimaligned p1 p2-13.04,2.64)表达式中各参数的含义与长度尺寸标注中各参数的含义相同。,3.直径型和半径型尺寸标注 直径型和半径型尺寸标注需要首先选择被标注的圆或圆弧,然后确定尺寸线的位置,如果默认尺寸测量值为尺寸文本,用作为默认的选择即可。(1)直径型尺寸标注 以下两个表达式绘制了下图所示的一个圆。(setq pc(100 100)r 12.5 p1(polar pc 0 12.5)p2(105 105)(command circle pc r),以下每个表达式都能生成下图所示的直径型尺寸标注。(command dimdiameter p1 p2)(command dimdiameter p1 105,105)(command dimdiameter p1-7.5,5)在上述表达式中,p1是圆的选择点,p2点确定了尺寸线的位置和方向,字符串105,105是当前坐标系下的坐标,字符串-7.5,5是相对于选择点p1的X方向的增量和Y方向的增量。由于默认尺寸的测量值,所以尺寸文本的第一个字符为直径符号。,(2)半径型尺寸标注 以下每个表达式都能生成下图所示的半径型尺寸标注。(command dimradius p2 p4)(command dimradius p2 105,105)(command dimradius p2-7.5,5),在上述表达式中,p2是圆弧的选择点,p4点确定了尺寸线的位置和方向,字符串105,105是当前坐标系下的坐标,字符串-7.5,5是相对于选择点p2的X方向的增量和Y方向的增量。由于默认尺寸的测量值,所以尺寸文本的第一个字符为半径符号R。,4.角度型尺寸标注 标注两条直线的夹角是是最常见的角度型尺寸标注。需要首先选择被标注的两条直线,然后确定尺寸线的位置,如果默认尺寸测量值为尺寸文本,用作为默认的选择即可。以下每个表达式都能生成下图所示的角度型尺寸标注。(command dimangular p1 p3 p4)(command dimangular p1 p3 40,14)(command dimangular p1 p3 0,-6),在上述表达式中,p1是第一条直线的选择点,p3是第二条直线的选择点,p4点确定了尺寸弧线的位置,字符串40,14是当前坐标系下的坐标,字符串0,-6是相对于选择点p3的X方向的增量和Y方向的增量。由于默认尺寸的测量值,所以尺寸文本的最后一个字符为度的单位符号。,上图中尺寸文本“45”的书写方向与尺寸弧线中点的切线方向相同,可能不符合某些单位的制图标准,改写为以下的表达式之一,可以得到下的结果。(command dimangular p1 p3 A 0.01 p4)(command dimangular p1 p3 A 0.01 40,14)(command dimangular p1 p3 A 0.01 0,-6)其中A是尺寸文本的旋转角度选项,其后是旋转角度的数值,由于AutoCAD不接受0方向,因此取其近似值0.01。,5.设置尺寸变量(1)尺寸变量的作用 尺寸变量属于系统变量,用来控制尺寸线、尺寸界线、尺寸文本和尺寸箭头等要素的样式、大小和它们之间的相对位置。公制(Metric)和英制(English)环境下的尺寸变量的初是始值是不同的。例如,尺寸文本的字高,前者为2.5,后者为0.18。本节介绍的尺寸变量的初值均是公制状态下的初值。(2)最常用到的尺寸变量AutoCAD2004提供了64个尺寸变量,最常用到的有以下几个:dimscale:总尺寸比例因子,初始值为1。dimtad:如果为0(OFF),长度型尺寸的尺寸文本注在尺寸线中间,否则注在尺寸线的上方,初始值为1。,dimtih:如果为0,长度型尺寸两尺寸界线之内的尺寸文本与尺寸线方向一致,否则为水平方向,初始值为0(OFF)。dimtoh:如果为0,长度型尺寸两尺寸界线外侧的尺寸文本与尺寸线方向一致,否则为水平方向,初始值为0(OFF)。,dimtix:如果为0,不强制尺寸文本在两尺寸界线之内,否则强制尺寸文本在两尺寸界线之内,初始值为0。dimtofl:如果为0,箭头在两尺寸界线外侧时,内部无直线,否则内部有直线,初始值为1。,dimzin:如果为8,舍弃无效的尾零,例如:10.0000注为10,12.5000注为12.5,初始值为8。dimdsep:确定实型数值整数与小数部份的分隔字符,初始值为“,”,应该设置为“.”。dimlfac:长度型、直径型和半径型尺寸数值的比例因子,初始值为1.0。例如,将该变量设置为2,直径为100的圆,其尺寸测量值为200,默认的选择将得到“200”的标注结果。dimtsz:如果为0,标注普通箭头,否则将普通箭头设置为建筑工程图中的短斜线,初始值为0。,(3)修改尺寸变量的值 因为尺寸变量属于系统变量,所以既可以通过setvar函数,也可以通过command函数修改尺寸变量的值。以下是修改上述尺寸变量的表达式。(setvar ltscale 2);设置尺寸标注总比例因子为2(setvar dimtad 1);设置尺寸文本在尺寸线上方(setvar dimtih 0);设置两尺寸界线之内的尺寸文本与尺寸线方向相同(setvar dimtoh 0);设置两尺寸界线外侧的尺寸文本与尺寸线方向相同(setvar dimtix 1);强制尺寸文本在两尺寸界线之内(setvar dimtofl 1);小尺寸标注时在两尺寸界线之内增加连线,(setvar dimzin 8);舍去尺寸数字的无效尾0(setvar dimdsep.);设置字符.作为尺寸数字中整数与小数部份的分隔符(setvar dimlfac 2);设置长度尺寸的测量值是实际值的2倍(setvar dimtsz 2.5);设置短斜线的长度并取代普通箭头或者(command ltscale 1);设置尺寸标注总比例因子为1(command dimtad 0);设置尺寸文本在尺寸线之间(command dimdsep.);设置字符.作为尺寸数字中整数与小数部份的分隔符,6.处理尺寸文本的测量值 尺寸的测量值是AutoCAD根据所选的对象、尺寸界线的起点和尺寸线的方向计算得到的。对于尺寸的测量值,用户只有满意、不满意和部份满意三种情况。所谓部份满意,就是对尺寸数值满意,但缺少尺寸数值的前缀或后缀。(1)默认尺寸的测量值 如果尺寸的测量值和期待生成的尺寸文本完全一致,在这种情况下应该选择默认,即表达式中不含text或t选项。此前的一些实例都属于这种情况。(2)用自己输入的文本作为尺寸文本 如果不想使用尺寸的测量值,在确定尺寸线位置时增加text或t选项,随后输入自定的文本即可。将前面相应的表达式改写如下:,(command dimlinear p1 p2 h t%c50 p3);见图a(command dimaligned p1 p2 t 60cm p3);见图b(command dimdiameter p1 t 2X%c50 p2);见图c(command dimradius p2 t R10 p4);见图d(command dimangular p1 p3 A 0.01 t 45.5%d p4);见图e,a b c d e,(3)为尺寸的测量值增加前缀或后缀 有时虽然对尺寸的测量值满意,但是还不个够,还需要为尺寸的测量值增加前缀或后缀。例如图8-11所示,尺寸240需要增加前缀“460”,尺寸40需要增加前缀“5”。解决的办法是,在确定尺寸线位置时增加text或t选项,随后输入以下字符串:前缀内容后缀内容 其中表示使用尺寸的测量值,如果不需要为尺寸的测量值增加前缀或后缀,可以缺少相应的内容。例如下图生成尺寸60、460240和540表达式如下:(command dimlinear p1 p2 p3)(command dimlinear p1 p4 t 4X60=p5)(command dimdiameter p6 t“5X p7),以下是需要增加前缀和后缀的尺寸。其表达式如下:(command dimdiameter p1 t 4X锪平%c45 p2)(command dimdiameter p3 t 深10 p4),8.5 调用AutoCAD的图形编辑功能1.用程序调用图形编辑功能的好处(1)利用已生成的图形对象构造出新的图形对象。例如下图所示图形有4个螺纹孔,只需绘制1个,其余螺纹孔只需调用AutoCAD的copy命令即可。,(2)提高编程效率。例如上图所示图形的轮廓线是由4段直线和4个圆弧组成的。可以先计算出每条直线的端点、每个圆弧的端点和中心,再调用line和arc命令绘制出该轮廓线;也可以先绘制倒圆角之前的矩形,然后调用AutoCAD的fillet命令,倒出矩形的4个圆角。显然,后一种方法要简便一些。,(3)将复杂的几何运算交给AutoCAD的命令去完成。例如下图所示轴的剖面图。它的轮廓线是由1个圆弧和3段直线组成的。p1、p2点是圆弧和直线的共有端点。如果求解这些坐标比较麻烦,那么可以首先绘制圆和p4p3、p3p5和p5p6三段直线,然后调用AutoCAD的trim命令,经过trim命令的修剪得到该图的轮廓线。,【例8-3】绘制4个带有中心线的螺纹孔。,和交互作图一样,首先绘制一个带有中心线的螺纹孔,然后再复制3个螺纹孔。以下个表达式生成了下图所示的两条中心线和1个螺纹孔。,(command layer m zhongxin l center)(command line-5,0 5,0)(command line 0,-5 0,5)(command layer m cuxian lw 0.3)(command circle 0,0 3)(command layer m xixian),(command arc-3.5,0 0,3.5 0,-3.5)(command zoom a);为确保选到指定的图元,显示整个作图范围。以下表达式调用AutoCAD的copy命令,复制3个带中心线的螺纹孔,见下图。(command copy w-5,-5 5,5 m 0,0 12,0 24,0 36,0),(command copy w-5,-5 5,5 m 0,0 12,0 24,0 36,0)对该表达式的各项说明如下:copy:command函数调用的复制命令。w:整体在窗口内的图形对象被选中。-5,-5:窗口一个角点的坐标。5,5:窗口另一个角点的坐标。:结束选择对象的操作。m:多次复制。0,0:复制图形对象时位移矢量的第一点。12,0、24,0、36,0:位移矢量的第二点。:结束多次复制。,【例8-4】绘制带有4圆角的轮廓线。以下两个表达式绘制一个的矩形。(command layer m cuxian)(command line-7,-6 43,-6 43,6-7,6 c)(command zoom e);为确保选到指定的图元,尽可能大地显示图形对象以

    注意事项

    本文(编程实例清华CAD二次开发LISP.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开