CATIA二次开发教程 丨花色绣球实例

发布时间:2018-12-14 16:33:37

前言:本文通过客制化API,灵活调用子函数,并通过Rnd()函数,为其随机添加颜色,实现花色绣球的建模。本文作为VBA的入门教程,趣味性强,旨在分享学习CATIA VBA 二次开发中的一些经验,纯属娱乐,实用性不强。

0视频演示

高清视频链接请打开:https://pan.baidu.com/s/1-DWnfpVMHsQAwDPyzfjETA


1基本概念


API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。


通过编程来访问CATIA的对象有很多种不同的方法。对于其他程序或脚本来说,CATIA只是一个OLE(Object Linking and Embedding,对象连接和嵌入,简称OLE技术。)自动化自动化对象服务器。任何能访问COM(Component Object Model,对象模型)对象的程序或脚本都能访问CATIA的对象并对其进行操作。本书的例子都是在Windows进程内通过Visual Basic Application(VBA)来访问的。


一般来说, CATIA VBA二次开发学习的要点应该放在编程思路的培养上。编程的熟练程度体现在你对于CATIA 内部API接口的理解程度,而VBA编程的能力反而要求并不高。


2CATIA文档结构



3编程的基本流程


4花色绣球建模思路



5花色绣球编程思路




6客制化API思路

CATIA的绝大多数命令在编程的时候,默认需要写很多重复代码才能正常运行,我们举个例子:CATIA的GSD 的Point命令



CATIA默认的Point命令是这样写的:

Dim initPoint001 As Point, RefinitPoint001 As Reference

Set oPoint = oHSF.AddNewPointCoord(0, 0, 0)

oHBody.AppendHybridShape oPoint

Set refoPoint = oPart.CreateReferenceFromObject(oPoint)

oPoint.Name = "initPoint_001"


接下来用Function将Point命令客制化

Function CreatePointCoord(iX As Double, iY As Double, _             iZ As Double,oPoint As Point, refoPoint As Reference , _       oPointFeatureName AsString ) As HybridShapePointCoord

On Error Resume Next

Set oPoint = oHSF.AddNewPointCoord(iX, iY, iZ)

oHBody.AppendHybridShape oPoint

oPart.InWorkObject = oPoint

Set refoPoint = oPart.CreateReferenceFromObject(oPoint)

If oPointFeatureName <> "" Then

oPoint.Name = oPointFeatureName

End If

On Error GoTo 0

End Function


客制化后Point命令这样写:

Dim initPoint001 As Point, RefinitPoint001 As Reference

Call CreatePointCoord(0, 0, 0,initPoint001, RefinitPoint001, "initPoint_001")


我们再挖一个坑,如果要实现每次生成的 Point的颜色都不一样,可以先客制化一个为对象生成随机颜色的ChangeRndcolor函数:

Function ChangeRndcolor(Element As Object)
oPart.Update
Dim oSelection As Selection
Set oSelection = oPartDoc.Selection
oSelection.Clear
oSelection.Add Element
Dim oRed As Long, oGreen As Long, oBlue As Long
oRed = Int(Rnd(1) * 255 + 1)
oGreen = Int(Rnd(1) * 255 + 1)
oBlue = Int(Rnd(1) * 255 + 1)
oSelection.VisProperties.SetRealColor oRed, oGreen, oBlue, 1
oSelection.Clear
End Function

然后调用客制化的ChangeRndcolor函数就可以了,程序这样写:

Call ChangeRndcolorinitPoint001


客制化API的本质就是通过调用子函数并传递参数,来简化我们的编程,从而把更多的精力集中在建模和编程思路上。


更多精彩客制化API敬请下载原代码查看。。。。。。


6程序代码

程序代码请在百度云盘中下载。

链接:

https://pan.baidu.com/s/1flOq0AUfzwGhupgSGD4gcw
提取码:jbsz

复制这段内容后打开百度网盘手机App,操作更方便。






教程来自慧舟软件

PLM应用工程师

伍松 提供

[返回列表]

上一篇:DELMIA助力实现兼具敏捷性及韧性的供应链运营

下一篇:Design | CATIA整车研发流程