基于Grapher与Word软件Automation功能的物探剖面图册批量自动化编绘技术
宁宁夏技术术夏工工程技NingxiaEngineeringTechnology卷Vol.第1717No.3
Sep.2018
文章编号:1671-7244(2018)03-0222-04
基于Grapher与Word软件Automation功能
的物探剖面图册批量自动化编绘技术
余永鹏
(宁夏回族自治区煤炭地质局勘查院,宁夏银川
摘
750002)
要:传统的物探剖面册编绘技术完全采用手工操作,为了改变其工作效率低、错误率高、工作成本高等缺陷,
根据物探剖面图、图册的编绘技术要求,研究了Grapher与Word软件的Automation功能,建立了物探剖面图册的批量自动化编绘流程,用VC++对Grapher与Word软件进行了二次开发,实现了物探剖面图册的批量自动化编绘技术。以绘制2000个剖面的图册为例,对该技术和人工技术的效率进行了对比,该技术具有明显的优势。关键词:Grapher;Word;Automation;剖面图;图册;编绘中图分类号:P628
文献标志码:A
物探剖面图册不仅仅是物探资料解释的重要资料,还是物探野外资料验收与质量评价、工作量确认的重要资料,是项目成果的重要组成部分,在物探工作中有重要意义。目前很多软件都能实现物探剖面图的制作和显示,如Grapher、Excel[1]等,制作单张剖面图时各软件能实现的功能差异不大,但当数据量较大时,Grapher可以设置图形模板,能生成多种格式的图形文件,对数据和图形管理的优势突出。因其友好的用户界面、强大的绘图功能,受到了科学家、工程师的极大欢迎[2]。传统技术对于需要制作大量的剖面图和剖面图册而言,一般采用Gra鄄
图、图册的批量自动化编绘流程,并通过实例说明了该技术的先进性。
1Automation技术及优势
Automation技术,即自动化技术,是由OLE自动化发展而来,目前被归为ActiveX行列,是其他ActiveX技术的重要基础技术。Automation技术建
立在组件对象模型COM(ComponentObjectMod鄄
le)基础之上,与应用环境紧密结合,为高级语言
(如VC++)使用组件模块提供了一条有效的途径。它可以理解为一个应用程序通过某个对象去“操纵”另一个应用程序的机制[11]。Automation技术可以让用户通过简单的编程,快速实现其强大的功能。
用户通过Automation技术对软件进行的所有操作,都是对这些对象进行的,每一个对象都对应了该软件中的一项功能。同时软件中的每个对象,又都具有自己的属性和方法。Grapher和Word均采用层次化的方式来组织其自动化对象,其中应用程序对象处于最高层,所有其他对象都要直接或间接通过应用程序对象来获得,各个对象的获得都需一层一级地进行。图1是Grapher软件中所包含的对象层次图,图2是Word软件对象模型抽象图。
pher编绘图形、导出图片,并将图片插入Word文档
后形成图册,进行保存和打印。但在实际工作中,往往需要做几千幅甚至上万幅的物探剖面图,并以图册的形式进行管理,采用上述的操作方式,效率低下,无法满足需要。在以往研究工作中,通过对
Grapher软件进行二次开发实现了岩性柱状图
[3]
、物
探剖面图[4]、磁法平剖图[5]、井组综合曲线[6]、地面沉降过程曲线图[7]等图形的自动化制作。也有一些研究人员通过Word的二次开发实现了文档的自动生成功能[8—10]。其中多数研究工作还是在对单一软件的二次开发,主要集中于一些稍显复杂、人工不太容易完成的工作。
本文的研究工作是基于Grapher和Word软件
Automation功能的二次开发技术,建立了物探剖面
收稿日期:2018-01-10
作者简介:余永鹏(1987—),男,工程师,主要从事地球物理方面的生产和研究工作(yyp0527@126.com)。
第3期余永鹏:基于Grapher与Word软件Automation功能的物探剖面图册批量自动化编绘技术223
图1
Grapher软件中所包含的对象层次图
图2
Word软件模型对象抽象图
2
实现方法
2.1
剖面图册编绘技术
物探剖面图是以量值曲线、量值线段或矢量符
号表示物探参数沿剖面线、地质断面或工作路线变化特征的图。剖面图册是大量曲线的合订本。
剖面图编绘可以通过很多软件实现,在行业内多数还是利用Grapher软件。Grapher进行剖面图编绘时,需要二维物探数据(*.xls、*.txt或*.dat),其中一列为点号、里程或极距,另一列为物探量值。绘制时可以根据需要选择折线图、散点图等,并根据软件界面进行相应的操作和设计即可,完成后保存或导出需要的格式。为了便于绘制格式统一的多个剖面图,可以将上述设置保存为Grapher模板,绘制下一条剖面时只需选择数据。
剖面图册也有多种实现方法,利用Word文档进行管理、保存、打印和提交更加便捷。制作时按照一般顺序插入剖面图图名、图片即可。
2.2
基础工作
(1)Grapher图形模板。该软件提供了用户可定制的图形模板功能,用户通过绘制第一个剖面,设置好剖面图的大小、格式等,然后将该文件保存为
Grapher模板文件(*.grt),绘制下一个剖面图时,只
需要打开模板,并选择相应的数据即可。
(2)Word图册模板。该软件同样提供了模板文件(*.dot)的定制功能,在Word模板中可以设置图名字体的大小、行距、页面大小等基础参数,编制剖面图册时,只需要按照图名、剖面图的顺序插入
Word文档,形成剖面图册,进行保存、打印等。同时,
在制作图册模板时,可以按照需求设计图册的封面、签字页等内容。
(3)数据文件文档。为了对大量的数据进行处理,用户需要将各剖面的数据文件名称、剖面图名称按照顺序编排,并形成文档(*.dat或*.txt),进行自动化处理时,程序通过读取该文档即可获得剖面的数据和图形名称。文件内容如下:
第1条剖面数据文件名第1条剖面名称第2条剖面数据文件名第2条剖面名称……
2.3方法流程
图3为物探剖面图册批量自动化编绘技术流程
图,其最核心的步骤是利用Grapher绘制剖面图、导出图片,然后将相应的图名和图片插入Word文档,
形成图册。具体流程为:①打开数据文件文档,读入第1条剖面数据文件名和剖面名称;②打开Grapher模板,选择相应数据,保存Grapher文档,并导出图片;③打开Word模板,在文档末尾按照顺序插入剖面图名称、剖面图,保存Word文档;④判断数据文件文档是否结束,如未结束,则循环执行①~④,如结束,则保存图册;⑤程序退出。
为了在实际应用时更便捷,流程做了一些判断和选择的过程,可达到节省计算时间和空间的目的。例如用户仅需要Grapher文档时,则无需执行导出图片等后续流程等。
2.4实现过程
Grapher10和Word2016提供了全面详尽的二
次开发接口,能够很好的与各类编程语言对接,如
VisualC++、Delphi、VisualBasic、ASP.NET等,其本身甚至附带了基于Basic引擎的二次开发环境。通过VisualStudio2008平台下VC++语言实现了物探剖面图册批量自动化编绘技术,图4为程序运行
界面。
224宁夏工图3
实现方法流程图
图4
程序运行界面
核心代码如下:
(1)在程序的应用程序类的InitInstance()成员函数中加入Afx01eInit()函数的调用,初始化COM。代码如下:
if(!AfxOleInit()){
AfxMessageBox(IDP_OLE_INIT_FAILED);
程技术
第17卷
returnFALSE;}
(2)使用MFC的应用程序向导向开发程序分别导入Grapher和Word的OLE自动化对象,生成对应的组件对象模型。
(3)创建Graphe和Word服务及连接。如创建
Word服务的代码如下:
if(!Word.CreateDispatch(_T(\"Word.Application\"),NULL))
{
AfxMessageBox(_T(\"程序无法调用Word软件!\"));return;}
(4)实现主要功能的代码示例如下:
IDocumentsClcGdocs;IGraphGdoc1;Documentswdocs;_Documentwdoc;Selectionsel;
InlineShapesinlineshapes;FILE*fp;
fp=fopen(ary_filename.GetAt(i),\"r\");//打开参数文件while(feof(fp)==0)//循环,判断参数文件是否结束,如
未结束,则运行循环里面的语句
{
charDataname[50];charPlotname[50];
fscanf(fp,\"%s%s\",&Dataname,&Plotname);//读入数
据文件名称、图名
Datanamestr.Format(_T(\"%s\"),Dataname);//数据文件
名称
Plotnamestr.Format(_T(\"%s\"),Plotname);//图形名称Gdoc1=Gdocs.Add
(CComVariant(),CComVariant
(m_qxmblj),COleVariant(Datanamestr));//打开Grapher模板,并选择数据,m_qxmblj为模板文件,Datanamestr为数据文件
Gdoc1.SaveAs(Plotnamestr+\".grf\",COleVariant((short)0));//保存Grapher文档,Plotnamestr+\".grf\"为保存的相应剖
面图名称
Gdoc1.Export(Plotname+\".bmp\",COleVariant(),COle鄄Variant(),COleVariant());//Grapher软件导出图片,Plotname+\".bmp\"为图名
wdoc=wdocs.Add(COleVariant(m_tcmblj,VT_BSTR),vOpt,vOpt,vOpt);//打开word模板,m_tcmblj为模板文件
sel.EndKey(COleVariant(short(6)),COleVariant(short
(0)));//移动光标到文档末尾,可以保证插入的图名、图形始
第3期余永鹏:基于Grapher与Word软件Automation功能的物探剖面图册批量自动化编绘技术225
终在文档最后
(6)研究成果有广阔的应用领域。研究成果不仅可以用于制作物探剖面图及图册,还可以在类似需要做大量剖面、曲线的领域进行应用。
对少量工作的剖面进行编绘时,因计算机编绘需要准备基础资料,人工编绘的效率更高。
sel.TypeText(Plotnamestr);//word中插入文字,Plot鄄namestr为文字内容,系图名
inlineshapes.AddPicture(Plotnamestr+\".bmp\",COleVari鄄ant((short)FALSE),COleVariant((short)TRUE),&_variant_t
(sel.GetRange()));//word中插入图片,Plotnamestr为图名
wdoc.Save();//保存word图册}
close(fp);//关闭文件
4结语
(1)Grapher软件和Word软件提供的Automa鄄
tion功能使用户通过二次开发实现物探剖面图册的
批量自动化绘制技术。
(2)该技术极大地提高了工作效率、质量,有效降低了工作成本,用户可定制化程度高,可扩展的应用领域广泛。
(3)这项技术的实现不仅方便了软件使用者,提高了软件可用性,而且使物探剖面图、图册的编绘变得快速和统一。参考文献:
[1][2]
王凤琴,王立斌.利用Excel2000制作地下水位高程曲线图[J].水利天地,2003(3):42.
3应用效果
为了说明自动化编绘的先进性,用相同的数据
和模板,分别采用自动化和人工绘制2000条、50条和1条剖面图及图册,对两者花费的时间和正确率进行对比,实验结果见表1。其中,计算机为一般办公用的笔记本电脑,人工为一般技术人员。
实验结果表明,该技术具有明显的先进性:(1)提高工作效率。对于大量剖面图、图册的编绘,该技术相对人工编绘,工作效率提高是数量级的。
(2)提高工作质量。该技术采用计算机自动处理,可以完全避免人工操作的失误。出现的问题主要是模板等基础资料的系统性错误,返工的工作量也是极小的。
(3)节省人力资源。采用计算机处理,仅需要一名技术人员准备基础资料和操作计算机,而传统技术只能通过增加人力的方式提高效率。
(4)降低工作成本。工作成本与质量、效率和正确率等方面联系紧密,计算机编绘明显领先于人工编绘。
(5)图形模板可随意定制。目前一些专业的软件也能实现对数据以剖面形式的可视化显示,但多数都是固定的格式,可能存在一些多余的信息。基于本文的研究成果,可以根据实际需要设置图形模板,形成的图形文件的格式也可以随意设置。
表1
剖面个数/个
名称计算机编绘人工编绘计算机编绘人工编绘计算机编绘人工编绘
GoldenSoftwate,Inc.Grapher10User’sGuide[EB/OL].https://wenku.baidu.com/view/a206335026fff705cc170aa0.html2013.
[3]胡正旺,胡祥云,封晓明.基于Grapher软件Automation功能的岩性柱状图绘制程序[J].工程地球物理学报,
2007,4(5):450-454.[4]
柳建新,曹创华,刘颖,等.基于ScripterBasic语言的
Grapher7.0二次开发绘制物探剖面图[J].物探化探计算
技术,2012,34(1):107-111.
[5][6][7][8][9]
陈明,何门贵.利用Grapher绘制彩色渐变剖面平面图[J].物探与化探,2008,32(2):196-198.
韩晓峰.利用Grapher二次开发绘制井组综合曲线[J].胜利油田职工大学学报,2009,23(4):37-38.
杨朝辉,唐峰平.利用Grapher二次开发技术绘制地面沉降过程曲线图[J].北京测绘,2004(2):40-43.
李小林,张力娜,赵娟,等.VC平台下Word文档自动生成技术[J].信息技术,2017(2):76-78,84.
王莉,冯军,何自立.用Delphi实现Word应用程序二次
计算机编绘和人工编绘的结果比较
花费时间/min
正确率/%
时间比例/%
准备时间编绘时间总时间
2000501
1505020
30.0100.01.030.00.21.0
45.01500.06.030.02.21.0
100.098.5100.0100.0100.0100.0
320220
注:时间比例=计算机花费总时间/人工花费总时间×100%。
(下转第230页)
230
[13][14][15][16]
宁夏工程技术
2016(2):17-22.[17][18][19]
第17卷
杨东峰,殷成志.如何拯救收缩的城市:英国老工业城市转型经验及启示[J].国际城市规划,2013,28(6):50-56.姜鹏,周静,崔勋.基于中日韩实例研究的收缩城市应对思辨[J].现代城市研究,2016(2):2-7.
李俊杰,米文宝,周瑞瑞,等.宁夏城乡关系空间分异研究[J].测绘科学,2017(4):1-10.
刘合林.收缩城市量化计算方法进展[J].现代城市研究,
秦佳,李建民.中国人口城镇化的空间差异与影响因素
[J].人口研究,2013,37(2):25-40.
张俊良,郭显超.人口长期均衡发展的理论与实证模型研究[J].人口研究,2013,37(5):16-29.
薛正昌.城市群建设析论———以宁夏沿黄城市带建设为例[J].宁夏社会科学,2016(5):134-144.
StudyonthePhenomenonofUrbanContractioninYinchuan
XIAOChengquan1,YANGMeiling1,2*,WEIJingjing3,JIAHongli1,ZHOUJunjun1
(1.CollegeofResourcesandEnvironment,NingxiaUniversity,Yinchuan750021,China;2.Ningxia(China-Arab)Key
LaboratoryofResourceEvaluationandEnvironmentalRegulatingofAirdArea,Yinchuan750021,China;3.Collegeof
GeographyScienceandTourism,XinjiangNormalUniversity,Urumqi830054,China)Abstract:BasedonthecharacteristicsofurbandevelopmentinaridareasofwesternChina,thechangetrendofcontractiondegreeinYinchuanfrom2009to2014wasstudiedusingtheindexofrelativedynamicchangeofpopulation,populatione鄄quilibriumandpopulationconcentration.TheresultsshowthattherelativeindexofpopulationdynamicsinYinchuanfrom2010to2011isrelativelylarge,whichindicatesthattheurbanpopulationfluctuatesgreatlyandthephenomenonofurbancontractionisobvious.Intermsofthepopulationequilibriumindex,thebalancebetweentheaddedvalueoffiscalrevenueandthepercapitaroadownershipareaisrelativelysmall,indicatingastrongimpactonurbancontraction.However,thenon-agriculturalpopulationgrowthrateandtheincreaseofthenumberofhealthcareinstitutionsaremorebalanced,whichindi鄄catesthatithasaweakimpactonurbancontraction.Theurbanconcentrationindexin2011ishigher,thentheconcentrationindexdecreases,whichisinlinewiththetrendofthedynamicrelativechangeoftheurbanpopulationinYinchuan.
Keywords:populationrelativedynamicchangeindex;populationequilibriumindex;populationconcentrationindex;Yinchuan;urbancontraction
(责任编辑、校对李琼)
...................................................................................................................(上接第225页)
开发[J].电脑编程技巧与维护,2010(19):18-24.
(5):90-93.
[10]陈肇平,黎壤.使用VisualBasicforApplication对[11]杨朝辉,党立华.基于SurferAutomation技术的三维立体渲染图的绘制[J].海洋测绘,2003,23(4):26-28.
MicrosoftWord进行二次开发[J].电脑知识与技术,2004
AutomatedBatchCompilationofPhysicalExplorationProfileAtlasBased
onAutomationFunctionofGrapherandWord
YUYongpeng
(CoalGeologicalExplorationInstituteofNingxiaHuiAutonomousRegion,Yinchuan750011,China)
Abstract:Traditionalgeophysicalexplorationprofilesadoptmanualoperationcompletly,ithashaslowefficiencyandhigherrorratewhichgreatlyincreasesworkload.Basedonthemappingtechnicalrequirementsofgeophysicalprospectingprofilesandatlases,thispaperstudiestheautomationfunctionsofGrapherandMicrosoftWordandestablishesabatchautomationdrawingprocessofgeophysicalprofilegrammarswithVC++extensiondevelopment.Asresult,ageophysicalprofilingsectionvolumeautomatedmappingtechnologyiscompleted.Atlast,theefficiencyofbatchautomationprocessishighercomparedwiththemanualmethodtakena2000-sectionchartasexample.
Keywords:Grapher;MicrosoftWord;batchautomation;profile;atlas;compilation
(责任编辑、校对韩小珍)
因篇幅问题不能全部显示,请点此查看更多更全内容