24小时热门版块排行榜    

Znn3bq.jpeg
查看: 11749  |  回复: 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的回帖

Dear Song

铁虫 (小有名气)


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

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的回帖

zhuoyu0103

铁杆木虫 (小有名气)

5楼2015-12-20 23:07:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 085800 能源动力求调剂 +6 阿biu啊啊啊啊啊 2026-04-10 6/300 2026-04-10 15:03 by hemengdong
[考研] 265求调剂 +10 风说她早忘了 2026-04-10 10/500 2026-04-10 11:23 by 高维春
[考研] 083200 305分 求二轮调剂 不接受跨专业 +8 Claireyyyy 2026-04-09 8/400 2026-04-10 10:05 by luosha500
[考研] 还有化工二轮调剂的学校吗 5+11 化工人999 2026-04-09 42/2100 2026-04-10 09:42 by 690616278
[考博] 博士自荐 +7 可可小胖 2026-04-08 7/350 2026-04-10 08:28 by kimhero
[考研] 材料专硕调剂 +16 哈哈哈吼吼吼哈 2026-04-07 17/850 2026-04-09 21:16 by wutongshun
[考研] 070300化学 求调剂 +13 73372112 2026-04-08 13/650 2026-04-09 20:22 by maddjdld
[考研] 一志愿中国科学院上海有机所,有机化学356分找调剂 +11 Nadiums 2026-04-09 11/550 2026-04-09 18:04 by lijunpoly
[考研] 求调剂希望还是希望在山河四省附近 +3 快乐的小白鸽 2026-04-05 3/150 2026-04-09 17:36 by wp06
[考研] 考研调剂 +13 冰冰,,, 2026-04-07 13/650 2026-04-09 17:01 by Lilly_Li
[考研] 327求调剂 +10 Xxjc1107. 2026-04-06 11/550 2026-04-09 01:21 by lature00
[考研] 293分求调剂,外语为俄语 +7 加一一九 2026-04-07 10/500 2026-04-08 20:14 by yutian743
[考研] 312求调剂 +18 gtw1 2026-04-06 20/1000 2026-04-07 18:16 by 蓝云思雨
[考研] 22408 318分求调剂 +4 勤奋的小笼包 2026-04-06 6/300 2026-04-07 15:05 by 纸鹤555
[考研] 材料工程310专硕调剂 +14 捞捞我…. 2026-04-04 15/750 2026-04-06 14:18 by lqwchd
[考研] 331求调剂 +8 于征yz 2026-04-05 8/400 2026-04-06 00:54 by fmesaito
[考研] 308求调剂 +3 终不似从前 2026-04-05 3/150 2026-04-05 22:23 by hemengdong
[考研] 296求调剂 +3 汪!?! 2026-04-05 4/200 2026-04-05 20:13 by 啵啵啵0119
[考研] 调剂 +4 是可乐不是可乐 2026-04-04 4/200 2026-04-04 19:41 by 唐沐儿
[考研] 22408求调剂 354分 可跨专业 +3 hannnnnnn 2026-04-04 3/150 2026-04-04 14:35 by 土木硕士招生
信息提示
请填处理意见