首页 解决方案 CATIA二次开发教程 丨花色绣球

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

前言:本文通过客制化API,灵活调用子函数,并通过Rnd()函数,为其随机添加颜色,实现花色绣球的建模。

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

 

视频演示

高清视频链接请打开: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 ChangeRndcolor(initPoint001)

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

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

 

6程序代码

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

链接:

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

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

教程来自慧舟软件

PLM应用工程师

伍松 提供

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

作者: suifengmianlai

为您推荐

生产制造 | 数控仿真保证“安全” 之 NCSIMUL四轴机床搭建

NCSIMUL 通过上一期对三轴机床搭建的讲解和演示,想必大家已经能够搭建自己专属的三轴机床。

质量管理 | 海克斯康 Q-DAS®与SAP QM的交互应用方案

SAP(System Applications and Product) 软件在企业的部署着眼于中央业务流程的优化。

新能源汽车供应链强力转型,数字化供应链系统订单管理数字化助力企业降本增效

当前,全球新能源汽车产业发展驶入快车道,新产品新技术加快研发运用,技术创新带动产业持续升级。

进度猫甘特图:项目管理中的任务分解工具

项目管理中是将大的项目目标划分为各个小阶段任务,WBS就是化繁为简,将负责非项目拆分为简单的任务,它可让事情依照一定规则或关系,通过一层一层来分解,这样要做的任务可以变为小目标。

查看流程审批历史记录解决方案

作者:黄鹏 审校:李达 适用版本:TC11 用户可以在TC中看到整个流程的历史记录,包括驳回,审批,编制的操作,这样可以方便我们查看哪些人参与了这个流程。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

返回顶部