stepalibre
Alibre Super User
I only use Alibre Design for the API. I think this is important in understanding my perspective and use case. Sorry for the long post but I tried to cover everything important and be clear.
I'm working on integrations and workflows with Dynamo (Open Source Graphical Programming for Design), Grasshopper (graphical algorithm editor included with Rhino), Godot and Unity engine.
Here are some more contexts:
VS Code
Any Python 3 software or library
Jupyter notebooks
AI/LLM tech is all bleeding edge and I've been researching it seriously this year with some tools made and many ideas.
Blender for rendering, animation and is Python 3, FreeCAD is Python 3.
Web Tech, 3D viewers, configurators.
The problem:
AlibreX.dll = .NET framework 4.8 and .NET 6 or 7 is what all the .NET based 3D libraries and game engines use, Dynamo is preparing for .NET 6 and Rhino 8 will have .NET 7 support.
I spent the past few months exploring AlibreX.dll in detail. Being a single library is great and easy to navigate.
Why is .NET 6/7/8 so important, what are some benefits, why should I care?
The latest .NET versions allow us to work with Python 3 more easily, JavaScript via WebAssembly, among other features and it is cross platform. This is more important for development and tooling. I'm not trying to sell it to you but rather point out some other benefits.
The solution I have working:
.NET 7 build of AlibreX.dll. This solves the issues noted above and is a drop-in replacement for AlibreX.dll. Its not fully tested.
Other key pieces include:
Code to make it easier to program COM based libraries like AlibreX. COM is tricky and there are differences in how .NET Core handles COM. Many issues are COM related and not necessarily your code.
.NET 7 and .NET 4.8 bridge techniques a fallback to use .NET 4.8 code or project in .NET 7 contexts.
Issues and what is not working:
I spent most of the time on foundational work not able to work much on the integration pieces. I needed to pull apart the API and try things out to understand what is even possible and then how is .NET 4.8 and .NET 7 different. When I find issues in AlibreX.dll or the documentation I take notes and move on, building demos and tests all along the way. The process is slow.
What if Alibre update AlibreX.dll?
My process can be applied to newer versions of AlibreX.dll It shouldn't matter at all.
What if Alibre update AlibreX.dll to .NET 7 in v28?
Great everything should still work as is, I'll just change the target files.
Why integrate or use a program like Alibre Design a feature based, parametric modeler with Dynamo or Grasshopper?
The goal is to use them for their strengths combining one powerful tool with another powerful tool.
What's next?
I will be updating all my projects on GitHub and making more of the work public. I have cleanup, rethinking and reorganizational work to do first.
Any Dynamo or Rhino/Grasshopper users?
Special thanks to @bolsover and @NateLiqGrav
This is all for free, if anyone is thinking what's the catch. This is personal work. Much more to do but I'd like to share progress even this early. If you want more details, see examples or something sooner than later please let me know.
I'm working on integrations and workflows with Dynamo (Open Source Graphical Programming for Design), Grasshopper (graphical algorithm editor included with Rhino), Godot and Unity engine.
Here are some more contexts:
VS Code
Any Python 3 software or library
Jupyter notebooks
AI/LLM tech is all bleeding edge and I've been researching it seriously this year with some tools made and many ideas.
Blender for rendering, animation and is Python 3, FreeCAD is Python 3.
Web Tech, 3D viewers, configurators.
The problem:
AlibreX.dll = .NET framework 4.8 and .NET 6 or 7 is what all the .NET based 3D libraries and game engines use, Dynamo is preparing for .NET 6 and Rhino 8 will have .NET 7 support.
Dynamo upgrading to .NET 6 - Dynamo BIM
Kia ora everyone, We are actively working on upgrading Dynamo from .NET 4.8, which we have been on for a long, long time, to .NET 6.0. This post is the precursor to a larger technical post coming after the work has been done giving package authors in particular a head’s up that changes are...
dynamobim.org
I spent the past few months exploring AlibreX.dll in detail. Being a single library is great and easy to navigate.
Why is .NET 6/7/8 so important, what are some benefits, why should I care?
The latest .NET versions allow us to work with Python 3 more easily, JavaScript via WebAssembly, among other features and it is cross platform. This is more important for development and tooling. I'm not trying to sell it to you but rather point out some other benefits.
The solution I have working:
.NET 7 build of AlibreX.dll. This solves the issues noted above and is a drop-in replacement for AlibreX.dll. Its not fully tested.
Other key pieces include:
Code to make it easier to program COM based libraries like AlibreX. COM is tricky and there are differences in how .NET Core handles COM. Many issues are COM related and not necessarily your code.
.NET 7 and .NET 4.8 bridge techniques a fallback to use .NET 4.8 code or project in .NET 7 contexts.
Issues and what is not working:
I spent most of the time on foundational work not able to work much on the integration pieces. I needed to pull apart the API and try things out to understand what is even possible and then how is .NET 4.8 and .NET 7 different. When I find issues in AlibreX.dll or the documentation I take notes and move on, building demos and tests all along the way. The process is slow.
What if Alibre update AlibreX.dll?
My process can be applied to newer versions of AlibreX.dll It shouldn't matter at all.
What if Alibre update AlibreX.dll to .NET 7 in v28?
Great everything should still work as is, I'll just change the target files.
Why integrate or use a program like Alibre Design a feature based, parametric modeler with Dynamo or Grasshopper?
The goal is to use them for their strengths combining one powerful tool with another powerful tool.
What's next?
I will be updating all my projects on GitHub and making more of the work public. I have cleanup, rethinking and reorganizational work to do first.
Any Dynamo or Rhino/Grasshopper users?
Special thanks to @bolsover and @NateLiqGrav
This is all for free, if anyone is thinking what's the catch. This is personal work. Much more to do but I'd like to share progress even this early. If you want more details, see examples or something sooner than later please let me know.