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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓
0 `* h7 L8 M( s3 C1 T4 \7 T
; l. z: m+ f6 `. h  g! @  i7 xUF_CURVE_create_shadow_outline (view source)) w9 J; P# S# b. J1 G
5 o, k8 r. E3 b$ f7 f: a
Defined in: uf_curve.h8 s3 ]8 x9 a' l9 c$ O6 R  u+ l% }
* g% T1 S4 o. h- J
! M" w5 u' [- N4 g7 q
Overview# U. U1 b% B. C; m& t
9 q& \3 X( V+ z4 k1 y6 s, ]& \' m
Create shadow outline for a given array of solids. Solids passed to this 2 @' |& L1 M( i9 x5 B. c
routine must be on a selectable layer and visible. If created shadow curves 6 z) c+ Z% \2 S% e% Q0 I
can not form loops, please use UF_CURVE_create_shadow_curves instead to get * R  k& k% p3 k1 e
shadow curves. 2 c6 p9 I) b' s- T# b# n- e1 m/ c
! H- s* q% ?" l9 b: \% w6 n
) N0 B- w. O* d7 U! Q
[hide], K3 q+ q5 Y! c+ h1 \% R4 S

4 e1 P) p$ C- r6 A5 c! u[mw_shl_code=csharp,true] void DoIt()
" {# k( {* Y2 G    {% c0 Y6 M& f8 j. b
        if (theSession.Parts.Display != theSession.Parts.Work)+ l! Q3 `- d; p: Y- w% g9 Y) y* v+ z6 p
            theSession.Parts.SetWork(theSession.Parts.Display);0 u" {! _  o' u' v9 |$ ~
6 J. S. N7 X. ]

$ u* T( O- P( }' x  Y' {/ K/ T        TaggedObject[] theBodies = null;
  k! P( [0 g( u5 T& V        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)
3 x1 M! G/ b+ j; {9 u% u, D        {
( M% ^7 {4 Y# n& [9 J3 a            Echo("Selected Bodies: " + theBodies.Length.ToString());8 g  Q6 O$ [! b5 O" a
            Tag[] theBodyTags = new Tag[theBodies.Length];
$ N/ a) k% g& c6 L- J+ L0 ^* u            for (int ii = 0; ii < theBodies.Length; ii++); k- c7 P/ b8 V
                theBodyTags[ii] = theBodies[ii].Tag;
' G% \5 w3 M% B0 P. d; |+ b! j
, W6 o# T0 R9 r# A% d            List<Curve> theOutlineCurves = new List<Curve>();
. B8 \7 d9 p% C! S) z' h% L            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;' n+ i) Y2 s& O) p; r
            int loop_count;# F/ b) R; D# e# y) y+ ~) y
            int[] count_array;4 G* G' h9 X6 L6 O9 e2 R3 b
            Tag[][] curve_array = null;& ]- F/ M1 i8 O7 c' \- z* ]2 l
            double[] tol = new double[2];, Q  h1 O/ k% F! ?: R7 k/ j+ i: d
# ]8 @; V- \& H7 y. A
            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
* N, p! T" d2 q* i4 T, a            theUFSession.Modl.AskAngleTolerance(out tol[1]);
1 S9 w" o& Y# ^* `3 W* x+ X/ X1 o9 b+ t+ ~+ w+ R) {  `9 g
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,
2 E7 h% A# L8 t2 o: d  z$ F( I                workView.Tag, out loop_count, out count_array, out curve_array, tol);
5 t  I' n- l4 v3 P5 Q) F$ A
  F9 J+ t' z, N" Y. N3 p% k5 A            Echo("Precise Outline Loops: " + loop_count.ToString());) }0 o. q$ k1 i6 B; ?( J. M' l1 c
            for (int ii = 0; ii < loop_count; ii++)3 `6 |( |/ F3 ~% M& p
                for (int jj = 0; jj < count_array[ii]; jj++)! A) h, W8 M2 i3 i  p
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));5 T+ B: y- h8 Y8 A
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());) s) H) N$ ?8 k4 m; ^1 }" H

6 }$ w; v" _6 b, A" L" `9 P            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
' d& \3 N/ e- v# D* z! [, @, I            int curve_count;
4 u7 V- W# T7 u" y9 r' X, C' R            Tag[] outline_curves = null;; D; a& C0 K0 G, f
            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags, 4 X  b4 E, l- _; g* j$ ~
                workView.Tag, out curve_count, out outline_curves);! D' w3 H4 k, T4 |
            Echo("Precise Outline Curves: " + curve_count.ToString());
- w% d7 X: J. W            */
4 z3 d' n+ a" K$ f        }
7 c& m/ g. L- Y+ t% a0 |: Y
/ P0 X3 j/ z) m- Q    }[/mw_shl_code]
9 B0 h- \. D  d* F; H- ?. V( u[/hide]' `" |+ a3 s% e
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了