单元六: 图元资料的取得与活用技巧(一)
一.图元资料串列的重要性:
您可知您所绘制的每一个AutoCAD元体 (如
LINE 、 CIRCLE 、 ARC 、 TEXT 、 BLOCK 、 POLYLINE 、 DIMENSION...)
均有其专属的资料串列!!!
没错以LIST指令即可查询出来,显示于萤幕上
但是该如何透过AutoLISP功能去选取、取得、修改、更新资料呢???该如何去有效
活用呢???
别急就是本单元的学习重点!!!
请注意本章节非常重要,务必要求透彻了解!!!
二、重要图元资料应用相关的功能函数介绍:
(entsel [提示])请求选取一个图元,回应包含图元名称及选点座标的串列
(car串列)传回:串列中的第一个元素,通常用来求x座标
(cadr串列)传回:串列中的第二个元素,通常用来求y座标
(caddr串列)传回:串列中的第三个元素,通常用来求z座标
(cdr串列)传回:除去第一个元素后的串列
(entlast) :取出图形资料中的最后一个图元
(entget图元名称[应用程式串列]) :取得图元名称的资料联合串列
(assoc关键元素联合串列) :依关键元素找寻联合串列中关系资料
(cons新元素串列)传回:将新元素结合到串列,常用于产生 『点对串列』
(subst新项旧项串列)传回:替换新旧串列后的串列
(entmod图元串列)依更新的资料串列更新萤幕上元体
(list元素元素… )传回:将元素结合成一串列
三、图元资料联合串列取得技巧与群码分析:
1.基础准备动作: 请开一张新图,并建立二个新层STR、TXT,颜色分别为红色(red)、绿
色(green)
首先在 STR 层画一条线
指令: LINE
起点: 15,10
下一点: 50,40
下一点: ( 按 [Enter] 结束 )
在 STR 层画一个圆
指令: CIRCLE
CIRCLE三点(3P)/二点(2P)/相切,相切,半径 (T)/
>: 60,15
直径 (D)/: 12.5
在 TXT 层写几个字 AutoCAD
指令: DTEXT
对正(J)/字型(S)/: (选取文字的位置点)
高度<2.5000>: 8
旋转角度<0>: 0
文字: AutoCAD
文字: (按[Enter]结束)
图示:
2. 在 AutoCAD 的 Command: 下练习取得图元资料串列
练习函数 entsel 、 car 、 cdr 、 entget
指令: (setq en1 (entsel))
选取物件: (选取圆)
传回一串列: ( (67.604 24.5166 0.0))
其中 < 图元名称
(67.604 24.5166 0.0) < 选点座标
指令: (car en1)
传回: < 串列的第一个元素
指令: (cadr en1)
传回: (67.604 24.5166 0.0) < 串列的第二个元素
指令: (setq en1_data (entget (car en1)))
传回 『 圆的联合资料串列 』:
((-1 . ) (0 . "C