面向用户
商家管理账号
定义
弧形栅格,如左上图所示,实现半径、间距、栅格宽度可调。
一. 功能入口
1. 商品管理—企业商品库—全屋家具定制—创建素材—参数化模型库
2.选择“普通板件”真分类。
二. 建模过程
建模思路:弧形栅格无法直接通过阵列完成,需要采用参数化的方法进行制作。
10个栅格条作为一组,使用三角函数对栅格条的位置及旋转角度进行计算,实现弧形栅格的效果。
1.修改基础变量
2.添加自定义变量
名称 |
引用名 |
值类型 |
当前值 |
备注 |
间隔 |
jg |
固定值 |
30 |
|
栅格条宽 |
sg_w |
固定值 |
30 |
|
栅格条深 |
sg_d |
固定值 |
30 |
|
角度 |
xt |
公式 |
(#jg #sg_w)/#w |
由于x近似于栅格宽(sg_w) 间距(jg),因此可以将jg sg_w作为x的数值参与计算,此时tanθ=(jg #sg_w)/w,而因为系统读取的是弧度,所以直接输入(#jg #sg_w)/#w即可。 |
栅格数量 |
n |
区间 |
10 |
默认以10个栅格条作为一组 最小值:1,最大值:10 |
3. 进行第一根栅格建模
3.1 点击部件库
3.2 点击半成品库,调入一块板件
3.3 宽度关联#sg_d,深度关联sg_w,高度关联#h
4. 复制第一根栅格9次,并依次修改参数
- 旋转z:由图可知,单个栅格围绕z轴的旋转角度存在一定规律,即角度(xt)乘以第(n-1)个栅格,为使栅格的边更接近于圆弧切线,在此基础上再旋转xt/2。因此旋转z的角度的通式为α= θ*(n-1) θ/2。
- 位置x:如图所示,将图中的公式进行改写,得到栅格的位置x的通式为θx=w-w*cos(θ*(n-1))。
- 位置y:如图所示,将图中的公式进行改写,得到栅格的位置y的通式为θy=-w*sin(θ*(n-1))。
- 隐藏条件:栅格数量n可变,因此需要对单个栅格设置抑制条件。
- 具体每根栅格的参数如下表:
第n根栅格 |
位置x |
位置y |
位置z |
旋转x |
旋转y |
旋转z |
抑制条件 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
#n<1 |
2 |
#w-#w*#cos(#xt) |
-#w*#sin(#xt) |
0 |
0 |
0 |
#todegrees(#xt #xt/2) |
#n<2 |
3 |
#w-#w*#cos(#xt*2) |
-#w*#sin(#xt*2) |
0 |
0 |
0 |
#todegrees(#xt*2 #xt/2) |
#n<3 |
4 |
#w-#w*#cos(#xt*3) |
-#w*#sin(#xt*3) |
0 |
0 |
0 |
#todegrees(#xt*3 #xt/2) |
#n<4 |
5 |
#w-#w*#cos(#xt*4) |
-#w*#sin(#xt*4) |
0 |
0 |
0 |
#todegrees(#xt*4 #xt/2) |
#n<5 |
6 |
#w-#w*#cos(#xt*5) |
-#w*#sin(#xt*5) |
0 |
0 |
0 |
#todegrees(#xt*5 #xt/2) |
#n<6 |
7 |
#w-#w*#cos(#xt*6) |
-#w*#sin(#xt*6) |
0 |
0 |
0 |
#todegrees(#xt*6 #xt/2) |
#n<7 |
8 |
#w-#w*#cos(#xt*7) |
-#w*#sin(#xt*7) |
0 |
0 |
0 |
#todegrees(#xt*7 #xt/2) |
#n<8 |
9 |
#w-#w*#cos(#xt*8) |
-#w*#sin(#xt*8) |
0 |
0 |
0 |
#todegrees(#xt*8 #xt/2) |
#n<9 |
10 |
#w-#w*#cos(#xt*9) |
-#w*#sin(#xt*9) |
0 |
0 |
0 |
#todegrees(#xt*9 #xt/2) |
#n<10 |
5. 新建普通家具,调用栅格组
5.1 修改基础变量
宽度w的最大值计算如下:
因为该做法的栅格数量最大值为100根,即n的最大值为100,可以把n组间隔(jg)与栅格宽(sg_w)近似看为四分之一的圆弧长,即3.14*r/2=n*(sg_w jg),r=w,对以上式子进行改写,得到最大w为:#round(200/3.14*(#sg_w #jg))。
5.2 添加自定义变量
因为能放下多少栅格数量(n)是由当前的sg_w(栅格宽)、jg(间隔)、w(宽度)共同决定的,因此需要用公式计算出在当前情况下栅格数量n。计算思路如下,因为n组间隔(jg)与栅格宽(sg_w)可以近似看为四分之一的圆弧长,即3.1415*r/2=n*(sg_w jg),r=w,通过改写可得n=#floor(3.1415*#w/(#jg #sg_w)/2.0)。
5.3 在半成品库调用栅格组,并关联参数
- 位置x、位置y、旋转z:栅格组位置x、位置y、旋转z的计算思路类似于单根栅格的计算思路,可参考单根栅格的计算思路及图片。
- 栅格数量、隐藏条件:要实现随着w的变化栅格组的数量也会相应改变,就需要把最大值(n=100)都做出来再进行隐藏。例,第二组栅格组的栅格数量为#n>=20?10:#n,意为当栅格数量(n)大于或等于20的时候,第二组栅格出现10根,否则就出现栅格数量除以10的余数根(%是对该式子进行求余数的计算,例如当n=23时,n/10=2余3,n=3),第二组栅格组的隐藏条件即为#n<=10,意为当栅格数量(n)小于或等于10时,第二组栅格不显示。
- 具体每个栅格组的参数如下:
第n组栅格 |
位置x |
位置y |
位置z |
旋转x |
旋转y |
旋转z |
栅格数量 |
抑制条件 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
#n>=10?10:#n |
|
2 |
#w-#w*#cos(#xt*10) |
-#w*#sin(#xt*10) |
0 |
0 |
0 |
#todegrees(#xt*10) |
#n>=20?10:#n |
#n<=10 |
3 |
#w-#w*#cos(#xt*20) |
-#w*#sin(#xt*20) |
0 |
0 |
0 |
#todegrees(#xt*20) |
#n>=30?10:#n |
#n<=20 |
4 |
#w-#w*#cos(#xt*30) |
-#w*#sin(#xt*30) |
0 |
0 |
0 |
#todegrees(#xt*30) |
#n>=40?10:#n |
#n<=30 |
5 |
#w-#w*#cos(#xt*40) |
-#w*#sin(#xt*40) |
0 |
0 |
0 |
#todegrees(#xt*40) |
#n>=50?10:#n |
#n<=40 |
6 |
#w-#w*#cos(#xt*50) |
-#w*#sin(#xt*50) |
0 |
0 |
0 |
#todegrees(#xt*50) |
#n>=60?10:#n |
#n<=50 |
7 |
#w-#w*#cos(#xt*60) |
-#w*#sin(#xt*60) |
0 |
0 |
0 |
#todegrees(#xt*60) |
#n>=70?10:#n |
#n<=60 |
8 |
#w-#w*#cos(#xt*70) |
-#w*#sin(#xt*70) |
0 |
0 |
0 |
#todegrees(#xt*70) |
#n>=80?10:#n |
#n<=70 |
9 |
#w-#w*#cos(#xt*80) |
-#w*#sin(#xt*80) |
0 |
0 |
0 |
#todegrees(#xt*80) |
#n>=90?10:#n |
#n<=80 |
10 |
#w-#w*#cos(#xt*90) |
-#w*#sin(#xt*90) |
0 |
0 |
0 |
#todegrees(#xt*90) |
#n>=100?10:#n |
#n<=90 |
5.4 最后在半成品库调入圆弧背板、顶板、底板,就可以做出圆弧阵列的隔断效果。
具体参数如下:
6. 测试模型
6.1 分别更改变量参数的数值,检验模型是否有问题。
6.2 检验完毕后,将这些值恢复默认值。
7. 保存入库
点击右上角文件选择保存并入库,选择保存的子目录,并输入商品名称,点击保存。