|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
×
本帖最后由 秋爱 于 2015-11-27 00:27 编辑
8 D* X. B1 U- N! Y1 {$ Z
* X6 Z2 w6 g4 C4 L$ U请问怎么把NXOPEN创建的直线用UF的函数生成管道呢。我在界面上能获取任意两点生成直线(nxopen实现的),把直线转换成UF函数里边的参数后管道不能创建,请求帮助,代码如下:
/ r# M% x) `2 O7 g$ G //两点创建直线
& F6 A. Z* X& U/ G* {; {) Q + B6 J9 x, t5 L; m
Session *theSession = Session::GetSession();
5 O4 c. W4 v% X/ {& e! w& I/ `+ o) i Part *workPart(theSession-> arts()->Work());
( h* w3 K7 s9 o# q) I Part *displayPart(theSession-> arts()->Display());
1 _6 f5 _$ G! j
# Z2 G z, } u4 X std::vector<TaggedObject*>pp = point0->GetSelectedObjects(); //获取选择的点& h0 |- S3 C h. \$ V9 T0 Y/ x5 u1 v
TaggedObject * p = pp[0];
9 \2 @7 o$ {# L4 ] Point * getpoint = dynamic_cast< oint*>(p);
- u# t3 ~% u" ]1 C( c5 y+ M, s5 \+ F
0 D3 ^# X }1 G std::vector<TaggedObject*>qq = point1->GetSelectedObjects(); //获取选择的点, s, J! K/ y* l5 g: w, _" j8 M
TaggedObject * p1 = qq[0];6 H+ B' p; t1 w+ X7 x- ?
Point * getpoint1 = dynamic_cast< oint*>(p1); 6 N; `; K9 l% K- `9 B3 s |5 S
0 f5 e0 o* p, [4 V/ n
* D' H# \" M1 |& Y' @5 R6 q Features::AssociativeLine *nullFeatures_AssociativeLine(NULL);
: @& Y7 V9 T6 J/ Y2 a2 w Features::AssociativeLineBuilder *associativeLineBuilder1;8 i- i, j% A a/ g N% y
associativeLineBuilder1 = workPart->BaseFeatures()->CreateAssociativeLineBuilder(nullFeatures_AssociativeLine);( x* K7 m9 N ?
, k/ b& X2 L8 w- @$ g4 C! R
. w+ j S7 S# e( }. R9 d, j Unit *unit1;+ q/ M% V0 K/ t! T
unit1 = associativeLineBuilder1->Limits()->StartLimit()->Distance()->Units();
9 n8 O1 T; }5 i1 f( { associativeLineBuilder1->Limits()->StartLimit()->Distance()->SetRightHandSide("0");
. n7 d% u1 _# ^4 ?4 \ associativeLineBuilder1->Limits()->EndLimit()->SetLimitOption(GeometricUtilities::CurveExtendData: imitOptionsAtPoint);
" X& v" K/ H/ B5 U9 \
! X. Q) C' G: S, W; `" ]/ u. n4 D b" @" L6 C0 g& `
associativeLineBuilder1->StartPoint()->SetValue(getpoint);
7 P0 E) s/ `; r' j) e; Z associativeLineBuilder1->SetStartPointOptions(Features::AssociativeLineBuilder::StartOptionPoint);' Z, Z& y( p- V C3 D Q
associativeLineBuilder1->EndPoint()->SetValue(getpoint1);3 o6 L/ g8 {' [1 J! \
associativeLineBuilder1->SetEndPointOptions(Features::AssociativeLineBuilder::EndOptionPoint);1 Z' `8 _7 g* S
NXObject *nXObject1;( i2 g" _# Q* q4 N' {: z4 G
nXObject1 = associativeLineBuilder1->Commit();0 x. ^! c) ]1 f) e. U. Z1 N; m0 H
associativeLineBuilder1->Destroy();3 E: O( P) Q3 a# |! M
" l" I" O$ Q; F9 v$ U% n' x7 [! w
% J$ [" A9 l- _) o3 P
6 z4 {0 Z3 _- N6 c/ K //uf部分
) U; u% U# E4 G9 G UF_initialize();' b& z. J1 K% v# D6 v
/ a# y j; X" o" E M4 b tag_t linetag =( nXObject1->Tag());
+ [: D$ I# X5 G6 ` uf_list_p_t path_list = NULL; 9 n- M6 [) V5 W& c; W
char * limit [ 2 ] = {"20","0"};. Z: q ~% I! k% f1 h0 ~) Y; x9 u
UF_FEATURE_SIGN sign = UF_NULLSIGN;9 N7 u. j; D/ j; }. I# p
tag_t target_body = null_tag; & `: f1 T2 z& i7 r: E
uf_list_p_t feature_list = NULL;! E% X5 O9 P1 {- u
4 ?) R% } A; j1 q) p UF_MODL_create_list(&path_list);
. m% h# e1 w! T: x& n8 w
; I& H" V1 B4 w' _5 ~% g UF_MODL_put_list_item(path_list,linetag);/ c1 n: ]3 z: K- [# ~
: L; g8 F# E1 t
UF_MODL_create_tube1(path_list,limit,sign,target_body,&feature_list);
! Q/ Y8 z' T9 q) I
: ?* _" V$ e& U$ r1 k8 y errorCode = UF_MODL_delete_list(&path_list);
9 b' o5 H# L% d1 c' t UF_MODL_delete_list(&feature_list);; k5 E5 q' {" ]
UF_terminate();: R1 X |! G7 d; _
associativeLineBuilder1->Destroy();7 K; d1 _4 U6 u* o: F
" x( L) }/ h! Q. J3 k |
-
|