PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓
% D. A: X( @1 s+ D3 T. J) [! g
UF_CURVE_create_shadow_outline (view source)" f# B" J9 n/ j
. T! E- b/ W: T" G% o1 E* D* C: E
Defined in: uf_curve.h+ I# V: b' @1 u* K
% J* e: r- Z7 f+ m, r

4 b$ u3 ]& A2 E; D- C: UOverview
3 S: p( W; z: R+ L; C; Y9 A% j( \( Q: x9 f; ^( [1 `* T  T7 t
Create shadow outline for a given array of solids. Solids passed to this & x: S+ h' W! f& x$ x( D; j% |
routine must be on a selectable layer and visible. If created shadow curves ! b/ o# g6 q/ j  x" }' k9 _; S0 X
can not form loops, please use UF_CURVE_create_shadow_curves instead to get 0 S. x- G4 n. S0 a; w+ K1 s
shadow curves.
5 X7 ~; a' O7 r& ^  J8 X
0 o! V' D" t% d0 c* v( Z4 m) F/ M) A) J+ y; G& {4 d- ?# ^/ }
[hide]- e; a5 J; E/ u$ T/ e3 I" ?' c
  j6 [, R2 N% R+ {8 `
[mw_shl_code=csharp,true] void DoIt()
; n- I4 V7 X( T2 `( {+ j7 t    {* w3 g. y( J5 g3 N4 t+ b$ g
        if (theSession.Parts.Display != theSession.Parts.Work)
' Z" r* G/ J1 L/ X9 v* P: J: v5 B            theSession.Parts.SetWork(theSession.Parts.Display);
7 L5 v5 I7 {1 u7 A) q1 a
$ W# A2 e1 [7 W3 n4 q- l7 S5 f4 M; h" \0 d- s
        TaggedObject[] theBodies = null;( ], v' V) v8 b: u8 M; y1 s
        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)6 }! h+ ]4 X7 A6 Y/ g7 m
        {) e  E$ ~1 K( N- w2 l& ~
            Echo("Selected Bodies: " + theBodies.Length.ToString());
, u3 w3 s0 f4 C8 a- o' v. H* E0 j            Tag[] theBodyTags = new Tag[theBodies.Length];
; s2 f* c, `& o* b            for (int ii = 0; ii < theBodies.Length; ii++). r- v7 S' ~5 y3 J! @8 j+ P( H
                theBodyTags[ii] = theBodies[ii].Tag;- @$ l- H( j) M  {
2 a3 b( u  J$ ]5 n! g/ ~5 w+ u
            List<Curve> theOutlineCurves = new List<Curve>();
6 O4 ^: h8 o( e$ Z            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;
4 \1 V0 R0 X! r$ i5 |            int loop_count;/ k' {- d; f, Y- C# p
            int[] count_array;
& U/ D& _& J9 \% E  C/ S            Tag[][] curve_array = null;
1 q: p, g' x# V& @, [            double[] tol = new double[2];
3 f+ |; g( D! D. z; x1 Y9 q
7 o3 Q& I+ A5 [1 G# M            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
4 C2 ^/ a& Q$ |- L( L            theUFSession.Modl.AskAngleTolerance(out tol[1]);
0 A; r4 }$ Z" C5 u. I$ }9 d
6 w7 T) ]9 o1 ^) B. H, _            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,
: R9 m8 ]& @! N: D* X                workView.Tag, out loop_count, out count_array, out curve_array, tol);
( f' j! B" b; D3 z2 k- ]
9 c" d  e( D# e            Echo("Precise Outline Loops: " + loop_count.ToString());
( f% {9 [: d/ Z% w0 w            for (int ii = 0; ii < loop_count; ii++)
& B( |# _  k( a                for (int jj = 0; jj < count_array[ii]; jj++). |& I; o/ t: w& G9 w0 O+ A
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));# d; T+ d2 U4 q4 X9 @5 A; n& _" n
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());, h4 T. u/ y1 e+ t! U' }; _
. f3 s* s. `! e8 ?. }" Z+ X
            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
$ e/ c* S' P% D- b            int curve_count;
+ |4 }8 x8 u- m+ j            Tag[] outline_curves = null;2 a. \* C$ r! r5 _
            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
/ i! m0 U, `6 h- z                workView.Tag, out curve_count, out outline_curves);
% L, l4 `1 W, {& E            Echo("Precise Outline Curves: " + curve_count.ToString());
4 s/ s. ?' i+ w  {2 d            */
9 s, _+ W6 T8 Y" r        }
$ W% z' b$ y& p" A3 _1 I5 [3 D8 @
9 @0 P: R; S5 }5 V1 C    }[/mw_shl_code]* V8 ^. H/ Q9 a- X2 `
[/hide]
! B. u5 a5 o  s& E# Q) p5 f
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了