AutoCAD Inventor :: ILogic Rule To Change Parts List Style
Jul 2, 2013I need an ilogic rule to autmoatically change the style of the parts list in a drawing file.The parts list style already exist in the drawing.
View 2 RepliesI need an ilogic rule to autmoatically change the style of the parts list in a drawing file.The parts list style already exist in the drawing.
View 2 RepliesBelow are 2 rules that run in succession to create and save a parts list from a base view in a drawing.
I am now trying to set the parts list style to a custom style, ideally while creating the list.
Also, I have to manually go into the list to turn off visibility of certain items (based on material), does I can do this with Ilogic? I ask because these steps precede a rule that automates placing base views of all parts in the parts list. If I could get the style and visibility right, I could automate the entire process.
Looking for changing such a style with ilogic?
Inventor & Vault Pro 2012
Windows 7, 64bit
Core i7 920@2.67
8GB
CREATE PARTS LIST____
' Set a reference to the drawing document.
' This assumes a drawing document is active.
Dim oDrawDoc As DrawingDocument
oDrawDoc = ThisApplication.ActiveDocument
'Set a reference to the active sheet.
[Code] .....
I am trying to make an iLogic rule that gets mutliple strings from different places, and prints them to a user property in the Parts List.
My ultimate goal is to print the drawing number, sheet number and the item column value to the user property with the format being...
"XXXXX-X-X"
So far, i can get the drawing number from an iProperty and the sheet number easily. But im getting stumped on obtaining the item coloum value and printing it to the same row.
This is what i have so far...
Dim DWGNUM As String = iProperties.Value("custom", "DWG Number")
SheetNumber = Mid(ThisDoc.Document.ActiveSheet.Name, InStr(1, ThisDoc.Document.ActiveSheet.Name, ":") + 1)
MessageBox.Show(DWGNUM+"-"+SheetNumber, "DXF Number")
And print the message box output to a column in the parts list
I Created an iLogic Rule that sets up some parameters.
I want to Automatically opens each and every Part in my assembly, run this Rule, and then save it without me having to do so manually.
I made an Part with iLogic rules, let's call it "iLogicPart". The rules inside could create lot of different part by my input.
I want save the different parts to different name as "Part 1", "Part 2", etc. I used SaveAs to get them.
My question is: I want to delete all rules and parameters in the saved parts as "Part 1", "Part 2". And I have lot of features (the name is hard to track) which are inactive, I want to delete them at same time too.
I could manually do so, but I want to use rule to do so automatically.
I have used Inventor for quite a while but never for much more than the odd 3D model.
I have recently created templates that allow me to use Inventor to create detailed fabrication drawings rather than relying on AutoCAD. But I have run across a question with regards to the BOM. Let me try and explain my issue.
I currently create assemblies for fabricated items. However, in the complete (or top level assembly) there may be multiple fabricated items (assemblies required). At the moment I create the BOM and manually edit the quantities required to reflect the number of assemblies (and resulting parts) that are required.
In my assembly file I created a parameter called "AssemNo" which is meant to reflect the number of assemblies required. In my part files I created a parameter called "AssemQty". I would insert the following iLogic code for each part in the assembly:
quantity - This.BOM.CalculateQuantity("Model Data", "PartNumber")*AssemNo
Parameter("Part Name:1", "AssemQty") = quantity
This works but it requires me to create that line of code for every part in my assembly. I know an iLogic code can be created to search an assembly and change parameters of all parts (see below as an example to copy Occurence name to iProperties >
' set a reference to the assembly component definintion.
' This assumes an assembly document is open.
Dim oAsmCompDef As AssemblyComponentDefinition
oAsmCompDef = ThisApplication.ActiveDocument.ComponentDefinition
'Iterate through all of the occurrences
Dim oOccurrence As ComponentOccurrence
For Each oOccurrence In oAsmCompDef.Occurrences
Dim oName As String
oName = oOccurrence.Name
iProperties.Value(oOccurrence.Name, "Project", "Part Number") = oName
MessageBox.Show(oOccurrence.Name, "iLogic")
Next
Can the two be combined?
I am after a rule to change the unit type of all .ipts from cm to mm.
This has to go down to all levels in hierarchy but only change .ipt files
I can't for some reason get this rule to work, simply want to be able to choose what title block to use.
I created a text parameter with the multi-values: TES ELE and TES EQU
I have 2 title blocks in my template called TES ELE and TES EQU
Here is my code, basically, I want to rule to apply the title block based on the selection, which will be done on a form.
If Title = "TES ELE" ThenActiveSheet.TitleBlock = "TES ELE"ElseIf Title = "TES EQU" ThenActiveSheet.TitleBlock = "TES EQU"End IfInventorVb.DocumentUpdate()ThisApplication.ActiveView.Fit
I have found many threads in this forum and have used their solutions for this rule, but for some reason, my rule will not select the title block and place it in the drawing.
Here is a snap of my set-up and my template file is attached
Inventor Professional 2014-Update 2 - AutoCAD Electrical 2014
Win7-x64 | ASUS P8Z77-V | i7 3770 -3.4 GHz | 32GB RAM |
240GB SSD | nVidia GTX 670 4GB - 320.49
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
My company has recently switched from the H drive to the G drive. This has resulted in a lot of old files still referring to the H drive where the External Ilogic rules used to be. I'm wondering if there's any automatic way to change that? Uploading a pic showing the event triggers as they are now.
Inventor 2014 Professional
Windows 7 Professional 64 bit
Intel Xeon E3-1240 @ 3.4 ghz
Nvidia Quadro 600
8.00 gb RAM
I create a thread here: and I have most of what I require, but for some reason I can't iLogic to swap my title blocks within my drawing template.
View 3 Replies View RelatedI curently have a rule that generates a part list automatically in a drawing. the problem is that I want the rule to be continuisly running but it keeps generating 2,3,5... parts lists. I need an if statment to check if a parts list already exists.
iLogicVb.UpdateWhenDone = True On Error Resume Next ' Set a reference to the drawing document. ' This assumes a drawing document is active. Dim oDrawDoc As DrawingDocument oDrawDoc = ThisApplication.ActiveDocument 'Set a reference to the
[Code].....
im trying to programatically add a parts list into a drawing whilst programatically creating the drawing - the code works fine without the parts list code. The error its showing is 'Parameter incorect' on the line that sais PartsList.add(... In the past when ive got this error with other code it has been because ive used an incorrect parameter (e.g. decimal instead of an integer).
My error is somewhere inside the oPartsList.add(>>ERROR SOMEWHERE HERE<<<)
oDrawDoc = InvApp.Documents.Add(Inventor.DocumentTypeEnum.kDrawingDocumentObject,AssyTemplate,True)
oSheet = oDrawDoc.Sheets.Item(1)
[Code].....
I need to generate an iLogic rule exporting Parts List (not BOM) from a IDW to a specific folder in XLS format.
Using Autodesk AutoCAD Inventor 2011
I have got some ilogic code that i have patched together to sort my parts list in inventor which works great but it will not update all sheets at the same time as when we design we have multiple sheets with parts list on and the odd one without.
add to this code to update all sheets partlists and also recognise that some sheets will not have partslists on so this will need to skip.
below is code that is used to sort
Format:HTML Format Version:1.0 StartHTML: 165 EndHTML: 4558 StartFragment: 314 EndFragment: 4526 StartSelection: 314 EndSelection: 314
SyntaxEditor Code Snippet
Format:HTML Format Version:1.0 StartHTML: 165 EndHTML: 4558 StartFragment: 314 EndFragment: 4526 StartSelection: 314 EndSelection: 314
[Code] ...........
Is it possible to create a drawing parts-list style from a built parts-list in the drawing?
View 4 Replies View RelatedStandard Text Style and Height used on a Mechanical Drawings Parts List "B Size".
IV 2012 Pro-Suite / VP 2011
Windows Vista Enterprise - 64 Bit
Precision Workstation T7500
Intel (R) Xeon (R) CPU - E5504 @ 2.00 GHz (8 CPUs)
12284 Mb Ram
Dual Quadro FX 5800
I am trying to piece together some code for an ilogic rule. This rule should look for a drawing view that is a flat pattern, if it finds one it should change the object layer to our "CNC" layer.
View 3 Replies View RelatedI am creating a drawing controlled by ilogic. The assembly can vary in size considerably so I have set the IDW to change between sheet size A3 and A2 accordingly using ilogic. However, when the sheet size is changed, the parts list stays in a static position.
Currently, the parts list is situated in the top right corner up against the title block and the border. So when changing from Size A3 to Size A2, the parts list ends up in the middle of the page. Is there anyway i can control the position of the parts list so it changes with the sheet size change?
I know I could simply move the partslist to the bottom left corner, which is a work around. However, I'd like to be able to keep the drawings in line with the company standard.
I am Trying to add the category Field to the parts list, if a sting exists in the field. I want to run this as a rule at the Drawing Level. I can check if there is a sting in the Category Field But not sure how to add this in the Parts List.
View 4 Replies View RelatedWithin an IDW file, you can go to the Styles Editor, then click on a standard. On the General tab, there's a drop down for the unit of length.
Provide the code so that I can change this setting from Inches to mm with an iLogic rule?
At my company when producing drawings for manufacture we require a sheet for any steel profiles to be cut!..We do this by selecting the assembly from base view,hitting model view tab, selecting presentation and choosing the relevant profile from the drop down!
Once the profile is placed, we highlight the view and hit the parts list tab which obviously creates a parts list, but for the whole assembly, we then have to edit the parts list by turning off the visibility of the lines of all the parts which are not relevant!!...as you can imagine this is quite a laborious task if you have 50 different profiles.
The reason for this is to show the qty, steel grade and part number to the suppliers. My question is, any code that will take the lines of the parts list that are not relevant to the selected view and turn the visibility of those lines off?
I'm trying to create an iLogic rule that will print a text string to a cell or coloum of a parts list in inventor.
My code so far...
Sub Main()
On Error Resume Next
Dim oDrawDoc As DrawingDocument
oDrawDoc = ThisApplication.ActiveDocument
[code]......
I want to print what is in the Message Box into a cell in the parts list, and i am stumped. The cell i am trying to print to is a user property in the Parts List.
I want to be able to have All Work Planes set as 'Invisible' but create a Message.box or Icon that allows me to change the Visibility of any individual workplane(s) physically selected in the browser.
A rule written by another member should do the trick if the following line could be altered so as not to read 'For Each' oWorkPlane but instead for 'Each Selected' oWorkplane.
'For Each oWorkPlane In docFile.ComponentDefinition.WorkPlanes'
'get user input
oInput = InputRadioBox("Select workplane visibility:", _
"Turn ON workplanes for all components", "Turn OFF workplanes for all components", "False", "iLogic")
'Define the open document (top level assembly)
Dim openDoc As Document
openDoc = ThisDoc.Document
[code]....
I'm trying to create an iLogic rule that will print a text string to a cell or column of a parts list in inventor.My code so far...
Sub Main()
On Error Resume Next
Dim oDrawDoc As DrawingDocument
oDrawDoc = ThisApplication.ActiveDocument
[code]...
I want to print what is in the MessageBox into a cell in the parts list, and i am stumped.The cell i am trying to print to is a custom property in the Parts List.
Is there a way to invoke the iLogic Rule Editor and pass it an existing rule name or external rule for editing?
View 4 Replies View RelatedI need a way to run a rule which is saved in my top-level assembly using iLogic rule which is saved in a part file in the parent assembly.
I have even tried using an external rule in a txt file, but that gives the error "Component: This function can only be used in an assembly." - which makes no sense to me. I hope I am just missing something simple. I cant believe with all its other strengths, that iLogic would be so limited in that regard. Why is there not simply a snippet under the 'Run Other' that allows you to specify an assembly file and the rule name? (like there is for running a rule in a component from the assembly)
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?
[URL].......
We use different types of sheet metals, from stainless to bronze, and different thicknesses.
Currently, in order to show the correct material on a parts list, I have to duplicate the material Stainless Steel, and rename it to say 20 Gauge Stainless Steel. Then again for 16 Ga, 14Ga, 12 Ga, etc...
I'd like to have the parts list show the common material such as "Stainless Steel", with another column for the sheet metal style such as "20 Gauge."
We also use items such as Plastic Laminate. I'd like to create a generic material for the physical properties of "Plastic Laminate", and then change the material appearance to say "Formica #1234 Walnut". Again, i'd like to be able to put this in (2) columns on the parts list.
I have a macro that I acquired somewhere (possibly these boards, can't remember now) for placing a parts list. I have modified it somewhat to change the location on the sheet where the list gets placed, as well as a sub that starts the autoballoon command afterward.
The macro is set up to place the parts list in the upper left corner, by adding the parts list width to the Mini Point of the border. This works perfectly well, except that we have two parts list styles, and they are differently sized.
What I would like to do is have the macro detect the parts list style, and change the offset value depending on which style it finds. I am an extreme novice with the API, who basically knows just enough to tweak sample code a bit, and have not been able to find anything close enough to use as an example.
How I should go about this, or even post some samples of something similar? Current code is shown below.
Public Sub CreatePartsList() On Error Resume Next ' Set a reference to the drawing document. ' This assumes a drawing document is active. Dim oDrawDoc As DrawingDocument Set oDrawDoc = ThisApplication.ActiveDocument 'Set a reference to the active sheet. Dim oSheet As Sheet Set oSheet = oDrawDoc.ActiveSheet ' Set a reference to the first drawing view on ' the sheet. This assumes the first drawing ' view on the sheet is not a draft view. Dim oDrawingView As DrawingView Set oDrawingView = [code].......
The macro does not have to set the parts list style - that is controlled by the drawing Standard. It just needs to detect what it is, and place the list accordingly.
I am working for customer with a simple item with his iLogic design. He has created a simple form to modify his iProperties. To modify the current material, a multi-value parameter was created and the following rule as a local rule;
"MultiValue.List("MATLIST") = iProperties.Materials
iProperties.Material = MATLIST"
He is now trying to make this an external rule but gets the following error
Error in rule: Mat2, in document: Mat2.iLogicVb
iProperties.Material: is probably a bad material name.
The more info tab says:
System.ArgumentException: iProperties.Material: is probably a bad material name.
at iLogic.CadPropertiesInRule.SetDocMaterial(Document doc, String matName)
at LmiRuleScript.Main()
at Autodesk.iLogic.Exec.AppDomExec.ExecRuleInAssembly(Assembly assem)
at iLogic.RuleEvalContainer.ExecRuleEval(String execRule)