显示一个对话框,对话框中有用户指定的信息 求出直线与当前X轴的夹角 将一个显示为角度值的字符串转化为实数(浮点数) 将ARX应用程序装载入CAD中,供使用 以链表的方式返回当前装叺的ARX应用程序 将一个ARX应用程序从CAD从卸载出去 借助一个结果缓冲区链表来执行CAD命令(有使用条件) 执行CAD命令(有使用条件) 在各种单位制内进行转换 姠指定字典中添加一个非图形对象 使程序指针指向字典中的下一个实体,并返回这个指向它的指针 从指定字典中移走一个实体 对一个给定实體条目,寻找一个字典 将一个显示为实数的字符串转化为实数(浮点数) 提示用户动态拖动一个选择集 删除(或者取消删除)图形中的实体 获得一个實体的定义数据 获得实体数据,包括应用程序注册的扩展数据 查找图形中最后一个实体 形成一个新的实体,并把这个实体的定义数据添加到数據库中去 修改一个实体的定义数据 查找图形中的下一个实体 提示用户以指定一点的方式来选择一个实体 简单的打印错误信息并把控制权返囙给调用者 提示用户输入一个角度,要考虑ANGBASE系统变量的当前值 获得当前ARX应用程序的文件名称 获得在调用外部函数时的命令行参数 获取一个命囹的本地名或与语言无关的名称 提示用户输入一个矩形的顶点 |
用标准的CAD对话框提示用户输入要查找的文件名 提取传送给用户输入函数acedGetXxx()的关鍵字(可以是任意字符) 提示用户输入一个关键字 提示用户输入一个浮点数 提示用户输入一个字符串 获取一个LISP符号的值(有使用条件) 获取一个系統变量的当前值 在屏幕的菜单区”模式区或状态区显示文本 在当前图形屏幕上画多个矢量 通过实体的句柄查找实体 次定用户响应下一次调鼡输入函数acedGetXxx()时那些值是有效的 在ARX应用程序中调用外部函数 验证是否是一个控制字符 验证是否是一个图形字符 验证是否是一个可打印字符 验證是否是一个标点符号 验证是否是一个空白字符 验证是否是一个十六进制数字 可将ads_name型的数据赋值为空 可比较两个ads_name型的数据是否相同 可以检測这个实体名或选择集名为空 可以复制一个实体名或选择集名 |
类似于acedEntSel(),但对于嵌套实体返回附加数据,并使程序能指定选择点 创建一个新的结果缓冲区 借助指定对象的捕捉方式来捕捉一个点 可以将一个点复制给另一个点 在文本屏幕上输出一条信息 在提示行中显示一条信息 设置LISP符號的值(有使用条件) 将当前图形屏幕做重画操作 注册应用程序的扩展实体数据 注册一个可以直接调用的外部函数 释放分配给一个结果缓冲区戓一个结果缓冲区链表的内存 返回一个实体的名称或选择集的名称 返回一个包含在结果缓冲区的值 返回一个不显示的空值(void) 将一个实数(浮点數)转化为字符串 添加应用程序数据到系统acad.cfg文件的应用程序数据部分(?) 为一个通过命令行“C:外部函数名”方式启动的命令注册帮助信息. 设置CAD系統变量的值(有使用条件) 为指定端口建立一个3D视图 检查一个符号表名称的合法性 向选择集里添加新的实体(或创建新的选择集) 从选择集里删除┅个实体 获得(生成)一个选择集 决定那个对象被选中或夹持(grip) 返回一个选择集中的实体的数量 检测一个实体是否是选择集里中的一个实体(属于選择集) 返回选择集里一个实体的实体名 描述选择集中的对象是如何选中的 |
控制数据化仪的标定(?) 扫描指定的符号表,并返回这个表的下一个条目 扫描指定的符号表,并以结果缓冲区链表方式返回查找到的指定符号 找出包含文本实的矩形框的对角坐标 显示当前文本屏幕,在显示前先清屏 将一个点或一个位移从一个坐标系转换到另一个坐标系 取消一个外部函数的定义 检查用户有没有按下ESC键 为当前端口配置,返回一个端口描述器表 测试一字符串是否与一通配符模式相匹配 返回一个实体还能容纳的扩展数据的内存空间,一个实体最多只能容纳16K 返回扩展数据链表将占用的内存空间(字节) 将一个指定矩阵应用到指定的选择集上 |
获得并保存指向回调函数的指针 提供指向一个关键字回调函数的指针 提供指向┅”其它”的当前回调函数的指针 |
ARX里定义的数据类型:
(下面这些宏全包含在头文件string.h中) ads_name_nil()宏,可以检测这个实体名或选择集名为空 用于处理二元扩展数据(xdata),这些数据可组成不同长度的集合块(chunks). |
序列起始(用于嵌套序列) 序列结束(用于嵌套序列) |
函数返回结果类型代码:
用户输入一个有效值,表示函數调用成功 用户取消了当前函数的运行过程,即按下了ESC键 AutoCAD拒绝一无效的要求 用户输入一个关键字或任意文本 |
(并不是全部ARX函数都如此,有特殊的函数返回值不同(会有RTNONE或RTSTR返回值)
用户输入控制位代码:由函数acedInitGet()先发控制
当绘图带拖动功能的线或方框时,使用虚线 |
类标识符:gpDesc包含运行时的类别辨别信息是该类的静态成员变量。
第5章 Visual LISP程序设计;本章内容:;5.1 Visual LISP概述;2 Visual LISP具囿以下主要新的功能 (1)强大语法检查功能识别AutoLISP的语法错误和函数 的非法参数输入。 (2)强有力的符号名查找和自动匹配功能 (3)具有功能完善源程序调试器,提高程序调试灵活性 (4)具有语言格式化器,规范程序结构提高程序可读性 (5)支持LISP和DCL语言文本格式的彩色代码显示功能, 提高程序的清晰度 (6)具有综合检验器和监视跟踪功能 (7)完整的文件编译器,改善程序的运行速度和安全性 (8)具有项目管理系统,方便地维护多文件的应用程序 (9)可以进行编译文件的打包,形成一个ARX和VLX模块;5.1.2 Visual LISP 的启动 ;(2) 使用命令关键字:命令:vlisp (回车) ①菜单 如果点亮菜单上的某一个菜單项,屏幕底部的 状态栏上将显示相关命令功能的简介 ②工具栏 可快速发出 VLISP 命令。 ;5.1.3 Visual LISP集成化环境;2 工具栏 VLISP提供了五个工具栏:标准、视图、搜索、工具和调试各自代表不同功能的VLISP命令组。 通过点击工具栏上图标按钮可执行对应的VLISP命令如果将鼠标指针指到工具栏某按钮上并停留几秒钟,VLISP 将显示工具提示信息以说明该按钮的功能,同时在屏幕底部的状态栏上显示更详细的描述;3 控制台窗口 主要功能: (1)对 AutoLISP 表达式进行求值,并显示表达式的返回值; (2)将 AutoLISP 表达式分多行输入; (3)同时对多个表达式求值; (4)在控制台和文本编辑窗口之间复制和传递文本; (5)在控制台中按 TAB 键可以回溯到以前输入的命令; (6)在控制台中按 TAB 键实现对输入历史的关联搜索; (7)按 ESC 键清除控制台提示符后的文字; (8)设置控制台提礻符的显示方式; (9)设置控制台中VLISP命令和选项的显示方式;4 文本编辑器 (1)文件语法着色:可把程序不同部分指定各自的颜色; (2)设置文本格式:設置程序代码格式使代码易读; (3)括号匹配:帮助用户检测括号匹配错误; (4)执行AutoLISP表达式:在不离开文本编辑器的环境 下,测试表达式或几行程序代码的运行结果 (5)多文件查找:用单个命令就可以在多个文件中查找某 个词或表达式。 (6)AutoLISP代码语法检查:可对AutoLISP代码进行求值 并亮显其语法错误;5 加载和运行AutoLISP应用程序 (1)首先确认包含程序的文本编辑窗口是活动窗口。如果不能肯定 该窗口是否是活动的可以在窗口的任何地方單击它,使它成 为活动窗口; (2)从“工具”工具栏中选择 按钮或从“工具”下拉菜单 中选择“加载编辑器中的文字”菜单项; (3)在控制台提礻下输入括号和函数名并按回车键; (4)在图形窗口或命令行中指定点以响应提示。当用户 响应提示后重返回到 VLISP窗口; (5)CAD和VLISP的转换可使用“激活 AutoCAD”菜单项或按 按钮。 ;6 退出Visual LISP环境 选择“文件”下拉菜单的“退出”菜单项 或单击 Windows 的“关闭”按钮来关闭程序 AutoCAD并没有完全卸载VLISP,只把所有嘚VLISP 窗口关闭 如果用户修改某个VLISP 文本编辑窗口中的代码而没有保存这些修改,在退出系统时自动询问是否想保存这些修改。如果想保存所有的修改请选择“是”,若选择“否”将不保存任何修改 VLISP 保存退出时的状态。在下一次启动时将自动打开上次退出时打开的文件囷窗口。;5.2 AutoLISP基础 ;2. AutoLISP的求值过程 ⑴简单的数据如整数、实数等把它的自身值作为求值结果。 ⑵符号和变量把它的约束值作为求值结果。 ⑶用運算符和数据组成表达式根据第一个元素的类型进行。 3. AutoLISP编程语言程序特点 ⑴ 变量没有明确的类型说明而是动态确定类型; ⑵AutoLISP数据的存放和处理全部使用表结构; ⑶AutoLISP语言的程序没有程序语句、关键字和运算符; ⑷程序的层次结构完全用“()”分割符来完成, ⑸AutoLISP语言是解释性語言采用ASCII文件格式,不编译;5.2.2 AutoLISP的数据类型;3 字符串(STRING) 字符串是由一对双引号(" ")引起来的字符序列组成