04.Ruby for SketchUp 在墙面上开洞

在Ruby控制台直接输入以下代码并执行。

# 绘制墙体
hd = 120.mm       # 添加一个名为hd的变量、当成墙厚的变量、方便下面调用。
cd = 2400.mm      # 添加一个名为cd的变量、当成墙长度的变量、方便下面调用。
d1 = [0,0,0]      # 定义第1个点的位置
d2 = [hd,0,0]     # 定义第2个点的位置
d3 = [hd,cd,0]    # 定义第3个点的位置
d4 = [0,cd,0]     # 定义第4个点的位置
fx = ent.add_face d1,d2,d3,d4    # 创建一个名为fx的面。
fx.pushpull -2000.mm    # 将fx这个面推拉出来一个-2200mm的高度

# 在上面的墙体上开洞
kd = 1200.mm    # 添加一个名为kd的变量、当成洞口的宽度。
gd = 1400.mm    # 添加一个名为gd的变量、当成洞口的高度。
dz1 = [0,400.mm,500.mm]         # 定义第1个点的位置
dz2 = [0,400.mm,gd+500.mm]      # 定义第2个点的位置
dz3 = [0,kd+400.mm,gd+500.mm]   # 定义第3个点的位置
dz4 = [0,kd+400.mm,500.mm]      # 定义第4个点的位置
fx2 = ent.add_face dz1,dz2,dz3,dz4    # 创建一个名为fx2的面。
fx2.pushpull -hd   # 将fx2这个面推拉出来一个厚度,这里的厚度值直接调用上面那个hd那个变量的值。

我们将得到如下的模型。

大体的思路就是先画一个平面,然后将平面推拉出来一个高度,这样墙体就有了。

然后、就是在墙上再画一个矩形,将洞口再推拉出来。

我们可以看到上方的推拉的值都是负值,因为前面生成的面是反的(如下图)。

所以我们再推拉的时候就要输负值,我们可以通过下面的方法将面反过来(如下图)。

通过 fx.reverse! unless fx.normal.samedirection?(Z_AXIS) 来进行翻面,fx 是之前定义的面的名称。

hd = 120.mm
cd = 2400.mm
d1 = [0,0,0]
d2 = [hd,0,0]
d3 = [hd,cd,0]
d4 = [0,cd,0]
fx = ent.add_face d1,d2,d3,d4
fx.reverse! unless fx.normal.samedirection?(Z_AXIS) # 判断是否反面,反面则对面进行翻转
fx.pushpull 2000.mm

kd = 1200.mm
gd = 1400.mm
dz1 = [0,400.mm,500.mm]
dz2 = [0,400.mm,gd+500.mm]
dz3 = [0,kd+400.mm,gd+500.mm]
dz4 = [0,kd+400.mm,500.mm]
fx2 = ent.add_face dz1,dz2,dz3,dz4
fx2.pushpull -hd

本文结束。

本文是根据 一片叶 大佬的视频来进行操作的,可以前往大佬的B站查看视频教程。

相关推荐

暂无评论