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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓& w2 f# i  w9 ]) p

+ l( N$ n" T0 U9 T9 QUF_CURVE_create_shadow_outline (view source)
/ a( ^$ E: r  t2 M' Q5 k9 W
) {4 S9 i& N; S  I4 J; B$ Q4 ?6 K# K! WDefined in: uf_curve.h. H! R: w' w; |: d. X: |9 }' `8 F5 f
: q& i# P1 [' Q$ l# p

4 `; [' k% I* e( E3 F9 f: eOverview
3 I1 P7 u: i; H3 a) {5 K2 y/ ]( M. E9 a& N$ u1 d
Create shadow outline for a given array of solids. Solids passed to this
: J2 M  w% J# h6 B- K. ]routine must be on a selectable layer and visible. If created shadow curves 2 C6 P1 C" c5 B8 V8 m
can not form loops, please use UF_CURVE_create_shadow_curves instead to get ! y: @6 T) W$ ?9 a$ F
shadow curves.   J( _" a) U$ q- C
, u" i5 L& T0 n4 h! u; a

9 Z' l# s0 h/ j7 M* n[hide]  H7 q$ K! `1 U) D: }# ^4 w% ]5 h

* s2 O/ n/ G5 q[mw_shl_code=csharp,true] void DoIt()1 I2 r) k$ ^+ [9 f) p& t5 T
    {
4 _; O0 ^' C( u9 C        if (theSession.Parts.Display != theSession.Parts.Work); f( P' P+ n/ u5 q+ A' k6 B" t3 k
            theSession.Parts.SetWork(theSession.Parts.Display);4 Q8 `# D+ i3 ?9 @* W) D+ o  u
8 r' L* c1 [/ G% k! A3 Z% A

' v5 n& s% y; d5 a2 F% E4 c        TaggedObject[] theBodies = null;
2 S% T: N( _* V% J! i        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)
& l% V* }6 S' Z$ {  F) `  E( s5 {        {$ F1 s8 \6 y1 Y5 I
            Echo("Selected Bodies: " + theBodies.Length.ToString());1 B. j& w5 @& u- e  q
            Tag[] theBodyTags = new Tag[theBodies.Length];$ g$ ]$ {4 h& D
            for (int ii = 0; ii < theBodies.Length; ii++)
) j6 h3 Z- `, [" R5 w9 H                theBodyTags[ii] = theBodies[ii].Tag;
. {6 ~' o1 B6 Z9 j* C! X2 n: M; J" S- e& A
            List<Curve> theOutlineCurves = new List<Curve>();6 o! @6 A2 p" |$ O! C) h/ |( W$ i
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;
: t: u$ i! r: n& j; b            int loop_count;4 W- E/ W; J6 h  ^: B1 y
            int[] count_array;
; Z- ]' J2 l5 }0 {8 t; ]7 Q! C            Tag[][] curve_array = null;" J* G# S$ Z. C6 }: b
            double[] tol = new double[2];
9 u- q) }8 E% }! v" p' \# W
. ?9 F2 C5 ^% v- U  l. K+ A: G            theUFSession.Modl.AskDistanceTolerance(out tol[0]);8 z2 {& {4 J2 U: R
            theUFSession.Modl.AskAngleTolerance(out tol[1]);3 B4 r( I; y1 g7 y/ T- L4 l( Q
* E* K  }9 w( \; o
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,
) w; L/ d5 w6 z                workView.Tag, out loop_count, out count_array, out curve_array, tol);% ~2 u, D& ]' ]& s5 R$ \0 D

' }) d7 Y' u4 _% T7 \0 v            Echo("Precise Outline Loops: " + loop_count.ToString());
' }' [2 E9 @7 v( _            for (int ii = 0; ii < loop_count; ii++)' _- B( g) f- {2 j
                for (int jj = 0; jj < count_array[ii]; jj++)# t% {0 W9 C7 c" _* j: g1 N
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));3 z, E" g  U& E1 o! I, w
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
" D5 n* r# y: ?4 u$ S9 ]* z' I$ q* w" e$ x; t) X( r
            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead ( g: r1 \& Z& t! ]' F! |9 ^
            int curve_count;* L; P& C6 M) ~* i/ A
            Tag[] outline_curves = null;
4 O1 q- Q/ P2 E) u5 t6 d4 ^, X            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
" _6 F: \" g7 T: p                workView.Tag, out curve_count, out outline_curves);
9 z9 ^, R- L( y0 }6 f1 ]            Echo("Precise Outline Curves: " + curve_count.ToString());; r0 y2 V2 i9 `7 C3 `
            */2 F  {% \' i, q6 f, f& S, o, U1 x
        }
& M3 a3 R" g6 x6 R9 M! J6 B. e0 f2 a
    }[/mw_shl_code]
1 |4 V. d6 S# S4 Y/ E[/hide]0 q# ~1 U4 L+ s0 }
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了