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

Catia CAA二次开发命名规则---

[复制链接]

2017-2-9 19:57:56 3100 0

admin 发表于 2017-2-9 19:57:56 |阅读模式

admin 楼主

2017-2-9 19:57:56

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

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

x
3 ~6 P9 e9 ?- {5 S6 b3 U
1.主要规则+ r4 d) @  r, a- d# r
CAT 代表 CATIA   作为前缀(prefix)
( H' @8 @, ^, b" P* w: z7 AFrame名字用三个缩写字母表示即表示成别名(alias)  例如Dlg代表Dialog   
7 ]" i: q, [2 L4 t全部用英文3 p' @* ]8 S! B: i% H6 W
3 V) s  X* X0 [5 n' a
2.目录实体的命名3 E2 Z( |9 F7 z, K; t
Code Framework                     <prefix><FWName>
3 y9 L( R. ~' z& J2 L: f& g3 XTest Framework                      <prefix><FWName>.tst! A0 n- W* p2 o

" h2 {4 D" E2 I! a5 VCAA Frameworks                    CAA<FrameworkName>.edu- i' ?/ W6 a+ D0 d6 ]4 c
CAA<FrameworkName>Doc.edu- j( t/ o3 A9 {' w. ?7 B9 b
CAA<FrameworkName>.tst
3 Y  M, Z7 |& M. Y  g) `. v: @8 v2 L* w5 w& [% k* |5 _  @, ?/ q
Code Module                        <prefix><FWAlias><ModuleName>.m
9 v2 n/ b% C- R: `Code Module in test FW              <prefix><FWAlias><Tst><ModuleName>.m
8 ]4 E4 X+ I: cCode Module in education FW        CAA<FWAlias><Edu><ModuleName>.m/ `3 h; q$ s7 z9 p" s9 Q. q" G
Code main module                   <prefix><FWName>.m
  Y1 ^) o& l1 D: U" Q, m5 U. O) l1 q& P5 Y2 U
Doc Module in education FW         CAA<FWAlias>TechArticles.doc( `% M5 }% n( m5 X& i
CAA<FWAlias>UseCases.doc+ F) a: p2 }8 B1 Q& y. v7 q
CAA<FWAlias>QuickRefs.doc
+ m& N$ z+ a* D# q+ [ CAA<FWAlias>Base.doc5 O: u7 P) P1 l) ^4 w

$ Y/ ]1 N5 [9 G' y% }* G# H0 I8 Y* _
3.文件实体命名# \" v% l0 b# M
   Simple Classes                      Class: <prefix><FWAlias><ClassName>3 d3 n  q! ]1 {+ R1 V3 J( Z- H- s
File: <prefix><FWAlias><ClassName>.h
# W1 r8 p5 j4 [0 Y+ v File: <prefix><FWAlias><ClassName>.cpp
- t' C2 X2 X- F( q
$ N- X- f  V  R3 E5 Y6 w: d6 K; i) oExtension Classes                   Class: <prefix>E<FWAlias><ClassName>
6 p# f% G8 C- G3 `6 ^6 x File: <prefix>E<FWAlias><ClassName>.h
! [' I" C4 B% D. L1 G0 t File: <prefix>E<FWAlias><ClassName>.cpp
8 n0 D+ {( @8 K+ ^# X
+ W7 p! ]6 W! Y5 V" O! }Interfaces                           Interface:<prefix>I<FWAlias><InterfaceName>
. U) ]% |8 v& S  J# `& E( |' w  O, T File: <prefix>I<FWAlias><InterfaceName>.h
- c7 {' m/ N' U  g; ^) @- M; L& eFile:<prefix>I<FWAlias><InterfaceName>.cpp
: S$ k7 P* ]' s4 K: m9 v: {, }$ f
3 V! g0 K0 {5 L0 J, C& p. m. GAutomation Interfaces                Interface: <prefix>IA<FWAlias><InterfaceName>
; v/ h9 d% A* c! M0 iFile: <prefix>IA<FWAlias><InterfaceName>.idl) d  d" v- R! Z$ N, l
File: <prefix>IA<FWAlias><InterfaceName>.h5 V8 ?- g& J" p  G
File: <prefix>IA<FWAlias><InterfaceName>.cpp
; J8 h9 f: G; Q
) l- V6 J/ u0 s% T- V( b- xInterface Dictionaries                File: <prefix><FWName>.dico for CAA customers
2 Y; `' l; X- r  o5 lFile: <prefix><FWName>.dic for DS
3 z' x) d0 l6 n' `# e7 V1 V+ ]( j: O. c% [
Factory Dictionaries                  File: <prefix><FWName>.fact/ V$ M4 b' q( m" G, h& Q
Global Functions and Variables       Function/variable: <prefix><FWAlias><FunctionName>
5 h0 a' j( a7 k  e1 E File: <prefix><FWAlias><FunctionName>.h: c7 |* ?  Y0 c- c4 `! @
File: <prefix><FWAlias><FunctionName>.cpp! G# O8 ]: T" T1 X& ]6 R4 Q

* h9 h8 O: x/ o6 m0 U1 VEnumerated Types                   Type: <prefix><FWAlias><EnumName>
' e& R. o7 |$ A Value: <prefix><FWAlias><EnumItemName>* D* e: q7 a4 A$ Z; I- M7 r+ S
File: <prefix><FWAlias><EnumName>.h
+ M* f- ]0 D1 _3 y; a, I2 Y( _
5 j9 ^, r6 Z4 x- t2 \3 h% SMacros                              Macro: <prefix><FWAlias><MacroName>' N  t4 G/ C; Q; p  \% k
File: <prefix><FWAlias><MacroName>.h+ K9 q/ j& N! ~# s& Z

) V. f( J, q/ S$ }5 p" g1 bTypedef                             Same as substituted name1 t' C7 w( S- h$ ^1 z# f, @3 d
NLS resources                       File: <prefix><FWAlias>Name.CATNls
- m7 }7 [$ d  f" ]1 OResource catalogs                   File: <prefix><FWAlias>Name.CATRsc
5 w. r5 _/ x# o1 X- e
6 y8 R) R6 `( H8 m' zFeature catalogs                     File:$ f. a+ }6 N, P, ~( {% P
<prefix><FWAlias><CatalogName>.CATFct * ]9 J, A1 T+ A0 c. h
for CAA customers
8 K& I7 b' E; |. c# S# {File: <prefix><FWAlias><CatalogName>.feat for DS
$ O0 q9 i; e* v6 C
9 G% Z: T5 h$ Q. g. y  W; e4.用户界面实体
- W% C) _. U! T   Command Header                   <prefix><FWAlias><Name>Hdr
: `4 Z% b/ j( [   Workshop                           <prefix><FWAlias><Name>Wks6 t- n/ S+ D8 D- k, n. a1 w
   Workbench                         <prefix><FWAlias><Name>Wkb6 I& A3 k  K2 \& B- N
   Toolbar                             <prefix><FWAlias><Name>Tlb" [( P  I2 E2 k. L) E0 q  N. u3 o
   Command Starter                    <prefix><FWAlias><Name>Str. e. F6 ]. f$ z* \) C
Separator                           <prefix><FWAlias><Name>Sep" v& g: R, ~5 u$ h; ]
Icon Box                            <prefix><FWAlias><Name>Icb0 k1 ~$ @! W' m( T
MenuBar                            <prefix><FWAlias><Name>Mbr
* y  A& G& R0 S. `Menu                               <prefix><FWAlias><Name>Mnu
( _. N8 M: }. G! R3 D& n2 X; KSubMenu                            <prefix><FWAlias><Name>Snu1 I8 P, w3 y7 j: R6 l
" H3 H  H3 ~: W: y- k$ |
5.其他实体6 J; s* L3 F! i) H  P
  Features and Late Types               <prefix><FWAlias><FeatureName>$ L: `- n; s5 ?2 |/ `% l2 M
<prefix><FWAlias><LateTypeName>
6 m7 ]4 f- d/ ?; ~  X
. e% Y% \) h) |& g2 X: d! {Applicative Containers                 <prefix><FWAlias>AppCont<ContainerName>: U$ z! ^( u' |4 E+ s6 O& v0 g
Data Members                         _<DataName>
# j- `: v. B* O5 o. D5 Z9 S/ k1 `0 G! x" D
Method or Function Arguments         The i prefix for input parameters
8 p- f- H! C3 ]The o prefix for output parameters ( j3 a6 E* e' T# m5 P, ^8 N* k/ L
The io prefix for input/output parameters : m0 j2 [+ j- S9 S) N3 Q& i! `
8 K' R# W( e# X
6.名字的变化
( H' Y' \' [% j. W9 B变量名字要以小写开头   int counter; `0 x4 [/ \5 c1 [5 w4 y" L( I
函数名字要以大写开头   void CountItems()
/ \% Z9 f# x  _% [3 ?数据成员要以下划线开头 并且不能是public   int _length
& d% P$ Q/ V" n& r- a, @6 x* s5 z3 b0 @$ k4 d+ ^
- s: L4 Z7 d  ~8 h
6 g# ?3 ^) H" w4 D2 m0 ^3 d6 L
3 C! H% g, w( a5 a6 j) K8 @
7.指针, W& h" k! P) p1 ~3 O1 u
0 M1 _, B/ f# q& W; X5 e5 H, y+ S

5 D& Z  j1 C% ^) Q  
+ W+ E! w' g' ?8 b1 R* hPrefix1 C( e% X: u2 b: z
  
9 d: V) d# _' ^3 k6 VMeans
) _1 E( F" @0 [$ ]  # d- l0 W1 k3 u" v
Example
) @& c9 \9 o$ Z, V9 k+ ^9 N
! Y. A3 l- O& x( A, Q, w  1 _2 u4 G& w& |, d, r
p4 W! f% }. d! Q  V2 |
  
5 p& T- I' \  f( dpointer& ?5 H8 ]6 B$ A2 C; G9 ~
  + S$ B( G. L% ~  g; x" B
CATBaseUnknown *pTarget;* Z$ k5 k& i; J
2 B' F' V, u1 G* ]& T6 u: W
  
8 c% b2 A6 {; R, W" R# x. dpp
) E  e' q2 M8 ^; W0 b: w, |" T' C  
" }. X# \# E% D0 k3 b% R0 t/ Opointer to pointer" o" r. g7 v& U
  
# N  Y+ M  m1 i4 a- svoid **ppTarget;
4 m1 y7 [) k1 }+ N! J0 [! b+ y % {, F1 @, c% ?0 h5 Z
  
/ W8 D" t: D* r: H  Wpi- s' h6 E. M) l. ~8 `% X$ u
  $ {, F# p0 V2 U  }$ `$ N
pointer to interface
2 \* J7 G8 b: ]9 y( H* {  ' q, ]% Q+ E1 d
CATISpecObject *piTargetFeature;( ^# \. m; w; N! q  D/ {

1 n5 Z) E5 q+ y+ f) s  # R3 b. G( }: R: y0 c$ M& r
sp) T4 p0 o" w. x: V) h
  
; m- U' ^& P! k  ?4 N  p! nsmart pointer || handler
" \& d* l! |: o! D) _* q, C  
+ ?, T+ Q& ]! c; qCATISpecObject_var spTargetFeature;
2 F/ Q0 j: @/ D# I- J: K4 f 8 S$ v: U5 J& l1 Z- k. c
  , _6 L2 m; r8 g) b, G  r  `. _
a
' H  m" D1 T' d( k8 t  - |. H5 }8 {7 D' {) s
array' s5 p3 g  \% U% Q- A
  
4 _7 l. L% P- `char *aPath;0 p* j9 q) w1 s$ |

8 y% J9 M1 j6 K- y+ u2 z5 Y& kCATISpecObject **ioppTargetFeature  输入输出和指针放在一起5 D! e- Z1 q* o+ E. ?8 ~
8.接口指针的命名! {. @* [9 E2 i7 o6 n" I; \7 }
格式:pi<InterfaceName>On<RootName>2 z, k' i' g" y3 F- d
指针名字通过去掉类名的前缀得到 例如:piInitOnDoc   中的lnit是从类CATIInit 来的, m% u! w+ ?' j0 E
跟名字是用的三个字母的缩写 如上用Doc代替document  V& {6 u5 K& e$ x3 F6 p
- J. t  Y8 V. a: h5 ^
* i2 L! k3 \% P0 x; z
) Q5 G: Q2 W1 Y9 o: Q
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了