首页 分享 Ruby for SketchUp之魔法Group

Ruby for SketchUp之魔法Group

来源:花匠小妙招 时间:2026-01-02 12:06

SketchUp 中的群组与 “组件” 非常相似

不同的是没有实例化群组。所以在群组

中每一个群组都是相互独立的、唯一的

在实际实现中,SketchUp 将它看做作

为一种特殊的组件,该组件结合了定义

与实例。

group 创建方法:

#add_group(entities) ⇒ Sketchup::Group#add_group(*entities) ⇒ Sketchup::Group

add_group 方法用于创建一个空组或

包含实体的组。在 SketchUp 8.0 之前

的版本创建带有实体参数的群组时,会

容易造成 SketchUp 的崩溃。其实现在

最新版也一样,也会有同样的问题,所

以不建议在创建群组时带实体参数。可

以后期将实体加入群组中。

例如我们在 group 中创建一个面:

mod = Sketchup.active_model # Open modelent = mod.active_entities # All entities in modelpts = [ Geom::Point3d.new(0,0,0), Geom::Point3d.new(10,0,0), Geom::Point3d.new(10,10,0), Geom::Point3d.new(0,10,0),]# 直接带参创建群组方法face = ent.add_face ptsface_group = ent.add_group(face)# 不带参创建群组face_group = ent.add_groupface = face_group.entities.add_face pts

在实际开发中,为了程序的健壮性

建议使用不带参创建群组

在 Group 类中提供了很多操作实体组的

方法:

1、复制组 copy

group = Sketchup.active_model.entities.add_groupgroup.entities.add_line([0,0,0],[100,100,100]) # 在组中添加一条线group2 = group.copy # 复制一个组之前的不变

2、移动组 transform! 与 move! 相同

# 创建一个tr,将组移动到坐标为[50,0,0]的位置上tr = Geom::Transformation.new(Geom::Point3d.new(50,0,0))group2.transform! tr # 移动复制的组

效果:

移动之前,这两个组的位置是重合的,这是移动后的效果

3、guid 获取此 SketchUp 对象的以 64 为基数编码的唯一 ID。

guid = group.guid # => 0jmWMQDkjAKRVpfFOvY4nVguid2 = group2.guid# => 2UlXh3$pj1jx$T_vCGzZBk

下面我们来看看有趣的实体布尔操作

4、实体外壳

#outer_shell(group) ⇒ Sketchup::Group?

示例代码:

entities = Sketchup.active_model.entitiesgroup1 = entities[0]group2 = entities[1]result = group1.outer_shell(group2)

效果:

5、拆分

#split(group) ⇒ Array(Sketchup::Group, Sketchup::Group, Sketchup::Group)?

示例代码:

entities = Sketchup.active_model.entitiesgroup1 = entities[0]group2 = entities[1]result = group1.split(group2)

效果:

6、减去

#subtract(group) ⇒ Sketchup::Group?

示例代码:

entities = Sketchup.active_model.entitiesgroup1 = entities[0]group2 = entities[1]result = group1.subtract(group2)

效果:

7、剪辑

#trim(group) ⇒ Sketchup::Group?

示例代码:

entities = Sketchup.active_model.entitiesgroup1 = entities[0]group2 = entities[1]result = group1.trim(group2)

效果:

8、联合

#union(group) ⇒ Sketchup::Group?

示例代码:

entities = Sketchup.active_model.entitiesgroup1 = entities[0]group2 = entities[1]result = group1.union(group2)

效果:

看完这些实体操作,是不是感觉很有趣。

如果有兴趣的话就要继续坚持下去。

在 group 中还有很多方法,小伙伴们可以去研究一下

相关知识

Ruby 环境变量
SketchUp
Redis学习笔记(六)—— 解决安装ruby出现的问题:redis requires Ruby version >= 2.2.2.
《玛丽与魔女之花》测评
【SketchUp教程】如何在SketchUp中制作一个完美自然的枕头
SketchUp草图大师室内小品花瓶建模
SketchUp庭院景观设计全流程
建筑●室内●景观设计SketchUp 8从入门到精通
剑与魔法森林之花在哪 魔法森林鲜花位置详解
SketchUp草图大师创建波浪绽放微型花园

网址: Ruby for SketchUp之魔法Group https://www.huajiangbk.com/newsview2529234.html

所属分类:花卉
上一篇: 佰岁花商标转让
下一篇: 百魂战记什么服务器好玩?

推荐分享