iCAx开思网
标题:
请问有没有人知道两个曲面的【桥接】怎么实现?
[打印本页]
作者:
begtostudy
时间:
2008-9-9 15:41
标题:
请问有没有人知道两个曲面的【桥接】怎么实现?
就是曲面的【桥接】命令,我录制不到
不知道有没有人知道对应的API或者NXOpen的实现方法?
十分感谢。
作者:
sincosxu
时间:
2008-9-11 21:58
extern UFUNEXPORT int UF_MODL_create_bridge_face(
int continuity_type ,/* <I>
1 = tangent continuous, 2= curvature continuous
*/
int guide_type ,/* <I>
0 = no guides; 1= guide strings; 2= guide surfaces
*/
tag_t *primary_faces ,/* <I,len:2>
tags of 2 primary surfaces to be bridged
*/
tag_t *primary_edges ,/* <I,len:2>
tags of edges on primary surfaces where the bridge
should be attached.
*/
int *primary_edges_dir ,/* <I>
direction of primary_edges (if continuity_type = 1)
1 = forward
-1 = backward
*/
UF_STRING_p_t side_string1 ,/* <I>
first guide string (if guide_type = 1)
*/
UF_STRING_p_t side_string2 ,/* <I>
second guide string (if guide_type = 1)
*/
tag_t *side_faces ,/* <I,len:2>
tags of 2 side guide surfaces (if guide_type = 2)
*/
tag_t *side_edges ,/* <I,len:2>
tags of edges on side surfaces where bridge should
be attached (if guide_type = 2)
*/
tag_t *result_tag /* <O>
tag of resulting surface
*/
);
没调试过。。不过看函数名好像是你要找的。。
作者:
begtostudy
时间:
2008-9-13 20:53
标题:
回复 2楼 sincosxu 的帖子
唉,我也找到了
但是不管我怎么用都是出错,内存存取违例那个错误
不知道有人用成功过吗?
作者:
sincosxu
时间:
2008-9-14 10:11
你在UG里面好好用过这个命令了的么?
作者:
begtostudy
时间:
2008-9-15 16:48
tag_t CreateBridgeFace(tag_t* bridge_faces,tag_t* bridge_edges,std::vector<tag_t> side_string)
{
int sum_edge = side_string.size();
//tag_t bridge_faces[2];
//tag_t bridge_edges[2];
UF_STRING_t side_string1;
UF_MODL_init_string_list(&side_string1);
UF_MODL_create_string_list(1,sum_edge,&side_string1);
for (int i =0;i<sum_edge;i++)
{
side_string1.string
= i+1;
side_string1.dir
= UF_MODL_CURVE_START_FROM_BEGIN;
side_string1.id
= side_string
;
}
UF_STRING_t side_string2;
UF_MODL_init_string_list(&side_string2);
UF_MODL_create_string_list(0,0,&side_string2);
int primary_edges_dir=1;
tag_t bridge;
int error = UF_MODL_create_bridge_face(1,1,bridge_faces,bridge_edges,&primary_edges_dir,&side_string1,NULL,NULL,NULL,&bridge);
if(error!=0)
{
char msg[133];
UF_get_fail_message(error,msg);
uc1601(msg,1);
}
//UF_MODL_free_string_list(&side_string1);
//UF_MODL_free_string_list(&side_string2);
return bridge;
}
不知道为什么就没正确过
作者:
begtostudy
时间:
2008-9-16 16:06
程序做了调整,side_string只有一个边的时候没问题
但是两个和两个以上的时候,
就说
Edge are not properly connected
边界没有适当的连接
我晕,不知道给位有没有人知道什么是“适当的连接”,改怎么做呢?
作者:
sincosxu
时间:
2008-9-19 00:38
第一:边界不能多于两条。。
第二:你的边界要和两个面有关系。。简单的说:边界上至少要有一个点分别在相应的面上。。
作者:
begtostudy
时间:
2008-9-23 15:32
程序中
//tag_t bridge_faces[2];
//tag_t bridge_edges[2];
确实保证了两个面的两个边。
用这个程序,处理U形的情况没问题,因为只有一个side_string1
但是简单的两个side_string1的情况,比如V形,就说Edge are not properly connected
边界没有适当的连接
不知道是啥情况
作者:
begtostudy
时间:
2008-9-23 15:37
忘了说了,上面的程序有问题,下面的程序处理U形的情况没问题,只有一个side_string1
手工选择两个side_string1的情况就有问题了
tag_t CreateBridgeFace(tag_t* bridge_faces,tag_t* bridge_edges,std::vector<tag_t> side_string)
{
int sum_edge = side_string.size();
//tag_t bridge_faces[2];
//tag_t bridge_edges[2];
UF_STRING_t side_string1;
UF_MODL_init_string_list(&side_string1);
UF_MODL_create_string_list(1,sum_edge,&side_string1);
int i=0;
side_string1.string
= i+1;
side_string1.dir
= UF_MODL_CURVE_START_FROM_BEGIN;
side_string1.id
= side_string
;
while(i<(sum_edge-1))
{
Edge* edge1 = trans<Edge*>(side_string
);
Edge* edge2 = trans<Edge*>(side_string[++i]);
side_string1.string
= i+1;
side_string1.dir
= UF_MODL_CURVE_START_FROM_BEGIN;
side_string1.id
= side_string
;
};
UF_STRING_t side_string2;
UF_MODL_init_string_list(&side_string2);
UF_MODL_create_string_list(0,0,&side_string2);
tag_t side_faces[2];
side_faces[0] = NULL_TAG;
side_faces[1] = NULL_TAG;
tag_t side_edges[2];
side_edges[0] = NULL_TAG;
side_edges[1] = NULL_TAG;
int primary_edges_dir[2]={1,1};
tag_t bridge;
int error = UF_MODL_create_bridge_face(1,1,bridge_faces,bridge_edges,primary_edges_dir,&side_string1,&side_string2,side_faces,side_edges,&bridge);
if(error!=0)
{
char msg[133];
UF_get_fail_message(error,msg);
uc1601(msg,1);
}
//UF_MODL_free_string_list(&side_string1);
//UF_MODL_free_string_list(&side_string2);
return bridge;
}
欢迎光临 iCAx开思网 (https://www.icax.org/)
Powered by Discuz! X3.3