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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓
" Q. [9 K+ C5 v8 U/ j0 P) j
$ E3 U. \# t, M$ bUF_CURVE_create_shadow_outline (view source)" v, u  ^' |% v* A  x. `

- U6 `# Z5 W8 U3 r& JDefined in: uf_curve.h
# c9 Y6 p7 o4 _" e. x  P4 n
8 i; p) Z+ `: m
- X% n# U$ f9 a- L9 P1 R5 xOverview
, v4 ]0 z5 E. S& x0 t6 ^& |& t; g7 j* P! {# }: _
Create shadow outline for a given array of solids. Solids passed to this
: @6 `6 L/ E$ A. b, z5 v; T7 Yroutine must be on a selectable layer and visible. If created shadow curves 8 N* R# y$ _' w( I, b
can not form loops, please use UF_CURVE_create_shadow_curves instead to get
0 _' O( q- G9 a. S7 [shadow curves.
% w: `8 e- v) G! F( Q6 c# w+ G5 Z, [- M& u8 A4 n8 L
% y7 i4 @2 `2 @4 R! I# D
[hide]2 e, u: \( Z0 y' J# t; Z* O9 Y

$ a, o/ W. s* N" \$ I( g+ ?( D3 n[mw_shl_code=csharp,true] void DoIt()
7 j$ W" M( I( z- r! H0 o; g: H3 p2 w    {
: x$ a% W4 \& \( h. W0 K; x, P        if (theSession.Parts.Display != theSession.Parts.Work)( M, A. f0 r  d1 N
            theSession.Parts.SetWork(theSession.Parts.Display);% i6 y6 A0 N; E8 W% C, ^
! ]- L4 E2 M- _' g7 Q# [5 P7 d% Q
* R2 ~7 T' }; S, u+ z& l. Q' n7 B
        TaggedObject[] theBodies = null;$ ?+ k" C/ g" s5 w. {
        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)
! X# K2 _; |2 W5 Z& t        {
! A. b# J1 _3 _! ^; b6 t3 \            Echo("Selected Bodies: " + theBodies.Length.ToString());
  J; y' L# [/ v0 b/ |7 P( V# T            Tag[] theBodyTags = new Tag[theBodies.Length];
6 X6 o1 s6 @6 w            for (int ii = 0; ii < theBodies.Length; ii++)0 u5 `0 C5 \. S2 d+ a! x6 I0 E
                theBodyTags[ii] = theBodies[ii].Tag;
$ a$ ]# T3 ^+ _3 w7 ^5 n% L1 G$ s$ r7 q' @8 e" E
            List<Curve> theOutlineCurves = new List<Curve>();
% O( X' ]6 G* V$ @6 h' D$ M            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;
/ C% K& R4 o2 M            int loop_count;. K& ]9 H9 ]; }7 b; |
            int[] count_array;
- V$ a2 L) [$ {$ |# D            Tag[][] curve_array = null;
4 l3 g' ]# S7 ^& ~! ?            double[] tol = new double[2];8 F5 k0 W  f  j+ p! J  c* D  S* n7 v) F0 _

2 ^! v$ l1 P7 ^& G6 B2 ?            theUFSession.Modl.AskDistanceTolerance(out tol[0]);, \7 l7 s; I3 I
            theUFSession.Modl.AskAngleTolerance(out tol[1]);
; l* w# Z* \" N0 |8 I" H5 K
6 T' ?3 o( c5 a9 E2 m            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,
+ H5 q" h! m- Y$ |3 w                workView.Tag, out loop_count, out count_array, out curve_array, tol);( H+ m; v/ I* S  ^3 m* y

/ L0 T) t0 U( v1 w7 K; a! s) u            Echo("Precise Outline Loops: " + loop_count.ToString());
/ v# J3 x6 v: C; P4 b) X1 Y  ^            for (int ii = 0; ii < loop_count; ii++)
) U6 n3 O. \4 f& i6 u7 |. L                for (int jj = 0; jj < count_array[ii]; jj++)
- l* u/ d/ s0 ^, q) K                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));# w6 }' T9 G7 \
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());/ n3 `; V$ H3 G2 R& h1 N' H- C

, N" |7 H7 \" I! ^: v3 U  Z            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
+ ?+ R( g6 p: T, v3 v! i; y- z5 b            int curve_count;
9 S6 I& u; w& _            Tag[] outline_curves = null;
- ]# ~9 }: z: `7 a& I5 F            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags, / c  B8 Q( f& G) b- g  g: R
                workView.Tag, out curve_count, out outline_curves);+ e% r* z7 L& n3 F6 j! g: L& H
            Echo("Precise Outline Curves: " + curve_count.ToString());1 c! g  ?# P7 L. v; r! d
            */
" p3 R, L, R! _, T. g! ^' m* W        }
4 `3 ?# I% q, I0 ]1 C
9 v$ }/ ^1 R5 z' u2 C* G' k" h4 M    }[/mw_shl_code]
; J. U5 Z  X2 t4 [- ?% w+ V[/hide]
8 c2 k, R; k$ X9 s7 t$ [
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了