AutoCAD Inventor :: ILogic - Perform A CODE Using IProperty Information
Sep 17, 2012
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 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 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'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 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'm currently using Inventor 2012 and i need a macro (code): I want to know if it's possible to export all the information from the parameters list (everything, names, values, tolerances, comments...) to an excel spreadsheet or a txt file (it can be a table, or a CVS file, i just want that information!), from a part file (.ipt) or a drawing file (.dwg).
Currently, i can only export the parameters' names and values , but i can't get to the tolerance values and comments . . .
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 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 am looking for a way to log out of vault from within Inventor using iLogic codes. I have created an iLogic rule that automates export an assembly drawing and all sub component drawings. In my code, I have suppressed all Inventor prompts but I do not have a way to suppress Vault prompts. I can manually log off from vault and run this rule without any problems. However, if I forget to do so, I am stuck responding to update requests from vault and check out requests constantly for each and every file.
I recently created some iLogic based components. I wonder how difficult it is to protect the iLogic code, similar as VBA code which can be password protected.
The reason being:
1. Of course, to hide & protect the creator's modeling logic;
2. To avoid the relation between parameters being messed up by the end user unintensionally.
I did have the opportunity to raise the question during the Portathon event and the answer was that the protection not directly available, though the workaround could be mixing with some Inventor API coding in .NET.
However, this might defeat one of the benefits of iLogic, simple and ease to use, gentlr learning curve, especially for users with VBA experience. .NET might not be so easy for a lot of engineers from mechanical or other disciplines.
1 Disable the "Edit" button for iLogic components, including rules, forms, etc.;
2. Put all code that are to be protected in an external file, and then make that file unreadable (password protected, or other protection) to un-intended user, however, readable to those who have proper access privelege.
A while back I figured out how to put a few characters before and after several lines of code in iLogic to make it compress to one line or expand to its full size inside the code editor. I belive this is a fairly common VBA command, but I can't figure out how to do it again.
Inventor 2014 HP Pavilion dv6t-6b00 Intel Core i7 2670QM AMD Radeon HD 6490M 8gb RAM Windows 7 64 bit 3Dconnexion SpaceExplorer
How to close an application (*.ipt & *.iam) by ilogic code?I tried to use...ThisDoc.Document.close (True) to close it.Indeed, it can close the application, but there is an error occurred as following:
Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))
how to avoid this error or any other way to close (or exit) the application?
I am trying to use a code window plugin on my website, and would like to create a temple for iLogic code. Is there any way to output iLogic code in a format that would work?
I cannot modify any of the existing templates because iLogic requires information as to whether to make some text brown or blue, and it would need some form of output to do that.
[URL]
The instruction page is here: [URL]
I have been manually highlighting or using images, but both have their problems. (cut & paste will lead to a pile of errors with the manual highlighting). I can create the css file, but need some form of output beyond cut & paste to work with.
If something is worked out, it will be added to the program and be available to everyone free (this is a Wordpress plugin).
[URL]
Self built computer with;
Quad core processor 16 gigs ram Raptor Raid main drives 2 x 1TB Caviar Black storage drives local 2 x 1TB Caviar Black storage drives network backup
Main Software; Product Design Suite Premium Windows 7 Home Premium [URL]
I have a iLogic rule for saving drawings (dwg) to a pdf file in a designated folder. Everything worked well until this Monday morning. Now I get the message: Error in rule: Save2PDF, in document: 13006-027 propflens-1.dwg Value cannot be null.
However, I have one iLogic routine that is giving me an error whenever I run it. Selecting continue allows it run as expected. Basically, it is to remind designers to set the material type to other than “Default”.
Here is the Materialsddd = 0' deleted parameter materialName = ThisDoc.Document.ComponentDefinition.Material.Name If materialName = "Default" Then MultiValue.List("MName") = iProperties.Materials MName = InputListBox("Select Material", MultiValue.List("MName"), Mname, Title := "Select Type", ListName := "MM List") iProperties.Material = Mname iLogicVb.UpdateWhenDone = True The Parameter MName does exist as a mulitlist parameter.
I was working with ilogic, Adding a new rule and all of a sudden I got an error and when I double click on a parameter to add it to the code, the format changed.
It used to look like this when I added a parameter: Parameter("vertical seperation:1", "partitionthickness") but now when I double click on a parameter I get this: vertical seperation.ipt.partitionthickness
Also when I right click on a parameter and select display current state, It does the same thing, for some reason the code does not display like it used to.
I got an error when this first happened and I tried reproduce the error again but it did not appear again. This affected all my parts and even in different projects.
I re installed inventor because I thought there might be a file link broken but it did not fix it.
I have put together some ilogic code which is embedded within a part template, this auto populates the iproperties with the profiles length,width and thickness, and also automatically updates when any changes are made to the said profile When I hit save.
This works a treat when creating new parts, the problem arises when re-using old parts from previous jobs (Which is a regular occurrence),prior to when the code was created.
So I have to run the code as an external rule, but this has caught me,and a few other people out, as we have forgotten to run the rule after making a change to the part so the iproperties aren't automatically updated.
My question is, is there a snippet of code that I could add to my code, which embeds the the externally ran rule to the Ipt?