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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓* j, N+ h& z3 s( Z0 F: w, j- V/ h% P

! Q7 J: Y. I4 Q) S) w& t8 }) WUF_CURVE_create_shadow_outline (view source)" _/ B% G2 |( }4 _+ v2 K( H# Y

5 Z  l$ a" A0 h' S- {% j) J& iDefined in: uf_curve.h6 p$ o  s+ Q8 e0 T# b% Z- y

  p* `8 ?2 O9 M5 c$ {% |7 V; m2 j* x
Overview& g5 ?/ F8 Y* Y

# J+ x* p& F; y- N6 FCreate shadow outline for a given array of solids. Solids passed to this
8 B0 n$ F/ i& f" Nroutine must be on a selectable layer and visible. If created shadow curves
4 G% ^/ l' f: s+ acan not form loops, please use UF_CURVE_create_shadow_curves instead to get 2 ?+ O' i! d6 V9 ?) S7 w" P. z
shadow curves.
- J3 D; W  J7 s7 L7 }6 F% |
7 O3 G, m9 \0 ^( D! _
! k% z; z4 `: K( K* e[hide]
, K5 k2 M/ \( w; _! [
2 d- }$ y4 s- M( G[mw_shl_code=csharp,true] void DoIt()
2 X, s5 R8 K0 g8 p7 A' g" ?2 f    {
! C8 S' p! b0 }7 ]) }7 N        if (theSession.Parts.Display != theSession.Parts.Work); a1 ]/ u0 N* ?; ?/ I% W2 s4 }# b
            theSession.Parts.SetWork(theSession.Parts.Display);$ v, }" p7 h; z1 H6 K3 J: u" r+ U
' I6 e' T4 w; s: j% r2 u( r3 \
  Z' G0 c2 @- J
        TaggedObject[] theBodies = null;1 k$ C9 Z! x, }: H- F; }+ s
        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)
; ?$ q; W$ D6 k4 Z  V        {
& Y: p. y0 {4 O5 h1 n            Echo("Selected Bodies: " + theBodies.Length.ToString());3 B2 A7 t$ P# E, f( E! `
            Tag[] theBodyTags = new Tag[theBodies.Length];
" ?) K8 ]3 x" `! |            for (int ii = 0; ii < theBodies.Length; ii++)8 N) Q) }4 @2 e/ V* E" F
                theBodyTags[ii] = theBodies[ii].Tag;' f5 D& d. z4 @& y' A" k4 g4 s
( `; ~) `+ q% ?9 S/ S
            List<Curve> theOutlineCurves = new List<Curve>();3 Q4 m! k$ _" t( h$ K
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;9 I% \. _7 n, i" O1 f. k
            int loop_count;
$ l5 b/ q4 ~* {( s8 U4 L& C) e            int[] count_array;, }9 L3 D/ r, f7 Q% R
            Tag[][] curve_array = null;
5 S* \0 e5 t4 h6 [' b            double[] tol = new double[2];
$ _, q7 K2 H# a
( X0 Q1 q; \% {4 T* w0 D7 `1 m. y            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
( C) W. y$ v7 H: ?; r! s6 u; F            theUFSession.Modl.AskAngleTolerance(out tol[1]);
% ~: ?8 H: L' R3 Y( Z7 j  W0 T+ y8 D6 F- M: V& c
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,+ Z  P9 j3 Z5 U& p- n9 f
                workView.Tag, out loop_count, out count_array, out curve_array, tol);
2 x6 S' a8 ~1 b) C5 g$ r" K  B' _4 S4 ?& W1 W0 M# J" R% i5 Z
            Echo("Precise Outline Loops: " + loop_count.ToString());, j; d4 \3 R6 s( W
            for (int ii = 0; ii < loop_count; ii++)) o7 i; O7 I& [' ]6 d# I
                for (int jj = 0; jj < count_array[ii]; jj++)
4 U' r8 P/ U# {1 H2 S( {. v                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));
4 e5 `+ }- x9 Y1 _/ K            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());( h7 v2 z+ O1 m' M- s' S

$ T3 c) o; \0 Y- X8 @" \            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead 6 P% C( g% A& G4 X7 U, z
            int curve_count;
# W( R3 D( ]  Z" _3 b            Tag[] outline_curves = null;
" s; x' ?9 m. j& j/ _            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
* h! p# U9 e/ ]# E3 _9 ]& K                workView.Tag, out curve_count, out outline_curves);
! \* i9 ^0 P% k7 K            Echo("Precise Outline Curves: " + curve_count.ToString());/ v, o: f* M9 T* W( k
            */& w9 u8 e* h) `4 S
        }
" Z- \% f- u0 Y. [  Y% h
. [# [' m9 a1 p* c$ D" @5 Q( N2 D    }[/mw_shl_code]
/ q& t% X) W( p: l* s" ~! b[/hide]
5 v+ o  C) y: m3 B  p# g% y
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了