点击查看详细介绍

如何获取一个part内的所有对象tag值并获取其隐藏显示属性?

my_dear2002 18年前 9751 9

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


打开好几个part文件,我要得到非当前窗口,也就是非display的part的所有对象的tag值如,并且显示其隐藏/显示属性,我用UF_OBJ_cycle_all函数能获取所有的tag,但是用UF_OBJ_ask_display_properties变量显示其属性的时候有些类型是没有显示属性的就报异常了,我想获取一个part里面对象的显示属性,请问如何实现呢,非显示part, 谢谢了

1

最新回复 (9)
  • my_dear2002 18年前
    1

    help sos 救命啊

  • dianzi24 18年前
    2

    用UF_PART_ask_num_parts能得到你的UG打开了part的数量.
    UF_PART_ask_nth_part(int part_num)根据指定的数字序号得到你要的part的tag_t值。如果你知道part名,就直接用tag_t

  • my_dear2002 18年前
    3

    不是,我能知道隐藏的part的tag,但是我遍历了所有对象,显示其属性的时候还是我们讨论的那个问题,有些对象不能显示其属性报异常,但是我用UF_LAYER_cycle_by_layer获取第一层的对象,然后遍历显示其属性就没问题,当然通过这个函数获取的对象明显比uf_obj里面的函数获取的对象少,但是显示属性不会报异常啊,所以我想了这么一个思路就是先获取非display的part,然后获取其某层的对象tag,最后显示其属性就不会有问题了,现在我的问题就是怎么通过这个非display的part来获取他里面某层的对象呢?

    你是好人啊 呵呵

    原帖由

  • dianzi24 18年前
    4

    终于明白你的问题了,用层遍历只能获取当前工作part的对象,非display的part只能遍历那个part中的所有对象,其中包含了你不想要的对象,又去不掉。你用这个UF_OBJ_is_displayable函数试试,它的解释说“Returns a logical indicating whether tagged Unigraphics object is displayable,and therefore possesses attributes of color, width, font, and layer.”应该能判断一个对象是否拥有层、颜色等属性。再不行的话,恐怕要找一些绕弯的方法了。

  • my_dear2002 18年前
    5

    我用了isdisplable函数来判断是否有显示属性,然后再用display_property查询隐藏/显示状态没有错误了,但是我要把显示的给隐藏了或者隐藏的给显示出来,用UF_OBJ_set_blank_status 来设置上面过滤过的对象,现在这儿报异常,在过滤以前的对象有100多个,用了is_displable过滤以后减少为40个,但是我要设置他的显示/隐藏的时候报异常啊,帮忙看看如何解决吧?

    原帖由

  • dianzi24 18年前
    6

    我试了没问题啊
    tag_t part=NULL_TAG;
    tag_t point=NULL_TAG;
    const char *part_name =

  • my_dear2002 18年前
    7

    我的做法跟你一样,我只不过用了do while循环,但是我单步调试不是这个循环的问题,因为point是有值的。
    do
    {

  • dianzi24 18年前
    8

    你说的切换是不是这个意思
    UF_OBJ_ask_display_properties(point,

  • my_dear2002 18年前
    9

    我这儿还是有问题,这个问题先放一放,请教一个关联问题,我用addcomponent函数添加零件到装配体,本来零件里面隐藏的对象都显示出来了,所以我要先打开该零件,然后获取其隐藏特征的tag或者其他,然后去装配体里面找到该组件,然后查找其所有tag并且和零件里面的隐藏特征tag比较如果相同则将其隐藏,这是我的一个思路,可是遇到一个大问题,就是我如何得到装配体里面组件的所有对象tag值呢,我用Ask_Prototype_Of_Occ得到零件实例然后遍历,发现其隐藏对象和零件里面的隐藏对象个数和tag值都是一样的,也就是我并没有得到组件的显示/隐藏特征而是获取的还是零件的隐藏tag值,这样就没法比较了,帅哥帮忙看看如何解决,就是获取零件隐藏对象tag,然后在装披头组件里面找到对应的对象tag,然后取得其显示属性为0(显示)并将其改为1使其隐藏,这样就做到添加组件后该隐藏的能隐藏了,谢谢了


    原帖由

请登录后发表新帖