之前一直在学习UG菜单的创建,UIStyler 对话框的设计,以及通过DLL文件创建实体零件。接下来要将三者结合起来应用。 实验目的:编写一个程序,通过菜单调用UIStyler对话框,通过在对话框中输入相应参数后,控制UG生成一个Block实体。 实验思路:找到ufun里创建block的函数,弄清需要输入哪些变量,设计UIStyler后,生成生成的dlg文件,并编写带有回调函数的 DLL文件。最后通过菜单栏调用UI对话框,输入参数后,生成实体模型。
1. 实体模型创建函数 还是参照之前的例子,使用UF_MODL_create_block1.其中里面需要的几个参数先提取出来,这个例子比较简单,所以做了些简化处理,UF_FEATURE_SIGN 这里就默认选为UF_NULLSIAN.后续可以添加枚举变量,来控制这个sign的值。这个例子里只在后面的回调函数里简单设置了下。 UF_FEATURE_SIGN |
sign
|
Input
|
The sign of the operation to be performed.
UF_NULLSIGN = create new target solid
UF_POSITIVE = add to target solid
UF_NEGATIVE = subtract from target solid
UF_UNSIGNED = intersect with target solid
|
double
|
corner_pt [ 3 ]
|
Input
|
Corner point (origin) of block
|
char *
|
edge_len [ 3 ]
|
Input
|
Three edge lengths of block
|
tag_t *
|
blk_obj_id
|
Output
|
Feature object identifier of created block.
|
坐标值需要的是double,貌似老的UI只有REAL这个变量类型,char这个是个字符,用UI里的string来,tag_t也在回调函数里去定义。根据这些需求,设计UIStyler,因为是实验性质的,所以功能上有些不合理,本来坐标应该可以自己输入,也可以快速选择。目前对UI不算很熟悉,只能简单输入。后续如果成功将UIStyler、菜单栏和生成的DLL文件链接成功后,可以在目前的基础上继续优化目前的设计。将生成的.dlg .h 和.c文件放在之前UGII_USER_DIR目录下面,application文件夹中,并建立一个C++工程,建立好工程后,将.h文件和.cpp文件添加到工程中,编写回调函数。编译通过后,生成DLL文件。完成这几步工作后,修改菜单栏文件menu.men文件,添加相应的按钮和Action对应的dlg和dll文件。修改完成后保存。重启UG,菜单文件就加载进去了。 最后的效果如图所示: 也顺便将之前的一个小程序也挂到这个菜单栏下面,也可以正常运行。 代码和之前的基本一致,就是复制组合一下,所以不去另外贴了。
|