I'd like to chime in here. So far everybody is spot on. I would like to add this:
iLogic being a vb.Net compiling editor can run the SAME CODE as Visual Studio in a VB.Net project. (don't try to get it to run a c#.Net page of code, it won't).
For me, this means I can create code in Visual Studio, test it, perfect it, probe things and all the power of MS VS 2019, then copy the code to iLogic and pretty much run it AS IS. That is a one way street, because the iLogic short-cut code does not freely work in the VS editor that uses only the reference to Autodesk.Inventor.Interop (Active X library installed with Inventor, and version independent!)
Inventor iLogic shortcuts are things like
- "ThisApplication"
- "ActiveDocument"
- "ThisDrawing"
- "iProperty"
- "Parameter"
These are easy ways to get to the chase of
- "Dim invApp as Autodesk.Inventor.Application = Marshal.GetActiveObject("Inventor.Application")", or
- "invApp.ActiveDocument", or
- "invDoc.PropertySets("UserDefinedPropertySet","NextAssembly").value".
The idea here is iLogic gives you shortcuts that the formal API requires you to perform properly.
VBA vs VB.Net:
VBA is MS VB version 6 or earlier
VB.Net is MS VB version 7 or later
There was a definite switch between syntax when they rewrote the language to run in the .Net Common Runtime Language (CLR) processor. VBA requires "Set" statements and can not combine "Dim object as type" with "= class instance" (like the assignment of invApp above). VBA editor INSIDE of Inventor CAN take advantage of some of the iLogic style shortcuts, BUT THEY ARE VBA SHORTCUTS (so they may not work exactly the same, but iLogic shortcuts were designed to imitate the existing VBA shortcuts when first created so they should be the same). Both languages use the Autodesk.Inventor.Interop(Active X library) so they have the same 'object tree' access to Inventor under the hood. Designing windows/forms is different for each platform/editor combo you choose.
iLogic Editor:
The iLogic editor does not do "object orientation" easily. It does perform Public Class definitions, but you generally want to separate all that code into separate pages. For iLogic's editor to organize a full project of classes and methods can get a bit messy, but it does offer access to outside files (code defined in an external document and then referenced). iLogic does not 'pre-compile' its code, so anybody can read/modify the code (this could be good or bad). I have successfully gotten iLogic to run VB.Net code that references the windows multi-threaded processing environment (System.Threading) as well as the same code in Visual Studio (since Inventor 2019), so you can write some powerfully fast code with iLogic/VB.Net that way (whole new can of worms!).
User controls (Forms/Windows/Palettes):
- Inventor.Interop allows certain control over the Inventor GUI to allow you to create native Inventor Commands, with their custom button icons and keyboard shortcuts. This can be done in all 3 editors (VBA, iLogic, Visual Studio). Custom controls can also be added to an Inventor Palette as a host of user window set of controls. This combines Inventor familiarity with custom tool designs.
- VBA uses Windows Forms and has a powerful but older set of controls to build your own windows/wizards, command buttons and the like.
- VB.Net uses Windows Presentation Foundation OR Windows Forms depending on the project type you setup. WPF is the most modern controls editor, allowing for great style-ability based on XAML language (similar to HTML but not).
- iLogic editor has its own forms creator for custom controls. It simplifies much of the boiler code to create direct access to parameters and iProperties. However that simplification totally limits its abilities.
There is a breakdown for you that points out a bit more physical differences. I hope it was helpful.
Jamie Johnson : Owner / Sisu Lissom, LLC https://sisulissom.com/