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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓
# J5 a6 x  z, A
$ g5 E" y5 N4 C1 [4 d8 |UF_CURVE_create_shadow_outline (view source)4 m; e8 W" w2 [. i' @
" V! K; _1 O8 r8 {
Defined in: uf_curve.h7 S# m- h( P+ k$ |7 E! h; c

3 V' e' @: f1 Z( v1 P! \- j4 p3 p4 l' l
Overview  Z% k9 x9 o9 S% {3 O# b

9 c/ T) U" ?/ c: ~, y2 bCreate shadow outline for a given array of solids. Solids passed to this
0 Z; V' d5 n" y! j  f0 u* Qroutine must be on a selectable layer and visible. If created shadow curves + C& L  W. @$ X/ u( C1 V9 x3 P# Y; y
can not form loops, please use UF_CURVE_create_shadow_curves instead to get 9 |; D. Y% f9 B
shadow curves. 0 d4 O, g+ U- M! k' h0 |

# P) a) s8 ]+ ^* Y- C/ h* u2 y( U) I$ l/ E# ], k
[hide]
3 G$ P0 z0 |( H& x5 f
, K. P2 N5 Q  [- n" ~[mw_shl_code=csharp,true] void DoIt()
* @+ A# }6 S- @( l% F1 ?    {
, q$ q4 J' {  u5 ^        if (theSession.Parts.Display != theSession.Parts.Work)
. m5 J0 L/ Z& I+ D& z" l2 H+ e            theSession.Parts.SetWork(theSession.Parts.Display);. {' q) G- g- G3 f+ [. S9 W8 J4 H, r
- Q- p7 l6 Y& @6 k& P5 A! @( E$ b
* K! z: a, l. Z# u3 T+ L& O3 w
        TaggedObject[] theBodies = null;
5 m: b; \& [$ W. h. J        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)
6 x1 `" Z5 q2 R4 l% ~3 z        {
7 R: d- `  D" g% \9 n, l+ \  e            Echo("Selected Bodies: " + theBodies.Length.ToString());
+ B2 @8 T# Z2 H! B            Tag[] theBodyTags = new Tag[theBodies.Length];
* k- {0 Z2 `" p4 F/ c, R: v            for (int ii = 0; ii < theBodies.Length; ii++)0 I! w; q7 v, F- c& B: H! ]# u
                theBodyTags[ii] = theBodies[ii].Tag;, H& R8 X0 h9 w' x8 G( x

+ I8 C" c3 }8 |2 Q6 W            List<Curve> theOutlineCurves = new List<Curve>();; E  e* ]( f1 [2 `; ^9 q4 j4 K
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;: p  f6 {( a1 c$ P. G
            int loop_count;
; N# m. c. l% w/ v: z/ @4 M: V            int[] count_array;) l- ]4 B6 S( R, g
            Tag[][] curve_array = null;
  M0 }' N0 C. w& i  p. B7 J            double[] tol = new double[2];4 i6 y% J# f, z
" f. o+ n0 q6 b- k' R9 b
            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
* p: m+ h# A' C8 p" p            theUFSession.Modl.AskAngleTolerance(out tol[1]);
. t5 N2 M/ K- y! y( U
2 q1 h8 ?7 F' w( h& _* e# R, k            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags," Y  _, `9 D) ]0 j, [
                workView.Tag, out loop_count, out count_array, out curve_array, tol);
5 [% ]+ k3 w' v
: B9 Z$ q$ ?% k$ o  v            Echo("Precise Outline Loops: " + loop_count.ToString());2 h" {- }9 U# a" w8 |
            for (int ii = 0; ii < loop_count; ii++)0 Z6 ?: K! R, @, y( I1 t/ I
                for (int jj = 0; jj < count_array[ii]; jj++)4 ?- P- [9 a2 L' x! r9 L4 z* K8 w
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));. L! U; \: U( k$ |* |% P
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());! a/ E' ~! b3 ~7 n! q" U) i

. H0 _. w+ E7 f% k: L8 w            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead 3 m; D2 |9 o* t% D
            int curve_count;- g+ e7 Z' i" I# w" ~
            Tag[] outline_curves = null;  C. q& ^: R8 R8 w
            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
+ k( x7 b# C9 D) q9 w  ]( g6 ?                workView.Tag, out curve_count, out outline_curves);0 t6 o7 A: z% B  ?9 B; X
            Echo("Precise Outline Curves: " + curve_count.ToString());6 z  }, N+ y) Z/ h9 @8 N: I) c
            */8 D( u# V8 ~# l) F, b0 W
        }& m# D$ E) \- |9 W
4 l6 s( [+ C% @% G* p" M) n
    }[/mw_shl_code]
! O% z, W. C& _6 z  _: [[/hide]
5 b3 t" S' U/ N
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了