AutoCAD Inventor :: ILogic Code To Check File Name Matches Part Present In Drawing
Feb 15, 2013
At my company we use part numbers as file names for everything. for example, part number 09090P00100000, will be saved as 09090P00100000.ipt and will have a drawing saved as 09090P00100000.idw.
Within the drawing template file, i want to set up an ilogic rule that will check that the part present in the drawing corresponds to the file name of the drawing. This rule will run after saving and will just display a warning if the file names do not correspond.
I just need some code that will get the file name of the part displayed in the drawing. Note that we use iparts so the code must get the member file name and not the factory file name.
Dim oDrawingDoc As DrawingDocument
oDrawingDoc = ThisApplication.ActiveDocument
Dim oSheet As Sheet
oSheet = oDrawingDoc.ActiveSheet
[Code] ........
Autodesk Inventor Professional 2011
Windows 7 Enterprise, 64-bit
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'm wondering if it is possible to check-in drawing into vault using i-logic?
If you check-in a drawing into our vault, it automaticly exports a .dwf to a storage server. We also have a simple button for making .pdf of the drawing to sent to the customer.
What i want to ensure is that the .dwf file and the .pdf file are the same. So when i press "make a .pdf" the rule will save my document, make a .pdf and (if possible) check it into vault. So from that point the .pdf for the client and the .dwf on the server are the same.
I have found some code which extracts the part number from the iproperties of a model and adds it to the custom iproperties of a drawing but this will only work on iam or ipt files.
Here's the code, I added the lines referring to the docment type as an attempt to fix the error but it didn't work...
If (ThisDrawing.ModelDocument Is Nothing) Then ReturnIf ThisDrawing.ModelDocument.DocumentType = kPresentationDocumentObject Then modelName = IO.Path.GetFileName(ThisDrawing.ModelDocument.FullFileName)End IfIf
How to change the color of layer that will be used within a drawing files for special purposes.
Ideally the code will make the color Red, but change to Black prior to printing.
The "logic" behind the code currently is to differentiate a layer called "Burn" to a highly visible color for the purpose of review by others then, prior to printing, change the color to Black. The firm I'm currently working for uses gray-scale B sided printers only. The firm currently uses Blue for dimension and extension lines so to produce drawings that portray both type of objects "lightly".
I was wondering is there is a way to select an Inventor part file and see which assembly file or files that is is currently used in ? It would be extremely useful to be able to see a list of all the assembly files which are using one particular part so when modifying the part you would know which assemblies would change.
Product Design Suite Ultimate 2013 64-bit HP Z400, Intel Xeon W3550 3.07GHz 12.0GB RAM, ATI FirePro V4800 (FireGL)
I was looking for some iLogic Code for Inventor 2013 that would cycle through all the parts in an assembly grabbing the quantity of each part and setting it equal to the custom property "Qty" of each part.
Having a little trouble creating the for each loop and setting reference to each part without referencing each part by specific name.
I've attached an example of a workflow we use to make different instances of products.part1 gets assembled in assembly1 which then gets derived in part2 to receive a bend.We use assembly1 in one place and part2 in another.(this is a simplified example, made with IV2013 SP1.1)
In part1, if you add the thread feature, the "bend part" feature in part2 fails after updating.This also happens if you try to add a "bend part" to part1 AFTER the thread feature, if the bend is present beforehand it does work.
Having the bend before the thread feature in part1 doesn't work with our workflow, because we need the assembly1 to be straight.In short, the thread feature is causing problems with "bend part".
I can't say if this problem was present in previous versions or even in the previous service pack since we don't use this workflow that often, especially with threaded parts, but i hope this can get fixed with a hotfix.
I am building a custom batch update for our drawings to take border definitions as well as custom iproperties from a current template and push them into a specified inventor dwg file. I built a form for the users to select the template they want to import into a list of files they place in the form. The program opens the template, get's all the information (iproperties, border defs, etc... using the active document to get the document) then iterates through the list of the users doing the following for each file (also getting the active document to get the items in each file): open, replace border definition, insert any non-existent custom iproperties, save and close the file. It works great when I keep the open visible set to true for the files. When I switch the visible property to false for each one of the files I want to open I get an error similar to this: Systems.InvalidCastException: Unable to cast object of type 'Inventor._DocumentClass' to type 'Inventor._DrawingDocument'. at ---- then my button click event here.
Does inventor technically not see a document as an active document if the file is not visible when opened?
We have an idw package we use for Quality control. This idw has more than one sheet. Each sheet has a part placed on the sheet with dims.( DWF attached). Next we open DA inside of the file and run a report. (exported txt attached). I am trying to use ilogic the make the same report with a iLogic browser button pick. I have 2 codes (code examples on attached jpg) that i need to make into 1, or whatever works.
1st code Dim oDoc As DrawingDocumentoDoc = ThisApplication.ActiveDocument Dim oSubDoc As Inventor.Document Dim oPropSets As PropertySets Dim oPropSet As PropertySetDim oPartNumiProp As Inventor.Property For Each oSubDoc In oDoc.AllReferencedDocumentsIf oSubDoc.documenttype. [code]....
2nd code fileheader = "QAF Parts for Planning "fileheader1 = ThisDoc.PathAndFileName(True) 'first line header of txt filedescription = "Components to use for Nesting" 'use this variable in the body of the txtdelimiter = "," 'character to separate the names and values on each lineoWrite = System.IO. File. Create Text (ThisDoc.PathAndFileName(False) & ".txt")oWrite.WriteLine(fileheader) 'include the fileheader on the first. [code]....
I have set iLogic to change a rectangular pattern to a certain amount of occurrences depending on which is selected , i.e. 117 cavities, 140 cavities and 96 cavities. Only one is active (or unsuppressed ) at a time.
What I need to do is suppress the 4 corners of each pattern, considering there's only one pattern and is dynamic.
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
We use iproperties to describe our parts and have a 40 character limit. Is there any way ilogic could be used to check and possibly warn if an iprop field exceeds 40 characters?
Inventor 2010 Pro SP4, Vault Collaboration 2010 HP Z820 Xeon E5-2643 0 @ 3.3Ghz 16.0GB RAM Nvidia Quadro 5000
I need to create a form with several options, corresponding to parts to load/unload. Only 1 checkbox can be activated at a time, so when I check a check box, the others have to be unchecked. In VB this should be radio buttons, is it possible to have the same issue in iLogic with checkboxes ?
I have an assembly with parameters named the same as LOD's.
The parameters are set to equal the mass of the corresponding LOD's using ilogic.
If the LOD does not exist, I want to set the mass of the corresponding parameter to a value of zero.
I don't know how to check for the existence of the LOD and I'm not sure I can have three commands in the ELSE section.
Below is an example of what I need using a Parameter and LOD called EXTERNALS as an example.
If EXTERNALS LOD does not exist THEN Parameter("EXTERNALS")=0 ELSE 'activate the EXTERNALS LOD ThisDoc.Document.ComponentDefinition.RepresentationsManager.LevelofDetailRepresentations("EXTERNALS").Activate
I'm making some ilogic code for my new drawing templates and I'd like run part of the code only when the rule is trigger by the "after open document" trigger. Is there a way to check which trigger started an iLogic rule or would I be stuck making a second rule which is only triggered by the "after open document" trigger?
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
Is it possible to update an existing drawing to reference a new part or assembly file while maintaining associated views and possibly the annotation also?
I have tasks which require frequent subtle changes to assemblies. These assemblies will then be given a completely new file name, so it is no longer just a revision change but a new part altogether.
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 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]