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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓5 k1 v: F1 o, b0 M/ A" E
9 w) H1 F! F' E, i- Q
UF_CURVE_create_shadow_outline (view source)
% z  q/ d* w7 W6 T; `
& t8 Z' Y# D! v% N8 i8 ~  [Defined in: uf_curve.h
: ~/ X4 H- S9 s6 v; x + w: ?1 ~! w- l8 {& [

# f2 O8 `8 Y' n* ]Overview7 B( P$ }: z. ^1 x) V1 Y# ]
8 t4 P0 ~! i! O% ]; Z' X
Create shadow outline for a given array of solids. Solids passed to this
0 e8 t6 y* ~( M4 ~& G" w& }routine must be on a selectable layer and visible. If created shadow curves " [: W7 t+ b7 P: l
can not form loops, please use UF_CURVE_create_shadow_curves instead to get - D$ E: r& E& y
shadow curves. , X) p# ^- ]: X3 P
* {  y6 {, [% E3 a. m+ W
- p7 s5 `* `5 n. K
[hide]% Y3 h8 b3 ^& {/ \% }5 {
% @: \, W0 S9 B
[mw_shl_code=csharp,true] void DoIt()
, w* D/ ~9 [" D3 M: C/ m! }    {! M5 A# r0 d& A
        if (theSession.Parts.Display != theSession.Parts.Work)4 k1 Q: K6 r8 i; ^- u( q
            theSession.Parts.SetWork(theSession.Parts.Display);
+ P8 g( y$ X1 s- W/ j) o2 L+ P4 h! v, C$ e& O; k; ], ]! o; g

# Y7 q4 s) u" Q* {2 _" P% y$ z9 x        TaggedObject[] theBodies = null;
- L9 D9 s3 m5 {- c% {* o        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)7 [/ `" H1 Y9 X$ s# ?2 }6 g
        {6 F% T1 Z' s& w8 v4 |
            Echo("Selected Bodies: " + theBodies.Length.ToString());6 p( K( A3 A) {* m% ?" I
            Tag[] theBodyTags = new Tag[theBodies.Length];
+ m* \, m7 y4 Q$ l( `8 w! g6 o            for (int ii = 0; ii < theBodies.Length; ii++); F6 B$ C1 l, u5 d" O2 U; V! _+ R
                theBodyTags[ii] = theBodies[ii].Tag;
$ P' f  d* }5 N4 ?( |* t
& @; C4 r) ~1 D  T' B            List<Curve> theOutlineCurves = new List<Curve>();# T7 Y) u/ U4 _1 U7 k7 i0 |5 _
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;1 ]1 M6 K7 o8 U" v+ w1 H6 ]
            int loop_count;
! b$ t8 g( F2 R$ ^5 @            int[] count_array;) c3 g; O' g5 }7 [6 T/ K
            Tag[][] curve_array = null;
+ c+ j% w# {% ^# ?6 {) Z            double[] tol = new double[2];; {/ K: N3 j) U) s

1 `3 i- ~  g# K3 x7 [- z            theUFSession.Modl.AskDistanceTolerance(out tol[0]);/ v/ x- R) c$ G) s
            theUFSession.Modl.AskAngleTolerance(out tol[1]);5 b8 {8 V& j& w4 f5 M+ [
* h. e2 N2 T! M6 m6 c$ M
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,7 c+ Q' ]0 T! B8 X
                workView.Tag, out loop_count, out count_array, out curve_array, tol);
( d& d/ i7 R& A3 r5 |# \8 j1 n& p! s; E8 M! b
            Echo("Precise Outline Loops: " + loop_count.ToString());+ q( `0 T) [, f5 P
            for (int ii = 0; ii < loop_count; ii++); o5 d. j4 ~. k
                for (int jj = 0; jj < count_array[ii]; jj++)
6 k3 y& }' }) u3 q) r2 a                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));" f9 D: n* {* I' Z; r- T
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());- r3 H, v5 |$ {" K: T+ Q. v

0 v! j/ A$ F9 A' u3 P" G, W            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead : M! v$ p2 T1 q  N2 q. r
            int curve_count;( I/ q7 I1 m5 F' V  g9 E
            Tag[] outline_curves = null;& }; b8 w. S' H
            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
; K9 L: F( X/ X/ Y; J                workView.Tag, out curve_count, out outline_curves);
' i3 c: p- c; I0 \0 j( ]            Echo("Precise Outline Curves: " + curve_count.ToString());% C/ e- G! f5 \% I
            */
9 `) \6 a& U- s# r! _9 b9 V        }* X0 `* E, }3 z% q

3 b7 Z2 ]2 m7 @% f/ U    }[/mw_shl_code]: N, c" W0 Q, l" k6 F, F6 o7 b$ R
[/hide]4 [5 ]7 A* B; J% J, T" 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二次开发专题模块培训报名开始啦

    我知道了