欢迎来到天天文库
浏览记录
ID:46579205
大小:215.05 KB
页数:6页
时间:2019-11-25
《AutoLISP入门6 - 图元资料的取得与活用技巧(一)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、单元六:图元资料的取得与活用技巧(一)一.图元资料串列的重要性:您可知您所绘制的每一个AutoCAD元体(如LINE、CIRCLE、ARC、TEXT、BLOCK、POLYLINE、DIMENSION...)均有其专属的资料串列!!!没错以LIST指令即可查询出来,显示于萤幕上但是该如何透过AutoLISP功能去选取、取得、修改、更新资料呢???该如何去有效活用呢???别急就是本单元的学习重点!!!请注意本章节非常重要,务必要求透彻了解!!!二、重要图元资料应用相关的功能函数介绍:(entsel[提示])请求选取一个图元,回应包
2、含图元名称及选点座标的串列(car串列)传回:串列中的第一个元素,通常用来求x座标(cadr串列)传回:串列中的第二个元素,通常用来求y座标(caddr串列)传回:串列中的第三个元素,通常用来求z座标(cdr串列)传回:除去第一个元素后的串列(entlast):取出图形资料中的最后一个图元(entget图元名称[应用程式串列]):取得图元名称的资料联合串列(assoc关键元素联合串列):依关键元素找寻联合串列中关系资料(cons新元素串列)传回:将新元素结合到串列,常用于产生『点对串列』(subst新项旧项串列)传回:替换新旧
3、串列后的串列(entmod图元串列)依更新的资料串列更新萤幕上元体(list元素元素…)传回:将元素结合成一串列三、图元资料联合串列取得技巧与群码分析:1.基础准备动作:请开一张新图,并建立二个新层STR、TXT,颜色分别为红色(red)、绿色(green)首先在STR层画一条线指令:LINE起点:15,10下一点:50,40下一点:(按[Enter]结束)在STR层画一个圆指令:CIRCLECIRCLE三点(3P)/二点(2P)/相切,相切,半径(T)/<中心点>:60,15直径(D)/<半径>:12.5在TXT层写几个字A
4、utoCAD指令:DTEXT对正(J)/字型(S)/<起点>:(选取文字的位置点)高度<2.5000>:8旋转角度<0>:0文字:AutoCAD文字:(按[Enter]结束)图示:2.在AutoCAD的Command:下练习取得图元资料串列练习函数entsel、car、cdr、entget指令:(setqen1(entsel))选取物件:(选取圆)传回一串列:(<图元名称:2940518>(67.60424.51660.0))其中<图元名称:2940518><==图元名称(67.60424.51660.0)<==选点座标指令:
5、(caren1)传回:<图元名称:2940518><==串列的第一个元素指令:(cadren1)传回:(67.60424.51660.0)<==串列的第二个元素指令:(setqen1_data(entget(caren1)))传回『圆的联合资料串列』:((-1.<图元名称:2940518>)(0."CIRCLE")(5."23")(100."AcDbEntity")(67.0)(8."STR")(100."AcDbCircle")(1060.015.00.0)(40.12.5)(2100.00.01.0))其中各子串列的第一个
6、元素均为『群码』,各代表不同对应资料指令:(setqen2(entsel))选取物件:(碰选线)传回一串列:(<图元名称:2940500>(30.562623.57430.0))指令:(setqen2_data(entget(caren2)))传回『线的联合资料串列』:((-1.<图元名称:2940500>)(0."LINE")(5."20")(100."AcDbEntity")(67.0)(8."STR")(100."AcDbLine")(1015.010.00.0)(1150.040.00.0)(2100.00.01.0)
7、)指令:(setqen3(entsel))选取物件:(碰选文字)传回一串列:(<图元名称:2940520>(45.783350.36140.0))指令:(setqen3_data(entget(caren3)))传回『文字的联合资料串列』:((-1.<图元名称:2940520>)(0."TEXT")(5."24")(100."AcDbEntity")(67.0)(8."TXT")(100."AcDbText")(1010.050.00.0)(40.8.0)(1."AutoCAD")(50.0.0)(41.1.0)(51.0.0
8、)(7."STANDARD")(71.0)(72.0)(110.00.00.0)(2100.00.01.0)(100."AcDbText")(73.0))3.联合资料串列中各子串列群码分析说明:您可以在指令:下键入!en1_data或!en2_data或!en3_data分别
此文档下载收益归作者所有