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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓
) S  {1 z7 Q/ H8 i1 Z$ z$ A+ l
3 `2 u$ ?; c. u) t6 u: h7 p3 rUF_CURVE_create_shadow_outline (view source)' b9 a8 c8 j! B& ]# K7 L
" I: C( u( L1 g3 k: Y- J6 W
Defined in: uf_curve.h
  I( a5 X: l( l 6 [1 l# l$ R& x5 R' O9 K5 m

2 D: ?8 f. q& }Overview- z5 ^: I3 L/ n# ?# o

. `! [. K. i5 vCreate shadow outline for a given array of solids. Solids passed to this
8 M& G8 O" o2 M6 ~2 troutine must be on a selectable layer and visible. If created shadow curves
! I4 ~. {: Z: @! z, [/ ~can not form loops, please use UF_CURVE_create_shadow_curves instead to get 7 F3 z: Z$ P7 X8 u
shadow curves.
" N1 P! f7 i0 y5 r) \8 ~( f) w1 |1 T; i8 L! B. v4 p
, [0 ~. `; B9 ^3 S% ?4 V
[hide]) x) n9 Q+ p# S$ V; y$ i" W# i
. q$ P% G: n8 w% M1 {7 P
[mw_shl_code=csharp,true] void DoIt()
( U0 y. h  V$ L. ]4 }  f* j    {
! p* Y4 r7 D  r0 a; e$ Z6 g        if (theSession.Parts.Display != theSession.Parts.Work)
2 x/ |! L' V3 @/ y! F- H            theSession.Parts.SetWork(theSession.Parts.Display);/ G# M  d9 e  O. g2 Q  n

5 l) T" N( U" X. w, o5 q/ J
: h- R) j+ d! K& H6 ^- ]& P  y        TaggedObject[] theBodies = null;
- `$ K* n0 Z$ B0 |' `9 T/ G* d        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)
' f2 R! S! q+ V+ P2 Y& }        {5 x/ t% g* x* h9 C1 f
            Echo("Selected Bodies: " + theBodies.Length.ToString());
. \  L+ n. d: a; z. w; V% x            Tag[] theBodyTags = new Tag[theBodies.Length];
+ c. D6 l9 r0 j! T. g2 D            for (int ii = 0; ii < theBodies.Length; ii++)  h/ T+ N( k$ P8 {& ?- ^
                theBodyTags[ii] = theBodies[ii].Tag;
0 F; J; d5 Z& Y# }  R3 H* Z, q! g" `) ^5 n9 k" c
            List<Curve> theOutlineCurves = new List<Curve>();' J6 F. m6 D; u7 ?& t# l& n' ~
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;
2 X5 M! T6 P- n/ `" n" Q            int loop_count;
, i% w) F1 k8 I- g" V8 U- w/ H% S            int[] count_array;9 c3 ?; i" {0 ], `4 R, `
            Tag[][] curve_array = null;* K4 D6 S: [/ V1 a8 ~
            double[] tol = new double[2];5 X) d7 I/ \3 [8 V

3 x$ S0 S5 j, X6 G0 w8 \            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
4 v4 @  @; E( D6 r, U            theUFSession.Modl.AskAngleTolerance(out tol[1]);+ l+ h' g+ {5 ~6 [
" K( b5 p3 C+ U9 K0 J
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,
  Y. W( p- D3 P% ]2 Y# i& W                workView.Tag, out loop_count, out count_array, out curve_array, tol);% h. h2 K* h+ T' d1 O

& D: M" w. t3 H5 \4 x1 J. Z6 t+ M- r            Echo("Precise Outline Loops: " + loop_count.ToString());
- M0 R0 M% k0 Y4 A9 Y4 i            for (int ii = 0; ii < loop_count; ii++)
" p" e% t9 V# e7 u+ n9 d; M                for (int jj = 0; jj < count_array[ii]; jj++)  k( N* j1 H& n; a* d
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));
5 \* `* _! Y8 k            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());4 u1 u: J& G: e/ t1 p& P

! m9 m  }/ P& t2 C/ F# c- K            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead 6 d; {( `8 M2 ^) f* q% B
            int curve_count;, P7 X* Q- n, K" S$ Y5 t
            Tag[] outline_curves = null;) R% t3 R" \/ F7 q+ K
            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
" A6 S( }4 A3 O; H0 o                workView.Tag, out curve_count, out outline_curves);0 A/ s+ U* U# q, k5 ~
            Echo("Precise Outline Curves: " + curve_count.ToString());
+ \  O: |* ~  ~9 F4 }1 P% l& H' P  x7 q            */! P; [; T: r4 i7 \
        }
: L! Y) A* F! R; A
- I9 D/ ]3 \1 U( p7 F) Z# ^    }[/mw_shl_code]
0 z* g: P" \  @; s9 _[/hide]3 g, ]. y+ Y+ E9 _5 d7 ]
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了