PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82170
QQ
发表于 2019-1-17 10:56:35 | 显示全部楼层 |阅读模式

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

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

x
NX二次开发源码分享: 创建精确外轮廓( f5 Y1 W( ^" H- x& Z
+ G$ |1 C3 m6 @
UF_CURVE_create_shadow_outline (view source)* S) h; l% L; M- @6 K+ W# Q
1 W- V  x; a+ @; \  A7 J/ q4 _
Defined in: uf_curve.h
2 a5 t9 G$ C5 `- }+ g" ~# |/ y/ ~ + s# p- s3 P8 Z) {5 ?( n
2 F8 q- U3 g. x
Overview
1 W% n% R. P! g! O  F3 g# p) I+ ~# Y# o
Create shadow outline for a given array of solids. Solids passed to this ; b3 S7 Y. i& M/ X6 u2 T) \
routine must be on a selectable layer and visible. If created shadow curves
8 M3 n) z  Q3 d3 K( m& R" Dcan not form loops, please use UF_CURVE_create_shadow_curves instead to get 8 B( T5 r0 }$ k2 N
shadow curves.
- w' x% y1 X" b$ P6 @" J1 h! u6 g8 D7 @: e0 z$ h6 }5 e
9 z: L+ I* a$ U* P  {( P
[hide]
' [4 p- L9 R8 P+ a) L
9 c3 K. @+ |, I0 c* b$ l[mw_shl_code=csharp,true] void DoIt()5 T1 ~# W, [# e" u
    {
; W+ ~1 B; k* |, Y: A        if (theSession.Parts.Display != theSession.Parts.Work)
2 p2 m9 w+ p5 v' n0 ~" y            theSession.Parts.SetWork(theSession.Parts.Display);
4 ~4 @' X  i7 E* u. W, d$ d9 J( I% D: `! U/ m, A6 B
' g' ^8 W$ D9 {5 ?2 S
        TaggedObject[] theBodies = null;. n; e. z0 \# V' P3 \: s
        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)
+ }) Q" b* e: b8 J# C        {/ r2 e2 i5 V+ W
            Echo("Selected Bodies: " + theBodies.Length.ToString());
6 X/ _- P: G- U# R            Tag[] theBodyTags = new Tag[theBodies.Length];
, S& L7 }) p( ]+ P" V) _2 {0 g            for (int ii = 0; ii < theBodies.Length; ii++)
# T: ]6 N' q  I0 C% ^1 A$ H" M' _                theBodyTags[ii] = theBodies[ii].Tag;
9 K9 S. e/ `/ Q1 ?
9 W( C, F' d2 A! ]8 c4 o# X) \            List<Curve> theOutlineCurves = new List<Curve>();% \0 B! t7 H" F% l. W: ~( W
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;
% V4 M' I$ b& U( c3 d7 k5 n            int loop_count;
! [( X# K& b2 V  `2 m7 I            int[] count_array;
) f6 \; A5 s1 B  F$ V            Tag[][] curve_array = null;
% B# R+ R, n+ }7 A  s            double[] tol = new double[2];
% D4 W" H6 X  `% U; H
! L4 i) s9 F  m. ^            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
$ H! B# X8 v/ U& O2 v" C            theUFSession.Modl.AskAngleTolerance(out tol[1]);- m/ S: `# T; \2 ~

; X+ h8 X. e, R/ M            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,+ O+ i: K& k$ a
                workView.Tag, out loop_count, out count_array, out curve_array, tol);
/ u5 p- ~/ ~$ i, l. @0 m1 X( I
' l/ W  ~$ x5 H  b7 z  J7 `! V! z/ t            Echo("Precise Outline Loops: " + loop_count.ToString());
5 l% n7 p4 S* N8 x- C            for (int ii = 0; ii < loop_count; ii++), V9 t1 A9 ~1 `6 V4 _1 h$ B
                for (int jj = 0; jj < count_array[ii]; jj++)" g. }9 t8 c. C+ W  v; m
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));
1 D0 h: a9 }0 \            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
% i0 p# E' d8 l. v; a! N6 J2 B) F( E) b, K- l5 z# O9 M; n
            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
: Q3 W& p( m+ A) A5 Y            int curve_count;% g3 }2 ?( `' E( T  T1 i
            Tag[] outline_curves = null;2 l7 O4 f8 P+ _0 F
            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
* q5 n0 n* I+ F, Z! g* s                workView.Tag, out curve_count, out outline_curves);
- Q- n; J( R. T" K' ?' V4 w3 D            Echo("Precise Outline Curves: " + curve_count.ToString());
4 z7 Y% v$ X  }            */
! D. l6 [1 j( q% h7 m* V/ z7 `1 y        }" o! a$ A. R, C4 }+ z" c, e

6 G  H& G: N* q' ^, W    }[/mw_shl_code]
7 H8 w4 Z! i0 {[/hide]6 H3 T+ h& H) j7 F- z3 E+ A! o3 a
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了