Grasshopper 的Python电池—GH生成三维空间或二维平面点阵

11 篇文章 10 订阅
5 篇文章 2 订阅

上篇文章我们给出了在GH里怎样用python写出平面二维点阵的代码,同时留了一个小作业,不知道同学们有没有试着去完成?

不管你有没有去完成,今天我们就再用python写出空间点阵的升级版——三维空间点阵,同时也保留了二维点阵,这样一个电池既能生成三维点阵,也能生成二维点阵,可谓是一举两得。先看看两种状态的效果:

三维空间点阵图:

二维平面点阵图:

下面是完整python代码:

# -*- coding: utf-8 -*-
__作者__ = "抖小腿儿,QQ:241525449"
__日期__ = "2021.06.27"
from ghpythonlib.componentbase import executingcomponent as component
import Grasshopper, GhPython
import Rhino.Geometry as rg

class MyComponent(component):
    
    def Grid2d(self,U,V):
        points = []
        for i in range(int(U)):
            for j in range(int(V)):
                point2d = rg.Point3d(i*U, j*V, 0)
                points.append(point2d)
        return points
        
    def Grid3d(self,U,V,W):
        points = []
        for i in range(int(U)):
            for j in range(int(V)):
                for k in range(int(W)):
                    point3d = rg.Point3d(i*U, j*V, k*W)
                    points.append(point3d)
        return points
    
    def RunScript(self, X数量, Y数量, Z数量, 平面点阵):
        if 平面点阵:
            点阵 = self.Grid2d(X数量,Y数量)
        else:
            点阵 = self.Grid3d(X数量,Y数量,Z数量)
        return 点阵

注意:X数量 、 Y数量 、Z数量、平面点阵端口用鼠标右键从上至下依次设置Type hnit类型为:int, int, int, bool ,要不然电池会报红的。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值