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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓
+ A' q* m% P! i3 y4 i- Q9 b! N' d: W( Y
UF_CURVE_create_shadow_outline (view source)$ H6 E* O' m  w- Y2 m

8 h5 i8 d4 s% K* p/ xDefined in: uf_curve.h: s/ F1 M' f8 m8 F8 e) [# ^
/ _. B# s- T' R2 ~

2 \$ R& F8 m2 _9 {' z0 g: YOverview. K6 {' m, h+ _3 C/ ]- y: _# X) b* V
  n; Q8 c! w: z/ |2 W! q: |+ @( U
Create shadow outline for a given array of solids. Solids passed to this
+ c( Z4 n/ Y% a7 a3 x1 M$ S0 n+ nroutine must be on a selectable layer and visible. If created shadow curves
9 H; w: W* X) B, k$ T5 kcan not form loops, please use UF_CURVE_create_shadow_curves instead to get
# g9 w* X$ i# I3 ushadow curves.
/ e  p( h. h9 U: G- R* D& a. \( [& K$ E( z* E" K% j) [" x( f
7 h6 {+ i4 o9 {. h  T8 W0 [/ o
[hide]
" ?- s6 h. _) s0 O' f9 C$ h. _/ F* z6 X3 Z
[mw_shl_code=csharp,true] void DoIt()
1 D/ x) M5 D! F, v' J5 a- o    {
( z; _3 S. G& B% B" E        if (theSession.Parts.Display != theSession.Parts.Work)! @9 ~: p, `9 V
            theSession.Parts.SetWork(theSession.Parts.Display);# W' J2 d( K, }+ `1 {" F% |
( W; R0 r4 i/ \$ t5 w3 c: t2 b

" J% V, D, ^* n$ D, e; f7 J        TaggedObject[] theBodies = null;
$ \. M! r+ h. Q6 o        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)
* F( g6 s3 M1 H        {
8 Z7 ^9 q0 c- H; J            Echo("Selected Bodies: " + theBodies.Length.ToString());, z( ~- ?* |7 w5 t7 [7 o: v/ d
            Tag[] theBodyTags = new Tag[theBodies.Length];% i6 d' b; j; q2 y2 l* m5 H
            for (int ii = 0; ii < theBodies.Length; ii++)
( {0 s& j$ e2 i' i+ j                theBodyTags[ii] = theBodies[ii].Tag;1 L' [: _/ t, r3 C, M0 N) S
: S3 z5 U, D$ u3 W& q3 r/ \
            List<Curve> theOutlineCurves = new List<Curve>();% X( d& }: c0 J6 t- n
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;
/ K0 u% V& Z- P            int loop_count;5 W% S3 y+ X5 h; y3 o: m1 k3 A
            int[] count_array;& F) Y+ d( D/ P8 A' W& Z3 q- ~
            Tag[][] curve_array = null;- K2 G, \# D% w  m' y( h: P
            double[] tol = new double[2];' f( g- ^. X: w0 f

2 t0 o7 V9 i" R& |, h- b" N            theUFSession.Modl.AskDistanceTolerance(out tol[0]);: X# y; E. h7 u8 Z' z# V' M% D
            theUFSession.Modl.AskAngleTolerance(out tol[1]);
! r8 q& o" M* M
5 @$ c( {/ l. s0 _9 X6 O% y) w! x            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,0 z# X- X2 H# h1 W5 v0 d: u- F
                workView.Tag, out loop_count, out count_array, out curve_array, tol);/ I* s: L; v% o, A& m8 W

, O" I7 }% {: h7 J) d% D            Echo("Precise Outline Loops: " + loop_count.ToString());
% p5 h* A/ p6 [' C/ q$ ~+ e            for (int ii = 0; ii < loop_count; ii++)- j( L2 A+ j5 v3 _. @
                for (int jj = 0; jj < count_array[ii]; jj++)! k  p6 _1 j$ s
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));
5 i, u* ^( x  y0 e. d4 Q0 p$ k, L            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
  d2 D* Q( X8 R0 Z$ ?) M: s  O" s: t# y1 H: t
            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
9 U' A* ?4 M" q% y" M            int curve_count;0 P( ~9 h& \$ r3 a- ~3 }
            Tag[] outline_curves = null;
# H% H4 C/ L4 b9 i9 l            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
) r: w' c6 Z8 V: U2 a' E                workView.Tag, out curve_count, out outline_curves);
* g( h0 k) N6 c  p            Echo("Precise Outline Curves: " + curve_count.ToString());
  g* z4 q) b8 |5 s! L            */
% z7 m6 G( P% c# n        }
, k8 Y, \) Z0 W2 J# O# B! O) O8 D' T  U: N' `+ m& i
    }[/mw_shl_code]
, s4 F1 [" |/ h, q. I7 E5 Y[/hide]  U7 w6 U7 Z6 L5 @; a
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了