查看: 6703|回复: 5

[求助] NXOPEN 的扫略特征创建 求解

  [复制链接]

1

主题

11

回帖

78

积分

培训VIP会员

积分
78
发表于 2015-10-22 20:26:29 | 显示全部楼层 |阅读模式

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

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

×
我录制了一段创建扫略的代码 ,想改给自己用,8 e! O* T, z8 Y; `5 h- U
扫略的目标是一个圆 , 一条样条曲线做引导线    H( ]1 D0 w9 ?
在之前都获得了 圆和曲线的 NXObject
8 o# S& `8 M8 G" D, r3 r) a' v6 M6 ^然而在创建扫略录制的代码里都需要用sections添加对象
, ^  K! R. H4 e8 `' L! x, e  D) H比如sweptBuilder1->AlignmentMethod()->SetSections(sections1);: h+ d/ n& X8 l/ h" P
然而在创建对应的sections之前需要创建这个  k2 [5 n5 D9 ^4 \+ t
curveFeatureTangentRule1 = workPart->ScRuleFactory()->CreateRuleCurveFeatureTangent(features1, arc1, nullNXOpen_Curve, true, 0.00095, toleranceAngle);
6 G( y$ A9 u- l6 G% D) t! {* u: N1 `! Q7 H
想问,有什么方法能把NXObject* 转成 对应的Feature * 或者 Arc * 或者FiTCurve * 或者Spline * 呢。
0 G- q# N/ S+ D- N然后再想问,有什么简单方便的方法创建扫略特征么?
! }! {. L- G  r6 j" p2 \
& L0 A* h1 e$ G8 v自己的函数声明是这样的。7 \% b( N9 u8 o& B% R
NXOpen::NXObject * CreateSweptThrCurveAndGuideline(NXObject * associativeArc,NXOpen:oint3d helpPoint,NXObject * fitCurve) % X5 R+ s2 \( }/ v' ^0 Z
  ~8 F/ }1 q7 D: L- ]& M# ?8 a$ k

8 b, J  m$ G, i$ K3 R& [# t
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

1

主题

11

回帖

78

积分

培训VIP会员

积分
78
 楼主| 发表于 2015-10-23 15:17:25 | 显示全部楼层
还有一个问题就是+ a/ G0 y7 p! l: ?# U" K) V; d
AssociativeArc 和 Arc 可以相互转化么?
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

1

主题

11

回帖

78

积分

培训VIP会员

积分
78
 楼主| 发表于 2015-10-23 16:48:58 | 显示全部楼层
        NXOpen::Features::FitCurve *fitCurve1(dynamic_cast<NXOpen::Features::FitCurve *>(fitCurve));+ G+ Y) ]2 s9 |. Z
        features2[0] = fitCurve1;
: u! I  n! L4 D2 Q( W8 t( V        NXOpen::Spline *spline1(dynamic_cast<NXOpen::Spline *>(fitCurve1->FindObject("CURVE 1")));8 G4 R' c4 }. F. c/ }
今天发现这样是可以用的,$ P$ U( z" v5 f; n- k2 j
但是 不知道 fitcurve1 和 spline1 这两个指针的关系,
. q5 j3 C% P3 Q3 @以及怎么通过fitcurve1 找到 spline1
5 ?6 Q/ r% `. b$ t3 q9 ]% X! n
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

1

主题

11

回帖

78

积分

培训VIP会员

积分
78
 楼主| 发表于 2015-10-23 16:52:42 | 显示全部楼层
通过fitCurve1->Tag(); spline1->Tag(); / j# r8 _& B: X& c8 a, N
发现两个的tag是不一样的。1 {& g2 w- N3 r* C
但是通过FitCurveBuilder ->commit 之后 只生成了一个NXObject 。
' q7 W% J9 P% N* O可以将这个NXObject 动态转换层fitCurve指针,3 h' G& R6 h! C% t$ ^
但是第二个spline 指针是真不知道怎么弄出来了。
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

4

主题

3

回帖

44

积分

管理员

积分
44
发表于 2015-10-23 20:30:23 | 显示全部楼层
你录制个JA 哪来这么多 , fitcurve spline 有什么关系?
  Q" h0 W- Q/ Z6 y2 ^
( y, s0 i3 d! [) z! n7 k: m0 n圆弧和 曲线直接用UI 选择不久完了. O9 f1 M; Z% [% `; f

  n1 L5 T- S. ~  }
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

1

主题

11

回帖

78

积分

培训VIP会员

积分
78
 楼主| 发表于 2015-10-24 08:29:14 | 显示全部楼层
admin 发表于 2015-10-23 20:30
4 Y6 ^5 u0 d9 }( j! F' D你录制个JA 哪来这么多 , fitcurve spline 有什么关系?
. e8 W% X7 W* @) U1 `  Z  E
/ E0 s$ v, N' Q8 b3 t圆弧和 曲线直接用UI 选择不久完了
) m. R, s$ ~* L& b& {
老师,
+ |0 l7 l6 X7 b1 g# |" @+ D' H5 BFitcurve 和 Spline 是这样的
# N$ i2 R, o: p4 C我选择圆做截面,拟合样条做引导线,
6 [& U0 g  z+ [% ^7 S0 ~
  \+ u- o) M- [8 y! x在录制JA里生成了这一的代码,这一部分是引导线的。
1 c* M# e) s# E+ g. b. E8 SNXOpen::Features::FitCurve *fitCurve1(dynamic_cast<NXOpen::Features::FitCurve *>(workPart->Findobject("Fitcurve 6")));6 B3 o) r% M2 N; ~
NXOpen::Spline *spline1(dynamic_cast<NXOpen::Spline *>(fitCurve1->FindObject("CURVE 1")));
" ~+ s3 }' g: H9 H
7 a: h$ e) b, n; E4 h; u4 e在截面部分也有类似的代码, d, r0 `2 c: `% J# y
Features::AssociateArc * associativeArc1(dynamic_cast<Features::AssociateArc * associativeArc1>)......7 d8 y2 v3 L; m4 A, g
Arc * arc1(dynamic_cast<NXOpen::Arc *>(associativeArc1->FindObject("ARC 1")));7 F  }/ P4 B% N
2 ~2 a- ^$ v0 W/ U2 L7 f
在这之前
5 z( t! I+ q+ }1 d; e. `我通过AssociateArcBuilder 和 FitcurveBuilder 生成了截面和引导线,
6 k. i; p/ Q% g# m- l/ a  V但是每个Builder只返回了一个NXObject。7 c$ m5 E0 [0 c1 }2 S5 B
我想把代码里的四个 FindObject 部分通过代码自动生成
6 n$ z/ `8 o) d
  Q' j+ R8 G8 \8 O: y/ U所以想请老师指导一下. z2 Q  U% \7 Y
. I/ D8 D! [0 I5 ]1 J; K
怎么通过 NXObject * 指针,去获取 它指向 对象的其他 指针
" v0 ~4 c4 h. n8 n; J4 ~2 c9 Y( i9 O
比如
' E7 C' ^% K! _7 @) @1 m; N我有一个圆柱的NXObject * ,
2 i5 @2 Q# H& W3 w# o/ H. ^怎么通过这个指针去找到它的 Body * 之类的指针。0 Z# T$ {+ U1 B
或者, ]) M4 D* l- _% d3 V& C- t! ]  u3 [
我有一个AssociateArc的 NXObject *
, \% P! j3 h& B1 U! [9 x怎么通过这个去找到它对应的Arc *。。
7 j4 `# \: o6 O# \
5 @" b! `4 q( g" @/ I' E4 H5 |7 x3 k! a% y1 F8 w. z; K  k

+ X& r  w: I1 ~' M! U8 q
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部