|
01、选择对象
: B4 g* \3 z1 X3 j8 e1 n9 V2 d' o5 D' H6 m3 J) |
捕捉
, i3 x/ n W0 p7 e- a PointOverlay 是否显示捕捉点, |; h0 R7 ?& j _$ M+ P% E
SmartUpdateOption 智能更新选项3 t/ N: j$ I, Y' O+ P
Within Modeling 在建模
0 y3 y# ^; @: G After Modeling 建模后. E0 [2 K' Z' X% x
After Parent Body 实体父后 E$ r9 O7 a R8 w, A$ G) E, |
Mixed 混合) h5 S5 a( R: Q& {: _# F- ]( Z0 w' g
* T# }# J* }4 r, o
SnapPointTypesEnabled 设置捕捉点类型的可见性, x! k( m# K" q
SnapPointTypesOnDefault 设置捕捉点类型相关的内容被启用0 s& {% P k* V
& V7 Z- Q h7 z% G
常规# V5 h% p' W8 R* T5 x+ a, z4 _
BlockID 控件id9 ?; c3 z/ g" T( d% _; H
Enable 是否可选/禁用控件4 y7 x: t: g, M) k& A4 @5 z
Group 组. U( |% V$ P* P* E; M9 M) g1 z
Show 是否可见6 r R, u7 k# y* k2 M D
# P' Y& k( s |. ?/ K1 t+ B1 J c
其它 + o3 k2 j, ~& A$ H1 q6 w
附着$ y) G" L8 G* _" U7 V0 _8 o
Bottom 底
! b0 e0 E1 ^: _7 m Left 左) h7 R+ s" E0 s$ p; ^2 d) M
Right 右$ i% u! l: z0 p; f9 ?! \) T
Top 顶
4 a9 {1 c1 M5 S; X5 i. q5 M! n! Y. Q6 y* o
特定于块- w% O* q" C& Q! R4 x
AutomaticProgression 选择后焦点是否自动跳到下一个控件! n$ Q2 C. v8 D- _- k; D$ Y
BalloonTooltipImage 动态提示图片(鼠标移动到控件是显示图片)
! z" S |& V, M( } BalloonTooltipLayout 动态提示布局' J. D& U& f1 V/ L0 @
BalloonTooltipText 动态提示文本内容 [1 |4 q, ~9 M- e0 @; S6 }4 n
Bitmap 指定图片
4 ]/ X! `0 c; |$ } s0 J4 z, z5 z z BlendVirtualCurveOverlay 是否显示虚拟交线8 k" U. K0 n3 {8 h% U+ V2 C
CreateInterpartLink 是否显示部件间连接图标在选择条上
0 k# ~% E1 f) L- _; b4 ?1 J+ r. R1 \ Cue 提示
, s) `% B, c+ U9 x$ t6 D6 F8 e" |$ R4 M4 H0 ^2 t
InterpartSelection 部件间选择设置. L4 s9 [. u4 w, q# e5 g0 i
Simple 简单
! T% H3 E% v, x: \$ k- J8 t! B Non-associative Interpart Copy Only 只复制部件间非关联
+ b$ _7 a' J5 C! e1 m1 u( D% n Associative and Non-associative Interpart Copy 复制部件间关联和非关联7 t% p8 w( }1 g# D' K
Associative Interpart Copy 复制部件间关联 f. o- e: `+ B K1 X
3 B) ^3 G+ g! Y0 G' M* F
LabelString 标签标题; k7 A M# X- f9 ~
MaximumScops 设置选择范围
9 S# j4 J! `, ]) s0 ]4 ~: |4 K Entire Assembly 所有组件/装配
- G0 i1 `1 H3 _5 _$ Y- j6 K Within Work Part Only 只是工作部件1 P) c8 N3 U/ P1 b* f* Z
Within Work Part and Components 工作部件和组件/装配)
. d( `5 B& U; H1 p1 {6 H. n9 e2 a0 I' d Q1 \& B
SelectMode 设置单选/多选 ) e% M: d1 v" K0 J: U2 N9 w
Single 单选
1 V. z- R' {8 \3 L2 U Multiple 多选$ t5 @2 S+ {' [: m
( H- l E8 N0 X. }! J
StepStatus 设置确定和应用按钮什么时候高亮 (Required 必需的时候)(Optional 可选的时候)(Satisfied 满意/满足的时候)
' Z- ?' J& @" Q+ t Tooltip 动态提示文本标题(Bitmap指定图片时,鼠标移动到图片时提示文字)
% a8 a% x/ _7 Y2 v& d( H- W, k0 ]) p5 q+ b
————————————————————————————————————————————' b: v/ y$ _% T- w2 J9 A" [
————————————————————————————————————————————3 }8 i1 J4 e' C& t
咧子:获得selection0控件选择的对象
0 w4 N, M: Z, S9 Z8 \ X* w UF_initialize();
9 h! o4 q c3 X$ K std::vector<TaggedObject*>objects=this->selection0->GetProperties()->GetTaggedObjectVector("SelectedObjects");
8 b! u e* n S for ( int i=0;i<objects.size();i++) // size 列表长度,这里指的是 对象个数5 o, _% j+ D4 P. v0 b" n/ _
{ 2 ~- ?" F: D) G2 I- B* n& H
UF_OBJ_set_color(objects[i]->Tag(),1);2 p' H9 l }9 A3 u
}
# O/ ~; O! ]- g UF_terminate();. W# P/ S7 }# m3 [, Z0 ?3 V
) _$ N8 Z- R* d1 m: Y P; ?# s/ U( @
————————————————————————————————————————————
0 K" y% F/ _7 n& J: `咧子:对象加入到selection0选择控件的对象列表9 H+ [* d" @: p0 U
8 K. Y0 x5 ]% i2 M tag_t obj=NULL_TAG;
1 ~& E% {( j- G* w double point[3]={0,0,10};6 k" f5 T Z& }7 X
double XYZ[3]={60,50,80};9 \3 {/ i7 Q% G& B I/ O# T
char C[132]="";
+ l9 w; z8 |" M8 C9 q- h/ { char K[132]="";9 c3 e" k- S% j
char G[132]="";6 z4 t( ~. w+ i2 S1 S2 q$ _- F8 g5 s8 x
sprintf(C, "%f",XYZ[0]);
! \" k2 E; y% ~* O% q3 x: I; i sprintf(K, "%f",XYZ[1]); 7 O. C1 b, N# K8 I7 {
sprintf(G, "%f",XYZ[2]); & u- @- u( }1 j( ^, ^* P
char * edge_len[3]={C,K,G}; l2 i8 Z3 K( `
UF_MODL_create_block1(UF_NULLSIGN,point,edge_len,&obj); //创建方, h5 ~# c% P0 S" Z& \
UF_MODL_ask_feat_body (obj,&obj); //从特征中取出实体
1 W6 }9 k2 B/ u8 H; C
# a7 B# f; J! f1 ]( D4 P Body *body1(dynamic_cast<Body *>(NXObjectManager::Get(obj))); //tag转换给nxopen
5 d8 Z3 z! c: B' } std::vector<TaggedObject*>objects;6 [8 ?' J) c- c+ z8 p
objects.push_back(body1); //对象加入到selection0选择控件的对象列表; l( J: M' V3 z: P
selection0->GetProperties()->SetTaggedObjectVector("SelectedObjects",objects);6 u; ~4 d) x3 ?0 @; y ~6 O
————————————————————————————————————————————
4 t: Q9 W% K. T0 k/ v$ x3 k4 g! E
//清除对象2 J2 j! f1 C+ a9 O% {
std::vector<TaggedObject*>objects;8 \, J0 x a! p( E* F# l7 B; }
objects.empty();4 \0 S# d' R: e" Q" Q B% ~
selection0->GetProperties()->SetTaggedObjectVector("SelectedObjects",objects);
) c. k# M" W8 \: U- x9 @$ E
4 G+ N/ g0 u8 p! Z( P————————————————————————————————————————————
+ O# ]' o; o7 u8 ?; ^' e, D% w咧子:只选择面
& N4 `% Q1 n2 H) L3 V initialize_cb() 初始化里加代码 或 dialogShown_cb()显示对话框里加代码 可进行对象选择过滤
9 c( P! w1 I7 J" @
! @' l, o0 n5 C+ p" V selection0->GetProperties()->SetEnum("SelectMode",1);//多选模式
# r% Q; U( G7 {( w2 k: o, r* O7 M6 E4 R' \/ O# ~' z- V( ]
//对象选择过滤 只能选表面
+ I/ e/ G1 R' y4 J% u* B3 j selection0->GetProperties()->SetString("LabelString","选择表面");; d; _8 l5 l: p
std::vector< NXOpen::Selection::MaskTriple > maskTriple;+ G1 P+ z" ?% ?, X+ j2 |! s
Selection::MaskTriple mask1(UF_face_type,0,0);0 n% p q- F0 A# f9 C; F1 q
maskTriple.push_back(mask1);( ~) s8 z/ y3 I- Z# S& [% u
selection0->GetProperties()->SetSelectionFilter("SelectionFilter", Selection::SelectionAction::SelectionActionEnableSpecific ,maskTriple);
1 w3 S8 L! r1 W& F d$ E
; `# m T2 a3 @( w9 [4 B0 `2 I" q1 Z. l. h/ l* z( |
咧子:只选择面 【UG本身过滤器跟着变】- R0 ^% _5 x g# h
initialize_cb() 初始化里加代码 或 dialogShown_cb()显示对话框里加代码 可进行对象选择过滤 5 `# L! `: k- G! K% t2 I
# f+ u5 S( O2 U# ^& b
selection0->GetProperties()->SetEnum("SelectMode",1);//多选模式( ^8 H3 U2 E" y4 |6 h! T
% C9 Z* y* c$ i8 v, b, L* N
std::vector< NXOpen::Selection::MaskTriple > maskTriple;6 j5 G4 `( ?7 ~5 h6 V2 {. u4 e
Selection::MaskTriple mask1(UF_face_type,0,0);
# ?5 `3 \/ N4 t# t maskTriple.push_back(mask1);# E; @2 w7 [ j7 {, j' `/ P" D
NXOpen::BlockStyler: ropertyList *selComponentProps = selection0->GetProperties();
- _& ~2 Z8 N" m9 R# k/ Q; f7 s4 i selComponentProps->SetSelectionFilter("SelectionFilter",Selection::SelectionActionClearAndEnableSpecific,maskTriple);$ B. C' o+ T) y: R' X) x
delete selComponentProps;
5 i9 e6 V, C+ r$ _. t$ H selComponentProps = NULL;( [6 q% W L: e- P. D
+ o/ q5 [4 r8 s* V |
|