PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓* G4 c7 ^5 M% G

' V' v4 I3 R& h$ X$ n! m. q/ j; tUF_CURVE_create_shadow_outline (view source)7 m2 z, C8 N7 {2 b' n( x
1 l& Z1 m. n1 k4 h5 h
Defined in: uf_curve.h# A* R( \% `7 i  G7 y# @+ C  H# F
  U! k; _- K) k5 z5 `/ R) h
, S2 u! Y6 {2 l3 K. q0 H. U3 u
Overview. @5 ^) ~9 W( D

" \6 Y( m! @" E) i1 q% C* yCreate shadow outline for a given array of solids. Solids passed to this 7 U1 J( H, ^1 W; k5 v/ W- J2 u0 J$ N
routine must be on a selectable layer and visible. If created shadow curves
- g( e7 |0 U8 t; L* ^can not form loops, please use UF_CURVE_create_shadow_curves instead to get
1 _8 d" V- T/ {. ~: y# eshadow curves.
! A9 n8 `8 Y+ x0 K6 Q0 _, S7 p1 p+ O; u) b
8 a, y* |, a2 z4 \
[hide]
6 }7 g* i" c# F( }. ~7 s
9 M& ]! Z. X0 A9 g* j9 I! o[mw_shl_code=csharp,true] void DoIt()
; I, R/ ^6 u3 Z2 g. U    {
" t% u1 o  Z2 U* R5 ]3 V        if (theSession.Parts.Display != theSession.Parts.Work)
7 B% Q, \1 w+ q& s            theSession.Parts.SetWork(theSession.Parts.Display);9 \- o. L5 v8 ]& k
0 s$ Z8 a$ Q* B0 a( z: k
) j* I. f- L0 g; P4 q
        TaggedObject[] theBodies = null;# u" {. c) e7 |! E5 y* W
        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)
/ O) E# j) n2 N+ g  F" K. k        {
0 x9 ]; _+ \0 I- N( Z( w            Echo("Selected Bodies: " + theBodies.Length.ToString());
3 A" E+ I/ D6 A* v* m$ p# {4 K            Tag[] theBodyTags = new Tag[theBodies.Length];6 Q0 M- P) L; e
            for (int ii = 0; ii < theBodies.Length; ii++)" X- x, i$ P" N* w1 X8 l$ e
                theBodyTags[ii] = theBodies[ii].Tag;) k5 ^2 z1 Z, f
6 b1 q: X* N4 H; p/ T! W
            List<Curve> theOutlineCurves = new List<Curve>();
/ }4 b7 r$ V# R: n. Q, d# [/ I            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;
. W- L- V/ K9 _0 ]/ P6 v7 `            int loop_count;
2 C9 ]" Y2 ~% ^% Y- W            int[] count_array;5 u' ]- h) o+ e1 B; Q, r
            Tag[][] curve_array = null;% d5 y: _" Z: W4 f+ s$ b
            double[] tol = new double[2];) |  t' `  j6 F" M! ]

) K! v4 K3 s/ q5 x4 _& V. L! `            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
  S, x: w, j" W2 c) ?7 c            theUFSession.Modl.AskAngleTolerance(out tol[1]);
8 u# [4 K2 o  P7 d2 N& Q! j# U( S+ j, E5 p9 e7 u
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,
2 A- |, @7 V" u& l3 t$ X3 x" s* s                workView.Tag, out loop_count, out count_array, out curve_array, tol);
2 {7 Z% j$ W4 w! i3 }
4 R6 X' Y4 y( W+ @7 |  r% q9 d: U            Echo("Precise Outline Loops: " + loop_count.ToString());- }; ~3 f% i& [* l# }. z* d) E
            for (int ii = 0; ii < loop_count; ii++)1 E  I0 I6 x, L, n: y, Q7 \7 q/ R; {
                for (int jj = 0; jj < count_array[ii]; jj++)( [* S7 _5 j7 k3 s, ]) O
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));% u# y& O" q# ?# F
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
* U7 t) E; \& j. e9 K: K9 V# W0 ]+ y. y
            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead 5 X8 b! o$ Q: y6 f9 E
            int curve_count;
; U! T3 ~1 e; X0 @2 B" l            Tag[] outline_curves = null;
# W( l: ~. g8 {) v1 w. ], x            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
& x& S+ _: K. T2 `4 x1 W                workView.Tag, out curve_count, out outline_curves);
! v9 G! F! O1 i% f! c/ _            Echo("Precise Outline Curves: " + curve_count.ToString());
- m. n, [8 |  R9 ^4 O: q            */" j* [6 z+ N/ ?
        }. @7 {9 A6 r# m. W, e* k' [
% k  K1 P- O. n* `' @
    }[/mw_shl_code]! w$ b- h9 b: V& Y
[/hide]3 ^# g% \+ h0 e6 i" l/ W
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了