Grasshopper 生成(二)

shell编写利用画矩形_grasshopper做随机矩形密铺 如何用不同大小互不重叠的矩形拼成一个大矩形?这样的问题想必每个学习grasshopper的朋友都思考过。最近又有群友提问,我尝试了几种方法,供大家参考。1.Random Quad Panels这是插件Lunchbox的一个电池,能直接划分曲面,缺点是只有一个方向是随机的,而且数量多了很容易发现规律。2.分形将大矩形分成4份,生成的小矩形作为接下来迭代的输入数据,然后使用插件Anemone循环。缺点... 阅读详情
import rhinoscriptsyntax as rs
import random, math
from ghpythonlib import components as comp


def mapFromAToB( t, A, B):
    (startA,endA) = A
    (startB,endB) = B
    return comp.RemapNumbers( t, 
                              comp.ConstructDomain(startA,endA), 
                              comp.ConstructDomain(startB,endB) )[0] 


def getPointByParameter( line, t ):
    (p0,p1) = line
    ghP0 = comp.ConstructPoint(p0[0],p0[1],p0[2])
    ghP1 = comp.ConstructPoint(p1[0],p1[1],p1[2])
    ghLine = comp.Line( ghP0,ghP1 )
    # return a point 3d
    return comp.EvaluateCurve(ghLine, t)[0]

def getRandom(offset):
    return random.uniform(-offset, offset)

# 在line0与line1之间均匀的画num根线

def drawLerpLines( line0,line1, num):
    res = []
    for i in range(num+1):
        t0= mapFromAToB(i, (0, num), (0, 1))
        p0 = getPointByParameter( line0, t0 )
        t1 = mapFromAToB(i, (0, num), (0, 1))
        p1 = getPointByParameter( line1, t1 )
        res.append(rs.AddLine( p0,p1 ))
    return res

###############################主要代码#########################################
numX = 19
numY = 20
xStep = 50.0
yStep = 50.0
zStep = 50.0
xOffset = xStep/2.0
yOffset = yStep/2.0
zOffset = zStep/2.0
ary = []
############################## method 2d #######################################
myLines_2d = []
for i in range(numY):
    myLines_2d.append([])
    for j in range(numX):
        myLines_2d[i].append(None)

#创建直线
for i in range(numY):
    for j in range(numX):

        #aryB.append(rs.AddTextDot( "i"+ str(i)+",j"+str(j), (xStep*j, yStep*i) ))

        p0 = ( xStep*j-xOffset + getRandom(xOffset),
                yStep*i         + getRandom(yOffset),
                0         + getRandom(zOffset) )#0
        p1 = ( xStep*j+xOffset + getRandom(xOffset),
                yStep*i         + getRandom(yOffset),
                0         + getRandom(zOffset) )#0

        myLines_2d[i][j]=(p0,p1)

for i in range(numY):
    if i%2 == 0:
        continue
    for j in range(numX):
        if j%2 == 0:
            continue
        #ary.append(rs.AddLine( myLines_2d[i][j][0],myLines_2d[i][j][1] ))
        if i != 0:
            # (1,12)
            lerpLinesNum = 8 #int( mapFromAToB(i, (0, numY), (0, numY)) )#1,12
            #print (lerpLinesNum)
            ary.extend(drawLerpLines( myLines_2d[i-1][j], myLines_2d[i][j],lerpLinesNum))

a = ary

GH汉化版真香警告!用Python电池实现自定义方向挤出时,90%人不知道的3个优化点 本文深入探讨了如何利用Python电池在Grasshopper中突破原生六向挤出限制,实现沿任意直线方向的自由挤出。文章重点解析了三个关键优化点:实现任意角度挤出、通过代码简化电池界面提升可读性,以及巧妙利用数据结构树转换来优化工作流,帮助用户从复杂连线中解放,提升参数化设计效率。 阅读详情

相关推荐

【Grasshopper进阶】Grasshopper外部调用

本文主旨是介绍“进程间通讯”在Grasshopper中的应用。 常用场景:手头已经有一个程序,这个程序想控制Grasshopper画布中某些组件进行一些数据操作,这个程序是独立Rhino和Grasshopper之外运行的。 从另一个程序来控制 Grasshopper 中的组件。 进程之间通讯 Windows平台下,进程间通讯称为“Interprocess Communications”,具体详见msdn文档,有多重实现模式,在此就不赘述了: https://docs.microsoft.com/en-us

几何螃蟹的代码笔记 5315

chatgpt赋能python:Python安装Lib:完整指南

本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。🧡AI职场汇报智能办公文案写作效率提升教程 🧡专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具。

axuhsssssco的博客 626

由CAD高程点生成Rhino地形 (Grasshopper)

关于参数化工作流的一点尝试,还望各位大神不吝指正 成果示意 电池图 ** 操作步骤 ** 1.提取高程信息 选择CAD文件中的高程点,导入Rhino中,注意图纸单位(图1-1 中红色的数字左侧的点就是高程点)。 *图1-1规划局提供的CAD测绘图示例** 可以将所有高程点单独考到一个新文件(最好原位黏贴),导出T3(如图1-2)。...

cheNke1902的博客 3万+

grasshopper 中python代码实现多重曲面brep偏移函数

grasshopper3d中python代码偏移多重曲面

leigh_的专栏 1079

【Grasshopper基础7】如何重写Grasshopper电池的预览 DrawViewportWires / DrawViewportMeshes

经过【基础1~6】的介绍,相信大家对Grasshopper电池的开发的框架已经大致了解了。无论是在电池上修改原有功能还是增加新的功能,都是通过继承自GH_Component类,再在其基础上要么override原来的默认实现,要么就是继承新的接口。 在这里对前面的内容小小地总结一下:一个自定义GH电池必须实现的overrides有 RegisterInputParams // 用于注册输入参数 RegisterOutputParams // 用于注册输出参数 SolveInstance // 用于真正实现电

几何螃蟹的代码笔记 3811

【Grasshopper进阶】在Grasshopper画布上实现动画效果

最近笔者为了能够做到对用户友好,深入地学习了一些前端的知识,等回过神来,发现已经好久没有在优快云上更过东西了… 结合最近看到的某些前端框架的底层,突然想到为什么不在Grasshopper上玩动画呢?比如电池拖出来之后,缓缓变形,然后出现一些UI的元素。 本来已经做好了手动写 Timer 或者写个线程循环来操作,结果人家Grasshopper自带这些个做动画必备的东西,那就简单了,抱着试试看的态度,完成了一个好玩的动画效果。就如同文章最开始的 gif 动画一般。 下面就 “简单” 介绍一下如何在Grass.

几何螃蟹的代码笔记 3026

中如何取消高亮显示_【GhPython】如何在Grasshopper中显示Dot

【版权声明】| 作者:月之眼| 如有侵权,请联系大水牛平台|如果觉得文章不错,欢迎分享效果展示分析我最先想到的是Ghpython有没有像C#电池一样的“小眼睛”,可以重写电池的显示模式。这个方法是重写了基类GH_Component的抽象方法。所以我想到了Ghpython的插件模式。直接继承了GH_Component类。然后我们重写GH_Component类的DrawViewpo...

weixin_42297349的博客 800

grasshopper插件_【Grasshopper 的奇技淫巧】 —— 插件(二)

//【Grasshopper 的奇技淫巧】 —— 插件(二)MagnifierMagnifier​www.food4rhino.com我写的另外一个小插件,中文名叫放大镜。一般当GH的画布缩小之后,电池的图标文字会被隐藏,对长距离的连线十分不方便,要不只能摁着左键拖右键边滚滚轮放大缩小到右手抽风,要不只能靠“精湛”的gh技巧记着输入输出端口的位置。这个插件当识别到画布缩小时候,只要鼠标指着电池的输...

weixin_39762838的博客 2479

c++随机生成迷宫_三种迷宫算法在Grasshopper中的实现(二)

(二)随机Prim算法可以先看看这篇博客的介绍:https://blog.youkuaiyun.com/juzihongle1/article/details/73135920作者是这样描述的:1.让迷宫全是墙.2.选一个单元格作为迷宫的通路,然后把它的邻墙放入列表3.当列表里还有墙时--1.从列表里随机选一个墙,如果这面墙分隔的两个单元格只有一个单元格被访问过--------1.那就从列表里移除这面墙,即把...

weixin_39849479的博客 462

Rhinoceros (with Grasshopper)软件二次开发:Rhinoceros脚本编写与调试

Grasshopper是Rhinoceros的一个插件,由David Rutten开发,它提供了一个基于参数化设计的图形化编程环境。Grasshopper允许用户通过连接节点来创建复杂的几何形状和算法,而无需编写代码。这种可视化编程方式极大地降低了编程的门槛,使得设计师和建筑师能够利用算法生成和优化设计。Grasshopper的节点包括数学运算、几何操作、数据管理等,可以轻松地创建动态和响应性的设计模型。"""创建一个半径为给定值的球体"""# 调用函数。

kkchenjj的博客 929

Rhinoceros(带Grasshopper)软件二次开发:Grasshopper插件开发基础

在Grasshopper插件开发中,自定义组件属性是提升组件功能和用户交互体验的关键。通过添加属性,可以控制组件的外观、行为以及数据处理方式。// 自定义组件类// 构造函数// 注册组件属性// 添加自定义属性// 自定义属性更改事件// 当组件的解决方案过期时触发break;// 当组件图标更改时触发break;// 其他自定义属性更改事件// 组件执行代码// 数据处理逻辑。

kkchenjj的博客 2063

【免费下载】 GRASSHOPPER VIPERS 插件下载仓库

GRASSHOPPER VIPERS 插件下载仓库 【下载地址】GRASSHOPPERVIPERS插件下载仓库 欢迎访问GRASSHOPPER VIPERS 插件的下载仓库!本仓库提供了一个方便快捷的途径,供用户下载GRASSHOPPER VIPERS 插件。该插件是专为GRASSHOPPER用户设计的高级工具,旨在提升...

gitblog_09743的博客 1564

Grasshopper .net 开发手册

Grasshopper 开发手册 Grasshopper™ is a graphical algorithm editor tightly integrated with Rhino's 3-D modeling tools.

Grasshopper脚本电池处理全站仪数据,生成建筑、线状地物和地形

引入 在使用全站仪时,每次的测量的坐标均可保存在储存中,便于后期内业导入Cass中成图。导出的.dat数据的格式如下(随手编造的数据) 其中每一行为一个点的数据,用英文逗号隔开,分别表示代号,(空值),X坐标,Y坐标,Z坐标,代号根据自己设定。在这个数据中,我使用FW1表示房屋1;FW2表示房屋2;前加下划线的数据表示线状数据,这里DL表示道路;空代号表示仅仅是测的一个高程点 Cass 将数据导入Cass,展点和点号,看到如下结果 根据相同代码连接起来,得到测量的两个房子和一条道路 再生成个DTM搞个

欧阳罢笔的博客 3646

开关电源|控制方式PWM、PFM、混合调制

频率调制器根据误差放大器的输出大小来改变方波信号的频率,若负载电流突然增加,输出电压 Vout随之下降,反馈电压 VFB 减小,此时误 差放大器的输出增高,频率调制器输出方波信号的频率增大,增加电感充电次数;若负载电流突然增加,输出电压Vom随之下降,反馈电压Vr减小,此时误差放大器的输出增高,PWM比较器输出方波信号的占空比增大,增加电感充电时间:若负载电流突然下降,PWM比较器输出方波信号的占空比减小,减少电感充电时间,从而稳定输出电压。它是在固定开关频率下,通过改变脉冲宽度来调节占空比的。

weixin_46969363的博客 1万+

智能车竞赛蚂蚁搬家组:NXP-MicroPython与STC单片机协同搬运策略解析

本文深入解析智能车竞赛蚂蚁搬家组中NXP-MicroPython与STC单片机的协同搬运策略。通过硬件选型、通信架构设计、效率优化及实战经验分享,展示了如何利用NXP-MicroPython的实时控制与STC单片机的感知导航优势,实现高效多智能体协同作业,为参赛团队提供实用技术参考。

motor的博客 1080

grasshopper插件_如何在grasshopper里面开发你的插件(二)

‍(在Rhino里面截取当前视窗的图纸并设置大小是一个比较基本的功能,而要在grasshopper里面截取犀牛当前视窗的图纸却没有这样的一个原生运算器,本文通过VS Code开发简单的grasshopper截取Rhino当前视窗图纸的插件。简单地对通过使用VS Code开发简单的grasshopper插件的流程做一个简略的笔记梳理,涉及的代码本身比较基础,只做展示,不详细展开。)在rhi...

weixin_39839541的博客 2963

Polars简明基础教程一:Polars快速入门

在这个例子中,我们将添加一个列,其中包含每个舱位中乘客的最大年龄。在Python中(而不是特指Polars),当我们将代码包裹在括号中时,我们可以在新行上调用一个新方法——在这种情况下是select。在这里,我们看到一个使用表达式API的简单示例,其中我们在select语句中选择Pclass、Name和Age列(我们将在第3节中深入了解select语句)。表达式是一个函数,它接受一个Series(或DataFrame中的列)作为输入,并返回一个Series(或DataFrame中的列)。

sosogod的博客 3880

grasshopper(C#script)生成蛇皮管道

摸索grasshopper的第二天,决定使用一下脚本电池,制作一个随机生成管道的蛇皮东西,如下 其中除了用到interpolate来连线和pipe来成管,就是一个C#的脚本电池了,作用是不走回头路的随机生成点,然后用interpolate连接起来最后用pipe成管道 由于网上的资源太少,只能自己摸索。在C#的editor中,灰色背景的部分是不能编辑的,能编辑的只有白色背景的部分,一是(这里的x,y,A等可以在电池中修改名称,这里我把x改为seed,随机种子,y改为num,点数) private void

欧阳罢笔的博客 1758

如何正确的计算两个角度的角度差?

这一步是必要的,因为它确保了无论a相对于b是在逆时针方向还是顺时针方向,d2总是正确地反映出绕圆相反方向的角度差。这样,当函数进行最后的比较时,它能够准确地比较两个方向的旋转路径并选择最短的一个。

小秋 AI SLAM 入门实战教程 4137

13、深入理解 Microsoft 365 的安全与合规概念

本文深入探讨了 Microsoft 365 的安全与合规概念,涵盖文档存储、文件共享、审计、保留、eDiscovery、分类和保护以及网络等多个关键方面。通过合理配置这些功能,组织可以更好地管理和保护其数据资源,满足法规要求,并提升工作效率。文章还提供了最佳实践建议及流程图,帮助读者全面理解 Microsoft 365 的安全架构和管理策略。

k8s6orchestrator的博客 212

Grasshopper Brep 快速指南

Brep 是边界表示的缩写,是 3D 建模和 CAD 应用程序用来表示 3D 对象的方法,通过定义其体积的极限来表达3D对象。想象一下 3D 对象作为实体。Brep 关注包围该实体的边界。与其他可能使用多边形或顶点的表示不同,Brep 由其表面之间的数学关系定义。这种数学精度可以更准确地表示复杂的形状和轮廓。在 Rhino 和 Grasshopper 的背景下,你可以将 Brep 视为与“多面体”相同。

新缸中之脑 3633

AI OS与LLM as OS:人工智能操作系统的崛起

近年来,随着大语言模型(Large Language Model, LLM)技术的突飞猛进,人工智能领域掀起了新的革命浪潮。以ChatGPT、GPT-4等为代表的LLM模型展现出了惊人的自然语言理解和生成能力,使得人机交互前所未有地拟人化、情境化。在此背景下,业界开始探索将LLM作为操作系统(Operating System, OS)的可能性,由此催生出"AI OS"和"LLM as OS"的概念。本文将深入解读这两个前沿概念,分析其内涵、技术原理、应用前景及面临的挑战。

AI天才研究院 996

grasshopper的觉悟(篇章二)

多重曲面包括两个或多个连接在一起的(可能是修剪过的)Nurbus曲面。每个曲面都有自己的参数设定,和无序与整体匹配的u、v方向。多重曲面和修剪曲面都可以用边界表示法(缩写为brep)来表示。边界表示法基本描述了曲面,边界和几何顶点的附加数据,以及不同部分之间的关系。比如,brep描述了各个面,以及它们的外层边界和修剪边界,相对于曲面的法线方向,与邻近曲面的关系等。对于完全封闭的brep物体,我们将他们成为实体61.鼠标的定义。

weixin_41571869的博客 3104

addr2line解析不出来行号的解决方式(汇编解析高阶版)

摘要:本文针对AEC crash问题中addr2line无法解析行号的情况,通过llvm-addr2line和反汇编分析,定位到CamX::AECBEStats17::AdjustROIParams函数中的乘法溢出问题。关键发现包括: 常规addr2line只能解析到函数名但无具体行号 llvm-addr2line解析出多个可能溢出点(行196/204/211/218/270/271) 反汇编显示6个条件分支跳转到溢出处理函数 源码分析确认这些位置均存在乘法运算 最终通过汇编级调试工具成功定位UBsan报告

168

(ICLR 2025)【源码讲解+复现】TIMER-XL: Long-Context Transformers for Unified Time Series Forecasting

本文提出了一种统一的多变量时序预测模型Timer-XL,其核心创新包括:1)采用自回归解码器架构,将多变量时序预测统一为next-token预测问题;2)设计TimeAttention机制,通过相对位置编码和因果掩码捕获时序位置和变量间交互;3)支持长上下文预训练以提升零样本迁移能力。模型架构包含嵌入层、时间感知注意力块和预测头,采用MSE损失进行端到端训练。实验表明该方法在多种时序任务上表现优异,特别是在长跨度预测和少样本场景下。代码实现提供了完整的模型定义、数据加载和训练流程,支持自定义配置参数。

1146
上一篇: Python for rhino 如何导出 rhino5
下一篇: Grasshopper Pickover 混沌图形
TimeFuture2017
博客等级 码龄10年 115粉丝 175原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值