书签 分享 收藏 举报 版权申诉 / 41
上传文档赚钱

类型第四章AutoLISP的绘图功能课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:2262116
  • 上传时间:2022-03-27
  • 格式:PPT
  • 页数:41
  • 大小:329KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第四章AutoLISP的绘图功能课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    第四 AutoLISP 绘图 功能 课件
    资源描述:

    1、第四章第四章 Auto LISP的绘图功能的绘图功能 如前所述,Auto LISP语言体现了人工智能语言lisp的特点和Auto CAD强大的图形编辑功能,可以说它是集设计与绘图为一体的人工智能语言,因此,它是开发实用工程计算机辅助设计和绘图软件的强有力工具。Auto LISP具有强大的绘图编辑功能,主要是由于它提供了与Auto CAD相互通讯的简单透明的接口功能接口功能,即提供了一个系统内部函数内部函数command,AutoLISP程序中利用command函数可以非常简单而方便地调用几乎全部Auto CAD命令,以完成所要求的各种工程图形的绘制任务,本章将重点介绍command函数的功能、

    2、编程技巧及应用实例。4.1.1 调用格式调用格式 (command 参数) command函数的参数可以是任意的Auto LISP的S表达式,但与Auto LISP其它函数不同,它的参数是没有固定的格式。由于它是Auto LISP系统提供的与Auto CAD相互通讯的接口,利用它可以直接执行Auto CAD的命令,所以它的参数就是它所调用的Auto CAD命令及其子命令或命令所需的数据。 例如:用command函数调用Auto CAD命令画一直线,可写成 (command “line” /(5.0 6.0) /(10.0 15.0) ”) 它相当于在Auto CAD中键入 command:li

    3、ne From point:5.0,6.0 To point:10.0,15.0 To point:回车 由此可见,command函数的参数格式取决于所执行的Auto CAD命令及其所需的数据类型。但是由于command是Auto LISP的内部函数,其参数必须符合Auto LISP的数据类型,即采用S表达式形式。为此,将Auto CAD的命令及其子命令所要求的数据作为command函数的参数时,作了以下规定:规定: 1. Auto CAD的命令、子命令和选择项要用字符串的命令、子命令和选择项要用字符串表示,大小写均可。表示,大小写均可。 例如: (command “DIM” “hor” /(

    4、2.0 3.0) /(5.0 3.0) /(5.0 5.0) 8) “DIM”为命令,“hor”为子命令,均用字符串表示。 2.数字常量(整型数或实型数)可写成本身亦可数字常量(整型数或实型数)可写成本身亦可写成字符串形式。写成字符串形式。如上例中数字8亦可写成“8”。 3.点常量有两种表示法:点常量有两种表示法:一是一是Auto LISP表的形表的形式,式,如上例中/(2.0 3.0),/(5.0 3.0)。二是用字符二是用字符串表示,串表示,字符串中数据要符合Auto CAD的规定。如写成“2.0,3.0”,“5.0,10.0”。 4. command调用参数中的空串(调用参数中的空串(”

    5、)等效于键盘上)等效于键盘上按一次空格键。按一次空格键。如上例中画直线的程序最后要求以终止该命令的执行,即用(“”)。 空串亦可代表缺省值。例如: (command “text” “2.0,3.0 ” “” “” “example”) 标准表中二空串表示写文本时,其高度和旋转角采用缺省值。 5. command调用的参数,如数字、点常量亦可为调用的参数,如数字、点常量亦可为Auto LISP的其它表达式,但其求值结果的数据类型,要与的其它表达式,但其求值结果的数据类型,要与Auto CAD命令要求的数据类型一致。命令要求的数据类型一致。例如: (setq p1 (list 30.0 20.0)

    6、 (command “line” p1 (list (+ (car p1) 50.0) (cadr p1) ”) 但但command函数的参数不能用函数的参数不能用get类函数,这是特别类函数,这是特别要注意的,否则将出错。要注意的,否则将出错。6. command可以不带任何参数,可以不带任何参数,即(即(command),),它等效于在键盘上按它等效于在键盘上按CTRLC键,即取消了键,即取消了Auto CAD命令。命令。例如: (command “dim” “hor” /(4 4) /(6 4) /(5 4) 10) (command) 相当于取消DIM命令并返回到命令提示。 (comm

    7、and)也可以用“”代替,如上式可写成: (command “dim” “hor” /(4 4) /(6 4) /(5 4) 10) 4.1.2 功用及求值结果功用及求值结果 command函数的功用是在Auto LISP编程中直接调用Auto CAD命令,以编制绘图程序。求值器在遇到command函数时与对其它Auto LISP函数一样,也要对各参数求值。但不同的是它把各参数的求值结果交给Auto CAD去调用相应的Auto CAD命令,执行完Auto CAD命令后,又返回到Auto LISP。command函数求值结果总是返函数求值结果总是返回回nil。 command函数的实际应用有如下

    8、几种情况: 1.用一个command的实际应用是在执行一条Auto CAD命令。这是最常用的,例如: (setq p1 /(1.2 1.2) p2 /(5.8 12.4) (command “line” p1 p2 ”) (command “circle” /(5.0 4.0) 3) (command “text” /(4.0 0.4) “3.5” “0.0” “ABC”) 2.用一个command函数执行多条Auto CAD命令,这也是正确的。 例如: (command “line” p1 p2 ” “circle” /(5.0 4.0) 3 “text” /(4.0 0.4) “3.5”

    9、“0.0” “ABC” ) 3.一条Auto CAD命令,可以由多个command函数完成。例如: (command “circle”) (command /(5.0 4.0) (command 3) 在这种情况下可在其中间插入其它函数,如前所述command函数是不函数是不允许用允许用get类函数作参数的。如类函数作参数的。如(command “circle” (getpoint) (getreal)就就是错误的。但我们可以在多个是错误的。但我们可以在多个command函数调用中间,插进函数调用中间,插进get类函数。类函数。例如; (command “circle”) (setq p1 (

    10、getpoint “n 圆心点”) (command p1) (setq r (getreal “n 半径”) (command r) 4.利用暂停符号pause使正在执行的Auto CAD命令暂停。作法是command函数调用参数表中加pause符号,该Auto CAD命令即暂停,以等待用户键入或拖拽输入。例如: (command “circle” /(5.0 4.0) pause) 该式是用command函数调入Auto CAD中的circle命令。先设置圆心(5.0 4.0),然后暂停下来让用户在屏幕上拖拽圆的半径,当用户给出所要的点或输入所需的半径后,在屏幕上便画出一个圆。 4.1.3

    11、注意注意 mand函数调用中的参数类型,个数与顺序应与函数调用中的参数类型,个数与顺序应与Auto CAD命令严格对应。命令严格对应。为防止出错,对于初学者建议在编写用command函数的Auto LISP程序之前,先用Auto CAD的命令提示状态下敲入命令,确定其输入命令、子命令及其数据后,再进行编程。 mand函数在调用象line,pline,layer等需要不定个数据的Auto CAD命令时,最后必须按一次空格键,以终止该命令的执行。即在command参数最后加一个(“”)。 mand函数中的参数不能用get族函数。 mand函数调用中的命令、子命令及其选项等字符串中不能含空格,因为空

    12、格在字符串中也是有效的。例如: (command “line” “1” “2” “3 4” “”) ;非法命令 (command “line” “1,2” “3,4” “”) ;合法 5. command函数调用函数调用script命令时只能作为程序文件或函数定命令时只能作为程序文件或函数定义中的最后一个表达式,否则程序易于出现不正确的结果,这在开义中的最后一个表达式,否则程序易于出现不正确的结果,这在开发发CAD应用应用软件中特别出现要加以注意。 4.2图形处理函数图形处理函数 Auto LISP编写绘图程序时,常需要一些几何特征点、距离、角度等数据,如两点距离、两直线交点等。Auto LI

    13、SP专门提供了一些解决这类问题的函数,即图形处理函数。利用这些函数,可使很多复杂问题的求解简化,充分利用这些函数,可使编程大大简化。 4.2.1求相对角度的函数求相对角度的函数ANGLE 1.调用格式调用格式 (angle 点1 点2) 2.功用及求值结果功用及求值结果 该函数是求点1到点2连成一条直线的正方向与当前作图平面X轴方向所组成的角度,单位为弧度。求值结果返回该角度。若点为三维点,则将其投影到当前作图平面上计算。例如: (angle /(5.0 1.2) /(2.4 1.2) 返回值 3.14159 3.注意注意 点1 、点2顺序不能写错,因它决定直线的方向。若上例写成:(angle

    14、 /(2.4 1.2) /(5.0 1.2) 返回值 0 4.2.2求两点间距离的函数求两点间距离的函数DISTANCE 1.调用格式调用格式 (distance 点点1 点点2) 2.功用及求值结果功用及求值结果 该函数的功用是求点该函数的功用是求点1和点和点2的距离,并返的距离,并返回该函数值。同样,若为三维点,它返回到投影在当前回该函数值。同样,若为三维点,它返回到投影在当前作图平面上的两点间的距离。作图平面上的两点间的距离。 例如:例如: (distance /(5.0 1.2) /(2.4 1.2) 返回值返回值2.600000 (distance /(5.0 1.2 3.0) /(

    15、2.4 1.2 5.1) 返回值返回值4.045990 1.调用格式调用格式 (polar 点 方向角 距离) 2.功用及求值结果功用及求值结果 该函数用于求一个点的极坐标,返回在UCS坐标系统中的一个点。其方向角是从X轴方向按逆时针方向计算,其单位为弧度。点不管二维点还是三维点总是返回二维点。例如: (polar /(7.0 1.0) pi (+ 2.0 3.0) 返回值(2.00000 1.000000) (polar /(4.0 7.0) 0 (/ 4.0 2) 返回值(6.00000 7.000000) (polar /(4.0 7.0) (/ pi 3.0) 4.0) 返回值(6.0

    16、0000 10.464100) p1p2p3acb 在编制绘图程序时,已知一点求另一相关点时,常采用两个函数即List和polar。由于polar函数在很多情况下,使用起来更简便,应尽可能使用polar函数,例如: 已知p2点及三角形三个边长a,b,c,确定p1、p3点,用polar函数: (setq p1 (polar p2 (/ pi 2.0) a) p3 (polar p1 0 b) ;注意p2、a、b、c应先赋值 用List函数: (setq p1 (list (car p2) (+ (cadr p2) a) p3 (polar (+ (car p1) b) (cadr p1) ) 显

    17、然,用polar函数确定相对坐标点是比较简单的。 图4.1p1p2p3图4.2另外polar函数还可以配合angle,distance等函数使用,使用程序更简化,例如:已知直线二端点p1、p2,求距p1点为3/7线长的一点p3(图4.2)。 (setq p3 (polar p1 (angle p1 p2) (* 3.0 (/ (distance p1 p2) 7.0) 用polar函数时比较麻烦的是常常要将角度转化成弧度,为简化起见,可先将一些常用的角度赋给一些简单符号。如: (setq f1 (* 0.017453 30) f2 (* 0.017453 45) f3 (* 0.017453

    18、60) f4 (* 0.017453 90) f5 (* 0.017453 135) f6 (* 0.017453 225) ) 然后,将上面的函数放在绘图环境中,这样使用起来很方便。 4.2.4求二直线交点坐标的函数求二直线交点坐标的函数 INTERS 1.调用格式调用格式 (inters端点1端点2端点3端点4任选项) 2.功用及求值结果功用及求值结果 该函数求以端点1,端点2确定的一条直线和以端点端点3,端点4确定的另一直线的交点,并返回该交点。若不相交,则返回nil。 任选项提示是否求延长线交点。若任选项存在,且其值为nil,则提示可以求两条线上或其延长线上的交点。若任选项不存在或其值

    19、为非nil,则提示所求交点只在两条线上,两条线不能延长。例如: 任选项不存在或存在但其值为nil,如: (inters /(4.0 4) /(1.0 1.0) /(1.0 2.0) /(3.5 6.0) (inters /(4.0 4) /(1.0 1.0) /(1.0 2.0) /(3.5 6.0) T) 均返回nil,但同样上面函数若任选项为nil如: (inters /(4.0 4) /(1.0 1.0) /(1.0 2.0) /(3.5 6.0) nil) 则可返回交点(0.782609 0.782609) 4.2.5 目标捕捉函数目标捕捉函数OSNAP Auto LISP提供的OSN

    20、AP函数所完成的功能与Auto CAD中的OSNAP命令完成的功能相似,即捕捉目标的特征点。 1.调用格式调用格式 (osnap 点 目标捕捉方式) 2.功用及求值结果功用及求值结果 该函数是用点先取屏幕图形目标,再根据目标捕捉方式求出该目标的特征点如(圆心、直线端点、切点、线段中点、交点等),并返回该特征点。若对给定点没有捕捉到目标,但找不到与指定捕捉方式相匹配的目标特征点。OSNAP则返回nil。 有关目标捕捉功能在Auto CAD的OSNAP命令已作介绍,下面对目标捕捉方式只作一简述: (1) NEA(Nearest)捕捉靶区中心点位置最近的线、弧线或圆上的点。 (2) ENDP(End

    21、point)捕捉靶区中心点最近的线、弧线的端点。 (3) MID(Midpoint)捕捉线段或弧线的中点。 (4) CEN(Center)捕捉弧线或圆(可见部份)的圆心。 (5) NOD(Node)捕捉点元素,这些点应置于块定义的插入基点上,该块插入时的snap节点。 (6) QUA(Quadrand)捕捉圆或弧线上的象限点(可见的)-0o、90o、180o、270o的点,若圆或弧线是旋转后的块的一部份,其象限点也是随之转动 (7) INT(Interserction)捕捉两条线(或者一线与圆或弧,或者两个圆或弧)的交点。 (8) INS(Insert)捕捉一个形、文本、属性定义或块的插入点。

    22、 (9) PER(Perpendicular)在直线、弧线或圆捕捉一点,该点与前一点的连接为该直线、弧线或圆的法线。用该方式的弧线或圆不能是块的一部份。 (10) TAN(Tangent)捕捉圆或弧线上的某一点,该点与前一点连接为该弧线的一条切线。用该方式的圆或弧线不能是块的一部份, (11) QUI(Quick)该方式只能与上述方式一起使用,目标捕捉一般搜索落入靶区的所有目标,并先取最靠近指定方式的特征点,当屏幕上出现多个可见图素时,这种搜索很费时,若加上QUI快捷方式,则只要找到符合指定类型的目标的一个点便停止搜索,但若遇到INT方式时,则不管QUI方式均进行全面搜索。 (12) NON(

    23、None)关闭目标捕捉方式。 以上的目标捕捉方式,除Quick和None方式外,其它目标方式可以任意结合,并用逗号隔开。Quick只能与其它目标捕捉方式一起使用。3. 注意注意 目标捕捉只能辨认屏幕上可见图素,对关闭层上的图形或虚线中“抬笔”段,则捕捉不到,下面举例说明其用法,例如: (setq pc (osnap (getpoint “n select object:”) “cen”) select object:用鼠标选取屏幕中圆上一点, 返回该圆的圆心。 又如: (command “line” /(3.0 6.0) ) (setq pt (osnap (getpoint “n selec

    24、t object:”) “tan”) (command pt “”) select object:用鼠标选取屏幕上圆上的一点, 在屏幕上绘出由点(3.0 6.0)到该圆的切线。 再如: (setq pt (osnap (getpoint “n select object:”) “midp,endp) select object:选取已有的直线上一点。 若目标距某端点近则返回该端点,否则返回中点。4.3 屏幕操作函数屏幕操作函数 屏幕操作函数主要是对屏幕显示、读取进行控制、管理、操作的函数。这类函数除少数外一般无参数,学习这类函数着眼点不在求值结果(其求值结果总是返回nil),主要是了解这类函数

    25、的功用。 4.3.1 文本图形屏幕转换函数文本图形屏幕转换函数 GRAPHSCR和和TEXTSCR 1.调用格式调用格式 (graphscr) (textscr) 2.功用功用 在执行Auto LISP程序过程中,文本屏幕和图形屏幕一般都可根据情况自动转换,特别是转换成图形屏幕。如用command命令调用Auto CAD命令时,大都会自动从文本屏幕转换为图形屏幕,而执行一些列表等命令时,又会自动转换到文本屏幕。但在有些情况下屏幕并不能按需要自动转换,而需要人为控制,这时就要在Auto LISP程序中使用graphscr或textscr函数,graphscr的功能是使文本屏幕转换为图形屏幕,而t

    26、extscr的功能是使图形屏幕转换成文本屏幕,其作用相当于按F1键。 1.调用格式调用格式 (redraw 实体名 方式) 2.功用功用 该函数用于在图形屏幕上重画图形,其应用用三种情况:1)当无任选项实体名和方式时,将重画当前视区内的所有图形;2)当指定任选项实体时,在屏幕上重画当前图形数据库中选中的实体;3)当存在任选项方式和实体名时,将根据选定方式(为整型数)执行以下功能: 方式为1在屏幕上重画实体 2把实体从屏幕上清除 3把实体加亮显示(若显示器具有加亮显示功能) 4实体,不加亮显示(若显示器具有加亮显示功能) redraw函数在编程中实际应用: 当图形比较复杂,再选择目标时因其它线条

    27、干扰而选不定目标时,可用(redraw 实体名 方式)函数,其中方式选2,将某些实体暂时隐去,待目标选定后,在利用此函数方式选1恢复该部分图形,如在标注小角度尺寸及在剖面线上标注尺寸时常用此法。1.调用格式调用格式 (grclear) 2.功用功用 该函数用于清除当前视窗的图形,而命令提示区,状态行及菜单提示区保持不变。此函数并没有删去屏幕上已有的任何实体,而只是将其“隐藏”起来。调用redraw函数可使其恢复,注意它与(redraw 实体名 方式)不同的是grclear是对整个视区起作用 。 4.3.4向屏幕文本显示区写文字的函数向屏幕文本显示区写文字的函数GRTEXT 1.调用格式调用格式

    28、 (grtext 框区 文字字符串 加亮) 2.功用功用 前面讲过的用command函数调用Auto CAD命令如Text和attdef等只能在绘图区中显示文字。 函数参数中任选项的意义: 框区参数值若为正整数、则文字显示在菜单区,且参数值由0到最大。参数值若为负整数,则文字显示在状态行区。若参数值为-1,文字显示在方式状态行区。若其值为-2,则文字显示在坐标状态行区。 文字字符串用于书写文字,文字不能太长,否则将截尾显示。 加亮若提供了其值不为0,将加亮显示;若其值为0,则去掉加亮显示。若(grtext)不带任何参数,将使屏幕上所有文本区恢复到它们的标准状态。 Grtext函数常用于在程序运

    29、行过程中,对程序运行各阶段的提示。如齿轮CAD程序运行过程中可在菜单区依次显示:数据输入、设计计算、结果显示、结构类型、图形绘制、尺寸标注、图形输出等,以提示程序运行的各个阶段。 4.4存取存取Auto CAD系统变量的函数系统变量的函数Auto LISP提供了存取Auto CAD系统变量的函数。利用这些函数可以很方便地查阅或改变系统的值,以满足各种需要,存取Auto CAD系统变量的函数有两个:即getvar和setvar。4.4.1获得系统变量值的函数获得系统变量值的函数GETVAR1.调用格式调用格式 (getvar 系统变量名)2.功用及求值结果功用及求值结果该函数用于获取Auto C

    30、AD系统变量的当前值,并返回该值。系统变量名用字符串表示。例如: (getvar “filletrad”) 返回值0.250000即返回当前圆角半径的缺省值为0.25个图形单位。1.调用格式调用格式 (setvar系统变量名值)2.功用及求值结果功用及求值结果该函数用来改变系统变量的值,即给它设置一新值。并返回该值。例如: (setvar “filletrad” 0.50) 返回值0.5即给圆角半径设一新值0.5个图形单位。 3.注意注意 1)系统变量分两类:一类是只读的,另一类是可读写的。前一种只能用getvar查阅,只有后一种才能用setvar来改变其值。 2)每个系统变量的值都有规定的数

    31、据类型,在用setvar进行修改值时要特别注意。4.应用应用 setvar函数,在使用CAD程序开发中非常有用,常用的有: 1)改变屏幕控制显示 (setvar “bilpmode” 0) ;使绘图时不显示“+”字光标 (setvr “cmdecho” 0) ;使Auto CAD命令提示和输入数据不显示在文本屏幕上 2)控制目标捕捉方式及改变目标框大小的系统变量,在标注尺寸时常因目标选不到而中断程序,通常可采用以下的系统变量值的重新设置来改善目标选取。 (setvar “osmode” 512) 返回值512;采用目标最近点的方式 (setvar “pickbox” 3) 返回值3;改变靶区的

    32、大小 3)利用viewctr来确定视图基点 (setq pc (getvar “viewctr”) (setq p1 (polar pc pi 5) 其它系统变量如angbase,angdir等亦常用。4.5综合举例综合举例例1 编程设置图形环境 (defun txhi () (command “layer” “n” 1 “n” 2 “n” 3 “n” 4 “n” 5 “c”1 1 “c”2 2 “c”3 3 “c”4 4 “c”5 5 “1” “center” 1 “”) ;设置层 (command “ltscale” 10) (command “setvar” “blipmode” 0 “

    33、setvar” “cmdecho” 0) ;系统变量 设置不出现十字标记;后者不再显示提示信息 (command “style” “standard” “text” 0 0.9 0 “” “”) ;字体定义 (command “style” “hz” “nztxt” 0 0.7 0 “” “”) (command “dim” “dimth” “off” “dimtoh” “off” dimtad” “on”) ;尺寸变量 设置 (command “exit”) (setq dimx 10) (setq dimt (* 0.35 dimx) dima (*0.3 dimx) dime (* 0.

    34、3 dimx) (command “dim” “dimtxt” dimt “dimexe” dime “dimasz” dima) (command “exit) )例2 编程绘制图框。 (defun tk1 (/ pp (th) ;第三章综合举例4 (txhj) (command “layer” “s” 3 “” “limits” /(0 0) (list tkc tkk) “zoom” “a”) (grclear) ;清屏 (xt2 tkc ctk /(0 0) 0.1) ;绘外图框 (setq pp (list 25 ctk) ;内图框左下角点 (xt2 (- tkc ctk 25) (

    35、tkk (* 2 ctk) pp 0.4) ;绘内图框 );defun (defun xt2 (1 w pl lw / p3) ;l长,w宽,pl左下角点,lw线宽 (setq p3 (list (+ (car pl) 1) (+ cadr pl) w) (command “pline” pl “w” lw “” (polar pl 0 1) p3 (polar pl (/ pi 2.0) w) p1 “”) ) 例3 水平对称函数。 (defun hsym (p i n a0 / xx yy) ;p点变量的符号字符串,i点变量的下标,n点变量数目,a0对称轴上一点 (repeat n (se

    36、tq xx (read (stract p (itoa i) “h”) ;将pih赋给xx yy (read (stract p (itoa i) ;将pi赋给yy (set xx (list (car (eval yy) (- (* (cadr a0) 2) (cadr (eval yy) ;将pi的镜像点的值赋给xx的值pih (setq i (1+ i) );repeat )例4 垂直对称函数。 (defun vsym (p i n a0 /xx yy) ;p点变量的符号字符串,i点变量的下标, n点变量数目,a0对称轴上一点。 (repeat n (setq xx (read (str

    37、act p (itoa i) “v”) ;将piv赋给xx yy (read (stract p (itoa i) ;将pi赋给yy (set xx (list (- (* (car a0) 2) (car (eval yy) (cadr (eval yy) ;pi的垂直镜像点的值赋给xx的值piv );repeat ) 例5 编程绘制整体式齿轮主视图。 (defun ctg (/ l1 p0 p3 p4 c3 ss1 ss2 ss3) (cljg) ;第三章综合举例5 (tk1) ;本章例2 (sfcof b da da) ;第三章综合举例6 (setq l1 /(da df d b dh

    38、n) (b1 l1 cof) ;第三章综合举例4;确定绘图基点: (setq pc (getvar “viewctr”) ;屏幕中心点 pc (polar pc pi (* 0.2 tkc) ;绘图基点 );确定主视图各点(见图4.4a): (setq f2 (/ pi 0.2) f3 (* 0.017453 270) ;角度变量 (setq p0 (polar pc pi (/ b 2.0) ;点坐标 p1 (polar p0 f2 (/ dh 2.0) p2 (polar p0 f2 (/ df 2.0) p3 (polar p0 f2 (/ da 2.0) p4 (polar p3 f3

    39、 n) p5 (polar p3 0 n) c1 (polar p0 pi 4) c3 (polar (polar (polar p0 f2 (/ d 2.0) pi 4) ) (hsym “p” 0 6 pc) (vsym “p” 0.6 pc) ;水平及垂直对称轴函数 ;绘中心线: (command “layer” “s” 1 “”) (command “line” c1 (polar c1 0 (+ b 8) “”) (command “line” c3 (polar c3 0 (+ b 8) “”) (setq ss0 (entlast) ;将最后的实体赋给ss0 (command “

    40、mirror” ss0 “” p0 pc “”) ;分度圆中心线映射;绘齿轮主视图: (command “layer” “s” 2 “”) (xt2 b (/ (- df dh) 2.0) p1 0.4) ;本章例2 (setq ss1 (entlast) (command “pline” p2 “w” 0.4 “” p4 p5 p5v p4v p2v “”) ;绘齿形 (setq ss2 (entlast) (command “mirror” ss1 “” p0 pc “”) ;齿轮幅映射 (setq ss3 (entlast) (command “layer” “s” 3 “”) (com

    41、mand “hatch” “u” 45 3 “” ss3 ss1 “”) ;绘齿幅面剖面线 (command “layer” “s” 2 “”) (command “mirror” ss2 “” p0 pc “”) ;齿形映射 (xt2 b dh p1h 0.4) ;本章例2,绘轴孔 );defun 例6 编程绘制整体式齿轮左视图(见图4.4b))。 (defun clchs (/ pc0 pt1 pt2 c5) (setq pc0 (polar pc 0 (* 0.3 tkc) ;侧视图基点圆心 (initget 7) (setq jw (getdist “n键槽宽jw=?”) jw (*

    42、jw cof) (initget 7) (setq jh (getdist “n键槽深jh=?”) jh (* jh cof) (setq rh (/ dh 2.0) jw0 (/ jw 2.0) ang (atan jw0 (sqrt (- (* rh rh) (* jw0 jw0) (command “layer” “s” 3 “”) (command “pline” ;绘轴孔 (setq pt1 (polar pc0 (- ang) rh) ;点坐标 (setq pt2 (polar pt1 0 jh) (polar pt2 (/ pi 2.0) jw) (polar pc0 ang r

    43、h) “a” “ce” pc0 pt1 “”);绘中心线: (command “layer” “s” 1 “”) (command “line” (setq c5 (polar pc0 pi (+ rh 4) (polar c5 0 (+ dh jh 4) “” “line” (polar pc0 (/ pi 2.0) (+ rh 4) (polar pc0 (* 0.017453 270) (+ rh 4) “”) );defun 人有了知识,就会具备各种分析能力,明辨是非的能力。所以我们要勤恳读书,广泛阅读,古人说“书中自有黄金屋。”通过阅读科技书籍,我们能丰富知识,培养逻辑思维能力;通过阅读文学作品,我们能提高文学鉴赏水平,培养文学情趣;通过阅读报刊,我们能增长见识,扩大自己的知识面。有许多书籍还能培养我们的道德情操,给我们巨大的精神力量,鼓舞我们前进。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第四章AutoLISP的绘图功能课件.ppt
    链接地址:https://www.163wenku.com/p-2262116.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库