奇塔车饰 发表于 2015-3-27 14:55:55

小白学UG二次开发_UG菜单、UI和实体建模综合练习

之前一直在学习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,菜单文件就加载进去了。最后的效果如图所示:也顺便将之前的一个小程序也挂到这个菜单栏下面,也可以正常运行。代码和之前的基本一致,就是复制组合一下,所以不去另外贴了。

loil 发表于 2015-4-9 22:35:56

挺有用,学习一下
页: [1]
查看完整版本: 小白学UG二次开发_UG菜单、UI和实体建模综合练习