NCF参数化建筑论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 57513|回复: 41
打印 上一主题 下一主题

[VB & C#] 详解GH自身的数据结构

[复制链接]
跳转到指定楼层
1m
发表于 2010-5-9 22:33:39 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 panhao1 于 2010-5-9 22:46 编辑

先看图

大家肯定很熟悉这个运算器

评分

参与人数 1强度 +5 照度 +50 收起 理由
skywoolf + 5 + 50 感谢分享

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享分享
2m
 楼主| 发表于 2010-5-9 22:34:50 | 显示全部楼层
本帖最后由 panhao1 于 2010-5-9 22:51 编辑

里面的代码和这个极其类似
3m
 楼主| 发表于 2010-5-9 22:38:58 | 显示全部楼层
也许大家就要问了 为什么是structure而不是datatree
在我用C#时有提示说在运算器用datatree 在VS里用structure
估计与gh的装箱拆箱的限制有关
再看这段代码
    Dim strip As Boolean
    ' Dim struct As New GH_Structure(Of Grasshopper.Kernel.Types.GH_Goo)
    '  For i As int32= 0 To x.count - 1
    '  Dim db As New Grasshopper.Kernel.Types.GH_number(x(i))
    '    struct.Append(db)
    '  Next
    '  Dim struct2 As New GH_Structure(Of Grasshopper.Kernel.Types.GH_Goo)
    '  struct2.MergeStructure(struct)
    '  Dim VB As IEnumerator(Of GH_Path)
    '  VB = struct.Paths.GetEnumerator
    '  Do While VB.MoveNext
    '    Dim path As GH_Path = VB.Current
    ' struct2.ExtrudePath(path, strip)
    '  Loop
    '  If (Not VB Is Nothing) Then VB.Dispose
    'A = struct.Paths

是根据源代码的改写 只不过structure是无法输出的类型
4m
 楼主| 发表于 2010-5-9 22:46:11 | 显示全部楼层
本帖最后由 panhao1 于 2010-5-9 22:51 编辑

是不是这样 我们就无法使用structure呢 也不完全是

现在看看这段代码 Path是可以输出的

也就是说可以拆箱的 大家多写写vb就会发现这点非常有用啦
5m
 楼主| 发表于 2010-5-9 22:50:12 | 显示全部楼层
本帖最后由 panhao1 于 2010-5-9 22:52 编辑

别说不厚道 这个也花了我不少时间才找到这个 拆箱 的唯一漏点
代码只针对哪些常用C#的前辈才有用 和3L的类似
只要花点时间就可以自己写出来
因为要鼓励大家写代码 所以就要收点照啦
6m
 楼主| 发表于 2010-5-10 21:40:42 | 显示全部楼层
8# marcowoo

我偷看别人类库的源代码已经遭到鄙视了
所以这种事就不要再提了

小黑屋|手机版|NCF参数化建筑论坛 ( 浙ICP备2020044100号-2 )    辽公网安备21021102000973号

GMT+8, 2024-5-19 19:57 , Processed in 0.062945 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表