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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓: O; Y+ u& L! `1 m
5 j' M1 v. J% O7 J8 g. W
UF_CURVE_create_shadow_outline (view source)
  L  m! @$ v  P6 L2 ?% C0 b' e
9 u  v, f2 D& g: s( I& p( r: S7 \& o$ aDefined in: uf_curve.h8 ^* H. O: P; E# q. m8 l  {6 P
' ?3 @" v, ~( H3 k: ]! E0 ]

8 r0 A- Z4 v- k' w1 L+ ~9 uOverview/ V6 L7 p8 v. a( h
  B' r! S! t9 R6 m  G
Create shadow outline for a given array of solids. Solids passed to this
+ E( S: Z) w; T2 |4 mroutine must be on a selectable layer and visible. If created shadow curves 3 l! q4 X, \& I/ W$ z& k
can not form loops, please use UF_CURVE_create_shadow_curves instead to get
% P2 j) k8 d! K+ C. s2 l4 r! Z" yshadow curves. # E7 F+ K; E6 E3 `: b
" s8 M3 V7 U: Q# N7 a
/ L+ _) w) Q6 {& H6 [
[hide]  j$ Z) u8 S/ T! r
% J8 d7 P- e7 {0 r* C8 n# S" }4 I
[mw_shl_code=csharp,true] void DoIt()
/ h! z2 R+ ?* V0 i4 h    {" \) H3 q- g# W9 M3 r
        if (theSession.Parts.Display != theSession.Parts.Work)( D  U0 t. n4 X
            theSession.Parts.SetWork(theSession.Parts.Display);
% v7 L! q8 J9 V* O) b) U2 i' G) F4 R& a0 m3 D& m

6 s6 B0 S. ^1 _  i" ~8 M; b        TaggedObject[] theBodies = null;
9 j: P' n0 m: S+ N3 v        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)9 _, I3 E# [: L( |) b1 }; y. I
        {* W) L7 v1 M! g; _
            Echo("Selected Bodies: " + theBodies.Length.ToString());
; F) K# b, Z1 x            Tag[] theBodyTags = new Tag[theBodies.Length];
( W, k7 b5 D" K3 J4 `+ H* d9 ~& i            for (int ii = 0; ii < theBodies.Length; ii++)$ s2 L+ [/ Z3 ^% U8 Y  t
                theBodyTags[ii] = theBodies[ii].Tag;
! A( f. b* c6 T# E* e) K% \/ h
; b1 M$ f# d$ s9 s3 h) w            List<Curve> theOutlineCurves = new List<Curve>();
+ y4 E! b+ a, h            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;
' z1 u, d! G8 L: E  o" k2 l            int loop_count;0 ?2 \, ^  o9 ^9 V
            int[] count_array;
1 r6 n: [8 Z. h            Tag[][] curve_array = null;/ X$ T4 [9 U) L7 O9 o6 G7 U9 ?8 g
            double[] tol = new double[2];
& g+ C- y4 U1 ^9 E
; v1 L8 a% X! n5 b# V$ x; R            theUFSession.Modl.AskDistanceTolerance(out tol[0]);. U0 G# x$ m. o+ Y9 {
            theUFSession.Modl.AskAngleTolerance(out tol[1]);# O4 m3 b3 J. V' f' R
( u( [! j3 j6 i
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,; k7 o8 s9 z3 t8 ~; C1 K( g
                workView.Tag, out loop_count, out count_array, out curve_array, tol);
7 U: g- U$ k# r; a1 \# V6 T: V8 M1 N7 H: T
            Echo("Precise Outline Loops: " + loop_count.ToString());5 \8 {$ A! _& V
            for (int ii = 0; ii < loop_count; ii++)9 M2 R- p5 O. F3 R
                for (int jj = 0; jj < count_array[ii]; jj++)/ a% y# G5 R# f/ t8 j) K* R: W* i
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));
' z0 m4 x+ D6 n4 R9 n8 R  M2 c            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
/ U  X8 o. [3 U
& }' J) ]8 R* s8 k8 c. v  L            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
) }* e, g! t! h0 k3 c5 q            int curve_count;' E# d3 n- J* f) _. |# M
            Tag[] outline_curves = null;/ |" i$ E& h8 f0 e! }8 Y; X( v0 W
            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags, $ V( {' ^$ x% C' f4 P7 b
                workView.Tag, out curve_count, out outline_curves);
8 w; G- i5 l9 u" G7 e2 S& Y, l            Echo("Precise Outline Curves: " + curve_count.ToString());
4 E5 W6 H! k' D# S  _: x* `1 v            */  G2 Q1 G, ^1 `! K. v* k# z
        }
6 X) i& a/ ^6 K- ]. \) p7 I( k9 z
    }[/mw_shl_code]+ v! Y) X' g0 b$ Q( {5 R
[/hide]
; L, d7 p2 X0 C; l2 Z0 w- t8 r
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了