查看单个帖子
旧 2009-04-25, 10:09 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 [原创]供lisp初学者参考的cad表格文本提取程序

[原创]供lisp初学者参考的cad表格文本提取程序
www.dimcax.com
[原创]供lisp初学者参考的cad表格文本提取程序
可以提取等行高的纯粹由line,lwpolyline和text组成的表格中的文本;一次提取当前图中的多个同类型表格;可以保存为制表符分隔的txt文件,以便供excel等软件使用。
这是我近几天因工作需要编写的小程序,功能很简单,仅使用基本的lisp函数编写,所以仅供初学者参考!
附件包含lisp源码,dcl源码及已编译的vlx可执行文件(压缩包)。将cad2txt.vlx复制到任意目录下,用appload命令加载cad2txt.vlx,使用命令ctt即可运行。
程序中有关函数的简要说明:
do_dia:对话框处理过程,因程序有显示/隐藏对话框的交互操作。
do_save:保存提取内容,同时在acad安装目录下生成一个记录最近一次表格设置的文件。
chkrh,chkcw:表格行高及列宽输入数据准确性检查。
getrcwid:通过选择表格中的任意两相邻水平线自动计算表格行高及各列宽度。
gettext:根据行高,列宽及表格方向设置提取表格中的text。
lst2str:用于gettext,当某个单元格中有2个及以上文字时按文字插入点相对单元格左下角的角度排序并整合为字符串。
splitstr:用于gettext,将字符串据分隔符分隔为带索引(序号)的点对表。
replacestr:用于gettext,字符串替换为含指定数目分隔符函数,用于控制提取文字在原始列方向上对齐。
ctt_main:主函数,这种定义方式的目的是将各自定义函数名在c:ctt中设置为局部变量。
使用步骤:
1、在有表格的图中加载cad2txt.vlx,运行命令:ctt。
2、单击“从图中表格自动读取”按钮,自动测量表格的行高及各列宽度。若表格是图块(or图签)要事先炸开。
3、选择表格填写方向。
4、单击“新提取”或“追加提取”按钮提取一个或多个表格内容。
5、保存内容,开始新提取或者退出本程序。
请使用winrar软件打开rar压缩文件。
( 2.42 kb,已被下载 30 次 )
对话框文件必须配合 cad2txt.lsp 文件才能显示相应对话框。
文件预览:
( 14.19 kb,已被下载 27 次 )
通过工具菜单->加载应用程序 可加载该程序,然后可直接在命令行输入相关命令运行。如需要每次启动时均加载该程序,则可以将该文件放在启动组中。
文件预览:
d
各位大哥;
由于工作关系,本人经常需要从autocad中提取单行文字的内容、坐标到excel中,请各位大哥帮忙编写一个autolisp程序,万分感谢;也很想学习一些基本的autolisp基本知识,谢谢!
d
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)