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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓3 v' `: R) L$ ^0 ?( b3 f$ T# L

( d$ o, U3 d, C, lUF_CURVE_create_shadow_outline (view source)
% `1 y1 k: g* a" O. ~: _ & c4 a4 X4 k! K
Defined in: uf_curve.h
% \* P% U* m( O6 \
0 V" Z7 t3 [) p8 W; K  l: P& s/ d' ~& Y
Overview0 j0 R- l% g( @% [5 ?* p8 J

9 P7 d- [, N* f( WCreate shadow outline for a given array of solids. Solids passed to this . k$ V" d& _* c
routine must be on a selectable layer and visible. If created shadow curves # V" W& d' k, o5 e
can not form loops, please use UF_CURVE_create_shadow_curves instead to get 3 m  h# @& t4 u# Y1 j  U
shadow curves.
6 t- Q5 E# Q/ Q4 f9 b1 `: q% S( \* |
# `8 v( Y2 D4 L5 C# c
[hide]
" ^1 l$ X, t+ @( C; S5 Q& i: l3 u8 w0 K3 C
[mw_shl_code=csharp,true] void DoIt()# m4 c1 _' c% v! `
    {
$ X) y0 Q- o6 n% h+ Q8 `) w        if (theSession.Parts.Display != theSession.Parts.Work)6 j9 P/ f, b# O- Q
            theSession.Parts.SetWork(theSession.Parts.Display);
9 m9 B, R* I& n! |( {7 i( _5 k
% @! c4 J; ?! U
/ X9 O: t, H% ?+ h, D% W        TaggedObject[] theBodies = null;, ]7 e( D$ {/ g
        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)+ n1 o' v6 g) U4 \" [' @7 x
        {" K( ?, R& ]$ Y, Y' A
            Echo("Selected Bodies: " + theBodies.Length.ToString());. C9 V1 J# v. Z" V2 Y4 E5 @$ {
            Tag[] theBodyTags = new Tag[theBodies.Length];
5 S# `; ~' Q  J- _+ m: V: [0 c- z            for (int ii = 0; ii < theBodies.Length; ii++)+ u& u  }* A1 W5 [; e2 D( z' ]# I
                theBodyTags[ii] = theBodies[ii].Tag;/ J1 x2 C+ [: u  b6 E% v/ I3 S

) K7 ?- ~+ o2 |) z4 P: v            List<Curve> theOutlineCurves = new List<Curve>();
( j3 X6 |! [: C$ n& ?            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;
5 t. w( k. w, d4 b            int loop_count;
* u. R6 \; n9 ~$ z; ~            int[] count_array;
. b. B3 q/ i! @9 r; Q" X            Tag[][] curve_array = null;" N) v3 O3 ?: @4 @4 Q
            double[] tol = new double[2];8 D0 N, d7 Q& }0 K9 T
0 k2 N$ Z+ }& q- _0 z! y
            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
# m7 H7 T; G# K# V5 p            theUFSession.Modl.AskAngleTolerance(out tol[1]);1 K3 P4 [9 k" p- q  f1 Z6 N

0 b6 B. [3 T8 n  X  d. [5 L            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,/ ~3 F2 h5 V+ H% a3 u) \
                workView.Tag, out loop_count, out count_array, out curve_array, tol);/ }( Q5 l( z+ W5 z

" g0 [- a  q, k/ H            Echo("Precise Outline Loops: " + loop_count.ToString());% U" ?3 s9 {4 X% R$ \: d
            for (int ii = 0; ii < loop_count; ii++): K8 j( t% P% X- R- u' q; @
                for (int jj = 0; jj < count_array[ii]; jj++)+ p( n8 G0 w' I& X9 x
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));6 U! l0 ~' H# C- A- B# E
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
. E# l2 l) [- s" o3 H
. f6 `3 e0 t# q: I+ b+ z. ~" ~/ S: v9 d            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
) O, s0 R. c  J5 t. o, F            int curve_count;
# K" y* h* H9 _' [! T4 J2 c            Tag[] outline_curves = null;
4 G1 E: o0 C' a            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags, " f- N& a, k9 K; s4 q1 r
                workView.Tag, out curve_count, out outline_curves);- J  j) f  X, L# x) [7 n
            Echo("Precise Outline Curves: " + curve_count.ToString());6 z2 b( k, I+ b8 T( Q! w
            */
' ?& x6 \: P8 d/ k! `/ g        }7 l% m5 v$ d6 D1 d8 a
- {, `$ g8 s9 M* s4 `1 q
    }[/mw_shl_code]
$ F1 o# Z1 F9 q7 z3 I0 S[/hide]
% @# J. w% ?* P- o0 o0 q+ 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二次开发专题模块培训报名开始啦

    我知道了