I have been having trouble with parts that do not trigger iLogic rules. I've set the triggering events to After Open Document, but nothing triggers. I must manually open the parts and then click the iTrigger to get the rules to run. This is not all parts only a select few and seemingly random.
Is there something I can do to ensure the triggers fire and the rules to run?
Sidebar: If a part is set for trigger After Open Document should that part trigger the rules when the assembly that the part is in is opened?
I am currently using a vb.net application to control inventor using the API code.The API code is used to delete/suppress unwanted occurances from parts and sub-assemblies, depending on what is selected in the external application. It then puts all the parts and sub-assemblies together into a final assembly.
Most of the parts contain iLogic rules, to control dimensions, and these have been set to trigger when the part file is opened.I have noticed that in my final assemblies some of the parts don't appear as they should, however if i close the final assembly and open the individual part it appears to be correct. If i then open the final assembly it looks fine.
I think this might be due to the iLogic rule being triggered when the part is opened.Is there any way to trigger the rules using the API code while the final assembly is open, instead of closing it down and opening all the component parts and sub-assemblies?Or should we set the rules to trigger on a parameter change?
I'm trying to set a rule in which i have 2 i parts that i can change the length of . I want a rule where if i change one of them it changes the other to fit with it.
I made a simple rule that triggers before save to ask user to make a selection, which then updates an iProperty.I created A multi value fxParameter and used the InputListbox function.
Ultimately I want to know the best way ok making this rule available to all parts, old and new.I am thinking, it will be easy enough to update my templates and embed this code into the part, as well as content center files by updating each file / template .
But for existing parts, is there a way to add these rules without the user having to do much steps.because there is an fxParameter I am thinking the user will have to know how add this to their part.I can change it to just an input box where they can type in the correct value, if that would be easier.
I am very new to this whole concept of having ilogic based rules to drive your part design. I have even gotten as far as creating a ipart and having ilogic rules be able to suppress, unsuppress, change values and dimensions using ilogic rules. I now want to be able to use ilogic rules to drive some of the various(yet similiar) assemblies that I create all the time.
For instance, If I have just a flat plate as the base component with a shaft welded to it that varies in length for my assemblies. Since the shaft varies in length, I went ahead and created iparts for all the lengths of the shafts. I can manually change which shaft I want represented in the assembly, but I would like to to know how do I get Ilogic to place the different shafts based on user parameters???
I've looked into component place iparts, but can't seem to get the code to work. The list of iparts tree within the model doesn't pop up in the model tab in the ilogic rule, only the base component.
Can I use an iLogic Rule at the top assembly level to "replace all" of a particular component is that component resides in more than one subassembly? I need a rule to run and globally replace the component in all subassemblies without opening up each subassembly manually. I can run a rule in the individual subassembly that looks like the following:
If GoExcel.CellValue("3rd Party:Embedding 1", "Sheet1", "A2")=800 Then Component.Replace("Part1:1", "OtherPartfilename.ipt", True) End If
Is there a way to run a "replace all" command from a top level assembly?
I am trying to build a set of scripts (aka iLogic rules) into templates. So far, quite a common task. One extra requirement is that the scripts need to be updatable after parts have been instanciated from the template. That is, we do not want to update all of the ipt each time a new material option is added to the script. That means that external rules are the only way to go, right? This is the road I tried and it seems to work on my machine.
One extra requirement is that the whole project must be shared between several workstations. We went the Subversion road for that (for all the Vault comments). The scripts are distributed properly and in the same absolute location on the two test machines, all good (I checked the md5 on both side and they all match). The application options on all the machines are all set the same way (export the xml file, check it in the source control, import on all the machines restart). The iLogic search path is also updated, but manually this time, since it is not included in the application options export. It should all work perfectly right? Well, sort of....
I did create a tiny assembly from the templates. On my source machine, all looks good. The ilogic rules are both listed in the ilogic browser and the triggers are set when I instanciate from the template. This is the intended behavior. Now, I close inventor, copy the whole directory to a new machine, open inventor there and open the project. The rules do not appear anymore in the browser, but they are still listed in the trigger list (wtf?). The best part is that if I do not touch anything, stuff still works! The scripts are found and run properly!! Now, if I have to change the triggers or even find the rule in the browser to run it manually, well, bad-stuff-happens (tm).
All the files in question are indentical on both machines, the ilogic files, the ipt files, the application options export, all with the same hash. The ilogic search path is also set the same as are the absolute paths. It should work the same (tm).
Me sending a copy of the files is not likely to work though. Since the problem happens when you copy. I could try to "pack and go", but that would break reason #1 for doing that, which is keeping only one version of the script and adding materials at only one place for all the projects.
2- WEIGHT - is to update weight of model in title block
3- PDF - is to create a pdf version of drawing in same location as idw
all are triggered by saving the drawing.
These work fine, but sometimes when I create specific types of drawings there is errors, which is no big deal, just a prompt appears and I press ok and everything is fine.
With very little to no iLogic programming knowledge, is there a way to edit to rules so that if there is an issue, the rule knows it is ok and saves without the little prompt appearing?
Example of when errors occur for:
SCALE - sometimes I create drawings on my template just using create sketch, I don't place a base view so therefore there is no model information. which makes it hard to produce a scale. (see image, error -1)
WEIGHT - occurs during the same instance as above, only a sketch is saved on the idw. (see image error -2)
but I also have an error occur when creating a drawing from a presentation file. I create a presentation file from a specific level of detail from an assembly. and I get an error when saving . (see image error-3)
I understand the first 2 errors because there is no physical data to get this information from, so I am hoping an edit to the rules can bypass this issue. But the 3rd error doesn't make sense. It is from an actual model, but I guess the physical properties get lost from an .iam to .ipn?? or is there a setting that can be toggled to carry over model properties?
Inventor Pro 2013
Rules are below:
'Scale Public Sub Main() On Error Resume Next 'Get the drawing document
Is it possible to create something like a password or other trick to protect ilogic rules from editing? Ilogic can enforce standards but if any engineer can delete rules or edit them then we have a problem.
I have a dedicated folder for external rules on a network. In the Advanced ilogic configuration interface on my machine I added the path to this folder in the External rule directories.That seemed to work fine. I opened the ilogic tree activated the external tab and the external rules were available for selection.
Today I tried to do the same process however no rules were visible under the external tab. I had to select "add external rule" and navigate to the folder.I do not want my users to have to manually navigate to the folder. Is there a step i have missed in this process? I am using Inventor/ilogic 2009.
I have an assembly with parameters named the same as LOD's.
The parameters are set to equal the mass of the corresponding LOD's using ilogic.
If the LOD does not exist, I want to set the mass of the corresponding parameter to a value of zero.
I don't know how to check for the existence of the LOD and I'm not sure I can have three commands in the ELSE section.
Below is an example of what I need using a Parameter and LOD called EXTERNALS as an example.
If EXTERNALS LOD does not exist THEN Parameter("EXTERNALS")=0 ELSE 'activate the EXTERNALS LOD ThisDoc.Document.ComponentDefinition.RepresentationsManager.LevelofDetailRepresentations("EXTERNALS").Activate
I am having a problem with Inventor 2013. Every time I run/edit then run an iLogic rule my Inventor crashes. I have sent the report in to autodesk, but I need a fix for now.
I have tried a soft reboot, hard reboot, only opening inventor while no other programs are running, disconnection from the internet, etc.
I'm a contractor, I've created a really impressive form-driven assembly containing various iLogic rules. However, as i add more rules it is beginning to slow down (increase rule processing time). Should I suggest upgrading to 64-bit and increasing RAM?..could be costly with no increase in performance.
I made an Part with iLogic rules, let's call it "iLogicPart". The rules inside could create lot of different part by my input.
I want save the different parts to different name as "Part 1", "Part 2", etc. I used SaveAs to get them.
My question is: I want to delete all rules and parameters in the saved parts as "Part 1", "Part 2". And I have lot of features (the name is hard to track) which are inactive, I want to delete them at same time too.
I could manually do so, but I want to use rule to do so automatically.
I am just starting to use ilogic for some design files. We have two design sites connected with Vault Collaboration 2012.
What is the best practice for sharing the ilogic rules between the sites?
I was planning on making an ilogic rules folder at the root of my workspace and having Vault manage the external rules. However, I don't see the rules listed when I check-in a file that uses them.
Do I have to add the rules to my template files? If so, how do I make changes to the rules without editing every file created with the templates?
We will be moving to Vault and IV 2014 after the first of the year, if that makes any difference.
I have a wire trough that we typically use on all our units. Instead of modelling each trough as it's own separate part to length, I would like to add this part to frame generator for tracking there cut lengths etc...
A few items, there is two sizes that we use, but for now I will work with just one.
I have modeled the part and renamed the important parameters.
-WIDTH - stays the same
-HEIGHT - stays the same
-LENGTH - adjusted by frame generator
-RIBS - the part has 6 currently, but there is a rib added for every 1/2 inch. it is a rectangular pattern
-SLOTS - will be added to the trough every 2 inches of length, it is a rectangular pattern
-SLOT_DISTANCE - is 2 inches and never changes, if the trough is cut on a slot, which ever is easiest, to show half a slot or none, doesn't matter, this is just for a visual and BOM reference
I found a video that shows me how to publish parts to FG, but I am stuck for the iLogic part. Part attached.
How to make an iLogic routine run from a completely different document than the one it's in? I have tried everything from remotely changing properties to even editing a sketch in the model to try an trigger a routine. Nothing works. I have set triggers to fire when the part opens but opening the documents with code doesn't fire those triggers. It’s very frustrating to have to open each part in an assembly manually just to get all the routines to run.
I've created several (4) ilogic rules and want to run them by pressing a button. So I need a form with 4 start buttons. Can I create this with Ilogic in Inventor 2011 or do I need to be VBA expert?
I have an assembly with multible parts which all have iLogic rules in them. I want to controle when the rules are executed in each part, thus I have set them as "Don't run automatically". These rules are iTriggered by the top assembly, if they are active.
Is there a possibility of how I can run multiple rules simultaneously?
The code below is an example of the controle rule that determines the rules to be run but it takes one rule at the time...
IfComponent.IsActive("5580 Heating element package 1")=TrueThen iLogicVb.RunRule("5580 Heating element basket 1", "iTriggerRule") EndIf IfComponent.IsActive("5580 Heating element package 2")=TrueThen iLogicVb.RunRule("5580 Heating element basket 2", "iTriggerRule") EndIf . . . up to x
I have also tried with For - Next statements...But the rules are run in the order that tey are written...
As the computer has a lot of memory in reserve; I want somehow all the iTriggerRules to be run at the same time as this would save a lot of time.
how you put the rule in but is there a way to remove the rule. I put one in and I don't like how its acting and would like to remove the rule from the list but I see no way do do so...
i'm a starter working with iLogic, forms and rules.I'm trying to make a rule to force users to fill in certain iProperties before saving.Looking around on the internet I found a rule that works fine, except it checks only for empty spaces, so doesn't show up if they are filled.
What I want, is to edit the rule so that the form always shows when saving, but still pops up when the user has an empty space but hits ok. Just so people are made aware of what they filled in in the first place.
I have some assemblies that are made of iLogic parts. The code within the assemblies causes a common external rule to run in each of the parts to update the part's metadata (descriptions, part numbers ect.) to relect any changes to the part.
However, when a change is made to the assembly, not all the parts are effected and yet my code will still run the external rule within the uneffected parts. This slows things down some, but more problematic is the fact that the uneffected parts need to be checked out/revised, even though they themselves haven't changed.
Is there a way of reorganising my code so that external rules are only run in parts that are effected by the assembly change?
rule the runs from the assembly. My assembly file has 3 sheet metal parts and what I need is use ilogic rules to export them as .dxf files at the same time. It does work when I write the code for each single part, however, the rules not works when I assembly them together. I keep getting the error message
"Error in rule: Rule3, in document: access dr_same
Unable to cast COM object of type 'Inventor._DocumentClass' to interface type 'Inventor.PartDocument'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{29F0D463-C114-11D2-B77F-0060B0F159EF}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE))."
Something to clear, Rule3 is the rule I wrote in ilogic to export .dxf FILE. everytime the parameter changes, the rule allows me to automatically save the surface as dxf file to a certain location. the rule works perfect in the ipt file.
however, when i assemble 3 sheet metal parts together in an assembly file, this rule not works anymore and give me the above error message.
I want to use a parameter in my assembly as the name of a part i'm referring to in a rule but so far I have had no luck making it work. My knowledge of iLogic is pretty limited.
I am making a configurator for a staircase and I am working on the stringers now. There will be 3 or 4 different stringers (each one is a separate part) and the configurator lets you choose things like the angle, length and height of the staircase by entering values for those in a form in the assembly. Once you are done entering the values, there will be an update button that will send all the parameters to the different parts that are in the assembly and have them change accordingly. Now, say I want the length to change. I enter a length and press update and here's my problem. To which stringer-part is it going to send the length to? I can make it send to all parts but that means that I have to write one line of code for each part and if I ever add a new kind of stringer, I need to check all the rules and new lines where needed. I would like to make this dynamic by having only one line in which the part name is the same as a parameter I have in my assembly
I can either write it like this: Parameter("Stringer1:1", "Length") = LengthParameter("Stringer2:1", "Length") = LengthParameter("Stringer3:1", "Length") = LengthParameter("Stringer4:1", "Length") = Length
But I would like to write it like: Parameter(""Assemblyparameter":1", "Length") = Length Where Assemblyparameter is a text parameter and simply the name of the part that is inserted.
When I choose, for example, stringer 3 in my form, Assemblyparameter will be Stringer3. This would save lots of time in the future whenever new parts are added.
A local search of my HD and a search on the subject here returned with zero results...
Where does one find the Inventor Sheet Metal Rules excel table for 2012 on a Windows 7 system?
All the documentation says it's located in the Documents and Settings directory, but Windows Vista eliminated that folder and thus it is not in Win7 either.
I can find the SheetMetalRules.xml file, but I need the excel table for modification.
I have a large collection of parts that are controlled from an exteranl rule. I need to make slight changes to the external rule, but for the changes to be successful I need two extra user parameters to be added to each of the parts. There are hundreds of parts, so going in and adding the two parameters to each would take days.
Is there a simple way of getting the external rule to add the two parameters?
P.s. My VB skills are pretty limited, but my understanding of iLogic is pretty good.