AutoCAD Inventor :: ILogic Rule To Retrieve Part Number From Excel
Aug 15, 2012
iLogic rule that will retrieve a part number(s) from an excel sheet. I work for a company that built vacuum trucks and I'm trying to make an . I am template where the user can select different lengths of shells to achieve the desire overall length. I have been able to achieve this using iLogic rules and forms and making the shell length parameter multi value.
But now I need to show predetermined SAP part numbers for the shells in BOM or part list. I all ready have an excel sheet with shell sizes with corresponding part numbers on file. I also thought about incorporating our custom CC parts/shells that already have the SAP part numbers set up as a custom iProperty but might be to complicated for a newbie iLogic user.
I want to simply set a custom iproperty as the Description in each part file within my assembly. I can do this easily at part level with ilogic but I want to be able to run the rule from the assembly level and all the parts run the rule. I am struggling to find a way to do this.
I think this may be the best method I have found but I think it must be far easier?
I`m looking for the iLogic code that can change one parameter (user defined) for each (ipt) part in assembly (iam)
The one below doesn`t work.
Sub Main Dim oApp As Inventor.Application = ThisApplication Dim oAssy As Inventor.AssemblyDocument = oApp.ActiveDocument For Each oSubDoc as Inventor.Document In oAssy.AllReferencedDocuments On Error Resume Next Parameter(oSubDoc, "FH") = 15.26 Next End Sub
I would like to make an External Rule that would make an iLogic Internal Rule (with the same code every time). I guess what I really need is a way to drive an Ilogic rule into every part that does not have the rule in the part already.
I know what you’re thinking and just using the External Rule doesn’t work for what I want to do. I need it to be an iLogic Internal Rule.
is it possible to rename the browser node on part level with an iLogic rule? I know that in the assembly environment is an Inventor OOTB functionality to rename the nodes to the filename, Part number or the default value.
Inventor Professional 2011 Windows 7 Enterprise 64bit Dell Precision M4500 Intel(R) Core(TM) i7 CPU Q 820 @ 1.73GHz 8 GB RAM
I want a part number which is made with a parameter write to excel to the excel sheet to link to acad. I have the following code that runs smoothly and requires the excel sheet to save but get nothing written in the cell.
I'd like to create a part number generator using iLogic. The rule would run as follows:
If the iProperty "Part Number" was not blank or the same as the file name (as Inventor default), then a question box would pop up asking if you would like to overwrite the part number. If one were to select yes, then the following would happen.
iLogic would open an xls that is on the network. The xls would have two columns. Column A would be the part number, B would be the filename associated with that part number.
Column A (the part number) is a sequential count in the form of 6 or seven digits. The format would be something like =TEXT(ROW(A1),"JFRC-000000")
Everytime the part number generator rule is triggered, it would create a new part number on the next blank row, copy this part number to the Part Number iProperty and assign the file in which the iLogic rule was executed to column B in the xls, save and close.
If, when the rule is triggered, the Part Number property is blank or the same as the file name, the user would not be asked if they would like to overwrite the part number. This rule would be triggered manually from a form.
I have a part number that i want to defined in custom properties.
Then would it be possible to call it out in Ilogic? that way in any drawing doesn't matter where the part number will always be the same for that part when i balloon and the same in the BOM.
I have two user parameters saved in a part template that are tied to the part volume and an overall estimated part weight. The user parameter Pc_Volume is the volume in cubic feet and calculated by pulling the part mass (in cubic inches) and converting to cubic feet via ilogic rule. This is then automatically run via event triggers before a file is saved and if the part geometry has changed to keep the volume up to date. These are exported because they get pulled into iproperties of our drawing files as well as used to create a parts lists showing the volumes and weights.
I have the property formats of the user parameters set to Number and to unitless and the unit display turned off so it does not show on the parts list, with a precision of 0.000 for Pc_Volume. The Pc_Weight is set the same way however with a precision rounded to the nearest whole number.
These are created this way so when we use the part file as the template when we select "Make Components" to separate our parts and tie them to an assembly all the files are then updated and the information saved for exporting.
The problem is, the Pc_Volume always comes in rounded to a whole number. The Pc_Weight Does as well, but that doesn't bother me since we want it to do that anyway. If I would go into the part file after it's created, double check the precision and then re-run the rule the volume will show up with the correct precision in the exported parameters. I don't want to have to open each partfile however to get this to update.
Attached are images of the parameters, ilogic rule, and exported results.
I had wanted to find a way to engrave/emboss the part number on a part model and have it be parametrically tied to the part number iProperty. Since it doesn't appear that I can create a text box and insert the iProperty directly, here's what I did to work around this. (I setup my part templates to have this out of the box....)
1. Within, the IPT file, add a user text parameter called "PartNo" and set its initial value to any text value.
2. Create your sketch for your text to be engraved. Insert the User parameter you just created.
3. Create the engraving/embossing for your text.
4. Create the following iLogic rule:
' Requires a User Text Parameter called "PartNo" prior to running' Set the appropriate event trigger to tasteIf Parameter("PartNo") <> iProperties.Value("Project", "Part Number") ThenParameter("PartNo") = iProperties.Value("Project", "Part Number")InventorVb.DocumentUpdate()End If
5. I set this rule to fire using the "iProperty Change" event trigger. So if the iProperty is set or changed, your text will update. Obviously, you can set this to run with whatever trigger you like.
I need a way to run a rule which is saved in my top-level assembly using iLogic rule which is saved in a part file in the parent assembly.
I have even tried using an external rule in a txt file, but that gives the error "Component: This function can only be used in an assembly." - which makes no sense to me. I hope I am just missing something simple. I cant believe with all its other strengths, that iLogic would be so limited in that regard. Why is there not simply a snippet under the 'Run Other' that allows you to specify an assembly file and the rule name? (like there is for running a rule in a component from the assembly)
I am working for customer with a simple item with his iLogic design. He has created a simple form to modify his iProperties. To modify the current material, a multi-value parameter was created and the following rule as a local rule;
He is now trying to make this an external rule but gets the following error
Error in rule: Mat2, in document: Mat2.iLogicVb iProperties.Material: is probably a bad material name.
The more info tab says:
System.ArgumentException: iProperties.Material: is probably a bad material name. at iLogic.CadPropertiesInRule.SetDocMaterial(Document doc, String matName) at LmiRuleScript.Main() at Autodesk.iLogic.Exec.AppDomExec.ExecRuleInAssembly(Assembly assem) at iLogic.RuleEvalContainer.ExecRuleEval(String execRule)
I am trying to use iLogic to create the file types I need to give to my vendors once I have created a drawing.In the .idw file I have a rule that creates a .pdf file and .dwg file. I also want it to activate a rule I have in the .ipt file that creates a .dxf file.
trigger = iTrigger0oType=Left(ThisDoc.FileName(False),3)GoExcel.Open("S:DRAWINGSFolder Types.xlsx", "Sheet1")For rowPN = 1 To 200 If (GoExcel .CellValue("A" & rowPN) = oType) Then oFile = GoExcel.CellValue("C" & rowPN) Exit For End IfNextoFolder = "S:DRAWINGSNOT RELEASED" & oFileIf Not System.IO.Directory.Exists(oFolder) ThenSystem.IO.Directory.CreateDirectory(oFolder)End IfThisDoc.Document.SaveAs(oFolder & "" & [code].....
Some months ago I created an iLogic code that creates all my notes that I use in my drawings, linked to a form. A good tool the made my work a little easy. Now I wanna make an update on it.
In my code I create a sketchedSymbol and then some textBoxes with my notes, but before that I erase all the Symbols in all sheets and then the main Symbol itself. Then I create again the symbol and textBox in a specific point of my Sheet. So, everytime that I need to update my Notes, it goes to that point of the sheet, it's not a problem, but it's annoying have to move them always to the correct place. And i can't use a specific final point for the notes because it may change according to the drawing.
So, my idea is:
If the Symbol is already created, how can I get its position ?
I create the points with TransientGemometry and then CreatePoint2D, but I dont know how to retrieve these points, even if that is possible.
The code I use is that below (I just erase the notes because it was too big, this is just the main code creating the stuffs).
' Set a reference to the drawing document. ' This assumes a drawing document is active. Dim oDrawDoc As DrawingDocument oDrawDoc = ThisApplication.ActiveDocument'Update the document oDrawDoc.Update'apaga o symbol existente em cada sheet Dim oSheets
I want to retrieve dimensions in a drawing with ilogic. I found some code but how to translate it into a ilogic code.
I always use assembly models in these drawing and all the parameters have unique names. So in my drawing i want to retrieve some specific dimensions in a view.
Any information about using the floor command within iLogic. i have written the rule ok and it does not come up with an error. However the rule doesn't actually activate, as the component pattern it is set to gives it 7.6 ul. Inventor then automatically rounds this up, the floor rule should counteract this but does not.
I want to create a rule that will warn the user when the plate thickness they are using is not standard. I have already created a multivalue parameter for plate thickness, which lists all standard steel plate thickness's and also allows for custom values.
I was hoping I could create a rule that would prompt a dialogue box warning when the user creates a custom value for plate thickness.
I know this can be done, but like I said, Im bloody useless with iLogic and find it hard to come across relevent examples and/or tutorials online.
i have an iLogic rule in serveral files. Now this rule has to be deleted. This should be done with VBA. I can not find any function to delete a rule using VBA.
I found a function iLogicAuto.RunRuleDirect(rule), but not iLogicAuto.DeleteRule(rule) ...
I have an iPart which includes iLogic Rule. When I change iPart by table, iLogic Rules are not triggered.
In iLogic Utilities, there is a button "Rules Triggered by Events", If I use "Any Model Parameter Change", the update need long time, looks like Inventor is "No Response". I like the way "Material Change", but I need "part Number" change to trigger the rules. How can I do it? I tried other events as After Open, Before Save, etc, they are does not work.
I have a rule setup for drawings. I need the rule to first determine if the there is a flat pattern view present. In other words, if there is no flat patter view, I want to the rule to stop.
I am very green to ilogic and VB. Running Inventor 2013.
I've caught glimpses of how to do this (For instance, this plugin (Inventor LinkParameters) [URL]...... when trying to actually find information on any documentation of how to get from point A to point B. I can't seem to find anything about ilogic automation / rule creation / ilogic in general, in the object browser at all.
I know code like this exists
Option ExplicitSub RuniLogicRule()Dim iLogicAuto As ObjectSet iLogicAuto = GetiLogicAddin(ThisApplication)If (iLogicAuto Is Nothing) Then Exit SubDim doc As DocumentSet doc = ThisApplication.ActiveDocumentDim ruleName As StringruleName = "Rule0"Dim rule As ObjectSet rule = iLogicAuto.GetRule(doc, "Rule0")If (rule Is Nothing) Then Call MsgBox("No rule named " & ruleName & " was found in the [code].......
(and even fixed the error it gave me due to the original code leaving something out) , but any info on the GetRule method is.
I am currently trying to retrieve data from a MS Access Database, we currently have iProperties with number values in them. An outside programmer created a code which takes these values and exports them to an MS Access Database, where they are then translated to mean something.
Instead of exporting those numbers, I want to use them to find what they ACTUALLY mean within the database and bring that information back into iLogic. (ie. 123456 actually means "1/4 Flat Bar Steel")
In short, I wish to access the MS Access database through iLogic in order to read information from it.
I have searched for the better part of 3 hours but have not found a good answer or example code of this situation. I am not that experienced in programming, but have worked with the API before for developing Automated Drawings and have an understanding how to navigate through. If there were to be some example code, I can begin to understand the process quite well through this method as well by seeing how to go about coding this.