研发埠

标题: UG中如何使用UF_MODL_mswp_create_extrude函数? [打印本页]

作者: 马强    时间: 2013-5-15 11:30
标题: UG中如何使用UF_MODL_mswp_create_extrude函数?
UF_MODL_mswp_create_extrude这个拉伸函数似乎功能比较强一些,但是它的设置比较难,拜求高手放一个这个函数的使用实例学习一下使用方法……    函数如下定义的:    int UF_MODL_mswp_create_extrude ( UF_MODL_mswp_extrude_p_t extrude, int *  num_features, tag_t * * features ),初看只有三个参数,心里暗喜,可点开结构体一看……哎,还不如不看……    其中UF_MODL_mswp_extrude_s 结构体的定义如下:    struct UF_MODL_mswp_extrude_s     {        tag_t                          section;        tag_t                          direction;        double                         dist_tol;        double                         chain_tol;        double                         planar_tol;        double                         angle_tol;        UF_MODL_mswp_limits_t          limits;        UF_MODL_mswp_offsets_t         offsets;        UF_MODL_mswp_taper_t           taper;        UF_FEATURE_SIGN                sign;        tag_t                          target_body;        int                            heal_geom;        logical                        solid_preferred;      };      它里面又包括UF_MODL_mswp_limits_t,UF_MODL_mswp_offsets_t,UF_MODL_mswp_taper_t三个结构体……    以UF_MODL_mswp_limits_t为例,UF_MODL_mswp_offsets_t 和它类似,UF_MODL_mswp_taper_t  最复杂……    其定义如下:    struct UF_MODL_mswp_limits_s     {        logical                       symmetry;     UF_MODL_mswp_limit_t  start_limit;         UF_MODL_mswp_limit_t  end_limit;     };     其中的UF_MODL_mswp_limit_t又是一个结构体,定义如下:    struct UF_MODL_mswp_limit_s     {        UF_MODL_mswp_limit_type_t  limit_type;        UF_MODL_mswp_limit_data_t  limit_data;        logical surf_extend;    };     其中UF_MODL_mswp_limit_data_t 又来个共用体,定义如下:    union UF_MODL_mswp_limit_data_u     {        UF_MODL_mswp_string_data_t         distance_data;        UF_MODL_mswp_until_selected_data_t  until_selected_data;     };    共用体中的UF_MODL_mswp_string_data_t和UF_MODL_mswp_until_selected_data_t  怎么又是结构体……    struct UF_MODL_mswp_string_data_s     {        char   string[UF_MAX_EXP_LENGTH];        tag_t  expression_tag;     };    struct UF_MODL_mswp_until_selected_data_s     {        tag_t   selected_object;     };    看见了不,我都数不清套了几层了,我已经处于崩溃的边缘了,只要它再来一层,我,我,我就……    这,这,这玩意儿到底怎么赋值……我现在对里面的几个地方搞不懂,    第一:对于这个参数tag_t  direction,它是个tag型数据,平时我们对direction不都是用double型数据赋值嘛,这个tag型让我纠结了好长时间,请教了一些高手,说用UF_SO_create_dirr_doubles函数创建一个矢量方向,它的输出就是tag型的数据,可问题又来了,这个函数涉及到SO(smart  object)的概念,我这个小菜鸟从来就没有接触过这个玩意儿,甚至就没有听说过,怎么用呀……    第二:UF_MODL_mswp_string_data_s  中的变量怎么赋值,涉及到表达式的问题,我直接对其中的string[UF_MAX_EXP_LENGTH]=0, expression_tag  =NULL_TAG,这样行不行,因为我拉伸的起始点距离是0.    还有其它什么偏置,拔模角什么的都是0,可是怎么赋值呢?




欢迎光临 研发埠 (http://bbs.yanfabu.com/) Powered by Discuz! X3.2