AutoCAD Inventor :: Component Name In Rule Don't Change If Copied?
Dec 10, 2012
it's possible when i copy my assembly with rule in who suppress or unsuppress my component, the parameter part name change same to my new part name in new assembly??? Now when i copy or when i use design assistance the name of my part dont change in rule?
I 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'm trying to create a rule in ilogic that would search through all child components (looking for both .ipt and .iam file types) looking for an ilogic rule within each child component with a particular name, and running that rule if it is found.
We are having an issue when we replace a component in Inventor Pro 2012. When we replace a component, the name in the browser does not update to the new component. We've even tried to close and re-open the Inventor assembly and that does not work. We end up manual double clicking the name in the browser and type in the new component name.
Inventor Product Design Suite Ultimate 2012 Dell Precision T7500 Workstation Xeon Processor 16 GB of RAM Nvidia Quadro FX 5800 Windows 7 x64
In versions prior to Inv. 2009 the sheet metal rules were contained in the template and in 2009 they are in the styles library. In the past year we have changed some of our material and I would like to be able to look for certain sheet metal rules on legacy drawing and change them to a new one. Both styles are fairly close but I want to keep things consistant going forward. This way I can purge the style if it is not in the style library. Just can't figure out the code for changing the active style.
I have an iLogic controlled assembly with sub assemblies that are also iLogic controlled. The main assembly calculates some lengths and turns some subs on and off and then updates all the subs. The subs also calculate some lengths and turn some parts on and off. I have a rule in both the main assembly and copies in the subs that control the LOD to make sure that it's set to custom before anything else runs.
Now I may be misunderstanding something, but it appears that it's possible to have a sub assembly set to one LOD but be referenced in a top level assembly as a different LOD. In other words I have a sub that shows in the top level browser as Master. If I open this sub and set it from within the sub to custom LOD and switch back to the top level assembly it is still set to master there. It appears that this is what my LOD rule is also doing, setting it to custom in the sub but not changing the top level reference.
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
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 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.
I want to change the material of a sheet metal part using inventor api.I tried something like code
Dim partDoc As PartDocument partDoc = inventorApp.Documents.Open(FilePath & filename, False) If partDoc.SubType = "{9C464203-9BAE-11D3-8BAD-0060B0CE6BB4}" Then Dim smDef As SheetMetalComponentDefinition smDef = partDoc.ComponentDefinition Dim style As SheetMetalStyle style = smDef.SheetMetalStyles.Item("sheetMetalRule")
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?
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;
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)
I have a wall of frames, if you will, and some frames within this wall are different sizes. When doing the BOM, I want to be able to combine anything that has the same stock number as well as the same cut length. The only way I have thought to do this so far is to cycle through each stock number and if the cut length is the same, I override the quantity of one and change the BOM Structure of the other to "Reference".
How can I change the BOM Structure to reference without selecting the part or going through the BOM Editor? Is there some VBA code I could utilize? I am striking out by solely using iLogic.
The commented code does not work. I want to be able to open a part and change its size parameters before i open the assembly. this code will run as an external rule in a new empty file.
If i can do it without opening the part, that is even better. Test can I open a part, change a param, then close part.
Dim fname As String fname ="C:Workspacemy_progchanF_BB_L.ipt" Dim pDoc as PartDocument = ThisApplication.Documents.Open(fname,False) pDoc = ThisApplication.Documents.Open(fname)
These are just attempts to find a syntax that works. I need the method to change the parameter.
I have a part called "bracket" which has a multi-value parameter "mass" which can be 100, 200, 300, or 400 and controls the width of the bracket.I have an assembly into which I have placed thee brackets.
How do I set different parameters for each of the instances of "bracket"?I want one bracket with mass = 100, one with mass = 200, and one with mass = 300, such that I have three brackets of different widths.
I must not be searching on the right text in Google because I find only ways to change the value of the parameter within the core component (such that all brackets change and end up the same width).
In our drawing file we expose the mass of the part. So I have set the 'Update physical properties on save' in the 'Application Options'. This works fine when you save your file before switching to the drawing file. If you forget to save and go to the drawing file the mass is showed as: N/A.
Therefore I have created a rule which updates the mass of the part. This rule is activated with the 'Part Geometry Change' event trigger. This is done to update the mass in the drawing file even when the partfile is not saved. This works fine. If I make any changes to the model the mass is updated correct, EXCEPT for deleting features. When I delete a feature and switch to the drawing file the mass is shown as N/A again. So apparently deletion of any feature is not recognized as a 'Part Geometry Change' because the rule isn't triggered.
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
How can I change size of the content center part in an assembly based on parameters using iLogic.
There is also the possibility that I would need to replace from content center. I have been unsuccessful in adapting previous examples to work as I need. attached is an example of a part I am tryig to change with parameters and the start of some iLogic. I am using inventor 2012.
I'm finally wrapping up work on an iLogic Configurator project and have started to brainstorm the best workflow to get this "Smart Assembly" into the design group's hands. I had been anxiously awaiting the new "iLogic Design Copy" feature in IV2012, but just recently learned that users are unable to effectively rename any components with this command.
Is this really true? If we can add prefixes or suffixes, what's stopping us from changing the entire filename? We haven't upgraded to 2012 yet, but it seems like this may be a silly and unjustifiable restriction to a command that would otherwise save our designers hours of "file-management" (ie, manually renaming parts in Explorer, component replace in assy's, replace references in idw's, etc) each week.
Long story short, it seems that every workflow I've come across has had some sort of silly limitation that makes it undesireable for my application:
My top-level assembly contains all of the rules, and changes parameter values in the referenced skeletal parts. It also swaps standard parts for other standard parts as needed.I need access to rename ALL files (idw's, top-level assembly, subassemblies, and base components) while still maintaining/updating all internal hyperlinks between them.iLogic rules must be carried over to the new copied components (the existing "Copy Assembly" command strips the assembly of all rules). In light of the iLogic Design Copy's apparent shortcomings, any better workflow?
II need a way to tell if a component occurence is a virtual component.
I'm using a For Each loop to cycle through all of the components in an assembly, and if the component is itself an assembly to set the LOD to "Custom". I'm using the definition document descriptor object for this. It all woks fine until the loop comes across a virtual component which doesn't have a definition document, so I need a way to check if the component is virtual and needs to be skipped.Here's the
Option ExplicitImports Inventor.LevelOfDetailEnumSub MainiLogicVb.UpdateWhenDone = TrueDim doc As AssemblyDocumentDim oLOD As LevelOfDetailRepresentationDim oAsmCompDef As ComponentDefinitionDim oComp As ComponentOccurrenceDim oComps As ComponentOccurrencesdoc = ThisDoc.DocumentIf. [code]....
I am trying to make port rims for pipes that can be swapped in and out of an assembly. However, the ports will all be different sizes and located differently so I need the cut to be part of the port rim component, but affect the entire assembly it is part of. I've been trying to get this to work for the better part of a day now,Here's a picture of what im talking about. I'm running Inventor 2008 by the way.
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
I am trying to use iLogic to create the file types I need to give to my vendors once I have created a drawing.In the .idw file I have a rule that creates a .pdf file and .dwg file. I also want it to activate a rule I have in the .ipt file that creates a .dxf file.
trigger = iTrigger0oType=Left(ThisDoc.FileName(False),3)GoExcel.Open("S:DRAWINGSFolder Types.xlsx", "Sheet1")For rowPN = 1 To 200 If (GoExcel .CellValue("A" & rowPN) = oType) Then oFile = GoExcel.CellValue("C" & rowPN) Exit For End IfNextoFolder = "S:DRAWINGSNOT RELEASED" & oFileIf Not System.IO.Directory.Exists(oFolder) ThenSystem.IO.Directory.CreateDirectory(oFolder)End IfThisDoc.Document.SaveAs(oFolder & "" & [code].....