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

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

[复制链接]

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

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

admin 楼主

2019-1-17 10:56:35

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

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

x
NX二次开发源码分享: 创建精确外轮廓
5 O% a; q. ?0 S! d* M2 |7 z3 G5 p3 I+ b, @0 t: w
UF_CURVE_create_shadow_outline (view source)9 R+ P" {6 c0 {2 b4 |
9 y6 Y8 k2 R5 N, H+ H- M
Defined in: uf_curve.h3 S. f5 R, {; d( G5 a/ W9 B$ M
: G6 ?9 V; b7 P+ ?
6 s& o- T4 l7 _/ v, A# I' a0 i
Overview
7 p$ Q7 I, h# O2 Z  ^& d# W+ K3 {  ~- I  l
Create shadow outline for a given array of solids. Solids passed to this
/ G" |; l6 U( G. mroutine must be on a selectable layer and visible. If created shadow curves ' y! B" G( j2 F% \
can not form loops, please use UF_CURVE_create_shadow_curves instead to get
. C# L% x5 e; n5 pshadow curves.
$ A  }* H0 n/ Q- M  ]% {0 ~! z: b% l+ Y3 N9 Q" Y+ ]

' J! }+ i$ X8 |% b[hide]
' r" T) H7 Q: s6 C9 m% I7 W
5 O1 }4 \; P, D# p& s[mw_shl_code=csharp,true] void DoIt()% l* x- u5 d+ b  V
    {
* h2 p* ~9 Z2 A3 ?& \1 ^3 q7 E9 T/ s7 G* b        if (theSession.Parts.Display != theSession.Parts.Work)2 H3 m7 c, q1 z. S% ~1 D4 K4 M
            theSession.Parts.SetWork(theSession.Parts.Display);3 {4 n9 |, E7 {' T& y1 I
. `5 c/ I% y, E' D7 ~% ]! Z+ B

$ W) n) g" a7 s' O5 R3 e  l        TaggedObject[] theBodies = null;
2 [" L/ |7 F4 V: B0 Z        if (SelectBodies("Select Bodies", ref theBodies) == Selection.Response.Ok)
! P% V: `9 @( |/ Z$ |2 V* z+ }  d        {
! J1 \+ S& x; P            Echo("Selected Bodies: " + theBodies.Length.ToString());. F$ E2 ~3 m6 y/ y) z
            Tag[] theBodyTags = new Tag[theBodies.Length];
# Z4 A% O/ V- U9 c+ c            for (int ii = 0; ii < theBodies.Length; ii++)( m" _* G7 i- ?' w
                theBodyTags[ii] = theBodies[ii].Tag;
1 }  v! O; b! }1 H% i; t. |8 J; u2 E7 I7 k7 l- U
            List<Curve> theOutlineCurves = new List<Curve>();) u0 }) [3 r1 _" j( N* {
            ModelingView workView = theSession.Parts.Work.ModelingViews.WorkView;* Y  \2 d. _6 L3 ^2 R- L
            int loop_count;
- I$ e3 v7 v$ w& O            int[] count_array;
9 o( v, a& O4 A/ c4 a% P  A            Tag[][] curve_array = null;
) D" B# A6 N3 n9 A- l( G            double[] tol = new double[2];
) a# p; q( r4 ]3 T* u. m; V; F1 Z! U- A4 O; ]
            theUFSession.Modl.AskDistanceTolerance(out tol[0]);
5 `( ?& \9 z0 `1 |9 }+ J            theUFSession.Modl.AskAngleTolerance(out tol[1]);
- \" D+ A( P% i2 m& c
0 v) K8 R9 \% J. t1 T  C, x0 m5 m4 P            theUFSession.Curve.CreatePreciseOutline(theBodyTags.Length, theBodyTags,; D2 n. O. M6 M2 p, \2 z! o
                workView.Tag, out loop_count, out count_array, out curve_array, tol);6 m) c) x! S% v$ ]2 T

: @& j7 F# Q9 b* p            Echo("Precise Outline Loops: " + loop_count.ToString());
& [, w/ T$ \4 j' g            for (int ii = 0; ii < loop_count; ii++)
. X4 G& C/ V$ L* U7 _                for (int jj = 0; jj < count_array[ii]; jj++)
; g- ]. r1 u- i! A5 C3 B                    theOutlineCurves.Add((Curve)NXOpen.Utilities.NXObjectManager.Get(curve_array[ii][jj]));
: Y$ g3 l' k5 @0 z            Echo("Precise Outline Curves: " + theOutlineCurves.Count.ToString());& i* M7 T- a! a$ c& ?

7 R7 _. X/ d. o& v7 x" K9 y# c            /* If created outline curves can not form loops, use UF_CURVE_create_precise_outline_curves instead + O7 |; z, ^4 p6 U2 x9 j8 ]% v
            int curve_count;
# a- S! H$ E+ a6 |0 z            Tag[] outline_curves = null;/ D5 P5 Y; E" n2 ?: l% y
            theUFSession.Curve.CreatePreciseOutlineCurves(theBodyTags.Length, theBodyTags,
5 k7 y) ?. _( I  A+ g1 @& t* h* q                workView.Tag, out curve_count, out outline_curves);' W: h" {+ k& ^3 z* t" {$ x3 h7 U
            Echo("Precise Outline Curves: " + curve_count.ToString());/ U( `! R/ `/ E0 [+ q
            */
- C; Y8 I& [: w/ U1 `        }3 Q0 m: W& @7 l0 P3 h

# t0 Y9 ?. Z  H5 g0 |! X    }[/mw_shl_code]
6 [+ ?: l: W$ d/ o' r, I$ C[/hide]
+ P6 n' R5 i* k: e7 q+ 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二次开发专题模块培训报名开始啦

    我知道了