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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓+ |" W# d9 A+ ?: P$ z8 b
  S5 O0 n, `9 o
UF_CURVE_create_shadow_outline (view source)% A1 e; Q2 x5 i6 m
  g  Q' a: V3 i. P3 k
Defined in: uf_curve.h3 J; ^9 k2 C$ {+ ~5 o; ^  l* |
8 M8 B; j* J' E3 x4 t- M4 g
# a5 G( @1 Z$ b" j, v
Overview! c& F7 b* e8 ^

  D3 {2 B2 n6 zCreate shadow outline for a given array of solids. Solids passed to this 0 E$ J) d2 ^5 ?- x* F
routine must be on a selectable layer and visible. If created shadow curves 0 n1 q8 x3 }3 K- m* I, j3 S0 a
can not form loops, please use UF_CURVE_create_shadow_curves instead to get
0 x- |% n5 g/ ?2 Zshadow curves. * I* o2 O5 I. \1 r0 u# e6 u
6 O9 E+ ?9 p+ r, n

# G  k) u  y3 i. ~, G1 B[hide]
; e" o' f) b6 C' q
! k+ B: @# _7 Z+ r) B) a[mw_shl_code=csharp,true] void DoIt()" R- {, V. O' Y, P9 d, z
    {
8 G9 l2 c6 g. t, E) {" p        if (theSession.Parts.Display != theSession.Parts.Work)2 b0 m' g; z. O- v' _' j% f
            theSession.Parts.SetWork(theSession.Parts.Display);
2 X3 A1 f9 B' k& l* d( F) z% ~+ @/ U  v, s8 C7 ]
  z3 R8 F1 ~' ]6 ?8 x- \
        TaggedObject[] theBodies = null;: V; N' K5 t+ [$ V6 E
        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok); Z- i! \7 z' y- J) f
        {
0 K0 f- I8 D0 `' y8 X& S+ Z$ ~            Echo("Selected Bodies: " + theBodies.Length.ToString());
+ v) L& D* Y$ ?, f- h# t4 E% O            Tag[] theBodyTags = new Tag[theBodies.Length];* r( R+ f2 D) Q3 y; S0 I
            for (int ii = 0; ii < theBodies.Length; ii++)4 f/ }; [% ^$ ?2 a! L4 b+ w- u
                theBodyTags[ii] = theBodies[ii].Tag;9 @3 J2 w7 h0 H% N  F
& U  Q; b0 k5 `1 \
            List<Curve> theOutlineCurves = new List<Curve>();
# C  Y- r! X7 ?) p, e8 v3 P            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;
  w# Y% _+ [$ \- R5 I* C7 j1 o1 w" c            int loop_count;
- _% N4 f% Q4 [$ c' H            int[] count_array;
& a6 s# x, k. B# l: f$ V) }            Tag[][] curve_array = null;; ?3 I' H0 T0 `, w
            double[] tol = new double[2];
* Y7 z. G- x3 K) u
: z) [5 O7 @: H" S            theUFSession.Modl.AskDistanceTolerance(out tol[0]);& |, k$ {! m* c1 B. Q! S
            theUFSession.Modl.AskAngleTolerance(out tol[1]);
) Z1 ~, U% u' N; w: ~3 ^9 E) e% X  q$ b  V0 Y
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,8 O$ w1 `1 p- u8 i
                workView.Tag, out loop_count, out count_array, out curve_array, tol);
) n$ q- v/ }1 O; a  r# q& `
, A9 f8 W. g- U3 [- l            Echo("Precise Outline Loops: " + loop_count.ToString());# a9 V  A1 ?* l6 Q+ W# p5 x
            for (int ii = 0; ii < loop_count; ii++)
$ x2 P- X/ o' F& A7 s                for (int jj = 0; jj < count_array[ii]; jj++)
4 l2 S* M: K4 Y2 o$ U' K                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));+ Y/ c6 _7 W" [2 F4 j
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
0 M2 x' f/ f# ?/ s8 s4 x
7 D2 W$ Q3 A- q" G% W6 l            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead 4 `+ X+ a7 q1 E* a; E: i
            int curve_count;; X- e# R: p: I' Y: K
            Tag[] outline_curves = null;
& s+ w! G* \- [. k) {            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags, : Y" p; f+ y1 f
                workView.Tag, out curve_count, out outline_curves);
# w9 i$ c/ H5 K6 c1 }5 G, |% Z5 A            Echo("Precise Outline Curves: " + curve_count.ToString());
- e# p# f, ]7 m' i" m            */  |% C! Q) g4 F
        }
1 ~& n# k" ^3 m. L
) }4 c" J- y  M7 [" g# U    }[/mw_shl_code]
' o0 [0 B/ i7 [5 t8 ~[/hide]7 l" P5 Q( n9 C5 s/ o" ^
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了