|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
/ E6 s* C5 G) A' \' A8 [5 r
8 n$ X6 s& P9 | CNX二次开发源码分享:选择管道routing线段的方法
2 C# a! }3 y' a% O+ U
! T$ l' D; t2 ?) M5 S6 D' I代码是C#的,主要是告诉大家masktriple的设置如下:
8 l5 i& \& _& d7 H3 H' E
- T3 c1 c$ z3 k- ?9 V0 Y0 l8 ?4 o; ~
mask[0].Type = 0; 1 D* |% h5 B# u# h4 B' n
mask[0].Subtype = 0;
) T8 x* [8 g' e# bmask[0].SolidBodySubtype = UFConstants.UF_UI_SEL_FEATURE_ROUTING_CURVE_ONLY; : m" L* ~% W3 ~* F
9 O3 Q% E( q o
[mw_shl_code=c,true] public static Selection.Response select_route_segment(string prompt, ref TaggedObject obj)
6 ?1 m8 v: E3 m/ s3 p { 4 P# ^( ]8 `# l5 M$ Y& W
TaggedObject selobj;/ l1 ^7 H; R3 _
UI ui = UI.GetUI(); 0 t) n6 C" c5 x3 N7 O9 m
Selection.MaskTriple[] mask = new Selection.MaskTriple[1];
5 X* F/ z$ K( R a {
G2 Q; p7 H. w. y mask[0].Type = 0;
' A% |/ f; b& P% [ mask[0].Subtype = 0; : N1 M* X; D7 `' j) ]3 H
mask[0].SolidBodySubtype = UFConstants.UF_UI_SEL_FEATURE_ROUTING_CURVE_ONLY;
: Y L/ h, K( v5 L! H0 W; z+ { } # f! I% J- D! ~
Point3d cursor = default(Point3d);
! p% y; o; ?! G2 Q3 y0 h; x) f
; _* T6 i3 d; x: D% H& x3 M, x Selection.Response resp = ui.SelectionManager.SelectTaggedObject(prompt, prompt, Selection.SelectionScope.AnyInAssembly, Selection.SelectionAction.ClearAndEnableSpecific, false, false, mask, out selobj, out cursor); 2 }9 u5 h2 l3 N: W
4 m7 |1 x6 k3 X v3 j. G if (resp == Selection.Response.ObjectSelected | resp == Selection.Response.ObjectSelectedByName) ! d* S; Y; n9 I" U) h R8 S
{
# z3 e. s* P. V. i' @ p obj = selobj;3 U6 p, q; Z: A
return Selection.Response.Ok;
+ z/ ^8 B- O: H% c3 D } ) a2 D1 E$ }- H5 }
else
. ~5 w! ?/ P" p7 P {
9 e, Y' O+ I. x return Selection.Response.Cancel;
0 L6 Y5 @# U; b$ O) Z) ~6 B }
6 p1 }) G" g& k" M- n* R2 {+ S+ _6 O } [/mw_shl_code]
) D& [1 d" D9 T% W |
|