PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓
6 y3 k" Z: Y/ d6 c4 B2 B; e( L! k' w" s) U
UF_CURVE_create_shadow_outline (view source)! ~  J2 S9 _" q9 u% l

  ]/ |* T  ~! A) d2 d% dDefined in: uf_curve.h- `% z+ a+ E) ^5 R$ L

0 j% ?5 ~/ L. M$ v% k4 o, J
3 h" q3 n- P$ A/ ^4 y& z! ZOverview$ x3 `1 S- v& R, {7 h' V9 _6 D
1 _* P# H. H7 _# d$ s0 ?3 U
Create shadow outline for a given array of solids. Solids passed to this
7 e2 s: d+ X$ D5 c1 k7 zroutine must be on a selectable layer and visible. If created shadow curves # r% L  A* f% D; X, @! c8 j
can not form loops, please use UF_CURVE_create_shadow_curves instead to get + A! g, s% ]! l% o8 T) f( ]
shadow curves. 1 q' [5 @  }% Z3 _) W

% a9 k% d8 c0 h; b! M: p: \, E& F. r
[hide]
/ J; c3 J9 k1 ]& E* U* H3 p) S: S7 w- w$ s, L/ ~& P
[mw_shl_code=csharp,true] void DoIt()
6 P0 r: E! y  U' i2 H3 {    {
4 @: _3 S0 e+ G" [        if (theSession.Parts.Display != theSession.Parts.Work)
: H6 Z" k5 q: h. W" N9 n# p% _8 g* _            theSession.Parts.SetWork(theSession.Parts.Display);& L* a, K) j0 B* j2 e
, A# Y, \4 f' v* d. z! A8 d

9 r6 i3 }! d! \5 F0 \        TaggedObject[] theBodies = null;
6 [$ t' T7 M! L2 `0 t0 }; g        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)
/ {4 L: E# H& K; c' `- s        {
/ [. L3 R+ r( }$ k4 H            Echo("Selected Bodies: " + theBodies.Length.ToString());
2 _8 F, P0 U9 l1 x4 s            Tag[] theBodyTags = new Tag[theBodies.Length];/ Z) \, q/ X0 X+ l2 S' d
            for (int ii = 0; ii < theBodies.Length; ii++)
! i3 B; m& c! o1 @( d5 ?                theBodyTags[ii] = theBodies[ii].Tag;
! e) s" E* Y! ]/ e0 J
+ f  f/ T" C; l1 ~1 C, _- |0 J0 q0 _            List<Curve> theOutlineCurves = new List<Curve>();
  g5 y: T& n6 g6 Z' r5 m% V- ~            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;
4 T5 v' {- a1 E/ a, W+ V            int loop_count;9 J9 _; Y  ^; L
            int[] count_array;
3 L) j# I" j% q1 i8 T1 C, i            Tag[][] curve_array = null;
' D+ w/ p( [  T* g- ?& \* P5 ~            double[] tol = new double[2];
* f+ B# j/ e8 V3 d
5 f9 R2 A  h2 q. w            theUFSession.Modl.AskDistanceTolerance(out tol[0]);% Z  c4 D' G4 |) J. P  X
            theUFSession.Modl.AskAngleTolerance(out tol[1]);: Z6 x+ r* a7 h* U# _4 N1 P

3 a- N+ s( O1 w            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,. c9 L& i& m5 u& {- Y$ {1 e
                workView.Tag, out loop_count, out count_array, out curve_array, tol);) _: I9 j. f: s, F. b

3 m  v! u8 m3 j1 j. @0 P' V5 W            Echo("Precise Outline Loops: " + loop_count.ToString());
8 A. g5 |- X5 r            for (int ii = 0; ii < loop_count; ii++)- z5 I1 f4 Q$ k) w; |( y
                for (int jj = 0; jj < count_array[ii]; jj++)
7 W$ \2 T8 H' r+ H5 m4 U                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));
" c0 V0 t/ P( M/ ~1 f: k2 M2 c            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());8 T& l9 X8 t" d0 _9 n, x7 h1 v

  {1 a4 R6 Z1 a* ]- X            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead 6 A0 p3 k$ b0 e# i7 m& [/ f( `
            int curve_count;
% M/ u9 K. O0 D- N, o            Tag[] outline_curves = null;3 F0 W( f* g) e2 S
            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
6 ?7 a; H% k: k9 ~0 a( ]                workView.Tag, out curve_count, out outline_curves);" Q) `6 O- F, o  A
            Echo("Precise Outline Curves: " + curve_count.ToString());
) f: u" d( D  y: v8 |            */; X4 t& `, q2 a) B) A; |* g
        }$ n( \5 h) U- w

% a( x- j  ]! h1 A  F$ B: o" P2 q7 K/ F    }[/mw_shl_code]
% U- d7 k; a' f5 ~[/hide]9 B! I1 w( Z# B0 H
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了