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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓
* H& A: T  L/ I+ D. L& a7 j  f: Z7 r5 F5 h5 }  R/ H
UF_CURVE_create_shadow_outline (view source)
5 ]& N; A, A  S! V. B  B1 _* l+ q 2 h1 D8 F7 {% {" I3 a+ M/ p% A/ a' Z
Defined in: uf_curve.h' f% }! o  I5 Y' @/ _4 A

. \0 O) \9 J$ G1 m) Z$ ~5 M
& d, ^# U2 b* n" l) Y, [9 |Overview
. d& u2 B! v+ w& l
0 _; o0 j0 Y$ n; {7 ]' T9 aCreate shadow outline for a given array of solids. Solids passed to this
1 h! @7 v5 F* [- `) Broutine must be on a selectable layer and visible. If created shadow curves   ?  t  G2 K$ l1 v( o4 F6 I
can not form loops, please use UF_CURVE_create_shadow_curves instead to get 5 u4 J  \# P% X% e( ^
shadow curves. 4 V3 V: B1 Q3 F0 U) c8 I& T
0 t3 A5 R# k: f( ~+ ], x7 N- t
: _4 m+ b$ S; u+ k5 I
[hide]% ~# U/ H. X3 u

0 z& u/ r7 ]& x7 o[mw_shl_code=csharp,true] void DoIt()' f9 r: ^6 E4 r2 e! c  c
    {
/ X, [" W, D8 G: {& M        if (theSession.Parts.Display != theSession.Parts.Work)0 j# m: Z* @% i4 [1 H8 e
            theSession.Parts.SetWork(theSession.Parts.Display);  X- x; n% e0 H' I3 h
1 B& [/ O$ G4 q: ^- _* K& v
0 l  Y" f: G7 V9 U
        TaggedObject[] theBodies = null;
. c) C3 U5 [; |        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)% i2 {6 O+ g# Y; P3 p3 r: c/ U& N
        {/ V$ A  E( W; E: A
            Echo("Selected Bodies: " + theBodies.Length.ToString());
3 B, q, R  y8 D+ t) a. R1 @5 n, S            Tag[] theBodyTags = new Tag[theBodies.Length];
# U4 J0 I. f6 |: o  |            for (int ii = 0; ii < theBodies.Length; ii++)7 i) o) i: Z- |+ J8 L2 H
                theBodyTags[ii] = theBodies[ii].Tag;0 b' u# ?! U$ s
4 L! |+ g$ A) F% n" }
            List<Curve> theOutlineCurves = new List<Curve>();
( z% o3 d2 k9 c) B            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;
; t" \8 M6 x, \8 n8 O5 A  P            int loop_count;
% f/ U$ F$ s+ c" C' f+ }4 S' M% a2 o6 i            int[] count_array;
; k6 c2 F( B$ A6 H# L! `% _* W- }            Tag[][] curve_array = null;
/ O- s* m3 q- t& N" y+ O0 o            double[] tol = new double[2];
2 K  V* |  [8 e. Q
0 |& `- j4 y; p            theUFSession.Modl.AskDistanceTolerance(out tol[0]);' H+ l) {. ^- |( H  E/ J
            theUFSession.Modl.AskAngleTolerance(out tol[1]);  c3 O# w( [1 j% {  ]0 H

6 i3 x- y. R: ]; k8 Y            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,$ ?' M8 s' i0 o# U# p8 l  ]
                workView.Tag, out loop_count, out count_array, out curve_array, tol);+ o, r- Z; r: @: f" S8 j1 H1 Z/ h

+ e5 {: z. }9 X3 s! n" T' k            Echo("Precise Outline Loops: " + loop_count.ToString());
& A2 M, {9 ~; D' L; f            for (int ii = 0; ii < loop_count; ii++)0 @, H+ Z( C' x: j( D
                for (int jj = 0; jj < count_array[ii]; jj++)
0 n; c8 X+ p; h* x1 ~                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));% V& ]  _5 B7 h" Q
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());- Z  E1 ]& z2 E* w8 n

; Y5 a( |6 A: H) j9 X; b: @+ }- ^9 q' r            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
! y8 I. M9 N6 K& [* R            int curve_count;
; @3 {7 h! x; W* y9 K" x            Tag[] outline_curves = null;' {3 @- z* X# _5 ~. x
            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags, 1 B- \. D/ w: C' }* ^/ ^
                workView.Tag, out curve_count, out outline_curves);
$ J, A1 k! ?5 q- K            Echo("Precise Outline Curves: " + curve_count.ToString());
9 @* Q1 p9 o, o            */
) w& a; x% ]3 ]" F        }) M/ z0 [0 Y+ w$ F( b

( _1 a9 L/ F, `$ d* J/ X/ O    }[/mw_shl_code]
7 G0 ~% D+ M7 r0 `4 ^[/hide]0 ~3 ~5 ^# Z  G/ L  h
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了