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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓
+ q  c* C( G9 ?+ V' r+ S8 a+ G! f* a9 ?& p. e  I7 R2 l
UF_CURVE_create_shadow_outline (view source)
8 i0 n' @. P0 v* z4 B1 G' o, y- \ 2 y& o5 I2 a, X1 ?2 x, V
Defined in: uf_curve.h
2 I: _: b$ d5 J- E- N
8 n& I" D& u: o2 G: l) {- _, C' L3 F+ P' ?: \5 s+ _8 K1 d
Overview
8 q4 V5 k9 m, t
$ |5 n" _# \6 L- i6 I( cCreate shadow outline for a given array of solids. Solids passed to this
$ w6 B* t7 r0 @+ Qroutine must be on a selectable layer and visible. If created shadow curves ( W9 Y* c# g& h% F3 f$ X6 W
can not form loops, please use UF_CURVE_create_shadow_curves instead to get
& j2 i0 ]1 Y; c6 oshadow curves. ! S; g: L( Z0 e: D, {$ y

* ~$ u9 W, f; P" |/ S% `6 [! T6 v3 f: A# N/ {' c0 \
[hide]
" Y$ \3 F+ A' ?& K3 R* b7 H" |* I  J0 x
[mw_shl_code=csharp,true] void DoIt()( I/ d4 o9 i$ Y  J
    {
: h. u* W* }2 F3 {9 d& v/ ]        if (theSession.Parts.Display != theSession.Parts.Work)& r: z. a9 g. a3 N/ S
            theSession.Parts.SetWork(theSession.Parts.Display);/ h+ s% I, ?$ ~# E: H' }
0 ^+ P  `6 b4 V( {

) h5 w1 u' H+ t2 Y6 S# k0 `        TaggedObject[] theBodies = null;
+ b- k. i! h- ?* z4 D+ `        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)$ l; U" X1 ^7 R
        {
: h, l9 T! x6 Z, `9 n; b4 Q7 {) b            Echo("Selected Bodies: " + theBodies.Length.ToString());' T. ^4 A1 |7 ]! j% K! D  g
            Tag[] theBodyTags = new Tag[theBodies.Length];
; \9 R; Q, ?+ a) `8 U            for (int ii = 0; ii < theBodies.Length; ii++)  o, @2 n* O3 L) M( _( x
                theBodyTags[ii] = theBodies[ii].Tag;
) a# y- N! U8 R" C! s7 t
, E! b2 v9 ?) q6 l7 S            List<Curve> theOutlineCurves = new List<Curve>();3 X5 b7 T. L/ t9 F
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;# j6 W  C3 g) {- H! x3 T$ [
            int loop_count;
9 S$ B+ B/ ]$ \% m            int[] count_array;
! E9 m- r8 g& p            Tag[][] curve_array = null;
8 k8 F1 U# R+ I* o$ `, n+ l( r: H            double[] tol = new double[2];
) q  z7 V3 l) _6 f. l3 S, a% `8 S) u% \9 K1 s: t( I' ?" S
            theUFSession.Modl.AskDistanceTolerance(out tol[0]);. U  w. d1 l5 H+ f% n
            theUFSession.Modl.AskAngleTolerance(out tol[1]);  r" [& N2 Y  ~/ i* c

: Z4 C7 e- e; A' w, A% i8 A            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,1 C4 X. [3 x1 I- d6 r+ `, W
                workView.Tag, out loop_count, out count_array, out curve_array, tol);' y; W/ u) [, ?  P& g- P. C
/ q. x) r6 a' d
            Echo("Precise Outline Loops: " + loop_count.ToString());
: w9 N" e8 q% A: J- h4 S! `            for (int ii = 0; ii < loop_count; ii++)
0 A) @2 q0 J4 B( W4 Z; C+ V0 x                for (int jj = 0; jj < count_array[ii]; jj++)# q0 Z% D+ l4 {% e. F- u' R
                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));/ R6 J- F& ], H1 u/ Y8 |
            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());, E0 [+ t* j9 I& g) ~

% s" N! e0 c1 A6 h8 T0 ?3 h1 R            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
( C, I8 I, E/ W            int curve_count;
" O6 j5 e# M8 F" e( [            Tag[] outline_curves = null;! I& j. _, W0 k* b* l
            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags, # J8 J! O6 L! h( ^1 S
                workView.Tag, out curve_count, out outline_curves);
1 s4 e2 }5 k$ _' R, i, t! l, E            Echo("Precise Outline Curves: " + curve_count.ToString());
$ W5 q& Y6 X% z' d6 M0 i/ g            */
1 ~! B$ `. o& ~" Q% v1 B' R        }4 z9 V( y: }8 [4 D

, O' ^* A( Q; h    }[/mw_shl_code]
% T7 i$ }3 C. r, ^[/hide]
; Y1 J) j/ l& {; v& |! 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二次开发专题模块培训报名开始啦

    我知道了