39
学术出版,国际教著,国际期刊,SCI,SSCI,EI,SCOPUS,A&HCI等高端学术咨询
来源:职称驿站所属分类:软件开发论文 发布时间:2012-07-26浏览:34次
摘要:CAD数据在地理信息领域应用比较广,而CoreDraw在艺术制作中比较厉害,此两个在数据导入中就必然存在一些问题,本文针对两个常见问题提出了很好的解决方法。
关键字:CAD,CoreDraw,DXF,VB,VBA
1.CoreDraw简介
CoreDraw软件在测绘制图领域有着很广的应用,其印刷效果要远远高于其他测绘软件,并且上手容易,所以尽管不是GIS软件范畴,但在测绘中也时常使用,比如制作图册等。其与AutoCAD软件的数据交换格式一般都为DXF。
2.CorelDrawVBA简介
VBA,(visualbasicforapplications),是一种标准宏语言。 VBA提供了面向对象的程序设计方法,提供了相当完整的程序设计语言。它作为一种通用的宏语言可被所有的Microsoft可编程应用软件所共享,使可编程应用软件得到完美的实现。VBA是基于VisualBasic发展而来的,它们具有相似的语言结构,它们的集成开发环境IDE(IntergratedDevelopmentEnvironment)也几乎相同。二者不同之处在于:利用VB我们可以编写出独立的windows可执行程序(exe文件),而在使用VBA时我们必须在一个宿主软件中调用我们所编写的程序。CORELDRAW从6.0版本即支持宏命令(Marcos),但直到9.0版本它都主要使用它自己特有的CORELSCRIPT语言进行宏命令的编写。1998年,COREL公司作出战略性决定,决定在CORELDRAW9.0中引入VBA,这使CORELDRAW立刻得到了很多VBA开发者的喜爱。但是在CORELDRAW的9.0版本中,针对VBA的对象模型并不很完善,这很大程度地限制了利用VBA对CORELDRAW的开发。在10.0以后的版本中,情况得到了彻底的改善,在11版本后的VBA环境已经非常的成熟,用户可以用CorelDrawVBA很轻松地调用CORELDRAW的现有功能,也可以利用CorelDrawVBA来调用CORELSCRIPT语言来实现一些特定的操作。
3.导入时存在的文字问题及其解决
3.1问题
AutoCAD中数据导出DXF格式,在CoreDraw中导入后文字都不在是词组形式,都变成单个的了,如“张家屯”变成三个单字“张”“家”“屯”,则对于文字编辑是很致命的,对于少量文字可在CoreDraw软件中利用字连接工具手工连接成字串,但对于大批量的则无形中增加了许多工作量,这时就可以靠编程来实现了。
3.2编程原理及核心代码
主要是操作dxf文件,通过对dxf明码文件的研究,读出文字的定位坐标和文字的内容在CoreDraw中用创建文字命令重新创建。
Setfs=CreateObject("Scripting.FileSystemObject")
Setf=fs.OpenTextFile("c:qqq.txt",1)
DoWhileNotf.atendofstream
str=f.readline
Ifstr="AcDbText"Then
n=n+1
If(nMod2)=1Then
Fori=0To9
str=f.readline
Ifi=1Then
xstr=str
EndIf
Ifi=3Then
ystr=str
EndIf
Ifi=9Then
txt=str
EndIf
Next
Setp=CreateArtisticText(CDbl(xstr),CDbl(ystr),txt)
EndIf
EndIf
Loop
f.Close
EndSub
4.导入时存在的符号问题及其解决
4.1问题
CAD中的符号在导入CoreDraw时全变成了碎线,原本是一个对象却炸开成多个单体了,还得从新再来。还好,我们可以编程解决。
4.2核心代码
Setfs=CreateObject("Scripting.FileSystemObject")
Setf=fs.OpenTextFile("c:ttttt.dxf",1)
DoWhileNotf.atendofstream
codestr1=f.readline
valstr1=f.readline
Ifcodestr1="0"Andvalstr1="SECTION"Then
codestr2=f.readline
valstr2=f.readline
Ifcodestr2="2"Andvalstr2="ENTITIES"Then
WhileNot(codestr3="0"Andvalstr3="ENDSEC")
codestr3=f.readline
valstr3=f.readline
Ifcodestr3="0"Andvalstr3="POINT"Then
Fori=1To10
str=f.readline
SelectCasei
Case2
lyr=str
Case6
xstr=str
Case8
ystr=str
EndSelect
Next
Setp=CreateSymbol(CDbl(xstr),CDbl(ystr),"符号1")
EndIf
Wend
EndIf
EndIf
Loop
f.Close
5.总结
以上两个例子说明,通过使用CorelDrawVBA编写的宏程序,可以减轻工作量,缩短工作时间。笔者认为,编写这样的宏程序的关键是分析制图过程中一般都会碰到的问题和解决问题的传统方法,再利用VBA的开发环境写出宏程序,让计算机实现一定程度的自动化。这样的宏程序才可以被应用于每一张地图的绘制当中。
参考文献:
(1)曾琦AutoCAD2000对象开发从入门到精通.电子工业出版社
(2)CorelDraw12ProgrammingGuideforVBA
(3)“UsingVBAwithCorelApplications”
《CAD数据导入CoreDraw问题初探》
本文由职称驿站首发,您身边的高端学术顾问
文章名称: CAD数据导入CoreDraw问题初探
下一篇:基于信息元的数据特征分析技术
扫码关注公众号
微信扫码加好友
职称驿站 www.zhichengyz.com 版权所有 仿冒必究 冀ICP备16002873号-3