找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 356|回复: 0

[日积月累]:AutoCAD的全表格解决方案

[复制链接]
发表于 2005-4-20 22:49:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在AutoCAD有两种不同的表格构造:一种是使用基本实体如文本、多重文本、直线或多线画出来的表格,这种表格可以完全手动制作或借助一些第三方的软件生成;另外一种是直接使用AutoCAD2005新增的AcDbTable表格实体在AutoCAD中直接制作。这两种表格,各有优缺点。
我们先来看画出来的表格,方便的地方不言而喻,都是AutoCAD基本实体,编辑起来得心应手,限制也比较少。构造复杂的表格难度不大,尤其是在开始还不确定表格最终样式、大小的时候。缺点是太随意了,表格的格式、单元格的对齐关系等要靠人来维护,表格大了以后,检查、维护不方便,同时也不支持颜色背景(想支持也不难,自己一个一个画SOLID,改颜色或改图层)。新增的AcDbTable表格实体在表格样式、对齐等方面有了方便的控制手段,但是其表格内容输入实在麻烦,一个单元格一个单元格地切换真不方便,加上Autodesk也有点懒,许多表格的操控参数选项都在右键菜单,在命令行根本找不到,合并几个单元格还真有点费劲,远不如画的,所见即所得,只要TRIM一下就OK了。
    我们有Excel这样优秀的电子表格软件,在此情况下还在AutoCAD2005中画表就太原始、太浪费时间且没有效率了,因此大部分人都会选择这样的工作方式:在Excel中制表,在AutoCAD中表现。这样就必然出现一种自然的需求:将Excel的表格转换成最终可用的AutoCAD表格。
在Excel到AutoCAD的转换中,我们有两种方案:一种是不需要任何软件,直接使用windows的ClipBoard作为中介;另一种是选用一个第三方的软件来完成,这种软件目前有非常多的种类,各有优缺点。在AutoCAD2005以前的版本中,使用拷贝+选择性粘贴得到的表格有个缺点,就是表格线没有准确地相交,需要手动进行修理。在中英文混排时,一个单元格内中英文不是一个文本实体而是好多,这也会导致后继的编辑工作量挺大。不过对于比较简单且小的表格,这种方法是非常好的一种手段。在AutoCAD2005以后的版本中,AutoCAD会自动将Excel表格转换成AutoCAD的AcDbTable表格。但在这种转换过程中,也存在两个明显的错误:
1.        当Excel单元格含有多行的内容时,AcDbTable表格中会自动在整个内容的首尾个加一个双引号(Autodesk的奇怪逻辑);
2.        当Excel单元格内容中含有MTEXT的一些控制符如”{“、”}”、”\F”等时,会在转换到AcDbTable表格中时丢失(Autodesk为了防止胡乱控制,干脆全部忽略);
因此,当在Excel表格中含有这样一些字符的情况出现时,我们还需要人工对转换的AcDbTable单元格进行挨个的检查和修改。因为使用基本的操作方式就能将Excel表格转换成AcDbTable表格,目前还没有软件来专门提供这一功能。第三方的软件在转换Excel表格时,都是使用文本和直线直接在AutoCAD内生成表格,这种表格大多被集合成无名块,主要目的有三个:兼容不支持AcDbTable表格的AutoCAD、方便选择、方便把数据导回Excel。这样也就实现了“使用Excel作为AutoCAD内表格编辑器”的目标。但是务必记住,数据原本是在Excel中建立的,只不过在AutoCAD中暂存了一下又回来的。第三方软件大多认生,对于图内已有的普通表格或由其他第三方软件生成的表格,都不起作用。综合来看,对于新的表格设计来说,使用这种第三方软件不失为一个好的解决方案。
    对于在图形内已经存在的表格进行编辑时,能否借助Excel的优势的关键在于将能否完整地表格输出到Excel中。即便是AcDbTable表格,AutoCAD也没有提供命令直接转换成Excel的表格。只能简单地将表格内容输出为CVS格式的文本文件,这样虽然能导入Excel中,但是单元格的合并信息就不存在了,需要在Excel中手动进行合并。而麻烦的情况是,将Excel中修改后的表格不能直接同步更新跟AcDbTable表格,只能删除原来的AcDbTable表格,使用拷贝+选择性粘贴重新建立AcDbTable表格。因此,这种AutoCAD和Excel的协同工作只是一句空话。只有我们能够一次完成AcDbTable表格和Excel之间的自由转换,才真正实现了AutoCAD和Excel的协同工作。
    表格的形式和内容的多寡是千变万化的,而且表格有一个重要特性:合并的单元格。在我们日常使用的表格中,大多数都会含有合并的单元格。目前也有实现了直接读取AutoCAD内的普通表格而生成Excel数据表的软件,这些软件也能够很好的处理合并的单元格。甚至对于字体的变化、上下标都能自动的支持。但是对于使用AcDbTable表格的用户来说,使用这些软件的前提是要先把AcDbTable表格炸开(EXPLODE),炸开AcDbTable表格一方面会导致大量的数据产生,同时,文本也会被分散(因为AcDbTable单元格内是MTEXT,带格式的MTEXT在分解时会被分解成多个文本实体),那些软件能否正确的按照顺序来识别被炸散的文字是一个无法保证的问题。因此,好的解决方案是直接把AcDbTable表格转换成Excel而不是炸开它。
    AutoCAD的版本更新速度太快,许多应有的文档及说明都不仔细就草草出炉了。关于AcDbTable表格的ActiveX文档更加是莫名其妙,范例只有一个建立AcDbTable表格的。对于AcDbTable表格内部单元格的操作,连个说明或基本的示例都没有。这样就迫使我们必须在AutoCAD下使用其提供的命令一个个更改AcDbTable单元格内容。这些命令另一方面调用不方便,全部在右键菜单,而且这种输入操作实在有些麻烦,要一个个来,哪怕内容是一样的,最快你也得要用Ctrl-C+Ctrl-V。总的来讲,在输入数据的便利性方面,AcDbTable表格比Excel差远了。如果想要使用Excel的优势,对不起,请重新建立表格吧。(待续。。。)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-11-20 00:59 , Processed in 0.177993 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表