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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓. z+ a* L  w/ Z' l7 P
9 \2 j9 ?  q2 O& E7 x+ o& _! E
UF_CURVE_create_shadow_outline (view source)
! Q2 r8 E( z& o! j6 q% u/ G  a  h
! d" |; n+ l! U, r7 {. J' FDefined in: uf_curve.h: W# P9 B& |9 N: Q; e
, x9 |) v' B1 k  j# z( a) u
% \, ~+ m9 c8 {" E& K' [
Overview: j  C8 A$ ?  Y% |5 e, ?. ]
% g2 h9 U' J  i; j+ p) N
Create shadow outline for a given array of solids. Solids passed to this
* c6 h& _1 ?( U  f* Troutine must be on a selectable layer and visible. If created shadow curves , t* ?4 y1 R0 e& j7 X
can not form loops, please use UF_CURVE_create_shadow_curves instead to get 8 G& L# }, Y. i
shadow curves. 7 [: }0 c, w! }$ U7 ^5 m  O

9 J6 k+ x. x! x8 H5 Q* o/ P0 J  s$ `- K# H# y1 }- m! L9 S
[hide]
8 U/ z( ^6 y: P% z; V0 i! Q$ S9 C0 x+ ?6 g& R
[mw_shl_code=csharp,true] void DoIt()
0 S+ Y1 r) Y  T+ t0 |4 V    {
0 D3 ~; F/ b$ U; L        if (theSession.Parts.Display != theSession.Parts.Work)/ ^: A4 {) L& P5 x0 N) s0 {; Q
            theSession.Parts.SetWork(theSession.Parts.Display);+ c- Z) s6 |# V" U
- g0 M* ^; m3 X' S, F7 m: j9 {! Y* M
& M- W1 R! ?: \7 {" X+ ~+ S2 u
        TaggedObject[] theBodies = null;# m! u* x+ I! L# n/ w, v( z
        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)3 g# {+ ?4 Z5 O0 B
        {
  m. ]- a$ s' {  Q            Echo("Selected Bodies: " + theBodies.Length.ToString());
( f; l" W$ S1 H* U' B9 E! ]$ j            Tag[] theBodyTags = new Tag[theBodies.Length];/ `2 F: [2 \( _" z* `( h& o, A0 j
            for (int ii = 0; ii < theBodies.Length; ii++)
4 c9 V0 ?% Z( O* f. x" f; u                theBodyTags[ii] = theBodies[ii].Tag;
2 Z: ~; ]- G0 d" A7 P+ g" c
9 N" q3 |9 D! r$ d* q, \            List<Curve> theOutlineCurves = new List<Curve>();/ L; n" e+ G7 `! v& G% m" p7 }/ A! {
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;
, J& p7 |! |( O( F            int loop_count;7 `( p- }" R3 [/ I9 b
            int[] count_array;
5 f9 G. Y6 d$ s            Tag[][] curve_array = null;
% M, _( t5 \" I1 W: A, f& v& D            double[] tol = new double[2];2 |" A' S* ]+ s- y
6 c: t7 X1 J2 s) p. F. J
            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
, t0 R3 k) g$ g            theUFSession.Modl.AskAngleTolerance(out tol[1]);, I8 [( a8 y2 f: w. d* f2 w
* N3 g7 c3 p: Q$ E; e
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,
8 \) S1 W, E# S2 Q, v                workView.Tag, out loop_count, out count_array, out curve_array, tol);
( a. p$ z4 R1 m, }) P( @+ p1 u" ]
/ X, R4 e+ a( z            Echo("Precise Outline Loops: " + loop_count.ToString());
9 \8 }; W. ?6 G            for (int ii = 0; ii < loop_count; ii++)
. \' q" f& H$ G                for (int jj = 0; jj < count_array[ii]; jj++)
) Z" q1 Y8 z! ]9 w1 }8 T* c( D                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));
/ p- b! F6 h6 g& c; b/ |7 W            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());( K; u/ k0 M" Z5 X7 n9 ?

' s" P" \( G  E' L. T2 S            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
1 o. l1 E/ k2 o            int curve_count;
6 p9 j7 Y7 e. j" m- v" v/ V. |            Tag[] outline_curves = null;$ J$ v) U2 T9 y+ m
            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
1 |0 x( ?" S! @                workView.Tag, out curve_count, out outline_curves);3 [- H0 N; ~5 v) O( s
            Echo("Precise Outline Curves: " + curve_count.ToString());
( c7 s* f6 x! u3 Q2 s            */
' r0 _2 T' G+ a        }
% n5 r+ G4 S. w, k. ?3 i1 _" K9 }: @2 S* S7 W7 @6 e/ G# m
    }[/mw_shl_code]2 n3 H& P3 B! K
[/hide]6 g4 p, u" R$ o+ ^2 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二次开发专题模块培训报名开始啦

    我知道了