AutoCAD Inventor :: ILogic To Populate Iproperty From Multi Value Parameter
Nov 3, 2011I am struggling to find the right ilogic to extract the state of a multi-value text parameter and use it to populate a single i property.
View 1 RepliesI am struggling to find the right ilogic to extract the state of a multi-value text parameter and use it to populate a single i property.
View 1 RepliesHow to set multi parameter, iproperty using ilogic (or smth else)?
I hav eparameters: d1=50, d2=100, d3=5. I need to set a new multi parameter/iproperty that the final value is:
Angle 50x100x5 (suppousedly code should contain smth like: "Angle", "d1", "x", "d2", "x", "d3") but I do not know exactly...
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?
View 8 Replies View RelatedIs there a way to create a multi-value parameter with ilogic?
Inventor Pro 2013 (PDS Ultimate)
Vault Pro 2013
Windows 7 64
Xeon 2.4 Ghz 12GB
In the parent assembly a text iproperty exists called "child list". I would like to set this value via an ilogic rule that does the following:
For each child in the assembly where paremeter "include" = true, add the value of iproperty "filename" to a comma delimited list that will become the value of text Iproperty "child list" in the parent assembly.
The result should look something Like iproperty"child" = "filename1,filename2,filename3,filename4, etc..."
The rule must iterrogate all children, both parts and assemblies, and must go beyond 1st level children.
The output does not have to be comma delimited but must be delimited with something (eg tab, :, etc..)
The number of children is unknown
Is there a character limit imposed on a text iproperty?
How to populate an Inventor Multivalue PARAMETER using a For cycle in iLogic according to a variable index corresponding to a different number of array items?
for example:
i grab some data from a Rule and populate an Arraylist variable. I trace the number of instances using a counter. after the data acquisition I want to populate the Multivalue Parameter with the acquired values.
No problem browsing the Arraylist parameter: MyArraylist.(Index)... but what about the Multivalue parameter?
the MultiValue.SetList("Multivalue Parameter", Value 1, Value 2, ... , Value N) provide a defined number of data and cannot be set dynamically according to an Index.
I am trying to use an iLogic rule to populate iProperties (some generic, some custom) from a part number spreadsheet (containing columns such as PART NUMBER, DESCRIPTION, FINISH etc) and the rule keeps throwing up the following error 'Conversion from string "" to type 'Double' is not valid.'
Here’s part of the code (would be extended for the required custom iproperties but I’m assuming the same principle is ok)
StartRule:
'read excel file
GoExcel.Open("C:DESIGNDocumentsEXCEL FILESPART NUMBERS", "PARTS")
'index row 3 through 10000
For rowPN = 3 To 10000
'find first empty cell in PART NUMBER column (Column A)
If (GoExcel.CellValue("A" & rowPN) = "") Then
[code]...
Changing the format of the excel data (number or text) has no effect. Is manipulation of the format required so that Inventor can read text and numbers to iProperties in this way?
I have a template part that I would like to save automatically once the parameters dialog box is closed. I would also like the Save As filename to automatically be filled in with a iProperty named "Part Name". I already have the "Part Name" description grabbing information from parameters. Is this possible? And is the best way to trigger the event after an "iProperty change" or "Any Model Parameter Change"?
View 1 Replies View RelatedI am trying to find an ilogic for part proparty entry as soon as I create new part/assy.
I know it is possible by Event triger-> New Document .
I am migrating our old Inventor data to our new system. I will do an ilogic script for that.
I know how to add custom iProperties with iLogic but how can I remove them? Is it possible with iLogic? I would like to clean out all old iProperties that we don't need anymore.
I am trying to use the iProperties.Value("part1", "Summary", "iProperty") function to get the filename or complete filepath of a component within a subassembly. I know that these iProperties exist because I can insert them onto a drawing, and I see them in the general tab of the iProperty window.
However, when I try something like:
filename = iProperties.Value("part1", "General", "Filename")
I get an error message indicating that the General tab can't be found. How might I go about getting this filename iProperty, or is there an easier way?
I want to use Ilogic to construct a code part name.
My question is perform a code of about 12 characters. For example the parameter "Lenght" is 600mm but in the expressione result It must be "000000000600" (a string of 12 characters)
I've been using iLogic. I'm creating a template assembly that will be used for multiple jobs. Therefore, the job number will be changing. I want a custom iProperty in ALL parts and sub-assemblies (cleverly call it "Job #" maybe) that I can include an a separate property called "Drawing #" which whose value will be [some text]-<Job #>-[some more text]. I want to be able to update all the "some text" parts manually for each component, but I want the Job # to update automatically. I need this property because I have a column in all my Parts Lists called "Drawing #" which tells the drawing number for any given part or assembly.
Ultimately what I want to do is open a text or Excel file, enter the job number, open my Inventor drawing, and have every Drawing # entry in every parts list magically update to the correct job number.
I've managed to use iLogic to do just that with a single .ipt/.iam file. But I have dozens upon dozens of components in the main assembly. I'd like to run some rule or hit some button or do something that will cause the Job # property to update for ALL sub-assemblies and parts, so that all my parts lists reflect the change.
I am after writing part of rule for ilogic,i need the rule to fill out a custom property with information for me. I have a part that has 2 parameters
parameter 1 = Frontplanangleparameter 2 = Endplanangle
Custom property
iProperties.Value("Custom", "DESC2") =
I need the rule to examine both parameters and if both angles = 0 then DESC2 = ""And if any parameter >0 then
iProperties.Value("Custom", "DESC2") = bevel
Is it possible to add the iproperty summary, comments to a ilogic form?? Can't find it in the list..
Autodesk Product Design Suite Ulitmate 2012 Sp1 / Vault Collaboration 2012 Sp1
HP EliteBook 8560w
Intel(R)Core(TM) i7 CPU Q 720 @ 2,0GHz 2,0GHz
16GB RAM
Windows 7 X64 SP1
I found this code to create a custom iProperty in the current, open document:
Dim propertyName As String = "MyProperty"Dim propertyValue as String = "Test Value"customPropertySet = ThisDoc.Document.PropertySets.Item("Inventor User Defined Properties")Try prop = customPropertySet.Item(propertyName)Catch ' Assume error means not found customPropertySet.Add("", propertyName)End TryiProperties.Value("Custom", propertyName) = propertyValue
I have a iLogic rule that goes through each component of an assembly, counts how many times it occurs in the assembly, and then assigns that value to an iProparty (i.e. it inserts the total quantity of the part in some iProperty). Currently, however, it assigns the value to a default iProperty value, "Authority". I'd like, instead, for it to assign it to a custom iProperty called "Total QTY". However, I don't know how to tell Inventor to do the above code for a component in the assembly rather than the assembly itself. Below is my entire code. I've labeled where I'm guessing the above code should go. How I'd modify the above code to create the iProperty in the component being processed by the rule at that point?
Current
''True comment: Begin '''Commented-out Begin '''PartDocumentObject = 12290''AssemblyDocumentObject = 12291Dim openDoc As DocumentopenDoc = ThisDoc.DocumentDim docFile As DocumentIf openDoc.DocumentType = 12291 Then''If the open document is an assembly:''For each document referenced in this document:For
[code]......
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.
Inventor 2014 64-bit SP1
Win 7 Pro 64-bit SP1
I created the following user parameters:
-Thickness
-Width
-Length
-Dia
I then created a Custom iProperty which consisted of the following "formula": Finished Material Size = <Thickness> x <Width> x <Length> Lg.
eg. of Finished Material Result : Finished Material Size = 6 x 25 x 300 Lg.
The problem comes up when dealing with diametrical components as the above formula will only populate for square or rectangular parts. Which would work if I could use iLogic code to populate the Finished Material Size iProperty. I have tried but failed.
First I created another user parameter called "Geometry Type" which has a drop down selection of either "DIA" or "SQUARE, RECTANGULAR".I then created the following iLogic code to set 0 as the value for the "unused" size parameters
If PART_GEOMETRY = "DIA" Then WIDTH = "0"If PART_GEOMETRY = "DIA" Then THICKNESS = "0"If PART_GEOMETRY = "SQUARE, RECTANGULAR" Then DIA = "0"
The part I just can't get to work is as follows.
I need some iLogic code which will populate the "FINISHED MATERIAL SIZE" custom iproperty with one of the following based on my "GEOMETRY TYPE" selection. "DIA" would return the following to "FINISHED MATERIAL SIZE": = Ø <Dia> x <Length> Lg.
While "SQUARE, RECTANGULAR" would return the following to "FINISHED MATERIAL SIZE": = <THICKNESS> x <WIDTH> x <LENGTH> Lg.I tried the following code but it does not work:
If PART_GEOMETRY = "DIA" Then iProperties.Value("Custom", "FINISHED MATERIAL SIZE")= "Ø"DIA "x" LENGTH "Lg."If PART_GEOMETRY = "SQUARE, RECTANGULAR" Then iProperties.Value("Custom", "FINISHED MATERIAL SIZE")= THICKNESS "x" WIDTH "x" LENGTH "Lg."
I want to have a Blank size custom iproperty using flat extents length and width this is what i did but gives error is there a way to get this to work the way I want it to? I dont want a Length and width to be seperated would like it all in one.
iProperties.Value("Custom", "BLANK SIZE")=Round(SheetMetal.FlatExtentsLength, 3)"X"=Round(SheetMetal.FlatExtentsWidth, 3)
I created a sketch that I would like to use in an iFeature. The sketch dimensions are controlled with an ilogic rule referencing a multi value text user parameter, eg the text parameter pull down menu controls the size of the part.
Is there an easy way to get this parameter into an ifeature or derived part?
I have an iLogic template part that has a multi value parameter. In this case the product code can be selected from a list of 4 codes. In futre we may need 5 and the 5th may need to be available to older parts.
I would like to avoid having to add the 5th as an option to every part we've ever made when the 5th becomes required.
I'd like to have the list of codes stored in an external file (Possibly an xml) and the template part reference that file to acquire it's list of available codes. That way I can add codes to the xml and all the files will have their list of available codes updated.
IV2012 API with VB:
How can i add an item to a Multi-Value-List of an existing User Parameter in Inventor2012 (Accessing API with Visual Basic) ?
My idea is for example:
uParams.Item(i).ExpressionList.AddItem(As String)
The problem is, that such a function "AddItem" doesn't exist.
I have a Multi-Value Parameter "MV" that I want to populate using a Named Range from an Excel file that is already populating other parameters for the same file.
I currently have the file working by populating "MV" by using the snippet from iLogic below...
MultiValue.List("MV") = GoExcel.CellValues("filename.xls", "Sheet1", "A2", "A10")
The reason I don't like this method is because if ever that range changes... all the iLogic code will have to be updated as well. How to set a Multi-Value Parameter using a Named Range from an Excel file? I assumed the below snippet would work but I am receiving
"Array was not a one-dimensional array." as an error.
MultiValue.List("MV")=GoExcel.NamedRangeValue("Named_Range_Value")
I'm looking to see if there is a way to link the revision number to a custom iProperty in the same part. Our laser requires a specific output for programming, but I only want this to show up on actual lasered parts as we don't need it on parts that are sawcut. Basically what I would like to do is create a custom iProperty that I can link to the title block for that reads RV:<Revision>. Is there a way to do this? I'd rather not create a separate drawing template for lasered parts as we've got about 100 templates for our various customers the way it is.
View 6 Replies View Relatedhow to round a parameter using ilogic.
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
When I import a part from content center, a tube in this case, I get a length parameter called <PL>.
I am using this parameter in the parts lists, so it shows "=Outer diameter x thickness x <PL>"
However I don't want trailing zeros, leading zeros or units string to be shown.
I know I can open the parameters window, right click the parameter, then click custom property format and then uncheck these boxes and its fine.
But I want to know if there is a smarter way to do this, like creating a rule to execute on all the parts?
I have around 500 pipes with the parameter <PL> that needs to be changed.
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 have several part models that are very simple and are basically long cylinders. I want to create an external ilogic rule that i can run in each part file that can identify the largest sketch parameter dimension. So basically it will find the Length of the cylinder due to it being a larger dimension and then rename the parameter.
I could just name the cylinder length sketch parameter the same in each part file, but I wanted to attempt to make it more universal for all users. So if a new user forgets to properly label his part parameters, the ilogic program can identify what parameter it should be looking for and rename it properly.
In 2009 Inventor iLogic, we have a button to delete all parameters and rules. But now, in 2013 Inventor iLogic, I only find a button to delete all rules. Where is the button to delete all parameters?
View 9 Replies View RelatedGet the i-logic parameter tab on ribbon. I am not able to locate that in my 2013 version.
have a look on attached image.
I am trying to populate a multi-value user parameter with a list composed of the various materials available from the iProperties "Physical" tab. So far I have this:
For Each material In iProperties.Materials
Bracket_Material.Items.Add(material)
Next
iProperties.Material=Bracket_Material
Running the Rule gets this error message:
Rule Compile Errors in Material_Rule, in _Mounting_bracket.ipt
Error on Line 2 : 'Bracket_Material' is not declared. It may be inaccessible due to its protection level.
I think I am doing the "Bracket_Material.Items.Add(material) " line wrong, but I don't know enough VB to fix it. It seems to me it IS declared in the Parameters table - isn't adding the parameter to the parameter table sufficient to declare it?
Eventually I want to add the Bracket_Material Parameter to a form so the user can select material from drop down list and assign it to part.