目的

制作一个可以使用参数调整柜体大小、门板数量的柜体。

一、结构分析

1.1柜体主要组成模块

柜体主要由“侧板、底板、背板、顶板、门板”五种模块组成,其中侧板又分为左侧板、右侧板,门板根据设计要求有不同数量。

除此之外,还会有上横梁、搁板、立板等模块,本次制作中暂时不考虑。实际使用中可在创建柜体之后,再逐步添加。

1.2柜体模块位置关系

柜体中各模块位置关系如下:

①门板浮出;

 1.png

②左右侧板夹底板、背板、顶板;

 2.png

③底板托背板,顶板贴背板。

 3.png

二、制图过程

2.1确定柜体制作原点

为方便制作及使用,规定以面向柜体时后侧左下角为坐标原点(0,0,0)。主要是考虑柜体存在有无门板及门板厚度变化等影响因素,减少柜门的影响,便于后期操作。

 4.png

2.2创建柜体组成模块

按照柜体各组成模块位置关系,分别画出各组成模块群组,并对各模块命名以方便后续使用。

注意:各模块统一以靠近原点的顶点作为模块原点进行绘制,可以降低在后期动态组件函数编写时的困难。

绘制时位置不需要特别准确,只需要放到相对位置,以供动态组件函数编写参考。

 5.png

侧板左

 6.png

侧板右

 7.png

底板

 8.png

背板

 9.png

顶板

 10.png

门板

2.3组合创建动态组件

将上述模块建立群组,命名为“多门柜”

 11.png

以多门柜群组创建组件

 12.png

2.4动态组件添加属性

为多门柜动态组件添加属性如下图

 13.png

参照下图设置各属性

 14.png

2.5编写动态组件函数

对于多门柜动态组件中门板之外的模块,只需要为各模块分别设置模块的原点位置及各个方向上的尺寸,即可实现动态组件效果。以下以底板为例,其它请自行参考。

2.5.1底顶背侧模块属性设置函数

为底板添加全部位置属性和尺寸属性,并按图中进行函数设置。

 15.png

函数解释:

①底板的原点X位置与多门柜原点位置重合,公式为“=多门柜!X”;

②底板的原点Y位置相对于多门柜原点位置,偏移了一个侧板厚,公式为“=多门柜!Y+多门柜!BanHouGui”;

③底板的原点Z位置与多门柜原点位置重合,公式为“=多门柜!Z”;

④底板X轴长度需要在多门柜X轴长度上减去门板的厚度,公式为“=多门柜!LenX-(多门柜!BanHouMen)”;

⑤底板Y轴长度需要在多门柜Y轴长度上减去左侧板和右侧板的厚度,公式为“=多门柜!LenY-(多门柜!BanHouGui)-(多门柜!BanHouGui)”;

⑥底板Z轴长度即板的厚度,公式为“=多门柜!BanHouGui”。

说明:参与运算的自定义属性,开始的时候一直报错,在都用括号括起来使用后,就不报错了。至于为什么会出错,搞不清楚。

参照底板的原点及各轴长度定义,依次编写函数。

2.5.2门板根据数量调整宽度函数

为门板额外添加行为属性“Copies”,设置该属性函数为“=多门柜!MenBanShu-1”

函数解释:

这个函数的意思是门板按门板数量的设置进行复制,因为最初就有一个门板了,所以复制份数比门板数量要减1。

搞定了门板复制数量后,再确定每份复制的位置就可以了。

因为门板复制是在Y轴上进行,所以只需要调整Y轴的函数为“=多门柜!Y+(多门柜!MenBanFengBian)+copy*((多门柜!LenY-(多门柜!MenBanFengBian)-(多门柜!MenBanFengBian)-(多门柜!MenBanFengJian)*((多门柜!MenBanShu)-1))/(多门柜!MenBanShu)+(多门柜!MenBanFengJian))”

函数解释:

①多门柜!Y+(多门柜!MenBanFengBian):表示由多门柜Y轴起点计算,首先偏移一个门板边缝的距离;

②copy()函数中那一长段表示每份复制品需要偏移的距离为门板宽度+门板间缝,其中“(多门柜!LenY-(多门柜!MenBanFengBian)-(多门柜!MenBanFengBian)-(多门柜!MenBanFengJian)*((多门柜!MenBanShu)-1))/(多门柜!MenBanShu)”这一段是计算不同门板数量下,每扇门板的宽度。

三、效果展示

 16.png