学UG二次开发,就上UG网:
本例NX二次开是是拉伸函数的中级应用教程,通过创建一组曲线,并须把其创建成实体,UG二次开发可以衍生很多功能,比如今天的实体拉伸,可以在此基础上对拉伸的实体进行布尔运算,创建倒角等;
UG二次开发
二次开发创建直线并执行拉伸C++源码:
- /* TODO: Add your application code here */
- /*中磊国际模具培训-创建四条直线并拉伸实体*/
- tag_t line1, line2, line3, line4;//实体变量声明
- tag_t *objects, generators[4];//创建一个组
- UF_CURVE_line_t sline1, sline2, sline3, sline4;//创建四条曲线
- /*学UG二次开发就上UG网-www.9sug.com 创建第一条直线 */
- sline1.start_point[0] = 0.0;
- sline1.start_point[1] = 0.0;
- sline1.start_point[2] = 0.0;
- sline1.end_point[0] = 0.0;
- sline1.end_point[1] = 1.0;
- sline1.end_point[2] = 0.0;
- UF_CURVE_create_line(&sline1, &line1);
- /*学UG二次开发就上UG网-www.9sug.com 创建第二条直线 */
- sline2.start_point[0] = 0.0;
- sline2.start_point[1] = 1.0;
- sline2.start_point[2] = 0.0;
- sline2.end_point[0] = 2.5;
- sline2.end_point[1] = 3.5;
- sline2.end_point[2] = 0.0;
- UF_CURVE_create_line(&sline2, &line2);
- /*学UG二次开发就上UG网-www.9sug.com 创建第三条直线 */
- sline3.start_point[0] = 2.5;
- sline3.start_point[1] = 3.5;
- sline3.start_point[2] = 0.0;
- sline3.end_point[0] = 1.0;
- sline3.end_point[1] = 0.0;
- sline3.end_point[2] = 0.0;
- UF_CURVE_create_line(&sline3, &line3);
- /*学UG二次开发就上UG网-www.9sug.com 创建第四条直线 */
- sline4.start_point[0] = 1.0;
- sline4.start_point[1] = 0.0;
- sline4.start_point[2] = 0.0;
- sline4.end_point[0] = 0.0;
- sline4.end_point[1] = 0.0;
- sline4.end_point[2] = 0.0;
- UF_CURVE_create_line(&sline4, &line4);
- /*学UG二次开发就上UG网-www.9sug.com 把曲线加入到组 */
- generators[0] = line1;
- generators[1] = line2;
- generators[2] = line3;
- generators[3] = line4;
- UF_OBJ_set_layer(generators[0],256);
- UF_OBJ_set_layer(generators[1], 256);
- UF_OBJ_set_layer(generators[2], 256);
- UF_OBJ_set_layer(generators[3], 256);
- int obj_cnt; //创建拉伸特征的个数
- char * limits[2] = { "0", "20" }; //开始值与结束值
- char * offsets[2] = { "0", "0" }; //是否执行拉伸偏置
- double region_point[3] = { 0, 0, 0 }; //位置点
- double direction[3] = { 0, 0, 1 }; //拉伸失量
- UF_MODL_create_extrusion(
- generators, //拉伸曲线组
- 4, //拉伸直线的数量
- NULL, //空的结构体
- "0.0", //是否启用拉伸角度
- limits, //开始值与结束值
- offsets, //带偏置的拉伸
- region_point, //位置点
- false, //拉伸曲域
- true, //true值为创建实体,false值为创建片体
- direction, //拉伸失量
- UF_NULLSIGN, //布尔运算
- &objects, //创建拉伸特征标识数组
- &obj_cnt); //创建拉伸特征的数量
- // 拉伸后的对象属于特征,如对其进行操作,需要把其从特征转化成实体
- tag_t ug[1];
- UF_MODL_ask_feat_body(objects[0], ug); /* 从特征feature【objects[0]】 中取出body【body_obj_id[0]】 */
- //UF_OBJ_set_layer(ug[0], 255); /* 对象移动到层 */
-
- /* Terminate the API environment */
复制代码
|