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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓
0 [4 e  S) ]5 M4 {, K3 y  g1 d2 o- i
9 ]0 W5 X  I, x2 y6 L$ p5 E; wUF_CURVE_create_shadow_outline (view source)
) b, e  y2 p; G2 m, i) S, z1 a# `" r
) G3 o2 U' S$ {; \- dDefined in: uf_curve.h  Y7 S( `2 W. m; x, j1 ?/ P5 n
! I- {4 s5 f$ w* z* h1 h5 a

; W& j# a$ U) nOverview
) v' j6 {; H4 c2 S- ~3 Y
% Y7 Y2 t1 i- k( m8 E6 h% d; U* WCreate shadow outline for a given array of solids. Solids passed to this " G' Z) k4 z. _- n. @
routine must be on a selectable layer and visible. If created shadow curves + {5 \4 p) I" e$ H
can not form loops, please use UF_CURVE_create_shadow_curves instead to get ) L! J5 ^1 {$ o. k8 x6 a- u$ |4 c
shadow curves. 6 ^; q9 d) @2 y8 T5 y

* G3 \8 m  e7 e+ T. D& X
& f) e9 L9 j" U& h8 E) S[hide]
: h2 V( v8 s" Z0 Z- T( p" r; i% q
$ @+ Z- Y! Y6 }3 M[mw_shl_code=csharp,true] void DoIt()
* l0 m& }+ ~6 h. Y    {
0 n- z- e, {3 J8 F+ I+ n        if (theSession.Parts.Display != theSession.Parts.Work); ?7 p$ o$ t5 y$ T* j% L0 P
            theSession.Parts.SetWork(theSession.Parts.Display);
; f* T: a, ]; Q  V: ]  a8 M+ U! i3 m: x4 E* h) }( v
' S+ t3 D- {6 S2 `7 I+ h
        TaggedObject[] theBodies = null;3 J4 |  _  U8 m/ f/ z: f2 H# _
        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)
8 H% J! M+ i2 M. C0 [        {( `% m1 J# q- J! i) G
            Echo("Selected Bodies: " + theBodies.Length.ToString());
9 W8 Q$ j, p; q; V& k9 E            Tag[] theBodyTags = new Tag[theBodies.Length];$ F2 y: z5 H' g9 x' u+ C2 R7 i) L. v% P
            for (int ii = 0; ii < theBodies.Length; ii++)4 {* l. c- w, D6 W/ n
                theBodyTags[ii] = theBodies[ii].Tag;$ f6 I( r0 S- }. d, ~* l( W/ m& n* Q
& Q+ b$ z' S7 ?/ \
            List<Curve> theOutlineCurves = new List<Curve>();
8 h0 g" E; ?+ W" K& D4 F( l8 Y$ B# ~) Z            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;
3 L! [, H7 l7 V! O! _( f; B            int loop_count;, N( b, R6 p% }; V, g+ ^, w+ }
            int[] count_array;
6 _! m/ m( Q! ]) G4 l4 v5 U  H            Tag[][] curve_array = null;2 m' U* [  Z' d1 @& q
            double[] tol = new double[2];
( w% x/ n: l+ {. i1 E" c* M  C
( C7 ?( g4 _; ~            theUFSession.Modl.AskDistanceTolerance(out tol[0]);9 q' h) P4 W+ A
            theUFSession.Modl.AskAngleTolerance(out tol[1]);
; N9 a! R, J# T- k
( k/ k6 i8 J: x/ i( T# c            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,7 j1 V% m, I1 J0 ~, L( f
                workView.Tag, out loop_count, out count_array, out curve_array, tol);8 a, ?, X- M. U* ~9 E

, p) W; }2 @( ?6 U; A            Echo("Precise Outline Loops: " + loop_count.ToString());
+ W' H# c( l: J) ]1 o            for (int ii = 0; ii < loop_count; ii++)
% T4 G9 c  |9 X# f/ X) Y7 s                for (int jj = 0; jj < count_array[ii]; jj++)
9 I6 q3 {/ e: E2 ?3 ^                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));5 K3 {$ }5 N+ O
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());9 R; G, z; M0 E1 L( B( Z1 W

$ G  L2 h# L, b+ }            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead ) K  Z  E# Y# [) v' i8 d4 q1 @
            int curve_count;
& c" T3 {9 }# ~. {            Tag[] outline_curves = null;  G7 ]; |4 X: I5 e
            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
5 t2 i* t. }2 K- \                workView.Tag, out curve_count, out outline_curves);  p* G# h" W' L2 Y$ T2 T/ A
            Echo("Precise Outline Curves: " + curve_count.ToString());
0 X, M3 l% y+ Z; M' ^            */
9 l' z5 V. s: l( r- l        }& v6 p' V7 W) N8 k2 ?6 Z* C

- ?5 B& g' i/ J9 A    }[/mw_shl_code]. S* ?4 m$ _! Q0 X6 u- b. {2 G
[/hide]1 F1 R9 `5 @4 g9 W. Q
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了