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事件里调用该函数,为其输入不同参数,以实现控制不同面不同方向的旋转。这个函数也是整段代码的核心。

知识,就是金钱。

所以,如果你想看到完整的含注释的源代码讲解,或者需要进行相关答疑的服务,可以阅读下面的付费内容(含代码讲解及答疑群号)。

友情提示:没有VBA基础的同学请谨慎付费,可以先到ke.qq.combilibili.com搜索CATIA小狼,上面有小编录的免费的VBA入门视频教程。

该付费内容为:核心代码讲解,及源文件获取方式

3张图片 0人购买
(16条)
默认 最新
厉害
评论 点赞
厉害
评论 点赞

查看更多评论 >

点赞 31 评论 16 收藏 1
关注