|
|
发表于 2016-12-12 12:24:21
|
显示全部楼层
01、选择对象
* i$ d' U0 n6 r& Y* A- q
# r0 w1 A$ Y+ E& J0 i6 c" N+ W7 t# n( f捕捉) N3 k/ V5 x+ E3 C5 s$ k7 Z
PointOverlay 是否显示捕捉点
: {$ P2 s" {0 k, Y SmartUpdateOption 智能更新选项4 a0 d: @0 d6 c) h
Within Modeling 在建模. F7 i N, Z" q6 t4 N+ `
After Modeling 建模后. g) O3 n, D* l: {% R
After Parent Body 实体父后
6 S% j1 ]/ p$ d1 [# x% U2 J+ ? Mixed 混合
' S! Z+ C' W0 U' c+ e+ E
) H! w" {1 S% `* g- a SnapPointTypesEnabled 设置捕捉点类型的可见性
& g! \3 o3 X* ]" ^& \ SnapPointTypesOnDefault 设置捕捉点类型相关的内容被启用
3 }! l6 X5 K3 H% w& c) J9 K/ H& P! E, b5 m, C" T
常规
9 V7 H# }" W( G0 h) m BlockID 控件id
( Q0 N# |& ~" a$ P! E( Z* A Enable 是否可选/禁用控件! u! A( x) O! w" c% t$ z) [
Group 组( f6 G& ^% b0 t' r/ [4 l: f
Show 是否可见
$ h9 d, g8 i( n# r0 O3 K3 n% T. X. K, j# R9 @" v L8 r& x
其它
) d- h1 n& J! \# Z 附着
$ y+ V* h% Q% a# D Bottom 底+ A2 ?" T: z1 C" V0 d
Left 左3 E4 y$ [2 Q- i- ]9 A, b) Z0 X
Right 右
& s* X. Y% i' V# l Top 顶
% X' F) ^! H1 V3 @, I4 w9 k2 H6 {9 J7 ?# f' c/ \7 G0 ^" e
特定于块
( D, F6 y4 |3 {4 e AutomaticProgression 选择后焦点是否自动跳到下一个控件' v+ Q8 |# r2 M- a
BalloonTooltipImage 动态提示图片(鼠标移动到控件是显示图片)1 h& F! e5 d1 W
BalloonTooltipLayout 动态提示布局
* A: Y- E. c& b4 z3 o: D" f" s* f BalloonTooltipText 动态提示文本内容1 e( r! o! y& g1 D# H
Bitmap 指定图片
5 @0 C: k3 }8 @1 C& q1 a$ X BlendVirtualCurveOverlay 是否显示虚拟交线, [6 G/ G- d8 n: n
CreateInterpartLink 是否显示部件间连接图标在选择条上
8 k3 m4 P U g# ~9 Z. ?- O+ F/ ~ Cue 提示
9 R7 `+ V, h7 R5 |% T; W
/ w' J& c" L8 h, z c) p InterpartSelection 部件间选择设置
- c& w/ a& C# A; g7 y Z& ]: r. I Simple 简单
y0 B3 g7 J& |2 { Non-associative Interpart Copy Only 只复制部件间非关联
8 f x- v I. x+ g3 P. f Associative and Non-associative Interpart Copy 复制部件间关联和非关联7 K& M" o% V! a+ f. D
Associative Interpart Copy 复制部件间关联2 H6 E% x; z+ _/ }' n+ e% i2 t& y
& x1 m% g' z5 N/ ~ LabelString 标签标题
6 R* a/ { z6 {# Y/ S7 N* v MaximumScops 设置选择范围! ?0 w9 n7 y7 N h2 D# o
Entire Assembly 所有组件/装配
# ]% f4 u H4 x$ S. c' ~2 }' E3 i Within Work Part Only 只是工作部件" D4 u3 p5 M! @
Within Work Part and Components 工作部件和组件/装配)
# f3 R8 K( x, N+ P' e t3 x
0 s ]: b1 n" q; V: |: O K7 E. ^ SelectMode 设置单选/多选 3 O' u2 ^! i+ R" [) J
Single 单选3 P: W1 G+ r0 [
Multiple 多选
+ g: ^8 g6 I5 b1 j5 B" |( }+ V$ [1 Z
! t! }; \1 Q0 K8 _% B( \7 Q; @ StepStatus 设置确定和应用按钮什么时候高亮 (Required 必需的时候)(Optional 可选的时候)(Satisfied 满意/满足的时候)
6 ]; v- ^* `- t1 R Tooltip 动态提示文本标题(Bitmap指定图片时,鼠标移动到图片时提示文字)/ Q) D0 ^/ k# M7 m' _
/ R0 W% e" ]& u; @6 o% Q k
————————————————————————————————————————————
! n+ p- l& ]2 y& g7 S' }————————————————————————————————————————————8 Z+ e. i9 `. B; H$ A/ b8 _
咧子:获得selection0控件选择的对象
1 y/ n( f/ m$ p$ I UF_initialize(); & J' K5 C6 Q. P; ]8 D. D/ T0 ?
std::vector<TaggedObject*>objects=this->selection0->GetProperties()->GetTaggedObjectVector("SelectedObjects");. I$ J: L5 _1 _; V. B
for ( int i=0;i<objects.size();i++) // size 列表长度,这里指的是 对象个数( O; ]2 p; c6 n+ h4 L s
{
! N5 Y4 m- c2 W1 { UF_OBJ_set_color(objects[i]->Tag(),1);
7 y0 e- o5 r& Z/ ` }; r; C Z: Y2 [/ B5 |9 O' @4 ]+ W
UF_terminate();" X/ w) j. q7 U8 F
0 b9 K/ w1 d8 z7 j6 U————————————————————————————————————————————
& L2 h, f+ |! f6 z咧子:对象加入到selection0选择控件的对象列表
\4 a% Y' ?& g1 Y
- x* v! s, `' i: \ tag_t obj=NULL_TAG;
! F' C: B$ E0 W double point[3]={0,0,10};
! k% D$ u6 ~2 @& X* I- A4 Y. | double XYZ[3]={60,50,80};
5 Z0 Y/ K0 G. [ char C[132]="";
3 E% V' l6 M2 h, L k2 M char K[132]="";! Y+ ~% {( i# F: D0 W7 ?
char G[132]="";
7 V$ o/ _& o9 i8 B sprintf(C, "%f",XYZ[0]);. U, _) M" o3 p; ], K, Q4 |
sprintf(K, "%f",XYZ[1]); 6 h M+ F$ B$ G3 L! l
sprintf(G, "%f",XYZ[2]);
2 U$ @" I0 I3 Z char * edge_len[3]={C,K,G};4 j9 k @& u/ v7 W V
UF_MODL_create_block1(UF_NULLSIGN,point,edge_len,&obj); //创建方
# m1 e& |% F( c5 O) d UF_MODL_ask_feat_body (obj,&obj); //从特征中取出实体: v3 G% b, [9 D2 L. Z% P2 Q
4 O8 x$ V4 l. A" W8 b" C+ @/ Y
Body *body1(dynamic_cast<Body *>(NXObjectManager::Get(obj))); //tag转换给nxopen
. [1 y! V& g! q3 K8 ~: q r std::vector<TaggedObject*>objects;" J- N! _9 {! K5 L Y
objects.push_back(body1); //对象加入到selection0选择控件的对象列表
: }. N6 c, i1 ?* B selection0->GetProperties()->SetTaggedObjectVector("SelectedObjects",objects);
% J+ W' t8 I- u! V————————————————————————————————————————————( M1 D" n! k. Q) [
/ |* i ~4 @4 Y//清除对象
( U3 ^, _4 \6 e- z0 d6 u$ ^std::vector<TaggedObject*>objects;" V$ W! k* Z' l- @8 Z" K$ k% m9 z
objects.empty();8 b* g" L* B+ a
selection0->GetProperties()->SetTaggedObjectVector("SelectedObjects",objects);9 L3 S3 S; r. x. B$ h; t# a: |
0 m0 S: j0 r: c% d9 }————————————————————————————————————————————
: H+ R0 Y% y* i' R' z6 j+ m咧子:只选择面# F5 t2 G2 z/ P2 ~
initialize_cb() 初始化里加代码 或 dialogShown_cb()显示对话框里加代码 可进行对象选择过滤
# e4 i2 {% b) F) |
4 g5 x: q5 h C6 G- z( p selection0->GetProperties()->SetEnum("SelectMode",1);//多选模式5 G; {1 y' q) Z' W. [& m8 Z
3 Q" o' g7 j. r% f5 S0 q5 F //对象选择过滤 只能选表面# F* r7 I- d0 F# z# B
selection0->GetProperties()->SetString("LabelString","选择表面");
( ~) H' g% P' K+ { std::vector< NXOpen::Selection::MaskTriple > maskTriple;
5 h/ L/ \3 X3 Q/ w- w Selection::MaskTriple mask1(UF_face_type,0,0);% \1 P! l* b7 w5 ]# k8 B7 t
maskTriple.push_back(mask1);
) B, ^; {; c& |+ @0 c. f! N; ]( c. D: b selection0->GetProperties()->SetSelectionFilter("SelectionFilter", Selection::SelectionAction::SelectionActionEnableSpecific ,maskTriple);' @9 F; J0 p* q
2 Y& o d% W% g' P# g, V) _* P
8 f# o3 M W$ M E' Z* }! q2 D
咧子:只选择面 【UG本身过滤器跟着变】
+ d5 B3 e: R8 _. o6 b3 t initialize_cb() 初始化里加代码 或 dialogShown_cb()显示对话框里加代码 可进行对象选择过滤 + F) P2 c+ q: U) q
, a7 i9 I% z" z selection0->GetProperties()->SetEnum("SelectMode",1);//多选模式
; `1 y6 _8 E$ M. k: n6 F
- A$ _3 f) Z" S6 h' V) q std::vector< NXOpen::Selection::MaskTriple > maskTriple;# Y6 e# a- @# S! _0 ]* W; b% I
Selection::MaskTriple mask1(UF_face_type,0,0);
; h' F3 g6 A, T# Y c maskTriple.push_back(mask1);
" x, d4 Z- n' M: a NXOpen::BlockStyler: ropertyList *selComponentProps = selection0->GetProperties();
$ z" w2 p; u) N8 w5 E selComponentProps->SetSelectionFilter("SelectionFilter",Selection::SelectionActionClearAndEnableSpecific,maskTriple);; H/ y( ~& J# ~9 F/ k% {
delete selComponentProps;
0 p7 T5 L0 a: d+ t+ l4 U5 D* H9 d selComponentProps = NULL;
" q3 b! O( C" J
; ^: ^ [( K$ L; m/ ~0 T5 X |
|