NX9+VS2012

 #include <uf.h>
#include <uf_ui.h>
#include <uf_assem.h>
#include <uf_part.h> static int select_filter_proc_fn(tag_t object, int type[], void* user_data, UF_UI_selection_p_t select)
{
if (object == NULL)
{
return UF_UI_SEL_REJECT;
}
else
{
return UF_UI_SEL_ACCEPT;
}
} static int init_proc(UF_UI_selection_p_t select, void* user_data)
{
int num_triples = ;//可选类型的数量
UF_UI_mask_t mask_triples[] =
{ UF_component_type, UF_UI_SEL_NOT_A_FEATURE,
};//可选对象类型
UF_UI_set_sel_mask(select, UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC, num_triples, mask_triples);
if ((UF_UI_set_sel_procs(select, select_filter_proc_fn, NULL, user_data)) == )
{
return UF_UI_SEL_SUCCESS;
}
else
{
return UF_UI_SEL_FAILURE;
}
} UF_initialize(); //单对象选择对话框
char sCue[] = "单对象选择对话框";
char sTitle[] = "选择一个装配组件";
int iScope = UF_UI_SEL_SCOPE_NO_CHANGE;
int iResponse;
tag_t tView;
double adCursor[];
tag_t ComponentTag = NULL_TAG;//单选控件获得的tag
UF_UI_select_with_single_dialog(sCue, sTitle, iScope, init_proc, NULL, &iResponse, &ComponentTag, adCursor, &tView); //获取装配部件的相关信息
char part_name[MAX_FSPEC_BUFSIZE];//零件名称
char refset_name[UF_OBJ_NAME_BUFSIZE];//引用集名称
char instance_name[UF_CFI_MAX_FILE_NAME_BUFSIZE];//实例名称
double origin[];//组件的位置
double csys_matrix[];//坐标系矩阵
double transform[][];//转换矩阵
UF_ASSEM_ask_component_data(ComponentTag, part_name, refset_name, instance_name, origin, csys_matrix, transform); //由名字得到装配部件实例的TAG
tag_t instanceTAG = UF_ASSEM_ask_instance_of_name(UF_PART_ask_display_part(), part_name); //替换组件
UF_PART_load_status_t load_status;
UF_ASSEM_use_alternate(&instanceTAG, "D:\\1\\model3.prt", "", "", &load_status); UF_terminate(); caesar卢尚宇
2019年8月12日

补充2019年11月18日

今天有网友wzl给我留言,纠正了一个bug,在这个例子中,这个函数tag_t instanceTAG = UF_ASSEM_ask_instance_of_name(UF_PART_ask_display_part(), part_name);

里面的这个输入参数,part_name,不应该是part的名字,应该是装配部件的实例名称instance_name。这个地方是我的一个疏忽,因为默认情况下应该part名字和实例名字是一个名字。

感谢网友纠正的错误。

最新文章

  1. oracle数据库升级记(记一次10.2.0.3版本升级到11.2.0.1版本的过程)
  2. SQL Server性能影响的重要结论
  3. 如何使用java调用DLL运行C++(初篇)
  4. ason 和 Java 对象转化示例
  5. 如何在Android应用程序中使用传感器(OpenIntents开源组织SensorSimulator项目)
  6. The content of element type &quot;sqlMapConfig&quot; is incomplete,
  7. uvalive 4513 Stammering Aliens
  8. [C++知识点]2015.4.18
  9. FlashPaper组件——api
  10. 探索Gallery和ImageSwitcher布局
  11. jquery hide和show使用
  12. [Swift]LeetCode526. 优美的排列 | Beautiful Arrangement
  13. angular ,require.js, angular-async-loader实现单页面路由,控制器js文件分离
  14. PB9.0数据窗口入门
  15. C++课程的第一次实验
  16. 算法笔记_223:打印回型嵌套(Java)
  17. AndroidStudio自定义TODO
  18. Windows系统配置Python环境,python2和python3共存
  19. csv中文乱码
  20. dz数据结构

热门文章

  1. 泛型(Java 5 开始)
  2. delphi动态创建控件
  3. js和php语法区别
  4. 关于iframe定位碰到的问题。
  5. 剑指offer——56在排序数组中查找数字
  6. pymysql连接mysql报错
  7. 34-Ubuntu-用户权限-05-超级用户
  8. String,StringBuffer,StringBuilder
  9. keepAlived主备及双主
  10. 利用纯css写三角形,弧度箭头,吃豆人,气泡。放大镜,标签的源码