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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓
- n" t$ u1 r+ g$ {, G
: o( o3 w8 G. P3 E1 aUF_CURVE_create_shadow_outline (view source)$ t4 I# k9 [, {9 u; q) K- [
" @- S3 ~! m6 Q, U8 [  R' r
Defined in: uf_curve.h8 E, g# J: O1 {# d3 y& T6 v" s7 i( {
" _% f1 f) G; p; `0 C

4 c6 R6 A9 Q) }2 ~, l" r2 TOverview
3 z8 K; k$ ]  W& T5 q7 r; ~0 o% ?+ g# Y9 S; _& Z6 Q
Create shadow outline for a given array of solids. Solids passed to this
2 U9 n9 I7 C$ mroutine must be on a selectable layer and visible. If created shadow curves
# i- `4 J) d7 U9 q3 I: Pcan not form loops, please use UF_CURVE_create_shadow_curves instead to get
- M+ i: t) M/ N# n( J5 Y% |shadow curves.
) d( B1 l' ~6 v" \
6 u3 \! p9 [: _/ C  D; K) J  I
$ x; [5 q8 \; j[hide]$ E6 d) U6 K' r5 ?( Q; R/ z$ k
  ]6 E/ H% I' u- C- J
[mw_shl_code=csharp,true] void DoIt()
, O% U" |" D. l    {
, ^5 l% F5 z( v) T; Q/ O8 l        if (theSession.Parts.Display != theSession.Parts.Work)$ f3 z1 R6 {( S8 h5 G
            theSession.Parts.SetWork(theSession.Parts.Display);, M: n  W; u! u- i' h3 u: K* E

. @6 x  o0 z. R" s' t7 u, }( e" y4 O1 y$ k7 h" ^" C
        TaggedObject[] theBodies = null;' v. F$ X- z) |+ F4 B
        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)& \* ~. t, W; H
        {' W3 W8 H1 w" a
            Echo("Selected Bodies: " + theBodies.Length.ToString());( R" Z8 U- s$ q) T1 P* `* w
            Tag[] theBodyTags = new Tag[theBodies.Length];
4 s+ Y' J9 k; U/ I3 c            for (int ii = 0; ii < theBodies.Length; ii++)  A3 e) S' ^' O- j8 B+ i
                theBodyTags[ii] = theBodies[ii].Tag;
: I6 U) |. l* T7 e# ^3 }+ a* q6 L" ]7 \8 I
            List<Curve> theOutlineCurves = new List<Curve>();2 p! G% J5 b0 R5 y) `* H
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;9 _/ N2 a# u0 P% l
            int loop_count;" I9 z( G/ |* d* N; n  _
            int[] count_array;" x/ m0 z0 d2 h* N
            Tag[][] curve_array = null;
' e2 A. l, `5 r( U/ j# O' S# m            double[] tol = new double[2];
( s) j# C$ c# m1 e% ?* Z7 F
5 w& l- `( s* F            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
8 _2 p+ N1 C  U) T5 m            theUFSession.Modl.AskAngleTolerance(out tol[1]);
% [3 N- |  g. j$ k
9 ^& P% r7 K5 H$ f4 E            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,. l$ f3 m2 a: A/ s1 X( j
                workView.Tag, out loop_count, out count_array, out curve_array, tol);
1 ]7 o. u( z$ F  V% U  t/ A/ g  z+ a6 M$ `
            Echo("Precise Outline Loops: " + loop_count.ToString());+ X9 Q9 i4 O0 `$ c$ {8 _+ X" C1 K
            for (int ii = 0; ii < loop_count; ii++)
# a! \$ X0 d6 T                for (int jj = 0; jj < count_array[ii]; jj++)
! X2 @( m, D0 X                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));
4 b1 R0 T! T. ]2 r/ V            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
( Q/ n. ^) Z+ \$ ?
8 _7 J2 ]; J1 C) w# g3 b1 B0 [            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
: O6 P) c% d+ H1 a& f0 ?            int curve_count;2 Y7 t/ t$ v' |; N$ W' y( P
            Tag[] outline_curves = null;3 s0 V# o* }* U( s2 m' f' N
            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags, ) }/ p/ h6 U0 s$ E7 Y
                workView.Tag, out curve_count, out outline_curves);8 h6 l0 \1 T  M
            Echo("Precise Outline Curves: " + curve_count.ToString());3 B- t% T" Y, h% `- H/ N) h2 L' W
            *// |" U! i! y  K7 {% W
        }
1 R. N1 ]: D/ W. L! w4 i/ F. W# [' D# e8 d/ D- ^
    }[/mw_shl_code]
# Z3 o' ?! \" {+ D9 r; x. _# R[/hide]3 h# q0 ^7 I+ H- ~1 ~
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了