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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓9 k) `- s3 Q: s$ l! Z6 a) g& Y

1 G$ \6 h( Q6 `  m5 bUF_CURVE_create_shadow_outline (view source)& o/ v5 w+ I5 |9 X% U( I
- ]4 S$ u( C3 W4 X* y! N7 s
Defined in: uf_curve.h8 @  J6 u9 d8 A* O, H0 D. B
& u  G) e, [( Q; ^! {

( @& D7 h1 ^3 [Overview
+ [5 N5 K: Y1 w5 t
* P, ~, Y$ C% @" j. VCreate shadow outline for a given array of solids. Solids passed to this $ v/ H8 l. b( R- x2 d# G# c$ T8 e+ ~1 W
routine must be on a selectable layer and visible. If created shadow curves ' J# t* j' n( r# s6 m2 s
can not form loops, please use UF_CURVE_create_shadow_curves instead to get 1 L$ s, `; r% I4 _
shadow curves.   A" L- u7 [1 U: L
0 D6 @0 M% Q! K1 U

. o4 A9 H. R1 |: w. u[hide]
* ^$ Y( u* N  X0 P. c" A' ]- J' S/ M) h+ V" [
[mw_shl_code=csharp,true] void DoIt()5 T6 t# {9 L% m$ e, {7 D8 O5 b
    {
# Z* o; p! U9 ?9 k- {8 N5 a        if (theSession.Parts.Display != theSession.Parts.Work)6 Y2 d- [- l( f9 g% k# L
            theSession.Parts.SetWork(theSession.Parts.Display);
& V: S, `+ m  `# I' x# I$ {4 a! z  `% _! y* s. K0 I% _
. s& `. p/ o7 {4 X! b
        TaggedObject[] theBodies = null;
* X) n$ P, Y+ P" o" M3 @! u        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)
; m8 _! }4 j" B1 S( d* W* F/ h        {9 u9 j3 V0 |7 ]9 b* e* v1 a
            Echo("Selected Bodies: " + theBodies.Length.ToString());
' h6 q; i7 Y' V            Tag[] theBodyTags = new Tag[theBodies.Length];
: l" e: Q+ K/ h2 H8 }            for (int ii = 0; ii < theBodies.Length; ii++)
* a  `: Q5 h9 b) ^$ f                theBodyTags[ii] = theBodies[ii].Tag;* P5 D' a# r/ y$ r% I4 r7 T" t

) Q5 m. `* u. O: e* [            List<Curve> theOutlineCurves = new List<Curve>();
% v% q! ^* {  x$ A7 ^. ]            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;
- Z0 f+ z7 c' ^( X1 U& p            int loop_count;
9 l. k$ W) F" M( t            int[] count_array;4 l0 F# X5 P" c' X
            Tag[][] curve_array = null;
# M* |0 H4 p# F) j" q* v            double[] tol = new double[2];/ i$ R, ?( l1 Z: v6 l
5 K5 I( I2 w: {. N) A
            theUFSession.Modl.AskDistanceTolerance(out tol[0]);6 U# ~  E% k, l3 ?8 W
            theUFSession.Modl.AskAngleTolerance(out tol[1]);
/ h" o. t( B$ b/ h0 s
: Z1 w1 s# s; K( C            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,: [7 [% Y/ @& r/ B( H
                workView.Tag, out loop_count, out count_array, out curve_array, tol);+ O7 G% }) ~* d* I
( V% h* d% M% X1 ?! A# P
            Echo("Precise Outline Loops: " + loop_count.ToString());
, _% U* e: r6 i3 C% S            for (int ii = 0; ii < loop_count; ii++)
6 U  \! [6 Z; k4 N                for (int jj = 0; jj < count_array[ii]; jj++)
. \' w+ ?. W9 n$ h& I3 D                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));
6 w" \( q0 n3 a1 `' y+ `+ y, _            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());3 H' Q. j. y& d+ H/ ?) q
% s4 d  o2 K1 Z) K1 `) U6 ]6 U
            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead 9 c% Y+ U9 H6 u5 u4 D: Z8 k
            int curve_count;
0 `8 q, ^. z2 h- b            Tag[] outline_curves = null;* A5 l9 i+ H8 J* `$ T
            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
) J- {, C( s8 j) U0 [/ K( I, f1 y                workView.Tag, out curve_count, out outline_curves);
2 V! x" U2 x1 \1 O            Echo("Precise Outline Curves: " + curve_count.ToString());
) M2 w3 z" n% o/ J1 B/ U            */+ Q9 O6 V8 G+ g5 i9 ?2 A
        }
  r/ g7 ?7 L, t5 ]3 N! |
2 k+ F9 V/ ]1 x6 }& Z# @    }[/mw_shl_code]7 o6 w$ t* i6 j6 S3 p
[/hide]
' e1 _$ C( n# n% ?: {" G1 b" n
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了