AutoCAD Inventor :: ILogic Rule For Each Part In Assembly To Change Part Parameter
Apr 1, 2013
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 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 have a multi body part that I componented into an assembly. I am trying to get the assembly parameter in this case, "Height" to drive the parameters in the part model. I think I am using the right code but I get an error when I run the rule.
The commented code does not work. I want to be able to open a part and change its size parameters before i open the assembly. this code will run as an external rule in a new empty file.
If i can do it without opening the part, that is even better. Test can I open a part, change a param, then close part.
Dim fname As String fname ="C:Workspacemy_progchanF_BB_L.ipt" Dim pDoc as PartDocument = ThisApplication.Documents.Open(fname,False) pDoc = ThisApplication.Documents.Open(fname)
These are just attempts to find a syntax that works. I need the method to change the parameter.
I have a flange that I use iLogic and the parameters list to update the different styles. My problem is that my flange won't update until after I hit save and update. My other square flange is not this way. As soon as I change the parameter in my square flange it immediately updates. Is there anyway I can get my round flange to update immediately like my square flange? I attached pictures below.
Before using iLogic, I created lot of iAssembly and iPart. I could change iPart factory member when I need in iAssembly.Now, I want to move everything to iLogic.
how could I change the part by iLogic code?
For example:
I generated "Part1.ipt" and "Part2.ipt",...... (I have hundred of member)
In my assembly, sometimes, I need use Part1.ipt, sometimes I need use Part2.ipt.
Which is the iLogic Code I should to use?
Inventor 2009, WIN XP. Autodesk Inventor Professional 2013 (64 Bit) SP2 Windows 7 Professional Service Pack 1 Intel(R) Xeon(R) CPU E5645 12.0 GB Memory
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.
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.
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 am trying to acheive copying parameter from one part/assembly to another part/assembly document and this is what i came out with:
Private Sub CopyParamToTarget(SourceFile As String, TargetFile As String, ByRef ParamList As ListBox) 'Declares the variables to be used in this sub Dim d_target As Inventor.Document = Nothing, d_source As Inventor.Document = Nothing Dim t_transaction
[Code]....
I did another version for Inventor VBA in which is quite similar to this length as well . . .
Tried using ComponentDefinition instead but it does not have access to the Parameters list.
I'm trying to run a for loop to check a part's thickness parameter within an assembly but I do not know how to access that parameter from the assembly. Once I check that the thickness does not equal 1/4" I want to assign the sheet metal rule to be user defined. Here is what I got so far:
Dim SheetMetalRule As String = BODY_GAUGE & " " & SHEET_METAL_RULEDim assyDoc As AssemblyDocumentassyDoc = ThisApplication.ActiveDocumentDim partDoc As DocumentFor Each partDoc In assyDoc.AllReferencedDocumentsIf partDoc.ComponentDefinition.Parameters.UserParameters("THICK").Value = .25 ThenElse If partDoc.ComponentDefinition.Parameters.UserParams.Value <> .25 ThenThisApplication.Documents.Open(partDoc.FullFileName, False)SheetMetal.SetActiveStyle(SheetMetalRule)partDoc.SavepartDoc.CloseEnd IfNext
Im quite new to customizing inventor and have been playing around with I-logic. I can get I-logic to enter values into existing ipt paramaters when run from a rule within the idw. I can also get I-logic to create a custom Paramater within the ipt using some copied API code, however I dont know my way around API at all yet. So...
I was wondering if it was possible to create a custom part parameter from an ilogic rule run in an idw with that ipt featured?
I have an assembly inside of Inventor Studio. One of the parts inside of the assembly has a parameter that I would like to animate. When I select the "Parameters" function within the "Animate" tab on the ribbon, I get an error:
"There are no favorite parameters defined."
This worked fine when I tried the same thing with only the part inside of Inventor Studio, but not when the part is included inside of an assembly.
How to run iLogic Rule which I created for .ipt file in assembly?
As I have a myPart.ipt file with iLogic Rules which could create part1.ipt, part2.ipt, ..... (hundreds of them).
Now, I want creats iLogic Rule in myAssembly.iam to run the iLogic Rules in myPart.ipt in order I could create correct .ipt file to be used in myAssembly.iam.
I have the same ilogic part placed in the same assembly, and i am trying to drive two different configurations of the same part and when i apply the configuration it changes both of the parts but to only one of the configurations.
Is there a way to drive them seperately even though they are the same part.
I have made an iLogic external module who copy the iProperties from an Excel files, when i open the module from the *.ipt file il works perfectly. But i need this function from *.iam files.
Something like this: when i click with right button in one selected part of assembly i can open the module only for this part and when i save it save the change for all modify part of *.
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'm trying to write a script which would process all the ipt files within assembly and launch certain functions according to a ipt file type.
I've already made such script for dimensioning parts which work for standart parts but not for metal sheets.
Here it is:
Sub Main Dim oApp As Inventor.Application = ThisApplication Dim oAssy As Inventor.AssemblyDocument = oApp.ActiveDocument For Each oSubDoc as Inventor.Document In oAssy.AllReferencedDocuments If oSubDoc.DocumentType = kPartDocumentObject Then Dim oPartPropset As Inventor.PropertySet = oSubDoc.PropertySets("Design Tracking Properties") Dim oPartParam As Inventor.PropertySet = oSubDoc.PropertySets("Inventor User Defined Properties") Dim oParameter As Parameter For Each oParameter In oSubDoc.ComponentDefinition.Parameters oParameter.ExposedAsProperty = True Next oParameter If oSubDoc.SubType = "{9C464203-9BAE-11D3-8BAD-0060B0CE6BB4}" Then Dim d1 = Round(SheetMetal.FlatExtentsLength, 1) Dim s1 = Round(SheetMetal.FlatExtentsWidth, 1) Dim g1 = Round(Parameter("Grubość"),1) FindOrCreateProperty("Długość [mm]", d1, oSubDoc, True) FindOrCreateProperty("Szerokość [mm]", s1, oSubDoc, True) FindOrCreateProperty("Grubość [mm]", g1, oSubDoc,
[code]....
this code distinguishes parts from sheet metal, and launches appropriate functions to get their dimmensions. It just doesnt work for metal sheets somehow. Seems like SheetMetal.FlatExtentsLength is performed from within the assembly, not part as it should be. I must have the addressing wrong. I've tried many things and different functions but nothing works for sheet metal parts.
This code might also be useful for different purposes. I'm also trying to lunch some external scripts for each part within an assembly, but there is no direct function for that (there is one only for internal scripts , based within the file).
Is there a standard command or command sequence that allows for the changing of a parameter, say length, of a component from within an assembly. I'm looking to compile a code that allows for a template to be created, then that template will do changes based on text box input and then save out the modified parts with new part numbers.
I've done an Addin which contains a "Place iLogic Component" function. This funcion work properly and the iLogic form is opened at place component time. Now, i would like to be able to open the form after the insertion, for edition purpose. So, i'd like to open the iLogic form of an assembly component (occurence) with the context menu for example.
So, my question is : Is there a way to check if a part or an assembly contain an iLogic form and to open it through Inventor 2012 API ?
this code works for parts. But how to change it that it works for assembly? I would like to select a part and than change the value.
m_invApp = GetObject(, "Inventor.Application") ' Get the Parameters object. Assumes a part or assembly document is active. Dim oParameters As Parameters oParameters = m_invApp.ActiveDocument.ComponentDefinition.Parameters [code]........
I have received a great solution from Bobvdd allowing ilogic control of the view rep in a part file (not an assembly file). The code below works brilliantly when the part file is the active document. However when the part is placed in an assembly and the ilogic is run with the assembly active, the code produces no result. How to modify the top 6 lines of code?
Dim oApp As Inventor.Application oApp = ThisApplication Dim oDoc As Document
When we send 3D models to customers, we always derive the assembly to make it 1 solid part, so the customer cannot disassemble it to copy our product, and then save it as a step file.
I want to Derive an assembly to a part and then save it as a *.step file with an ilogic rule.
I worked out the last part, but i cannot find the Derive assembly code anywhere.
Im not an experienced programmer, i can only Copy paste, so if the solution is already posted in a simular rule, i will not be able to pick what i need from the code
In our drawing file we expose the mass of the part. So I have set the 'Update physical properties on save' in the 'Application Options'. This works fine when you save your file before switching to the drawing file. If you forget to save and go to the drawing file the mass is showed as: N/A.
Therefore I have created a rule which updates the mass of the part. This rule is activated with the 'Part Geometry Change' event trigger. This is done to update the mass in the drawing file even when the partfile is not saved. This works fine. If I make any changes to the model the mass is updated correct, EXCEPT for deleting features. When I delete a feature and switch to the drawing file the mass is shown as N/A again. So apparently deletion of any feature is not recognized as a 'Part Geometry Change' because the rule isn't triggered.
Wikihelp states that it's possible to get the COG of a part within an assembly.It doesn't seem to work anytime getting an error on some missing included references .do I need a Sub-Rule inside the single part?
Dear Sir, In particular project, when I insert part in Assembly file, It is inserted as a Tube & Pipe run part. so that It is not Grounded automatically. What is the settings by which I can insert as a normal part in assembly file ? I have attached herewith the JPG file also.
I would like to simplify this assembly into one seamless part for FEM calculation:The assembly consists out of parts that, in reality, will be welded together. Due to their form, there is no way to place them exactly onto each other, therefore there are slight gaps between the parts:
Now when I try to merge the assembly into one part via "simplify" --> "create simplified part" and choose "single solid body with seams between planar faces merged", Inventor does not fill these gaps (even though it displays only one part in the bottom right corner of my window). Unfortunately, the remaining gaps brings "contact" problems in the FEM simulation.
how to close the gaps and really merge the assembly into one part?