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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓* J* |# z0 W, k/ A" _9 c& e/ m
2 Z  s& M* x+ x9 u  p/ O: [" V) S
UF_CURVE_create_shadow_outline (view source)
- @! @0 D3 I  K1 K8 Z$ A
+ u0 V8 K+ V7 L$ ]8 F' o- N5 ADefined in: uf_curve.h
/ B1 r6 d  e- p" ?) Y8 z; G6 _ # E2 q) X: h0 p1 P8 P) q1 r

: m- ?$ [3 K$ m  v8 |' nOverview
3 F( W& M3 h4 q& V8 k" e- F$ p- y. V
( t5 r8 s3 s# f2 C& |Create shadow outline for a given array of solids. Solids passed to this
0 U/ u* g  w( i! Rroutine must be on a selectable layer and visible. If created shadow curves # E  V- }) t5 u' F9 y& V
can not form loops, please use UF_CURVE_create_shadow_curves instead to get
, {1 m. b$ U9 ^& J" m1 Fshadow curves.
" h. W* \! d& B4 K4 ~# a9 {
  u+ R5 K+ B$ T7 D" q7 I- k9 D  R  l6 {5 t: I
[hide]
% S& Z; N; h- n4 ^4 W: B
. k" I" V; x  x5 i5 @[mw_shl_code=csharp,true] void DoIt()
9 [( m$ H. t6 T: a& X, e& B8 C" l    {7 B* Q9 V+ `3 U* H9 n* Z
        if (theSession.Parts.Display != theSession.Parts.Work)3 T# v' P6 f" g! L
            theSession.Parts.SetWork(theSession.Parts.Display);
1 @- Q5 j4 p- J- \% \3 T3 o5 S
7 c* F( r2 Y) W2 h
- H: v. c( C/ E/ t0 Z/ `$ d; V        TaggedObject[] theBodies = null;
( U& M4 E3 E3 P5 G, U3 V& v; [        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)
1 _6 K& U2 `- V9 A# w9 j/ p' [        {
) O; @0 @5 |/ _            Echo("Selected Bodies: " + theBodies.Length.ToString());
; }# j3 g+ ]/ v; J% `0 E1 I1 s            Tag[] theBodyTags = new Tag[theBodies.Length];0 q* M9 K9 C: ]/ g
            for (int ii = 0; ii < theBodies.Length; ii++)! f+ L- M& M; I8 `* N2 ^2 P
                theBodyTags[ii] = theBodies[ii].Tag;; y  |: m3 ~) ]2 Q+ r1 Q
0 l& O0 U% z0 T( |
            List<Curve> theOutlineCurves = new List<Curve>();1 y# Q/ _! ]' v3 t
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;
1 [" O2 I. v4 E9 ?) l            int loop_count;
7 ?- v+ u8 Y5 Z0 P/ Z% n5 e5 t5 y            int[] count_array;2 \8 B4 G$ w- w
            Tag[][] curve_array = null;* ~6 B1 a$ Z9 r( P0 W# }: ?  E
            double[] tol = new double[2];
& \& T! ^. Z) L  J' e* z" y- F) @2 \3 ~- o& X7 s# R
            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
! ^4 @/ Q# }, f- B2 Z/ C. b            theUFSession.Modl.AskAngleTolerance(out tol[1]);9 Q0 M# S/ e- q9 t

- T/ C. I% {8 y4 m! Q            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,/ _+ ^7 \. }- O5 \0 c" x, I! y$ @
                workView.Tag, out loop_count, out count_array, out curve_array, tol);$ n2 ~* x, S9 o% e# b7 \; _' ~6 z8 F

& b& ^- B+ ]( D2 x$ P: }            Echo("Precise Outline Loops: " + loop_count.ToString());
6 K) R0 C* k( V7 Q            for (int ii = 0; ii < loop_count; ii++)
( ^' H. ?1 T7 \                for (int jj = 0; jj < count_array[ii]; jj++); g: j1 }0 {9 g$ ~+ }
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));
1 `: u" G9 d7 K( X. C7 _" R            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
- b& l+ ?& i& ?
" C6 e' U: C) G% u, s            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead ! F" H% K& ?/ `  |2 x9 n- Q
            int curve_count;# \& }* l7 U7 M2 H8 Q
            Tag[] outline_curves = null;
( N( q; x( {+ y* _) J, Y; J            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags, 1 |" e+ O9 S7 ^, I; S
                workView.Tag, out curve_count, out outline_curves);$ a2 i' x: C5 n' g5 F0 U6 c# A5 }
            Echo("Precise Outline Curves: " + curve_count.ToString());9 Q' m/ r- y. B
            */9 K+ B- ]4 P& A0 M0 G+ E- f
        }9 q8 e+ w; r- t1 l

. r$ V( E. X3 x! {: Q7 d8 y    }[/mw_shl_code]+ i: s% l! X7 J# }9 m$ X
[/hide]# N) p9 M' y- I' h1 Y
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了