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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓
- l. c& D* D* Q# f$ X7 E( q& W& D  F. }
UF_CURVE_create_shadow_outline (view source)
6 h9 W" i( A" C% [
8 S$ X% k$ S4 J) fDefined in: uf_curve.h6 c# F" e& K, X0 B) e

( i* q. A3 r* W
+ }" V7 B% i2 ^2 ?; _Overview3 e; ^1 D% u# ]  R1 v( X- }

# H' ^9 M* {1 W) X: b$ R0 T2 dCreate shadow outline for a given array of solids. Solids passed to this
: d) r4 U* @* C+ d# f# L6 nroutine must be on a selectable layer and visible. If created shadow curves
+ I2 o+ S& \, X2 S7 B5 n$ N! X# k7 p$ Ccan not form loops, please use UF_CURVE_create_shadow_curves instead to get
, J- b: y" _! ~' Vshadow curves.
/ M0 ]7 {/ u+ [% V! \. X2 }9 ?
$ E( j( W  y- V; _8 U8 x
4 C6 S1 K$ i& U0 L6 L[hide]' f% c) l* q" x$ K; \0 z4 G& I

& ^$ E1 [1 i% J2 z$ i6 \- c% Q[mw_shl_code=csharp,true] void DoIt()- p9 E( F& ]8 |: Q: c; I1 c
    {$ p! v/ T% v  P* ^7 d' Q( q
        if (theSession.Parts.Display != theSession.Parts.Work)6 C0 b# {! }8 |
            theSession.Parts.SetWork(theSession.Parts.Display);
* d1 w% ]8 b1 i: w+ _
5 r8 s2 j! m. {, N7 I# U
" B" M9 v5 [5 p# F$ T        TaggedObject[] theBodies = null;. Q- z( B& k4 z) Y" M: O$ l
        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok). a& P, T/ J" g: @$ A; N7 |; c6 ~" C
        {9 v5 u; f. J2 Z+ z2 b% h
            Echo("Selected Bodies: " + theBodies.Length.ToString());% m: N9 o1 q5 M( [1 W4 q; x
            Tag[] theBodyTags = new Tag[theBodies.Length];
' A& M, X* H6 \4 {0 E2 i8 O* h            for (int ii = 0; ii < theBodies.Length; ii++). [* q: _( i: P
                theBodyTags[ii] = theBodies[ii].Tag;
7 _( e3 B- n. p/ t# B' Y' o/ b/ e$ k0 ]5 j$ X$ Q3 `5 G
            List<Curve> theOutlineCurves = new List<Curve>();9 A- N& x. c% \- o- W( ]4 D
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;# Z% l2 ?3 i0 \) Q& k  o- |
            int loop_count;
1 Y6 C) L) N8 ~  R; f* Z6 B/ i            int[] count_array;
  u# l' X: n1 L) `$ B/ n# u            Tag[][] curve_array = null;
% r% R: }7 b* S! ?9 {( y. J            double[] tol = new double[2];
4 i" q  ?9 Y' M% L' y' q9 Y1 F; E  N8 g
            theUFSession.Modl.AskDistanceTolerance(out tol[0]);3 F# _" s. {; ]2 x- F$ P) e
            theUFSession.Modl.AskAngleTolerance(out tol[1]);* l6 N, t& f. P2 n$ F' W3 c
5 [! V4 C+ ]0 ]
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,
* r; m" _  d- p                workView.Tag, out loop_count, out count_array, out curve_array, tol);
1 J& e3 d4 S8 S2 _% I& j! x* M
, I$ ?0 U4 K0 b! K. Z            Echo("Precise Outline Loops: " + loop_count.ToString());* W6 S2 E2 M4 W* ?
            for (int ii = 0; ii < loop_count; ii++)4 {2 m% D+ {& b1 q. E( L
                for (int jj = 0; jj < count_array[ii]; jj++)6 ~% `" K8 Z/ |# x4 i6 [+ f$ k" d
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));6 x- K2 ?5 \$ G+ T( J: R  b
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
0 Y& i+ [7 o' q
: e+ V* B1 i8 _1 c            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
9 w9 c3 f$ H5 n0 I            int curve_count;
9 r, v0 g* A) J% N1 M" Z! w) x            Tag[] outline_curves = null;/ }. n% a( L$ M2 T; h+ R
            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags, ( Y$ j; r* v# M
                workView.Tag, out curve_count, out outline_curves);
& n- S! y6 V3 H: p/ [* ], l            Echo("Precise Outline Curves: " + curve_count.ToString());2 }" A! |, h( I( F9 }1 _# t7 L
            */
* G4 ?5 m4 h- F5 Q" z/ Z5 S, M, G$ y        }2 G2 M" x  Q9 `# R2 p3 e. A9 f

* g0 \" u' @  }$ W$ |; A* H5 Z    }[/mw_shl_code]
! K/ ]+ w( B! D# Y0 U& L) R5 i# J: Z[/hide]
# J8 i+ t  c; T, b
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了