|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
CAA的开发提供了两种模式:批处理模式(BaTCh Mode)和交互模式(Interactive Mode)。我们开发主要用到的是交互模式。! c& d" O) U/ v% N% Q; S5 ~- h
' K) b/ F2 @: V在此模式下,可以创建两种交互界面:Workshop(Workbench)和Addin。前者是创建一个新的模块,在这个模块中除了标准的命令,其余均由用户开发。后者指在已经存在的Workbench中插入新的工具条和命令
# i2 ]+ l# {' ]0 p$ y0 U- r, A9 v; i) e5 J3 T5 F9 O* a
7 M) m5 J1 ~" D0 LPublicInterfaces:公共接口,在这个文件夹中是类的声明,即.h头文件。这些类可以为整个Framework的各个模块共享,也可以被外部Framework使用。
8 K" L, w* s8 R& [4 `2 \ p( PPretectedInterfaces:系统自动生成的module.h头文件,供编译连接时使用。这些模块只能在本Framework使用。 IdentityCard.h:本文件定义了所有用于编译使用此Framework的预定义Framework。即,在开发过程中你使用了系统或者外部的API,你必须包含此API所在的头文件,module和Framework,其中Framework的预定义就在这个文件中进行。其格式如下: AddPrereqComponent("ApplicationFrame",Protected);+ u! e4 C" ~7 T* m' u
// ApplicationFrame即为所连接的Framework' H: B# M: A2 S2 z' X% l
4 _9 {8 V) ?' V* b( x1 ^: H5 F Cnext文件夹:包含了Resources和Code两部分,其具体的作用下文会具体阐述。
% I$ R+ c! R! Q+ j9 U- xModule文件夹:Module为组织程序代码的一个基本容器.其中:
( X4 l8 g8 G' G& }+ KLocalInterfaces中是仅供本模块使用的头文件集合;
+ P8 C" [2 R6 u! t; U- ZSrc是所有本模块的.cpp文件集合;: L# X6 N& `9 m. _1 P. p$ M
Imakefile.mk文件是所有本模块所包含的头文件所在外部Module的定义。在上面提到的IdentityCard.h中定义的是API所在的Framework,而相应的Module即在此文件中定义。
" D1 l7 S, R j w8 E9 _在LINK_WITH后面添加需要连接的Modules。
( G) z4 y7 N% W) |9 S; x5 Z0 Y t
, w6 ~! l3 P0 V7 f4 d3 i, J" v( A8 a- Q3 k2 }
注:我每用一个新的API都得在相应的module下的imakfile.mk里添加其所在的模块名,在frame下的identitycard.h里添加其所在的frame名。# ]6 q7 {% g$ D) s. q) \# Q( d
" S$ Q, ~* m/ H( w! q
1 N) `1 x! h' q+ q' V! |" [8 v
下面是几个值得注意的地方(也就是定义资源,同一个frame下的所有的资源都放在Cnext/resource/msgcatalog下):
% b( D/ g: |& {4 F+ X/ H' O l 在文件:TestWb.CATNIS中,可以定义此Workbench以及其工具条、菜单的所有名字(Title),定义格式为: 0 p! X7 m1 G/ z8 V( s: v0 |
TestWb.Title=”test”;+ W+ h# z5 A+ V1 |% T# u/ {; U& m- I5 v
l 在文件:TestWb.CATRsc中,可以定义此Workbench的图标(Icons)和其放置路径(Category)。前者暂不说明,后者说明如下:
1 t. ?3 F- s& A$ p2 x+ s+ `5 L. mTestWb.Category="Infrastructure";1 P: `4 l0 T7 B0 w S
Category可以为:Infrasturcture,MechanicalDesign,Shape,……。分别对应于已有的Workshop。我们将其改为:MechanicalDesign。9 W# X( F0 y/ K* v- @4 b0 b8 e
在文件:MyFrame1.dico中( Cnext/resource/code/dictionary ),定义了此Workbench的连接库。
0 b8 ?- {! n3 l( p2 u3 Q6 _. D3 I$ l/ L( A' N( J% p
, q* ?: s V( N" J$ [/ ?) C! Q4 H
6 S# g0 w( D6 c F
9 s6 M ~4 g8 }& [+ b- }
# |) j5 ^+ n: X
; X1 j T0 ]; C- e1 Z, \. n# V" m
) c: h+ O7 g: m |
|