39 CAD数据导入CoreDraw问题初探_职称驿站
论文发表指导_期刊投稿推荐_期刊论文发表咨询_职称驿站

论文发表指导,期刊推荐,国际出版

职称驿站学术导航
关闭职称驿站导航

论文发表职称晋升 全方位咨询服务

学术出版,国际教著,国际期刊,SCI,SSCI,EI,SCOPUS,A&HCI等高端学术咨询

CAD数据导入CoreDraw问题初探

来源:职称驿站所属分类:软件开发论文
发布时间: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问题初探

文章地址: https://m.zhichengyz.com/p-16206

相关内容推荐
建筑出版社出版图书的要求,这4点一定要知道
scopus和ei的区别,4个方面带你理清楚
中国科学院sci三区期刊目录
自己出版书在哪里出版最好?必知前提要求,做对的选择
影响因子大于20的计算机SCI期刊
6本核心期刊的2025年的重点选题
学术著作出版流程,5大步骤搞定出版
针灸方向的sci期刊推荐9本
未能解决您的问题?马上联系学术顾问

未能解决您的问题?

不要急哦,马上联系学术顾问,获取答案!

免费获取
扫码关注公众号

扫码关注公众号

微信扫码加好友

微信扫码加好友

职称驿站 www.zhichengyz.com 版权所有 仿冒必究
冀ICP备16002873号-3