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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓: m7 N: m* L/ d+ }! r2 j8 F/ U; ]

2 ]2 F7 O" F8 I4 y" Y' b( LUF_CURVE_create_shadow_outline (view source)
" q# G; V5 g$ E3 r: v! k # h* a8 F  _, B% {, h$ @; F% I
Defined in: uf_curve.h  A8 C" ~! W  i* N# z1 W2 ?9 v/ c, |

" X" V% n5 g$ w6 G: K" C
' T' L: |/ {! h: ^1 a* y! uOverview
7 Q' K; N; F  K8 v* T/ Z, a* m4 k
Create shadow outline for a given array of solids. Solids passed to this ! \- |$ ^, d" |/ J, A
routine must be on a selectable layer and visible. If created shadow curves
% B: K4 u% a& N! |; ^can not form loops, please use UF_CURVE_create_shadow_curves instead to get
' t# M, R; S- z5 w: s9 J) b# k$ f4 s% Vshadow curves. 1 V1 O  N- Q' }6 [1 z

" k- x' j" P5 I  Y3 ]* T# ~2 z
/ @$ o+ Z7 x# [% ?, w[hide]
1 j$ ~& W0 }! C4 q; ^. Z3 z+ d9 r* X( O
[mw_shl_code=csharp,true] void DoIt()3 J3 J1 @2 Z7 w6 ?7 g
    {# G7 }4 F" ~# M  I$ D
        if (theSession.Parts.Display != theSession.Parts.Work)2 L1 ^1 r# k/ v' p  i  w1 r
            theSession.Parts.SetWork(theSession.Parts.Display);, P. C8 B- A' ], z  N5 D- f: G4 S

/ K! J4 Z9 e! x, r: y
  ?0 b% ?1 N4 j0 ^' T9 A        TaggedObject[] theBodies = null;
( K9 x+ ^4 J9 [" \: x0 S        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)( t; s1 u  V5 B+ Q4 m- \, e$ u
        {
$ }* K+ W* N( o! F9 x, M; c            Echo("Selected Bodies: " + theBodies.Length.ToString());: g4 b5 J5 X2 l6 v2 k* x
            Tag[] theBodyTags = new Tag[theBodies.Length];6 W; I7 r" C% r  D9 `5 R  c
            for (int ii = 0; ii < theBodies.Length; ii++)
. H" m3 i8 ~9 T6 u/ _' v                theBodyTags[ii] = theBodies[ii].Tag;) u/ K/ n& O5 C; k

; e# Q2 Q5 T! _6 U, g* c2 l            List<Curve> theOutlineCurves = new List<Curve>();0 q& z7 l- P6 e- J
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;
2 T4 e6 f- @7 ~/ _            int loop_count;2 ~. x3 z! I2 ?9 k4 e0 ?
            int[] count_array;+ }0 [0 S3 j( B, ?, B) q& X9 Y8 f2 S% ]
            Tag[][] curve_array = null;
6 m0 Z7 m& ?9 q# I  X            double[] tol = new double[2];; e& L( t0 n# ~( W% X5 D
) T& S+ ~2 A' `& W2 ~+ F: f
            theUFSession.Modl.AskDistanceTolerance(out tol[0]);3 [5 D) [3 w/ U+ x; `" [; J3 e
            theUFSession.Modl.AskAngleTolerance(out tol[1]);
" f1 w- o1 W: m" \8 Y9 }- B: N# x2 N
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,
# j; _$ T9 h8 u6 N8 g7 l( z                workView.Tag, out loop_count, out count_array, out curve_array, tol);6 j8 |6 ?: w0 L0 g# b8 c2 O2 O

0 o* C! l" [! K3 O            Echo("Precise Outline Loops: " + loop_count.ToString());
5 ^; _& `' f$ J( E            for (int ii = 0; ii < loop_count; ii++)" z/ e. ]2 Q6 [
                for (int jj = 0; jj < count_array[ii]; jj++)+ _$ A$ F3 I: T  F, z$ _% [4 ]2 L
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));" t% y* g9 B6 L* c" p* K9 K# d
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
/ r3 E( w" c4 ^* R6 S! _& D' y8 _7 v  L) K- y9 s- N* f. p
            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
; M5 @& H  X6 i3 a/ X) ?' z9 s            int curve_count;- [9 {5 C2 e* j' ?
            Tag[] outline_curves = null;
4 T8 p% z% q0 C5 O6 o            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
# c/ d6 Q( h8 s6 Q2 S( G                workView.Tag, out curve_count, out outline_curves);5 ]; H) H- G) M2 H  H- A
            Echo("Precise Outline Curves: " + curve_count.ToString());
% S0 _& B) _2 z6 b1 a8 M            */
; x) e& D% h# e* G( y4 V# g( W6 U9 Y6 r        }1 s4 [- m- d; S% z5 I- Z% ~
" r0 d' D- g# y! k; y  x0 o5 P5 z# K- S
    }[/mw_shl_code]
! o! \0 P: J7 k9 B# \1 G[/hide], ?- z4 T# J1 Z1 H" R) ?
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了