CAM 模块

  • 格式:doc
  • 大小:146.50 KB
  • 文档页数:4

NX二次开发]利用UGOPEN开发定制CAM

2009年03月05日 星期四 00:01

1 CAM用户界面操作流程叙述。

使用UGOPEN开展对CAM加工过程进行定制和开发,熟悉加工操作的一般过程和若干细节显得很有必要。比如给个立方体,能把它上表面平面铣的刀轨生成,后置处理到G代码。这样才好对其进行深入的研究。UG加工的教程training说的很清楚了,我就不现眼了,见下图:

看了NX的帮助,要是把加工模块的模板用好比做程序方便和实用多了,搞的我都不想做和写了。一直排斥在CAM模块这搞什么二次开发,有时间多摸索用户界面的使用岂不是更好,把它玩熟练了,还怕什么。要是达到L老师的境界就好了,我们娱乐是游戏啊逛街啊,他是玩NX看对应文档(就doc和cast),结合实际要做的东西细致的试验、验证和改造。

2 UGOPEN的CAM相关模块说明。

uf_setup:该模块允许开发人员配置与part文件关联的UF_SETUP对象。它包括四个操纵组:UF_NCGEOM, UF_NCPROG, UF_NCMCT and UF_NCMTHD。在UF_SETUP对象中设置的任何参数都会被与该UF_SETUP对象关联的part文件中的所有组和操作继承。

uf_ncgroup:该模块允许操作加工中的CAM UF_NCGROUPs,也就是加工相关对象的集合,即程序组(Program)、刀具(Tool)、几何体(Geometry)和工艺(Method)。每个对象都是UF_OPER对象或者UF_NCGROUP对象。完成的操作包括在UF_NCGROUP中对象查询、添加和是否已添加等操作。

UF_SETUP中包括的四个内建UF_NCGROUPs: UF_NCGEOM, UF_NCMCT, UF_NCPROG,

and UF_NCMTHD都可以由UF_NCGROUP相关函数操纵。

uf_oper:该模块允许用户在加工操作作为UF_PARAM对象的时候,执行与在加工操作中执行的函数相比特别的函数。UF_OPER条目存在于模板,特别是在Setup的Groups中。他们一般都可以通过自己的模板,或成为某个组的成员。

uf_param:该模块允许开发者使用绝大部分的CAM函数对象。通常被用来查询和设置大部分UF CAM 对象的参数和控制参数值的继承性。它还可以用来执行通用的功能,例如重命名和复制等。大部分UF CAM 对象,像UF_SETUP, UF_OPER,

UF_NCGROUP等,都继承自UF_PARAM。由于模块函数的继承性,所有UF_PARAM的函数都可以应用到任何以UF_PARAM为基的对象和模块。

uf_cutter:该模块允许开发者在CAM加工操作中操纵刀具,可以通过刀具库或者模板创建刀具。

此外,文档说明中的uf_cam也是讲与CAM相关的。网上都有介绍了,参见如下:

(1)uf_cam.h

主要定义系统加工的一些信息,如枚举、结构体和系统起动入口设置,对用户应用程序完成初始化设置加载应用程序,访问系统机床、刀具、加工对象等数据库的方法函数。

(2)uf_cam_planes.h

定义系统编程加工涉及的平面数据信息,如定义、编辑、访问平面的原点和法线,设置和访问平面的状态信息等内容的属性方法等。

(3)uf_cambnd.h

用于定义设置、获取边界信息。

(4)uf_camgeom.h

包含用于定义设置和获取nc加工的几何对象的属性和方法。

3 UGOPEN的关于CAM的若干函数。

3.1创建刀具。用户界面如下图所示。

3.2创建操作。用户界面如下图所示。

4 UGOPEN的操作过程。

4.1 开始准备工作之创建刀具:

通过UF_SETUP设置。所有在SETUP中设置的参数会被后续操作继承。文档中说

any parameters set in the UF_SETUP object will be inherited by all the

grpoups and operations in the part file associated with that UF_SETUP

object.

1) 创建刀具,得到其tag号;

2) 通过UF_SETUP_ask_setup获得当前对象的SETUP的tag号;

3) 查询UF_SETUP_ask_mct_root()获得tool group的tag号(参考UF_SETUP的说明); 4) 调用 UF_NCGROUP_accept_member()把刀具加进去(可以通过UF_NCGROUP_can_accept_member()判断一下)。注:配合UF_PARAM_set_tag_value()可以更改刀具。

稍等。

导轨生成

error_code = UF_PARAM_generate( operTag[0], [$generate )]

if ( generate != TRUE )

{

uc1601(" Logical returns FALSE",1);

if ( error_code != 0 )

{ UF_get_fail_message ( error_code, errorstrg );

uc1601( errorstrg ,1); }

}

else {

uc1601("operation generated successfully",1 );

}

UF_DISP_refresh ();