加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

smart3d(acute3dviewer)与cass的联合测图

(2018-08-16 17:15:11)
标签:

smart3d

cass

联合测图

分类: 工作/开发方面
背景:
    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循环,提取出其中的控件句柄,这个思路很好,按此思路,已经搞定!

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有