|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
0 q' W2 a+ \; ]8 p* M
6 n( h7 ?3 Z/ m9 Z8 h, K' y
NX二次开发源码分享:选择管道routing线段的方法
+ @1 P+ o8 {! U! X0 {
4 N; g, I' f1 g* Z4 [! m代码是C#的,主要是告诉大家masktriple的设置如下:; J$ q5 w6 y3 f8 D. Q! l0 d1 o
" v, G9 f K3 r! b
* ]/ j; m8 Y5 K, Emask[0].Type = 0;
" _5 ^1 h( \3 S) Jmask[0].Subtype = 0;
; u! ~0 o3 J; G! Vmask[0].SolidBodySubtype = UFConstants.UF_UI_SEL_FEATURE_ROUTING_CURVE_ONLY;
1 f) N' M O& x& n) {# i( u) }$ S, r7 E1 B8 X6 E
[mw_shl_code=c,true] public static Selection.Response select_route_segment(string prompt, ref TaggedObject obj) , E% t% y) A, _
{
# F' H# z2 v. N; a TaggedObject selobj;
% H$ J: I) n7 S6 M: u- H& N+ g UI ui = UI.GetUI(); # X: X0 r0 M$ g. X% H* c
Selection.MaskTriple[] mask = new Selection.MaskTriple[1]; 2 O) J+ W! _. ~ l
{ 0 d$ w- G2 f! ~, o! p5 p
mask[0].Type = 0;
/ [+ C0 D1 w* V9 p* j mask[0].Subtype = 0; + D* d- l2 i+ q. h
mask[0].SolidBodySubtype = UFConstants.UF_UI_SEL_FEATURE_ROUTING_CURVE_ONLY; 4 m# Z( n3 C% W# ?2 A8 }
}
4 e) U* ~' `% ~0 L y Point3d cursor = default(Point3d); : G$ M" J2 \, E& L% o: b
* _" `, G, h7 T5 E3 W Selection.Response resp = ui.SelectionManager.SelectTaggedObject(prompt, prompt, Selection.SelectionScope.AnyInAssembly, Selection.SelectionAction.ClearAndEnableSpecific, false, false, mask, out selobj, out cursor); Z! c" [/ Z' A2 Z7 Y% K q/ a+ p
9 `. F% X j2 m4 K. @ if (resp == Selection.Response.ObjectSelected | resp == Selection.Response.ObjectSelectedByName)
% }: Q' b' R& A& }# e+ k! g& L {
- a2 L4 E$ Y4 K) M% i, f; [ obj = selobj;% S. ?9 w% C3 t3 h. W, H3 s# B3 Q
return Selection.Response.Ok;
1 h2 P: h; J- ?! }! l; _ } }( q: q2 g" W: N
else
& R3 j: l& S, I& \3 J5 E { 1 O% u/ U! Z& j3 H1 a# q/ V
return Selection.Response.Cancel; 1 m6 z/ Z8 o6 k1 j& e/ W
}
% f4 ^9 F2 {* {; ]1 q4 Z } [/mw_shl_code]% h+ c& \/ Q3 h1 J8 B. X$ U
|
|