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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓$ q5 ]8 @3 p* g5 b# b
0 f: L6 C2 \  X; H9 n* g
UF_CURVE_create_shadow_outline (view source)! F- @8 U' }4 S. S5 g

  U) Z7 R  q  J$ [2 t( `Defined in: uf_curve.h
2 g* B9 t) ^6 w7 @! |
% w0 s9 \6 z6 Q! q3 C# l& e) S$ J" ^( S9 I* O* J2 c2 E
Overview
! b% s; c- v" W+ R- l& n0 g" _2 b# m% I* ^% [9 H* f
Create shadow outline for a given array of solids. Solids passed to this
1 e" ^" G% u( A. b3 l3 r; @0 hroutine must be on a selectable layer and visible. If created shadow curves # [/ V+ I! |4 s- a/ _2 l3 r8 j
can not form loops, please use UF_CURVE_create_shadow_curves instead to get ! u. q! O% U7 _
shadow curves. 1 V& A: K. k; V. @

: H& Q, R' a& f" @' S
: C4 k$ r* w  D$ K: S( i[hide]/ g0 r- h  Z; X/ H( W! o' m8 R# r

8 \: V8 [/ u: O! H  s[mw_shl_code=csharp,true] void DoIt()
8 l( B: o  x" C6 a    {
; g, T9 E5 A& B8 p! J        if (theSession.Parts.Display != theSession.Parts.Work)( z$ [, T; Z7 D; G8 O" W
            theSession.Parts.SetWork(theSession.Parts.Display);% m, v9 Z; O6 s) D

5 k* }$ G+ k; `+ `( L& @7 O. P' {" Y! R2 u1 D7 a
        TaggedObject[] theBodies = null;# L0 F( v  X6 p: m6 g9 e
        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)
  y# z: }8 I& _8 N  ~. t/ D9 C        {0 @) o. C4 g! \* n( [: b
            Echo("Selected Bodies: " + theBodies.Length.ToString());9 O0 ~( u) n) V+ j$ M
            Tag[] theBodyTags = new Tag[theBodies.Length];
# r# B. J* T6 f! k( ?1 W) z            for (int ii = 0; ii < theBodies.Length; ii++)4 @7 Y% L& L& k7 y# Q: P
                theBodyTags[ii] = theBodies[ii].Tag;
8 B+ `9 e7 p5 Y& K9 _
3 F% Z! Z. w1 c            List<Curve> theOutlineCurves = new List<Curve>();1 J  N: v$ e6 T, g
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;+ R( H1 M1 s' B1 B9 S
            int loop_count;6 a$ E1 \) G. T" a% n: j( [) [
            int[] count_array;
1 `  Z( Z' P0 M* x0 `6 ^7 A            Tag[][] curve_array = null;. k$ L7 k' W5 D: Q+ M
            double[] tol = new double[2];
# o( d; [8 L, U3 I  U& Y5 t- K! [
0 p# @( m/ U+ _, {+ X$ w, L% u            theUFSession.Modl.AskDistanceTolerance(out tol[0]);9 _0 z. x/ \: j2 b
            theUFSession.Modl.AskAngleTolerance(out tol[1]);+ d+ Y+ I. V5 B; D
! `6 J! ^. g( I% _6 W, }' v& |$ n
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,
* J- o% p5 F" N' j                workView.Tag, out loop_count, out count_array, out curve_array, tol);2 ~4 K' v7 j8 y+ j" t% s$ c
1 `& v6 ~9 V$ M/ s; w- W
            Echo("Precise Outline Loops: " + loop_count.ToString());
3 P- {* M& {0 x3 x2 ~/ f) Z            for (int ii = 0; ii < loop_count; ii++)
1 f  f& ~- t+ E7 Q4 e                for (int jj = 0; jj < count_array[ii]; jj++)( f* c! V8 a# |- X7 B+ J7 N9 F
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));
$ a3 ~' v& _3 e4 J% P" Q2 `            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
5 e9 ?" n$ E0 V; j- V+ d6 k, r5 T( {3 n
            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
9 ~' g7 H, d# O4 \7 v0 D1 U            int curve_count;
/ |: F5 k" n# J5 Y            Tag[] outline_curves = null;6 x* C  y3 P8 D; p7 }' e- D
            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags, ' q/ o0 D/ V# R% I! h: ]
                workView.Tag, out curve_count, out outline_curves);7 }7 I0 F' ^" B( V9 d
            Echo("Precise Outline Curves: " + curve_count.ToString());
2 Q1 l$ f. p3 M- {            */1 a  e9 E' v7 y& T1 ]1 p3 g
        }
* c& o4 I* a8 m2 P1 z" E# X( s% O* s9 O* \9 Q
    }[/mw_shl_code]
4 V) V: X4 X. E" T+ G9 M& X  }[/hide]
. z/ Y) P& Z) {  l& w% A+ `
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了