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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓
7 }: S" ^. S- e! z. ?3 Q( u- A& T! ?* J- W: |
UF_CURVE_create_shadow_outline (view source)- w, J/ f' O8 `6 T7 M

: B4 A/ h' H5 c6 gDefined in: uf_curve.h+ P* W4 e0 |" d
6 m/ P+ o" U5 O" F, L

5 o, L1 m, Z6 k  P0 k( ~Overview* u- D4 _9 a/ n2 i6 N

# x- C7 ]5 S2 e! NCreate shadow outline for a given array of solids. Solids passed to this & v! ^' x1 N4 _7 i" }, |
routine must be on a selectable layer and visible. If created shadow curves 6 n# n  ]/ b) n  U7 L4 p
can not form loops, please use UF_CURVE_create_shadow_curves instead to get
4 C5 k2 ^/ s: z' F9 Yshadow curves. : I7 A0 m- }+ n

4 k$ k9 i+ Y* @! b6 I0 _' C4 y
9 Q! q& z; c. w8 R, X7 T( V. M  C[hide]/ K. u7 g7 v& W# o

- h& \( L% z& x3 U& F[mw_shl_code=csharp,true] void DoIt()
( C* N0 B& \  i( K! z3 n    {) e$ k, M4 \; l" I0 J( S& H5 ~4 Y2 i# N
        if (theSession.Parts.Display != theSession.Parts.Work)2 I3 L; {: \3 A! v! }0 Z& E* @
            theSession.Parts.SetWork(theSession.Parts.Display);
# p2 @# q! }( }/ J9 X
5 i9 e3 e5 I, d6 K2 \" W; s4 a. S: Z! S9 r$ V0 H* k; M9 ?
        TaggedObject[] theBodies = null;3 {. J$ x; u+ I& S
        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)7 O3 [8 `+ I6 x/ h/ f8 f
        {; F# D. Q$ z1 {+ Z7 U2 _4 m" }
            Echo("Selected Bodies: " + theBodies.Length.ToString());8 `# o. s+ U4 ]/ z' G" M
            Tag[] theBodyTags = new Tag[theBodies.Length];
8 z( \- |$ l8 V, {            for (int ii = 0; ii < theBodies.Length; ii++)$ y* H$ H1 C* @
                theBodyTags[ii] = theBodies[ii].Tag;
) y, L0 \. @; K
1 L2 `+ E# e4 z9 {/ k/ Z            List<Curve> theOutlineCurves = new List<Curve>();
9 X* x1 B* W6 i  M            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;* ]- }. L1 f& N
            int loop_count;% B. r& i: I" t& y
            int[] count_array;
! g  W( P- i" ?3 x4 ~' \/ m            Tag[][] curve_array = null;
: l) H, K) W* g            double[] tol = new double[2];
- f$ w. N$ |* w" e, H
2 t9 v5 U6 A  g( U+ x            theUFSession.Modl.AskDistanceTolerance(out tol[0]);, ?6 t6 A1 N9 W
            theUFSession.Modl.AskAngleTolerance(out tol[1]);. P! m" c+ r9 B, p( ^& X3 [
, y+ o8 P% J, K
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,) c3 z" v2 v/ R  Z5 J
                workView.Tag, out loop_count, out count_array, out curve_array, tol);
! n6 `1 B! T, N+ [
5 o% k6 b$ B/ S8 `3 T6 i            Echo("Precise Outline Loops: " + loop_count.ToString());) e8 c: Z- K$ \! k& v7 V2 J
            for (int ii = 0; ii < loop_count; ii++)5 {3 V/ a& O! \. B
                for (int jj = 0; jj < count_array[ii]; jj++)
, {, {' n8 x- l* n, S8 a                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));0 I4 d% K* \4 g3 b# D9 ]/ i% |/ J! A
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
, X0 N9 D. r3 G3 v% c, ?* X* {* l$ g* t& |, N
            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead + f5 e& m# z" d5 I
            int curve_count;
. h, E, W' P. \2 |* S: L            Tag[] outline_curves = null;
2 _. D+ ~1 U  B; L            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
' \! K6 ?5 N7 K# o5 l8 T                workView.Tag, out curve_count, out outline_curves);
5 @# i4 Z! Z, h1 n; n            Echo("Precise Outline Curves: " + curve_count.ToString());1 J' R7 s& d# j8 c6 l- O
            */1 I: b- g- d4 w2 x+ N# l
        }# r5 k0 q- F, r  |+ w

( s; _6 J8 Z" {  [+ K. o! L) t) w    }[/mw_shl_code]
( k# M! ^# b; n7 \/ |[/hide]" E0 J- Q7 p" P
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了