第六章交互式输入函数和屏幕输出.ppt

上传人:hyn****60 文档编号:70707517 上传时间:2023-01-25 格式:PPT 页数:19 大小:123KB
返回 下载 相关 举报
第六章交互式输入函数和屏幕输出.ppt_第1页
第1页 / 共19页
第六章交互式输入函数和屏幕输出.ppt_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《第六章交互式输入函数和屏幕输出.ppt》由会员分享,可在线阅读,更多相关《第六章交互式输入函数和屏幕输出.ppt(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第六章交互式输入函数和屏幕输出函数6.1坐标系与角度测量6.1.1坐标系WCS 世界坐标系:即参考坐标系。所有其他坐标系均相对于 WCS 定义,该坐标系恒定不变。相对于 WCS 所测量的值可以稳定地转换到其他坐标系中。UCS 用户坐标系:即工作坐标系。用户可以设置 UCS 以使图形编辑工作更为方便。所有传入 AutoCAD 命令的点,包括 AutoLISP 程序和外部函数返回的点,都是当前 UCS 中的点(除非用户在命令提示中输入的点前加上“*”,前缀为WCS坐标系)。如果应用程序需要将 WCS、OCS 或 DCS 中的坐标传送给 AutoCAD 命令,那么必须先调用函数 trans 将它们转

2、换到 UCS 中。(当AutoCAD等待用户输入一个三维点时,若用户输入一个二维点,或用定标设备拾取一个点时,取当前高度作为Z坐标。当前高度见ELEV命令和ELEVATION系统变量。具有当前高度的XY平面角构造平面。)OCS 对象坐标系:由 entget 返回的点以此坐标系表示,即相对于对象本身的坐标。根据该对象的用途,这些点常常被转换到 WCS、当前 UCS 或当前 DCS 中。反过来,在调用 entmod 或 entmake 将这些点写入数据库之前,它们也必须被转换为 OCS。该坐标系也称为图元坐标系。DCS 显示坐标系:在显示图形前,先将对象转换到此坐标系中。DCS 的原点存储在 Au

3、toCAD 系统变量 TARGET 中,并且以 Z 轴作为观察方向。换句话说,视口总是 DCS 的一个平面视图。这些坐标可以决定显示给 AutoCAD 用户的画面的位置。.。PSDCS 图纸空间 DCS:此坐标系仅能与当前激活的模型空间视口进行转换。它实质上是一个二维的转换,如果参数 disp 是 0,那么 X 坐标和 Y 坐标总是按比例缩放和平移。Z 坐标仅按比例缩放,但不作平移,因此,它可以用于确定两个坐标系之间的比例因子。6.1.2角度的测量在AutoCAD中,测量角度有方位角(或称绝对角度)和相对角度。1、方位角角度0表示正右方,逆时针转为正。2、相对角度角度的测量基准由系统变量ANG

4、BASE和ANGDIR决定,ANGBASE表示零度位置,相对当前UCS的X轴正向测量,ANGDIR决定角度的正向方向(1 顺时针,0 逆时针),对ANGBASE的解释为逆时针为正,UCS的X轴正向为0。(setvar 系统变量 值)设置系统变量(getvar 系统变量)获得系统变量值UNITS命令确定角度单位 例题 假设UCS是绕Z轴转90度,然后用下式设置零度方向和增加方向(setvar angbase 45)单位总是度,不随AUNITS变(setvar angdir 1)顺时针为正若方位角为180度,则相对角度为45度。只决定CAD的输入和显示单位,许多LISP函数总是返回弧度值6.2 交

5、互输入函数getxxx及初始化函数initget函数例题(initget(+1 2)Type Exit)1 非空 2 非零 (setq n(getint nType/Exit/正整数:)6.2.1 initget函数(initget bits string)总是返回nil为随后的用户输入函数getxxx调用创建关键字并控制其输入范围。getstring 函数是唯一不接受关键字的用户输入函数。在随后调用用户输入函数时,如果用户输入的不是相应的数据类型(例如与 getpoint 函数相对应的类型是一个点),该函数将检索关键字表来确定用户是否键入了一个关键字。如果用户的输入和表中的一个关键字相匹配,

6、函数将以字符串的形式返回该关键字。应用程序可以对返回的关键字进行检测,并对每一个关键字执行相应动作。如果用户的输入不是相应类型且和表中任何一个关键字都不匹配,AutoCAD 将要求用户再次输入。initget 函数的位编码值与关键字表仅对紧随其后的那个用户输入函数有效。如果 initget 函数设置了一个控制位,而该控制位对应用程序随后调用的那个用户输入函数来说没有意义,则忽略该控制位。如果用户的输入不满足一个或多个指定条件(例如在不允许输入零值时输入了零值),AutoCAD 将显示信息要求用户再次输入bits 按位编码的整数,用于控制是否允许某些类型的用户输入。这些控制位可以任意组合(即把各

7、位加起来),构成 0 到 225 之间的值。如果没有指定 bits 参数,则假定它是 0。各位的值如下:1(位0)非空非空2(位1)非零非零4(位2)非负非负8(位3)无界。无界。允许用户在当前图形界限之外输入一个点,即使 AutoCAD 的系统变量 LIMCHECK 当前被设置为开(ON),本条件也照样对随后调用的用户输入函数有效。16(位4)(目前不使用)(目前不使用)。32(位5)用虚线绘制拖引线或拉伸方框用虚线绘制拖引线或拉伸方框。对于那些可以由用户在图形屏幕上通过选择位置来指定一个点的函数,设置该控制位将使拖引线和拉伸方框显示为虚线而不是实线(某些显示驱动程序用颜色醒目的线来代替虚线

8、)。如果系统变量 POPUPS 设为 0,AutoCAD 将忽略该控制位。64(位6)二维距离二维距离。128(位7)任意输入,优先级最高任意输入,优先级最高。例如,如果同时设置了位 7 和位 0,那么用户仅键入 ENTER 键时,将返回空字符串。注意 AutoLISP 的后续版本中可能会使用其他 initget 控制位,所以不要设置此处未提及的位。函数识别关键字控制位之值非空1非零2非负4无界8使用虚线32二维距离64任意输入128getintyyyyygetrealyyyyygetdistyyyyyyygetangleyyyyygetorientyyyyygetpointyyyyygetc

9、oneryyyyygetwordyyygetstringentselynentselynentselpy用户输入函数控制位和关键词string 代表关键字表的字符串。关键字规范关键字用一个或多个空格分隔。例如,“Width Height Depth”关键字只能由字母、数值和连字符(-)组成。关键字有如下两种缩写办法:关键字有如下两种缩写办法:关键字的必需部分用大写字母表示,而其余部分用小写字母表示。大写的缩写部分可以位于关键字的任何位置(例如,LType、eXit或或toP)。整个关键字用大写字母表示,其后紧跟一个逗号,然后再跟随其必需部分(例如,LTYPE,LT)。这种情况下,关键字的必需部

10、分必须包含关键字的第一个字符,这意味着“EXIT,X”是无效的。“LType”和“LTYPE,LT”这两种关键字缩写方式是等价的。如果用户输入关键字不分LT大小写。用户还可以输入关键字缩写部分之后的字符。在本例中,用户可以输入LT、LTY、LTYP或LTYPE,但只输入 L 是不够的。如果 string 参数完全以大写或小写字符给出,其后没有逗号,也没有跟随必需部分,则只有用户完整输入这个关键字时 AutoCAD 才能识别。initget 函数支持本地化的关键字。函数支持本地化的关键字。下列关键字字符串语法允许输入本地化的关键字,而返回与语言无关的关键字:local1 local2 local

11、n _indep1 indep2 indepn在这里,local1 至 localn 是本地化的关键字,而从 indep1 到 indepn 是与语言无关的关键字。本地化关键字和语言无关关键字的数目必须相同,而且第一个与语言无关的关键字的前面必须有一个下划线,如下例所示:(initget Abc Def _Ghi Jkl)(getkword nEnter an option(Abc/Def):)输入 A 返回 Ghi,输入 _J 则返回 Jkl。(initget bits string)为随后的用户输入函数调用创建关键字(getint msg)输入一个整数输入一个整数,msg为显示在屏幕上的字

12、符串为显示在屏幕上的字符串(getreal msg)输入一个实数输入一个实数(getdist pt msg)输入一个距离(输入一个数、一个点或两个点)输入一个距离(输入一个数、一个点或两个点)(getangle pt msg)在当前在当前UCS的的xy平面,获得非相对角度,以弧度为单位平面,获得非相对角度,以弧度为单位(getorient pt msg)在当前在当前UCS的的xy平面,获得方位角,以弧度为单位平面,获得方位角,以弧度为单位(getpoint pt msg)输入一个点,返回点为输入一个点,返回点为UCS的点的点(getcorner pt msg)输入矩形第二个角点的坐标,返回点为

13、输入矩形第二个角点的坐标,返回点为UCS的点的点(getkword msg)输入一个关键字,该关键字必须用输入一个关键字,该关键字必须用initget函数限定函数限定(getstring t或或nil msg)输入一个字符串,输入一个字符串,当控制位为当控制位为T是,字符串可以是,字符串可以包含包含空格,用回车结束字符串空格,用回车结束字符串(entsel msg)提示用户通过指定一个点来选择单个对象(图元)(nentsel msg)提示用户通过指定一个点来选择一个对象(图元),从而可以存取包含在复杂对象内的定义数据(nentselp msg pt)在无需用户输入的情况下,本函数提供与 nen

14、tsel 函数类似的功能(getfiled title default ext flags)用标准的 AutoCAD 文件对话框提示用户输入一个文件名,并返回该文件名(setq ang(getangle)(setq ang(getangle(1.0 3.5)(setq ang(getangle Which way?)(setq ang(getangle(1.0 3.5)Which way?)(setq p(getpoint)(setq p(getpoint 何处?)(setq p(getpoint(1.5 2.0)第二点:)(initget(+1 2 4)Type Exit)(setq d(g

15、etdist pt nType/Exit/距离:)getangle函数与getorient函数的区别(getangle pt msg)(getorient pt msg)输入角度相对角度是以当前的 ANGDIR 和 ANGBASE 设置为基准的。相对角度是以当前的 ANGDIR 和 ANGBASE 设置为基准的。单位当前角度单位当前角度单位两点非非相对角度以逆时针方向测量零弧度方向(由系统变量 ANGBASE 设置)和用户指定的两点确定的直线之间的角度。方位角以逆时针方向测量由用户指定的两点所确定的直线与零弧度方向(正东方,即时钟三点钟位置)之间的角度。返回与两点输入解释相同与两点输入解释相同

16、单位弧度弧度6.3 点的输入当采用相对坐标输入点时,需要最后一点,最后一点的当前UCS坐标存在系统变量LASTPOINT中。通过(getvar LASTPOINT)获得输入点时,在xy平面平行于屏幕时输入点的输入点的类型点的输入格式UCS绝对坐标x,y或点选(非捕捉),z坐标取当前高度;x,y,zUCS相对坐标dx,dy(z坐标取最后一点的z坐标);dx,dy,dzUCS极坐标distangle(相对角度)、distangle(绝对角度)(z坐标取最后一点的z坐标)WCS绝对坐标*x,y;*x,y,zWCS相对坐标*dx,dy;*dx,dy,dzWCS极坐标distangle、*distang

17、le 6.4角度的输入例如 45或45 相对角度 45 方位角6.5其它输入(read-char file-desc)从键盘输入缓冲区或打开文件中读入一个字符,并将该字符转换成十进制的 ASCII 码值(整数)后返回,在碰到行结束字符(或字符序列)时,read-char 函数返回单个换行符(ASCII 码为 10)。样例下例中省略了 file-desc 参数,所以 read-char 在键盘缓冲区内查找数据:命令:(read-char)键盘缓冲区为空,因此 read-char 等待用户输入。ABC 65用户输入为 ABC。read-char 返回第一个字符(A)的 ASCII 码。下面三个对

18、read-char 的调用分别返回键盘缓冲区中剩余数据的 ASCII 码 66(B)、67(C)和 10(换行符):命令:(read-char)66命令:(read-char)67命令:(read-char)10(read-line file-desc)从键盘或已打开文件中读取行结束符前的字符串(不包含行结束符),如果 read-line 遇到了文件结束标志,则返回 nil。样例以读方式打开文件:命令:(setq f(open c:my documentsnew.tst r)#使用 read-line 从文件中读取一行:命令:(read-line f)To boldly go where no

19、mad has gone before.从用户输入中读取一行:命令:(read-line)To boldly go To boldly goread-line与与getstring的区别的区别read-line 直接回车返回nilgetstring 直接回车返回空串6.6屏幕输出函数既可用于屏幕输出,又可用于磁盘文件输出的函数(prin1 expr file-desc)打印表达式或将该表达式写入打开的文件中(princ expr file-desc)打印表达式或将该表达式写入打开的文件中(print expr file-desc)打印表达式或将该表达式写入打开的文件中(write-char n

20、um file-desc)打印ASCII之对应的字符(write-line string file-desc)打印字符串只用于屏幕的输出函数(prompt msg)在屏幕提示区显示一个字符串(terpri)在命令行上打印换行符打印前换行控制字符作用打印后有空格字符串加双引号printYNYYprin1NNNYprincNYNN例题 (print nABC)打印“nABC,(princ nABC)打印 ABC6.7无返回值增加一个AutoCAD命令,当命令运行完之后不希望有返回值,把(princ)作为最后一个表达式,该表达式无返回值。例题(defun c:hello()(princ nHELLO)运行程序hello结果HELLO“nHELLO (返回值)(defun c:hello()(princ nHELLO)(princ)运行程序hello结果HELLO例题;在屏幕上显示指定文件的内容(defun typefile(fname/k c f)(if(findfile fname)(progn (setq f(open fname r)(while(setq c(read-char f)(write-char c)(close f)(princ(strcat n fname is not exit.)(princ)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁