iCAx开思工具箱

标题: 恳请版主:二次开发,网格划分时,获得的节点总数为何时0? [打印本页]

作者: xskun    时间: 2004-3-18 21:48
标题: 恳请版主:二次开发,网格划分时,获得的节点总数为何时0?
请问高手您:
我的程序mesh_ansys_2d.cpp请见附件:
由于printf()输出的信息看不到,故我对report()函数做了一点修改,以便于在信息窗口看到出错信息。
  
编译、链接和运行都可以,启动ug18后,先打开一个sheet零件件,进入modeling,然后调用该程序生成的mesh_ansys_2d.dll,选择该sheet进行网格划分,最后出错,而且节点数为0。这是为什么?请大侠指点!多谢!
  
报错信息:
F:\PARA_mesh\_code\mesh_ansys_2d\mesh_ansys_2d.cpp, line 97:  UF_SF_create_2d_ansys_mesh(&mesh_params,element_type,num_objects,object_id,&mesh_tag)
    returned error 1541707:  An invalid type element was specified for this operation.  
number of nodes is : = 0
作者: xskun    时间: 2004-3-18 21:59
为了节省您的时间,我先解释一下do_ugopen_api()中用到的三个函数。
1---UF_UI_select_with_class_dialog()函数是出现类选择对话框。
其原型如下:
extern int UF_UI_select_with_class_dialog (
char * message,  
char * title,  
int scope,  
UF_UI_sel_init_fn_t sel_init_proc,  
void * user_data,  
int * response,  
int * count,  
tag_p_t * object );
  
2-----UF_SF_create_2d_ansys_mesh()是2D网格划分函数
其原型如下:
extern int UF_SF_create_2d_ansys_mesh (
UF_SF_AMM_mesh_parameters_t * mesh_params,  
char * element_type,                                         //就是该参数出错!!!
int num_objects,  
tag_t * object_id,  
tag_t * mesh_tag );
该函数的各个参数如下:
  
UF_SF_AMM_mesh_parameters_t *  mesh_params Input Mesh-parameters of 2d mesh  
char *  element_type Input element type. Has to be one of the following four: Quad8, Quad4, Tri6, Tri3   ////就是该参数出错!!!
int  num_objects Input number of objects to mesh  
tag_t *  object_id Input Tag of the object to be meshed  
tag_t *  mesh_tag Output Tag of the created mesh  
  
其中结构类型UF_SF_AMM_mesh_parameters_s定义如下:
  
typedef struct  UF_SF_AMM_mesh_parameters_s
     { /*  Mesh attributes related to model geometry                          */
     tag_t      element_descritor_tag;     /* Type of Element to create       */
     UF_SF_mesh_dimension_t     
                mesh_dimension;            /* 2D(shell) or 3D(solid)          */
     int        ansys_area_element_shape;  /* The area element shape tri/quad */
     int        midnode_needed;            /* 0 = OFF  , 1 = ON               */
     int        smart_edge_seeding;        /* smart edge seeding 0 = OFF, 1 = ON */
     double     overall_elem_size;         /* Overall Element Size            */
     double     area_transition_factor;    /* Maximum Area Transition Factor  */
     double     area_transition_lower_limit;     
     double     area_transition_upper_limit;     
     double     area_expansion_factor;     /* Area Expansion Factor           */
     double     area_expansion_lower_limit;     
     double     area_expansion_upper_limit;     
     double     volume_expansion_factor;   /* Volume Expansion Factor         */
     double     volume_expansion_lower_limit;     
     double     volume_expansion_upper_limit;     
     double     edge_matching_tol;         /* UG edge matching tolerance      */
     double     jacobian_ratio;            /* for midnode snapping - threshold*/
     double     warp;                      /* for quad splitting - threshold  */
     int        do_not_format_mesh;          /* 0 = OFF  , 1 = ON               */
     int        split_quad_toggle;         /* 0 = OFF  , 1 = ON               */
     int        midnode_snapping;          /* 0 = OFF  , 1 = ON               */
     int        smart_sizing;              /* 0 = OFF  , 1 = ON               */
     int        quad_splitting;            /* 0 = OFF  , 1 = ON               */
     int        smoothing;                 /* 0 = OFF  , 1 = ON               */
     int        cleanup;                   /* 0 = OFF  , 1 = ON               */
     int        debugging;                 /* 0 = OFF  , 1 = ON               */
     int        journaling;                /* 0 = OFF  , 1 = ON               */
     int        mapped_mesh;               /* 0 = OFF  , 1 = ON               */
     } UF_SF_AMM_mesh_parameters_t;
  
3------UF_SF_count_nodes()统计节点函数   //此处该函数的目的只是为了看看是否分网成功!
其原型如下:
extern int UF_SF_count_nodes (
tag_t mesh,  
int * number_of_nodes );
  
tag_t  mesh Input The tag of mesh. If passed NULL_TAG
then all meshes in the current part will be
traversed  
int *  number_of_nodes Output Number of nodes found.  
  
谢谢啦!
作者: xskun    时间: 2004-3-18 22:02
恳请各位帮忙!
作者: xskun    时间: 2004-3-19 11:44
请大侠帮我看看,代码在附件的do_ugopen_api()函数中,不是很长,课题因此而停止,做不下去了。多谢了!
作者: xskun    时间: 2004-3-20 11:17
请版主大侠们帮我看看,为什么该程序运行时说单元类型错误( invalid type element ),我使用了各种形式的单元类型(Has to be one of the following four: Quad8, Quad4, Tri6, Tri3 ),为什么还是不行?
  
我已经花了三天时间了,也许您只要几分钟,谢谢了!
请您就看看那个单元类型的参数,为什么出错?
作者: zzz    时间: 2004-3-22 10:01
你选的物体是面吗
作者: xskun    时间: 2004-3-22 14:32
谢谢zzz !我选择的时sheet,但是选择face也不行。
  
函数UF_SF_create_2d_ansys_mesh()的第二个参数为:
char * element_type;    //Input element type. Has to be one of the following four: Quad8, Quad4, Tri6, Tri3我试了这里的四个都不行。
  
都是出现如下的错误:error 1541707: An invalid type element was specified for this operation
  
不知道哪位可以给以个该函数的例子,ug的document里面没有。
作者: pinkwall    时间: 2004-3-24 02:02
實際操作過實體刨分功能碼??
  
在 application-->strucktur
作者: qingwufy    时间: 2004-3-25 10:57
to xskun:
  
    哥们,你的程序我读了,我做一些尝试
进行修改,可是总是不行。我也是黔驴技穷了
    不好意思!




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