PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓0 m- a/ C: U# g6 H2 ]. u) G

: S* }8 Z5 j: ~$ n7 JUF_CURVE_create_shadow_outline (view source)9 ^& C# S5 N/ a# @% c+ |/ t
$ k' u! e( O' {
Defined in: uf_curve.h
- X2 N! ^/ h: E4 M1 Y
2 N0 }) G6 W& B  R7 W" ?- W
! K7 |# y/ }! E6 F  p, HOverview
: I  L: E1 O- n, h7 l2 s
/ {# h2 {- H3 ]# p7 C& x9 f" ~& cCreate shadow outline for a given array of solids. Solids passed to this # e9 u, E# d9 ]" X1 Z! p
routine must be on a selectable layer and visible. If created shadow curves ! [1 s" ?) q; h0 w0 @5 g$ {+ o+ I5 m
can not form loops, please use UF_CURVE_create_shadow_curves instead to get . A9 W+ S( w( L* s/ ]
shadow curves. & d  i' d0 @& J& I, ?4 C6 K

) b1 q4 H8 w3 i* h2 S- J. b' v7 I4 V* _& H8 Y
[hide]+ E& v. V+ h/ U' e
; {# {& h& _! O
[mw_shl_code=csharp,true] void DoIt()/ B# Q: x# n5 r2 A, k
    {
/ L- _; C: c4 \5 M+ c4 R        if (theSession.Parts.Display != theSession.Parts.Work)2 c) T: o; k* F+ c' O! F4 G
            theSession.Parts.SetWork(theSession.Parts.Display);
( o" P, @& n6 R0 ?  c
- [/ z$ L1 X: `3 o
5 _( O( x# |! _" t( ~. b7 {0 g  O( H        TaggedObject[] theBodies = null;
: ?. o  f' x6 z7 T* e        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)
+ R3 N9 R' q7 b) I$ b; W7 V        {
0 ~' G" w7 Z5 {            Echo("Selected Bodies: " + theBodies.Length.ToString());. o, ]4 n* t# O: S. @2 d
            Tag[] theBodyTags = new Tag[theBodies.Length];
0 [& D/ N% M9 [9 F5 \            for (int ii = 0; ii < theBodies.Length; ii++)  U; ~# U5 H$ A' ]
                theBodyTags[ii] = theBodies[ii].Tag;$ z: d4 D0 X. m2 k  L. z; c  I9 }+ f) D

7 r: ]4 o% M/ ~4 D+ t" g: i            List<Curve> theOutlineCurves = new List<Curve>();
2 }4 \+ b1 v  T% ]% S: S, K            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;' a# c! x* R* I  @# M; ~
            int loop_count;9 B' G0 w) ]# P
            int[] count_array;6 p% c5 ^3 @* e$ `# R" _& s) g4 i
            Tag[][] curve_array = null;$ |- Y, G% G! r3 I& V. {
            double[] tol = new double[2];
$ G- G( ^2 n( j# v! U) ~( ^
+ q3 B0 u$ p8 }# N! J            theUFSession.Modl.AskDistanceTolerance(out tol[0]);" o$ m, h) J6 q0 D+ _
            theUFSession.Modl.AskAngleTolerance(out tol[1]);/ N& y6 E7 k8 @. e# k' s% k
# s' _" G' S! F# C# r7 h
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,
0 h' H3 ~. y& G2 J; a$ |5 i" h# l# @                workView.Tag, out loop_count, out count_array, out curve_array, tol);/ l  F: f- d7 H: _
3 Y2 M! f9 j+ R0 u: u4 J/ o
            Echo("Precise Outline Loops: " + loop_count.ToString());
, p/ i! U& t- Q  b8 d            for (int ii = 0; ii < loop_count; ii++)
2 P& [( y+ k8 C- g$ B4 P                for (int jj = 0; jj < count_array[ii]; jj++)# b3 f* V1 h& k, _% C
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));) E+ Z9 s0 r1 N; |- s/ s5 o5 s* t, E
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());/ w7 B( _7 r5 n  [5 m) b' v, P
: b5 X$ U: Q" h& H7 i% C
            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
) H5 |* K: w. w- _8 d% w& i5 ^            int curve_count;) M1 _; i+ n, i. o! T  ]" G7 x
            Tag[] outline_curves = null;
+ D4 p5 x" y1 b+ O/ H( v5 o            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags, " a- u  X! N$ z; ], i
                workView.Tag, out curve_count, out outline_curves);
' a, M9 {/ U' ?( T+ I* R* h            Echo("Precise Outline Curves: " + curve_count.ToString());* }, c* K6 E) a0 C1 o. o+ K
            */" U; n+ j7 a6 ^0 ^6 ~% e
        }; G+ X+ Z; D# Q8 D
- ]& x; O) C* n5 _$ X- i# S
    }[/mw_shl_code]0 d8 x% B1 \6 S( t: L
[/hide]- z) m: l. G4 x/ Z4 N
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了