需要额外端口信息_Dynamo应用秘籍:2:利用自定义节点端口数据类型实现程序的自动嵌套运行...

539f9d2deecab10d2d5ce33736de4daf.png

许多Dynamo节点的端口都有指定的数据类型及其默认值。大多数情况下(除却某些List类的处理函数),当我们给端口传入列表数据时,Dynamo会自动分层解析输入数据直到获取与端口指定类型一致的数据,然后据此数据进行核心功能操作。因为输入数据为列表,节点会在解析数据的过程中自行重复调用核心功能,并按照输入的数据层级关系来构建最终的输出结果。如最简单的A+B函数,当我们给A或者B其中之一输入数字列表(可以是任意层级)时,其总能进行计算并返回结果。如下图所示:

b6e48798be90a2e9bbcfd7a5b69ae0d6.png

仅以两个数字的A+B功能为例,我们可以写一个Python Script来实现,其代码也很简单:

import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
OUT = IN[0] + IN[1] 

因为Python Script不支持设定输入数据类型及默认值,同时也不支持连缀等功能,这样的Python Script只能接受两个数字之间的运算,如果我们需要其中一个是列表怎么办?

最显而易见的方式是修改Python Script代码,将输入强制转换成列表,而后再使用FOR循环来逐个处理。但这样会增加大量的代码,同时需要考虑输入都是纯数字时,依然需要保持代码能运行。很明显,更多的代码,等于更多的工作量,也可意味着更低的效率。那么有没有其他简单的解决方案呢?

答案是有,使用自定义节点

我们可以把整个Python Script转换成一个自定义节点。此时我们将列表接入IN端口,返回值将会是null。如下图所示:

c93b9da527013e4e1cede1635c35812a.png

下面就是展现魔力的时刻,首先我们双击打开自定义节点,修改其中的input节点内容为x:doubley:double,然后返回之前的DYN将会发现,节点可以自动处理列表数据了,包括有层级的列表而不用额外写任何代码!如下图所示:

b006a390e62716497cca4f70e9fd6236.png

虽然上面的例子仅仅是简单的数学运算,但是这种方式也可以在实际工程实践中进行应用,如构建处理单个曲线、曲面或者实体的代码为自定义节点,指定输入的数据类型为对应的曲线(Autodesk.DesignScript.Geometry.Curve)、曲面(Autodesk.DesignScript.Geometry.Surface)及实体(Autodesk.DesignScript.Geometry.Solid),然后可以给节点传递包含曲线、曲面和实体的数据列表直接获取最终结果。

快速链接

上一篇 《《《《《 应用秘籍目录 》》》》》下一篇

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ModuleNotFoundError: No module named 'torch._dynamo' 错误通常是由于缺少torch._dynamo模块导致的。根据引用、和[3]的信息,可以得出以下解决方法: 1. 确保已正确安装PyTorch包。你可以在pycharm中使用包管理器或在命令行中使用pip命令进行安装。确保安装的版本与你的项目要求的版本相匹配。请注意,PyTorch安装包较大,可能需要一些时间来下载和安装。 2. 检查是否安装了torch._dynamo模块。这个模块是PyTorch的一部分,并且通常会随着安装PyTorch而自动安装。如果缺少这个模块,可能是由于安装过程中出现了错误或文件损坏。建议重新安装PyTorch以修复任何缺失或损坏的文件。 3. 确保你的项目环境正确配置。在pycharm中,你可以检查项目的Python解释器设置,确保它指向正确的解释器,并且已安装了所需的依赖项。 总之,如果你遇到了ModuleNotFoundError: No module named 'torch._dynamo'错误,可以尝试重新安装PyTorch以确保完整的安装,并检查项目环境是否正确配置。这些步骤应该能够解决这个问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [ModuleNotFoundError: No module named ‘torch‘ 解决方案](https://blog.csdn.net/thy0000/article/details/122652349)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [import torch时报错ModuleNotFoundError: No module named ‘torch](https://blog.csdn.net/hsisjnshud/article/details/130631713)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值