Writing code means a lot of trial and error. Debugging involves figuring out what is happening (often that is not the same as what you think that is happening). The way to figure that out is by stopping the code at the point that everything fails and checking what your computer has in memory. When I started writing iLogic rules the only way I knew for debugging was to stop the code with a messagebox and display the content of a variable.
For a computer, a number is just that. Therefore we assign units to a parameter. But most Inventor API functions return values in internal database units. This can be confusing if you expect that all values are in the units of your document. It gets even more confusing when you have a parameter in another unit type... Let's have a look at those unit types and how to convert them to the units you need.
On the "Inventor iLogic, API & VBA Forum" forum, I see often people that use or even start learning VBA. In this post, I will try to explain why I think that is not a good idea. On the Microsoft site, you can read: “Visual Studio 2010 (VC++ 10.0) Service Pack 1 reached the end of extended support on July 14, 2020”. This is important because “Visual Basic for Applications” (VBA) depends on these Microsoft Visual C++ Redistributable.
Early 2020 someone started this topic "Set different colours for each component of Assembly based on the part number". In that post, an article by Clint Brown was referenced. In that article, Clint proposed an iLogic rule for colouring each part. I updated Clint's code so it would not colour all parts with a random colour, but to give each part with the same part number the same colour.
On the "Inventor iLogic, API & VBA Forum" someone started the topic "Bug report when setting Face Name". I could reproduce a problem and I got a nice exception "The method or operation is not implemented". I expected that implementing the function "SetName" myself would not be that complicated.
In my last blog post, I proposed an iLogic rule that generated the overall dimensions. After that, I was contacted by someone on the "Inventor iLogic, API & VBA Forum" about that post. He asked for some modifications. Someone else also joined in and after some drinks, I got challenged to write a new rule that could "mark the dimensions of the holes (in a drawing)".
The company I work for has the policy that each drawing needs the overall dimensions of the part/assembly on the sheet. Years ago I created a tool that would generate the outer dimensions in a drawing view. It works okay, but I was not satisfied with the result. It is slow and there are edge cases in which you will get unexpected results. Last week I did have a new idea and wrote a new function. This new function works better!
In January (2021) I started reading about the Inventor update 2022. On the "Autodesk Inventor Customization forum" there was a topic by Adam Nagy warning us. The new feature "Modelstate" could affect some of the "Level Of Details" related functions. Till now I did not give it much thought. Probably I will not update for some years so I did not have to look at it.
Last week some one on the “Autodesk Inventor customization” forum asked the following:
“I have this code. It tends to work ok but I'm looking to improve the efficiency of the coding for future endeavours. I'm want to make a method for traversing the assembly and sub's so that it can be used over and over for all various traversing code I need to write.”
While writing iLogic rules I find my self often in the situation that I need to find a object in a list. Often I can use a standard Inventor api functions. But in some cases they do not work or the function just does not exists. For example I have the following situation. While generating drawings with our product configurator. An iLogic rule adds dimensions to an idw with many sheets. Ofcourse in that ILogic rule I need to select the correct sheet (in a list of sheets).
This is the last post in a sequence. In the first post of the sequence I discovered that it isn’t possible to assign names to faces in an assembly. I wanted that function therefore I decided to improve Logic. In this last post I will put it all together. And make it possible to create, view and use named faces of assemblies in a drawing.
Autodesk Inventor, Vault, Git, C#, vb, .net, php HTML, css, js
University computer science.
HBO Mechanical engineer.
MBO Fine mechanics.
(2016 - 20..)
(2009 - 2016)
(2007 - 2009)
(2005 - 2007)
Objectgeoriënteerd analyseren en ontwerpen, Objectgeoriënteerd programmeren in Java, Webapplicaties: de clientkant, Databases, Security Aware Programmer, Web Security Specialist