24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 11736  |  回复: 6

zenbom

铁杆木虫 (正式写手)

[交流] 如何用VB,Python,或Matlab等语言做CATIA的二次开发 已有5人参与

用程序语言 如 Visual Basic,Python,或Matlab 操作CATIA 等绘图软件,其最重要的就是对API的理解。当然,对于程序猿来说,本帖就可以无视了。本帖重要面向 做工程的人,普及一下非常浅的程序知识。

相信,用catia 的童鞋们,对catia macro(宏) 有一定的了解。当然,这些都可以在 你安装文件夹下搜 V5Automation.chm 找到非常详细的指导。该文件主要是 catia 基于VB的 api。

我们先看第一个通过catia -> tool->macro->VB例子:
1. 看官方例子
打开 V5Automation.chm -> Content ->Getting Started with CAA V5 Visual Basic -> working with infrastructure -> use cases -> A script sample (其实很多中文的二次开发,就只是翻译这个帮助文件的例子而已)
2. 读懂程序
根据上面创建的顺序,会有如下的code:
Dim documents1 As Documents  (Dim 表示定义,这是VB的语法,此句为:定义documents1 是一个文件类型。读者可以百度 VB 语法)
Set documents1 = CATIA.Documents (set 对对象赋值,VB 语法。此句为:把CATIA的属性Documents值 赋给documents1。Documents 就是CATIA提供的api)
一下是 其余部分程序:
Dim part1 As Part
Set part1 = partDocument1.Part

Dim bodies1 As Bodies
Set bodies1 = part1.Bodies

Dim body1 As Body
Set body1 = bodies1.Item("PartBody"

Dim sketches1 As Sketches
Set sketches1 = body1.Sketches

Dim originElements1 As OriginElements
Set originElements1 = part1.OriginElements

Dim reference1 As AnyObject
Set reference1 = originElements1.PlaneXY

Dim sketch1 As Sketch
Set sketch1 = sketches1.Add(reference1)

程序主体理解完毕(其余的 如 sub, module,等语法  请自行百度)

Python例子:
1. 外部连接 :
由于CATIA 中的vb代码是在 catia中运行,所以省了 vb与catia连接的code(代码)。因此,我们需要先把python与catia连接起来。第一件事就是下载相应版本的pywin,再import win32com.client. 也可以根据这个文章http://win32com.goermezer.de/content/view/29/291/
所以,在python调用windows api前,需要写如下代码:
import win32com.client
catia = win32com.client.Dispatch('catia.application')
如果看不见 catia窗口 可以 再输入 catia.visible = 1

相应的VB 接口代码 在  V5Automation.chm -> Content ->Getting Started with CAA V5 Visual Basic -> working with infrastructure -> General Information -> Invoking CATIA from a scripting language 里面找到。
2.用Python 仿写VB代码:
在仿写之前,请笔者注意python语法。
一下为仿写代码:
documents1 = CATIA.Documents
partDocument1 = documents1.Add("Part"
part1 = partDocument1.Part
bodies1 = part1.Bodies
body1 = bodies1.Item("PartBody"
sketches1 = body1.Sketches
originElements1 = part1.OriginElements
reference1 = originElements1.PlaneXY
sketch1 = sketches1.Add(reference1)

运行成功,没有错误。catia 正常打开,并且定义了 reference。
附图:

VB,Python,Matlab,连接CATIA <wbr>原理,二次开发。


Matlab例子:
1. 外部连接:
读者可以根据这个文章来 帮助理解matlab与catia的连接。http://www.mathworks.com/matlabc ... ink-catia-to-matlab
连接代码如下:

catia = actxserver('catia.application');
set(catia,'visible',1);

    2.仿写代码:

在matlab中,使用invoke进行属性定义,get把属性值付给变量。matlab代码不做演示。请读者自行解决。




总结:只要理解了api的意义,理论上来说可以使用任何语言对 caita等3维软件操作。如何用VB,Python,或Matlab等语言做CATIA的二次开发
0026nWu7gy6IRXHsWhHe1&690.jpg
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : 0026nWu7gy6IRXHsWhHe1&690.jpg
  • 2015-12-17 23:00:52, 36.96 K

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

JacquesChan

铜虫 (初入文坛)


小木虫: 金币+0.5, 给个红包,谢谢回帖
做过solidworks的二次开发,原理都是用API

发自小木虫Android客户端
搞科研
2楼2015-12-17 23:06:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zenbom

铁杆木虫 (正式写手)

引用回帖:
2楼: Originally posted by JacquesChan at 2015-12-17 23:06:17
做过solidworks的二次开发,原理都是用API

对的。这是自己几年前本科做的,怕自己忘记 在新浪博客上面写过一篇帖子。现在工作刚好要用,又拿出来看看。目前用python做二次开发的比较少,所以拿来这里分享一下。
3楼2015-12-17 23:13:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ToBeAWinner

铜虫 (正式写手)

4楼2015-12-20 20:08:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhuoyu0103

铁杆木虫 (小有名气)

5楼2015-12-20 23:07:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Dear Song

铁虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
CATIA开发还是用CAA好一些。
6楼2018-02-01 20:43:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

科汗淮

银虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
二次开发有什么用途?还望解惑。

发自小木虫Android客户端
7楼2018-02-02 10:51:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zenbom 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 生物医药调剂|SCI中科院三区一作+多项科研成果 +3 likangxing 2026-04-07 5/250 2026-04-07 13:13 by guanxin1001
[考研] 求调剂 +23 111623 2026-04-04 25/1250 2026-04-07 11:16 by 诗与自由
[考研] 材料工程302分求调剂 +13 zyx上岸! 2026-04-04 13/650 2026-04-07 11:14 by 诗与自由
[考研] 生物工程求调剂 +10 喜欢还是不甘心 2026-04-05 10/500 2026-04-07 10:19 by 学员tURuqU
[考研] 材料工程调剂 +3 小刘同学吖吖 2026-04-06 4/200 2026-04-06 20:56 by lbsjt
[考研] 22408 331分求调剂 +4 y__1 2026-04-06 4/200 2026-04-06 17:26 by 土木硕士招生
[考研] 285求调剂 +5 mapmath 2026-04-06 6/300 2026-04-06 17:18 by 蓝云思雨
[考研] 0855求调剂材料 +11 红桃灼灼 2026-04-04 12/600 2026-04-06 10:26 by 蓝云思雨
[考研] 319求调剂 +3 handrui 2026-04-05 3/150 2026-04-06 09:33 by jp9609
[考研] 070300化学学硕311分求调剂 +11 梁富贵险中求 2026-04-04 13/650 2026-04-06 07:24 by houyaoxu
[考研] 材料调剂 +13 一样YWY 2026-04-03 14/700 2026-04-05 18:20 by 蓝云思雨
[考研] 一志愿电子科技大学085600材料与化工 329分求调剂 +10 Naiko 2026-04-04 10/500 2026-04-05 09:40 by sam3303
[考研] 313求调剂 +3 ~微微凉~ 2026-04-03 3/150 2026-04-03 11:25 by 啵啵啵0119
[考研] 326求调剂 +10 崽崽仔 2026-04-02 10/500 2026-04-03 09:08 by 帕尔马拉特
[考研] 调剂 +3 osbbx 2026-04-02 3/150 2026-04-03 07:47 by cc8418
[考研] 348求调剂 +6 吴彦祖24k 2026-04-02 6/300 2026-04-02 14:07 by 给你你注意休息
[考研] 302求调剂一志愿北航070300,本科郑大化学 +8 圣日耳曼条 2026-04-01 11/550 2026-04-02 07:40 by chemdavid
[考研] 310分求调剂 +4 成功上岸wang 2026-04-01 4/200 2026-04-01 20:35 by liu823948201
[考研] 267求调剂 +13 uiybh 2026-03-31 13/650 2026-04-01 10:25 by 探123
[考研] 339求调剂 +5 zjjkt 2026-03-31 5/250 2026-04-01 09:18 by JourneyLucky
信息提示
请填处理意见