AutoCAD Inventor :: ILogic Replace Component With Multiple Different Components
Jan 5, 2014
So I have been going round and round in circles on this one iam trying to use replace component within ilogic which is fine with switching one part for another but I want a drop down of parts so it replaces which ever one is active the problem I am having is establishing which one is active. So below is what I have so far but the problem is you cant seem to reference a part that is not in the assembly so I keep getting the error
The component named "Flange 1" was not found for example. I just need a way of establishing which one is currently in the assembly but with out referencing components that are not there.
If Component.IsActive("Flange 1")=True Then current = 1
If Component.IsActive("Flange 2")=True Then current = 2
If Component.IsActive("Flange 3")=True Then current = 3
If part = 1 And current = 2 Then Component.Replace("flange 2", "Flange 1.ipt", True) End If
If part = 1 And current = 3 Then Component.Replace("flange 3", "Flange 1.ipt", True) End If
If part = 2 And current = 1 Then Component.Replace("flange 1", "Flange 2.ipt", True) End If
If part = 2 And current = 3 Then Component.Replace("flange 3", "Flange 2.ipt", True) End If
If part = 3 And current = 1 Then Component.Replace("flange 1", "Flange 3.ipt", True) End If
If part = 3 And current = 2 Then Component.Replace("flange 2", "Flange 3.ipt", True) End If
Can I use an iLogic Rule at the top assembly level to "replace all" of a particular component is that component resides in more than one subassembly? I need a rule to run and globally replace the component in all subassemblies without opening up each subassembly manually. I can run a rule in the individual subassembly that looks like the following:
If GoExcel.CellValue("3rd Party:Embedding 1", "Sheet1", "A2")=800 Then Component.Replace("Part1:1", "OtherPartfilename.ipt", True) End If
Is there a way to run a "replace all" command from a top level assembly?
I would like to know if there is any possibility to replace a component with another one, that has a different internal name. Losing the dependencies would be acceptable.
ReplaceReference and PutLogicalFileNameUsingFull always return the error "wrong parameter".
I have an assembly with two similar items in it and have written code to replace the component based on a given selection. If I try to change item one, nothing happens. If I change items two, it changes both item two as well as item one. In the attached screenshot item one should have a full cover panel and item two should be open; however, they are both the same. I have stabilized the browser by changing the names to "Leg One:1" and Leg Two:1) and the components that are being replaced are standard assemblies to be replaces with other standard assemblies.
We have just upgraded to inventor 2012 from 2009. I had a simple .ipt created from a 3/8" grade 50 sheetmetal template in an assembly, and decided that it could be 1/4" grade 50. I originally went into the original part and changed the sheet metal default to 1/4". After returning to my assemble and performing a refresh it blew away all my constraints I had on the .ipt after the thickness change. I also tried doing a save as on the ipt then changing the thickness as a new part number and performing a replace component with the same results to my constraints. I've also noticed issues losing constraints by performing simple replace component commands on similar sizes of TS but just changing length. Has something happened to our templates during the migration to the new version of inventor? I don't remember ever having this many issues in 2009 when replacing components of similar geometry with just a different length or thickness.
When I try to replace a component in Inventor 2014. It replaces it but does not update the tree in the browser. I have to manually delete the part and place a new one in.
I'm new to inventor and I need to be able to create coppies of a part in my assembly that are uniquely identified so they can be individually changed. I see that this can be done through the ribbon with the "Place iLogic Component" button, but is it possible to do this from the API in a rule?
Lets say you have 100 Keps Nuts in an assembly. Named (KepsNut1,KepsNut2, etc)And you want to suppress them on and off.
Would there be a way to make an array 1-100 and just say suppress/unsupress "KepsNut" & array list of numbers.To basically add the two strings and find all the components in that array and turn them off or on.!
I need to modify all the ipt in an assembly, but I don't kow how many ipt I have, and I don't know the name. Can I have with iLogic the list of all the ipt used in the assembly ? For example, to modify the Part Number in all the components.
I have a pattern of reference components, but the quantity of the pattern can change based on certain criteria. When the quantity increases or decreases, I need each pattern element to have its BOM structure set to reference.
The problem is, even if the original pattern element is set to reference, each subsequent element comes in as normal. This causes the BOM quantities for that component to be reported incorrectly in higher assemblies.
Is there some iLogic or VBA code that will automatically set each component in a pattern to BOM structure "Reference", even if the pattern quantity changes?
What I am trying to do is insert a part into an assembly file using iLogic. I basically want to mimic Inventor’s “Place” command using ilogic, maybe something like this:
I am working on an iLogic assembly configurator that manipulates several skeletal parts, and suppresses both standard and skeletal parts depending on the configuration.
I've been using the Component.IsActive function to suppress all omitted parts, which has prompted me to create a custom Level of Detail. This hasn't caused me much grief until I had completed ~10months of work when it was time for me to make my final assembly drawing and a parts list.I am now running into several deal-breaking issues:
1) Suppressed parts insist on appearing on the Parts List.
2) Saving the assembly drawing reverts my assembly model to the "Master" LOD, which I never, ever, ever want to see again so long as I live.
Is there another workflow or technique that I should be using to turn off unwanted components in an assembly? I understand that LOD's are really intended to manage system resources, but Inventor users seem to be left with no other option to display a skeletal assembly in a certain configuration. What is the point of the Component.IsActive function if it doesn't update your assembly (at least so far as the Parts List is concerned)?
If I am left to deal with the nightmare that is the Inventor LOD, is there any way to set up the Parts List to reference the custom LOD?
Drawing View reps don't seem to be an option, as it looks like there is no way to automatically update the same custom view after the configuration has been made. The iAssembly Include/Exclude feature would handle part inclusion and BOM behavior nicely, but it won't fit into the rest of my iLogic and file management program.
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.
Long time Autocad user but now am moving most of my work across to Autodesk Inventor.
Some of the work I do is with companies that their parts are standard components that will not change.
So I am using Inventor to automate the drawings based on their requirements. For example if it needs to be 4m high. then to use 2 x 2m sections. Currently I have create different assemblies of the different potential heights that I can switch between using ilogic but I need to be able to shift the top truss arch depending on how high the truss is.
After changing colors at assembly level only ,below is a rule that changes all parts that have material "Plywood" to poplar works great.
However I want a rule that does the same kind of change but on only temporally at assembly level only then we can change back to default colors by removing color override.
It would be good if we can do the following
Search assembly for .ipt files that have material that contains PlywoodChange to color using temporary override of "Clear - Light" Possibility of searching more materials within same rule ie : "Timber" to be black in color"Pvcu"to be white in color
Dim oCurrentDoc As Inventor.Document Dim oDoc As Inventor.Document Dim oPartDoc As PartDocument Dim oRefDoc As DocumentsEnumeratorDim oTargetColor As RenderStyleDim oNewColor As RenderStyleoCurrentDoc =
I'm trying to play around with iLogic for creating dynamically dimensioned subassemblies. I've created my dimensioning rules that link to the parts I wish to change dimensions on.
And I've tested this in the SubAssembly I've created and all appears fine. However when I go to insert the sub assembly into the main assembly I get the following error:
Parameter: The component named "Bridge Spine:1" was not found.
I've noticed that the new sub assembly has created new parts with the extension -01 on the end of each part (As expected) It appears that this link is being lost in the rule for the new sub assembly. i.e the rule is looking for Bridge Spine:1 instead of Bridge Spine-01:1
I was just wondering how to place a component into an assembly using ilogic? If this is possible, is there also an option to choose if iMates will be generated?
I would ideally like to place a list of components into an assembly, the list with probably exist in excel, then have iMates set to 'Automatically generate iMates on place' so that my assembly assembles automatically.
Inventor 2013 Certified Professional Autodesk Inventor Professional 2011 Windows 7 Enterprise, 64-bit
I'm using iLogic to build a configurator and everything is working perfectly if I have all the componets available.
However, is there a way to use iLogic in this example:
Assume I have a bolt, nut and washer in an assembly based on 1/2" sizes. I then change the sizes to 1", the bolt and nut update to 1" but I do not have a washer modeled for 1". Is there a way to use iLogic to report that the washer is not available without causing an error or only updating the bolt and nut and ignoring the washer.
I am trying to set the appearance of sub-components in an assembly using iLogic.
Dim oDoc As Inventor.AssemblyDocument = ThisApplication.ActiveDocument Dim oCompDef As Inventor.ComponentDefinition = oDoc.ComponentDefinitionDim oCompOcc As Inventor.ComponentOccurrence 'parts in the assemblyFor Each oCompOcc In oCompDef.OccurrencesoCompOcc.Definition.Document.ActiveRenderStyle = oCompOcc.Definition.Document.RenderStyles("HVGM")Next
I have a code which I want to rotate a part. I have a text parameter 6 and 7. If one of the values is active I want to give the component a certain rotation.
Under the 'Hoekkoppeling' parameter is the angle constraint.
Below the
If Parameter ("KlemHoekstuk-01: 1", "KoppelingType") = 7 Then Hoekkoppeling = 60 deg ElseIf Parameter ("KlemHoekstuk-01: 1", "KoppelingType") = 6 Then Angle = -60 deg End If
I now get always an error on the second and fourth line.
I feel that the specify for the value is incorrectly.
But splitting the parts up into different folders breaks the model because (I'm guessing) the part can't be found. My thought was to have one folder (Seals) with subfolder (Seal A, Seal B,etc) - is there a way to search the sub folders & use replace?
If I stick with one folder it will end up containing 300+ parts which will look messy.
I have an assembly which I want to replace one of the parts with one of four other parts.
My code reads:
Select Case Width Case "750" Component.Replace("part:1", "L:Drawingspart2", True) End Select
This works fine and when 750 is selected, part1 is replaced with part2.
My problem is then if I want to select "1000" I don't know the part name which I will be replaced by part3 as this could be part1, part2, part4,or part5.
I created a simple Part with some parameters to drive dimensions. Saved the part. I created an Assembly. Saved the assembly. Clicked Place iLogic Component. The Place iLogic Component window appeared Selected the Part. I can see the preview window (Part-01) & the parameter window... Used default values. Hit OK NO PART INSERTED! Using Inventor Pro 2014 64-BitLudesroc