AutoCAD二次开发实用教程 教学课件 ppt 作者 郭秀娟 第6章 实体和设备访问函数

上传人:E**** 文档编号:89155558 上传时间:2019-05-19 格式:PPT 页数:28 大小:396.51KB
返回 下载 相关 举报
AutoCAD二次开发实用教程 教学课件 ppt 作者 郭秀娟 第6章 实体和设备访问函数_第1页
第1页 / 共28页
AutoCAD二次开发实用教程 教学课件 ppt 作者 郭秀娟 第6章 实体和设备访问函数_第2页
第2页 / 共28页
AutoCAD二次开发实用教程 教学课件 ppt 作者 郭秀娟 第6章 实体和设备访问函数_第3页
第3页 / 共28页
AutoCAD二次开发实用教程 教学课件 ppt 作者 郭秀娟 第6章 实体和设备访问函数_第4页
第4页 / 共28页
AutoCAD二次开发实用教程 教学课件 ppt 作者 郭秀娟 第6章 实体和设备访问函数_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《AutoCAD二次开发实用教程 教学课件 ppt 作者 郭秀娟 第6章 实体和设备访问函数》由会员分享,可在线阅读,更多相关《AutoCAD二次开发实用教程 教学课件 ppt 作者 郭秀娟 第6章 实体和设备访问函数(28页珍藏版)》请在金锄头文库上搜索。

1、第6章实体和设备访问函数,1. 了解实体的概念; 2. 掌握实体操作相关函数的使用; 3.能够用实体操作函数编写程序,实现程序设计;,本章要求:,6.1 基本概念 1实体 一个图形总是由若干基础图元(如圆、圆弧、直线等)所组成。实体(Entity)是AutoCAD预先定义的图元,所谓一个实体就是在AutoCAD下用一个简单命令执行后生成的图形单元。AutoCAD常用实体见表6-1。,第6章实体和设备访问函数,6.1 基本概念 2实体名 实体名(ENTITY NAME)是指图形中每一个实体(或图元)所对应的名字。它只是一个指针(Pointer),是AutoLISP的数据类型之一。用这个指针可以找

2、到该实体在图形数据库中的记录及其在屏幕上的向量,在AutoLISP中用下列格式表示实体名: 3选择集 选择集(SELECTION SETS)是实体的有序集合,它是利用选择集构造函数通过一定方式从图形中或图形数据库中选定多个实体构成。AutoLISP以下列格式表示选择集: 其中n为选择集的编号,n=1,2,3,第6章实体和设备访问函数,6.1 基本概念 4获取图元的名字 AutoCAD的图形是由多个图形对象组成的,最基本的图形对象称作图元。图元之间是以链表的形式存储的。每个图元都有一个用16进制表示的唯一的名字。 entnext函数可以获取图形库第一个图元的名字或指定图元的下一个图元的名字。 e

3、ntlast函数可以获取图形库最后一个,即最新生成的图元的名字。 通过entnext函数,可以访问到图形库的每一个图元。,第6章实体和设备访问函数,例如: 假定本例依次绘制了一条直线、一个圆和一个圆弧。 (setq e1(entnext) ;返回图形库第一个图元即这条直线的图元名,并将其赋给了变量e1。 (setq e2(entnext e1) ;返回图形库e1的下一个图元即这个圆的图元名,并将其赋给了变量e2。 (setq e3(entnext e2) ;返回图形库e2的下一个图元即即这个图弧的图元名,并将其赋给了变量e3。 (setq e4(entlast) ;返回图形库最后一个图元即这个

4、图弧的图元名,并将其赋给了变量e1。 因为圆弧既是第3个图元,也是最后一个图元,所以e3和e4记录的是同一图元的名字。,第6章实体和设备访问函数,6.1 基本概念 5图元素 图元表记录着图元的名字、类型、几何数据、图层、颜色等信息。通过修改或创建图元表,可以实现编辑或生成图元。 1)获取图元表 例如: 输入下面3个表达式: (command “text“ “10,20“ 5 0 “ABCDE“) ;书写文本 (setq e(entlast) ;获取文本的图元名,将图元的名字赋给变量e。 (setq elist(entget e) ;获取图元名字为e的图元表。 在“Command:“提示下键入!

5、elist或在控制台“_$“提示下键入elist,即可得到以下该图元的图元表。 (-1 . ) ;图元名 (0 . “TEXT“) ;图元种类 (40 . 5.0) ;文本字高 (1 . “ABCDE“) ;文本内容 (50 . 0.0) ;文本的旋转角度 ),第6章实体和设备访问函数,6.2 选择集操作函数 选择集是有名字的一些图元名的集合,常用于编辑或修改图形对象的命令。 l. (SSGET str Ptl Pt2) 或 (SSGET 点表关联表) 是一个字符串参数,它指定了实体选取的方式,有“W”、“C”、“L”及“P”等实体选择方式,实现从图形屏幕上选取实体构成选择集,方式的运用与Au

6、toCAD操作基本一致,具体参数值见教材表6-2。 【例2】 (SETQ s (SSGET) ;提示用户用交互方式选择实体,并构成选择集S (SETQ s (SSGET “P“) ;选择前一次已选择过的实体,生成选择集S (SETQ s (SSGET “w“ (0 0) (5 5) ;选择在窗口“0,0”到“5,5”以内的实体,生成选择集S 说明: 在AutoCAD中,选择集是一次性生成的,某一选择集是不会被再次生成的。因此,每生成一个选择集之后,应将它保存到一个变量中以便引用。,第6章实体和设备访问函数,6.2 选择集操作函数 【例3】 (COMMAND “PLINE“ (2 3) (4 4

7、) (5 2) (5 3) “c“) (SETQ s1 (SSGET “L“) ;由PLINE所绘实体构成选择集Sl (commad “mirror“ s1 “ (1 4) (4 4) “) 实现结果见图6-2。,第6章实体和设备访问函数,6.2 选择集操作函数 2(SSGET “x“ ) 是一个关联表,它与ENTGET返回的实体数据表格式相同,但只识别表6-3的实体组代码。 SSGET的“x”方式,扫描整个图形数据库,并将图形数据库中所有与中指定的实体类型和特征相匹配的实体选中,构成一个选择集,不匹配的则滤掉,所以又称为“SSGET过滤器”。,第6章实体和设备访问函数,6.2 选择集操作函数

8、 例如 (SETQ s(SSGET “x“ (0 . “LINE“) ;选择图形库中所有直线构成选择集 (SETQ s(SSGET “X“ (8 . “0“)(0 . “LINE“) (SETQ s(SSGET “x“ (LIST (CONS 8 “0“)(CONS 0 “line“) ;选择零层上所有直线构成选择集S 【例 4】 编程用于删除屏幕上的所有实体 (DEFUN C:DELALL( ) (COMMAND “ERASE“(SSGET “X“) “) ),第6章实体和设备访问函数,6.2 选择集操作函数 3(SSLENGTH s) 返回选择集S里包含的实体数(整数)。 【例5】 (SE

9、TQ n (SSLENGTH s) 例如: 编辑选择屏幕上的图形,返回所选中的实体个数 (DEFUN C:ELEN(/ S1) (IF ( SETQ S1 (SSGET) (PROGN (PRINC“n 选择集“) ( PRINC S1) (PRINC “中实体个数为:“) (PRINC (SSLENGTH S1) (PRINC) ) ) ),第6章实体和设备访问函数,6.2 选择集操作函数 4(SSNAMEn) n=0,1,2, 返回选择集中的第n个实体名。 【例6】 (SETQ s(SSGET) ;建立名为S的选择集 (SETQ el(SSNAME s 0) ;取S集中第一个实体名 (SE

10、TQ e4(SSNAME s 3) ;取S集中第四个实体名 【例7】 打印选择集中实体索引号及其对应的实体名 程序较大,见教材第6章,第6章实体和设备访问函数,6.2 选择集操作函数 5(SSADD ) 将所指的实体加入到选择集中去,并返回新选择集,若要加入的实体已存在,则返回NIL。 6(SSDEL ) 从选择集中删除所指定的实体,并返回新选择集,若要删除的实体不存在,则返回NIL。 例如: (SSDEL el ss) ;返回删去所指实体的选择集,第6章实体和设备访问函数,6.3 实体名操作函数 1(ENTNEXT ) 该函数的功能是获取图形数据库中紧跟之后的第一个没有被删除的实体名,并返回

11、此实体名;否则,返回NIL。 【例9】 (SETQ el (ENTNEXT) ;获得图形中的第一个实体的实体名 (SETQ e2 (ENTNEXT el) ;获得图形el之后的那个实体的实体名 ENTNEXT函数不仅可以获得图形数据库中主实体的实体名,也可以获得子实体名,即可以对复杂实体的内部结构进行访问。 (SETQ s1 (SSNAME (SSGET “L“) 0) ;返回最后一个复杂实体的主实体的实体名 (SETQ s2 (ENTNEXT s1) ;返回该复杂实体的第一个子实体名 (SETQ s3 (ENTNEXT s2) ;返回该复杂实体的第二个子实体名 可以这样继续做下去,直到发现S

12、EQEND子实体为止。,第6章实体和设备访问函数,6.3 实体名操作函数 2(ENTLAST) 该函数返回最后加入图形库的主实体的实体名。 例如: (COMMAND “line“ “3.0,2.0“ “1.0,5.0“ “) (SETQ e1(ENTLAST) ;刚画的LINE为最后一个实体名e1 再如: (COMMAND “Line“ “1.1,2.4“ “3.2,3.3“ “) (SETQ s1(SSGET “L“) ;由刚画的LINE构成选择集S1 (COMMAND “Copy“ s1 “ “4.0,5.0“ “6.0,7.0“) (SSADD (ENTLAST) s1) ;将复制的实体

13、加入选择集S1中,第6章实体和设备访问函数,6.3 实体名操作函数 【例11】 (COMMAND “Circle“ “5 , 5“ 1) ;画一圆 (COMMAND “Line“ “3 , 5“ “7 , 5“ “) ;画一条直线 (SETQ e1(ENTLAST) ;获得最近加入图形数据库的主实体的实体名 (SETQ pt (5 7) (COMMAND “trim“ e1 “ pt “) ;执行裁剪 调用上述函数,若AutoCAD处于命令: 提示符下,AutoCAD图形屏幕显示变化结果见图6-3。,第6章实体和设备访问函数,6.3 实体名操作函数 3(SSNAME ) 该函数返回一个选择集中

14、由序号指定的对象(图元)的图元名。 选择集是所选中实体的有序组合,选择集中实体的顺序和在图形数据库中存放的顺序相同,即最后产生的实体在最前面。选择集中实体的是从零号开始的依次为0,1,2,3,n-l,(n为选择集中实体总数)。若为负值,等于或大于n,则SSNAME返回NIL。 【例12】 (SETQ ss(SSGET) ;生成一个名为ss的选择集 (SETQ mn1 (SSNAME ss 0) ;获得选择集ss中的第一个实体名 (SETQ mn2 (SSNAME ss 3) ;获得选择集ss中的第四个实体名 4(NAMED OBJDICT) 返回当前图形的命名对象词典的图元名,当前图形的命名对

15、象词典是所有非图形对象的来源(root)。 5(HANDENT HANDLE) 该函数根据一个实体的句柄返回它的实体名。,第6章实体和设备访问函数,6.3 实体名操作函数 6(ENTSEL ) 该函数用点选择的方式选择单个实体,并返回一个表,表的第一个元素是所选择的实体名,第二个元素是用于选择实体的点的坐标。 由于该函数返回的这种格式的表,响应AutoCAD命令的select object:提示,而且可将选择点的坐标传递给trim,break,extend等AutoCAD命令的enter first point:提示。也就是用该函数返回的这种表可将一个实体名和一个拾取点传递给AutoCAD命令。 例如: 命令: line 指定第一点:1,2 指定下一点或 放弃(U): 4,2 指定下一点或 放弃(U): 命令: (SETQ el(ENTSEL) 选择对象:3,2 返回: ( (3 2),第6章实体和设备访问函数,6.4 实体数据函数 掌握实体和选择集操作函数的目的是找到图形数据库中实体的定义并获得实体数据,然后修改这些数据。实体数据函数则实现了这些功能。 1获得实体定义数据函数ENTGET (

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号