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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓
4 |$ d/ g6 z1 r; g4 h6 G3 {
8 z# h' l8 U6 b* [8 F3 E2 \UF_CURVE_create_shadow_outline (view source)1 x+ A( _' i9 K* |. w/ B. C" x* E

. W/ w* z8 \. N$ V  ], gDefined in: uf_curve.h0 R: U; y3 s# D2 ~" v
" V+ ~% J- ~, A- n- |

0 n: v+ d# K* _8 L6 {6 GOverview
5 G* O% O9 s1 P+ p+ T) i" S5 k. L" c  v
Create shadow outline for a given array of solids. Solids passed to this - ~8 s. @' [% q. W9 Z
routine must be on a selectable layer and visible. If created shadow curves # z  M; Y' u) B* I; v
can not form loops, please use UF_CURVE_create_shadow_curves instead to get 6 D4 G. Q/ \. C: P
shadow curves. , [3 B* ~* T7 _' R, V

  B% j1 M# U' t0 I; e7 g9 r/ P  h! u2 R0 U$ i5 P
[hide]; x( B6 T  E% i- v" ~# C

1 }) H. z% v9 z, ^1 F[mw_shl_code=csharp,true] void DoIt()
  K+ b# K* W8 M    {  b8 G! l! M9 i7 c8 e* \
        if (theSession.Parts.Display != theSession.Parts.Work)
5 a+ }! D$ Z9 C            theSession.Parts.SetWork(theSession.Parts.Display);
! B! d2 U$ @$ {: [
6 [2 Y+ g5 r( e& O% w0 G# j& {( u& V( a( U' _
        TaggedObject[] theBodies = null;! h7 ~( o1 j  n# J
        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)
* N/ O4 m; a' K& y7 e, L        {: D3 v1 O2 u2 M, Y
            Echo("Selected Bodies: " + theBodies.Length.ToString());
+ q$ M- z% k4 v+ u4 \$ p. V- w0 ^7 ^            Tag[] theBodyTags = new Tag[theBodies.Length];
. b2 v  r7 J4 y            for (int ii = 0; ii < theBodies.Length; ii++)- v) W1 q  C- B
                theBodyTags[ii] = theBodies[ii].Tag;2 c- q1 e% \( a2 e+ ~7 ~. J% f
; A% J6 b& E' p8 @$ n1 ~/ \) f
            List<Curve> theOutlineCurves = new List<Curve>();
1 Y$ b: L" O/ r; ~4 s            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;
$ l6 ?$ a6 D9 G            int loop_count;$ P, n  w" [/ y5 k4 V, ]( n# p
            int[] count_array;
' f, _& _( T% x' q2 d% R2 t            Tag[][] curve_array = null;
/ f$ l1 j; {) X& l! z6 C            double[] tol = new double[2];
7 ^( \% s# P$ |2 e, X  w* {1 r0 \  m$ r4 N6 v5 x! I. H
            theUFSession.Modl.AskDistanceTolerance(out tol[0]);2 |: A: H, \. _+ y
            theUFSession.Modl.AskAngleTolerance(out tol[1]);
/ P3 y7 ~+ I. X6 |- D5 b% Y8 r& Y9 d: l( \# w9 h1 J
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,
. A. V% u/ t3 d                workView.Tag, out loop_count, out count_array, out curve_array, tol);
0 n9 }/ Y8 {4 Y6 E3 X' ]# Q' v; z* p3 b5 I/ Y
            Echo("Precise Outline Loops: " + loop_count.ToString());
! e2 v6 @0 \1 e            for (int ii = 0; ii < loop_count; ii++)
% ?6 E" ?3 f  `3 K+ L- }: |3 o7 {                for (int jj = 0; jj < count_array[ii]; jj++)  U1 ~# p' u% W- v, `, Y9 R$ g
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));4 M( M, z+ U" O
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
( S& k! O  r  O
' j$ T6 @/ |3 B  n- h5 k/ q            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
6 U! K; c! q! F7 m            int curve_count;- H8 k# P% _% C; j0 B
            Tag[] outline_curves = null;
& v, l4 Q  \0 P* @0 @7 f# E% d- w            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
, I2 @$ ]5 `% t" I* _8 D- _) B                workView.Tag, out curve_count, out outline_curves);& o# y  p3 F1 _. y/ X4 a1 c( y2 D
            Echo("Precise Outline Curves: " + curve_count.ToString());7 y( @" q# M' [& H0 b
            */" L) V# @: T/ _: ?
        }* S$ m4 E7 ]% l" J+ a" j; o, _7 c5 u! Z

: O, j/ E% q/ L- `/ a/ U6 K    }[/mw_shl_code]
9 ]+ J0 r3 d' m" F& d[/hide]# r4 X( A2 w  D7 x9 k
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了