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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓
3 q2 s: B. X' b: g* V- M" |7 Q3 z$ u2 i! w' s/ N+ V
UF_CURVE_create_shadow_outline (view source): i2 j' t/ I5 l
0 `& X; z5 ?. z
Defined in: uf_curve.h
2 Z* v2 v" P) c! ~( B! G 6 j) O6 K6 U1 Q2 u7 g% P

* u: {; M5 \7 {/ ~+ D" l- t+ l+ JOverview
, i+ J- C: @: ~) N  G8 i4 f  d$ `  C
Create shadow outline for a given array of solids. Solids passed to this
+ j9 g2 f) z8 l: W/ froutine must be on a selectable layer and visible. If created shadow curves ' B; t& i( w; O' |' c
can not form loops, please use UF_CURVE_create_shadow_curves instead to get
, }5 q' O4 n1 D( F) {6 c6 S5 qshadow curves.
* Q2 F2 B$ @" D! v- g1 b$ k6 x. c' I8 F* t  H6 r. h) h
" a9 E4 j8 }: j3 ]! ]* W
[hide]' ~* X6 A: h  q7 r( `

% i* z; P! j+ j& h; O* w5 I4 l[mw_shl_code=csharp,true] void DoIt()% i" Q. b* {% I3 L; l9 F
    {
  X6 f% g, g/ b& G9 ~$ u        if (theSession.Parts.Display != theSession.Parts.Work): w  d; w  L8 S6 C9 L. w
            theSession.Parts.SetWork(theSession.Parts.Display);4 z7 R8 Q2 r# R7 g
) B7 B0 ?' G- {: \! Q

( P" h3 t2 H8 Q) B* C" p' I0 b: p8 B        TaggedObject[] theBodies = null;
8 e. [& Y/ l; @        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)5 f% N* g6 e9 `/ \) L7 {3 Z5 M4 N
        {# {' K: r. P% T5 {3 w4 [
            Echo("Selected Bodies: " + theBodies.Length.ToString());
) l3 A( l* w1 t            Tag[] theBodyTags = new Tag[theBodies.Length];, R; u: y' a: O2 i4 }. S+ H
            for (int ii = 0; ii < theBodies.Length; ii++)5 _: G& K* ?4 h/ s6 ]* ?9 R5 B
                theBodyTags[ii] = theBodies[ii].Tag;
9 z" ?, q3 h6 y4 p' @, `0 _: I6 C
% Q$ I$ r5 d% M2 t            List<Curve> theOutlineCurves = new List<Curve>();
6 Y9 Y7 @  [( s& j6 N            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;
" L* I- }. J4 c9 m            int loop_count;6 c3 @1 I- }( ^( Z2 S: [+ P% i+ c
            int[] count_array;
  E. Q  \* J1 {8 k# M$ R5 F7 }            Tag[][] curve_array = null;
8 F1 B. @6 y* m" P- h3 l            double[] tol = new double[2];
8 u6 g# l6 k  Z7 K7 ?
+ M& G& ]/ S, k" C% J: k9 @            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
1 O% E7 x, D1 j) _$ ?1 R5 t$ t            theUFSession.Modl.AskAngleTolerance(out tol[1]);
" u5 {& b: f! i, Y- v& H! ?+ z. |8 P$ i+ E2 q
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,
: h) c+ v0 c' W" a! c- P" I                workView.Tag, out loop_count, out count_array, out curve_array, tol);
# N& K" K1 W& `+ e& B6 x1 ^/ r" Q6 N! J* z
            Echo("Precise Outline Loops: " + loop_count.ToString());1 {& _; v4 b$ m2 I* t
            for (int ii = 0; ii < loop_count; ii++)
( [+ d; i0 Q9 S  ?) o                for (int jj = 0; jj < count_array[ii]; jj++)$ a8 d6 W: k; W% M! m8 t# M
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));+ Z1 D% W  y1 N# q* D, u) S
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());& e. y% r3 q( F1 ^  O* R3 O- o7 ]
9 |+ ?7 ]6 c9 K9 `
            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead , E9 B7 h+ W# j4 ^( P
            int curve_count;
& Y# Q& y  N: S2 e1 r, X            Tag[] outline_curves = null;& H8 p5 `& {3 K4 j( E3 v; W
            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags, ! L2 o( Z' \0 |" Q1 W/ b; b
                workView.Tag, out curve_count, out outline_curves);
5 M! s4 ]6 I) d# G1 L            Echo("Precise Outline Curves: " + curve_count.ToString());; W; e' z4 q7 E" L- }
            */
+ m1 o( \& f6 b! u+ e9 d8 _        }
5 [; j9 S) E3 H# c) \8 o4 q& R/ C, }! `  a' `
    }[/mw_shl_code]  w7 C) Z. {- B  w8 H
[/hide]3 R! @$ t$ }0 \1 [# |! O
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了