已阅读5页,还剩54页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章工程图的二次开发基础,CAD二次开发技术及其工程应用,多媒体课件,本章内容:,8.1绘图环境的设定8.2程序化绘图过程8.3常用绘图程序的编制8.4可视化图库建立方法,8.1绘图环境的设定,一图纸初始化设置1绘图单位设置(1)系统的绘图单位:长度、角度和基准角度方向。长度单位的默认值为小数制形式,角度单位的默认值为十进制数形式,默认值:零度方向是东,X轴正向,正增量取逆时针方向。(2)绘图单位的设定,可采用两种形式用命令UNTIS,调用“图形单位”对话框;通过LISP编程实现绘图单位的设置。最简单的形式使用command函数来实现。,2系统变量的设置系统存储操作系统的变量有398个,每一个系统变量都有一种数据类型,如整型、实型、字符串型、实体型等;根据其值读写特性可分为只读性和读写性;系统允许用户根据需要自己定义系统变量。可根据需要,可以重新设置AutoCAD系统的有关变量值。在lisp语言中改变系统变量的方法有两种,(1)利用command函数调用系统命令来实现;(2)利用setvar函数直接设定系统变量的值。,在程序设计时处理的方式有以下三种:(1)把需要变更值变量(如OSMODE等)的原始值保存。(setqoss(getvar“OSMODE”)(setqoll(getvar“CLAYER”)(setqocc(getvar“CECOLOR”)(setqoaa(getvar“AUNITS”)(2)把系统变量的值进行重新设定。(setvar“OSMODE”1);捕捉方式设为端点捕捉(setvar“CLAYER”2);把当前层选择为2层(command“CECOLOR”3);把当前颜色值设定为3,即绿色(command“AUNITS”3);置当前角度单位为:弧度形式(3)函数结束时,恢复系统变量值。(setvar“OSMODE”oss);捕捉方式设定为端点捕捉(setvar“CLAYER”oll);把当前层选择为2层(command“CECOLOR”occ);把当前颜色恢复为保存值(command“AUNITS”oaa);置当前角度单位为弧度,3图纸幅面选定根据国家的相关标准,图纸的幅面分为五种幅面形式。图幅是图纸的大小规格,图框是提供绘图范围的边界线。,图纸幅面及图框尺寸,4绘图比例绘图比例是图形与其实物相应要素的线性尺寸之比;在绘图时,应从国标规定中选取适当的绘图比例;由于绘图比例对图形实体度量、定位有重要影响,甚至对其它图形要素产生影响,在二次开发的过程中,通常把绘图比例作为自定义系统变量,并采用保存在图形文件中。,绘图比例表,二图纸初始化程序设计,初始化程序设计需确定图幅大小,绘图比例和标题栏式样等。根据输入的数据分为两类:(1)确定图纸的结构参数(2)标题栏中填写的数据而这些需要通过对话框的形式提请用户输入或选定。,初始化设置对话框参考格式,N,初始化设置程序流程图,三图层和比例设定,1图层、颜色和线型在绘制图形时,充分利用图层工具,把具有相同图形特征的图形分别设置在不同的图层上,并其进行属性设定。在对图形进行图层设定时,应考虑以下几个问题:(1)既可方便图形的绘制,又便于管理和编辑图形。(2)划分图层时,注意将颜色、线型等统一筹划。(3)便于观察和过滤,提高图形的处理速度。,2标记字样设置根据图样要求规定,绘制图样时,应首先进行系统的环境设置,当绘图模块需要书写字体时,再选用相应的字体式样。,四LISP程序的自动装入,1.程序的自动装入AutoCAD系统每次启动时,将两个文件自动装入:ACAD.LSP;系统主菜单同名,扩展名为“.mnl”的文件AutoCAD系统搜索库路径是按照下列顺序进行:当前目录包含当前绘图文件的目录ACAD环境变量所指定的目录包含AutoCAD程序文件的目录,2.程序的自动执行在AutoCAD系统启动的过程中,不仅有程序的自动装入,同时也有函数的自动执行。当系统启动时,就会在内存中自动寻找一个特殊函数“S:STARTUP”,如果找到该函数,就会自动执行该函数。用户定义的函数“S:STARTUP”一般放在ACAD.LSP或*.mnl文件中,这样就保证函数在AutoCAD系统启动时,自动被执行。当然“S:STARTUP”也可以在许多地方定义,不管函数在什么地方定义,但总是遵循一个原则,即后面的定义覆盖前面的定义。,1用CAD系统命令绘制图形过程从右图图形的结构可以看出,图形的绘制过程分为三部分:(1)绘制矩形(2)绘制对角线(3)绘制圆,8.2程序化绘图过程,一程序化平面绘图命令,为了实现绘图过程的程序化,必须首先熟悉绘图命令的执行过程,在编写绘图程序时使用比较多的lisp函数是command函数,该函数的表数据是CAD系统有关该绘图命令的操作过程。,(1)绘制矩形命令:RECTANG指定第一个角点或倒角(C)/标高(E)/圆角(F)/厚度(T)/宽度(W):(用鼠标拾取P1点)指定另一个角点或尺寸(D):(用鼠标拾取P3点)(2)绘制对角线命令:PLINE指定起点:(用鼠标拾取P1点)当前线宽为0.0000指定下一个点或圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W):拾取P3点指定下一点或圆弧(A)/闭合(C)/半宽(H)/长度(L)/放弃(U)/宽度(W):命令:PLINE指定起点:(用鼠标拾取P2点)当前线宽为0.0000指定下一个点或圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W):w指定起点宽度:1指定端点宽度:指定下一个点或圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W):拾取P4点指定下一点或圆弧(A)/闭合(C)/半宽(H)/长度(L)/放弃(U)/宽度(W):,(3)用多义线绘制圆命令:PLINE指定起点:(用鼠标拾取P1和P2的中点)当前线宽为1.0000指定下一个点或圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W):A指定圆弧的端点或角度(A)/圆心(CE)/放弃(U)/宽度(W):CE指定圆弧的圆心:(用鼠标拾取Pc点)指定圆弧的端点或角度(A)/圆心(CE)/宽度(W):拾取P3和P4的中点指定圆弧的端点或角度(A)/圆心(CE)/放弃(U)/宽度(W):CL命令:PLINE指定起点:(用鼠标拾取P1)当前线宽为1.0000指定下一个点或圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W):A指定圆弧的端点或角度(A)/圆心(CE)宽度(W):CE拾取Pc点指定圆弧的端点或角度(A)/圆心(CE)/宽度(W):拾取P3指定圆弧的端点或角度(A)/圆心(CE)/宽度(W):CL,2用Lisp编程绘制图形(defunC:hzpmt(/ssccp1p2p3p4pc);定义函数名称、形参和局部变量(setqss(getvarOSMODE);保存系统变量OSMODE的值(setqcc(getvarCECOLOR);保存系统变量CECOLOR的值(setvarosmode512);设定OSMODE的新值,512表示捕捉最近点(promptn先选取矩形左下和右上角点坐标);屏幕提示用户操作信息(setqp1(getpointn左下点:);输入矩形左下角点坐标p3(getpointn右上点);输入矩形右上角点坐标(setqp2(polarp10(-(carp3)(carp1);计算其余两点坐标p4(polarp1(/pi2.0)(-(cadrp3)(cadrp1)(setvarCEcolorred);设定当前绘图颜色为红色(commandplinep1w22p2p3p4c);用多义线命令绘矩形(commandplinep1w22p3);用多义线命令绘对角线(commandplinep2w22p4)(setqpc(intersp1p3p2p4);求两对角线之交点(commandpline(polarp10(/(-(carp3)(carp1)2.0)w11ACEpc(polarp40(/(-(carp3)(carp1)2.0)CL);用多义线命令画内切圆(commandplinep1w11ACEpcp3CL);用多义线命令画外接圆,(commandcolor5);设定当前绘图颜色为蓝色(commandstylestandard宋体010);设置字体的格式(commandtextp180P1;在指定位置书写字符textp280P2textp380P3textp480P4textpc80Pc)(setvarOSMODEss);恢复原来目标捕捉方式(setvarCECOLORcc),二程序化平面编辑命令1用CAD系统命令编辑图形过程(1)裁剪内切圆内的对角线(2)连接P8P7线段和P5P6线段(3)裁剪内切圆(4)裁剪矩形(5)裁剪外接圆,2Lisp编程编辑图形(defunC:bjpmt(/ssccp5p6p7p8ee1eb);定义函数名称、形参和局部变量(setqss(getvarOSMODE);保存系统变量OSMODE的值(setqcc(getvarCECOLOR)(setvarosmode512);设定OSMODE的新值,512表示捕捉最近点(promptn先剪裁圆周内的对角线:);屏幕提示用户操作信息(setqeb(entsel选择圆周为裁减边界:);裁减内切圆内的对角线(commandtrimeb(entsel选择直线1:)(entsel选择直线2:)(setvarosmode1);设OSMODE的值为端点捕捉(commandpline(setqp5(getpointn捕捉P5:);连接P5P6w11(setqp6(getpointn捕捉P6:)(setqe(entlast);保存P5P6实体到e中(commandpline(setqp7(getpointn捕捉P7:);连接P7P8w11(setqp8(getpointn捕捉P8:)(setqe1(entlast);保存P5P6实体到e1中(setvarosmode512)(commandcolor5),(commandstylestandard宋体010);写P5p6p7p8点字符(commandtextp580P5textp680P6textp780P7textp880P8)(commandtrime(entsel选择P5P6下边的圆弧:);裁剪P5P6下边圆弧(commandtrime1(entsel选择P7P8下边的圆弧:)(setqeb(entsel选择外圆周为裁减边界:);裁剪P7P8下边圆弧(commandtrimeb(entsel选择矩形左边:);裁剪矩形左边(commandtrimeb(entsel选择矩形右边:);裁剪矩形右边(setqeb(entsel选择P3P4为裁减边界:);裁剪P3P4上边圆弧(commandtrimeb(entsel选择P3P4上边的圆弧:)(setqeb(entsel选择P1P2为裁减边界:)(commandtrimeb(entsel选择P1P2下边的圆弧:);裁剪P1P2下边圆弧(setvarosmodess);恢复原来的目标捕捉方式(setvarCECOLORcc),二程序化三维绘图命令在AutoCAD系统中,绘制三维图形可以通过两种方式实现,一种是直接输入三维实体的控制尺寸,由AutoCAD系统的相关函数自动生成;另一种是先产生二维图形,然后,通过旋转或拉伸等方式再生成三维图形。在绘制三维图形的过程中,为了准确完整地表达三维实体的立体形状,经常从不同的方向观察实体。由于世界坐标系是唯一的、固定不变的,所以,通过不断的建立用户坐标系,实现用户观察点的变化,以达到不同的表达效果。建立用户坐标系,在AutoCAD系统中是通过VPOINT命令来实现的。,1基本体素的绘制(1)平面立体的绘制命令:BOX指定长方体的角点或中心点(CE):100,100,100指定角点或立方体(C)/长度(L):L指定长度:200指定宽度:150指定高度:90命令:ZOOM指定窗口角点,输入比例因子(nX或nXP),或全部(A)/中心点(C)/动态(D)/范围(E)/上一个(P)/比例(S)/窗口(W):E命令:VPOINT当前视图方向:VIEWDIR=0.0000,0.0000,1.0000指定视点或旋转(R):1,1,1,LISP源程序如下:(defunC:hzcft()(commandBOX(list100100100)L20015090)(commandZOOME)(commandVPOINT(list111),(1)回转体的绘制命令:TORUS当前线框密度:ISOLINES=4指定圆环体中心:100,100,100指定圆环体半径或直径(D):60指定圆管半径或直径(D):10命令:ZOOM指定窗口角点,输入比例因子(nX或nXP),或全部(A)/中心点(C)/动态(D)/范围(E)/上一个(P)/比例(S)/窗口(W):E命令:VPOINT当前视图方向:VIEWDIR=0.0000,0.0000,1.0000指定视点或旋转(R):1,1,1正在重生成模型。命令:ISOLINES输入ISOLINES的新值:30命令:REGEN正在重生成模型。,LISP源程序如下:(defunC:hzyh()(commandTORUS(list100100100)6010)(commandzOOME)(commandVPOINT(list111)(COMMANDISOLINES30)(COMMANDREGEN),2组合实体的绘制绘制组合实体图形,首先要进行形体分解,把实体分成若干部分,然后分别进行绘制。从右图中可以看出,该实体构造分为主体部分和附属结构两部分。在绘制实体图形时,要注意用户坐标系(UCS)的转换,通过转换用户坐标系可以使作图过程简单化。,(1)用CAD系统命绘制图形在用AutoCAD作图时,分为主墙体、房顶、门结构和侧面墙的窗户四部分,每一部分的绘制都定义了相应的用户坐标系。绘制主墙体部分命令:RECTANG当前矩形模式:厚度=0.0000指定第一个角点或倒角(C)/标高(E)/圆角(F)/厚度(T)/宽度(W):E指定矩形的标高:指定第一个角点或倒角(C)/标高(E)/圆角(F)/厚度(T)/宽度(W):T指定矩形的厚度:270指定第一个角点或倒角(C)/标高(E)/圆角(F)/厚度(T)/宽度(W):0,0指定另一个角点或尺寸(D):400,260命令:VPOINT当前视图方向:VIEWDIR=0.0,0.0,1.0指定视点或旋转(R):1,1,1命令:ZOOM指定窗口角点,输入比例因子(nX或nXP),或全部(A)/中心点(C)/动态(D)/范围(E)/上一个(P)/比例(S)/窗口(W):a,绘制房顶部分命令:UCS当前UCS名称:*世界*输入选项新建(N)/移动(M)/正交(G)/上一个(P)/恢复(R)/保存(S)/删除(D)/应用(A)/?/世界(W):3指定新原点:(用鼠标拾取P1点,图8-16所示)在正X轴范围上指定点:(用鼠标拾取P2点,图8-16所示)在UCSXY平面的正Y轴范围上指定点:(用鼠标拾取P2点,图8-16所示)命令:PLINE指定起点:-65,0当前线宽为0.0000指定下一个点或圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W):325,0指定下一点或圆弧(A)/闭合(C)/半宽(H)/长度(L)/放弃(U)/宽度(W):130,135指定下一点或圆弧(A)/闭合(C)/半宽(H)/长度(L)/放弃(U)/宽度(W):C命令:EXTRUDE选择对象:(用鼠标拾取刚绘制三角形)指定拉伸高度或路径(P):400指定拉伸的倾斜角度:,绘制门结构图形命令:UCS当前UCS名称:*没有名称*输入选项新建(N)/移动(M/应用(A)/?/世界(W):3指定新原点:(鼠标拾取P3点)在正X轴范围上指定点:(用鼠标拾取P4点)在UCSXY平面的正Y轴范围上指定点:(用鼠标拾取P2点)命令:ELEV指定新的默认标高:指定新的默认厚度:-10命令:PLINE指定起点:240,0指定下一个点或圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W):W指定起点宽度:5指定端点宽度:指定下一个点或圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W):240,150指定下一点或圆弧(A)/宽度(W):160,150指定下一点或圆弧(A)/宽度(W):160,0指定下一点或圆弧(A)/宽度(W):,命令:ELEV指定新的默认标高:0指定新的默认厚度:0命令:PLINE指定起点:200,0当前线宽为10.0指定下一个点或圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W):w指定起点宽度:0指定端点宽度:0指定下一个点或圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W):200,1500指定下一点或圆弧(A)/闭合(C)/半宽(H)/长度(L)/放弃(U)/宽度(W):命令:ELEV指定新的默认标高:指定新的默认厚度:-5,命令:PLINE指定起点:215,100当前线宽为5.0000指定下一个点或圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W):w指定起点宽度:1指定端点宽度:1指定下一个点或圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W):225,100指定下一个点或圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W):225,90指定下一个点或圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W):215,90指定下一点或圆弧(A)/闭合(C)/半宽(H)/长度(L)/放弃(U)/宽度(W):C命令:PLINE指定起点:185,100当前线宽为1.0000指定下一个点或圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W):175,100指定下一个点或圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W):175,90指定下一个点或圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W):185,90指定下一点或圆弧(A)/闭合(C)/半宽(H)/长度(L)/放弃(U)/宽度(W):C,绘制侧面墙上的窗图形命令:UCS当前UCS名称:*没有名称,图8-17所示。输入选项新建(N)/移动(M)/正交(G)/上一个(P)/恢复(R)/保存(S)/删除(D)/应用(A)/?/世界(W):3指定新原点:(鼠标拾取P1点,图8-17所示)在正X轴范围上指定点:(鼠标拾取P2点,图8-17所示)在UCSXY平面的正Y轴范围上指定点:(鼠标拾取P3点,图8-17所示)命令:PLINE指定起点:180,135当前线宽为1.0000指定下一个点或圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W):180,235指定下一个点或圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W):80,235指定下一个点或圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W):80,135指定下一点或圆弧(A)/闭合(C)/半宽(H)/长度(L)/放弃(U)/宽度(W):C,命令:PLINE指定起点:180,185当前线宽为1.0000指定下一个点或圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W):w指定起点宽度:0指定端点宽度:0指定下一个点或圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W):80,185指定下一点或圆弧(A)/闭合(C)/半宽(H)/长度(L)/放弃(U)/宽度(W):命令:PLINE指定起点:130,235当前线宽为0.0000指定下一个点或圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W):130,135指定下一点或圆弧(A)/闭合(C)/半宽(H)/长度(L)/放弃(U)/宽度(W):(4)消隐显示图形命令:HIDE正在重生成模型。,(2)AutoLISP编程绘制图形,(defunC:hzfz(/ssccp5p6p7p8ee1eb);定义函数名称、形参和局部变量(setvarosmode0)(setqw260h270l400mw80mh150mck10ch100);设定结构化参数;绘制主墙体部分(commandelev0h)(setqp(list0.00.00.0)p2(listlw0.0)p1(listl00)p3(list0w0)(commandplinepw00p1p2p3c);绘制墙体(commandvpoint(list111);设定视点,第一次UCS,;绘制房顶部分(setqp4(list(carp)(cadrp)h)p5(list(carp3)(cadrp3)h)p6(list(carp)(cadrp)(+h20)(commandelev00)(commanducsiconoff)(commanducs3p4p5p6);第二次UCSp4p5p6确定(commanducsiconon)(setqp3(listw00);绘制房顶截面形状(commandpline(polarppi(/w4)w00(polarP30(/w4)(list(/(+(carp)(carp3)2)(+(cadrp)(/h2)0.0)c)(setqe(entlast)(commandextrudeel0);将截面形状沿其法线方向拉伸(setqp1(list(+(carp)w)00)p2(list(+(carp)w)(-0h)0)p3(list(+(carp)w)(-0h)l),;绘制门结构图形(commanducs3p2p3p1);第三次UCSp2p3p1确定(commandelev0-10)(setqp1(polarp0(/l2)(commandpline(setqp2(polarp10(/mw2)w55;绘制门框(setqp2(polarp2(/pi2)mh)(setqp2(polarp2pimw)(polarp1pi(/mw2)(commandelev00)(commandplinep1(polarp1(/pi2)mh);绘制中间门缝(commandelev0-5)(setqp2(polarp1(/pi2)(*0.6mh)p3(polarp20(-(/mw4)(/mck2)(commandplinep3w11;绘制门上装饰结构(setqp4(polarp3(/pi2)mck)(setqp4(polarp40mck)(polarp30mck)c)(setqp3(polarp2pi(-(/mw4)(/mck2)(commandplinep3w11(setqp4(polarp3(/pi2)mck)(setqp4(polarp4pimck)(polarp3pimck)c)(setqp1(list(+(carp)l)00)p2(list(+(carp)l)(+0h)0)p3(list(+(carp)l)0w),;绘制侧面窗户部分(commanducs3p1p3p2);第三次UCSp1p2p3确定(setqp1(polar(polarp0(/w2)(/pi2)(/h2)(setqp1(polarp10(/ch2)(commandplinep1w11;绘制窗的边框(setqp2(polarp1(/pi2)ch)(polarp2pich)(polarp1pich)c)(commandpline(setqp3(polarp1pi(/ch2)w00;绘制窗的棱边(polarp3(/pi2)ch)(commandpline(setqp3(polarp1(/pi2)(/ch2)w00(polarp3pich)(commanducsiconoff)(commandzoomE)(commandhide);消除隐藏实体元素(setvarosmodess);恢复原来的目标捕捉方式(setvarCECOLORcc),8.1常用绘图程序的编制,一直线圆弧求交程序设计1几何交切函数(1)求两直线段的交点函数为了和应用场合中和计算模型相结合,直线常表示形式采用隐式来表示,两条直线的方程为:a1x+b2y+c2=0a2x+b2y+c2=0为快速求解,先求出直线和坐标轴的交点,即P1、P2、P3和P4,然后,调用求两直线段交点函数(inters)求出两直线段的交点。对于inters函数,当其参数“方式”的值为Nil时,把两条直线段看作为无限延长的直线,所求的交点可在指定的直线段端点之外。若参数“方式”的值为True时,所求的交点为指定的两线段的交点,交点必须在指定的直线段内,否则返回值为空值(Nil)。,入口参数:a1b1c1:直线1方程的系数;a2b2c2:直线1方程的系数返回值:相交时返回一个表,表中只有一个交点;若两直线平行不相交时,返回nil。(defunllp(a1b1c1a2b2c2/p1p2p3p4p)(if(and(/=a1a2)(/=b1b2)(progn(setqp1(list0(-0(/c1b1)p2(list(-0(/c1a1)0)p3(list0(-0(/c2b2)p4(list(-0(/c2a2)0)p(intersp1p2p3p4Nil)(promptn两直线平行或重合!),),(2)求直线与圆的交点函数plc(p1p2pcr)直线采用两点(P1、P2)的形式给出,圆的方程:(x-xc)2+(y-yc)2=R2用代数方法解比较繁琐,下面简介几何求解算法。求圆心到直线的距离d;判断直线和圆交点,交点存在的条件:dr;求直线的方向角a;用polar函数构造过Pc和直线垂直的直线PcE;利用inters函数求两直线PcE和P1P2的交点E;用polar函数可直接求出Q1、Q2。,入口参数:p1p2直线上的两个点;pcr圆心、圆半径返回值:相交时返回一个表,表中有两个交点,交点按其在圆上的位置排队,即圆心与第一交点连线的夹角小于圆心与第二交点连线的夹角,相切时表中只有一个交点,不相交时返回nil。(defunplc(pt1pt2pcr/dp1p2pttalfe)(setqd(dplpcpt1pt2)(if(anglepcp1)(anglepcp2)(listp2p1)(=(+r1r2)d)(anglepc1p1)(anglepc1p2)(listp2p1)(=(+r1r2)d)(=(abs(-r1r2)d)(progn(setqcbet(/(-(+(*dd)(*r1r1)(*r2r2)(*2dr1)(setqsbet(sqrt(-1(*cbetcbet)(setqcbet(atansbetcbet)(setqsbet(anglepc1pc2)(list(polarpc1(+sbetcbet)r1)(polarpc1(-sbetcbet)r1),二编制曲线绘制程序在工程设计中经常绘制各种曲线和曲面,曲线分为规则曲线和不规则曲线。规则曲线有圆锥曲线、渐开线、螺旋线等,这些曲线都可以用函数或参数方程表示;不规则曲线则是根据给定的离散数据点用曲线模型通过逼近、插值等拟合方式形成的,常见的有参数样条曲线、B样条曲线、Bezier曲线等,这些曲线采用分段的参数方程表示。1规则曲线的绘制规则曲线都可以用函数或参数方程表示,实际上,绘图过程是一个计算、连线的过程,曲线的精度取决于自变量的增值量和函数自身的数学特性,该曲线的绘制方法主要采用计算模拟法进行。计算模拟法就是先设立坐标系,把自变量的变化区划分为若干个微小的区段,利用曲线函数计算出曲线在该区段的起点、终点坐标,并在中间插补中间点,采用边计算便连线,直到变化区域的终点。,下面以正弦曲线为例介绍规则曲线的绘制方法。设曲线的方程为:y=sin(x)。如果设定自变量的区域为的整倍数,即可按周期绘制正弦曲线。弧度为自变量,区间为0,2,由于弧度的值在0,2区间内增量相同,故可以采用递进增量形式:xi+1=xi+xyi+1=yi+sin(x),(defunC:SINCURV(/ptpt1pt2a1aibmccpoo)(setqcc(getvarcmdecho)bm(getvarblipmode)bz(getvarOSMODE)bc(getvarCECOLOR);获取系统变量(setvarcmdecho0);设置新系统变量(setvarblipmode0)(setvarCECOLORBYLAYER)(commandstylestandard宋体010);设置新字体变量(setqpt1(getpointn请确定坐标系的原点:);获得坐标系原点(setvarOSMODE0)(setqptpt1oopt1p()pjd()i0)(while(=i360);循环计算绘制曲线(dtri)(setqpt2(list(+(carpt)i)(+(cadrpt)(*(sinang)100)(commandlinept1pt2)(setqpt1pt2p(appendp(listpt2)pjd(appendpjd(listi)(setqi(+i10)(commandzoomw(getvarextmin)(getvarextmax)(commandpeditlyjc(getvarextmin)(getvarextmax)s),(setvarCECOLORred)(setqn(lengthp)i0py(cadrpt)(while(nthipjd)180)(commandtextjbcpp40zf)(commandtextjtcpp40zf)(setqi(+i1)(setqi1ym(cadr(nth0p)ynym)(while(cadr(nthip)ym)(setqym(cadr(nthip)y1(nthip)(if(cadr(nthip)yn)(setqyn(cadr(nthip)y2(nthip)(setqi(+i1)(setqpp(nth(-n1)p)(dzbxptppooy2y1)(commandzoomE)(setvarblipmodebm)(setvarcmdechocc)(setvarOSMODEbz)),;绘制坐标系,px1,px2:正弦曲线的最小、最大x坐标值;p0:坐标系原点;py1,py2:正弦曲线的最小、最大y坐标值;(defundzbx(px1px2p0py1py2/pa)(commandpline(polarpx1pi5)w00(polarpx205)w10(polarpx2015)(commandpline(polar(list(carp0)(cadrpy1)(*1.5pi)5)w00(polar(list(carp0)(cadrpy2)(*0.5pi)5)w10(polar(list(carp0)(cadrpy2)(*0.5pi)9)(setqpa(polar(polarpx208)(*0.5pi)5)(commandtextjMpa60X)(setqpa(polar(list(+(carp0)3)(cadrpy2)02)(commandtextjMpa60Y),2拟合曲线的绘制(1)利用多义线编辑形成波浪线波浪线是一种具有随机形状的自由曲线。该种方法是利用多义线命令(Pline)绘制多义线,然后把多义线作为一个实体,再调用多义线编辑命令(Pedit)编辑刚绘制的多义线。(defunblx(/p1p2eosn)(initget1)(setqp2(getpointn波浪线起点:)p1p2);交互确定波浪线的起点(setqosn(getvarOSMODE);保存当前捕捉方式(setvarOSMODE103);设定当前捕捉方式:中点、端点、插入点等(commandplinep1w00);开始交互方式绘制多
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北京某公立医院财务分析报告指标讲解教案(2025-2026学年)
- 2026届安徽省滁州市明光中学化学高一第一学期期中教学质量检测试题含解析
- 2026届上海大学附中化学高二第一学期期末质量检测模拟试题含答案
- 房地产项目风险评估与应对方案模板
- 2026届开封市重点中学高一化学第一学期期中质量跟踪监视模拟试题含解析
- 2026届山东省滨州市邹平双语学校一、二区化学高三第一学期期中质量跟踪监视模拟试题含解析
- 2026届河南省上蔡县第二高级中学化学高三第一学期期中监测模拟试题含解析
- 2026年异丁烯行业分析报告
- 2026年液压过滤器市场分析报告
- 企业师徒制培训完整实施方案
- 安全文明驾驶培训教案课件
- 国家能源集团笔试试题及答案
- 本科护理系毕业论文
- 第6章 绩效反馈(《绩效管理》第3版)
- 沈阳康莱德酒店设计方案
- 2025年工行私人银行考试题库
- 2025年上海市公务员考试行测试卷历年真题参考答案详解
- 美的历程全集讲解
- 2022版10kV及以下业扩受电工程技术导则
- 中国矿业大学(北京)《MBA运营管理》2023-2024学年第一学期期末试卷
- 可移动文物管理办法
评论
0/150
提交评论