首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >删除SketchUp中的非水平组件

删除SketchUp中的非水平组件
EN

Stack Overflow用户
提问于 2014-01-30 01:02:25
回答 1查看 98关注 0票数 0

我试图使用SketchUp Ruby从导入的STL中删除垂直元素。

我已经修改了一个片段来给出下面的代码,它选择非水平面。

代码语言:javascript
运行
复制
s=Sketchup.active_model.selection;
a=s.to_a;
s.clear;
a.grep(Sketchup::Face).each{ |f| s.add( f )if f.normal.z > -0.1 and f.normal.z < 0.1}

然后我试着调整它来选择非水平边,使用这样的事实,任何这样的边都有一个顶点,与另一个顶点的z位置不同。

代码语言:javascript
运行
复制
s=Sketchup.active_model.selection;
a=s.to_a;
s.clear;
a.grep( Sketchup::Edge ).each {
    |edge| s.add(edge) if (edge.end.position.z - edge.other_vertex(edge.end).position.z)}

然而,这是选择模型中的所有边缘。有人能指出我哪里出错了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-30 11:37:48

最后,我没有尝试编写一行代码,而是编写了以下函数来满足我的需要。

代码语言:javascript
运行
复制
def find_plans()
    model = Sketchup.active_model()
    s = model.selection()
    s.clear()

    ents = model.entities
    non_horizontal_edges = []
    for e in ents
        non_horizontal_edges.push( e ) if e.typename() == 'Edge' and (e.end.position.z - e.other_vertex(e.end).position.z).abs > 1
    end
    ents.erase_entities( non_horizontal_edges )
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21445942

复制
相关文章

相似问题

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