iCAx开思工具箱

标题: 怎样在UG OPEN 里用函数选择SHEET BODY [打印本页]

作者: wangxinyush    时间: 2008-8-15 11:08
标题: 怎样在UG OPEN 里用函数选择SHEET BODY
我在做一个快速移动实体到指定的层,发现SOLID BODY和SHEET BODY是同一个TYPE,用什么函数可以区分它们.谢谢了,在线等
作者: wangxinyush    时间: 2008-8-15 14:27
谁能帮我一下,很着急,谢谢了
作者: dianzi24    时间: 2008-8-16 13:55
对象有两层属性type和subtype。
你的两个属性的type都是UF_solid_type吧。
UF_solid_type的subtype属性还有6种:
  UF_solid_body_subtype                       0
    UF_solid_swept_body_subtype          1
    UF_solid_face_subtype                        2
    UF_solid_edge_subtype                      3
    UF_solid_silhouette_subtype              4
    UF_solid_foreign_surf_subtype          5
在subtype里再具体区分吧。
作者: wangxinyush    时间: 2008-8-18 14:52
谢谢,我知道了,我是用UF_OBJ_cycle_objs_in_part函数来找SOLID BODY,这个函数不能区分SOLID BODY 和SHEET BODY,所以在用完这个函数后,我又使用了UF_MODL_ask_body_type来区分找出SHEET BODY,但是我不太清楚这个UF_MODL_ask_body_type函数的用法,能发个例子让我参考一下吗?
作者: dianzi24    时间: 2008-8-21 08:35
这是UG自带的例子,和你做的基本一样

tag_t  ProtoTag;
        UF_OBJ_disp_props_t  DispProps;
        UF_BREP_topology_t  *MakeBodyRoot;

        UF_OBJ_cycle_objs_in_part (PartTag, UF_solid_type, &BodyTag);
        if (BodyTag == NULL_TAG)  break;

        UF_OBJ_ask_display_properties (BodyTag, &DispProps);
        UF_OBJ_ask_type_and_subtype (BodyTag, &Type, &Subtype);

        if (Subtype != UF_solid_body_subtype  ||
            DispProps.blank_status != UF_OBJ_NOT_BLANKED)  continue;

        ProtoTag = BodyTag;
        if (UF_ASSEM_is_occurrence (BodyTag))
            ProtoTag = UF_ASSEM_ask_prototype_of_occ (BodyTag);

        UF_MODL_ask_body_type (ProtoTag, &Type);
        if      (Type == UF_MODL_SOLID_BODY)  SolidCount++;
        else if (Type == UF_MODL_SHEET_BODY)  SheetCount++;
        else  continue;




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3