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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓
2 ~8 f4 p8 Z6 I9 c  \9 b5 u8 q
# s! d, @* G" |3 hUF_CURVE_create_shadow_outline (view source)
' y% g: k6 \( [3 C6 n* Q 1 C8 x" b+ }3 N
Defined in: uf_curve.h9 m5 C7 J: A* F( b# a3 y: o
3 Q/ J) [) }) {1 I" T. E

% l+ q2 w" A. f# ^& l+ [Overview
% e1 R' ^, S- t" p, |, y0 N4 b. h  W5 Y
Create shadow outline for a given array of solids. Solids passed to this 3 V, ]' B9 i) m/ v
routine must be on a selectable layer and visible. If created shadow curves ! [1 p5 b# Z! o. |, u' t5 z
can not form loops, please use UF_CURVE_create_shadow_curves instead to get % v" h% p  y$ R* {* E' M
shadow curves. 7 q$ K; c+ V7 ^

5 i8 l0 Y# V7 j" A, {
5 i0 {7 b" t7 e  z1 W[hide]
# ^7 d  S* I' C; ^! d+ }6 Q4 r( U% r
[mw_shl_code=csharp,true] void DoIt()
5 t3 U6 W5 e. e0 Z# l: g4 n# o, V    {3 `& Y3 k" A5 L0 Y$ w
        if (theSession.Parts.Display != theSession.Parts.Work)
/ z- }6 J) ]& {            theSession.Parts.SetWork(theSession.Parts.Display);9 [3 r, l4 U* `9 Z- q4 j# m
) |; b, p) r- B( ?& J# A
4 h4 W- p! \! b# q
        TaggedObject[] theBodies = null;4 z6 z/ Y5 [+ M& I
        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)
. w# |; w7 D9 h) m& E' b        {
; w0 T% k3 H; y            Echo("Selected Bodies: " + theBodies.Length.ToString());; f# ?# O5 d0 O+ n
            Tag[] theBodyTags = new Tag[theBodies.Length];: `, Q% n7 G# v- i, M1 v2 f
            for (int ii = 0; ii < theBodies.Length; ii++)2 D% O0 j" D0 P/ X( {+ C, Z
                theBodyTags[ii] = theBodies[ii].Tag;
, d5 \! w  L' |+ A, m
0 N: K; A( a% [1 E3 F            List<Curve> theOutlineCurves = new List<Curve>();2 @/ `1 n0 x% H- o% a& B! ^
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;/ {  A. @) M, @  Z# Q& @, W* k( Z6 Y
            int loop_count;) {7 W+ f$ p/ l+ ]2 b2 X# p9 _
            int[] count_array;
# J* l/ v: g* }( }            Tag[][] curve_array = null;
; Z4 v2 u+ w* W            double[] tol = new double[2];
2 s% [0 X7 A3 q. d! c2 _) V, e6 w* o- m
            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
) R2 I: Z# h9 b+ D6 i5 p. ?            theUFSession.Modl.AskAngleTolerance(out tol[1]);
4 L' |" @- [- J3 L! W4 n
! m  x, Z) P! k! `            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,# D% i, |! L0 V
                workView.Tag, out loop_count, out count_array, out curve_array, tol);, c; B2 g6 B2 ?" F6 {1 k
# {; `9 d/ y- K, c) d8 S! D- f
            Echo("Precise Outline Loops: " + loop_count.ToString());5 g% S' {* s% V8 `2 c% E0 C
            for (int ii = 0; ii < loop_count; ii++); A. B9 T; d8 Q
                for (int jj = 0; jj < count_array[ii]; jj++)7 R6 G3 |& w3 L$ K7 D) V. @( H
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));  q7 {4 q' u8 }
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
* g% F+ _/ {; M# E  n& h; j! f* Q/ q! [) X, @
            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
/ u3 H7 ^) i0 O2 @            int curve_count;
, v% p6 Z4 x3 o6 M            Tag[] outline_curves = null;
' U1 q# H/ I& z, W% f1 c            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags, : D5 x/ ]+ F- g: C
                workView.Tag, out curve_count, out outline_curves);
. g, N: l" T0 f            Echo("Precise Outline Curves: " + curve_count.ToString());
* V9 _8 j% ]* J            */: W1 B, |& a) Q  _4 g3 F) o
        }
4 K+ |  y$ ^  a7 x
0 ~: {9 Q+ q6 e% S0 u    }[/mw_shl_code]
2 B& B. M' Q) ?6 K4 Y' }[/hide], G* Z- P# C+ g6 _
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了