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 1906 0

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓2 D8 |  n& D  K, D  R3 J0 x

# F/ h4 _( I1 ?* o- f" v9 qUF_CURVE_create_shadow_outline (view source)
* r  h7 h4 R# H4 V3 b( ]
6 `0 T* ^+ U3 _  m) WDefined in: uf_curve.h. y8 r6 Y1 Y! ^
& u) Y' o9 X$ p5 ?/ r- _5 s. N
5 R. C) w9 m: Y" @$ l
Overview! j0 C! p5 z% u$ [& ?  F
+ ]$ |, ~8 `) Q7 f9 @0 d
Create shadow outline for a given array of solids. Solids passed to this
! V  i; K% X4 ^routine must be on a selectable layer and visible. If created shadow curves ( R! j7 O# F+ f* C, `! o4 d: m; f
can not form loops, please use UF_CURVE_create_shadow_curves instead to get + G' n' W7 W- j9 U9 c; T
shadow curves. + T1 k+ n- T3 `) L5 P# p

- W/ h9 M' D5 u0 K  m6 O4 t# n- i$ k' `4 t2 x
[hide]
2 |- k; d0 g4 N/ C, G% T" ~
# D& ?  z$ p0 x4 j& X5 v+ D[mw_shl_code=csharp,true] void DoIt()5 Z5 P# \( @+ M7 @
    {/ p4 y  X3 V( }8 C2 k8 H
        if (theSession.Parts.Display != theSession.Parts.Work)
) u3 R* e& ^3 U4 M8 C# X2 M            theSession.Parts.SetWork(theSession.Parts.Display);, Z) P: L# y% x- P$ _7 l

4 |: _9 w0 G' q  g& {9 a5 S3 M
) G. ^' H- V/ R4 a6 X4 f+ C9 y# F. U        TaggedObject[] theBodies = null;
4 c5 G) s! w. V" r- I8 @$ f        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok): u9 J0 r3 V2 [# i$ E/ n  S
        {
* R8 l- x# o& c2 O: {3 T            Echo("Selected Bodies: " + theBodies.Length.ToString());
) j, z/ y1 C) S* P7 ^            Tag[] theBodyTags = new Tag[theBodies.Length];( o. k0 ?: s- B
            for (int ii = 0; ii < theBodies.Length; ii++)
1 e1 b% j2 }4 @3 }                theBodyTags[ii] = theBodies[ii].Tag;
7 Y' M. W4 D$ k' v- X0 |
' A$ I9 F: E; A+ |7 j4 X7 C1 k$ W            List<Curve> theOutlineCurves = new List<Curve>();
' N  m4 P5 d* i' E* a, k# j/ t2 z            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;; U- x6 t' f2 w7 p3 r2 d
            int loop_count;3 _+ R  m1 D' m8 w+ Z" D. E8 g
            int[] count_array;
. l: K; M# f: A  a* @& {            Tag[][] curve_array = null;# y8 y' X9 ]* m3 L0 x! ~& B: T
            double[] tol = new double[2];! I5 `) i. o9 Y

! G( M# A9 y/ |5 h            theUFSession.Modl.AskDistanceTolerance(out tol[0]);% e" d1 f' E3 j5 }( f- t
            theUFSession.Modl.AskAngleTolerance(out tol[1]);
  D6 o4 n; s5 T8 |& B$ e$ o" x2 i- v7 f% T% o& n; O' ?
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,
+ V) T. E! T( d7 C, T0 w5 j, l4 m# @                workView.Tag, out loop_count, out count_array, out curve_array, tol);
* y9 }0 E8 R% n& k! F; j1 f) y( J, S" P4 o7 ?
            Echo("Precise Outline Loops: " + loop_count.ToString());( M: U% P9 ?- k+ A
            for (int ii = 0; ii < loop_count; ii++)
! C4 o( ~8 y1 f                for (int jj = 0; jj < count_array[ii]; jj++)
3 f3 `# W2 |9 @' |$ `                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));. M: i3 `' ]- c9 \2 s4 b5 }
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
5 Z) |' q9 Q. J6 x/ [) S7 b8 e) t$ s+ J$ D7 b; N4 d
            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead 1 h5 w8 o! T; r8 c; \5 G2 }4 X
            int curve_count;
5 _2 }2 K  M: }3 O            Tag[] outline_curves = null;. q( ^0 D$ N% T. D
            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags, 4 R) u3 j0 C) M; Z6 C7 L
                workView.Tag, out curve_count, out outline_curves);& \3 j- C8 C2 m+ N+ l9 G4 r/ K
            Echo("Precise Outline Curves: " + curve_count.ToString());$ n, v3 g: k) L  w7 n* ?; K) R; f
            */
9 v0 \0 W; M) |3 w, p% Y        }
, ~0 _/ T- g+ V
; j( _: E& U& I. h& d" H9 N) N# X    }[/mw_shl_code]
. a9 C, X/ L, J[/hide]8 L4 x6 h, ]! C1 w
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了