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 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.
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.
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 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 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?
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 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.
why this will not run as an external rule? It runs fine as an internal one.The error I get is object referance not set to an instance of an object?
'Updates rule when done iLogicVb.UpdateWhenDone=True 'Creates input list dialog box & allows the user to choose the state Product_Code=InputListBox("Enter Product Code", MultiValue.List("Product_Code"), Product_Code, Title :="Product Code", ListName :="Available Codes") 'Writes values to iProperty iProperties.Value("Project", "Cost Center")=Product_Code
Created in the template sheet metal rule. Why External ilogic rule is not working? User-valued parameter is created, sheet metal rule does not change.
name = ""For Each par In ThisDoc.Document.ComponentDefinition.Parameters.UserParameters If par.Name = "SMR" Then name = par.Name Exit For End IfNextIf name = "" Then Dim MyArrayList As New ArrayList For Each st In ThisDoc.Document.ComponentDefinition.SheetMetalStyles MyArrayList.add(st.Name) Next ThisDoc.Document.ComponentDefinition.Parameters.UserParameters.AddByValue("SMR", "", UnitsTypeEnum.kTextUnits) MultiValue.List("SMR") = MyArrayList Parameter("SMR") = SheetMetal.GetActiveStyle()End IfSheetMetal.SetActiveStyle(Parameter("SMR"))iLogicVb.UpdateWhenDone =TruePS:
I use Inventor 2010 with the iLogic Extension. My question is probably more VB.NEt-related than Inventor-related.
For my parts I usually have a main *.ipt that can receive input parameters and does some calculating with them. Then there are several 'slave' *.ipt that use the calculated parameters of the main.ipt. I would like to keep that structure. Using iLogic the slave.ipt's do some calculation, too, based on an external *.Vb-File. I load that file into the rules of the slave.ipts by using (for example) AddVbFile "External.Vb".
My question is if it is in any way possible to have it so that the name External.Vb can be dynamic? I tried using a new iLogic String parameter and storing the name of the external VB-File there so that I would have a Parameter Name = "External.Vb" and then use AddVbFile Name. But that sadly didn't work at all. My External.Vb is supposed to be unique for every copy of my assembly and having to write the correct name into the rule by hand is tedious.
I´m trying to create an external iLogic rule that let´s the user specify a path and saves an assembly and all it´s components into one directory. Alternatively it could be the main workspace path which doesn´t have to be specified by the user so it can be handled internally.
The background is a design template that resides on a network storage which can be configured through an iLogic Form and when the user is done configuring the assembly to it´s liking it should be saved to it´s workspace.
I was looking through the snippets but couldn´t find anything related to "save all". I have the feeling that I have to cycle through all component occurences and save them one by one.
Getting a Save As dialog box seems to be possible as I could see on Curtis Waguespack´s blog but the commands he is using are nowhere documented. For example for calling the dialog box he is using
My company has recently switched from the H drive to the G drive. This has resulted in a lot of old files still referring to the H drive where the External Ilogic rules used to be. I'm wondering if there's any automatic way to change that? Uploading a pic showing the event triggers as they are now.
Inventor 2014 Professional Windows 7 Professional 64 bit Intel Xeon E3-1240 @ 3.4 ghz Nvidia Quadro 600 8.00 gb RAM