查看: 6661|回复: 5

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

  [复制链接]

1

主题

11

回帖

78

积分

培训VIP会员

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

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

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

×
我录制了一段创建扫略的代码 ,想改给自己用,
6 ]2 @+ c8 t4 @% v扫略的目标是一个圆 , 一条样条曲线做引导线  
/ U3 _$ r, y: c, e, d在之前都获得了 圆和曲线的 NXObject* C; _- V9 H  x. e, S2 P
然而在创建扫略录制的代码里都需要用sections添加对象4 e% x$ G+ W( w2 w: n
比如sweptBuilder1->AlignmentMethod()->SetSections(sections1);
. w/ Q8 O. [2 M* {. c$ D然而在创建对应的sections之前需要创建这个
5 Y5 Z1 h8 l1 U& }/ _curveFeatureTangentRule1 = workPart->ScRuleFactory()->CreateRuleCurveFeatureTangent(features1, arc1, nullNXOpen_Curve, true, 0.00095, toleranceAngle);9 D  ?. D& ?4 g+ S7 K; S

) s; j2 f0 ?1 ]/ f想问,有什么方法能把NXObject* 转成 对应的Feature * 或者 Arc * 或者FiTCurve * 或者Spline * 呢。
# d: _* B0 D1 C0 ^* M6 b然后再想问,有什么简单方便的方法创建扫略特征么?
9 t: q1 x5 i+ T8 X9 F1 d4 @- S& `" v7 E9 r/ \8 Z
自己的函数声明是这样的。: e# ^: |% g  z9 G8 B4 s. B$ |
NXOpen::NXObject * CreateSweptThrCurveAndGuideline(NXObject * associativeArc,NXOpen:oint3d helpPoint,NXObject * fitCurve)
/ E/ k% n/ N& J1 _7 l) X, u) [: k8 U+ H' H0 p. M- W5 F/ t

' F- i" K3 n& n8 R9 t& D  z9 D8 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 15:17:25 | 显示全部楼层
还有一个问题就是+ \; B* H4 E. F& q, e# s) O
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));% |0 r# V, m& p' |
        features2[0] = fitCurve1;5 b( d8 s0 \% _, G
        NXOpen::Spline *spline1(dynamic_cast<NXOpen::Spline *>(fitCurve1->FindObject("CURVE 1")));& _7 u# ^* U) l6 C  g
今天发现这样是可以用的,
! H  k8 P* C3 E) ?5 g/ r( [但是 不知道 fitcurve1 和 spline1 这两个指针的关系,
  o5 ?5 B5 M8 ~, L* C2 ~; v: N以及怎么通过fitcurve1 找到 spline1
' K+ N& S' V: U( l* u5 e
上海点团信息科技有限公司,承接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(); 6 q4 f. X! p7 ~- y" p5 Z) ?% f7 g
发现两个的tag是不一样的。. g8 ~4 V' V6 v: v
但是通过FitCurveBuilder ->commit 之后 只生成了一个NXObject 。: m5 U$ O* |+ N/ r3 V" }
可以将这个NXObject 动态转换层fitCurve指针,
0 p# P+ v* B2 @5 I+ p8 \- ?但是第二个spline 指针是真不知道怎么弄出来了。
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

4

主题

3

回帖

36

积分

管理员

积分
36
发表于 2015-10-23 20:30:23 | 显示全部楼层
你录制个JA 哪来这么多 , fitcurve spline 有什么关系?
1 }+ F( f7 ]; u+ y9 c
8 C& j! g' ]2 i/ k5 M* X+ Y圆弧和 曲线直接用UI 选择不久完了
2 _+ C% H1 {4 s9 q$ K0 Z5 V5 G! L8 |
上海点团信息科技有限公司,承接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: |, N, V) j3 A2 E( A  U# I* h
你录制个JA 哪来这么多 , fitcurve spline 有什么关系?# n& E; j1 }  Q+ O$ b% G

: O+ b3 L: e9 e. f# b- h# |  e圆弧和 曲线直接用UI 选择不久完了

" D1 v( k$ N* z6 ]' [, x( a" ^老师,
8 i. j, h' C3 B2 s! {' P7 `2 qFitcurve 和 Spline 是这样的. N' N% z2 H6 k$ N4 Y8 ?. a2 O( ]
我选择圆做截面,拟合样条做引导线,& @  V( j7 f( w. [
+ D3 o% s# }% m* r. U* Q
在录制JA里生成了这一的代码,这一部分是引导线的。
1 c6 u& t* V, o6 wNXOpen::Features::FitCurve *fitCurve1(dynamic_cast<NXOpen::Features::FitCurve *>(workPart->Findobject("Fitcurve 6")));9 l2 y- D7 f: R* p$ m$ X; T
NXOpen::Spline *spline1(dynamic_cast<NXOpen::Spline *>(fitCurve1->FindObject("CURVE 1")));
. }1 U5 ^3 ~; p/ Y% Y' G: g, m% _9 ~0 U6 D4 b! X
在截面部分也有类似的代码+ Q  v7 b; i" D7 i
Features::AssociateArc * associativeArc1(dynamic_cast<Features::AssociateArc * associativeArc1>)......! }6 o" G) y  O' T6 a
Arc * arc1(dynamic_cast<NXOpen::Arc *>(associativeArc1->FindObject("ARC 1")));2 n3 j& Q: P! Z+ |: D7 B; J  H

! M, b; q4 |$ D  `. |在这之前
/ V3 t0 V, V- y, l8 ~我通过AssociateArcBuilder 和 FitcurveBuilder 生成了截面和引导线,. z3 `" O* I( c" }0 B
但是每个Builder只返回了一个NXObject。
# m4 }* d* }2 v. ~! \5 h7 T% ]我想把代码里的四个 FindObject 部分通过代码自动生成
- Q+ s5 _" _5 a/ ~# n: a! F# m  d
& m! S9 H; H2 F所以想请老师指导一下; \& w1 `: }' t* @+ y+ U1 C& x% z

4 f2 s  x" J/ M8 ~. J  W; o0 e: O 怎么通过 NXObject * 指针,去获取 它指向 对象的其他 指针( D: ^0 f6 I- S
7 C' y- ^( V- |" Y# f5 _, F
比如
( j. B: Q6 z& k( c" x2 V% _我有一个圆柱的NXObject * ,/ T% o0 H1 [7 R- P8 d
怎么通过这个指针去找到它的 Body * 之类的指针。% b+ P7 e! L; M1 y! e  g
或者
3 m3 W4 u: k# a( ~. b( x9 v9 @7 F我有一个AssociateArc的 NXObject *
: @, ~3 @; z& H( `& R怎么通过这个去找到它对应的Arc *。。
; D8 e1 j  U9 q: \  Y0 m' X, e: o! w8 o/ ]

' _! J; R2 q9 x6 `; q# }. |+ l
: [0 N! `3 n+ T; J: T) H* P/ N2 ]
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

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

本版积分规则

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