Grasshopper 的Python电池—GH生成平面点阵

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

大家都知道一个图形的最小基本单位就是点,而点是在犀牛空间里是由坐标表示的,比如 (x,y,z),而这(x、y、z)代表3个数字,所以只要我们知道这三个数字就可以生成点了,在GH中,生成单个点或多个点的方法有很多,但用一个电池做成点阵的电池却没有,所以,我们这次就来用python去编写一个电池,从而达到我们的目的,先看看做好后的效果是怎样的:

下面是完整python代码:

# -*- coding: utf-8 -*-
__作者__ = "抖小腿儿,QQ:241525449"
__日期__ = "2021.05.26"
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 RunScript(self, X数量, Y数量):

        if X数量 and Y数量:
            点阵 = self.Grid2d(X数量,Y数量)
        elif X数量:
            Y数量 = 10
            点阵=self.Grid2d(X数量,Y数量)
        elif Y数量:
            X数量 = 10
            点阵 = self.Grid2d(X数量,Y数量)
        else:
            X数量 = Y数量 = 10
            点阵 = self.Grid2d(X数量,Y数量)
        return 点阵

这个电池代码用了python函数写法,另外加了多种判断,目的是如果 X数量 和 Y数量 都不输入数字或者仅输入一个数字的时候让程序也能完美的执行,本次代码默认的数字是 10 。

当然,这个程序很简单,也只能在XY平面上生成点阵,如果想在其他平面生成点阵呢?或者想生成三维点阵呢?这就留下作业给屏幕前的你了。

注意:X数量 和 Y数量 端口用鼠标右键从上至下依次设置Type hnit类型为:int, int,要不然电池会报错的哦。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值