PLM之家PLMHome-国产软件践行者

[二次开发源码] NX二次开发源码分享: 创建精确外轮廓

[复制链接]

2019-1-17 10:56:35 2110 0

admin 发表于 2019-1-17 10:56:35 |阅读模式

admin 楼主

2019-1-17 10:56:35

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x
NX二次开发源码分享: 创建精确外轮廓: a/ F# O1 o, [0 f  i* H4 }9 K
0 ]$ @- l1 b7 r- T- r6 H* L# ?
UF_CURVE_create_shadow_outline (view source)# G( I! r, j2 g7 v7 A8 Q
( N# h7 z( ^9 v* }
Defined in: uf_curve.h$ |* E* c5 F' O7 j7 [6 k

0 ]  F) ^6 M7 t+ m) j7 H+ @
$ y: q, k7 I6 a1 {7 J5 eOverview
8 T( _( G5 E3 w2 U6 d7 R3 y/ _- r$ F! \" J7 V, P  G9 t* G
Create shadow outline for a given array of solids. Solids passed to this , K3 C0 l, @! X5 t/ F) i8 T
routine must be on a selectable layer and visible. If created shadow curves ) W5 x( A- o. e; A0 T" Z$ A; [
can not form loops, please use UF_CURVE_create_shadow_curves instead to get 7 W: |& ]; p9 W6 @
shadow curves.
: u) }0 J" J& V+ Q& l) C8 j% w% \$ g4 x% d  [
! y- O: i7 Y$ A3 s. }0 y
[hide]
4 I, m8 k- R/ q- y5 ^; z' P4 i& `: L# k8 Z% ^+ E
[mw_shl_code=csharp,true] void DoIt()3 q. ?% N$ }% j0 o) p
    {) s; }4 H6 U6 M& I8 Y
        if (theSession.Parts.Display != theSession.Parts.Work)5 b# r6 U; A6 L" D1 L. p9 v
            theSession.Parts.SetWork(theSession.Parts.Display);' W. @6 B. c2 q( n/ b( l( T. b

% D0 C. _! [5 h3 V
# n) G# _7 ?) ^7 K% \. D9 f        TaggedObject[] theBodies = null;  l5 H$ _8 C" Q
        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)1 o. V$ a5 w" n2 e
        {
5 u* C. n6 |" X- g            Echo("Selected Bodies: " + theBodies.Length.ToString());- P8 Z% v* x! B% l0 a
            Tag[] theBodyTags = new Tag[theBodies.Length];# A% ~& B9 }7 w( V- Q0 _
            for (int ii = 0; ii < theBodies.Length; ii++)
  b3 r2 i. f9 E1 _9 V* w+ M" z: P# ~                theBodyTags[ii] = theBodies[ii].Tag;
& T; p: Y; d. u( b9 N- Z
7 h- _5 t9 ?% N0 \( K            List<Curve> theOutlineCurves = new List<Curve>();
" h% a8 T9 n& m; }8 z: b5 @4 h            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;9 X4 E6 w, p* H4 o8 K) M
            int loop_count;; [& w$ J1 w1 y" B
            int[] count_array;" A# {) u  W- F/ k* u& E0 I8 G2 i) w
            Tag[][] curve_array = null;* c- N/ m  ?; S* \, S" b
            double[] tol = new double[2];" U" e/ o4 P/ p- A! M9 s# Z

5 Q+ ^* l& B7 e8 T" c' b/ O            theUFSession.Modl.AskDistanceTolerance(out tol[0]);5 [4 ^" O) q# l6 k! t1 b' w* X6 z
            theUFSession.Modl.AskAngleTolerance(out tol[1]);6 ~, h5 l- o- F# E& U
: W' D5 d9 M. b0 A8 E$ H0 \/ F
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags," i7 X& ?% x, h+ `% S# O9 D
                workView.Tag, out loop_count, out count_array, out curve_array, tol);- r  H; u/ [! l3 k$ Q) @- x$ D, f

8 p2 ]. j* G' R" \2 B% e/ I            Echo("Precise Outline Loops: " + loop_count.ToString());6 n# u1 k) A& F; w
            for (int ii = 0; ii < loop_count; ii++)
& ^& v7 \0 [, C* r/ R' _, ^; n                for (int jj = 0; jj < count_array[ii]; jj++)
: P3 ?# d, E. n8 g5 O9 G( y7 O                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));6 x8 U( i# ^5 Z6 u; ?+ S, x. z. G
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());/ h% N7 w6 W, s3 C& w# P1 ]7 C; X

% z/ B9 e9 v% m. f            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
* D. E/ g& T# T3 i0 r. N, @            int curve_count;
7 W; C" }; a" p5 S) E            Tag[] outline_curves = null;
* e/ f! C4 O5 W/ l* ~! Y3 v            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
3 @/ e" `9 Y. e! z$ o5 ^8 M; Z8 M9 U                workView.Tag, out curve_count, out outline_curves);
, @3 m+ w/ C. w( U* ~            Echo("Precise Outline Curves: " + curve_count.ToString());7 V! ^2 Q/ u: F- C* @
            */
1 |! M: G0 a3 u        }' e1 o8 N0 [3 K6 w* b

+ D( f2 n5 w/ I) @( Z    }[/mw_shl_code]9 ~7 o$ g: V  J; p. {1 ?
[/hide]# ~) r* U% N, S
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了