【Grasshopper基础4】如何在同一个项目中添加多个电池

本文详细解释了如何在一个GH项目中添加多个自定义电池组件,通过继承GH_Component类并理解GH通过反射识别组件的工作原理。同时揭示了Info.cs文件的作用,以及为何在设置中禁用dll加载。最后,提供了添加电池类到项目的方法和关于Info.cs文件可删减性的提示。

笔者在前文中已经介绍了如何使用Grasshopper(以下简称GH)模板搭建一个电池组件项目,并进行一些简单的项目配置,相信各位读者已经在进行各种自定义功能电池的开发了。

不过,随着想要制作的电池的增多,每次都从项目模板创建新电池的话,会导致有许许多多的项目存在。倘若这些电池都是服务于同一个目的,将这些电池分散在不同的项目会导致不太方便管理。其次,对于这些电池如果使用到了一些共同的依赖项,还需针对每个项目重新配置一遍,十分费时费力。

“如何 在同一个项目中实现多个电池 ”是从读者处反馈最多的问题,另外附带的一个问题是,每次从项目模板中创建的但却一直被我们忽略的 “ …Info.cs ” 文件到底是用来干什么的?本文就为读者们解答这两个问题。


如何在同一个项目中实现多个电池

比起直接说步骤,笔者还是先来说说 自己写的电池是如何被GH识别的 吧,这样可以更方便大家理解。

相信大家在 如何创建GH电池 一文中已经了解到了,每一个GH电池项目最终都会编译成为一个 DLL类库 文件。而在调试之前,我们也在 Rhino 中通过设置命令将这个DLL类库的文件夹所在地址放入到了GH的某个设置中。再结合我们所有自定义电池都是继承自 GH_Component 类,那么GH识别电池的逻辑也就十分简单了:

  1. 在给定的文件夹中搜索类库,并动态加载
  2. 将所有是 GH_Component 的类使用反射(Reflect)获取
  3. 在电池被拖入画布时,实例化对象

于是,在同一个项目中实现多个电池的思路也十分简单 —— 在项目中添加继承自 GH_Component 的类即可(在同一个文件中添加类,亦或是添加类在一个新文件中均可)。

例如,在同一个 .cs 文件中定义 2 个继承自 GH_Component 的类即可实现在同一个文件中做出 2 个GH电池(类必须具备 public 属性,原因是显而易见的):

namespace MyGhComponents 
{
   
   
    public class MyFirstComponent : GH_Component
    {
   
   
        // 构造方法必须提供额外属性,否则GH无法成功创建电池
        public MyFirstComponent()
        : base("First Compon
评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值