PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

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

admin 楼主

2017-2-9 19:57:56

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

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

x

8 T4 O# B- R7 F7 I, f1.主要规则, \# X, ~# l( z& r
CAT 代表 CATIA   作为前缀(prefix)
1 K5 {% H. U% e( |0 U3 GFrame名字用三个缩写字母表示即表示成别名(alias)  例如Dlg代表Dialog   + k2 o( r% a# h/ ^, g0 y
全部用英文
8 Z6 q% X: r& t
. ^0 z% B; P1 H& }8 Y2.目录实体的命名6 J" L" N9 k9 L% I
Code Framework                     <prefix><FWName>
( Z9 b% @) n0 E5 T! LTest Framework                      <prefix><FWName>.tst
0 Y% ]" E8 U, y  O+ d# R9 ^- k
  O; b% d5 t* j, {6 o7 {CAA Frameworks                    CAA<FrameworkName>.edu
1 V- g$ y: g1 Y4 X7 z CAA<FrameworkName>Doc.edu( W; q: ]. P5 s; z0 \/ H+ A
CAA<FrameworkName>.tst
3 P0 |* I& `' ~' R, w( V$ k3 d" }2 J9 l/ j* U
Code Module                        <prefix><FWAlias><ModuleName>.m
' N$ [/ y( O- u: y( R- j# RCode Module in test FW              <prefix><FWAlias><Tst><ModuleName>.m" h: w, w( Q# i# @& {3 ?: I: {) J! z
Code Module in education FW        CAA<FWAlias><Edu><ModuleName>.m
, x9 c( {  g7 MCode main module                   <prefix><FWName>.m; C8 y2 w5 J7 d
, c# X3 D$ M9 F7 b5 @
Doc Module in education FW         CAA<FWAlias>TechArticles.doc* U: a0 P+ t+ v1 w0 p
CAA<FWAlias>UseCases.doc
) f8 p$ y" K; Y9 ] CAA<FWAlias>QuickRefs.doc
* m4 J' Q+ d: X! X. v CAA<FWAlias>Base.doc0 m" @- H4 f* o, w
2 ?7 ~7 B. x! T) u- @. e$ m

6 X( u8 E0 p: z' O6 ]3.文件实体命名6 x& @4 E7 ^. D" k$ F* r9 z" w: F: m
   Simple Classes                      Class: <prefix><FWAlias><ClassName>) U3 Z$ y- G. s
File: <prefix><FWAlias><ClassName>.h
! v8 q( v+ f. I9 P- ]. @ File: <prefix><FWAlias><ClassName>.cpp; j* Q& ?9 Y! s" K9 z# }8 T! p

7 Q. C/ L0 B9 u% V. dExtension Classes                   Class: <prefix>E<FWAlias><ClassName>( ~/ Q+ ~2 |/ q7 E
File: <prefix>E<FWAlias><ClassName>.h. o0 V( ]4 X9 v7 J* d' f5 P
File: <prefix>E<FWAlias><ClassName>.cpp
/ y, B- T. j7 K5 c$ q, g' {' \( `4 b
Interfaces                           Interface:<prefix>I<FWAlias><InterfaceName>/ O- m8 U+ p- H
File: <prefix>I<FWAlias><InterfaceName>.h( Q9 ~; j" E' D" B+ c* q
File:<prefix>I<FWAlias><InterfaceName>.cpp' U2 ^) d/ y% s2 ~1 L9 A1 g1 S5 p

5 W7 P; k+ K, W) AAutomation Interfaces                Interface: <prefix>IA<FWAlias><InterfaceName>
3 ^# @" k9 o" b8 x; ]  L: H8 c9 J( uFile: <prefix>IA<FWAlias><InterfaceName>.idl4 Q/ E9 `9 U, `  \) n! C) z
File: <prefix>IA<FWAlias><InterfaceName>.h
% [& s4 p  |9 h; s6 ^ File: <prefix>IA<FWAlias><InterfaceName>.cpp
0 [: q& c6 l1 g0 f0 R6 v" t: n' j$ {! a3 C# P  |6 k
Interface Dictionaries                File: <prefix><FWName>.dico for CAA customers
$ _$ ?8 ^) ?+ b1 m% ^7 }File: <prefix><FWName>.dic for DS" n' m& b/ k1 A5 [
: I: I+ T8 b2 N
Factory Dictionaries                  File: <prefix><FWName>.fact6 T! p4 B1 X+ A, |
Global Functions and Variables       Function/variable: <prefix><FWAlias><FunctionName>8 G; L" J' m, R) W
File: <prefix><FWAlias><FunctionName>.h
- s$ n0 N4 K% v& Y. v9 f7 k File: <prefix><FWAlias><FunctionName>.cpp3 g7 I5 T1 b) V2 U* G5 Q  ], Y
+ K, ]- L/ J; j* S: J& f
Enumerated Types                   Type: <prefix><FWAlias><EnumName>
* Z% }) R. A2 ^# { Value: <prefix><FWAlias><EnumItemName>$ P$ t8 y. o' r
File: <prefix><FWAlias><EnumName>.h
$ W8 Z3 O4 ?% b; k" z( \+ x" d1 m! u) l  N" b  |% z* p: n9 A
Macros                              Macro: <prefix><FWAlias><MacroName>
% ~6 i; P) k" R5 C$ P1 j File: <prefix><FWAlias><MacroName>.h
$ ~5 c4 i& X! g  p8 y' j) u( F# H! n5 X. X. p
Typedef                             Same as substituted name6 g2 `( m4 `. o7 S5 @% M
NLS resources                       File: <prefix><FWAlias>Name.CATNls  {' F) W' J) c  t0 g
Resource catalogs                   File: <prefix><FWAlias>Name.CATRsc1 \: P0 W' A5 ?7 I: R

3 _4 f1 j% B6 k+ ^' p  ]Feature catalogs                     File:8 L2 @; F4 g9 S' L- A
<prefix><FWAlias><CatalogName>.CATFct . U9 ?( T$ z4 [) T
for CAA customers
) l7 g1 M( A, }' `7 [6 ]1 E; qFile: <prefix><FWAlias><CatalogName>.feat for DS- N3 x* {9 A) ?- `; M' P

6 A7 h8 c: a: k. ~4.用户界面实体" N3 e* b6 P! {  [& f9 E
   Command Header                   <prefix><FWAlias><Name>Hdr- j# S: }+ }& n) j" w
   Workshop                           <prefix><FWAlias><Name>Wks! P9 D8 ]/ q8 }$ t# o
   Workbench                         <prefix><FWAlias><Name>Wkb
3 b; v% m  ]' A5 J! s6 W   Toolbar                             <prefix><FWAlias><Name>Tlb
* D8 P6 t0 V# p   Command Starter                    <prefix><FWAlias><Name>Str- x& i5 P2 {( @0 Z8 K+ p) |6 e
Separator                           <prefix><FWAlias><Name>Sep
2 s, G7 z3 ?/ n: OIcon Box                            <prefix><FWAlias><Name>Icb. n. N# ^7 ~% q) Y+ G1 a
MenuBar                            <prefix><FWAlias><Name>Mbr
: V- [  b! D( c+ rMenu                               <prefix><FWAlias><Name>Mnu
9 T+ @+ T6 H$ L5 ?SubMenu                            <prefix><FWAlias><Name>Snu7 @4 u: x% c% G, B. G# n
  n  ]7 Q) k$ d, J; \
5.其他实体
( s' B1 @$ k3 @& Q- r  Features and Late Types               <prefix><FWAlias><FeatureName>
' J+ W% z, V& r3 O, W: [. e+ m$ a <prefix><FWAlias><LateTypeName>; l( x# O, \: E/ E& V2 k( K3 O

4 c3 B) J" @- ?' ?0 DApplicative Containers                 <prefix><FWAlias>AppCont<ContainerName>6 c# t  J5 `; X9 G, I
Data Members                         _<DataName>" q! p8 ~0 l) ]9 ?8 b7 ~

8 @7 Z; u5 V3 O. vMethod or Function Arguments         The i prefix for input parameters ; Z3 y* o5 D3 e* ]
The o prefix for output parameters / G" K1 K7 w9 @6 I/ h7 w- f5 z( S
The io prefix for input/output parameters ' p3 G( R3 D9 _: N# H

- q1 A4 ~# f0 t, v* ~0 Y% @6.名字的变化
7 A3 o  s5 e7 C: B% i3 h变量名字要以小写开头   int counter" D  ^  v. b/ ^$ X4 g
函数名字要以大写开头   void CountItems()
4 O* n3 Q! a8 k2 z$ y# \; f  g2 x5 X数据成员要以下划线开头 并且不能是public   int _length
: i3 z. \6 V! h; u2 p/ N
; Y: p( ^# V1 d, e3 d% c, k! [4 S4 A9 P( U" X
- B0 L9 g- T  I" F/ S4 H8 y% X
9 P" H+ `# z2 F4 g% |: l1 `' ]3 h
7.指针
1 `4 ?& e" i4 N1 ^% f6 ?. X3 Z1 N- Z. C2 ^+ T' j0 X4 `

/ X1 \* c- |9 X7 }  
9 X" ^1 Z! X  D3 @' }( FPrefix! B" X0 o$ H: s5 f
  
& Q0 {9 g2 z$ TMeans2 w" {( N+ |" P) F
  
5 V. C$ d6 C# JExample9 p- w8 F  @; k8 X1 e2 f$ T  D
2 g0 n1 n7 n& E2 t- H  n
  
5 I( s4 w, e: T! K) @3 _1 qp
1 l/ d2 _  S% Q  
3 y) U2 ~# d. Y+ Z2 G; xpointer/ Z8 |! c3 ]# ~/ g
  * }0 e0 R( i# r
CATBaseUnknown *pTarget;
& q8 _+ `/ n  ?* k
9 E$ F0 M. S" `9 ?0 \/ h  
3 \; b+ T  ~8 t% a1 Gpp
* A+ o9 r; Y) Q; G6 x; A, n# B5 }  , o  _5 T- M. b0 e( l, R
pointer to pointer" K( c' Y$ z* j7 i9 ~
  7 t# G/ t' y$ j+ F
void **ppTarget;) J3 \6 d7 j# ?! D4 p
7 E) ]0 a% H1 w4 q1 w. P8 N+ y
  + {7 C7 d" h1 H7 u% y$ Z2 I
pi4 _6 @5 X: L4 n4 A
  
7 G  i% m' L$ h( C8 M. y0 epointer to interface
; ?9 `/ ^+ C1 o: q, F) v9 S  ; e' |# Y7 C% ^- z4 Z! u
CATISpecObject *piTargetFeature;
9 n/ d/ g5 \+ t$ ]
6 L# ^- m4 T% W; p  B8 J2 N  1 [* j0 m: I8 z3 U3 r6 i
sp2 a% l) A. s$ u' u( E
  
' L) `' ^2 E! ]$ h0 C7 \smart pointer || handler; F3 ?1 C* }$ p5 {5 r! u
  / \3 w# \0 Y( A. x7 x
CATISpecObject_var spTargetFeature;
# H8 b* f5 F- g" w4 ^3 w# R3 N, e ' S& d3 w7 E+ @- m, i* c
  3 l- Y1 P4 B' I) m
a
. |$ J3 D( j% q# e/ w4 C4 H. s  - a' h5 ~' L0 ~8 \
array
4 z3 m- L( \) w    [& N1 i  S7 ]/ V
char *aPath;3 l; x# X$ O: w) ^! U
/ U3 i! q! s) J3 X) Y
CATISpecObject **ioppTargetFeature  输入输出和指针放在一起$ G. q" p5 s2 A0 W1 [/ ^
8.接口指针的命名
' c/ `+ \; R: ]  r0 i格式:pi<InterfaceName>On<RootName>! W% U# U- M  ]
指针名字通过去掉类名的前缀得到 例如:piInitOnDoc   中的lnit是从类CATIInit 来的+ f  [* s* {, {# S. ?  ^0 E' i
跟名字是用的三个字母的缩写 如上用Doc代替document* \+ e5 g  X. W
# }- o& q3 A" g4 I

( X# ]$ `9 f9 p$ q; s4 x) ~$ M, b5 o7 O
% ]7 q  f  f6 Q. M  b
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了