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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓) u9 t' e9 z# v9 ?" D8 I

* X  X  f4 g+ E+ v- [6 b3 c, W9 jUF_CURVE_create_shadow_outline (view source)2 t  d6 ]" n$ l* v

0 m) i6 ]3 d# y9 mDefined in: uf_curve.h+ t' k" n1 z! C. Y

# s7 w7 f3 X$ T, v0 k) n% z' n" V& ^3 i1 k7 [
Overview7 ]( V! E" S1 `0 t

- N' F& v- s8 R0 j* u) eCreate shadow outline for a given array of solids. Solids passed to this # q8 b+ s6 ?' A
routine must be on a selectable layer and visible. If created shadow curves   M/ w0 {  I) h3 X+ C/ U; m6 c1 H- j
can not form loops, please use UF_CURVE_create_shadow_curves instead to get 5 Y+ b" C2 _% v! k, _, S
shadow curves. % J9 @2 R- Q0 ?1 N

) [* D" ^5 \. u5 `2 Z) ]( B$ ?9 X2 S" @7 E, s
[hide]
8 D: W. s! H5 g1 v3 w# v7 X& a! `7 f; i3 R
[mw_shl_code=csharp,true] void DoIt()
$ {5 K' p% x+ e/ L    {5 w3 `; `2 s( o9 v  W# G3 w% n
        if (theSession.Parts.Display != theSession.Parts.Work); E+ @0 ]' _( \4 B! {5 I
            theSession.Parts.SetWork(theSession.Parts.Display);3 G* ~/ x  b1 y1 {: {
) @* f0 q) @0 v8 [/ N

+ Z( z  L9 m2 K3 h$ G; G3 r$ g        TaggedObject[] theBodies = null;
6 C# l5 z2 x" @9 s        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)9 Q, \+ J, d  K' B, d( U
        {
% K  N7 w0 r8 d- I            Echo("Selected Bodies: " + theBodies.Length.ToString());- w! I$ r; O; L- @$ Y# ?! Y
            Tag[] theBodyTags = new Tag[theBodies.Length];5 C& W8 W+ c) ~; C9 K- g7 _& L, }5 `
            for (int ii = 0; ii < theBodies.Length; ii++)
; u. Y9 w8 @- i                theBodyTags[ii] = theBodies[ii].Tag;
( g, t/ D) r* M7 ?9 a  W% m1 G9 l# U2 d
            List<Curve> theOutlineCurves = new List<Curve>();( w; O6 I0 j  w2 R7 B, h* `" ]/ C8 E* y  x
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;) r: \9 K4 ~! ?. V+ A0 B8 D
            int loop_count;
# p- X, _, ~4 G+ |- h8 J            int[] count_array;
4 Y  U9 ]6 O' v  T( i            Tag[][] curve_array = null;
" B7 H. j! b# F% i( ?& L' |# j8 D2 J            double[] tol = new double[2];
7 x9 M' z9 `% i: L
+ Z) _4 p% K2 P            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
8 ?$ e+ t3 m" h8 F* J9 m. E            theUFSession.Modl.AskAngleTolerance(out tol[1]);0 K' c  V* w6 X- C$ _6 }' {
" D9 O  M" z! w
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,' o; v( U* d( e: o
                workView.Tag, out loop_count, out count_array, out curve_array, tol);
+ v$ n& r" a3 F
! v" D% ^0 \* ?8 o            Echo("Precise Outline Loops: " + loop_count.ToString());' H+ H5 U1 n4 `0 }0 M3 [
            for (int ii = 0; ii < loop_count; ii++)
* t1 f4 L( q/ ]' V! |                for (int jj = 0; jj < count_array[ii]; jj++)0 u  l: l4 o- k: a2 w
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));! M" |, M) D3 i8 g2 C
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
8 ?) |) t3 C/ g. R/ t) E- T
$ D! W& {: x" O7 c; U            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead & H# ^% W# X+ R6 n4 H; t) r
            int curve_count;& m9 X$ W3 a% [  g' G
            Tag[] outline_curves = null;
7 e; f+ C9 T- t" Z            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
6 I' m7 w2 S5 {4 Q3 Q" ?                workView.Tag, out curve_count, out outline_curves);
( x' F4 }/ [$ f7 U% T            Echo("Precise Outline Curves: " + curve_count.ToString());* g5 U, ^8 ?# T
            */6 F% r  Z+ n( i2 k1 ?8 J- n
        }2 ]( d  ]' x0 A6 f( y
7 Z+ p2 G& T4 q7 m3 s1 w, J
    }[/mw_shl_code]* q& C! o9 f8 H* ~. i5 W
[/hide]
9 E  O5 K4 t' a( m
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了