第六章交互式输入函数和屏幕输出.ppt_第1页
第六章交互式输入函数和屏幕输出.ppt_第2页
第六章交互式输入函数和屏幕输出.ppt_第3页
第六章交互式输入函数和屏幕输出.ppt_第4页
第六章交互式输入函数和屏幕输出.ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

第六章交互式输入函数和屏幕输出函数 6 1坐标系与角度测量6 1 1坐标系WCS世界坐标系 即参考坐标系 所有其他坐标系均相对于WCS定义 该坐标系恒定不变 相对于WCS所测量的值可以稳定地转换到其他坐标系中 UCS用户坐标系 即工作坐标系 用户可以设置UCS以使图形编辑工作更为方便 所有传入AutoCAD命令的点 包括AutoLISP程序和外部函数返回的点 都是当前UCS中的点 除非用户在命令提示中输入的点前加上 前缀 为WCS坐标系 如果应用程序需要将WCS OCS或DCS中的坐标传送给AutoCAD命令 那么必须先调用函数trans将它们转换到UCS中 当AutoCAD等待用户输入一个三维点时 若用户输入一个二维点 或用定标设备拾取一个点时 取当前高度作为Z坐标 当前高度见ELEV命令和ELEVATION系统变量 具有当前高度的XY平面角构造平面 OCS对象坐标系 由entget返回的点以此坐标系表示 即相对于对象本身的坐标 根据该对象的用途 这些点常常被转换到WCS 当前UCS或当前DCS中 反过来 在调用entmod或entmake将这些点写入数据库之前 它们也必须被转换为OCS 该坐标系也称为图元坐标系 DCS显示坐标系 在显示图形前 先将对象转换到此坐标系中 DCS的原点存储在AutoCAD系统变量TARGET中 并且以Z轴作为观察方向 换句话说 视口总是DCS的一个平面视图 这些坐标可以决定显示给AutoCAD用户的画面的位置 PSDCS图纸空间DCS 此坐标系仅能与当前激活的模型空间视口进行转换 它实质上是一个二维的转换 如果参数disp是0 那么X坐标和Y坐标总是按比例缩放和平移 Z坐标仅按比例缩放 但不作平移 因此 它可以用于确定两个坐标系之间的比例因子 6 1 2角度的测量在AutoCAD中 测量角度有方位角 或称绝对角度 和相对角度 1 方位角角度0表示正右方 逆时针转为正 2 相对角度角度的测量基准由系统变量 ANGBASE 和 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交互输入函数getxxx及初始化函数initget函数例题 initget 12 TypeExit 1非空2非零 setqn getint nType Exit 正整数 6 2 1initget函数 initget bits string 总是返回nil为随后的用户输入函数getxxx调用创建关键字并控制其输入范围 getstring函数是唯一不接受关键字的用户输入函数 在随后调用用户输入函数时 如果用户输入的不是相应的数据类型 例如与getpoint函数相对应的类型是一个点 该函数将检索关键字表来确定用户是否键入了一个关键字 如果用户的输入和表中的一个关键字相匹配 函数将以字符串的形式返回该关键字 应用程序可以对返回的关键字进行检测 并对每一个关键字执行相应动作 如果用户的输入不是相应类型且和表中任何一个关键字都不匹配 AutoCAD将要求用户再次输入 initget函数的位编码值与关键字表仅对紧随其后的那个用户输入函数有效 如果initget函数设置了一个控制位 而该控制位对应用程序随后调用的那个用户输入函数来说没有意义 则忽略该控制位 如果用户的输入不满足一个或多个指定条件 例如在不允许输入零值时输入了零值 AutoCAD将显示信息要求用户再次输入 bits按位编码的整数 用于控制是否允许某些类型的用户输入 这些控制位可以任意组合 即把各位加起来 构成0到225之间的值 如果没有指定bits参数 则假定它是0 各位的值如下 1 位0 非空2 位1 非零4 位2 非负8 位3 无界 允许用户在当前图形界限之外输入一个点 即使AutoCAD的系统变量LIMCHECK当前被设置为开 ON 本条件也照样对随后调用的用户输入函数有效 16 位4 目前不使用 32 位5 用虚线绘制拖引线或拉伸方框 对于那些可以由用户在图形屏幕上通过选择位置来指定一个点的函数 设置该控制位将使拖引线和拉伸方框显示为虚线而不是实线 某些显示驱动程序用颜色醒目的线来代替虚线 如果系统变量POPUPS设为0 AutoCAD将忽略该控制位 64 位6 二维距离 128 位7 任意输入 优先级最高 例如 如果同时设置了位7和位0 那么用户仅键入ENTER键时 将返回空字符串 注意AutoLISP的后续版本中可能会使用其他initget控制位 所以不要设置此处未提及的位 用户输入函数控制位和关键词 string代表关键字表的字符串 关键字规范关键字用一个或多个空格分隔 例如 WidthHeightDepth 关键字只能由字母 数值和连字符 组成 关键字有如下两种缩写办法 关键字的必需部分用大写字母表示 而其余部分用小写字母表示 大写的缩写部分可以位于关键字的任何位置 例如 LType eXit 或 toP 整个关键字用大写字母表示 其后紧跟一个逗号 然后再跟随其必需部分 例如 LTYPE LT 这种情况下 关键字的必需部分必须包含关键字的第一个字符 这意味着 EXIT X 是无效的 LType 和 LTYPE LT 这两种关键字缩写方式是等价的 如果用户输入关键字不分LT大小写 用户还可以输入关键字缩写部分之后的字符 在本例中 用户可以输入LT LTY LTYP或LTYPE 但只输入L是不够的 如果string参数完全以大写或小写字符给出 其后没有逗号 也没有跟随必需部分 则只有用户完整输入这个关键字时AutoCAD才能识别 initget函数支持本地化的关键字 下列关键字字符串语法允许输入本地化的关键字 而返回与语言无关的关键字 local1local2localn indep1indep2indepn 在这里 local1至localn是本地化的关键字 而从indep1到indepn是与语言无关的关键字 本地化关键字和语言无关关键字的数目必须相同 而且第一个与语言无关的关键字的前面必须有一个下划线 如下例所示 initget AbcDef GhiJkl getkword nEnteranoption Abc Def 输入A返回Ghi 输入 J则返回Jkl initget bits string 为随后的用户输入函数调用创建关键字 getint msg 输入一个整数 msg为显示在屏幕上的字符串 getreal msg 输入一个实数 getdist pt msg 输入一个距离 输入一个数 一个点或两个点 getangle pt msg 在当前UCS的xy平面 获得非相对角度 以弧度为单位 getorient pt msg 在当前UCS的xy平面 获得方位角 以弧度为单位 getpoint pt msg 输入一个点 返回点为UCS的点 getcornerpt msg 输入矩形第二个角点的坐标 返回点为UCS的点 getkword msg 输入一个关键字 该关键字必须用initget函数限定 getstring t或nil msg 输入一个字符串 当控制位为T是 字符串可以包含空格 用回车结束字符串 entsel msg 提示用户通过指定一个点来选择单个对象 图元 nentsel msg 提示用户通过指定一个点来选择一个对象 图元 从而可以存取包含在复杂对象内的定义数据 nentselp msg pt 在无需用户输入的情况下 本函数提供与nentsel函数类似的功能 getfiledtitledefaultextflags 用标准的AutoCAD文件对话框提示用户输入一个文件名 并返回该文件名 setqang getangle setqang getangle 1 03 5 setqang getangle Whichway setqang getangle 1 03 5 Whichway setqp getpoint setqp getpoint 何处 setqp getpoint 1 52 0 第二点 initget 124 TypeExit setqd getdistpt nType Exit 距离 6 3点的输入当采用相对坐标输入点时 需要最后一点 最后一点的当前UCS坐标存在系统变量 LASTPOINT 中 通过 getvar LASTPOINT 获得输入点时 在xy平面平行于屏幕时输入 6 4角度的输入例如45或 45相对角度 45方位角6 5其它输入 read char file desc 从键盘输入缓冲区或打开文件中读入一个字符 并将该字符转换成十进制的ASCII码值 整数 后返回 在碰到行结束字符 或字符序列 时 read char函数返回单个换行符 ASCII码为10 样例下例中省略了file desc参数 所以read char在键盘缓冲区内查找数据 命令 read char 键盘缓冲区为空 因此read char等待用户输入 ABC65用户输入为ABC read char返回第一个字符 A 的ASCII码 下面三个对read char的调用分别返回键盘缓冲区中剩余数据的ASCII码66 B 67 C 和10 换行符 命令 read char 66命令 read char 67命令 read char 10 read line file desc 从键盘或已打开文件中读取行结束符前的字符串 不包含行结束符 如果read line遇到了文件结束标志 则返回nil 样例以读方式打开文件 命令 setqf open c mydocuments new tst r 使用read line从文件中读取一行 命令 read linef Toboldlygowherenomadhasgonebefore 从用户输入中读取一行 命令 read line Toboldlygo Toboldlygo read line与getstring的区别read line直接回车返回nilgetstring直接回车返回空串 6 6屏幕输出函数既可用于屏幕输出 又可用于磁盘文件输出的函数 prin1 expr file desc 打印表达式或将该表达式写入打开的文件中 princ expr file desc 打印表达式或将该表达式写入打开的文件中 print expr file desc 打印表达式或将该表达式写入打开的文件中 write charnum file desc 打印ASCII之对应的字符 write linestring file desc 打印字符串只用于屏幕的输出函数 promptmsg 在屏幕提示区显示一个字符串 terpri 在命令行上打印换行符 例题 print nABC 打印 nABC princ nABC 打印ABC 6 7无返回值增加一个AutoCAD命令 当命令运行完之后不希望有返回值 把 princ 作为最后一个表达式 该表达式无返回值 例题 defunc hello

温馨提示

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

评论

0/150

提交评论