点击查看详细介绍

分享扫掠函数UF_MODL_create_sweep 的一点使用心得

aaabczz 7年前 5336 1

购买与咨询 NX 二次开发视频教程,请联系微信号:13890821008  QQ号:85585969  


毕设导师让做汽轮机叶片的参数化设计。愣是怼了这个函数半天,摸索出点门道。和大家分享一下,互相学习。
这个函数参数如下:
UF_STRING_p_t s_guide,
UF_STRING_p_t s_section,
UF_STRING_p_t s_spine,
UF_METHOD_p_t orientation,
UF_METHOD_p_t scaling,
int * alignment,
int * inter,
int * body_type,
UF_FEATURE_SIGN boolean,
double tol[ 3 ],
tag_t * body_obj_id
其中s_guide,s_section,s_spine,都很简单!网上都有具体例子,不多赘述
UF_METHOD_p_t orientation,这个一般是先定义 UF_METHOD_t orientation
通过定义orientation五个内部成员(method,inter,id,value,s_curve),最后取址符号&引用结构体,
英文帮助文件中原话是
Pointer to the orientation list structure.
int method Orientation method 定义定位方法,当s_guide即引导线只有一条时
(for s_guide-> num = 1)
1 = Face normals 面的法向
2 = Vector direction 矢量方向
3 = Another curve 另一条曲线
4 = Fixed (parallel sweep) 固定
5 = A point 一个点
6 = Angular law 角度规律
7 = Forced direction 强制方向

orientation.inter;

nt inter NOT USED inter不需要用到,所以写的时候可以直接写 int inter=任意值

orientation.id;
tag _id Base surface (for orientation->method =1)当选择方法为1,即面的法向时,需要提供面的id,即意味着选择其他方法时,orientation.id=NULL_TAG;
上述代码即可

orientation.value;
Datum axis (for orientation->method = 2,7)
double value[3] Orientation 3D vector(for orientation->method = 2,7)当选择方法为2,7时,需要提供基准轴,即提供基准轴的向量,比如Y轴方向(0,1,0)) orientation.value[0]=0;orientation.value[1]=1;orientation.value[2]=0;
Orientation 3D point(for orientation->method = 5)当选择方法为5的时候,需要为orientation.value赋点的坐标值;
Law Function value (for orientation->method=6)当选择方法为6的时候,需要为value赋角度变化规律(没用过这个。。)
[0] = Angle law function offset
[1] = Angle law function scale

orientation.s_curve;
UF_STRING_p_t s_curve Pointer to curve structure list (for orientation->method = 3 or 6) 当选择方法为3和6的的时候,需要提供另外一组曲线的数据,这个赋值参考s_guide和s_section的赋值

还有一个UF_METHOD_p_t scaling, 一开始UF_METHOD_p_t scaling,也是如此,通过定义结构体五个内部成员(method,inter,id,value,s_curve),最后通过取址符号&引用结构体即可
scaling.method
缩放方法1 恒定 2倒圆功能 3 另一曲线 4一个点 5 面积规律

scaling.inter
这个参数只在你选择缩放方法为2的时候用到,定义倒圆参数,其他的方法都可以随意赋值
scaling.id
这个参数不需要用到,就直接可以定义其为 NULL_TAG

scaling.value
当选择方法为1时,比例因子只需要定义value.[0]即可,[1]和【2】的值对其无影响;
当选择方法为2是,需要定义0和1两个值,用来确定范围。
当选择方法为4时,需要定义0,1,2三个值,用来确定那个点的坐标。
当选择方法为5时,定义0,和1 两个值, 具体是什么用。。我没摸索过。。

scaling.s_curve;
UF_STRING_p_t s_curve Pointer to curve structure list (for orientation->method = 3 or 6) 当选择方法为3和6的的时候,需要提供另外一组曲线的数据,这个赋值参考s_guide和s_section的赋值

其他的一些参数应该都是很好理解的!
如有错误敬请指正,希望大家一起学习,共同提高

1

最新回复 (1)
  • nxopen 7年前
    1

    感谢分享

请登录后发表新帖