


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、浅谈基于CAD开发批量文字替换程序摘要:本文陈述了基于CAD二次开发语言开发批量文字替换程序的目的与意义;详细阐述了二次开发技术组件语言OLE与VBA各自的特点;文章给出了批量文字替换程序的设计结构总图;重点分析了批量文字替换程序的详细流程,并给出了各流程的部份程序代码;最后,笔者总结了本次程序开发给实际生产中带来的效率,并分析了程序存在的不足,希望能给广大读者带来一定的参考价值。关键词:CAD,VBA,文字替换,二次开发根据国务院关于开展第二次全国土地调查的通知(国发200638号,以下简称通知)的要求,按照国务院第二次全国土地调查领导小组办公室第二次全国土地调查总体方案、广西第二次土地调查
2、实施方案的安排。为做好广西城镇土地调查工作的收尾成果,切实上交各种成果编制与汇总资料,需要对各县(市)城镇地籍数据库CAD标准分幅整理出图。 城镇地籍数据库需要的各种CAD图件较多,但最主要和基本的图件有城镇平面地籍图、城镇平面地形图、城镇平面现状图、城镇平面宗地图、城镇平面行政区图,而地籍图和地形图又常常是要求最高且费时费力最多的图件,内业生产部门员工在建库过程中需要及时制作这些图件以供分析比较,为设计提供依据,并为城镇地籍数据库报告提供相应数据,本文探讨利用计算机信息技术结合AutoCAD二次开发组件及语言开发批量文字替换程序,提高了工作效率、降低了工作强度。 1.开发组件与语言 1.1
3、OLE组件 ActiveX Automation也称为ActiveX 自动化服务功能,以前也称为对象链接和嵌入(OLE)。OLE对象实际上就是别人的程序原封不动的拿来使用。可在 Visual Basic 应用程序中添加的最强大、最有用的功能之一就是在控件和控件之间、在控件和其它 Windows 应用程序之间拖动文本和图形。有了 OLE,就可将这种功能引入到应用程序中。 1.2 VBA语言 VBA是一种强大的开发技术,它能快速定制富客户端(即用XML替代传统的HTML作为服务器端返回给客户端的数据载体)桌面被包装的程序,以及将它们与已存在的数据和系统整合在一起。 VBA提供了一个完整的开发环境(
4、IDE),对于使用VB的开发者来说,它们有着相同的元素和功能,包括一个工程窗口、一个属性窗口和调试工具。VBA也支持窗体、创建自定义对话框和ActiveX、以及快速创建用户界面。通过直接整合到宿主应用程序中,VBA提供了一些优势:快速、在过程中执行、与宿主应用程序紧密整合(代码在文档、单元格等之后)、以及不需要运用其它工具创建解决方案的能力。 以下是VBA优点概述: 完整且优秀的技术 许可VBA能使ISVs集中于他们的核心能力,而不是在语言开发。这能使他们提供给用户一个优秀的开发环境,也意味着ISVs不必用不同的工具和语言创建专有的技术。 竞争优势 VBA为ISVs提供了竞争上的优势,他们为用
5、户设法提供完全的定制和整合能力。能使用VBA的产品,ISVs可以创建扩充功能到他们的核心产品中,并且为用户提供了定制应用程序和添加功能和函数的技术以满足他们的需求。 精简和扩充应用程序 VBA提供给ISVs一种直接创建基于VBA的向导到他们的产品中,以告诉用户是执行简单的或复杂的操作。在产品发布之后,VBA能使ISVs对他们的核心程序提供基于网络更新,在产品间传递新的功能和函数。 宏记录 使用VBA和宏记录,ISVs能为最终用户自动完成重复性的工作任务提供一种简单的方式,并且也提供给开发者一种学习应用程序编程模型的简单的方法。 一个极大的开发群体 通过许可VBA,ISVs能利用数百万已经熟悉V
6、B编程技术的开发者优势,他们能使用ISV已包装的应用程序作为开发平台。ISVs也能利用已经在VB方面的巨大的基础优势: 培训条件;支持中心;书籍和杂志;会议(研讨会);事件;商业展示;成千上万的ActiveX控件;Web站点 2.设计结构图 批量文字替换程序设计的总体结构图如下: 图1 程序总体结构图 3.程序流程与代码 3.1 代码编写流程 (1) 在AutoCAD2006中,打开【VBA管理器】对话框-【Visual Basic管理器】,创建一个新的工程,选择目录保存,进入VBA集成开发环境。 (2) 在Auto CAD对象中右键选择【插入用户窗体】菜单项,向对象程序中添加一个用户窗体,并
7、在对象窗体中放置控件。 (3) 在【工程资源管理器】窗口中双击新添加的窗体,在此代码窗口中添加窗体的启动代码。 (4) 在窗体模块的通用代码区,添加公有变量的声明,并定义公用变量。 (5) 窗体的初始化事件中,获得工程文件的路径,向命令按纽与列表框中添加元素,并且设置控件的初始状态。 (6) 向各窗体模块中添加程序运行代码,编译运行程序。 3.2 程序代码 (1) 目录代码 为了能达到批量替换修改的目的,本程序采用多文件目录打开方式,多文件目录要比单文件目录稍微复杂一些, 多文件目录的部份代码如下: Dim i As Integer : Y As Integer : Z As Integer
8、: fileNames() As String With comDlg .CancelError = True .MaxFileSize = 32767 .Flags = cdlOFNHideReadOnly Or cdlOFNAllowMultiselect Or cdlOFNExplorer Or cdlOFNNoDereferenceLinks .DialogTitle = 选择图形文件 .Filter = 图形文件(*.dwg)*.dwg所有文件(*.*)*.* .FileName = .ShowOpen End With (2) 文件列表代码 程序具体批量功能,批量文件列表代码如下:
9、 Dim count As Integer count = lstFile.ListCount If Y = 1 Then If Not HasItem(fileNames(Y - 1) Then lstFile.AddItem fileNames(Y - 1), count End If Else For i = 1 To Y - 1 If StrComp(Right$(fileNames(0), 1), ) = 0 Then fileNames(i) = fileNames(0) & fileNames(i) Else fileNames(i) = fileNames(0) & & fil
10、eNames(i) End If If Not HasItem(fileNames(i) Then lstFile.AddItem fileNames(i), i - 1 + count End If Next i End If (3) 文字替换代码 程序核心替换代码如下: ByVal newStr As String, ByVal firstOnly As Boolean) As String If searchStr = Then Exit Function If oldStr = Then Exit Function ReplaceStr = Dim i As Integer, oldS
11、trLen As Integer, holdStr As String, StrLoc As Integer oldStrLen = Len(oldStr) StrLoc = InStr(searchStr, oldStr) While StrLoc 0 StrLoc = InStr(searchStr, oldStr) If firstOnly Then ReplaceStr = holdStr & searchStr: Exit Function Wend ReplaceStr = holdStr & searchStr 4.小结 1.关于兼容性。这来自两方面,一方面是语言的问题,例如,在中英文版本中使用VBA对菜单栏和工具栏的操作会有所差异;另一方面是版本的兼容性问题,AutoCAD的应用软件一般是向下兼容的,这就会使得有些VBA程序在不同的语言环境或不同的版本中会发生运行错误。当然,如果您对AutoCAD了解得很清楚后,应该能避免这些问题。 2.代码的运行速度。相信这也能通过对AutoCAD的熟悉程度,以及利用一些技术和技巧来得以很好的解决。 参考文献 【1】
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年电子商务行业招聘面试常见问题解答
- 2025年人力资源管理师高级考试题库与答案解析
- 电力安全基础知识培训课件
- 2025年数据分析师面试技巧与模拟题集含答案
- 2025年工业设计师的面试模拟题及答案
- 2025年软件开发项目经理面试攻略与模拟题解析
- 2025年高级营养师健康咨询实战模拟面试题集及解析
- 电力业务知识培训心得
- 2025年护士招聘面试宝典护理技能与职业素养考核要点医疗护理类
- 2025年职位解析社区长者食堂客服招聘面试模拟题集萃
- 江苏中国资源循环集团新能源科技有限公司招聘笔试题库2025
- 2025年赛力斯入职测试题及答案
- 2025年旅游服务合同范本
- 2025年电动三轮车销售与售后服务合同
- 影视剧组演员安全保障与事故免责合同
- 检验科室内质控培训课件
- 2024惠州卫生职业技术学院辅导员招聘笔试真题
- 贵阳市初一数学试卷
- 电工复审培训课件
- 2025新《安全生产法》知识考试题库及答案
- 妇产科中医护理应用
评论
0/150
提交评论