CATIA创意无限:绘制可旋转魔方的奇妙体验

在CATIA软件中,画个矩形草图,拉伸个凸台,得到一个立方体,即使对于新手都是再熟悉不过的操作了。

所以,下面的魔方模型,相信绝大多数小伙伴都能画出来——无非就是做27个立方体,倒个角,再给各个面设置对应的颜色

CATIA里居然能画可以转的魔方?的图1



但如何实现下面的旋转效果,恐怕会一下子难倒一大片英雄好汉。

CATIA里居然能画可以转的魔方?的图2


可能有点小伙伴会想到用DMU的KIN运动机构仿真去做,但不论是运动副的选择,还是指定层的9个块一起转,都不是看起来那么容易的事情(事实上小编现在也没有太好的思路用DMU实现)。

不过,既然萌生了这个想法,如果不把它做出来,它就会一直是小编的一个心病。

回想一下:小学时,老师告诉你3-5无法计算,但后来你知道了负数;初中时,老师告诉你负数不能开平方,但后来你知道了虚数……

所以,有些事情之所以你认为不可能,是因为你的认知、你的知识面还没有广到覆盖那个领域

之前,小编觉得有些运动模拟DMU无法实现。但当小编掌握了Automation二次开发后,对于运动的实现,DMU中有没有某种运动副就不那么重要了。因为我们可以通过VBA代码控制哪些Product,按怎样的规则,随意运动。

在正式开始讲解之前,我们先通过一个动图看看最终的效果。

CATIA里居然能画可以转的魔方?的图3

接下来,小编来简述一下原理:


1.由于各个小方块的位置不固定,可旋转至各个位置。因此我们不能做“Part1是面向我们的面左上角那块”这种绝对的指定。对应的解决对策是:我们每次执行动作之前,都获取一下各个方块Part的装配坐标,并通过坐标值判断其属于哪一层,进而确定需要旋转的目标Part


2.确定了目标值之后,我们就可以利用Product下的相关属性方法,实现其绕指定轴系的旋转。

没错,以上就是完整的思路。到这里,悟性比较高且熟悉VBA的同学,应该已经可以查帮助写出代码实现上面视频中的功能了。

不过,小狼今天将带大家从零开始制作。

首先是建模。由于每个小方块都要涂不同的颜色,所以这里,我们需要在27个Part里画同样尺寸的立方体(这里我们假定立方体的中心在原点,边长为10mm)。给棱边倒个角会显得更像是真实的魔方,当然你不倒角,只是6个尖棱也未尝不可。

CATIA里居然能画可以转的魔方?的图4

然后,我们把这27个Part装到一个Product里,很显然它们会重合到一起。这个时候,你需要把它们一个一个移到对应的位置。

让装配里的某个组件进行指定方向、距离、角度的移动,有两种方法:

第一种方法,使用用罗盘。我们可以双击罗盘,指定拖动罗盘时,移动或旋转的步长。然后把罗盘拖到组件上,选中需要移动的组件使罗盘变绿,再拖动罗盘就可以精确移动了↓

CATIA里居然能画可以转的魔方?的图5



第二种方法,使用DMU Navigator中的平移旋转命令。

CATIA里居然能画可以转的魔方?的图6

但不管用哪种方法,我们的目的是把它移成下面的样子,同时注意整个魔方的中心点(中间那个块)是没移动的,换句话说整个魔方的中心在装配原点。

并且,为了后面交流更方便,我们来给每个面取个名字,约定如下:

CATIA里居然能画可以转的魔方?的图7



模型建完后,接下来就是后端的代码逻辑了。首先我们在VBA里插入一个窗体,截个图作为背景,并绘制一些按钮。并且我相信,你的界面肯定不会比我的更丑…

CATIA里居然能画可以转的魔方?的图8

然后我们双击窗体或按钮进到代码编写界面。

首先,在最上面,我们定义一些公共变量和常量。

CATIA里居然能画可以转的魔方?的图9

然后在窗体初始化Initialize事件里,对一些全局变量进行赋值。

CATIA里居然能画可以转的魔方?的图10

由于控制上下、前后、左右每一层的顺、逆时针转动的代码大致相同(仅某些数值)有区别。在控制6个面*2个方向,共计12个按钮的Click事件里都写类似大段的代码,显然是不明智的。

为此,我们定义一个函数,来实现旋转功能。并在不同按钮的Click事件里调用该函数,为其输入不同参数,以实现控制不同面不同方向的旋转。这个函数也是整段代码的核心。

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空