首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Sketchup动态组件的错误位置和距离

Sketchup动态组件的错误位置和距离
EN

Stack Overflow用户
提问于 2020-09-25 12:54:42
回答 1查看 60关注 0票数 0

我构建了一个Sketchup动态组件并将其分解。然后应用以下代码:

代码语言:javascript
运行
复制
def self.definition(instance)
    if instance.is_a?(Sketchup::ComponentInstance)
    # ComponentInstance
    return instance.definition
    elsif instance.is_a?(Sketchup::Group)   
      if instance.entities.parent.instances.include?(instance)
          return instance.entities.parent
      else
          Sketchup.active_model.definitions.each { |definition|
          return definition if definition.instances.include?(instance)
          }
      end
    elsif instance.is_a?(Sketchup::Image)
    Sketchup.active_model.definitions.each { |definition|
        return definition if definition.image? && definition.instances.include?(instance)
    }
    end
    return nil # Error. We should never exit here.
end

mod = Sketchup.active_model # Open model
ent = mod.entities # All entities in model
sel = mod.selection # Current selection
puts ent[0]
faces =  definition(ent[0]).entities.grep(Sketchup::Face)
puts faces
faces[0].material = "Purple"
faces[0].vertices.each {|v| puts v.position}
puts '---'
f0_v = faces[0].vertices
for i in 0..f0_v.size - 2
  puts f0_v[i].position.distance(f0_v[i+1].position)
end
puts f0_v[3].position.distance(f0_v[0].position)

结果是错误的

代码语言:javascript
运行
复制
#<Sketchup::Group:0x000001ba478591e0>
#<Sketchup::Face:0x000001ba4810ca58>
#<Sketchup::Face:0x000001ba4810c828>
#<Sketchup::Face:0x000001ba4810c350>
#<Sketchup::Face:0x000001ba4810c2d8>
#<Sketchup::Face:0x000001ba4810c1e8>
#<Sketchup::Face:0x000001ba4810c1c0>
(0 mm, 0 mm, 300 mm)
(0 mm, 0 mm, 0 mm)
(300 mm, 0 mm, 0 mm)
(300 mm, 0 mm, 300 mm)
---
300 mm
300 mm
300 mm
300 mm

下面是Skp文件的链接。有谁能帮我吗?

我为我糟糕的英语https://drive.google.com/file/d/12BxpmEpCADQDWZEbDn7j2ehlbt6lwpP3/view?usp=sharing道歉

EN

回答 1

Stack Overflow用户

发布于 2020-10-05 01:16:30

很抱歉,但是你的代码看起来一切正常。

我不明白self.definition(实例)函数的目的是什么?

你画一个300x300的正方形,然后测量每条边的距离:它是4乘以300!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64058024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档