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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓
9 j4 j1 D4 y! I6 A3 }( N7 g/ {% R. a- p, L
UF_CURVE_create_shadow_outline (view source)
( D; z* Y- _. H) {7 _
% p2 i2 N- ?7 L& ^5 ODefined in: uf_curve.h
; N; [" P3 i- y
/ i4 u) v" [$ e. N/ \5 n: Z! }
* D4 w! Z( r! N: g+ l. GOverview# ]7 r" d& C. G4 }

2 F/ x# H- ^" T' b6 |! C/ uCreate shadow outline for a given array of solids. Solids passed to this
5 I6 C4 x% v* S' \7 sroutine must be on a selectable layer and visible. If created shadow curves ; ]* E% N* E. _3 H
can not form loops, please use UF_CURVE_create_shadow_curves instead to get
8 l# Q* R% \  d2 n* _6 \shadow curves.
0 Q4 p2 e/ W! O& {! \: L* `4 z
& P9 C) W, u$ ^; a! u8 }' t# A$ ]0 n) ]6 C
[hide]! `$ y/ Y* K) j! t2 G

7 `" ~, d5 Q% N[mw_shl_code=csharp,true] void DoIt()7 ?. M$ k6 s9 v( R+ q* |
    {
6 E9 u) b6 o+ p) U        if (theSession.Parts.Display != theSession.Parts.Work)
% w: S1 l! w  V% @+ A            theSession.Parts.SetWork(theSession.Parts.Display);
5 N! m+ I. {0 F) u8 A& Y1 Z- v6 r

1 ]+ W! c6 Z; e: K* x' o        TaggedObject[] theBodies = null;
# S6 k% G& J7 S$ c3 n7 u. Y3 |        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)* Y: s( Z9 Z5 c/ g1 U# {- a
        {
, c4 u' x2 k7 d0 e" ]            Echo("Selected Bodies: " + theBodies.Length.ToString());6 A( Q) i) v; G0 _
            Tag[] theBodyTags = new Tag[theBodies.Length];
' T* N( w" u/ x2 q" z$ g            for (int ii = 0; ii < theBodies.Length; ii++)+ A4 x* R; R" O" t  A# b9 Q$ s
                theBodyTags[ii] = theBodies[ii].Tag;/ V( ]' V4 r$ d, b8 @, y) E+ u

- m- f  s6 f5 A" V, W1 I. ^- G            List<Curve> theOutlineCurves = new List<Curve>();. B2 e- V0 S* @/ H
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;0 ^$ S0 j' o% L
            int loop_count;2 c% m( {7 S, t/ y: r% m
            int[] count_array;+ p; e( X+ N. x
            Tag[][] curve_array = null;
0 ~; J3 G4 a! e            double[] tol = new double[2];
$ t4 T* K1 O' A5 f0 F6 {& C4 l3 {- c. j) P' u+ {
            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
, k/ w, O/ W1 U; E$ s6 t            theUFSession.Modl.AskAngleTolerance(out tol[1]);
1 g- M$ Y5 L1 ?' u* d1 t% \  \: D- F4 O5 x( O' N0 L+ F
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,/ P. E- A& u9 n6 \' S: H! i
                workView.Tag, out loop_count, out count_array, out curve_array, tol);" H, f; e2 u2 p  f* V
8 R# Y" Q9 {* b' `
            Echo("Precise Outline Loops: " + loop_count.ToString());( e; n; j' ^! R) D
            for (int ii = 0; ii < loop_count; ii++)
3 V7 j4 B) l3 u1 [6 `                for (int jj = 0; jj < count_array[ii]; jj++)
% A+ Z( z: ^) D) ^4 G+ g                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));( U  t3 W' M- r# l  e. J9 D
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
2 `# q+ \! P" @+ o, I5 z: E9 s, q$ _9 H. {7 T* q9 M% G' O
            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
3 N; {- Q7 s/ o* x            int curve_count;
+ }$ E" Z; ~8 ?9 J% N  t            Tag[] outline_curves = null;
5 k8 V8 _8 U" ?! t1 ^; h6 B1 T: `& y            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
7 [! l% h1 ^5 o/ Q                workView.Tag, out curve_count, out outline_curves);4 k" I& Z0 D5 t2 @* y' d: v
            Echo("Precise Outline Curves: " + curve_count.ToString());) v9 @+ ~) Z- V4 d$ [8 A2 G
            */8 a# X1 [, T* H6 O
        }
1 b" i* a" O, O; F! w, J8 M, c4 {1 J# l* g+ I3 O& i' y
    }[/mw_shl_code]' w5 O; y; \; y
[/hide]
9 O& |! r0 v9 G0 Z" h
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了