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

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

[复制链接]

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

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

admin 楼主

2017-2-9 19:57:56

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

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

x

8 W; ]# @# P, i0 \# v( ~+ B1.主要规则
- a$ F0 J# @4 X1 q9 h) yCAT 代表 CATIA   作为前缀(prefix)/ a5 A% z. d* i1 Z
Frame名字用三个缩写字母表示即表示成别名(alias)  例如Dlg代表Dialog   - p9 J% q- I  X- Q; i0 b* ?
全部用英文3 }* S' D3 d& D9 |7 R6 y, o

& e% d8 Z+ d3 W( @7 }$ S- f2.目录实体的命名
% ]6 t7 ]! l. I1 |' SCode Framework                     <prefix><FWName>
& w5 ^( _  |6 Q0 j) _2 D  TTest Framework                      <prefix><FWName>.tst
3 O' m5 h6 L: i5 z
7 W) u% K8 p; S/ I& a2 v0 GCAA Frameworks                    CAA<FrameworkName>.edu
% n8 L# c. v! o5 a1 p. N: A CAA<FrameworkName>Doc.edu
7 a. |3 U' O# R& K0 ~: K) R CAA<FrameworkName>.tst
! p  M( g( j# \, o1 U" }2 j6 N# p+ Z3 ~) D
Code Module                        <prefix><FWAlias><ModuleName>.m1 U! w2 m* a0 E& R
Code Module in test FW              <prefix><FWAlias><Tst><ModuleName>.m/ Y  D* X& l3 o1 C) F
Code Module in education FW        CAA<FWAlias><Edu><ModuleName>.m
( W5 C8 \1 r$ C- YCode main module                   <prefix><FWName>.m  E, e+ Q. Z8 ?9 |  ?% p9 k

/ a; G1 C" M, F! @( ?Doc Module in education FW         CAA<FWAlias>TechArticles.doc0 [% I  k) X- |) F$ E6 K2 j
CAA<FWAlias>UseCases.doc% G8 H( B9 {) P5 Y7 u% a2 c
CAA<FWAlias>QuickRefs.doc
/ v8 Q, @: t; `7 y: o5 R# C) O7 x CAA<FWAlias>Base.doc1 H* y/ q9 r' g/ w
& u$ s  E' k$ n, L7 }9 R1 l
; y( I+ g( Q5 X$ b. Q' t! g9 _  O
3.文件实体命名! J! d: I8 q( R. T5 T/ X% T
   Simple Classes                      Class: <prefix><FWAlias><ClassName>" x8 r. V6 d% a4 q
File: <prefix><FWAlias><ClassName>.h
" s. M1 X( ~; O9 }% k9 k+ y0 X6 C File: <prefix><FWAlias><ClassName>.cpp: i7 E0 t( n) T8 }6 K( Y
# r" _2 K- \/ Y3 i
Extension Classes                   Class: <prefix>E<FWAlias><ClassName>3 u9 H, F. ]8 k/ M3 R7 D; H5 B
File: <prefix>E<FWAlias><ClassName>.h
# c# X; J" a' ~' N# p: o File: <prefix>E<FWAlias><ClassName>.cpp* A# C( T0 ]" P
+ |3 t- l, W6 a1 u
Interfaces                           Interface:<prefix>I<FWAlias><InterfaceName>
; j# F8 J0 m3 p: z2 B4 g; H File: <prefix>I<FWAlias><InterfaceName>.h" ~7 n/ ~& n4 y  s, e
File:<prefix>I<FWAlias><InterfaceName>.cpp% B/ W: m' E  v: U% f
- W+ g2 H; K4 `3 _
Automation Interfaces                Interface: <prefix>IA<FWAlias><InterfaceName>! a& q- B! ^6 p4 J5 z6 S( l9 J
File: <prefix>IA<FWAlias><InterfaceName>.idl" M# u4 d2 ?, R8 O
File: <prefix>IA<FWAlias><InterfaceName>.h
) O) F7 C8 L' d* n% W* G. G( U File: <prefix>IA<FWAlias><InterfaceName>.cpp
# @* w6 \) B/ c0 }0 v* N7 g9 C3 N9 m: k0 I5 T
Interface Dictionaries                File: <prefix><FWName>.dico for CAA customers5 H7 M+ b! y+ b1 w. i- i! Z( I
File: <prefix><FWName>.dic for DS
- g& }$ Y; x6 G' V) g, G) m: c$ {! W
Factory Dictionaries                  File: <prefix><FWName>.fact
5 v# ?) B; G. f: q7 e( K: t! ?Global Functions and Variables       Function/variable: <prefix><FWAlias><FunctionName>
4 Q7 Z: ]+ F7 y' U, x. s& l& c8 J# x File: <prefix><FWAlias><FunctionName>.h
! ]# x8 y& m6 c/ R& B File: <prefix><FWAlias><FunctionName>.cpp! p& v2 a, u/ n( E

# ~4 Y8 g) \. Y& ?6 cEnumerated Types                   Type: <prefix><FWAlias><EnumName>
; }1 R! g, r" \: F( p2 g2 R Value: <prefix><FWAlias><EnumItemName>
, K- W% Q. b/ A; B File: <prefix><FWAlias><EnumName>.h
( @# O4 v5 G# u7 M* p" ]! _
+ R# C9 u0 D% C6 m0 uMacros                              Macro: <prefix><FWAlias><MacroName>3 a. K/ e- P) ^
File: <prefix><FWAlias><MacroName>.h
/ R6 a$ J( x5 E* Y% `1 G6 h8 ]3 {, C* A9 B! r2 K+ P; K" Y! l! m
Typedef                             Same as substituted name
( \+ H! ^* G; ?& |NLS resources                       File: <prefix><FWAlias>Name.CATNls2 ]; g6 `, Q. ^% E4 j- z
Resource catalogs                   File: <prefix><FWAlias>Name.CATRsc( v8 D9 Z! v( ?+ \0 ^# K2 P$ v

# t& K* T5 k& V0 h3 MFeature catalogs                     File:, L2 N) |9 s! p! G& o
<prefix><FWAlias><CatalogName>.CATFct
# o, f, ~# H" Q& j$ h0 o) |for CAA customers
5 Y0 X* d+ o+ N. [; ~  wFile: <prefix><FWAlias><CatalogName>.feat for DS
0 ?7 O* m- Z; @% n9 q0 m8 ~
) x" W0 E- N! T: i  C9 J4.用户界面实体1 O; y! W  U3 o' [4 G( g3 G6 N
   Command Header                   <prefix><FWAlias><Name>Hdr; X4 ?8 N+ d% K  f; Q, h! k0 U2 U
   Workshop                           <prefix><FWAlias><Name>Wks0 M' X9 B% E' L) U
   Workbench                         <prefix><FWAlias><Name>Wkb
+ p8 A5 S+ j2 A' c9 H0 V   Toolbar                             <prefix><FWAlias><Name>Tlb
3 v) B' c7 e  L& ]   Command Starter                    <prefix><FWAlias><Name>Str
( g( t! u7 ^' e9 h2 _Separator                           <prefix><FWAlias><Name>Sep9 C. W% @+ L  h7 K6 B' Q6 f
Icon Box                            <prefix><FWAlias><Name>Icb
" M! y2 Z9 b0 y% NMenuBar                            <prefix><FWAlias><Name>Mbr; ~- {3 u% C0 U& a9 }
Menu                               <prefix><FWAlias><Name>Mnu  S( D4 h8 z/ ?9 h' [) A+ T+ j
SubMenu                            <prefix><FWAlias><Name>Snu% @' K2 ~9 a7 Y
# g5 ^8 ?8 m& T, b
5.其他实体
- \. k; E& u) b9 D% Z  Features and Late Types               <prefix><FWAlias><FeatureName>
3 L+ `" _& ]- z2 i3 }* w" b <prefix><FWAlias><LateTypeName>& c  J5 g$ t( I% D7 m
( @" Z0 c% d, S1 X# d2 f$ r
Applicative Containers                 <prefix><FWAlias>AppCont<ContainerName>  e8 W2 o6 \2 M9 j7 o/ ]# i
Data Members                         _<DataName>, R6 H. x# q0 l* a$ Z' s) [8 L% n, F

4 D+ X; ~! Y+ s' Q5 uMethod or Function Arguments         The i prefix for input parameters 4 F& N8 `; \$ U# [/ _
The o prefix for output parameters & F. K; D/ o4 _1 D
The io prefix for input/output parameters 5 A; p9 s0 i/ ?1 F

5 z2 Z( P- m( @6.名字的变化) w* R- v% M1 m# ?0 ~# n
变量名字要以小写开头   int counter
& N, z+ a9 v+ }0 e! L9 V1 i- H函数名字要以大写开头   void CountItems()" A7 y; U' E1 V5 w% s
数据成员要以下划线开头 并且不能是public   int _length
5 I. b* E9 I6 }/ f4 N5 e0 A9 Z# k
' ?8 A( S  H, V: b- z& }3 u3 `/ o1 `9 k

1 Q5 }& \7 X' W, ^" l
# w1 c! Z; ~& m/ s7.指针# C. H0 \' p( ]! b6 w1 |
. V: v# G1 @8 ~  @4 y

- q( e1 U4 e! J( E& u& @' E  & [# ~7 H" [% x: k
Prefix
, W) r: |" u8 j# d8 y  7 }+ M: j. }! y8 I: Q; H
Means
: y+ `/ G6 t2 N  5 _; S  q5 y, v# X  E
Example
) [. W. u9 k  D2 L/ }* A( c5 e
0 ]+ I' g( ^7 g' |5 G/ \  
8 `5 u& Y: T0 [# o6 @& `p
: g0 ~  I% l: P! t  
/ u2 a$ d( d. spointer
+ F' t( c* \, q* ^6 g$ @- _4 p. S  
* b! Z& T( ?9 m, ICATBaseUnknown *pTarget;/ ?7 n' t7 o* N8 C8 t* _6 m* d$ d
' L- y: `3 o& s  H) G
  ! a" `$ M) d: {1 M( x! K7 k
pp' y: Z  v6 W3 v$ D. W" z) Z
  
6 `0 d/ `6 S" C* W3 H; Jpointer to pointer
# w5 s" D& x0 Z  
) {7 u; }0 w# avoid **ppTarget;. K/ R7 V) V& z- N+ H( v

  Y4 P/ f6 ?& r4 n& [0 k  1 V' e# I; n0 d+ t4 f: o# n
pi% O" f7 d1 ]5 h% C8 f  ^
  
: o7 ]7 r! E2 C3 q/ I) @pointer to interface
' a3 d7 u# G( T' v: e1 c/ w  9 K( A- X! \+ B& A( d0 x  c: d' d
CATISpecObject *piTargetFeature;, g) ]- P1 u7 p1 |$ v5 m/ A

. |: F5 U  b0 h/ N7 Z' B# e  
; C; i' G+ q; g" M4 r% r* xsp
, }0 L! w/ Y: h. [* ~, ^  ; E4 q, c/ P  \
smart pointer || handler
0 W9 l7 e% ~! _% G% |! |8 O8 f7 a9 i+ V  1 P" J+ M2 S9 ?$ v* k
CATISpecObject_var spTargetFeature;( T' k, s* p  t; y% w

$ P; E* |& j9 d1 u! ^4 S. t: j! x  
3 y1 ?( _0 I; c. na! o' J% L7 @6 e  p4 @1 V
  
6 c5 W1 \) v( V" Yarray4 q: ?0 V! a1 p# t; v4 r" K6 p7 g  S' [
  
0 `5 Q7 k; [2 f, ~& Qchar *aPath;
  o) Q5 ~  W" s  r; z8 D , h0 }/ ?; i! E
CATISpecObject **ioppTargetFeature  输入输出和指针放在一起7 Y# x  ~) z8 l8 m. {0 R. L
8.接口指针的命名# \  W  N+ @* S5 p- [  K6 [% \1 L
格式:pi<InterfaceName>On<RootName>, Y/ x3 V+ n- o/ S* E/ s# C
指针名字通过去掉类名的前缀得到 例如:piInitOnDoc   中的lnit是从类CATIInit 来的
2 o. Z4 j; G0 q; b- D' W跟名字是用的三个字母的缩写 如上用Doc代替document8 ~) Q) t, k  [) y" Y) P8 N' S3 Q

! _% K% c/ O! W0 L; h
6 r: y# ^7 r/ G
: A4 g* H- C0 b1 v0 `$ L( k
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了