AutoCAD普通表格转换为表格对象的方法.docVIP

AutoCAD普通表格转换为表格对象的方法.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AutoCAD普通表格转换为表格对象的方法 ? ???????????????吴伟中, 贾长学 ???????( 河南工业大学机电工程学院, 郑州450007) ????摘要: 表格是A utoC A D 新引入的对象类型, 使绘制和编辑表格变得相当简单。文中介绍了把用直线和文字制成的 “表格”转换成表格对象的原理和方法, 并给出了转换的流程。 ????关键词: 表格对象; A utoC A D ; 二次开发; A ctiveX 技术 ??? 表格( Table) 是AutoCAD 自2005 版开始新引入的对象, 给工程图样中各类表格的绘制和编辑带来了极大的方便, 同时表格对象与Excel 工作表的相互转换也相当简单。早期用一般方式绘制的“表格”仅在外观上和表格对象类似, 但不具备表格对象的特性, 不能用相关的表格命令修改, 也不能直接输出到Excel, 而在实际设计中, 经常要在已有图纸基础上修改, ?由此想到, 若能把普通的“表格”转换为表格对象将给以后的设计带来许多便利。 ????本文利用AutoCAD 的ActiveX 技术, 用Visual LISP 编程, 实现了将普通表格转换为表格对象。 ????1. 普通“表格”绘制的方法 ????工程图中m×n 行列型的“表格”较为常见, 如明细栏、材料汇总表等, 这类表格的特点是行、列关系比较单一,文字的规律性强。AutoCAD 2005 版之前, 绘制“表格”一般采用以下几种方法: ??( 1) 用LINE 或PLINE 绘制表格线框, 然后在线框的单元格内填写单行或多行文字( TEXT 或MTEXT) 形成“表格”; ??( 2) 用第三方制作的表格专用工具绘制表格; ??( 3) 在Excel 中处理表格, 再用专门工具转换或直接粘贴到AutoCAD 中。 ???以上( 2) 、( 3) 两种方式因为都要用到专门开发的表格工具, 绘制的表格格式和特性是程序制订的。第( 1) 种方法较为常用, 为多数用户采用, 故此是本文讨论的重点。 ????2. “表格”转换为表格对象的方法 ????在单行( 多行) 文字和线条组成的“表格”中, 文字是组成表格的主要角色, 表格线条属于辅助性的元素, 在转换过程中可以忽略。因此, 表格转换的实质就是将原“表格”中的文字转换到新创建的表格对象中, 并放置在对应的单元格内。文字的样式、对齐方式、颜色、图层、高度以及表格样式等可保留原有设置, 或者采用当前的图形设置。 ????2.1 文字插入点坐标的获取 在Visual LISP 中, 可用ENTGET 方法通过图元名取得文字的构造参数表, 例如: ??( ( - 1.图元名: 7e60fdd0)( 0.TEXT)( 330.图元名:7efd8cc0)( 5.2904A)( 100.AcDbEntity)( 67.0)( 410. Model)( 8.TXT)( 100.AcDbText)( 10 15 20 0.0)( 40. 14.0)( 1.进汽包)( 50.0.0)( 41.1.0)( 51.0.0)( 7.GBCBIG)( 71.0)( 72.0)( 110.0 0.0 0.0)( 210 0.0 0.0 1.0)( 100.AcDbText) ( 73.0) ) ??其中,( 0. TEXT) 表示这是一TEXT 对象,( 8.TXT)表示所在图层为“TXT”,( 10 15 20 0) 表示文本的插入点坐标为( 15, 20, 0) ,( 1.进汽包) 表示文字内容。由此可见,只要抽取文字的有关信息( 插入点坐标、文本内容、图层、文字样式等) 建立原始数据表( LISP 表) , 再以插入点坐标为关键元素, 对表中的信息进行分析、筛选, 即可将该表重构为包含行数、列数、文字内容及对应行列信息的表格对象所需的新表。 ????2.2 表格转换的方法 如上所述, 取得文字信息数据后, 即可根据文字插入点的坐标来判定表格的行数和列数以及文字的归属, 即判定文字位于哪个单元格。 ????2.2.1 总行数和列数的判定 ???表格的行数、列数可以由用户输入, 但从方便用户操作的角度看, 由程序自动判断行数和列数显然更人性化。对不存在空白单元格的“表格”, 判断方法比较简单, 只要多个文字具有相同的y 坐标则判定为同属一行, 具有相同的x 坐标则判定为同属一列。但是实际的表格中往往存在空白单元格, 不能简单的采用以上办法, 需加以改进。 ???假设抽取文字的插入点x, y 坐标和内容text 三要素作为子表, 构建如下形式的数据模型表tb_list: ( ( x1 y1 text1)( x2 y2 text2)( x3 y3 text3) ?( xn yn textn) ) ???根

文档评论(0)

ea238982 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档