Qt中使用QAxObject的dynamicCall和querySubObject函数操作SolidWorks的方法
来源:互联网 发布:网络攻防实验 编辑:程序博客网 时间:2024/05/15 14:44
大部分函数可以直接从VB语言“翻译”过去成为Qt中的C++语言,如
Set Part = swApp.OpenDoc6(strFilePath & "\" & partName & ".SLDPRT", 1, 0, "", longstatus, longwarnings) '打开指定文件,这里是SLDPRT格式三维模型 Set Part = swApp.ActivateDoc2(partName & ".SLDPRT", False, longstatus) '设置文件处于激活状态
翻译到Qt就是
Part = swApp->querySubObject("OpenDoc(QString,int)",path,1); Part = swApp->querySubObject("ActivateDoc(QString)",this->partName);
这里不用OpenDoc6是为了简便。这里的数据类型都是string, int 这样子的常规类型
但是有一种问题,就是这样的VB语言,比如SelectByID2
boolstatus = Part.Extension.SelectByID2("MainRad@草图1@DR7.313.234.SLDPRT", "DIMENSION", 1.52752972114265E-02, -1.13202148822171E-03, 2.30092248393811E-02, False, 0, Nothing, 0)
根据SolidWorks的api说明文档,点击打开链接
Dim instance As IModelDocExtensionDim Name As StringDim Type As StringDim X As DoubleDim Y As DoubleDim Z As DoubleDim Append As BooleanDim Mark As IntegerDim Callout As CalloutDim SelectOption As IntegerDim value As Boolean value = instance.SelectByID2(Name, Type, X, Y, Z, Append, Mark, Callout, SelectOption)
bool SelectByID2( & String^ Name,& String^ Type,& double X,& double Y,& double Z,& bool Append,& int Mark,& Callout^ Callout,& int SelectOption)
这里面有一个Callout的指针,在Qt里面用
myExtension->dynamicCall( "SelectByID2(QString,QString,double,double," "double,bool,int,Callout *,int)",list);
会提醒参数不匹配,这里要用QAxObject的asVariant()方法来解决,就是说,list里面对应append一个QAxObject*类型的参数
list.append(myExtension->asVariant());
然后dynamicCall里面把Callout * 改成QAxObject *类型,就可以了
myExtension->dynamicCall( "SelectByID2(QString,QString,double,double," "double,bool,int,QAxObject *,int)",list);接下来就是EditDimensionProperties2函数,这个直接翻译就可以了
Part->dynamicCall("EditDimensionProperties2(int,double,double," "QString,QString,bool,int,int,bool,int,int," "QString,QString,bool,QString,QString,bool)",list1);
参考内容:点击打开链接
阅读全文
0 0
- Qt中使用QAxObject的dynamicCall和querySubObject函数操作SolidWorks的方法
- Qt中使用QAxObject操作Excel
- 使用Qt的QAxObject将Excel文件转成CSV文本文件
- Qt QAxObject 操作Excel
- Qt 向word中插入文字(使用QAxWidget和QAxObject)
- SolidWorks方程式的使用
- Qt中用QAxObject操作Excel
- qt中使用xlslib写入中文(QAxObject 速度很慢)
- 在Qt中用QAxObject来操作Excel
- 在Qt中用QAxObject来操作Excel
- 在Qt中用QAxObject来操作Excel
- 在Qt中用QAxObject来操作Excel
- Qt QAxObject操作excel文件过程总结
- QT QAxObject 复制Excel Sheet方法
- Qt中QAxObject读取Excel文件
- 在使用QThread的一点教训(QAxObject ,Excel)
- 提升SolidWorks打开模型速度的方法
- Qt中使用show函数的注意事项。
- hexo+github搭建个人博客
- 单例基类
- Spring+Redis配置
- SpringMVC 中的Interceptor 拦截器
- 欢迎使用CSDN-markdown编辑器
- Qt中使用QAxObject的dynamicCall和querySubObject函数操作SolidWorks的方法
- linux命令:ls
- 基于贝叶斯算法文本分析之新闻分类
- java 自增自减运算
- 三个数之和(3sum)
- 安卓开发一些常用工具的设置以及注意点
- 码流 / 码率 / 比特率 / 帧速率 / 分辨率 / 高清
- Python垃圾回收(gc)拖累了程序执行性能?
- linux命令——netstat