smart3d(acute3dviewer)与cass的联合测图
(2018-08-16 17:15:11)
标签:
smart3dcass联合测图 |
分类: 工作/开发方面 |
背景:
acute3d
viewer作为smart3d成果浏览器,可以浏览倾斜数据成果,在工作中,有这样的需求,需要基于倾斜数据进行数据采集,常用二维采集软件为cass,支持三维采集的软件也比较多,如idata、dpmap
3d、eps、sv360等。
我们也基于osg开源代码,实现了三维数据浏览与采集,并嵌入到cass中,可以联动测图。
如果能实现ccviewer与cass的联动,效果也不错,参考视频为369-三石:
https://v.youku.com/v_show/id_XMjY5OTgwMzA1Ng==.html
纯兴趣研究。
通过分析,有两种方式
1、通过API,findwindow、findwindowex获取窗口,然后获取窗口文本的方式。
但该方式由于ccviewer是用QT开发,它支持跨平台,没有windows中所谓的句柄一说,只能通过findwindow找到主窗口的句柄,但窗口内控件的句柄不能获取到,暂搁置。后期计划尝试,获取图片,然后进行识别,但识别有错误的风险。
最后通过发送鼠标命令解决搞定。
查看句柄的工具有:spy++、syp4win、AutoIt v3 window info
2、通过访问内存的方式,读取数据
由于ccviewer在使用测量工具时,结果会存放到内存中,通过内存获取数据。
风险:需要通过动态内存,找到基址,每个软件版本不变,安装在不同电脑上时,基址不会发生变化,通过基址到动态内存之间的偏移量找到内存地址,然后获取数据。但在使用过程中,发现没有偏移量(技术能力不到,不太会用cheat
engine,并且对内存方面的知识也欠缺)
使用工具:cheatEngine。
以上是2018年8月16日记录内容,已经连续搞了3天,暂无进度。
关于通过“窗口模式”实现该功能的插件开发原理以及测试代码讲解已上线网易云课堂,请在官网或APP中搜索“Smart3D与CASS联动测图方法讲解”课程名称即可参与学习。
插件效果视频,请点击https://weibo.com/1224699412/GvPRG3Ldj
3、后续(2019年4月29日)
虽然通过spy++只能获取到 测量
窗口的句柄,但是可以通过API循环,提取出其中的控件句柄,这个思路很好,按此思路,已经搞定!
后一篇:TypeScript:对象浏览器