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://m.huajiangbk.com/newsview2529234.html
| 上一篇: 佰岁花商标转让 |
下一篇: 百魂战记什么服务器好玩? |