PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2017-2-9 19:57:56

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

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

x
$ R8 `8 ?9 [0 }" y
1.主要规则
" i! a) O3 k3 X6 V; o3 Z+ NCAT 代表 CATIA   作为前缀(prefix)
- |% R7 @) O2 xFrame名字用三个缩写字母表示即表示成别名(alias)  例如Dlg代表Dialog   
2 Y. A+ o: s% }  D' A全部用英文
& u3 C! v/ E$ i6 c$ [- d! d3 ~+ r: Y  B4 I4 ~
2.目录实体的命名& H% D+ w, [2 ~3 s/ F. A
Code Framework                     <prefix><FWName>
0 R* o* E( ?0 b8 kTest Framework                      <prefix><FWName>.tst! Z: @1 ]( O4 H
- V) p+ A  f5 j& f! j* c
CAA Frameworks                    CAA<FrameworkName>.edu1 I) l+ Q% F1 O4 \" H* J2 x
CAA<FrameworkName>Doc.edu
, k. x" V5 u) T$ G CAA<FrameworkName>.tst
. ^) Z1 D) L0 j" @% F" o, Z. n# j# V2 C# Y
Code Module                        <prefix><FWAlias><ModuleName>.m
7 h# j' k6 x6 [Code Module in test FW              <prefix><FWAlias><Tst><ModuleName>.m
, s9 P3 u$ i7 s* {  b  L5 eCode Module in education FW        CAA<FWAlias><Edu><ModuleName>.m$ ?" ?9 h; K. P* }- a
Code main module                   <prefix><FWName>.m
6 U, z7 A$ `" n6 q' o
' U- I) a7 d* l" q5 H6 D6 v: g# EDoc Module in education FW         CAA<FWAlias>TechArticles.doc
  G' f# ^1 ^3 W& s4 z9 ~* L* o CAA<FWAlias>UseCases.doc4 y& ]$ S7 Y5 h( V$ c- `, N
CAA<FWAlias>QuickRefs.doc* J( V: b* G5 J8 q  T3 a
CAA<FWAlias>Base.doc
" H( n. v$ W$ h; ^- L  G  D& }/ u6 S
7 S. M8 V0 U6 ]$ ?8 w
. y9 P; }: ]/ u3.文件实体命名0 F8 }4 V) K: R% G& b5 [7 i2 W
   Simple Classes                      Class: <prefix><FWAlias><ClassName>* X; W: S& T: B3 c8 r" ~* n
File: <prefix><FWAlias><ClassName>.h
; J: \& e% f! Y* Y+ @* X, E File: <prefix><FWAlias><ClassName>.cpp
/ D1 [4 M  M' [* D& K
+ a# M. [9 A, E* q& i- \Extension Classes                   Class: <prefix>E<FWAlias><ClassName>7 z+ \! T1 N6 m
File: <prefix>E<FWAlias><ClassName>.h9 B6 h0 ]2 E3 W, D
File: <prefix>E<FWAlias><ClassName>.cpp, i: {* V0 R6 v9 `6 f3 h/ o: E
- i) D( n0 w. A* [  ^' o
Interfaces                           Interface:<prefix>I<FWAlias><InterfaceName>
5 ~) ^3 N) P' s+ X File: <prefix>I<FWAlias><InterfaceName>.h* P/ T. _. A8 w: B6 Z. w
File:<prefix>I<FWAlias><InterfaceName>.cpp
# U! T5 P- k" t8 k) I4 x
" k7 ?* Z- R% ~$ l9 |7 H0 oAutomation Interfaces                Interface: <prefix>IA<FWAlias><InterfaceName>. X: z2 V2 j4 L% Z- E" I3 Q
File: <prefix>IA<FWAlias><InterfaceName>.idl3 P/ p" P& n$ |' _
File: <prefix>IA<FWAlias><InterfaceName>.h/ D0 ~# ~0 ^3 |, s8 k' w; i( S! u6 ^
File: <prefix>IA<FWAlias><InterfaceName>.cpp  K1 s( f, P/ P1 @# k0 Y! I
! P: x( e0 g: o$ W5 x
Interface Dictionaries                File: <prefix><FWName>.dico for CAA customers! u+ a* d0 z0 }. B# ]. L
File: <prefix><FWName>.dic for DS/ N, ~+ D& p+ M7 Z8 F) G
* [0 h7 y5 }7 U( Q/ o- D; @; s1 V/ \& \
Factory Dictionaries                  File: <prefix><FWName>.fact3 U. ~& n/ \# Q  k  B( U
Global Functions and Variables       Function/variable: <prefix><FWAlias><FunctionName>
3 `# {5 d' x& w3 J1 j  `5 ^ File: <prefix><FWAlias><FunctionName>.h& Z& ^) `  \6 n3 F
File: <prefix><FWAlias><FunctionName>.cpp9 o. z) ]% s6 Y1 B6 t, ?' o
. P" y, a- o0 P7 F* P" v- f- l
Enumerated Types                   Type: <prefix><FWAlias><EnumName>+ P% }4 Z" m! B% ?1 z) E2 g. d* ~
Value: <prefix><FWAlias><EnumItemName>
1 x7 @3 j9 d% _3 o4 s2 G File: <prefix><FWAlias><EnumName>.h/ {! s. g1 x8 k: ~8 f
- T$ ~: N5 [- w- Z
Macros                              Macro: <prefix><FWAlias><MacroName>1 p% @$ _- l# y( Z9 ^
File: <prefix><FWAlias><MacroName>.h
2 l( Q7 k9 K2 @( j3 E. f4 S' G) M- l; J# u) w" ?4 [* E
Typedef                             Same as substituted name
% l. X$ p/ O: D* A2 ANLS resources                       File: <prefix><FWAlias>Name.CATNls" e+ n0 J* V' z
Resource catalogs                   File: <prefix><FWAlias>Name.CATRsc
( d. C  B6 D! T6 K5 ?! D$ U: N& ]; c# @
Feature catalogs                     File:& }; P% J5 C+ E) B5 [" |
<prefix><FWAlias><CatalogName>.CATFct
  x6 ?; v/ r, p, Q: Ifor CAA customers
( ?1 U0 K( X/ g" e7 aFile: <prefix><FWAlias><CatalogName>.feat for DS% E3 t' u( J* `' o  l7 R" @

7 h& \; R9 e8 p  T( i- Z5 x4.用户界面实体
1 D. f. @1 b. A   Command Header                   <prefix><FWAlias><Name>Hdr
' Z5 e/ U  m& V: J   Workshop                           <prefix><FWAlias><Name>Wks
& H+ ?2 z5 m0 x   Workbench                         <prefix><FWAlias><Name>Wkb
+ \4 s* p: P+ I7 y. b   Toolbar                             <prefix><FWAlias><Name>Tlb$ a% V5 i- Y& \7 `1 @, T
   Command Starter                    <prefix><FWAlias><Name>Str$ o/ q8 n! w& p  Z6 _
Separator                           <prefix><FWAlias><Name>Sep' S2 q2 Q5 _; Z( N& s
Icon Box                            <prefix><FWAlias><Name>Icb
8 j7 K. {- w. T% C, RMenuBar                            <prefix><FWAlias><Name>Mbr
$ [' t5 l' s0 i* oMenu                               <prefix><FWAlias><Name>Mnu
9 x4 }. k8 k: I2 Y6 `" p' [SubMenu                            <prefix><FWAlias><Name>Snu5 m. @7 f' r9 A* y- H
% u& B/ A0 s. O! k
5.其他实体' O2 b; u' a& x
  Features and Late Types               <prefix><FWAlias><FeatureName>
- O3 {3 n6 _: I3 K) _7 e- l9 b+ {6 T <prefix><FWAlias><LateTypeName>+ N6 }" j) s* Q7 h0 j( k* k
2 Y' j+ e- u0 x4 N6 R0 D
Applicative Containers                 <prefix><FWAlias>AppCont<ContainerName>
& y; ]3 N" E6 a5 [3 nData Members                         _<DataName>- T& _% `' ^3 ?) K' v

+ ^0 E! G' f7 f, m5 UMethod or Function Arguments         The i prefix for input parameters
0 l. ]- Y# S6 X3 j" O4 w7 K" aThe o prefix for output parameters
6 d" [6 N5 f5 ~& N6 L+ KThe io prefix for input/output parameters
2 G; \2 ?9 J' T8 H, Q* k, ?. E/ _# y! h0 A) U" z) q) [/ Z
6.名字的变化/ t0 H' o$ O( g6 ~* F) u6 P
变量名字要以小写开头   int counter
6 C% g6 G  v3 p) _2 c; ~函数名字要以大写开头   void CountItems()
) c' P1 e- s& L0 R) X9 w& z数据成员要以下划线开头 并且不能是public   int _length
6 o& v: r7 V) I# ?! ]5 J$ v* N) S$ }
! s& u' j2 U8 S) d
  s' A/ X) P( Z$ g. u- Z) \" x
/ t7 h' h7 O- M! r# @
7.指针% Q2 z; V7 N1 g5 V8 G7 c& d

' ]6 r5 s4 @6 @: j4 R 9 e/ n. z+ k. V
  
% D' J( W- t) x! K1 ]Prefix
/ _* r2 I4 a/ W2 H1 J1 _  % r4 P5 U' X3 l$ N5 }
Means
& m* `+ [, B7 s! @  T! c& g  
% A( ?, Q1 B1 Z( v" T  t) u' J* _9 ~Example
2 Q; W3 D1 {( G7 r& X+ @ 9 N5 |5 D$ b9 M: A8 K- J  F6 S
  
- `, d* s) M% r6 D$ Fp/ B- o& P3 _; @8 Q
  
$ O- t! k, M: u5 N# P4 {& F5 epointer
+ `! ]$ k7 S' y" o  " P5 t8 g4 e% v: _8 }
CATBaseUnknown *pTarget;
( M- j, g  c% j
! p  j1 O3 f$ M% ?$ h  
" y' T# ?9 j' i8 p9 F' Ipp
( o! c' V) B3 B2 A. v' S  
+ c, P) ?& F, G, s& F  a/ {pointer to pointer, W' }* |: ?; E5 Q; U# W4 r  J
  
9 m: J/ y5 k# L. `7 Gvoid **ppTarget;, n' O1 |$ l  S9 v, a* n: e1 W
. n8 q  n4 A1 _4 y
  6 B9 G1 \9 {4 B$ Q
pi
) L9 Z" X4 G4 B* X, {0 c  
+ _/ V0 e! l0 s. c, `pointer to interface
5 D$ R0 p- d% |2 T! A% ]! B  
& L/ ]) I) M# J" `. T( T5 x4 _CATISpecObject *piTargetFeature;
, \; L% o. o( B$ c/ q/ D' E- n& w: D 1 n8 \. H# s: ?; s9 e
  9 u- E9 B1 d3 t
sp
/ _. X% P8 `" u- q! Q- ~  ' r. m; m- H( n7 j
smart pointer || handler
8 i# k3 a8 w( b* M! z  
" Q" ~7 O7 f- M2 x* v9 ECATISpecObject_var spTargetFeature;
& V% z- ^. D) v
+ x7 P- J% [+ B. z& d; [  
1 t( Y: P6 k% L' Oa
" P, ?- }. U% e+ b/ l! C  
2 l' U4 N8 U. A# ?array
' ^9 H6 I5 ^; D' x2 w# R  4 `- E6 D( A: @- ?. S/ J1 D! ~
char *aPath;) V# u7 ^, z) l

- a0 a; E( m5 rCATISpecObject **ioppTargetFeature  输入输出和指针放在一起: S9 C. ^  Q8 Q
8.接口指针的命名; }7 J+ c8 u* {9 i, `
格式:pi<InterfaceName>On<RootName>
9 c1 b9 T1 J9 r" F- E. m指针名字通过去掉类名的前缀得到 例如:piInitOnDoc   中的lnit是从类CATIInit 来的
( T; f" U# G  Y" |" ~4 ?跟名字是用的三个字母的缩写 如上用Doc代替document
# k& ]2 M) l$ `: O2 S2 I* w/ S, a3 k7 C( u8 y- Z) S/ o

, `' K3 Q6 s8 _8 c  d  P# |! ~% T) u2 W! |
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了