I am just getting into using iLogic for some of our products. It seems to be quite a steep learning curve and the the Autodesk claim that no "programming experience" is needed is a little exaggerated. I feel that if I had good programming knowledge this would be alot easier.
My current method is to create a single multibody part with various features which can be suppressed, unsuppressed, dims modified, predominantly from the fx parameters. These are linked to iLogic rules. My intention is that once the correct configuration has bee selected the cad user would then use the create parts function to create the individual ipt's and the iam. Would others agree with this method or would you recommend creating the assembly with the individual ipt's and then use rules to control suppression states of the ipt's in the assembly.
So far it seems a little easier doing it from one ipt instead of trying to figure out how to get rules to work accross mulitple parts and still be able it control it all from one location. The problem is that the single ipt multibody approach also starts to get quite complicated as I attempt adding more design variations.
Your thoughts please?
I think most people work with assemblies rather than multibody parts. We have more support for that in iLogic.
How many bodies do you have in a typical model? Do you have a lot of bodies that are identical (and will always remain identical when you modify the model)? If so, assembly modeling would be better.
Mark Randa at http://opendesignproject.org/ shows some examples of using iLogic with multibody parts.
We could provide more support for multibody modeling in iLogic. I have attached an external rule that acts like an add-in to iLogic (in Inventor 2011) and gives you functions dedicated to solid bodies. It allows you to suppress or unsuppress a body by name without specifying the features. There are functions to change the visibility and color of bodies.
To allow iLogic to find this external rule file (SolidBodies.vb), you can either:
- Save it to your project workspace folder.
- Or save it to another directory, and then tell iLogic where the directory is using the Tools -> Options -> iLogic Configuration command.
Here's a sample rule that uses the solid body functions. In this example, Solid1_on and Solid2_Visible are True/False parameters. Solid1_Color is a Text parameter.
AddVbFile "SolidBodies.vb" Dim bodies as New SolidBodies(ThisDoc.Document) bodies.BodyIsActive("Solid1") = Solid1_on bodies.Body("Solid2").Visible = Solid2_Visible If (Solid1_on) Then bodies.Body("Solid1").Color = Solid1_Color End If
Have you though about just using iparts. No "complicated" coding required to suppress features/modify dims,etc..
Thanks for your reply. I would estimate that the average product which I am developing the iLogic setup for constists of about 6 part files. There is generally only one part which doesn't change much but it does change size. No parts remain identical.
So far I have created a multibody ipt which seems to work so far but it doesn't cover the full range of design variations as it is starting to get a little complicated for me do add the new variations and rules to control them. I will try to investigate the assembly method as it may be easier to control all the variations we have??
Thanks for the external rule. My current rules require suppression of each feature of a body resulting a a fairly long rule just to suppress one body. Does your external rule actually suppress the body or just hide it? Will the mass property change based on the suppression stated of the bodies?
Hi there. I have used iParts and iAssemblies for quite some time now. I am trying to develop an iLogic part for our product designers to help them carry out the design task quicker and to a set standards as far as possible. I have found that iParts and iAssemblies take getting used to and so far I am the only CAD user who has adopted iPart and iAssembly modeling for some of the work I do in machine design. I think this indicates to some extent the fact that these methods are not "simple" enough to attract the other users. I have also found it quite difficult to get my head around the way in which vault deals with iParts and iAssemblies.
The hard part for me is creating a solid iLogic master part or assembly. Once that has been done, the job of the product designer should be "easy". They would simply use the master iLogic part or assembly, save a copy and specify the requirements, sizes, etc.
Thanks for your comments and suggestions.
Well I have completed what seems to be a working iLogic part. This is not the more complex Multibody part discussed earlier in this thread.
Instead for now I have created an iLogic part for one of the ipt's which end up in our product assembly.
I have a long way to go but pleased that I was at least able to get one part working...
Yes, the external rule (SolidBodies.vb) can be used to suppress a body. It does this by suppressing all the features that contribute to the body. If you have features that are affect multiple bodies, that method won't work so well. But if everything is separate then it should be as effective as suppressing individual features, and it makes for simpler rule code. The effect on the mass properties will be the same as suppressing the features.
Here's sample code for body suppression:
bodies.BodyIsActive("Solid1") = Solid1_on
Will SolidBodies.vb work with Inventor 2013?
It seems like it could be the answer to my problem:
I have a part with many solid bodies, all of which have one of 4 prefixes. Softwood,Softshell,Celufoam,Canexcel.
I would like to control the visibility of each group of bodies through a parameter 'CladdingSelection' =1,2,3,4 ect...
I have iLogic code that names newly created solids (created with the split tool) with the relevant prefix, depending on the value of the 'CladdingSelection' parameter at the time of creation.
It seems I like need the code to read the first 8 characters of the name of each body, and activate visibility according to the vaule of the parameter.
I'm very stuck, so any help would be amazing.
SolidBodies.vb will work in Inventor 2013. But it doesn't provide a way to iterate over the bodies to find names that begin with a given word.
But this is easy to do with the API. I attached a rule that you should be able to use by itself, or add it to one of your existing rules.