Pro/TOOLKIT示例程序(十三)UDF
2018-01-21 16:06
190 查看
以下示例演示怎样使用Pro/TOOLKIT插入UDF。
示例中的UDF通过选择一个基准点来创建一个孔特征,可以指定孔的直径和孔的深度。
示例中的UDF通过选择一个基准点来创建一个孔特征,可以指定孔的直径和孔的深度。
// 示例:插入UDF int TestUDF(uiCmdCmdId command, uiCmdValue *p_value, void *p_push_command_data) { ProError err; // 获取当前模型 ProMdl mdlCurr; err = ProMdlCurrentGet(&mdlCurr); // 选择基准点 ProSelection *sels; int nSel = 0; err = ProSelect("point", 1, NULL, NULL, NULL, NULL, &sels, &nSel); if (PRO_TK_NO_ERROR != err || 1 != nSel) { return -1; } ProSelection pntSel; ProSelectionCopy(sels[0], &pntSel); // udf数据 ProGroup udf; ProUdfdata udfData; ProUdfdataAlloc(&udfData); ProUdfdataNameSet(udfData, L"hole", NULL); ProUdfdataDependencySet(udfData, PROUDFDEPENDENCY_INDEPENDENT); // 设置udf的参考 ProUdfreference udfPntref; ProUdfreferenceAlloc(L"place_point", pntSel, PRO_B_FALSE, &udfPntref); ProUdfdataReferenceAdd(udfData, udfPntref); // 设置udf的尺寸数据:diameter=50.0, depth=50.0 ProUdfvardim udfDiaDim, udfDepthDim; err = ProUdfvardimAlloc(L"diameter", 50, PROUDFVARTYPE_DIM, &udfDiaDim); err = ProUdfdataUdfvardimAdd(udfData, udfDiaDim); err = ProUdfvardimAlloc(L"depth", 50, PROUDFVARTYPE_DIM, &udfDepthDim); err = ProUdfdataUdfvardimAdd(udfData, udfDepthDim); // 创建udf err = ProUdfCreate((ProSolid)mdlCurr, udfData, NULL, NULL, 0, &udf); if (PRO_TK_NO_ERROR != err) { AfxMessageBox(TEXT("Create udf failed.")); } // 释放资源 ProUdfdataFree(udfData); ProUdfvardimFree(udfDiaDim); ProUdfvardimFree(udfDepthDim); ProUdfreferenceFree(udfPntref); ProSelectionFree(&pntSel); // 刷新窗口显示 ProWindowRepaint(-1); return 0; }
相关文章推荐
- Spark(十三)SparkSQL的自定义函数UDF与开窗函数
- Hive中实现自定义函数UDF及打包
- [置顶] (十三)时间管理
- 《当程序员的那些狗日日子》(十三)重组程序
- linux(十三)之磁盘分区、创建文件系统、挂载
- qt线程(转)----这篇很专业!(十 至 十三 部分)
- 嵌入式Linux驱动笔记(十三)------spi设备之RFID-rc522驱动
- Json.Net学习笔记(十三) 缩小序列化Json的大小
- UWP开发入门(十三)——用Diagnostic Tool检查内存泄漏
- Android游戏开发之绘制游戏主菜单与进度条加载进度(十三)
- 第八篇:Spark SQL Catalyst源码分析之UDF
- Shell 十三问学习笔记1
- 一起学Netty(十三)之 Netty简单的重连机制
- 利用eclipse编写自定义hive udf函数
- ConfigReader(十三)—— ReadGuideFlashTaskConfig
- 【Cocos2d游戏开发之十三】CCSprite利用Bezier(贝塞尔)做抛物线动作并让CCSprite同时播放两个Action动作!
- Vue, App与我(十三)
- java学习笔记(十三)
- mysql-udf-http问题
- IT职场人生系列之十三:技术?管理?业务?