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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓! T/ w6 q" {5 m0 d

- F2 j3 R* O4 C/ g/ UUF_CURVE_create_shadow_outline (view source)1 A1 d9 H+ i( b6 _6 ?9 d
$ E. p: v: n1 t# X1 P7 d, x; P
Defined in: uf_curve.h
7 Y  D+ N0 d8 g6 Q4 m
! o% `# @6 Y% o; j: }0 w% h3 T, I' h1 ~6 n# I
Overview5 C1 R$ K4 e; p* b" O2 @
( @; A& D6 p: [8 f5 W
Create shadow outline for a given array of solids. Solids passed to this
  @- ~0 Q. {9 k) u: Iroutine must be on a selectable layer and visible. If created shadow curves 7 U& T! y" i# k- S
can not form loops, please use UF_CURVE_create_shadow_curves instead to get 8 `3 m6 q, q) o. R
shadow curves. 6 x0 P) n" T! N* ]6 h# A
, g( g0 e. v4 K. I8 r3 R1 V

4 K1 ^1 G7 c* r: D' ][hide]( ^- X1 \% x9 u
7 f" f! r' {9 Y5 Z! w1 Y, p/ A
[mw_shl_code=csharp,true] void DoIt()
3 E. I: {  n) ]) F- e6 @% Y- d  K    {
/ T! q; h8 R. e. Q        if (theSession.Parts.Display != theSession.Parts.Work)* ]3 {- z6 H# U* O* z
            theSession.Parts.SetWork(theSession.Parts.Display);- y" @7 d! r- v* M

' C. i* a$ \# i2 ^0 e/ y
8 P/ T- S- E& v) d0 B        TaggedObject[] theBodies = null;
- k  `) \; Y5 ?0 i% D+ X. O! h8 f        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)( j  ^" H# y) u+ G8 m+ z6 {" e
        {- v6 j, Q; f0 r
            Echo("Selected Bodies: " + theBodies.Length.ToString());
4 h# g2 B4 n0 k- T2 n6 a+ B1 s            Tag[] theBodyTags = new Tag[theBodies.Length];
7 w' t% O0 ?; p/ I& x( f            for (int ii = 0; ii < theBodies.Length; ii++)4 M2 ~6 b; ]5 Z  O& S; x6 O
                theBodyTags[ii] = theBodies[ii].Tag;
% R, Y, }/ w9 A# g# o7 D! G* L9 W* k2 _
            List<Curve> theOutlineCurves = new List<Curve>();8 ]4 t% k( l% @5 b$ D3 N
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;7 ]. `/ P/ v- R$ [# t
            int loop_count;
* T* g( y! w4 X5 r            int[] count_array;5 K; Q9 N2 i& U6 Q
            Tag[][] curve_array = null;. I( J- q/ m3 s6 a' ?9 _$ H
            double[] tol = new double[2];
' U  Z: U  A8 A/ x
+ `6 `  L( N" i: x6 R1 t            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
" I; {" i' c8 C9 E. N) }            theUFSession.Modl.AskAngleTolerance(out tol[1]);# |5 ?+ c$ h$ E5 X1 O* G

" Y( Z2 [# {5 X+ W5 Z            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,
% v! |  r8 ^9 Y* U0 Q) b                workView.Tag, out loop_count, out count_array, out curve_array, tol);
6 ~) e0 ]- A* U
3 k( y& v; s: d) {            Echo("Precise Outline Loops: " + loop_count.ToString());$ G% M) ^' o8 K9 Y' l  d
            for (int ii = 0; ii < loop_count; ii++)
* }1 @0 C- ]  \. i& Z                for (int jj = 0; jj < count_array[ii]; jj++)3 h2 G/ B# W* Y5 q) u0 L
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));
' ~+ `! J/ s* q1 w            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());6 Z$ c  q  v7 P5 j1 \7 D4 q% [, d

- C2 W; t, B2 r. U( }            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
! B6 |4 `& [+ |            int curve_count;
& h' |" K2 n) I& ?# {; {/ I( P            Tag[] outline_curves = null;
( l, z" a! O! A9 D6 e4 O% y8 l            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags, & v3 k7 i# H4 k; ]2 @  R
                workView.Tag, out curve_count, out outline_curves);0 Z" k, y3 ^: o+ D
            Echo("Precise Outline Curves: " + curve_count.ToString());
' h* m! d( b0 H" A& k  g( X, \            */. e" V/ `' U- O
        }
% G. D  M# Z- ~+ c$ g! n8 n& r
- T' b# z& n3 I( q& u, p, h    }[/mw_shl_code]
: {- D% q8 ^% y+ S- p5 h7 j[/hide]$ w& q5 a3 N# t. b5 k& I0 p
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了