PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓
7 U# b/ F- N; n7 ?6 w( l7 z5 j6 `  P: X6 Z
UF_CURVE_create_shadow_outline (view source)
2 i9 A) i; R" D7 ]
' p: k+ `" ~8 X  f; MDefined in: uf_curve.h
1 ]4 A3 v  i. R8 Y* O # c, G0 Q4 @/ W% }" h4 x9 m
& N4 w& N  L2 ~& V* f  B
Overview
8 |$ g: G" t( ]# [2 q  q6 v  y6 o" d# Y/ j# O/ B
Create shadow outline for a given array of solids. Solids passed to this
" I3 C9 `4 t$ ~7 N9 Y' proutine must be on a selectable layer and visible. If created shadow curves 1 n0 F" e, {- c9 l9 ~6 T+ }
can not form loops, please use UF_CURVE_create_shadow_curves instead to get   w. a" ^) f$ [; t) P
shadow curves. 7 [' }- z5 g& ^" g$ R( e! z

0 \' `4 I6 @; s4 F! d6 n0 n
: o& H7 \% x$ M( n" [) ~& W[hide]( M2 c, O& D1 O4 ^. p5 ?: u
- l" p) |: x- [) t8 U" n( [
[mw_shl_code=csharp,true] void DoIt()8 N3 d' e5 v- H7 D2 d$ G
    {' S) u7 f- ^' t& c& k& U5 L
        if (theSession.Parts.Display != theSession.Parts.Work)
# Q4 [# ~4 D7 M8 ~- ?& A            theSession.Parts.SetWork(theSession.Parts.Display);5 y  f# m" U4 U6 D) ?% u- D2 X
* H& o5 V- i5 g8 M5 K5 A
+ _& H- N' b+ _  ~, `4 k% a# n
        TaggedObject[] theBodies = null;1 v- K6 m- _, k1 P2 ?+ Y3 J# ]
        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)
3 S& F7 i$ P( Y: A0 @7 a6 K, ~        {1 z. P4 G% ^- c6 W9 U
            Echo("Selected Bodies: " + theBodies.Length.ToString());
6 `- z7 |, y7 Z& c) D: r            Tag[] theBodyTags = new Tag[theBodies.Length];
4 q( \/ _* x. V" B' D            for (int ii = 0; ii < theBodies.Length; ii++)
; x$ D5 Y/ P4 \8 o5 ^+ ^                theBodyTags[ii] = theBodies[ii].Tag;
2 _0 Z4 r0 J  N: T; H
) [) A# Q5 l, o5 J1 O3 K8 t            List<Curve> theOutlineCurves = new List<Curve>();
/ r( H4 @+ ~* q9 K% |/ u6 Y            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;1 T! o: x1 W( p3 q
            int loop_count;2 O( A5 L2 c, k1 Z0 N2 o5 U! F6 @
            int[] count_array;
5 I) I5 f9 r) M- a            Tag[][] curve_array = null;1 X% s5 x; V( i
            double[] tol = new double[2];' X% C/ @0 d* D9 [7 b: p) w! G
$ o1 X5 t: F' p. U' u8 i; {/ S
            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
* ^& p0 \& m: `+ U' a3 q            theUFSession.Modl.AskAngleTolerance(out tol[1]);
) }( a! S5 A$ p- L' z$ D# A( G3 e2 H: r# j3 R2 p
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,
* Y/ h) d3 ]0 S/ v1 N+ [                workView.Tag, out loop_count, out count_array, out curve_array, tol);
+ K% l# w% Q* S* c' H
% g8 V9 A" `, G% w* v& O            Echo("Precise Outline Loops: " + loop_count.ToString());/ c& j: F) g& \
            for (int ii = 0; ii < loop_count; ii++)
% M- O/ F) H2 n  u0 x                for (int jj = 0; jj < count_array[ii]; jj++)2 p$ u* c$ E' f) ~% ?; Y  r
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));0 x  v" {0 ~5 s0 |: R# D; q
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());# Z5 f+ u8 h" C
' H3 _& D* L% o( b5 Y+ k$ k$ @
            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
& }! y- E) I  L; ]( E- d2 u: ]            int curve_count;
" v, ]% v0 s& [+ r) ?5 b$ J% G            Tag[] outline_curves = null;( g) E" u1 p7 ?' e* o
            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags, ) A% Z) ]# ~* ?  v$ C. C  w
                workView.Tag, out curve_count, out outline_curves);! ^2 ]" N& Y# n" W$ I: Z
            Echo("Precise Outline Curves: " + curve_count.ToString());/ m4 o8 ^2 \* p- K# E  I
            */
5 D5 E: G0 W6 ?( T2 m3 K4 K        }# d9 Y; L/ I7 U/ ?7 }$ H" R
3 T7 M; M5 c* c- O1 n; U
    }[/mw_shl_code]
) X) b6 n& A% d  |: r* ^[/hide]
! P( Z8 E; m; u. 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二次开发专题模块培训报名开始啦

    我知道了