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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓, r6 u" x0 |9 Z. b5 A

# u5 V0 Y& h6 }4 PUF_CURVE_create_shadow_outline (view source)  a9 O2 A( j9 k7 F5 ^6 Z- X

, u% |/ U4 {: p+ \$ ^5 ^/ kDefined in: uf_curve.h
$ z2 R4 w) F3 M2 Y  X6 W  N, E
6 E  M4 i  u/ Y, ~7 f
0 |6 R; e! N7 ]" x% b$ s6 Q8 zOverview
, X$ x9 T0 u1 l- @9 y1 u
. [, W  f  w6 A* H; R8 SCreate shadow outline for a given array of solids. Solids passed to this , P8 s  z- Z5 k! x
routine must be on a selectable layer and visible. If created shadow curves + {, x& i+ O8 ]2 }# A# W
can not form loops, please use UF_CURVE_create_shadow_curves instead to get
! u0 y* j# d9 h# I' l! U# Jshadow curves. " ?$ |. q% Q/ x# h  x
- L# M* l+ A& g5 _$ J1 a5 I8 T

# y' D& k9 {+ J+ d0 {& p' ?1 Q) F[hide]) h: |5 t; A) ~* `2 q) I$ r$ p. W
$ V2 k# Y4 v+ d
[mw_shl_code=csharp,true] void DoIt()4 e. T! z6 b6 T1 M7 E
    {0 W, R. V; b4 P
        if (theSession.Parts.Display != theSession.Parts.Work)
# T  w3 F0 H& w( @            theSession.Parts.SetWork(theSession.Parts.Display);
( f  p: s6 `8 j6 E7 L% c7 L4 m1 \" ]4 l- Z- U- u$ l5 x; ^
  R/ j3 Q: t1 h# ~
        TaggedObject[] theBodies = null;& N0 C6 b. M8 H5 I* ^% l$ E3 E
        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)8 e; u; \, ?. ]9 @0 d
        {
, f: E8 o0 a" k7 [            Echo("Selected Bodies: " + theBodies.Length.ToString());7 \* l' X6 U: l8 N! K/ G; C
            Tag[] theBodyTags = new Tag[theBodies.Length];9 I* ?' v1 @  V! z( P
            for (int ii = 0; ii < theBodies.Length; ii++)
' n9 W7 C% z2 C                theBodyTags[ii] = theBodies[ii].Tag;) d$ l- w# S! Z3 Y9 W& g! \: G
9 ^" l+ C# g2 l: ]+ _( T
            List<Curve> theOutlineCurves = new List<Curve>();  ~' t: a' M7 b( o
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;: m( `5 J. ?3 H, S* a" ~) ^
            int loop_count;
; {6 h4 x, o0 f( P; ~; d4 r            int[] count_array;
! @3 z& q6 z& ~, A) z5 f; b            Tag[][] curve_array = null;
; u0 F( O, ^: \( o0 o9 q! k            double[] tol = new double[2];8 A5 n$ i9 ?4 u1 \% I! A& {

  H' ^  e: V$ ?3 c  Q            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
8 {0 q# s$ v6 J            theUFSession.Modl.AskAngleTolerance(out tol[1]);% s3 h5 i+ J$ ^, w+ {& P

- r9 P. B( V( m; |6 |: Z, R" h9 i            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,! \( {4 p/ K5 i+ g7 `, k; p
                workView.Tag, out loop_count, out count_array, out curve_array, tol);
& C3 W, g3 ~0 T: P* i$ i, a
" D3 A# P7 k% l+ y6 u            Echo("Precise Outline Loops: " + loop_count.ToString());
2 @8 |8 z! ]1 U7 A            for (int ii = 0; ii < loop_count; ii++)
9 w* T% o; d1 T                for (int jj = 0; jj < count_array[ii]; jj++)1 i: B/ O9 D' _1 M7 \
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));$ x/ t2 y9 E1 D# a' _: `
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());. k, V7 ~! [) c. y" z2 A6 y+ T

4 E/ F$ U1 G2 Z4 G; t! O/ M            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
" `' {" g8 }: A6 w1 l            int curve_count;! R' b, C- a2 p
            Tag[] outline_curves = null;
. E9 K0 P- D  [9 I            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags, ) b- E  d+ t" Y, F
                workView.Tag, out curve_count, out outline_curves);+ K) P$ I7 E2 V0 h8 b
            Echo("Precise Outline Curves: " + curve_count.ToString());
7 f1 \/ D; Y2 Y, _: _+ I: v            */
0 N, |9 Q0 W) r, J$ ]        }" s+ b: }- |5 j: g% e
0 q& h: r9 {1 ~+ H
    }[/mw_shl_code]/ b3 {# E; X) P6 H8 g, _& w
[/hide]: e- q8 K6 w; D) U  \( B
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了