AutoCAD Inventor :: Minimum Distance Between Parts With ILogic
Jul 11, 2013
I want to measure the minimum distance between 2 parts. But I want Ilogic to know what parts to measure according to what i've selected.
I have something like this but its not working... gives me always this error "
Measure.MinimumDistance: No entity named "System.__ComObject" was found."
Dim oOccurrence As ComponentOccurrenceDim oOccurrence2 As ComponentOccurrenceTry oOccurrence = ThisDoc.Document.SelectSet.Item(1)oOccurrence2 = ThisDoc.Document.SelectSet.Item(2)Catch MessageBox.Show("Please select a component before running this rule.", "iLogic") ReturnEnd Try Dim doc As DocumentDim CurFileName As String oOccurrence = ThisApplication.ActiveDocument.SelectSet.Item(1) oOccurrence2 = ThisApplication.ActiveDocument.SelectSet.Item(2) distance = Measure.MinimumDistance(oOccurrence,oOccurrence2)MsgBox(distance)
what the minimum distance between two 3D rectangles is. I can do trial and error using the INTERFERE command (Acad 2012) and move the 2 groups until they stop hitting each other, but I wanted to see if there is a command in ACAD that will tell me how close 2 objects pass.
I have an old pile foundation group for 4 tower legs and I wanted to see how close I could get the new pile group to the old group. I'll try to attach a dwg file with 3 options I was trying. The old group is in Cyan and the new group is Red.
I'm guessing I could use UCS and set it on one of the piles and measure to the closest old pile, but the screen gets so cluttered. Is there a way to only show a slice through the objects?
I want to create an i part which derives its length and width from pairs of snapped points in the assembly. These can be any two points not necessarily existing properties of any part.
My new part would then calculate its actual dims from these measurements. Can this be done in ilogic and how?
Any way to distribute a set of variously-sized 2D objects on a 2D surface in Photoshop or Illustrator? Illustrator lets you align objects evenly along a 1D line, but I want the objects to basically fill a surface evenly.
A simple way of phrasing this is: I have a set of X objects of different size (or shape). I want them to be as close to each other as possible, but without overlapping. It should be easy for software to find the perfect composition to minimize "air gap" between them.
As a result, If I feed the program with shapes of various shape and size, I should get results like this:
wholesale-fabric-discount-store.com/images/Giraffe_Fabric.jpg (air gap between the objects is approx. mininal)
I'm using Inventor 2013 and would like to create a dialog box requesting the parameters for a simple rectangle and be able to snap in an assembly to get the distance for each parameter (width and depth) of the shape. Is this possible with either VBA or iLogic? I just need how to get the value...I can handle the dialog box.
i placed an ilogic component (wich i use as a template to later change dimentions) into an assembly file after changing dimentions i placed the same "template" ilogic component into the assembly but when i want to change something on the second component it also changes the first one and that only happens with only one feature of the component the other features work fine.
I have numerous step files which I have imported into an assembly. I now need to move all the imported files to a predefined UCS (not 0,0,0). I can do this manually by using the assemble command and selecting the centre point then selecting the centre point of the pre-defined UCS.
I have potentially thousands of parts to move in various assemblies, is there a way to do this using iLogic and if so, how?
I am trying to suppress part that are labeled as "Reference" on the BOM Strutcture and I can't get the program to cycle through the subassemblies. The following code runs through all the components on the top-level assembly but I can't get it to cycle through the subassemblies.
oCompDef = ThisDoc.Document.ComponentDefinitionoAssemblyComponents = oCompDef.OccurrencesDim oOccurrence As ComponentOccurrenceDim oSubOccurrence1 As ComponentOccurrenceFor Each oOccurrence In oAssemblyComponents If (oOccurrence.BOMStructure = BOMStructureEnum.kReferenceBOMStructure) Then Component.IsActive(oOccurrence.Name) = False Else Component.IsActive(oOccurrence.Name) = True End IfNext
I 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
If I draw a flat square, and then a flat circle next to it, can I do things using iLogic that will make the two seperate parts interact? such as say 'if the circle contacts the square, then make the square become a circle too' or something like that?
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<<<)
I need to use/write a iLogic code. I have a assy, in this assy i have parameter Height and Width. And it´s no problem to controlls this two rules/value.
But I have a problem with the rule when my height will control the number of parts
If my height is 500-1000, one part. If my height is 1000-1500, two parts. If my height is 1500-2000, three parts.
Is it best to use suppress or use a pattern in this case?
I would like to count all my parts in the main assembly and assign that amount to each part.
Example: Main assembly has: 10 Parts A and 5 Parts B. I would like to run a rule that "sends" that "10" to Part A.ipt and the "5" to Part B.ipt
I would like to assign it to iProperties.Status.Status. I start to understand iLogic more and more but it is nice to get a little boost in the right direction.
I am looking for a rule that will search assembly down all levels and find .ipts with the material of plywood and when found change all plywoods to color Clear - Light.
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.
I have a part file XXXXYYYY.ipt and I would like an ilogic code that searches if my file name contains "XXXXYYYY" to replace the X's and Y's with 1244SIMS and moves that file to a specified folder. Is there any code out there that will allow me to do this?
Is there a way of using ilogic code to untick the highlighted component below. To run at assembly level to itterate down all levelsUntick (Use color overide from source component) update all parts
Below 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 made a flanged connection using I logic. Very simple Tube + Flange + Gasket + Blind flange + Bolting.Then I tried to write some ilogic rule to have Blind flange on / off when needed, hence the Gasket & Bolting also need to be off. Like in these images:
That works fine visually, but I also want the BOM to be set accordingly. For the Blind flange & Gasket my BOM is OK. But for my bolting the BOM is not OK. I tried to set the BOM structure the same way as the visibility but that failed. It only subtracted 1 bolt from my list (see code)
If Blindflange_status = 0 Then 'Bolting offComponent.InventorComponent("Bolting:1").BOMStructure = BOMStructureEnum.kReferenceBOMStructure 'Sets BOM Structure to Reference (Remove from BOM)Component.Visible("Bolting:1") = FalseElse 'Bolting onComponent.InventorComponent("Bolting:1").BOMStructure = BOMStructureEnum.kDefaultBOMStructure 'Sets BOM Structure to Reference (Remove from BOM)Component.Visible("Bolting:1") = TrueEnd If
Is there a way to set all parts within a pattern BOM structure? I made my bolting by adding 1 bolt, 1 washer & 1 nut and then pattern them using feature pattern select.
I 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 have a iLogic assembly with some parts and sub assembly. I need to do a copy of this " Generator " to apply the result later in other assemblies. (something like a member of a ipart or i assembly).
Is there any way to do the copy the assembly to a new folder without the suppressed parts and subassemblies (wich are suppressed in the initial main assembly by iLogic rules)?
I tried to use "Pack and go" and "iLogic design copy", but they always bring the suppressed parts and assembly's, to the new folder and which i don't need to apply in the other assemblies.
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.
How to use different configuration of parts made with iLogoc in assembly? I want to have equal part with different configuration. I have a problem with the equal files.How to use different configuration of an assembly made with iLogic in assembly?
I made a flanged connection using I logic. Very simple Tube + Flange + Gasket + Blind flange + Bolting.
Then I tried to write some ilogic rule to have Blind flange on / off when needed, hence the Gasket & Bolting also need to be off. Like in these images:
That works fine visually, but I also want the BOM to be set accordingly. For the Blind flange & Gasket my BOM is OK. But for my bolting the BOM is not OK.
I tried to set the BOM structure the same way as the visibility but that failed. It only subtracted 1 bolt from my list (see code)
If Blindflange_status = 0 Then 'Bolting offComponent.InventorComponent("Bolting:1").BOMStructure = BOMStructureEnum.kReferenceBOMStructure 'Sets BOM Structure to Reference (Remove from BOM)Component.Visible("Bolting:1") = FalseElse 'Bolting onComponent.InventorComponent("Bolting:1").BOMStructure = BOMStructureEnum.kDefaultBOMStructure 'Sets BOM Structure to Reference (Remove from BOM)Component.Visible("Bolting:1") = TrueEnd If
Is there a way to set all parts within a pattern BOM structure?
I made my bolting by adding 1 bolt, 1 washer & 1 nut and then pattern them using feature pattern select. Inventor 2013
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.
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?