| 会员登录 立即注册

CATIA教程

搜索

[CATIA插件] 【CATIA小狼】CATIA VBA二次开发内容分享及讨论

[复制链接]
CATIA软件教程 发表于 2019-4-18 06:06:11 | 显示全部楼层 |阅读模式
CATIA软件教程
2019-4-18 06:06:11 9350 4 看全部
  如题,本帖主题是CATIA VBA(Automation)二次开发,非CAA。本帖将不定期更新。欢迎各位二次开发高手前来讨论。

  欢迎对二次开发感兴趣/想学习的朋友前来围观。放个简单的VBA二次开发小例子的动图镇楼吧!
dGM0u2GzM7K9Unxm.jpg

  首先我们来研究一下,啥是VBA。

  VBA全称为Visual Basic for Application,是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是Microsoft Office软件,比如各种教程已经在网络上泛滥的Excel VBA。

  CATIA v5系列软件作为全球汽车及航天行业广泛使用的CAD/CAE/CAM软件,其自身功能已十分强大。然而不同行业、不同企业,受标准、法规、规范的制约,对于软件的具体需求也不尽相同。

  考虑到这一点,CATIA软件也为普通用户提供了VBA二次开发接口,以及开放的内部命令集合。通过VBA,用户无需专业的编程基础,通过简单的学习,就可以基于软件现有命令开发出满足自己需求的功能,将一些大量、有规律、重复性的工作编程自动化,从而提高效率,减少工时,缩短产品研发和制造周期,最终为企业带来效益的提升。

  关于CATIA VBA二次开发的学习资料,相关书籍或网络上的资源少之又少,仅有由胡挺、吴立军两位老师编著、电子工业出版社初版的《CATIA二次开发技术基础》这本书,以及CATIA自带的天书般的《V5 Automation》英文开发手册。

  楼主由于兴趣使然,近些年一直在研究CATIA VBA二次开发的相关内容。近期看到还是有很多人有相关需求,因此特开此贴,将自己近几年在VBA方面的所学、所得、所思、所想整理出来,分享给各位想要学习的朋友。

  学习二次开发,需要有一定的编程基础,大学C语言/VB课程中所学的内容足矣。如果实在没有基础,能看懂英文的基本也就能看懂VB代码。

  Automation的二次开发。那么Automation又是什么呢?

  简单来说,我们在CATIA中画个草图,拉伸个凸台,改个零件号,投个图纸,标个尺寸……这些手动的操作,绝大多数(不是所有)都可以找到实现对应操作的VB代码。

  比如,我们右键某个零件,选择Properties,将零件号改成“CATIA 小狼”,对于的代码大概就是Product1.PartNumber=“CATIA 小狼”一类的。

  接下来,楼主会通过一个简单的例子,来带各位进入CATIA VBA的二次开发的大门。

  如果你碰巧看过那本pdf书,觉得入门例子是那个拉伸凸台,然后通过改代码生成5个凸台。那么,恭喜你猜错了~


 楼主| CATIA软件教程 发表于 2019-4-18 09:38:26 | 显示全部楼层
CATIA软件教程
2019-4-18 09:38:26 看全部
现在开始,任何疑问,暂时保留,先跟着我一起做。下面的步骤可以说是手把手教不能再详细了:
1.打开下面的界面,快捷键是Alt+F8。 LQXVZx47ZE74h747.jpg



2.点击右面的Macro libraries
UzQrW266TQtq983w.jpg



3.在Library type的下拉列表中,选择VBA projects
kzaEnM04vcQAkyXa.jpg



4.点击Create new library按钮,然后在弹出的对话框里,输入一个包含完整路径的以.catvba结尾的文件名。
pq9Yp9Q9tU6XT486.jpg



5.创建好了之后,我们在左边的current libraries列表里,双击刚才创建的库,然后就可以关闭所有的窗口里(CATIA除外)


好了,现在我们来解释:
上面的操作是建立了一个VBA库。为什么要建库呢,因为你写的代码,画的窗体得有地方存放啊!存放在哪呢?就是这个VBA库里面。包括即将要进行的录制操作,我们也要把对应的宏代码录到这个库里面。
 楼主| CATIA软件教程 发表于 2019-4-18 09:57:59 | 显示全部楼层
CATIA软件教程
2019-4-18 09:57:59 看全部
现在,我们来录一个宏。
点击这个Start Recording的命令:

弹出来的对话框不用管,直接点Start就行。因为我们上一步的操作已经将新建的Library设置为当前的库了。当然如果你想给即将录制的宏起个名字,也没什么不可以,只是不要用中文就好。
界面里出现这个图标的时候,就说明我们已经在录制状态了,点击该图标即可结束录制。

录制状态下,我们的部分操作,注意,并不是所有操作,或者说大部分操作都不会,会被录制成VB代码。
接下来,请各位进行如下操作:
新建一个Part文件,添加一个几何图形集,并把几何图形集的名字改成“Hello CATIA”。
然后,点击刚刚上面提到的命令图标,结束录制。
这个时候,你再按Alt+F8调出Macros的界面,刚刚录好的宏就已经在里面了。

 楼主| CATIA软件教程 发表于 2019-4-18 09:59:00 | 显示全部楼层
CATIA软件教程
2019-4-18 09:59:00 看全部
  这时候,我们如果选中左边的Module1,点击右边的run按钮,刚才建立part,插入图形集,改名这个过程会重演。

  但,如果只是把操作录下来,再重放,这个意义并不大。并且如前面所说,一些操作是录不出来的。

  所以,让我们选中这个Module1,点击右边的Edit按钮,来看看里面的代码究竟长什么样子。

  SubCATMain()

  Dimdocuments1AsDocuments

  Setdocuments1=CATIA.Documents

  DimpartDocument1AsPartDocument

  SetpartDocument1=documents1.Add("Part")

  Dimpart1AsPart

  Setpart1=partDocument1.Part

  DimhybridBodies1AsHybridBodies

  SethybridBodies1=part1.HybridBodies

  DimhybridBody1AsHybridBody

  SethybridBody1=hybridBodies1.Add()

  hybridBody1.Name="HelloCATIA"

  part1.Update

  EndSub

  刚才的操作对应的代码,就长这样。

  所以,如果现在让你运行这段代码,对于的操作上:添加一个part,插入一个图形集,名字由“HelloCATIA”变为“OOXX”,你知道怎么改上面的代码吗?
 楼主| CATIA软件教程 发表于 2019-4-18 10:00:25 | 显示全部楼层
CATIA软件教程
2019-4-18 10:00:25 看全部
我们暂且不具体解读上面的代码。不过基本能看出来,代码都是  
Dimxxx,Setxxx,或者xxx.xxx这样的语句。  
这里,我们通过一个生动的例子,来告诉大家对象,以及对象的方法和属性的概念。  
哈士奇,是一类有同样特征的东西。  
所以,我们可以写:  
DimErHaAAs哈士奇  
这样就定义了一只名字叫ErHaA的具体的哈士奇对象了,当然狗的名字(变量名)你随意取。  
定义完具体的对象,我们就可以使用该对象的属性和方法了。  
属性:  
对于性别,我们可以写:性别1=ErHaA.性别,来把ErHaA的性别值赋给性别1。  
但不能写ErHaA.性别=公。因为性别没法更改。所以,性别这个属性是只读属性(ReadOnly)  
但对于颜色,就不是制度。我们既可以颜色1=ErHaA.颜色,读取其颜色,也可以写ErHaA.颜色=粉色,给它染个粉色的毛。  
方法:  
按照上面的图列出来的,方法一般可以理解为这个对象能干什么,表示一个动作。有的方法后面有参数,有的没有。  
比如,我可以写:ErHaA.叫,让它汪汪叫,但叫的后面没有参数。  
而我们如果写ErHaA.破坏(沙发,70%),就可以通过参数来控制它的动作的细节,比如破坏的对象是沙发,破坏程度是70%。  
然而,二哈这个对象毕竟是我们为了举例子自己编出来的。  
在CATIA中,有着许许多多的这样的类,且它们各自都有着自己的属性和方法,比如我们录出来的代码中的hybridBodies1.Add,这就是hybridBodies的Add方法。而改名字的HybridBody1.Name=“xxx”,则是HybridBody1的Name属性。  
  • 您可能感兴趣

查看:9350 | 回复:4

CATIA下载| CATIA安装| CATIA教程| CATIA视频教程| CATIA二次开发| CATIA入门教程| CATIA V5| CATIA V6| CATIA论坛| CATIA论坛
版权声明 wanqiang@rydit.com.cn ICP备案号: ( 蜀ICP备14018086号-5 )
Copyright © 20017-2020 CATIA论坛 All Rights Reserved.  
快速回复 返回顶部 返回列表