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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓
7 ]! x- D7 N- @0 G+ y5 o8 }- `2 _
) U* V" f! s' B1 xUF_CURVE_create_shadow_outline (view source)* F6 A  O. Y" X9 p4 {, y
( U$ d8 w- y" }1 K7 m4 K. `9 Z
Defined in: uf_curve.h4 m8 N9 S8 I+ X: I2 A3 z  _
2 u' r) D+ ^8 F- R( z3 w5 {0 x
5 K/ f/ Z. O" ]" h
Overview
5 j. @6 d8 y  O( |+ y* b7 s2 q
' C9 v8 \/ Q4 h% C* R& ?0 T4 m# ^Create shadow outline for a given array of solids. Solids passed to this
  B! m2 m7 Z5 T( Croutine must be on a selectable layer and visible. If created shadow curves
# [0 v" y9 ?" I( N" l1 `% m6 rcan not form loops, please use UF_CURVE_create_shadow_curves instead to get   o0 U. F6 N3 I4 D0 B6 V
shadow curves. + d% [' T* o2 g2 j' [( F) e
! A( }7 `* O: _6 `+ Y

4 v" l3 |2 C# \& T5 a" H+ A9 ~[hide]
% ]4 b! b0 W; ]  M: q/ @6 g4 q4 c1 v  v6 {+ a1 Z- z3 z% @
[mw_shl_code=csharp,true] void DoIt()( N) Y& r+ u1 l0 @$ m. p2 f9 Q
    {: G8 L  }# S) s
        if (theSession.Parts.Display != theSession.Parts.Work)0 U* v& \  v! s& J# L0 T7 N
            theSession.Parts.SetWork(theSession.Parts.Display);
/ V, P+ U0 M2 w- x1 q
2 b5 _, T$ I* Z/ g  q
1 N6 X6 b& }8 l. @+ I        TaggedObject[] theBodies = null;
/ {: G0 e5 Q: f* v# s! l* H        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)9 A: i/ J2 \6 }1 N& P
        {, t  d- x  A" b( x. U
            Echo("Selected Bodies: " + theBodies.Length.ToString());/ Y0 e* ?6 r! O1 b1 ]# R4 D7 c
            Tag[] theBodyTags = new Tag[theBodies.Length];
9 g/ F' q' }* h6 D0 r& ^( @$ L            for (int ii = 0; ii < theBodies.Length; ii++)
% \/ r# e( m' K7 _                theBodyTags[ii] = theBodies[ii].Tag;
4 C" G. F8 }9 j( ^4 {6 @- S& p" q6 B- [  C
            List<Curve> theOutlineCurves = new List<Curve>();6 x5 M! ^- K; ]* h; s1 k
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;4 G$ N) z8 r) c" @8 u  y& m6 P
            int loop_count;+ i/ p+ Y9 Q) ?+ q* {% c
            int[] count_array;
- G! E) x6 |2 d# K8 o            Tag[][] curve_array = null;
1 l) N3 {4 }$ u1 I8 |8 E1 }& e            double[] tol = new double[2];9 o$ @, v6 Z& P/ f

, m8 H1 ?) G) f/ V, `            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
) c9 R% T4 Y! `9 s. I2 A6 u8 j* k            theUFSession.Modl.AskAngleTolerance(out tol[1]);
# M7 B# j& T3 E0 S; ^- |1 s* n8 @8 R! {
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,. F* \! ]/ m9 E$ U$ e4 }
                workView.Tag, out loop_count, out count_array, out curve_array, tol);1 y0 c* r$ R6 m8 J4 A9 r
0 o( P7 u+ D0 `. O, @% B
            Echo("Precise Outline Loops: " + loop_count.ToString());
, f7 }; ^  Q7 O  m! @$ n; o            for (int ii = 0; ii < loop_count; ii++)- J1 O8 T% U! K" i9 C& @5 Q
                for (int jj = 0; jj < count_array[ii]; jj++)0 o# C$ G+ p% _( N
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));+ {9 c4 h# N/ t" d3 R' a0 @' d
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
1 r7 _2 Z- V+ c+ ~( n" n, v
8 f0 L' c6 X3 y  m, S            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
5 O# l- @' s* b! Y. ^4 P9 s            int curve_count;  Y1 h* t4 B6 D5 z/ |! B$ O
            Tag[] outline_curves = null;! q7 u/ k* ^4 P$ L
            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
8 z% x! R; R, E; x% o+ h# ^                workView.Tag, out curve_count, out outline_curves);& d2 S; A8 x8 r, H# c/ G
            Echo("Precise Outline Curves: " + curve_count.ToString());
  E/ H5 e( j: U( X$ n: o            */
* z* B. R/ @( K        }( i% Y( p) y+ C* h
; C$ L6 O( a: P
    }[/mw_shl_code]
: d; ^( l# R" g" K[/hide]
- i8 J8 f" y) }4 k3 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二次开发专题模块培训报名开始啦

    我知道了