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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓: D' Y% g( L' m$ G& D5 T' [' k

; R' S( a- x. ?+ }2 a' B' mUF_CURVE_create_shadow_outline (view source)
7 l+ @5 L4 p2 o% K& I8 ?
2 F4 `! L0 t8 O& l9 D( c( c7 G* @Defined in: uf_curve.h' m9 H0 n# I& S* J1 V$ a

% m8 V0 U- v6 z# z8 n  w
: A6 T* g( C; u0 E4 `Overview
9 w$ z0 a8 c1 s# k* I. A) Q; R+ h5 ^" D/ ^6 l7 d7 ~* G
Create shadow outline for a given array of solids. Solids passed to this . d, b) n7 w) {% Y& K+ f! \5 z- Q0 ^0 P
routine must be on a selectable layer and visible. If created shadow curves
& r1 Q( T; {/ c+ V6 ~can not form loops, please use UF_CURVE_create_shadow_curves instead to get
/ f4 d1 g' r" u& _" @! qshadow curves. ! s$ K& e& X1 @- \$ w2 l

: k9 K7 N; Q! k" D7 l4 u+ b# h5 r3 e" `5 A" j+ b- A( ]
[hide]
1 P5 v! ]3 R, q+ t' x
4 [% w, _  [( _3 I[mw_shl_code=csharp,true] void DoIt()
7 g7 M' f" j, f    {, C$ n. F7 O7 P4 s4 G
        if (theSession.Parts.Display != theSession.Parts.Work)
4 _: O7 x- H( X- ^7 m# I            theSession.Parts.SetWork(theSession.Parts.Display);7 l6 x( @8 x. C' \, @1 H" b

6 |5 y6 c5 c9 N7 u' L
' |$ X5 k& m. }6 _5 ~7 y        TaggedObject[] theBodies = null;
! o6 D6 ]( w; x3 c; J# U  _! Q$ V        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)- z. A4 M" Q0 \1 F& t  G, z
        {2 u7 @6 @( G. Z1 a5 A
            Echo("Selected Bodies: " + theBodies.Length.ToString());% @5 x5 G+ E$ J4 ]4 {& A. L
            Tag[] theBodyTags = new Tag[theBodies.Length];/ g! W7 e. v' h, Z' _
            for (int ii = 0; ii < theBodies.Length; ii++)+ M1 H6 M1 \# Y- u9 b8 k& `/ E
                theBodyTags[ii] = theBodies[ii].Tag;
  ]+ p/ j1 o! X
6 u2 e; m$ N2 n; {4 o8 W            List<Curve> theOutlineCurves = new List<Curve>();) c5 r8 t, i& a  x9 m7 l
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;7 ~5 R3 F6 @2 v
            int loop_count;
9 U3 I$ x8 d8 s            int[] count_array;: H0 l. `0 r9 r& x. H! a+ T
            Tag[][] curve_array = null;# R& W- y2 a4 s0 _$ v" P8 `
            double[] tol = new double[2];
7 O" J" B, b* u5 ~( M. D$ }$ F0 V1 z# R6 U- ^# V* J5 ]4 w
            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
: K! a0 E+ S" v  r/ k' ?" B. g' D            theUFSession.Modl.AskAngleTolerance(out tol[1]);! j5 q$ h% t, t3 f: ~3 D
0 g# A. m7 r0 ?! @
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,
# X9 j/ M5 e- L9 h3 F- i, P, l0 L                workView.Tag, out loop_count, out count_array, out curve_array, tol);
0 z, U/ Q1 _' Z) h$ R3 ?* I" a/ ]6 W  R/ l% T
            Echo("Precise Outline Loops: " + loop_count.ToString());
, P! Y. S1 l7 w  s6 i& j& v            for (int ii = 0; ii < loop_count; ii++)2 C' X+ E6 A# U3 d$ d
                for (int jj = 0; jj < count_array[ii]; jj++)! q- t2 K7 C4 H. M
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));
  m( E) L, P# D1 U& ?' l/ \            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
7 G9 a) H; Q3 ?6 U5 W0 H4 n' {$ r8 j9 p( m
            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead 5 M( z2 B6 j1 K) B# ]: |
            int curve_count;0 ^* K) z( q2 S$ N
            Tag[] outline_curves = null;
8 Y7 x) l- ?; D% \5 z+ h            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
; ~- U0 G. o. Z3 e2 b& C2 R                workView.Tag, out curve_count, out outline_curves);
9 V7 w8 B+ F! J& b9 X            Echo("Precise Outline Curves: " + curve_count.ToString());
% U2 m  g3 r1 E1 B$ c/ s$ H            */8 C- \+ J: n/ y9 h# e- L0 ]: {6 r5 |
        }
, Q# N1 h/ b, M* h. n6 ?
" R. u+ ^# Z8 `9 l3 r9 A    }[/mw_shl_code]* o2 e' ~6 `. C( b
[/hide]' |" e8 u3 a4 l% Y5 X5 S# c
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了