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

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

[复制链接]

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

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

admin 楼主

2017-2-9 19:57:56

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

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

x
4 I& z8 ?5 s" q4 d6 P: r! s
1.主要规则
. E, Z6 h7 L* @" O0 W) oCAT 代表 CATIA   作为前缀(prefix)
1 X# W$ q, u; |) FFrame名字用三个缩写字母表示即表示成别名(alias)  例如Dlg代表Dialog   
2 B# Z* l5 e9 J" `全部用英文
" O. r) u7 z, T; |# n6 r; V% N, k4 r
( i& N# j  \7 Q2 J. Z9 }( t2 o2.目录实体的命名! z' n* H3 }3 a% Z6 ?3 H* ?
Code Framework                     <prefix><FWName># G4 s' I# X! e) F: C# K9 d$ P( Z
Test Framework                      <prefix><FWName>.tst
$ {& r5 Q* o2 t% c* Z7 p
) v" ]4 z5 J2 A& _/ |+ C' O9 FCAA Frameworks                    CAA<FrameworkName>.edu
! i5 H5 R, y, c' I7 u" x4 s1 |) Y CAA<FrameworkName>Doc.edu! i/ d! P. B( X0 x) a4 U8 Y. L1 |
CAA<FrameworkName>.tst
( q4 |& {' w* p9 V' S. j
  ~2 p% y$ w' n3 u5 SCode Module                        <prefix><FWAlias><ModuleName>.m/ v7 J( i9 `) o" ?5 h
Code Module in test FW              <prefix><FWAlias><Tst><ModuleName>.m
; Q7 k1 x5 m( e' C4 ~Code Module in education FW        CAA<FWAlias><Edu><ModuleName>.m% T/ N: q6 B$ B% M3 f9 w
Code main module                   <prefix><FWName>.m
# c" _6 o2 M* v5 O% K6 a  s  o
. F5 U! {- |) D0 sDoc Module in education FW         CAA<FWAlias>TechArticles.doc1 ~3 x* N1 O" T; u" }
CAA<FWAlias>UseCases.doc8 o: L- J) J* v/ P( q
CAA<FWAlias>QuickRefs.doc
/ _: d! l4 G9 Y. }; e( F CAA<FWAlias>Base.doc! v. s2 t5 j0 O6 z- U6 t& \
- M! u- ?3 L+ Z8 J$ ~
; _. x# k, [! t3 G/ f; c8 @
3.文件实体命名
# w& q; A- b8 |% E8 X# ]* Z/ b   Simple Classes                      Class: <prefix><FWAlias><ClassName>$ y. }* s! f" a8 `) `& `% R2 a
File: <prefix><FWAlias><ClassName>.h
0 c  _( T7 C2 k* B- e1 V: X7 R0 ` File: <prefix><FWAlias><ClassName>.cpp
% h4 l( q" A/ {9 p; ]" s. b9 S: c8 d) l& Q+ Q7 L" r/ L. Y
Extension Classes                   Class: <prefix>E<FWAlias><ClassName>2 x! Z; H* N" s  t3 o  K) X
File: <prefix>E<FWAlias><ClassName>.h# t( K2 s1 E  _& N9 a5 Y! ^# w
File: <prefix>E<FWAlias><ClassName>.cpp
) A( v7 ^& V: O; i5 z# j+ T
/ d! `- ]  E% F- v3 x4 EInterfaces                           Interface:<prefix>I<FWAlias><InterfaceName>
+ P8 q6 j+ ?& c. `" d0 |5 H0 { File: <prefix>I<FWAlias><InterfaceName>.h
5 F1 b" Q% h& }& QFile:<prefix>I<FWAlias><InterfaceName>.cpp5 K5 W) K9 l! a1 M% P
0 j8 a  P( v% r. ]
Automation Interfaces                Interface: <prefix>IA<FWAlias><InterfaceName>+ [! V; x0 o; V  p* c" V
File: <prefix>IA<FWAlias><InterfaceName>.idl  p. m& l$ f4 q5 f( p' w3 }
File: <prefix>IA<FWAlias><InterfaceName>.h
+ h. r+ G7 z) T File: <prefix>IA<FWAlias><InterfaceName>.cpp0 i- t; J6 E7 O3 ~4 r3 F

" Q, a7 f% O7 ^8 f5 _9 O7 y" RInterface Dictionaries                File: <prefix><FWName>.dico for CAA customers4 X# L; B! }$ J; g
File: <prefix><FWName>.dic for DS
9 a8 {2 b7 `. }1 \! y6 U7 |& t# G+ y! s( R& D  D% g
Factory Dictionaries                  File: <prefix><FWName>.fact# H$ ~/ n2 C  e
Global Functions and Variables       Function/variable: <prefix><FWAlias><FunctionName>
2 ^5 I$ Z7 c, A$ E; \. D- u0 j File: <prefix><FWAlias><FunctionName>.h
7 N2 x( `% W. ^# b' K, e File: <prefix><FWAlias><FunctionName>.cpp9 f+ A' M, {; ^( T4 w. C+ V+ X0 S) c% o

7 U3 L. f* c! Q/ ^2 K. MEnumerated Types                   Type: <prefix><FWAlias><EnumName>5 c& m& @2 h# V* H& H# p; W2 @
Value: <prefix><FWAlias><EnumItemName>/ W' R' W2 m8 N
File: <prefix><FWAlias><EnumName>.h
( F8 T( J3 k6 O: A
+ @5 f5 _  f7 N# W5 D+ KMacros                              Macro: <prefix><FWAlias><MacroName>
/ [9 `: j- j" R( n: D- M File: <prefix><FWAlias><MacroName>.h* R& ~7 t% S( ]3 [) e
  s7 z; u) w% u3 U$ e9 {1 a4 t# p
Typedef                             Same as substituted name9 V& g( `# q4 e+ h) o3 }
NLS resources                       File: <prefix><FWAlias>Name.CATNls& z& b3 C. z- I2 o
Resource catalogs                   File: <prefix><FWAlias>Name.CATRsc% e, I! B" z# ]& U/ @. ?
! ~6 O3 s7 i3 K& F
Feature catalogs                     File:6 n0 F9 X4 _9 {: U( g4 O
<prefix><FWAlias><CatalogName>.CATFct
: Z, H2 s  T! T' @7 Kfor CAA customers, n6 [3 [2 U8 K
File: <prefix><FWAlias><CatalogName>.feat for DS
# s3 Q: [: L/ H7 m. d% w& O% t  O& P( W
) ~/ i  Z% k$ i" F; ]% [1 e- |4.用户界面实体, d' v9 o: V& ?2 N! B6 n+ k$ B/ L
   Command Header                   <prefix><FWAlias><Name>Hdr& \" ~* @! `  B# ^( z) C2 K+ r- O
   Workshop                           <prefix><FWAlias><Name>Wks% U. ]6 p' e, W8 w
   Workbench                         <prefix><FWAlias><Name>Wkb- j- g& O" T" v+ S; m- {  r
   Toolbar                             <prefix><FWAlias><Name>Tlb
5 x2 Y% W' @1 X! M   Command Starter                    <prefix><FWAlias><Name>Str. O+ \7 ]" u% B- X6 l
Separator                           <prefix><FWAlias><Name>Sep
* E% C" n& R; yIcon Box                            <prefix><FWAlias><Name>Icb
1 D. Q  B4 L( gMenuBar                            <prefix><FWAlias><Name>Mbr
3 ~, D" }3 I, B8 w3 wMenu                               <prefix><FWAlias><Name>Mnu
1 o) ]; ]/ r0 F1 Y3 M' f: _SubMenu                            <prefix><FWAlias><Name>Snu
& y  g. T8 L5 \/ a2 P
) X" _( ^' i) S3 R' k' Y5.其他实体
0 F0 b5 ?) c8 \6 @! d  Features and Late Types               <prefix><FWAlias><FeatureName>2 D- O0 v& Z2 }! X6 H
<prefix><FWAlias><LateTypeName>
8 T, C7 S) S- A/ v/ h) Y% Z' o( E
, X" k; \8 U/ K! _$ v$ c9 _; pApplicative Containers                 <prefix><FWAlias>AppCont<ContainerName>
( ~' o9 C4 K- g/ c8 T( k3 sData Members                         _<DataName>5 O: w% G% z1 B0 t
0 M. ^" a& V7 H0 e
Method or Function Arguments         The i prefix for input parameters 5 ?+ R. h6 o1 H' K- [+ i; I
The o prefix for output parameters
7 C0 e) t+ r8 ?5 O; ~; uThe io prefix for input/output parameters ! J4 P! P+ z. x
7 E: R6 z3 [1 F8 j; j6 H7 U
6.名字的变化( a; ?, x! C( w' v  y
变量名字要以小写开头   int counter7 ]; ]! F7 z7 e% `4 r; }) @- \* D
函数名字要以大写开头   void CountItems()6 N: j) h& G6 c; N5 z
数据成员要以下划线开头 并且不能是public   int _length* ~# e: `: b3 c1 M+ Y4 a& p
' G! F" ~( p2 I. o$ S2 h

% @2 t7 {1 F$ t' L% y
; S1 H( v! l. G; ^
$ B8 @5 D( x4 k4 N7.指针1 f6 {6 `9 g, z

& h6 _! Z# l0 }5 i
( a& S6 G/ `- m  \! C  ?3 j) Z: i+ c* N  . t/ l, o0 A% r
Prefix
5 H5 a5 }- ]2 X* e: `  ) K. l; n7 i0 D. ~. V$ `
Means; Q( v8 \% o; e  O
  , l1 y7 U' K$ {/ g/ `/ t
Example
3 R& R) U( F% N+ K 7 o/ _! R5 ~- L' s$ M
  
& r6 T; g# f0 }( _8 F. A0 Qp/ J6 N4 H$ Q( o. P
  7 T& b9 O2 W8 B4 Y
pointer! N- r8 j( c6 e+ ^
  8 G, h: _+ s) v, E( X, Y
CATBaseUnknown *pTarget;. w( |3 X4 q' ]# C8 |, E# w
. {* K9 O- G$ e' p
  
7 r% P) X+ w0 ?pp
, m* N$ g/ W3 O! _; q! g  |2 ~/ j! M  8 V0 t/ d- e, ~1 v  p5 {7 c
pointer to pointer! [2 k6 D2 B6 K7 R
  . M1 h  K+ i& e# K6 H% V
void **ppTarget;
7 c8 `7 U7 v) j/ S7 X
. P: O0 t* p1 E1 y3 B; P" Z  - z8 _# q5 l9 t9 \  I
pi
5 P5 r7 \  G5 H# v, Z- f  
! J: Z% A2 o( t  Upointer to interface
3 {3 A1 T8 ~! t; U! Y  Z% y! e  
8 |+ C( E" g: |: e- p: \+ UCATISpecObject *piTargetFeature;- y% Q1 c6 i* h

* _6 t) t. N, L  ) A7 |+ P8 w; M7 o1 T7 i( {' U) p' u
sp# {* f1 F) s9 n
  - m) a! r" A# o& V, f( m) }" ?
smart pointer || handler
# X. e/ d$ D7 Q& S, s  2 k- r: h6 C( _; m% s2 O! E
CATISpecObject_var spTargetFeature;6 U7 A+ q3 R5 u2 p  c$ D

5 s9 f- K. k  L  
; t$ H5 E( }+ O0 {a  V9 ?3 M4 o$ u8 R; a3 H. ?$ m8 ?
  , L0 z# n4 }. g- N
array2 L. ?7 d/ W' n3 P$ U
  
( A  A% g: g% `5 ~char *aPath;% e! z) N/ C) h/ r. r, h  I+ z

5 W& }. R% y$ K# f- hCATISpecObject **ioppTargetFeature  输入输出和指针放在一起4 }. u; w6 _* b- N" }# J, K
8.接口指针的命名+ P- h" h/ P3 V. m2 J$ F# ^
格式:pi<InterfaceName>On<RootName>8 [) J. `' J5 f" i( d; s  w0 f" H
指针名字通过去掉类名的前缀得到 例如:piInitOnDoc   中的lnit是从类CATIInit 来的9 C4 r# u, v2 c) D9 ]' ?
跟名字是用的三个字母的缩写 如上用Doc代替document
% Y# q1 R. `+ N7 F; b; K0 x8 M& t% P( ~

8 d6 E% z# w0 [" m8 Q4 c; {  Q0 O1 _3 u
2 N1 a+ p% M$ c
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了