本发明专利技术涉及CAA二次开发技术领域,公开了一种CAA开发中调用软件命令进行数据批量处理的方法,旨在解决现有CAA开发时无法实现多次调用3DE软件自身命令进行批量处理的问题,方案主要包括:创建CAA主命令,并在CAA主命令外部创建一个控制台应用程序,CAA主命令的结尾处以异步非阻塞的方式在后台启动并执行控制台应用程序;CAA主命令运行后,在3DE软件中确定多个待处理对象;控制台应用程序运行后,获取在3DE软件中确定的所有待处理对象,并在3DE软件中调用对应的无对话框命令依次对各待处理对象进行相应的数据处理。本发明专利技术实现了CAA开发中多次调用3DE软件自身命令对多个待处理对象进行自动化批量处理,提高工作效率和自动化处理的水平,特别适用于地质曲面的处理。特别适用于地质曲面的处理。特别适用于地质曲面的处理。
【技术实现步骤摘要】
CAA开发中调用软件命令进行数据批量处理的方法
[0001]本专利技术涉及CAA二次开发
,具体来说涉及一种CAA开发中调用软件命令进行数据批量处理的方法。
技术介绍
[0002]CAA(Component Application Architecture)开发中经常会调用3DE软件自身的无对话框命令,即集成3DE软件自身的无对话框命令到自己开发的命令中,以避免重复开发,提高开发效率,并能保证该部分实现的准确性、健壮性。
[0003]通常情况下,3DE软件自身的无对话框命令在软件中的操作步骤是先选中一个对象(作为输入),然后启动对应的无对话框命令完成对该对象的处理。因此正常应用情况下,在开发CAA命令内部结尾处用代码选中要处理的对象作为输入,然后用代码调用3DE软件自身的无对话框命令完成对选中对象的处理。
[0004]但是经过实践测试发现由于3DE软件自身命令运行机制的原因,通常情况下多个命令之间是互斥的,即多个命令不能同时运行,命令A结束后才会执行命令B;命令A中循环多次对不同的对象进行选中作为输入后分别调用命令B处理时,多个B会被挂起,A结束后才会执行多个B,此时出现的情况是输入的选中对象只有最后一个对象,导致无法完成对多个不同对象分别调用B的初衷;CAA开发是基于3DE并在其框架内进行的二次开发,其开发的命令必然是符合3DE命令运行机制的。综上所述导致目前CAA开发的命令A中只能调用一次3DE软件自身的命令B,无法实现代码多次调用3DE软件自身命令进行批量处理,提高了开发的难度,降低了开发的效率和数据自动化批量处理的水平。
技术实现思路
[0005]本专利技术旨在解决现有CAA开发时无法实现多次调用3DE软件自身命令进行批量处理造成的数据处理效率较低的问题,提出一种CAA开发中调用软件命令进行数据批量处理的方法。
[0006]本专利技术解决上述技术问题所采用的技术方案是:
[0007]CAA开发中调用软件命令进行数据批量处理的方法,所述软件命令为3DE软件的无对话框命令,所述方法包括:
[0008]创建CAA主命令,并在所述CAA主命令外部创建一个控制台应用程序,所述CAA主命令的结尾处以异步非阻塞的方式在后台启动并执行所述控制台应用程序;
[0009]所述CAA主命令运行后,在3DE软件中确定多个待处理对象;
[0010]所述控制台应用程序运行后,获取在3DE软件中确定的所有待处理对象,并在3DE软件中调用对应的无对话框命令依次对各待处理对象进行相应的数据处理。
[0011]进一步地,所述控制台应用程序为基于3DE软件的COM组件接口编写的控制台应用程序。
[0012]进一步地,所述控制台应用程序为C#语言、VB语言、Java语言或者Python语言编写
的控制台应用程序。
[0013]进一步地,所述方法具体包括:
[0014]所述CAA主命令运行后,将多个待处理对象设为选中状态,将选中的多个待处理对象加入选择集中;
[0015]所述控制台应用程序运行后,获取所述选择集中的所有待处理对象。
[0016]进一步地,所述方法具体还包括:
[0017]所述CAA主命令运行后,将待处理对象的路径信息写入对应的磁盘文件;
[0018]所述控制台应用程序运行后,从对应的磁盘文件中读取路径信息,根据所述路径信息获取所有待处理对象。
[0019]进一步地,所述调用对应的无对话框命令依次对各待处理对象进行相应的数据处理,具体包括:
[0020]获取当前活动3DE软件的应用实例;
[0021]获取选中的所有待处理对象,并将其保存至List容器中;
[0022]调用循环指令依次选中List容器中的待处理对象,在每次选中后,调用COM接口激活进入对应的待处理对象所在的零件上下文环境中,并调用对应的无对话框命令对其进行相应的数据处理。
[0023]进一步地,所述待处理对象为地质曲面,所述无对话框命令为PHM面转换命令。
[0024]本专利技术的有益效果是:本专利技术所述的CAA开发中调用软件命令进行数据批量处理的方法,通过在CAA主命令外部创建控制台应用程序,并在CAA主命令结尾处以异步非阻塞的方式启动控制台应用程序,控制台应用程序启动后,对所有获取的待处理对象分别调用3DE软件自身的无对话框命令进行相应的数据处理,由于控制台应用程序不再是CAA命令,因此能够避免与3DE软件自身的无对话框命令之间互斥的问题,从而实现对多个待处理对象的自动化批量处理,提高了工作效率和自动化处理的水平。同时避免了在CAA软件开发过程中重复编写3DE软件无对话框命令部分的代码,大幅提高了软件开发的效率,保障了该部分代码处理的准确性和健壮性。并且本专利技术在3DE软件无对话框命令底层对应的API接口没有开放或者无对话框命令的内部实现比较复杂的情况下,也能方便快捷地实现开发工作。
附图说明
[0025]图1为本专利技术实施例所述的CAA开发中调用软件命令进行数据批量处理的方法的流程示意图。
具体实施方式
[0026]下面将结合附图及实施例对本专利技术的实施方式进行详细描述。
[0027]本专利技术旨在提供一种CAA开发中调用软件命令进行数据批量处理的方法,其中,软件命令为3DE软件自身的无对话框命令,方法主要包括:创建CAA主命令,并在所述CAA主命令外部创建一个控制台应用程序,所述CAA主命令的结尾处以异步非阻塞的方式在后台启动并执行所述控制台应用程序;所述CAA主命令运行后,在3DE软件中确定多个待处理对象;所述控制台应用程序运行后,获取在3DE软件中确定的所有待处理对象,并在3DE软件中调用对应的无对话框命令依次对各待处理对象进行相应的数据处理。
[0028]可以理解,CAA是3DE软件的一整套C++函数库,为用户对3DE进行二次开发提供了强有力的工具,该函数库在3DE软件运行时加载。在实际CAA开发场景中,经常需要调用3DE软件自身的无对话框命令对待处理对象进行数据处理。本专利技术针对需要对多个待处理对象调用同一无对话框命令进行数据处理的应用场景,通过在CAA主命令外部创建一个控制台应用程序,控制台应用程序在CAA主命令结尾处以异步非阻塞的方式启动,控制台应用程序启动后对获取的所有待处理对象分别调用3DE软件的无对话框命令,由于控制台应用程序不再是CAA命令,因此能够避免与3DE软件自身的无对话框命令之间互斥的问题,进而实现利用3DE软件的无对话框命令对多个待处理对象进行自动化批量处理。
[0029]实施例
[0030]本专利技术实施例提供的CAA开发中调用软件命令进行数据批量处理的方法,通过在CAA主命令内部执行一个新的控制台应用程序(调用第三方控制台exe),控制台应用程序多次调用3DE软件自身的无对话框命令完成对模型/数据的批量数据处理,由于控制台应用程序不再是CAA命令,因此可以避免自己开发的命令与3DE软件自身的无对话框命令之间互斥的问题。其实现主要包括CAA本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.CAA开发中调用软件命令进行数据批量处理的方法,所述软件命令为3DE软件的无对话框命令,其特征在于,所述方法包括:创建CAA主命令,并在所述CAA主命令外部创建一个控制台应用程序,所述CAA主命令的结尾处以异步非阻塞的方式在后台启动并执行所述控制台应用程序;所述CAA主命令运行后,在3DE软件中确定多个待处理对象;所述控制台应用程序运行后,获取在3DE软件中确定的所有待处理对象,并在3DE软件中调用对应的无对话框命令依次对各待处理对象进行相应的数据处理。2.如权利要求1所述的CAA开发中调用软件命令进行数据批量处理的方法,其特征在于,所述控制台应用程序为基于3DE软件的COM组件接口编写的控制台应用程序。3.如权利要求2所述的CAA开发中调用软件命令进行数据批量处理的方法,其特征在于,所述控制台应用程序为C#语言、VB语言、Java语言或者Python语言编写的控制台应用程序。4.如权利要求1所述的CAA开发中调用软件命令进行数据批量处理的方法,其特征在于,所述方法具体包括:所述CAA主命令运行后,将多个待处理对象设为选中...
【专利技术属性】
技术研发人员:安成作,张燕,唐忠敏,夏勇,杨云浩,邱虹雨,孙承见,吴晓妮,
申请(专利权)人:中国电建集团成都勘测设计研究院有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。