点击查看详细介绍

API图层操作详解,uf_layer.h中包含的操作图层的一系列函数解释

nxopen 10年前 12019 97

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


本技术资料转至互联网:头文件uf_layer.h中包含了操作图层的一系列函数,这些函数能够完成如下工作:

查询工作图层;
查询分类名称,分类成员图层,以及其描述;
查询图层状态;
遍历图层;
编辑分类描述;
编辑分类下的图层;
设置图层状态;
创建、查询、或者编辑图层分类。

1. 查询和设置图层状态

图层的状态

NX中最多有256个图层,头文件中的定义如下:

#define UF_LAYER_MIN_LAYER (1)
#define UF_LAYER_MAX_LAYER (256)

图层有四种状态:工作,活动,不活动和参考图层,对应的定义如下:

#define UF_LAYER_WORK_LAYER 1
#define UF_LAYER_ACTIVE_LAYER 2
#define UF_LAYER_REFERENCE_LAYER 3
#define UF_LAYER_INACTIVE_LAYER 4

与图层状态相关的是一个结构体UF_LAYER_status_info_s,也被定义为UF_LAYER_status_info_t类型
定义如下:

struct UF_LAYER_status_info_s
{
int layer_number;
int layer_status;
};


其中layer_number是图层值,介于UF_LAYER_MIN_LAYER和UF_LAYER_MAX_LAYER之间,亦即1-256(可包括),layer_status就是图层状态,就是前面提到的四种之一。

相关的函数有UF_LAYER_ask_work_layer、UF_LAYER_ask_status和UF_LAYER_set_status,第一个函数查询工作图层,后面两个则分别是查询和设置给定的图层状态。

下面的测试代码用于查询工作图层,并将下一个图层作为工作图层

●●●请先 登陆注册 后查看●●●

另外一个比较有意思的函数是UF_LAYER_set_all_but_work,也是用于设置状态的,但是是除去工作图层之后的其他图层。与设置状态相关的还有UF_LAYER_set_many_layers_status函数,这个比较复杂。


2. 遍历图层

使用函数UF_LAYER_cycle_by_layer遍历一个图层,这里遍历的意思指查询位于本图层下的所有对象
函数原型如下:

int UF_LAYER_cycle_by_layer
(
int layer_number,
tag_t * object_tag
)

第一个参数提供待查询的图层号,值为0-256,这时肯定有人会问,图层号不是只有1-256之间吗?是的,这里多的0并不是指的图层,而是查询所有图层。而第二个参数则是所查询到的对象的标识,在使用的时候,必须传递给一个为NULL_TAG的标识,这样能让程序知道如何工作,在第一次调用该函数的时候,返回第一个查找到的对象的标识,然后下一次调用的时候则是查找下一个对象标识,等所有的对象都查询完毕,则该变量被设置为NULL_TAG,表明查询完毕。

注意:在查询循环中,切记不要试图删除对象,这会导致查询下一个对象时出错。

下面的测试代码阐明如何查询图层22中的所有对象:

●●●请先 登陆注册 后查看●●●

运行效果如下:



与图层分类中三要素相对应地,图层分类相关的编辑函数有三个,即对名称、图层和描述的编辑,函数分别为UF_LAYER_edit_category_nameUF_LAYER_edit_category_layerUF_LAYER_edit_category_descr,这里就不展开细说。

图层分类的查询函数有两个,UF_LAYER_ask_category_tagUF_LAYER_ask_category_info,前者根据图层分类名称查询其图层分类标识,后者则是根据图层分类标识,去填充与之相关的UF_LAYER_category_info_t类型。

最后需要提到的是,以前与图层分类操作的三个函数是uc5007(被UF_LAYER_create_category取代),uc5008(被UF_LAYER_ask_category_info取代),以及uc5009(被UF_LAYER_edit_category_layer取代),不应该使用uc5007-5009这三个函数,而是采用新的函数。


2

最新回复 (97)
  • a7834180 10年前
    1

    感谢楼主分享

  • ZF6655 10年前
    2

    回复看看,,,,我刚学,

  • hahap 10年前
    3

    想看下隐藏的内容,可以了吧

  • ahua007 10年前
    4

    感谢楼主,看代码。。。。。呵呵呵

  • Hevvnet 10年前
    5

    学习学习,谢谢分享

  • baiker 10年前
    6

    楼主威武!!!!!!!!!!!!!!!1

  • ssy871120 10年前
    7

    谢楼主 学习了

  • 87238527 VIP会员 10年前
    8

    啦啦啦,来学习了

  • snfgdgvUGNX 10年前
    9

    感谢楼主,看代码。。。。。呵呵呵

  • xya127 10年前
    10

    还可以用吗
    还可以用吗

  • vladimirmp 10年前
    11

    谢谢楼主分享!
    看看代码,学习学习。

  • hare_yan 10年前
    12

    谢楼主 学习了

  • gczg VIP会员 10年前
    13

    啦啦啦,来学习了

  • sdulj 10年前
    14

    终于找到了一个图层有关的帖子了

  • pengfujun VIP会员 10年前
    15

    想看下隐藏的内容,可以了吧

请登录后发表新帖