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

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

[复制链接]

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

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

admin 楼主

2017-2-9 19:57:56

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

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

x

# T4 X- \, b9 X6 W3 b4 P1.主要规则
. k3 e+ ^- b% x8 J' cCAT 代表 CATIA   作为前缀(prefix)
) D2 \3 [# W6 L% rFrame名字用三个缩写字母表示即表示成别名(alias)  例如Dlg代表Dialog   
' a8 d4 W7 s' e% O全部用英文9 w: C  E8 t5 s8 L2 y  Z% z- s
2 p) P: v1 V  n: s' ?4 M
2.目录实体的命名2 [+ I! ?% x2 Q7 h/ b; O
Code Framework                     <prefix><FWName>0 ^9 g) g2 c  U( r6 d' o% j- ~# ~  m
Test Framework                      <prefix><FWName>.tst; i: U! K+ u0 x- m) H

, E+ i6 L, s' N- K; j! A- y( M/ QCAA Frameworks                    CAA<FrameworkName>.edu
# @* U" C! z& q0 n CAA<FrameworkName>Doc.edu$ M& j* J2 F$ \$ U+ d3 P' ~2 @
CAA<FrameworkName>.tst0 F( T# v/ y  T2 G- G/ m0 _' k
6 \" \+ x- x* t
Code Module                        <prefix><FWAlias><ModuleName>.m  G2 h% d6 D1 u8 e
Code Module in test FW              <prefix><FWAlias><Tst><ModuleName>.m! y4 ^( X- r: B$ |! w' ^, D
Code Module in education FW        CAA<FWAlias><Edu><ModuleName>.m
/ m& _, w( r( n( k+ z5 RCode main module                   <prefix><FWName>.m, B5 P) U! t+ W' V. p  f" x

' a- O3 H% i1 O/ s, |Doc Module in education FW         CAA<FWAlias>TechArticles.doc
8 O" L( o7 l: N- Z; w CAA<FWAlias>UseCases.doc
7 }& `0 G- Y" Y- r8 f CAA<FWAlias>QuickRefs.doc/ C  U# A5 g; V1 q$ o9 `; r
CAA<FWAlias>Base.doc
$ v; z/ K( @' E( G/ {/ Y# {2 T6 n0 V, I/ a; E  c7 g
9 x% f. E) X  x
3.文件实体命名: m; t  H7 D0 Q( ?; X/ o' ]0 j# L3 x
   Simple Classes                      Class: <prefix><FWAlias><ClassName>7 A7 l4 t! n  f2 A9 O
File: <prefix><FWAlias><ClassName>.h' [) e$ F# x2 i% x0 r# _& `  {
File: <prefix><FWAlias><ClassName>.cpp
' V1 x) t( L& }" }- i" k
0 c+ j, B  d3 ~) ?- Q1 hExtension Classes                   Class: <prefix>E<FWAlias><ClassName>5 t& @- i; @& a( H" @
File: <prefix>E<FWAlias><ClassName>.h/ ~& B" d  Y) {4 ?1 S+ Q1 \
File: <prefix>E<FWAlias><ClassName>.cpp1 }7 s! m' ~: @# F1 J7 g/ U% H

, N, D+ P9 L, B! M: N; B8 P+ aInterfaces                           Interface:<prefix>I<FWAlias><InterfaceName>
4 Z9 M/ ~: L, `' @* G File: <prefix>I<FWAlias><InterfaceName>.h$ j& n; r* S/ Y
File:<prefix>I<FWAlias><InterfaceName>.cpp
2 n' G7 M. `% B! z% M& K+ F% |& G/ q  k7 F6 f0 i, y
Automation Interfaces                Interface: <prefix>IA<FWAlias><InterfaceName>( d6 S" r3 q3 [- M
File: <prefix>IA<FWAlias><InterfaceName>.idl5 \: m6 Y: d! N" V! [  l
File: <prefix>IA<FWAlias><InterfaceName>.h: h/ ]* w/ ]8 ~
File: <prefix>IA<FWAlias><InterfaceName>.cpp
, |5 G8 O0 V* r+ J: z1 f' }# V8 A4 A+ t
Interface Dictionaries                File: <prefix><FWName>.dico for CAA customers4 B+ y/ j1 V$ [; u0 s  ~
File: <prefix><FWName>.dic for DS
. o% x% Y( Z$ |: F  u: @" _) T' _$ F3 ]* O8 R. Q
Factory Dictionaries                  File: <prefix><FWName>.fact
' P0 H) e+ l; s8 d# LGlobal Functions and Variables       Function/variable: <prefix><FWAlias><FunctionName>
: u) H% B( _: J File: <prefix><FWAlias><FunctionName>.h
3 Z# a2 b1 c. }. V# ` File: <prefix><FWAlias><FunctionName>.cpp
- \! c) v9 \8 _: v4 x6 ~3 |8 A; F: d7 u! ~3 `- r$ k
Enumerated Types                   Type: <prefix><FWAlias><EnumName>  {, P+ [1 m1 V  L/ [0 F! Q9 {
Value: <prefix><FWAlias><EnumItemName>
9 M, s9 u" B; ^ File: <prefix><FWAlias><EnumName>.h
! x% C  ^. j+ i( a2 E
' h$ d+ S6 E. }7 u3 W; a( d4 p8 cMacros                              Macro: <prefix><FWAlias><MacroName>; J6 u& W' S" R& m# J
File: <prefix><FWAlias><MacroName>.h
4 M* \: E6 N& U8 Z4 u* @; |1 G
Typedef                             Same as substituted name
  J! O9 r5 r* C% A2 x1 n7 _& nNLS resources                       File: <prefix><FWAlias>Name.CATNls
: g$ B5 W! ^6 y/ L% tResource catalogs                   File: <prefix><FWAlias>Name.CATRsc- v4 G+ R: p0 D

6 U0 R" v( s" a  Z: NFeature catalogs                     File:
! s& H4 N( f7 V  n& D <prefix><FWAlias><CatalogName>.CATFct 3 j& w  p' o4 l" J5 M9 b
for CAA customers) t8 Z$ ?8 A9 K: n3 {, j* _/ I5 r. o
File: <prefix><FWAlias><CatalogName>.feat for DS8 d' O) }+ o; Z- ^3 |1 }. G
( x  u0 v" X4 H- E' R
4.用户界面实体
" E0 f% K' T+ _3 S8 a   Command Header                   <prefix><FWAlias><Name>Hdr
7 \8 e3 J1 E8 F7 D   Workshop                           <prefix><FWAlias><Name>Wks
3 O2 {9 `, z) ~& {0 l# \( q   Workbench                         <prefix><FWAlias><Name>Wkb+ @9 O+ t  S) ?  |3 y
   Toolbar                             <prefix><FWAlias><Name>Tlb/ I: Q. O1 O& `8 A& K% m, G
   Command Starter                    <prefix><FWAlias><Name>Str: U4 Y1 Z& K2 \+ r# `4 g0 }
Separator                           <prefix><FWAlias><Name>Sep! c. \' I& C; f
Icon Box                            <prefix><FWAlias><Name>Icb4 Z. _, r: ^7 E- W4 k
MenuBar                            <prefix><FWAlias><Name>Mbr
6 @+ b: ^/ l6 H. Z8 R5 IMenu                               <prefix><FWAlias><Name>Mnu
8 }9 Q* z7 w" B9 x- Z& c0 z7 cSubMenu                            <prefix><FWAlias><Name>Snu+ ^. K7 v3 H  N  @
6 k- r4 B( M2 r
5.其他实体' A( E7 Q5 I, L# r' t
  Features and Late Types               <prefix><FWAlias><FeatureName># h; K) ^6 {% m
<prefix><FWAlias><LateTypeName>
# i  Q! p& X* c; s5 m6 l
! z& S3 _; o& K5 P6 X; s) t1 FApplicative Containers                 <prefix><FWAlias>AppCont<ContainerName>( e% t2 q$ m9 w1 e2 j0 }
Data Members                         _<DataName>! T, b" c6 c3 Q# l# o7 C% z
7 P, B* H3 K8 ]; b2 b. E7 N
Method or Function Arguments         The i prefix for input parameters
$ G' }) i2 H: M) J  K1 aThe o prefix for output parameters ! K1 d- b/ K2 z4 N. y8 U0 Q9 p+ w
The io prefix for input/output parameters ; i$ i4 B* h2 J, m2 X
4 t1 }5 ?& m5 N5 y' R
6.名字的变化
4 S* Q, |3 `: c( g  H/ U变量名字要以小写开头   int counter6 ]  T7 |; P* R) F' A1 g
函数名字要以大写开头   void CountItems()( p) L, o) t/ f. D2 y. G: D" R
数据成员要以下划线开头 并且不能是public   int _length& h+ P+ f7 h5 o* o# t
! O" x6 E5 ~: {9 }- W! l# P5 l
) j& M0 J' D' j# f3 d
5 u6 o$ E( L) ?" i7 A
: L1 R, {7 x+ \: y- S1 O+ {
7.指针8 z8 j8 P2 Q  R! Z/ a0 Q0 K( w& o; ?
" c& `  ]3 |" a' e$ K1 [7 n
: e" W6 r1 i3 P8 M
  
& S1 s: D7 T6 u" m( @/ Z; @, uPrefix
! ^8 o9 b$ I0 N% l% n  3 ]8 i. `% F) w, S2 R% b4 |
Means! S. M; m+ s: N; r- J# I, Z/ O/ d
  : z' ]0 M, ~# Y8 G
Example
# H% E( D+ E+ ?5 i% ^$ |1 A " f2 n, A3 L7 I6 ^* J' R' i% }1 Q
  , p% D$ x. V. W  H- K$ N
p1 S, B! C* f) X1 O
  
) v2 Z5 y7 ~! Gpointer
% h0 t% A- G5 W0 i, j1 M- N/ c' J  ; |/ o! M7 k6 i' e
CATBaseUnknown *pTarget;7 z: F; I8 D* D+ C  s$ t

8 h* y! b( G! m0 l  N. f# k  3 |3 I& U8 F& X7 M3 N! `6 A2 y
pp
) o& _, X: a0 z& Z# U  
7 c* |& a/ Z5 H1 z6 f5 Fpointer to pointer
- C3 _: s, I7 r% {' C* p  
  Z+ H1 C+ J( ^void **ppTarget;
6 c- t& T& k2 W/ r7 Z- n1 G  Q
8 e! q. R) l5 H9 p" ?  `/ W: @/ F  % b6 t" V/ M6 @
pi
5 r/ L& {8 t/ K* j  5 m" Z' z. o3 [
pointer to interface: u" B0 m$ {- q1 e- v9 b5 X+ C
  
, _" Y$ h# k* T/ B9 O8 iCATISpecObject *piTargetFeature;
7 O4 e0 M( q; Y! B: W , J) D/ J1 t8 |. u( @/ q& V
  
; O0 ], [& ]# I4 esp
- y( ?# Y% v6 O8 E" g& u  
4 Y' b( m0 ^5 B" c' W; s9 D! G; ?smart pointer || handler1 r* O( u  r: x- i' F
  - S3 D- i( H$ X! ^
CATISpecObject_var spTargetFeature;2 s0 i# L. Y* J# P  V7 f

3 F) b' U& g  y' ?8 Z* `3 g  , I1 w8 @3 @) G$ [$ T' O
a
% v" k% ~2 Q1 \# `; G  
% S( Y$ Y9 h1 E8 farray
) d  C. f$ N) g) J2 R  4 j9 s  h+ L/ k
char *aPath;
9 \- M, d/ R+ B& j ( `, T7 L9 l- ^  R2 D
CATISpecObject **ioppTargetFeature  输入输出和指针放在一起
& j; g: w, s; e5 h9 b, R8.接口指针的命名" g* S$ O8 J% v
格式:pi<InterfaceName>On<RootName>4 Y" [5 K: r3 A0 J" }1 z
指针名字通过去掉类名的前缀得到 例如:piInitOnDoc   中的lnit是从类CATIInit 来的
4 X+ P# n' t7 S  F. _跟名字是用的三个字母的缩写 如上用Doc代替document
( o# B; \+ }3 Z% ~% S; k* ~9 i1 G/ T: u- R$ V

$ `1 g3 n% o* q* X2 u6 I8 r
' C7 y5 Q/ ?9 x2 B) }0 I  y
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了