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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓8 z# J  Y$ ]! ~  H. Q6 G
7 Y, H, R. I6 V1 P7 L
UF_CURVE_create_shadow_outline (view source)$ c. B7 ^& U+ N8 G; Z: ?
# q+ I8 C) h- Z) t+ {
Defined in: uf_curve.h: y- }8 F0 b9 L) C' `

9 l/ b- _& B* B# {5 f3 C
5 t, @) O6 j' c  K. s1 }Overview) A% l7 E# s- {! f. m
: c, W4 T1 z& g
Create shadow outline for a given array of solids. Solids passed to this 8 G7 m" R/ T) E
routine must be on a selectable layer and visible. If created shadow curves $ \3 x  a% U( U3 ^# t
can not form loops, please use UF_CURVE_create_shadow_curves instead to get
9 m+ d/ o  X" i4 V1 d6 ushadow curves. ( m# P) I9 x( Y

6 G) M3 _4 D  I$ v4 i/ P4 Z! z! J
[hide]# |  R3 q5 N8 X1 G* j; a6 m! C

% Z) z; I8 l( A* l2 _6 P0 v[mw_shl_code=csharp,true] void DoIt()0 C! v' b4 B4 n) q
    {
1 o& t5 W6 G3 U' G* S1 ]: k        if (theSession.Parts.Display != theSession.Parts.Work)2 ~; e9 |# m* ~% u. d+ K
            theSession.Parts.SetWork(theSession.Parts.Display);1 U; [* y7 ^. ]  |2 ~1 j
* }3 E; \. \4 C- A# a  H' K% u: M

% ?3 ~2 B" ]( a' e- F, s) `        TaggedObject[] theBodies = null;8 M- v5 j# j( n0 z! V9 J' T: e
        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)" ^8 ~" [9 O) Z/ K% f
        {% T9 W, M2 M& A1 v( A
            Echo("Selected Bodies: " + theBodies.Length.ToString());
& N" z9 [8 A0 V: y7 N            Tag[] theBodyTags = new Tag[theBodies.Length];( k# c4 {/ s* x9 [; a/ ]' i# u
            for (int ii = 0; ii < theBodies.Length; ii++)! i! X5 ?6 o/ N6 M( d
                theBodyTags[ii] = theBodies[ii].Tag;
+ E! e3 X( h0 J# k/ N/ O- u
. u# e. G9 p2 ?4 j. w            List<Curve> theOutlineCurves = new List<Curve>();& K7 U4 \% ?: Y; h' L6 f. O0 S4 A
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;
/ u* b( G8 r( D, L6 X            int loop_count;% f/ F- C" {5 c) Q, D) l
            int[] count_array;/ F1 ]7 C9 E7 C$ R3 f
            Tag[][] curve_array = null;
% a$ Y( k9 U. v& G' A2 _            double[] tol = new double[2];  p$ X- c( V! k3 W
, o2 r: m% w: x6 p) O
            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
, E  k6 {3 U. t            theUFSession.Modl.AskAngleTolerance(out tol[1]);
2 u7 O" m6 ?4 h4 Z: {( M  }. R9 Q/ V6 I9 I* R5 p* T
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,
( O) j3 u" ~( W                workView.Tag, out loop_count, out count_array, out curve_array, tol);3 J& a% c) G9 p- J+ t, M5 Q0 S3 e
$ @! ~7 a$ F( k' B
            Echo("Precise Outline Loops: " + loop_count.ToString());
# g9 {4 I" [! O& A7 \            for (int ii = 0; ii < loop_count; ii++)7 I; N, l# y* [  w# q) D1 @
                for (int jj = 0; jj < count_array[ii]; jj++)
- z! L; s% V4 K+ l                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));
+ @. f$ C' `" b* u; b0 N" ~            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());1 N# S7 k. r7 t' g9 E. |

$ z$ W4 v1 {, g2 J$ M; S            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead ' {2 T; ^3 [2 I$ m$ ?5 L+ h/ X
            int curve_count;* R5 y6 W7 ~+ f8 p! H' v
            Tag[] outline_curves = null;
0 D6 P, f3 t- b            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
" c+ E, h" H4 v$ x" x; I                workView.Tag, out curve_count, out outline_curves);
7 h  T8 k( y+ M' g0 ~# @            Echo("Precise Outline Curves: " + curve_count.ToString());  c1 P8 {# b2 `5 a+ D$ O9 i
            */3 i6 D& z6 s* z
        }
& l: h. c  W$ ^3 s
9 S2 \3 U0 D  h  z    }[/mw_shl_code]3 H/ D' A& g/ J! d' C; H" N5 d
[/hide]) o* ]- J" t- V5 }- 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二次开发专题模块培训报名开始啦

    我知道了