版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、在AutoCAD里把图元Z轴归零 在AutoCAD里把图元Z轴归零我们在使用SketchUp的时候,为了提高工作效率经常得需要把从AutoCAD产生的DWG格式图形载入SketchUp做为创建模型的底稿。如果使用的是既有的图形,根据以往的经验,有时会遇到图形里的一部份或全部图元(Entity)不在X-Y平面(Z=0高程)上,这样的图形载入SketchUp以后,可想而知会给在SketchUp里建模工作带来许多麻烦或错误。为了避免这种情况发生,在使用DWG图形之前如果发现了图形里有些图元不共面(X-Y平面)的情形,就可以在AutoCAD里利用这个AutoLISP程式把图元的(x,y,z)
2、里面的Z值改为0,使得所有的图元都包含在X-Y平面上,我把这个程序称为Flatten(压平)。这个应用AutoLISP程式语言所写的FLATTEN.LSP,其原作者为Daedalus Consulting的Mark Middlebrook,版权宣告时限为从1990至1999年。其后于2005年9月5日国内有一位邱枫先生对程式进行修正并把程式操作中的提示语汉化成简体中文,并且把程式名称改成FLT.LSP。数码阿叔在这里把提示语再改成英文,程式的名称也改回原先的FLATTEN.LSP,这样跟邱枫先生的FLT.LSP简体中文版有所区别。使得在英文和繁体中文Windows作业系统环境下使用的朋友也可以
3、顺利操作这个FLATTEN.LSP,不至于因为提示语出现乱码而妨碍使用。数码阿叔把改回英文的FLATTEN.LSP原始码附在本文后面,需要使用英文版的朋友请把原始码复制到一个纯文字模式的文字编辑器(例如NotePad记事本,不可以使用Word)里面,然后把它储存为FLATTEN.LSP就行了。看完本文想要使用FLT.LSP简体中文版的朋友,请到下面地址直接下载:FLATTEN(压平)的应用范围FLATTEN可以在AutoCAD的世界座标系统(WCS)里把下列各型式图元的Z座标值设置为0。"3DFACE","ARC","ATTDEF",
4、"CIRCLE","DIMENSION","ELLIPSE","HATCH","INSERT","LINE","LWPOLYLINE","MTEXT","POINT","POLYLINE","SOLID","TEXT"使用FLATTEN的时机FLATTEN至少在下面两种情况下很有用:你收到从别的CAD应用程式所产生的DXF图形文档,并且发现图形中所有的Z座标
5、值可能是由于四舍五入导致的误差,这种对X-Y平面Z不等于0的误差可能会导致你无法抓住(Snap)图元交叉点的问题,使得你在后续制图和编辑作业中感觉很困扰。在一个推想是二维图形的作业中,你一不小心画了一条线(或别的新图元),这条线的起点Z elevation高程不等于0,而线的终点连到另一个在X-Y平面上Z=0的图元上,这就产生了一条不在X-Y平面上的线段。由于这种问题会使得运用抓点或其他程序发生困难和误差。警告:FLATTEN无法压平经由诸如ADT应用程式产生的订制型图元物件。ADT以及类似的应用程式所创建的"由程式定义的物件"(Application-Defined Ob
6、jects),只有该程式才真正知道怎么控制这些图元。FLATTEN弄不清楚该如何去控制这种特殊的"由程式定义的物件",所以会丢下它们不管。如何使用FLATTEN这个FLATTEN版本用于AutoCAD R12到AutoCAD 2000。(数码阿叔注解:基于软件向上相容的原理,这个AutoLisp命令同样适用于AutoCAD 2000以后的新版本AutoCAD。)要执行FLATTEN命令,运用AutoCAD的APPLOAD命令载入,或者在命令提示语Command:后面键入:(load"FLATTEN")一旦你载入了FLATTEN.LSP之后,就可以键入执行
7、它命令:FLATTEN执行过程中,FLATTEN将告诉你它会做什么,以及要求你确认你是否真的要把图形中的物件(图元)压平。如果你选择继续进行,FLATTEN会提示你选取想要压平的物件(如果不做选取而直接按Enter键会把图形中全部物件都压平)。在你选取了物件并且按Enter键之后,FLATTEN就开始工作。它会报告已经压平的物件数目以及压平不了而保留原样的物件数目(压平不了是由于FLATTEN命令无法辨认这些物件,参阅上面列示FLATTEN所支持的图元清单)。假如你对FLATTEN后的结果不满意,只要按U键或点击Undo命令就能撤销前面FLATTEN所做的内容,回复原先的图形模样。已知的限制F
8、LATTEN并不支持全部的AutoCAD物件(图元)型式,见上面所列示它能压平的物件型式。FLATTEN无法压平图块(Block)内部的图元。(你可以在执行FLATTEN之前先把BLOCK炸开。还有一个替代的方法,运用WBLOCK命令分别把这些Block写出去成为单独的DWG图形档,在各个DWG里分别执行FLATTEN把图元压平以后,再运用插入INSERT命令插回原先的图形里,更新图块的定义。除了这两个方法没有其他方法可以压平图块里的图元)FLATTEN得在AutoCAD的"世界座标系统"(World Coordinate System,WCS)里把图元压平到X-Y平面的Z
9、=0高程。它目前并不支持在其他"使用者自定义座标系统"(UCS)里执行压平的工作。FLATTEN.LSP原始码;FLATTEN.LSP version 2k.1,14-Aug-2009;Edit by Digital;Translate prompt messege to english for English and traditional chinese user.;FLATTEN sets the Z-coordinates of these types of objects to 0;in the World Coordinate System:;"3DF
10、ACE""ARC""ATTDEF""CIRCLE""DIMENSION";"ELLIPSE""HATCH""INSERT""LINE""LWPOLYLINE";"MTEXT""POINT""POLYLINE""SOLID""TEXT";-;copyright 1990-1999 by Mark Middleb
11、rook;Daedalus Consulting;You are free to distribute FLATTEN.LSP to others so long as you do not;charge for it.;=(defun C:FLATTEN(/olderr oldcmd zeroz ss1 ss1len inumchg numnot numno0 ssno0 ename elist etype yorn vrt crz);Error handler(setq olderr*error*)(defun*error*(msg)(if(=msg"quit/exit abor
12、t")(princ)(princ(strcat"error:"msg)(setq*error*olderr)(command"._UCS""_Restore""$FLATTEN-TEMP$""._UCS""_Delete""$FLATTEN-TEMP$")(command"._UNDO""_End")(setvar"CMDECHO"oldcmd)(princ);Function to c
13、hange Zcoordinate to 0(defun zeroz(key zelist/oplist nplist)(setq oplist(assoc key zelist)nplist(reverse(append'(0.0)(cdr(reverse oplist)zelist(subst nplist oplist zelist)(entmod zelist);Setup(setq oldcmd(getvar"CMDECHO")(setvar"CMDECHO"0)(command"._UNDO""_Grou
14、p")(command"._UCS""_Delete""$FLATTEN-TEMP$""._UCS""_Save""$FLATTEN-TEMP$""._UCS""World");set World UCS;Get input(prompt(strcat"nFunction to change Zcoordinate to 0.")(initget"Yes No")(setq yorn(g
15、etkword"nGo ahead?Y:")(cond(/=yorn"No")(graphscr)(prompt"nSelect objects to flatten:")(prompt"Press Enter to select all objects.")(setq ss1(ssget)(if(null ss1);if enter.(setq ss1(ssget"X");select all entities in database);*initialize variables(setq s
16、s1len(sslength ss1);length of selection set i0;loop counter numchg 0;number changed counter numnot 0;number not changed counter numno0 0;number not changed and Z/=0 counter ssno0(ssadd);selection set of unchanged entities);setq;Set all Thickness to 0at first;By QiuFeng(princ"nSet Thickness to 0
17、.")(command"_.chprop"ss1"""_Thickness"0"");*do the work(prompt"nZ-coordinate processing.")(while(i ss1len);while more members in the SS(if(=0(rem i10)(princ(strcat"rZ-coordinate processing."(itoa i)(setq ename(ssname ss1 i);entity name
18、 elist(entget ename);entity data list etype(cdr(assoc 0elist);entity type);*Keep track of entities not flattened(if(not(member etype'("3DFACE""ARC""ATTDEF""CIRCLE""DIMENSION""ELLIPSE""HATCH""INSERT""LINE"&q
19、uot;LWPOLYLINE""MTEXT""POINT""POLYLINE""SOLID""TEXT")(progn;leave others alone(setq numnot(1+numnot)(if(/=0.0(car(reverse(assoc 10 elist)(progn;add it to special list if Z/=0(setq numno0(1+numno0)(ssadd ename ssno0);Change group 10 Zcoordinate t
20、o 0for listed entity types.(if(member etype'("3DFACE""ARC""ATTDEF""CIRCLE""DIMENSION""ELLIPSE""HATCH""INSERT""LINE""MTEXT""POINT""POLYLINE""SOLID""TEXT")(se
21、tq elist(zeroz 10 elist);change entities in list above numchg(1+numchg);Change group 11 Zcoordinate to 0for listed entity types.(if(member etype'("3DFACE""ATTDEF""DIMENSION""LINE""TEXT""SOLID")(setq elist(zeroz 11 elist);Change groups 1
22、2 and 13 Zcoordinate to 0for SOLIDs and 3DFACEs.(if(member etype'("3DFACE""SOLID")(progn(setq elist(zeroz 12 elist)(setq elist(zeroz 13 elist);Change groups 13,14,15,and 16;Z coordinate to 0for DIMENSIONs.(if(member etype'("DIMENSION")(progn(setq elist(zeroz 13
23、elist)(setq elist(zeroz 14 elist)(setq elist(zeroz 15 elist)(setq elist(zeroz 16 elist);Change each polyline vertex Zcoordinate to 0.;Code provided by Vladimir Livshiz,09-Oct-1998(if(=etype"POLYLINE")(progn(setq vrt ename)(while(not(equal(cdr(assoc 0(entget vrt)"SEQEND")(setq eli
24、st(entget(entnext vrt)(setq crz(cadddr(assoc 10 elist)(if(/=crz 0)(progn(zeroz 10 elist)(entupd ename)(setq vrt(cdr(assoc-1 elist);Special handling for LWPOLYLINEs(if(member etype'("LWPOLYLINE")(progn(setq elist(subst(cons 38 0.0)(assoc 38 elist)elist)numchg(1+numchg)(entmod elist)(setq i(1+i);next entity)(prompt"Done.");Prin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度化工产品运输合同(环保标准)4篇
- 二零二五版高端酒店餐饮厨房全面托管合同范本3篇
- 二零二五年度大庆市房屋买卖合同备案登记流程优化4篇
- 2025年度成鱼养殖与渔业科技研发合作合同4篇
- 2024维修桥施工合同范本:绿色桥梁维护工程3篇
- 二零二五年度高空作业安全免责协议及高空作业现场安全管理措施合同3篇
- 二零二五年度中医食疗养生传承合同规范4篇
- 2025年度个人投资理财合同范本4篇
- 2025年度采矿权出让合同范本:矿业权登记与审批流程3篇
- 个性化2024借款合同书模板
- 2024年东南亚人用疫苗市场深度研究及预测报告
- 【采购管理优化探究文献综述3000字】
- 《大学生职业发展与就业指导》课程标准
- 第23课《出师表》课件(共56张)
- GB/T 3953-2024电工圆铜线
- 发电机停电故障应急预案
- 接电的施工方案
- 幼儿阿拉伯数字描红(0-100)打印版
- 社会组织等级评估报告模板
- GB/T 12173-2008矿用一般型电气设备
- 新媒体研究方法教学ppt课件(完整版)
评论
0/150
提交评论