CAD二次开发之图形数据库解析ppt课件.ppt
《CAD二次开发之图形数据库解析ppt课件.ppt》由会员分享,可在线阅读,更多相关《CAD二次开发之图形数据库解析ppt课件.ppt(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用第第9章章 访问和修改图形数据库访问和修改图形数据库 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用9.1 9.1 获获取取图图元的名字元的名字 AutoCADAutoCAD的的图图形形是是由由多多个个图图形形对对象象组组成成的的,最最基基本本的的图图形形对对象象称称作作图图元元。图图元元之之间间是是以以链链表表的的形形式式存存储储的。每个的。每个图图元都有一个用元都有一个用1616
2、进进制表示的唯一的名字。制表示的唯一的名字。entnextentnext函函数数可可以以获获取取图图形形库库第第一一个个图图元元的的名名字字或或指定指定图图元的下一个元的下一个图图元的名字。元的名字。entlastentlast函函数数可可以以获获取取图图形形库库最最后后一一个个,即即最最新新生生成的成的图图元的名字。元的名字。通通过过entnextentnext函函数数,可可以以访访问问到到图图形形库库的的每每一一个个图图元。元。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用 假定本作假定本作业业依次依次绘绘
3、制了一条直制了一条直线线、一个、一个圆圆和一个和一个圆圆弧。弧。(setq e1(entnext)(setq e1(entnext);返回;返回图图形形库库第一个第一个图图元即元即这这条直条直线线的的图图元名元名,并将其,并将其赋给赋给了了变变量量e1e1。(setq e2(entnext e1)(setq e2(entnext e1);返回;返回图图形形库库e1e1的下一个的下一个图图元即元即这这个个圆圆的的图图元名元名,并将其,并将其赋给赋给了了变变量量e2e2。(setq e3(entnext e2);返回图形库;返回图形库e2的下一个图元即即这个的下一个图元即即这个图弧的图元名图弧的图
4、元名,并将其赋给了变量,并将其赋给了变量e3。(setq(setq e4(entlast)e4(entlast);返返回回图图形形库库最最后后一一个个图图元元即即这这个个图图弧弧的的图图元名元名,并将其,并将其赋给赋给了了变变量量e1e1。因因为为圆圆弧弧既既是是第第3 3个个图图元元,也也是是最最后后一一个个图图元元,所所以以e3e3和和e4e4记录记录的是同一的是同一图图元的名字。元的名字。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用【例例9-19-1】绘绘制制下下图图所所示示的的4 4个个带带有有中中心
5、心线线的的螺螺纹纹孔孔。要要求求首首先先获获取取中中心心线线的的螺螺纹纹孔孔的的图图元元名名,然然后后复复制制这这些些指指定名字的定名字的图图元。元。以以下下表表达达式式首首先先生生成成了了两两条条中中心心线线和和1 1个个螺螺纹纹孔孔。在在生生成成这这些些图图元元的的同同时时获获取取并并保保存存了了这这些些图图元元的的名名字字为为e1e1、e2e2、e3e3和和e4e4。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用 (command layer m zhongxin l center )(command l
6、ayer m zhongxin l center )(command line-5,0 5,0)(command line-5,0 5,0)(setq e1(entlast)(setq e1(entlast)(command line 0,-5 0,5)(command line 0,-5 0,5)(setq e2(entlast)(setq e2(entlast)(command layer m cuxian lw 0.3 )(command layer m cuxian lw 0.3 )(command circle 0,0 3)(command circle 0,0 3)(setq e3
7、(entlast)(setq e3(entlast)经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用(command layer m xixian)(command layer m xixian)(command arc-3.5,0 0,3.5 0,-3.5)(command arc-3.5,0 0,3.5 0,-3.5)(setq e4(entlast)(setq e4(entlast)以以下下表表达达式式调调用用AutoCADAutoCAD的的copycopy命命令令,复复制制3 3个个带带有有中心中心线线的
8、螺的螺纹纹孔。孔。(command(command copy copy e1 e1 e2 e2 e3 e3 e4 e4 m m 0,0 0,0 12,0 24,0 36,0)12,0 24,0 36,0)经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用例例9-2 定义绘制图定义绘制图b所示图形的命令。插入点所示图形的命令。插入点p0、直径、直径d、宽度、宽度b和和h作为绘制该图形时交互输入的参数。该例的主要目的是示作为绘制该图形时交互输入的参数。该例的主要目的是示范如何利用图元名实现范如何利用图元名实现AutoC
9、AD的图形编辑和填充剖面线。的图形编辑和填充剖面线。a ba b(defun c:keyway()(defun c:keyway()(setq pc(getpoint(setq pc(getpoint 输输入定位点:入定位点:)(setq d(getdist pc(setq d(getdist pc 输输入入轴轴的直径:的直径:)(setq b(getdist pc(setq b(getdist pc 输输入入键键槽的槽的宽宽度:度:)经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用(setq w(getdist
10、 pc(setq w(getdist pc 输输入入键键槽的深度:槽的深度:)(setq r(*0.5 d)(setq r(*0.5 d)(command circle pc r)(command circle pc r);绘绘制制圆圆(setq e1(entlast)(setq e1(entlast);将;将entlastentlast返回的返回的该圆该圆的的图图元名元名赋给赋给e1e1(setq p0(polar pc 0 r)(setq p0(polar pc 0 r);p0p0是是圆圆上一点,将用于修剪上一点,将用于修剪该圆该圆(setq p1(list(car pc)(+(cadr
11、pc)(*0.5 b)(setq p1(list(car pc)(+(cadr pc)(*0.5 b)(setq p2(list(+(car pc)(*1.2 r)(cadr p1)(setq p2(list(+(car pc)(*1.2 r)(cadr p1)(command line p1 p2)(command line p1 p2)(setq e2(entlast)(setq e2(entlast);将;将entlastentlast返回的返回的该该直直线线的的图图元名元名赋给赋给e2e2(setq p3(list(car pc)(-(cadr pc)(*0.5 b)(setq p3(
12、list(car pc)(-(cadr pc)(*0.5 b)(setq p4(list(car p2)(cadr p3)(setq p4(list(car p2)(cadr p3)(command line p3 p4)(command line p3 p4)经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用(setq e3(entlast)(setq e3(entlast);将;将entlastentlast返回的返回的该该直直线线的的图图元名元名赋给赋给e3e3(setq(setq p5(list p5(li
13、st(+(+(car(car pc)pc)(-(-r r w)w)(+(+(cadr(cadr pc)pc)(*(*0.5 0.5 b)b)(setq(setq p6(list p6(list(+(+(car(car pc)pc)(-(-r r w)w)(-(-(cadr(cadr pc)pc)(*(*0.5 0.5 b)b)(command line p5 p6)(command line p5 p6)(setq e4(entlast)(setq e4(entlast);将;将entlastentlast返回的返回的该该直直线线的的图图元名元名赋给赋给e4e4;e1e1、e2e2等作等作为为
14、剪切剪切边边,p0p0、p1p1等点确定被剪等点确定被剪边边和剪去哪一段和剪去哪一段(command trim e1 e2 e3 e4 p0 p1 p2 p3 p4)(command trim e1 e2 e3 e4 p0 p1 p2 p3 p4);e1e1、e2e2等作等作为为剖面域的剖面域的边边界界绘制剖面线绘制剖面线(command hatch ansi31 2 0 e1 e2 e3 e4)(command hatch ansi31 2 0 e1 e2 e3 e4);)经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受
15、服务的费用9.2 9.2 图图元表元表 图图元元表表记记录录着着图图元元的的名名字字、类类型型、几几何何数数据据、图图层层、颜颜色色等信息。通等信息。通过过修改或修改或创创建建图图元表,可以元表,可以实现编辑实现编辑或生成或生成图图元。元。9.2.1 9.2.1 获获取取图图元表元表 例如例如输输入下面入下面3 3个表达式:个表达式:(command text 10,20 5 0 ABCDE)(command text 10,20 5 0 ABCDE);书书写文本写文本(setq e(entlast)(setq e(entlast);获获取文本的取文本的图图元名,将元名,将图图元的名字元的名字
16、赋给变赋给变量量e e。(setq elist(entget e)(setq elist(entget e);获获取取图图元名字元名字为为e e的的图图元表。元表。在在 Command:提示下键入提示下键入!elist或在控制台或在控制台 _$提示下键入提示下键入elist,即可得到以下该图元的图元表。,即可得到以下该图元的图元表。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用(-1.)(-1.);图图元名元名(0.TEXT)(0.TEXT);图图元种元种类类(330.)(330.);软软指指针针句柄句柄(5.
17、19F)(5.19F);图图元描述字元描述字(100.AcDbEntity)(100.AcDbEntity);AutoCADAutoCAD图图元元(67.0)(67.0);模型空;模型空间间(410.Model)(410.Model);模型空;模型空间标识间标识(8.0)(8.0);所在;所在图层图层名名(100.AcDbText)(100.AcDbText);AutoCADAutoCAD文本文本(10 10.0 20.0 0.0)(10 10.0 20.0 0.0);定位点坐;定位点坐标标(40.5.0)(40.5.0);文本字高;文本字高(1.ABCDE)(1.ABCDE);文本内容;文本
18、内容经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用(50.0.0)(50.0.0);文本的旋;文本的旋转转角度角度(41.1.0)(41.1.0);文字的;文字的宽宽度因子度因子(51.0.0)(51.0.0);文字的;文字的倾倾斜角度斜角度(7.STANDARD)(7.STANDARD);字;字样样的名字的名字(71.0)(71.0);正常文本(非左右或上下;正常文本(非左右或上下镜镜像的文本)像的文本)(72.0)(72.0);左下角点;左下角点对齐对齐方式方式(11 0.0 0.0 0.0)(11 0.0
19、 0.0 0.0);辅辅助的定位点坐助的定位点坐标标(210 0.0 0.0 1.0)(210 0.0 0.0 1.0);厚度方向;厚度方向(100.AcDbText)(100.AcDbText);AutoCADAutoCAD文本文本(73.0)(73.0);不垂直;不垂直书书写写)经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用对图对图元表的元表的补补充充说说明:明:(1 1)图图元元表表的的每每个个元元素素还还是是表表,子子表表的的第第一一个个元元素素是是具具有有一一定定含含义义的的整整数数,其其含含义义与与
20、图图元元在在DXFDXF(图图形形交交换换文文件件)中中实实体体代代码码的含的含义义相同(相同(详见详见AutoCADAutoCAD有关有关DXFDXF文件的介文件的介绍绍)。)。(2 2)多多数数的的子子表表采采用用了了点点对对结结构构,这这样样既既节节省省存存储储空空间间,也也可可以以简简化运算,化运算,详见详见第第2.42.4节节数据的存数据的存储结储结构。构。(3 3)其其他他种种类类图图元元的的图图元元表表的的非非几几何何信信息息部部份份基基本本相相同同,几几何何信息部份有些差异。信息部份有些差异。9.2.2 9.2.2 对图对图元表的操作元表的操作 假假定定elistelist是是
21、某某图图元元的的图图元元表表。利利用用AutoLISPAutoLISP有有关关表表处处理理的的函函数可以修改数可以修改图图元表。元表。(1 1)了解)了解图图元的种元的种类类(cdr(assoc 0 elist)(cdr(assoc 0 elist)经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用 该该表表达达式式的的内内层层表表达达式式中中,用用0 0作作为为关关键键字字,在在elistelist表表中中寻寻找找相相关关的的子子表表,返返回回有有关关图图元元种种类类的的子子表表(0(0.图图元元种种类类),由由
22、于于此此表表为为点点对对,所所以以cdrcdr函函数数返返回回它它的的第第2 2个个元元素素 图图元元种种类类。若若此此图图元元为为直直线线,则则返返回回LINELINE,若若此此图图元元为为单单行行文文本本,则则返返回回TEXTTEXT。(2 2)了解)了解图图元所在元所在图层图层的名字的名字(cdr(assoc 8 elist)(cdr(assoc 8 elist)该表达式的内层表达式中,用该表达式的内层表达式中,用8作为关键字,返回作为关键字,返回elist表中有表中有关图层名字的子表关图层名字的子表(8.图层名图层名),由于此表为点对,所以,由于此表为点对,所以cdr函函数返回它的第数
23、返回它的第2个元素个元素图层名图层名。(3 3)了解)了解圆圆、圆圆弧的半径或弧的半径或单单行文本的字高行文本的字高(cdr(assoc 40 elist)(cdr(assoc 40 elist)该该表表达达式式的的内内层层表表达达式式中中,用用4040作作为为关关键键字字,返返回回elistelist表表中中有有关关圆圆、圆圆弧弧的的半半径径或或单单行行文文本本的的字字高高的的子子表表(40(40.数数值值),由由于此表于此表为为点点对对,所以,所以cdrcdr函数返回它的第函数返回它的第2 2个元素具体的数个元素具体的数值值。经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿
24、其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用(4 4)了解直)了解直线线的起点、的起点、圆圆、圆圆弧的中心或弧的中心或单单行文本的定位点行文本的定位点(cdr(assoc 10 elist)(cdr(assoc 10 elist)该该表表达达式式的的内内层层表表达达式式中中,用用1010作作为为关关键键字字,返返回回elistelist表表中中有有关关直直线线的的起起点点、圆圆、圆圆弧弧的的中中心心或或单单行行文文本本的的定定位位点点的的子子表表(10(10 数数值值 数数值值 数数值值),注注意意此此表表不不再再是是点点对对,所所以以cdrcdr函函数数返回去掉它的第返
25、回去掉它的第1 1个元素之后的子表,即点的个元素之后的子表,即点的XYZXYZ坐坐标标。(5 5)用)用圆圆、圆圆弧的半径或弧的半径或单单行文本的新行文本的新值值取代其老取代其老值值(setq elist(subst(cons 40 h)(assoc 40 elist)elist)(setq elist(subst(cons 40 h)(assoc 40 elist)elist)(cons 40 h)构造一个新的点对子表,例如(构造一个新的点对子表,例如(40.3.5)。)。(assoc 40 elist)返回返回elist表内的点对子表,例如(表内的点对子表,例如(40.5.0)。)。sub
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CAD 二次开发 图形 数据库 解析 ppt 课件
限制150内