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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓, b+ T( e1 ?6 o1 T  G
& U& ]9 p/ M0 [( U4 g% ^2 @. \
UF_CURVE_create_shadow_outline (view source)
4 _3 h7 c; o, y: \$ I/ J5 B 7 z, ]1 P9 q" V0 c; u9 L
Defined in: uf_curve.h9 Z0 ~1 G7 H! z
; y! p/ |( c/ o" d  @' E! ?, F
4 J# R; V4 j& c% j# A" n
Overview
3 f& X  {. ~! [0 ~8 l# z1 D8 i4 t2 N% B' B! U$ ?0 w
Create shadow outline for a given array of solids. Solids passed to this 4 p9 p& R. ]3 ]- w+ \
routine must be on a selectable layer and visible. If created shadow curves ' ], ~8 V( i4 u5 J$ `2 s
can not form loops, please use UF_CURVE_create_shadow_curves instead to get 4 p9 E" q" G& z5 I3 E
shadow curves. 8 c* w) h% i6 r- y9 y. f

+ Z0 T0 j& s# R9 O: a6 w* P
/ T! |, I, t9 `% S[hide]
- [0 P1 S( M+ w) J3 F' [" `
7 s3 ~# j3 ]% _4 ^* [8 \, S[mw_shl_code=csharp,true] void DoIt()
% [) ]6 y3 P" Y* r2 a5 ?' U    {
) K. c7 ~/ C$ F        if (theSession.Parts.Display != theSession.Parts.Work)
2 p2 Q& R6 x: F5 j            theSession.Parts.SetWork(theSession.Parts.Display);
( Q. {7 N# A5 }8 w1 m( P0 I6 r- [% ]

6 O9 O, V. g( V, H1 N        TaggedObject[] theBodies = null;
. w2 c1 |4 D# h! |        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)( o* a" v# a4 p( o
        {
; U1 D4 }$ C( C, m            Echo("Selected Bodies: " + theBodies.Length.ToString());
3 u6 K. a8 J: B            Tag[] theBodyTags = new Tag[theBodies.Length];
8 E6 i6 k# M0 [( T+ ^# B            for (int ii = 0; ii < theBodies.Length; ii++)9 Z9 h$ D& s5 B& S) U
                theBodyTags[ii] = theBodies[ii].Tag;4 M  Z' g- s8 y* f7 K
. ?9 y+ o- L3 g( F, f
            List<Curve> theOutlineCurves = new List<Curve>();
# \1 E0 z. V/ s9 a5 f" v            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;
+ [7 B. D$ X) I% S* O- @            int loop_count;7 ]( D6 |4 f7 n2 g+ g2 B
            int[] count_array;6 v" V+ A* J% v, z9 A
            Tag[][] curve_array = null;! \3 R: ^# H3 e5 Q) e  g) e9 X
            double[] tol = new double[2];9 l- n0 X, ?7 i8 R0 ~+ |

7 x! P" |- ~1 h/ ?, B! H            theUFSession.Modl.AskDistanceTolerance(out tol[0]);4 S2 h# O8 ?, e* G1 A& _; S
            theUFSession.Modl.AskAngleTolerance(out tol[1]);( T! ?6 d, O2 |9 b" m
1 X. X3 l8 o  }" x
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,5 s3 _4 N$ ~# C( J& ^6 P
                workView.Tag, out loop_count, out count_array, out curve_array, tol);7 C8 n' ?1 c, K# v+ T" j5 X

. c1 {6 R8 z! T# P  Y, m, A# l0 P, X            Echo("Precise Outline Loops: " + loop_count.ToString());/ i; x8 A8 ]" s3 e' m1 q$ q5 e/ B% |: D
            for (int ii = 0; ii < loop_count; ii++): V- F! Q" P  u# F
                for (int jj = 0; jj < count_array[ii]; jj++)
+ S2 J$ T) C9 X2 p2 L- q) }( E4 F: O                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));6 m/ O% R: D7 L9 Y5 o1 C$ d( R$ T
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
( |- {/ x6 u! I7 d: t( r4 w5 C% d
            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead 5 A+ G/ {& X' x" I+ W& z6 v/ _
            int curve_count;2 ~' U# C* {4 c5 Y) M6 g0 I
            Tag[] outline_curves = null;" s0 _' O& ~# K& U
            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags, 8 x) B* e" D  x9 p
                workView.Tag, out curve_count, out outline_curves);( g6 G% S! D. t; N
            Echo("Precise Outline Curves: " + curve_count.ToString());) n  T) }! E  C. E7 f, ?
            */5 V8 t1 N0 K& B* q/ A, m
        }
9 Z7 [3 H/ w& Q# ?
5 H! x* x) n& N5 l    }[/mw_shl_code]
3 U8 e! C! @% f' O3 u[/hide]7 }  B6 w3 g7 S
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了