点击查看详细介绍

请问UF_UI_set_sel_mask与UF_UI_set_sel_procs这两个函数之间有什么区别?

SIM 21年前 12307 6

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


如题。
特别是mask中的设置和procs中的第二个参数的设置有什么不同之处?
可不可以两个函数一起用?
谢谢!

0

最新回复 (6)
  • pzytony 21年前
    1

    这个问题问的很好,有一定的深度,因此给问者加1分。我考虑很久而不得其解,故为鼓励大家回答,先答对者加2分!

  • supergirl 21年前
    2

    UF_UI_set_sel_mask是用来设置selection该选哪些类型东东,比如是选solid还是选curve啊之类的。
    第二个参数action说明的是你在选东东的时候想怎么选,它是个枚举:
    UF_UI_SEL_MASK_ENABLE_ALL:是所有的标准类型都可以选
    UF_UI_SEL_MASK_ENABLE_SPECIFIC:是选指定的类型,函数第三个参数num为可选类型的数量,第四个参数mask_triples为具体的类型
    UF_UI_SEL_MASK_DISABLE_SPECIFIC:是不选指定的类型,num为不可选类型数量,mask_triples为具体的类型
    UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC:与第二种差不多,只不过要清空 filter
    UF_UI_SEL_MASK_ALL_AND_DISABLE_SPECIFIC:可选除了指定的类型外的所有标准类型。


    UF_UI_set_sel_procs是用来设置selection在选中东东时候的操作,以及你不想选那些东东的操作,比如,选solid的时候我可以控制只让选block,不让选cylinder。

    控制选中时要做的操作写sel_cb中,控制不选哪些东东或者选不中的操作写在filter_proc中,这两个东东都是函数指针,user_data,是相当于给这两个函数指定指定的函数输入的参数,注意它是一个void * 的类型,所以你可以自己定义一个复杂的结构体,然后把它的指针强制类型转换为void *传进去。

    不过一般情况下,selection都搞不到这么麻烦,UF_UI_set_sel_mask就基本够用了,难道你还真的要用户只准选左边那个红色的block,不让它选右边那个绿色的block啊?

    最后提醒一句,这两个参数都是只能用UIstyler的对话框才能用,自己用其他东东开发的界面是没有办法用的。呵呵,其实自己仔细看看说明和例子,都能明白是什么意思,UF的帮助还是写得可以的,只要你去看,基本上都可以理解。

  • SIM 21年前
    3

    顶啊
    回答得好详细!
    谢谢

  • repick 16年前
    4

    呵呵 非常感谢 3楼的详解 受益颇多啊

  • lgmsddy 16年前
    5

    无私,要顶………………

  • 无雨 15年前
    6

    非常感谢!
    学习学习!

请登录后发表新帖