AutoCAD Inventor :: ILogic Access To Filename IProperty
Oct 13, 2011
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.
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 am trying to write a small standalone app in C# that I can run when I have an assembly document open. I want the app to iterate through all the parts in the assembly and set the iproperties. I am having some trouble accessing the iproperties however.
I want (for example) to set the "TITLE" in the "DOCUMENT SUMMARY INFORMATION" to be a concatenation of the part number and the description separated by a " - ".how to access these properties.
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?
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"?
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 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 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'm attempting to create a rule using iLogic, which reads the first two letters of either the File Name or Part number (Which ever is easier)i.e. if a part number was AB12345, I would want the code to recognize the "AB"...At which point I'm trying to use an If-Then-Else statement to modifiy the material of the part, dependent on the first two characters of the File name.
As an example, where the underlined portion is what i don't know how to If iProperties.Value("Project", "Part Number") Begins with "AB" Then iProperties.Material = "Steel" Else If iProperties.Value("Project", "Part Number") Begins with "AC" Then iProperties.Material = "Aluminum" End If
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 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.
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.
I am new to iLogic and trying to access the "Application Options" under the "Tools" tab. I am trying to grab some information from a couple of fields but it seems that I don't have the right coding or Snippets that indicate how I would do so.
I have a program that populates an access database with part parameters. Each Inventor part can look up its own parameter values from the database when supplied with a single parameter, the ID number of the database record. The ID number is derived from a blank part that the program also updates. So in a nut shell, the program populates the blank part's parameters with all database ID numbers that would make up entire assembly. Those parameter values are derived to all the parts in an assembly. This is by far the fastest most efficient way I've found to rapidly generate an entire assembly. In a matter of seconds I can have a new 1000+ part assembly.
The rumor that Inventor will eventually sever ties with VBA has put this whole process in jeopardy. So I have been looking into using iLogic to perform the same task of looking up the data from Access. I know that iLogic has Excel functions built into it, but because the original program is Access based (changes this is not an option) any way to use iLogic to retrieve data from Access.
how to access the drawing sheet revisions using Ilogic.My company is wanting to start making the default initial rev on a drawing a "-" and inventor does not like to keep this when brought in as a template.
So like normal I am trying to trick it into having the dash until a rev is actually added.
How to access the color for a particular hatch within a drawing using iLogic.
I would like to color the hatching for parts based on paramaters besides material.
ie.
Purchased parts = Green Hatch
Refrence = Grey Hatch
I would hope one could loop through the views looking for hatches, and once found, check the part they are associated with, then based on an "if then, change the hatch color and move on to the next pattern.
I would like to be able to use iLogic to get the value of the Comment field of a model's parameters. I have some text there that I would like to display in a sketched symbol. The attached image illustrates what I am seeking.
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.
I have a drawing of a sheet metal part with multiple sheets. I have named each sheet to reflect the nature of the views (general dimensions, detail views, flat pattern, etc.). I want the name of the sheet to appear in the title block, but I cannot seem to find the "Sheet Name" property anywhere. Can it be added to the list of the drawing or sheet properties, or is there another way to achieve this?. I do not want to have to use Custom Properties, and manually re-enter the names of each sheet.
I'm looking for a way to convert the iproperty value "volume" into length from known values in the part. I have an assembly which consists of 20 different typs of sheets which are rolled out in certain patterns. The width and depth of the sheet are known, and I would like to use the volume to find the length. The assembly is linked to an excel file so the values will change based on certain parameters. I'm using this as a check to make sure there is no error from the spreadsheet.