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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓
- |3 h3 M$ d. v* a% t: X' ^
5 d0 @- ]6 V/ U: vUF_CURVE_create_shadow_outline (view source)
+ c* I; Y, L* ]1 A: Q; [6 E  A0 | 7 U7 ?7 c% r% V: I/ c+ y/ i
Defined in: uf_curve.h
! c' P4 B- ^& R5 t* ?
, A6 H' {. W+ n( F1 G$ v1 o+ u  B0 t+ d
Overview
: R; Z7 j2 [& t+ m; Z6 s- E6 u
0 v' L- N. |+ I0 R9 ]Create shadow outline for a given array of solids. Solids passed to this & w2 z& B: d% J. v& G
routine must be on a selectable layer and visible. If created shadow curves
" I) c9 q2 ]( ycan not form loops, please use UF_CURVE_create_shadow_curves instead to get 6 T) {& H5 ?3 y' o1 F, ^
shadow curves. # @) {* i7 l$ m- ^2 r+ Z2 f+ ]

+ v5 T+ U2 A$ C2 c) k
& ~2 j8 C, i. l  i[hide]" f2 [/ ?4 ]% V: ]9 a0 B
7 G" f4 w; z' n; \
[mw_shl_code=csharp,true] void DoIt()
! w5 v  N3 g- I    {
. J. `. L# P4 p" b# F& c        if (theSession.Parts.Display != theSession.Parts.Work)
, C# y5 l2 Y9 V& g. H' K( g9 J1 A            theSession.Parts.SetWork(theSession.Parts.Display);! x1 F6 d8 R% V+ J  q
" z8 R0 w" S: T. Q  x: }
0 {; F& }; I( A
        TaggedObject[] theBodies = null;4 E( `7 ?2 A# u5 ~
        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)8 g7 Y( W+ ~  c1 Q1 L9 Q" V/ Y7 G
        {( d. h$ \* ?+ \0 y/ [& E
            Echo("Selected Bodies: " + theBodies.Length.ToString());
4 ?6 X; ]) `$ U6 Z( v            Tag[] theBodyTags = new Tag[theBodies.Length];
/ z# j# }1 I  W+ h4 k2 P            for (int ii = 0; ii < theBodies.Length; ii++)
6 a+ k7 D. ]* O3 L* \% L                theBodyTags[ii] = theBodies[ii].Tag;: D0 F* `: [: U
% @2 ?1 a; V- H2 @
            List<Curve> theOutlineCurves = new List<Curve>();" S" {% X# ]% m; o4 A  b( t7 o
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;* W0 g3 S8 ^7 _4 f* D
            int loop_count;% O7 ~. j1 h# J# C5 l8 p
            int[] count_array;) Z, M# H: e0 i' o5 f
            Tag[][] curve_array = null;
. b9 j* v* e# c1 E            double[] tol = new double[2];% c" z: Y- a4 ]0 N% ?' g* ~1 D
5 H- p' c" Z0 X* u5 W% @/ ?
            theUFSession.Modl.AskDistanceTolerance(out tol[0]);8 X" j* @' P( H! O
            theUFSession.Modl.AskAngleTolerance(out tol[1]);0 @% G% ]7 A+ _4 W. t
- d$ G4 e1 ~; q
            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,# z( C; s! ]: a% X! z8 P4 E
                workView.Tag, out loop_count, out count_array, out curve_array, tol);2 ?5 i; \4 n/ B# e8 h

1 z8 Z: g6 W1 `# z& L4 s; I            Echo("Precise Outline Loops: " + loop_count.ToString());
4 |, d* r! e2 r4 [' m            for (int ii = 0; ii < loop_count; ii++)
$ M! O. s7 q* D3 {) T- L7 d; d                for (int jj = 0; jj < count_array[ii]; jj++)
) X2 @, c* g+ D/ l                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));
' e! I  d  |# h  X            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());
- I2 i+ j' Z, q7 ^. Z
# H' N/ i" p" `, {3 r            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead
2 F, u6 u- b- k% \* {            int curve_count;' Q- }8 S+ i, ]7 r5 u' }# T
            Tag[] outline_curves = null;! L+ L+ v" A2 p, u' ~8 r
            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
  v; P' ^8 i& O; o/ T& }                workView.Tag, out curve_count, out outline_curves);
  r0 w' w6 Y2 M; B; T/ r- g! r            Echo("Precise Outline Curves: " + curve_count.ToString());$ n/ W$ }7 c9 o! W) W2 l) F
            */
# o6 R( [/ j, W        }
. f# @# F3 ?* j+ [
# M  A( n8 L7 q- ^$ z, ?* G    }[/mw_shl_code]
! l2 s* a; M" x  I3 g- V! O. k[/hide]2 I4 z3 X* F" m+ |& l) A% f# [; w4 i
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了