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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓
$ k5 W9 n6 l$ v+ P, ~5 @( a! ?2 g& g7 c6 f+ L) s
UF_CURVE_create_shadow_outline (view source)# a$ o8 r9 d' d0 S, f6 [0 y3 [

, {5 K$ P2 }* H8 `' Z% DDefined in: uf_curve.h
3 H: F! V" \7 \5 F0 y; `2 x7 m
4 u9 L* p/ n& N5 A5 }
& i5 |2 u0 ^- z2 G& p/ H1 h7 R/ qOverview1 d$ Y& ~6 D' j$ ]$ N: x
/ O9 V4 t+ {: \# g. o0 l
Create shadow outline for a given array of solids. Solids passed to this 5 R& j  y# ^& U6 |5 |
routine must be on a selectable layer and visible. If created shadow curves 6 L4 k7 D: t! q, j0 T
can not form loops, please use UF_CURVE_create_shadow_curves instead to get 9 K( @/ l4 ~; o; G- ?$ k$ e0 [3 O
shadow curves. % g: k5 v( c2 `+ O4 d4 p% ?

% K; C! ?( m% Y$ @5 k: U4 ~0 `  ?6 H
[hide]
- R' D8 A1 ], N4 |" Z4 g: }: v
2 p+ o( A, W8 L7 y4 a# O3 i[mw_shl_code=csharp,true] void DoIt()# ~* u, @6 G% Q2 M5 _/ y
    {* y' B  Q  ], c
        if (theSession.Parts.Display != theSession.Parts.Work)
9 m+ x$ m2 ^# Z2 Q            theSession.Parts.SetWork(theSession.Parts.Display);
/ y' ^8 c  l. j- Z
# v9 s) S8 b+ V5 t
% H) M/ o0 q5 d9 |        TaggedObject[] theBodies = null;
' w/ J! b2 _: J, s3 k        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)
/ l- L5 S/ }4 X- t5 B7 J" W2 e        {1 a* w3 {/ g* p4 |8 Q3 B- o
            Echo("Selected Bodies: " + theBodies.Length.ToString());
0 a5 @1 N: e. a- j            Tag[] theBodyTags = new Tag[theBodies.Length];
; [8 M5 K5 y0 w, x( l            for (int ii = 0; ii < theBodies.Length; ii++)
+ Q1 E5 @$ c3 K                theBodyTags[ii] = theBodies[ii].Tag;
- S$ b2 m% i1 I! V% t& I- [0 {  X1 V. y4 h0 @# a3 v( J. c
            List<Curve> theOutlineCurves = new List<Curve>();# U: g" ~0 {5 j- }, m8 G6 @) _. j
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;' E9 B* a8 E! @5 }5 a3 M" m% _
            int loop_count;# `) q+ f3 j6 v+ P
            int[] count_array;
3 |* `5 W" Q# {            Tag[][] curve_array = null;6 J" e  L2 t$ [4 d' [
            double[] tol = new double[2];  i# r! s! |- n/ z+ ?4 S+ [

9 e$ t$ O' k" U6 ]* o* Y8 S& c, d            theUFSession.Modl.AskDistanceTolerance(out tol[0]);* v  J+ o# p# I) l! C# e
            theUFSession.Modl.AskAngleTolerance(out tol[1]);
! x3 I2 v5 B6 H$ i! F! ]  a/ _( w! Z: J
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,
, s; g" {  u1 V9 ^6 }                workView.Tag, out loop_count, out count_array, out curve_array, tol);
+ e8 F1 p" e" D" a4 Y8 [: D1 m/ E
4 }1 C# B# `$ ^4 ?" }            Echo("Precise Outline Loops: " + loop_count.ToString());7 U. Z& F- d' n1 O& Z6 V, h9 Y
            for (int ii = 0; ii < loop_count; ii++)
! G- O0 l+ C: Z8 E                for (int jj = 0; jj < count_array[ii]; jj++)
# E* v9 }% D: s9 Y+ o                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));7 g; Q: T' b; T. o) l
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
; `) l* w$ l6 B+ E, Q2 g$ ~0 C5 d. p9 f. `
            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead 0 N9 u0 S- z% h" b5 m5 J) |
            int curve_count;4 K" q( w5 x9 a; d* z+ w. V
            Tag[] outline_curves = null;
( a# w" k. _) g# O, h            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags, / a1 w5 {& U4 F# W- Y' c8 m8 D* m5 O
                workView.Tag, out curve_count, out outline_curves);; e' m4 M( w/ Q1 e
            Echo("Precise Outline Curves: " + curve_count.ToString());
! e& D" e; t2 v5 F            */8 v/ ~! s7 [4 `9 g. Z: p9 X# K
        }9 n7 h! |+ F, x' Y2 t' S

2 ~* d. V: V5 @  ?8 A    }[/mw_shl_code]* C- E1 E: X& A7 Y
[/hide]
/ v* q- p; S! P; l
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了