24小时热门版块排行榜    

Znn3bq.jpeg
查看: 11772  |  回复: 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的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考博] 申博/考博 +4 啃面包的小书虫 2026-04-17 8/400 2026-04-21 16:26 by 啃面包的小书虫
[考研] 291求调剂 +12 关忆北. 2026-04-14 12/600 2026-04-21 15:35 by 18300969621
[考研] 295分求调剂 +6 ?要上岸? 2026-04-17 6/300 2026-04-21 08:18 by Equinoxhua
[考研] 085600材料与化工调剂 5+3 孜孜不倦2002 2026-04-19 6/300 2026-04-20 21:25 by babero
[论文投稿] 期刊推荐 +3 材料研究生 2026-04-15 5/250 2026-04-20 16:02 by 豆豆7758
[论文投稿] 有没有接收比较快的sci期刊呀,最好在一个月之内的,研三孩子求毕业 20+4 之护着 2026-04-16 7/350 2026-04-20 15:45 by 豆豆7758
[教师之家] 又一批高校组建人工智能学院 师资行吗 不是骗人吗 +4 yexuqing 2026-04-19 4/200 2026-04-20 14:47 by brantleo
[考研] 337求调剂 +3 jyz04 2026-04-18 3/150 2026-04-20 12:24 by 研可安
[考博] 申博 +3 Xyyx. 2026-04-18 3/150 2026-04-20 10:44 by YuY66
[考研] 求计算机方向调剂 +3 Toffee2 2026-04-16 6/300 2026-04-19 22:37 by ll叶
[考研] 294求调剂 +8 淡然654321 2026-04-17 9/450 2026-04-19 19:51 by Equinoxhua
[考研] 304求调剂 +8 castLight 2026-04-16 8/400 2026-04-19 17:14 by 中豫男
[考研] 求调剂 +10 小聂爱学习 2026-04-16 12/600 2026-04-19 16:51 by 中豫男
[考研] 307中医考研调剂 +9 于以采蘩 2026-04-14 9/450 2026-04-19 08:41 by 烟雨流涯
[考研] 294求调剂 +15 淡然654321 2026-04-15 15/750 2026-04-19 08:20 by cuisz
[考研] 0854求调剂 +23 门路摸摸 2026-04-15 27/1350 2026-04-19 01:59 by 烟雨流涯
[考研] 接受任何调剂 +6 也就是栗子 2026-04-17 7/350 2026-04-18 17:20 by 涵竹刘
[考研] 收到复试调剂但是去不了 +8 小蜗牛* 2026-04-16 8/400 2026-04-18 11:15 by zixin2025
[考研] 260求调剂 +4 Zyt1314520.. 2026-04-17 5/250 2026-04-18 08:28 by babysonlkd
[考研] 一志愿沪9,生物学326求调剂 +9 刘墨墨 2026-04-15 9/450 2026-04-16 17:14 by 崔崔崔cccc
信息提示
请填处理意见