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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓
+ S% t* c9 z# G$ W- y2 s+ }, W& t: t# H! s8 z
UF_CURVE_create_shadow_outline (view source), r1 i" q$ Q( [

1 f, {( ]) ^+ n; p( xDefined in: uf_curve.h
4 p& _7 H- g" U! P( t
* p$ M1 o9 I* n# o; q/ w& J- r8 A& _: x" J( n* O: G3 W
Overview
3 X& S  |, B: q  E# I& Q
, R; j: t# V3 rCreate shadow outline for a given array of solids. Solids passed to this ! |; `/ R9 E+ A6 v3 }; m
routine must be on a selectable layer and visible. If created shadow curves : I' O/ R7 t5 D7 j/ a
can not form loops, please use UF_CURVE_create_shadow_curves instead to get ' K9 W6 w1 H) j# S/ F/ E$ l
shadow curves. 5 i# E( K6 [* f5 O4 J; `- o- A* }
# f& T  q) ?* L- o7 M& ?+ _
: B2 @, Y. n" t
[hide]+ K4 R! W* a3 ]5 {8 k
- v- l7 z9 j2 \6 c
[mw_shl_code=csharp,true] void DoIt()
# ]4 `8 U: Y) A* q& Z1 U8 }    {7 c% ~2 j# {8 L  I
        if (theSession.Parts.Display != theSession.Parts.Work)
2 ^/ |: t! W+ p            theSession.Parts.SetWork(theSession.Parts.Display);' o4 O) d% b5 V9 P+ W! ^) i9 L2 a2 A

# P! x' l4 L2 f# c( D, I" Q. S) U( n4 k- y8 i5 F4 A
        TaggedObject[] theBodies = null;
3 L. j- X. e+ ^        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)0 K9 T& X2 d( T
        {
, l* M5 v5 U* P9 t3 H: y            Echo("Selected Bodies: " + theBodies.Length.ToString());6 i% Y! G9 J6 [5 |, l
            Tag[] theBodyTags = new Tag[theBodies.Length];
! I1 z" ?8 I* l- [4 C            for (int ii = 0; ii < theBodies.Length; ii++)( M% [6 }) p& t; z8 M9 c! ^% z. D
                theBodyTags[ii] = theBodies[ii].Tag;5 `2 j7 N5 @% A) I7 i& e

; [) h2 L0 R/ Q1 r. ?            List<Curve> theOutlineCurves = new List<Curve>();
$ R# Y4 Y2 D. y$ W; \' [) G2 j# ?            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;1 t- p. u) [5 _  I; ^- k6 U8 g4 [
            int loop_count;
6 S. O2 e& e4 C# K            int[] count_array;
' F& K( i1 q9 S" U            Tag[][] curve_array = null;
! W) O4 Z  |  c/ m1 g            double[] tol = new double[2];
* K/ E3 R" a$ {/ Z) c! o7 |3 M1 M1 F* W) F! ^2 U2 k: X, {
            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
9 `. O% F  @3 Z8 S1 V; H6 I            theUFSession.Modl.AskAngleTolerance(out tol[1]);" G/ y; {; }8 O* r
* Z/ [1 S3 D/ \" r
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,
# B$ m$ j0 |. R& S! j# l4 s4 i& `# S                workView.Tag, out loop_count, out count_array, out curve_array, tol);7 ?5 W7 \. V( T& t$ d
) s& I  }1 _: O. o5 N5 I
            Echo("Precise Outline Loops: " + loop_count.ToString());# n6 H" |6 Q4 r' W. m
            for (int ii = 0; ii < loop_count; ii++)
3 D& ^1 D# |5 N                for (int jj = 0; jj < count_array[ii]; jj++)
6 C0 J# \; J/ k  @. q                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));
# x$ I7 \5 |5 ]            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());0 V& V: _1 y# L) q) P  z4 R1 p
+ b. H& H  n6 b' D  w
            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead ( x$ H# M: c5 J+ \
            int curve_count;
* u! v# ~* m, s" p            Tag[] outline_curves = null;
, V9 n. w2 P& C3 ~$ B% ^            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags, , p9 [- `. `) M7 h7 O4 L
                workView.Tag, out curve_count, out outline_curves);
, D# M4 z; Q( U0 T( V* T            Echo("Precise Outline Curves: " + curve_count.ToString());( {) @8 G6 h, X! }; q% x
            */7 r* U6 T8 {* R" t
        }- u: v( A% _1 ?) i  D1 x
- I/ S4 {  e& }" r. @7 e; ]' P9 ]9 ^
    }[/mw_shl_code]+ k6 r3 {/ z/ M# r( K% S. \
[/hide]
1 M- L, l/ O3 P6 g
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了