AutoCAD Inventor :: ILogic Driving Part Parameter From Assembly?
Oct 24, 2013
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.
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.
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.
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 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
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.
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.
How can I drive parts from an assembly level without using Excel spreadsheets. I know it is possible using iLogic to do it, but I can't figure out how to do it "automatically".
For example, we would like to drive a conveyor roller without the use of a spreadsheet. I figured out I could simply insert user-driven parameters in the top-level assembly and drive the parts with the parameters in the assembly, but it is telling me it would cause a cyclic redundancy, so I cannot do it this way, then I thought about iLogic.
It is currently working OK, but I have to enter in the iLogic rule to manually change the filenames in the rule for it to work.
Why? Mainly because we use a prefix to our parts and we sometimes use Autodesk Vault, sometimes not (depending on the project).
Here is my example;
I have a part named "Tube.ipt", "Bearing.ipt", "Spring.ipt" and "Tige Hexagonale.ipt" along with this code in the assembly level (Rouleau.iam):
As you may see, I would have to change "Tige hexagonale:1" every time we use this assembly on different project for it to update properly. I would like to automate it a little bit more.
How to make it work in iLogic:Search for something that has "Tube" in it's filename in this assembly, then store it into a variable called "Tube" Repeat this step for "Spring" and "Tige" Then replace "tige hexagonale:1" by the variable or something like this...
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 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 *.
How do I make multiple views (Front, Top, Side & Isometric) when driving an assembly constraint? I want to be able to show an assembly moving from different perspectives all at one time.
Inventor 2013 Windows 7 Professional 64-bit SP1 HP EliteBook 8470w Processor: Intel(R) Core(TM) i7-3610QM CPU @ 2.30GHz Memory: 16 GB AMD FirePro M2000 3D Connexion SpacePilot
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 ?
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
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?
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?
We have an iLogic assembly with to parts in it. Maybe to cylindrical parts. The iLogic rules should do the following.
1. Start a Rule after open document.
2. This Rule starts a Rule in the first cylindrical component.
3. This Rule ask the user for a diameter.
4. The assembly gives this new parameter value to the second component
5. Then the assembly calls another rule in the second component to change it with the new parameter
Everything is working fine when the following combinations are taking place:
1. I open up the assembly out of vault or from a local drive or an accessible server drive
2. I insert the assembly as sub assembly in another assembly from a local drive or an accessible server drive
It don't work with the following situation:
- I insert the assembly as sub assembly in another assembly out of vault
Then the user becomes the dialog "Choose a diameter" twice.
I don't know why, but I have the idea it has something to do with the functionality of inventor to insert a component more than once. If you insert a component in an assembly Inventor gives you the opportunity to add more than one occurence after each other.
change that behaviour? Maybe a switch to change that inventor "add more than one occurence" behaviour.
I want to be able to control the location/position of a component in an assembly. This is easy enough through the iProperties/Occurrence tab and then adjust the location of the X,Y, and Z offsets. Is this possible using iLogic? I have been unable to find a function to access via iLogic. Ultimately I am trying to translate a component about an axis not a pattern.
For example. I have Roperev=Roperev_1. Roperev_1 is determined by an excel equation. I need Roperev to produce a nominal number because this parameter dries a coil revolution and I need the revolution to be a whole number.
I can not just round the excel result because the excel result needs to be multiplied by 2.53 to get the resultant for Roperev_1
I have built a vb interface using a tutorial from AU. Now I would like to do the same without the interface.
Inventor uses ilogic to pass parameters to the dll - the dll does the number crunching & returns values to Inventor - no interface required.
The tutorial uses an OK button to fire values back & forth - how can I do this without a button? I would like this to fire in the background without a form appearing.
I know how to get a parameter into my list of custom iProperties.What I want to do is take the iProperty lbmass and add it to the list of user parameters. Is there any way to do this without using iLogic?