PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓! [2 h  ?% B! i' [: f; t- X
3 y% N, W6 M6 a3 M- B' F& ^5 n
UF_CURVE_create_shadow_outline (view source)' q  w' {/ J. s+ Y$ f1 b0 |# k

" W8 h! q& f6 u: uDefined in: uf_curve.h# \: @- z) f7 P3 e

( Q1 q. q+ |& w1 Y0 Z1 n; [" L8 q. S0 l: c0 e0 a7 [
Overview$ z! I! ^5 t  V. ^! e& Y7 j
9 P1 _4 h/ T9 W  ?) J# l' X# y
Create shadow outline for a given array of solids. Solids passed to this
' f, P  J- b9 e5 B' Lroutine must be on a selectable layer and visible. If created shadow curves
% Y$ W! |! B7 I4 @, C" Mcan not form loops, please use UF_CURVE_create_shadow_curves instead to get
2 f$ e3 X; h. f0 {, `6 v9 Yshadow curves.
/ ~6 ]+ v* |8 |: s( o( b8 Y8 ~
$ H4 f. }9 x7 r9 \5 _
: Q9 V2 G( a: C+ v8 P" ?[hide]
& n+ L3 ^" B0 w" o; x" m5 P
2 C6 d) u+ I* L+ Z- E) A0 Q8 T' s[mw_shl_code=csharp,true] void DoIt()
* O  h: S. n* d, u    {) I' ^8 E8 s5 ]5 c4 f! L4 n
        if (theSession.Parts.Display != theSession.Parts.Work)/ ~. q6 m/ n. ~5 S5 B* _& C, F! j8 F( |: Q
            theSession.Parts.SetWork(theSession.Parts.Display);
. E' f) [9 ?$ x+ v% u5 J* E9 O0 p+ L  W

8 z0 M* v  [% g8 @4 S  F        TaggedObject[] theBodies = null;
$ u+ M: p+ ^4 d( H/ S8 A        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)% k) C4 n0 O" z- ?
        {
) ~' b) O% l* R, Y: C9 x, e5 [' _1 Y            Echo("Selected Bodies: " + theBodies.Length.ToString());
9 B( P6 x. D( c+ j1 u' O. Y9 ]            Tag[] theBodyTags = new Tag[theBodies.Length];: h+ y) u$ N& b0 o
            for (int ii = 0; ii < theBodies.Length; ii++)) P# @( Y" y5 ^4 p" Z% Z- d, b7 V9 W
                theBodyTags[ii] = theBodies[ii].Tag;5 K" C6 l" @9 A5 e

( G% @- f0 j" n. Q* l            List<Curve> theOutlineCurves = new List<Curve>();& Y; U; d( q$ S4 v6 h
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;. l6 Z1 {! @+ c. O8 ~2 q
            int loop_count;" P/ R6 x. ~0 T$ O3 t
            int[] count_array;0 @( d' J1 T3 K, e: f4 r# ?
            Tag[][] curve_array = null;' O5 A! ^  b3 o# l6 N
            double[] tol = new double[2];
( _% B* Z" ^) D4 ]1 P7 T+ a( B: L$ i* C# @% U. I
            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
$ t, ?8 r/ G9 W& [% _# b  C            theUFSession.Modl.AskAngleTolerance(out tol[1]);
3 |; P+ X6 ~; E; ]
) K& B1 s8 I/ h% [            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,
% t/ Q& S) ^& n" }) ]" [3 O                workView.Tag, out loop_count, out count_array, out curve_array, tol);
/ _8 q5 b1 h' K+ [! C! U
. W3 |: ?" W! U" u$ r1 z3 i            Echo("Precise Outline Loops: " + loop_count.ToString());+ _. ?+ w* ]4 e5 S9 \' v
            for (int ii = 0; ii < loop_count; ii++)' h( s1 n  K; S* b
                for (int jj = 0; jj < count_array[ii]; jj++)
; ~, H; L/ R: ]; s) e% x2 ]                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));/ k2 j0 g" n. u( s/ P/ ~" }( d
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());' |& h& {8 r6 Z0 u9 k7 K* Z7 b
) j$ [. o+ S" u+ q: n3 @
            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
: a; ^, F9 r2 o  C            int curve_count;
6 z( H" F% Z: H0 m/ s% R( A            Tag[] outline_curves = null;
3 k) H* ]" h9 H' t9 \, K1 S            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
! _% I& a3 `( N1 f4 Y4 ?  J                workView.Tag, out curve_count, out outline_curves);/ y( Z: T% Y4 j6 k: u
            Echo("Precise Outline Curves: " + curve_count.ToString());
8 X/ B: }7 C6 s            */
: I8 V: t; F6 P( _        }+ n% W7 F8 y$ P. V6 X/ Q
2 I; p5 Y' t* y5 D2 |
    }[/mw_shl_code]0 u' X) R9 @! ?+ t. Y
[/hide]2 O5 R% }% k) v+ v" z
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了