grasshopper | 通过图层引用线条 报错:“ Data conversion failed from Guid to Curve ”的避免方法


需求:通过 LunchBox - > layer reference 电池 可以快速选中图层所在的线条,但是选择的数据流错误 

直接选择会报错——“Data conversion failed from Guid to Curve”:

因为是通过图层电池会选择 instance 实例化的物体,物体的类型是多种的 ,所以需要剔除不符合所要的数据类型:

import rhinoscriptsyntax as rs
import Rhino.Geometry.InstanceReferenceGeometry 

# 遍历版本
curveLst = []
def judgeCurve():
    
    for i, item in enumerate(x):
#        print(item.GetType())
        
        if item.GetType() == Rhino.Geometry.Curve or item.GetType() == Rhino.Geometry.ArcCurve \
        or item.GetType() == Rhino.Geometry.Arc \
        or item.GetType() == Rhino.Geometry.PolyCurve \
        or item.GetType() == Rhino.Geometry.Polyline \
        or item.GetType() == Rhino.Geometry.PolylineCurve \
        or item.GetType() == Rhino.Geometry.Line \
        or item.GetType() == Rhino.Geometry.Circle \
        or item.GetType() == Rhino.Geometry.Ellipse \
        or item.GetType() == Rhino.Geometry.NurbsCurve \
        or item.GetType() == Rhino.Geometry.BezierCurve \
        or item.GetType() == Rhino.Geometry.LineCurve:
            curveLst.append(item)
        
    
judgeCurve()
a = curveLst

筛选出数据即可正常运行:

 

IGH_Goo 数据类型定义 

https://developer.rhino3d.com/guides/grasshopper/grasshopper-data-types/

在 C# 中的用法:

GH_Structure<IGH_Goo> tree11 = new GH_Structure<IGH_Goo>();

对数据层级进行操作 

Layer and Sublayer creation in C#

左侧有个推荐,有用就推荐下吧?☺

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM