概述
可视化编程(Visual Programming)是一种通过图形界面和可视化工具来创建程序的方法,在设计和工程领域,它能够帮助设计师、工程师等非软件开发者在不需要编写传统代码的前提下完成数据流分析、参数化设计、自定义自动化流程等任务,此种方式具有以下优点:
- 快速原型设计:用户可以通过拖放节点和连接线来构建程序,而无需编写代码。这加快了原型设计的速度
- 易于学习和使用:可视化编程工具通常使用直观的界面,使用户能够快速上手
- 可视化反馈:用户可以实时查看程序的执行结果,从而更好地理解其功能
市面上流行的设计建模工具几乎都配备了具有相似功能的插件或平台,如
-
游戏、动画制作引擎:Blueprints(Unreal Engine)、Unity Visual Scripting(Unity)、Serpens 3(Blender)
-
建筑、机械设计工具:Grapsshopper(Rhino)、Dynamo(Revit/Civil3D)、Visual Script Designer(Catia)、GenerativeComponents(MicroStation)
为此,我们推出了AnyCAD VisualProgramming Framework帮助开发者快速搭建一款定制化的低代码工具,从而让你开发的应用能更加方便地实现基于AnyCAD.Rapid.SDK的建模、分析等功能。
Why Dynamo
AnyCAD VisualProgramming Framework并非从零构建,而是深度集成了Dynamo这款成熟的开源可视化编程工具,其优势包括但不限于:
- 内置节点丰富:Dynamo 提供了大量内置节点,涵盖了几何操作、数据处理、参数化建模、图形计算等多个领域。这些节点可以直接拖放到图形界面中,无需编写代码,使用户能够快速构建复杂的程序
- 易于学习和使用:Dynamo 的直观界面使用户能够快速上手。即使没有编程背景,用户也可以通过拖放节点和连接线来构建程序
- 可扩展性极强:用户可以创建自定义节点,以满足特定需求,这些节点可以基于现有的节点或完全自定义;用户也可以使用Python编写自定义节点,从而实现更高级的功能;此外,对于更复杂的扩展,Dynamo还提供了Zero-Touch的方式自动将使用C#编写的代码转换为Dynamo节点并导入使用
- 社区支持和资源:Dynamo拥有活跃的社区论坛和丰富的开发、使用教程,无论是终端用户还是二次开发者都能轻松获得大量学习与参考资料
启动Rapid.Dynamo
本节将以仓库中的AnyCAD.Rapid.Dynamo.Sandbox示范程序为例说明AnyCAD VisualProgramming Framework的基础用法,示范程序依赖AnyCAD基础模块(AnyCAD.Rapid.NET)和数据模块(AnyCAD.Platform.NET),目前要求Target Framework版本>=.NET 8.0。
开发环境准备参考README即可,随后创建一个基于AnyCAD的WPF程序并引用AnyCAD.Rapid.Dynamo.Startup项目,在需要启动Rapid.Dynamo处直接进行如下调用:
using AnyCAD.Rapid.Dynamo.Startup;
// ..
[RelayCommand]
void OnOpenDynamo()
{
RapidDynamoManager.Instance.StartDynamo();
}
编译完成后即可启动携带Rapid.Dynamo的AnyCAD程序,打开samples中的Hello_Rapid_Dynamo.dyn应有如下显示:
Rapid.Dynamo内置了Element与Geometry相关的基础节点,能够让Dynamo画布创建的图形与AnyCAD文档中的对象进行绑定(Element Binding),实现同步更新模型的功能;保存的.dyn
文件可以在新的应用中再次打开,将记录的工作流程快速恢复,重现建模场景。
需要注意的是,Dynamo内置的Geometry节点包依赖造型引擎ASM(Autodesk Shape Manager),即要求使用环境安装了携带ASM的应用(包括但不限于:AutoCAD、Revit、Inventor等),如不具备上述环境,可使用AnyCAD.CoreNodes提供的几何节点,亦可参照已有节点自行扩展。
总结
AnyCAD VisualProgramming Framework深度集成了可视化编程工具Dynamo,并提供了基于AnyCAD.Rapid.SDK的相关节点与其他基础工具,开发者能在此基础上快速地定制出客户实际业务所需要的低代码平台,给用户提供一个高效易用的设计分析工具。
后续文章中将详细介绍如何自定义更丰富的AnyCAD相关节点,欢迎关注订阅!