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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓
- b  \3 ]* P% D
/ Q( x7 q! t2 p( R) ^& N# IUF_CURVE_create_shadow_outline (view source)
( y5 C* t- N3 l" L( A( q7 f " a  _6 S* r6 R& {) q9 P6 b+ H8 ]
Defined in: uf_curve.h
1 g- C, A) g" _: {' U
7 @/ D# L2 ?% y  C" g: ]0 K( O; ?, p1 N/ k9 [, f1 T! `
Overview  ~0 @& ]: a  l2 G
% v; c0 M; q2 z+ H/ \* v. \
Create shadow outline for a given array of solids. Solids passed to this
) B+ p0 k1 k4 `7 g; V/ p9 Yroutine must be on a selectable layer and visible. If created shadow curves
: S% a/ `$ z( _4 b( Fcan not form loops, please use UF_CURVE_create_shadow_curves instead to get
0 S7 W( z  P: c. H3 r8 J1 Oshadow curves. % t8 Q7 `/ s& N# q4 Q

$ C' _4 R- x+ `
/ w8 d$ u) x$ X[hide]
0 B$ Y& c5 D: L' }
- Y" ]4 S# Q( M2 T. E$ ?* P[mw_shl_code=csharp,true] void DoIt()
( y% z4 P8 Y4 u/ U0 E    {
: d; S( `' z, c. C6 c% J# h        if (theSession.Parts.Display != theSession.Parts.Work)1 M( ~3 ]" s8 j& e7 O( W
            theSession.Parts.SetWork(theSession.Parts.Display);
; D# y. j& t( n! c# u7 {1 O! M6 \/ f8 H

9 X4 g% z2 [3 a. K5 d1 L        TaggedObject[] theBodies = null;
$ ^5 f* e, D0 j/ S        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)
. T8 n2 _9 |2 K* Y2 H) j7 N        {
) V; L6 `& I% y' S            Echo("Selected Bodies: " + theBodies.Length.ToString());; r8 h( D) k4 N; O# N
            Tag[] theBodyTags = new Tag[theBodies.Length];* G  l: @3 }- E$ z: {/ }& Y% x
            for (int ii = 0; ii < theBodies.Length; ii++)/ y% \. G& R3 r9 [# R8 y
                theBodyTags[ii] = theBodies[ii].Tag;
- ?8 @- Z( |& j% V/ a# f4 D/ Y& h# e0 z$ b6 O; A, k
            List<Curve> theOutlineCurves = new List<Curve>();
1 P* o3 D& s/ d7 L2 Z0 H/ `$ q  E            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;
: J/ j( |7 h7 i0 x+ S% m  Z            int loop_count;5 Z+ |) [8 L$ A2 w4 H4 U/ ~
            int[] count_array;9 @. }9 Z) [& c% E' C% L
            Tag[][] curve_array = null;* i: ~7 _0 A7 g, o/ T3 Q
            double[] tol = new double[2];
  M: `& ^1 f: C5 I( H% C
  J: g  \& m6 ^; U- f; O: k; c            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
/ P6 j0 m" r+ g            theUFSession.Modl.AskAngleTolerance(out tol[1]);
! b/ o3 K' K' J4 y) H3 ~2 T
$ r/ Z8 O) @& c6 w. m& N  e! p            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,2 z7 L" ]  b* j& I( |" W  {
                workView.Tag, out loop_count, out count_array, out curve_array, tol);
6 x3 o- T9 I6 Y* }/ x* x  e& L/ j- [6 Z! g# k$ e8 d7 J- O) a  G% Y
            Echo("Precise Outline Loops: " + loop_count.ToString());
  p! m8 |# }: b* a  [$ P# l            for (int ii = 0; ii < loop_count; ii++)* x% d- C6 o: u, }
                for (int jj = 0; jj < count_array[ii]; jj++)
/ j$ K$ X1 q$ T8 L5 E, b' l                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));2 V/ o3 ^" t# F; j+ `% |
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
" X" |. T- i% Q( H, W+ L5 p+ Z# w% A4 t7 X
            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
  T9 b% P& r/ I: M- D3 m2 \5 R            int curve_count;
. t' S0 q) X; e" E            Tag[] outline_curves = null;0 }1 E2 a' U% ?2 q
            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags, 6 h: ^( K% e! G. T& u0 m
                workView.Tag, out curve_count, out outline_curves);! @3 m. _5 x# ^5 h
            Echo("Precise Outline Curves: " + curve_count.ToString());1 W% K: \; x0 m2 R
            */- t) u0 a/ H, e8 r/ ]% s# F7 z0 w
        }; F& J5 E( F3 y
0 _4 ]  K0 N: W
    }[/mw_shl_code]# v' s, Z9 U) \# x4 c
[/hide]8 o4 d' k" R3 d& Z. W) z
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了