主题:CAD和Execl数据转换程序
========================================================
' AutoCAD辅助程序(CadAssis)
'
' 编制: 甘肃省交通规划勘察设计院设计一室 陈志强
' 2000年11月
'
'CadAssis简介:
' CadAssis是一个AutoCAD辅助程序,主要用于解决AutoCAD与Excel之间的数据交换问题。
'AutoCAD与Excel分别以其强大的绘图功能和数据处理功能而成为工程设计中必不可少的两个软件工具,
'利用Excel处理数据,然后利用AutoCAD出图,成为多数设计人员的选择,有时也需要将图形数据提取
'到Excel中处理,如何有效快速地在AutoCAD与Excel之间传递数据成为影响工作效率的关键。CadAssis
'在AutoCAD与Excel之间架起一座桥梁,轻松实现AutoCAD与Excel之间的数据交换。
' CadAssis目前主要有以下五个功能:
' 1. 完成AutoCAD中量距与读取某一点坐标的功能,将结果写入Excel表格,写入项目及精度可以指定;
' 2. 完成多段线节点坐标在AutoCAD与Excel之间的互导;
' 3. 从Excel中读取参数,然后在AutoCAD中重复执行某个命令,比SCRIPT更加方便灵活;
' 4. 通过指定封闭区域内一点测量封闭区域的面积,类似图案填充操作;
' 5. 将Excel中多行多列数据写成一列,可以按行或按列转换。
'
'安装: 请将TABCTL32.OCX和TABCTCHS.DLL两个文件拷入\WINDOWS\system32目录中
' 主程序CadAssis.exe不用安装,可在任意位置运行。
'
'
'用法: 1.设置:
' 1.1 输出精度:在Dist面板PREC栏指定输出精度(默认小数点后三位)
' 1.2 坐标系统:在Dist面板勾选YOX项指定使用工程坐标系统
' 2.Dist与ID: 打开Cad和Excel,指定一活动单元格,从面板复选框指定精度与范围
' 然后在Cad屏幕拾取两点(一点)
' 3.pline之Acad-〉Excel,在Excel中指定放置坐标的起始单元格位置,再在Pline
' 面板中按下“-〉Excel”,选取一根多义线(三维多义线跟轻量多义线均可),
' 最后到Excel中看看吧若勾选“-〉Excel”按钮右边的复选框,则输出PLine
' 坐标的同时还会输出与之相交的直线的起终坐标及交点坐标
' 4.pline之Excel-〉Acad,在Excel中选取坐标值(二维选两列,三维选三列),按下
' “-〉Acad”CadAssis会分别生成LWpline跟3Dpline
' 5.SCR:重复执行某个命令,有两种使用方式:
' 5.1 从下拉选择框中选择命令:预置了“text”、“insert”、“circle”、“ZhanDian”
' 四个命令。选择其中一个,并按提示填写参数,要变化的参数如文字插入起点、文本
' 内容则在Excel中按列填写,程序面板上只需将相应的输入栏右边的复选框勾上即可。
' 如果excel中相邻两列是x、y坐标,还需将输入栏右边的第二个复选框勾上。
' “ZhanDian”用于公路路线设计中的地物控制点展点,其参数设置也已预置,只消
' 在Excel中将测量数据按“点号”、“X坐标”、“Y坐标”填写成三列,选中要处理
' 的数据,直接“Draw”就可以了。
' 5.2 执行其他命令:在Command栏中填写要重复执行的命令,要注意将命令写成能在命令
' 行执行的形式如insert,应写成"-insert",而text,就可直接填写"text",另外,
' 命令可用简写如上述两命令可写为"-i"、"dt",para1到para10栏根据command要求
' 的顺序依次填写(需要多少填多少,不必全部填满),对于不变的参数,如text要求
' 的字高、旋转角度就可在程序面板上直接填写而有些命令执行中需要回车,如text,
' 填写para时,回车符用EnterMark指定的符号(可根据需要自己指定)。
'
' **注意:程序执行前一定要在Excel中将需要处理的数据区域全部选中,程序只处理
' 选中区的数据
' AutoNext选中时,Excel中应选中第一行数据,每“Draw”一次,程序读取一行
' 数据,执行一次"command"命令,然后在Excel自动移向下一行。此方式
' 是已知一系列点坐标,在图中用"zoom"依次察看时而写的,一般情况用不上
'
'说明: 1.为尽可能减小程序界面,各控件上的文字都采用了英文简写,甚至没有文字,请
' 把鼠标指针在控件上停留一会儿就会有说明文字出现。
' 2.两个版本:CadAssis.exe默认使用cad坐标,CadAssis_YOX默认使用工程坐标
' 3.如何知道自己使用的是否为最新版:鼠标在ID面板的邮件地址上停留一会儿,看日期是否与
' 最后更新日期一致。
'
'特别提醒:本程序只处理当前工作表的选中区域的内容!所以在执行一项操作前请先在Excel中选好
' 要处理的数据区域!
'
'
'History
'
'2000.11.28 因挡墙设计中,横断面常因设挡墙而须修改坡脚值
' 遂写此程序,简化操作。
'
'2001.10.14 涵洞设计中,因需从横断面图上取用多个点的坐标
' 以便后续计算,遂修改此量距程序,使之具有取点功能
'
'2003.08.01 1、应网友xzg_hello的要求,增加了多义线在Acad与Excel之间的互导
' 2、同时修正了一些小bug
' 3、将面板改成标签式,使界面缩小了1/3,将按钮放到右边,更便于操作
' 输出精度默认值改为三位
' 取消修改文字功能
' 4、修正pline顶点坐标写入文本文件的错误
'
'2003.08.02 应lixiaochun的要求,修改程序,使多义线在Acad与Excel之间的互导
' 时均符合当前用户坐标系
'
'2003.08.13 1、应msdg的要求,多义线从Acad导入Excel时增加了提取与之相交的
' 直线的起终坐标及交点坐标的选项
' 2、修改ID功能部分,使输出结果符合当前用户坐标系
'
'2003.08.16 1、增加SCR功能,根据给定的命令及其参数重复执行,用于将测量点快速
' 输入cad,并标注各点号
'
'2004.03.20 1、改进SCR功能,Command栏改为下拉列表框,可直接选择命令,此时
' 程序提示输入对应参数
'
'2004.03.29 1、修改程序启动时的显示位置,当屏幕分辨率为1024x768或800x600时
' 程序界面位于屏幕左下角,其他分辨率时界面移至左上角,不再出现程序
' 界面跑到屏幕之外的情况
'
'2004.04.26 1、采用“后期绑定”(感谢efan2000),使程序不再与cad版本关联
'
'2004.09.10 1、增加Area功能,测量面积更方便
'
'2005.09.25 1、增加Excel中块到列的转换功能
' 2、ID模块增加取点坐标时取点编号的功能
' 3、修正程序在AutoCAD或Excel未启动情况下的误操作问题
' 4、修正Area中找不到图形边界时的误操作问题
' 5、修正SCR中在AutoNext模式下引用三维坐标出错的问题
' 6、修正Dist中在ucs下出错的问题
'2005.11.22 1、在SCR中增加展点命令,使展点操作更加简洁方便
' 2、增加工程坐标转换
'
'2005.11.24 1、修正pline倒入Excel时所选pline是轻量多义线且不在xoy平面时出错的问题
附件中有两个版本:
CadAssis.exe默认使用cad坐标,CadAssis_YOX默认使用工程坐标
特别提醒:
本程序只处理当前工作表的选中区域的内容!所以请在执行一项操作请先在Excel中选好要处理的数据区域!
===========================
该程序的缺点是提取过程中不能用cad的实时缩放和实时平移按钮,否则会退出来,只能用鼠标滚轮及中键。
---
提取过程中可以使用透明命令“' Z”及“' P”,也可以用鼠标中键,都不会退出,我在2005下测试的,你是在什么环境中?
---
在2002下试了下的确是不能用实时缩放和实时平移按钮,但2005、2006下可以用,程序代码是一样的,还不知为何与cad版本有关