AutoCAD Inventor :: Use ILogic To Set Size And Length Of A Part
Oct 26, 2011
I have created a ilogic rule that should set the size and the cut length of my parts. Most of the time the rule behave as I want it to. But sometime it gives me a error. See attached picture. By the way, I have included this rule in my custom content center parts (beam's etc). The rule is:
'Turn off workfeatures
ThisDoc.Document.ObjectVisibility.AllWorkFeatures = False
'check if the part has any geometry
If Measure.ExtentsLength="0" Then
[code]........
I am trying to create a iLogic Rule that will measure the Length, Width and Thickness of a part and ut it into the custom fields we have. I am having a hard time remembering how to get it to do it from the assembly level. I want to run this on the assembly and have it populate all the parts inside of it. The code below will do it for a part but what is it I add to get it to drill down into the assembly?
Then I want to add this formula to the Stock Number iProperty = <Length> X <Width> I can get it to add the values but I can not get it to add the formula to the stock number.
I want to have a Blank size custom iproperty using flat extents length and width this is what i did but gives error is there a way to get this to work the way I want it to? I dont want a Length and width to be seperated would like it all in one.
A coworker brought this to my attention and I was also immediately able to reproduce this. We use content center C channels and other common beams a lot. After inserting one into an assembly if you right click and select change size and edit the length it typically doesn't update to the correct length.
Example:
Insert a 10" Ansi MC/C channel any size
right click and select change size
add +.0625 to the existing length and hit apply
measure it at 10.06252 in
repeat change size and type in 10.0625
measure it at 10.0625
repeat change size and type in 10 + .0625
and measure at 10.06252 in
It seems to mess up more when you do math but it also screws up entering a simple number
10.000325 usually ends up as 10.000315 in for me.
Editing the part directly from it's parameter dialog doesn't yield anything like this.
I'm looking for a way to change the size of a custom content center part via ilogic. I found a way to replace them on this forum but this is not ideal for, because that creates a new part every time i change the size of the part.
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'm new in use of iLogic and tried to use it by myself (and internet). But I have some difficulties.
Here is the open point, I wold like to create an assemblies with different length (and also some different part inside).
So I made some iLogic rules to make a configuration of my .iam with length selection.
I made rules to show or hide parts with is linked to the proper length.
I made rules to switch from a positional representation to another one and do the same for level of details representation and for view representation.
All is good in my .iam.
My problem is comming now. When I would like to put my .iam in a .idw in several views (corresponding to different length), my views are the all the same. I can't see one length per view even if I select the proper representation, the proper position and the proper level of detail.
At the end, all this work is to have all views length to be able to make in one drawing all length block in autocad.
I have just started to use ilogic, what i want to do is measure the length of a loop in a sketch and then use this measurement as a parameter.
I have found this rule that will measure the loop length and display it in a message box
Dim se As SketchEntity = ThisDoc.Document.ComponentDefinition.Sketches(1).SketchLines(1) MsgBox(ThisApplication.MeasureTools.GetLoopLength(se)*10 & " mm")
but i do not know how to capture the measurement as a parameter .
How would I go about creating a rule in iLogic which would limit the minimum length of a pipe (parameter = Pipe_Length) to be half the outer diameter of the pipe (Pipe_OD), in other words "Pipe_Length ≥ Pipe_OD/2"
I know you can use the limits wizard in iLogic, but is that not only for numerical values as opposed to parameters?
This is my first time using Inventor but I've been using ProE for several years in school. A friend of mine told me about a feature in ProE where you are able to define a part and then define one of the lengths as it is placed into an assembly. For example I would define a 2x4 part with a length of 84inches. If I wanted a 2x4 of 68inches in my assembly I would use the same file but simply change the 84 to 68. How can I do this with Inventor?
I need to derive a part in a model (not assembly and as a separate solid), to remove it and make a cavity. However, I need inventor to prompt what file is to be derived through iLogic.
I will make a detail drawing of the parts in the assembly.
In the detail part IDW I would like to have the qty needed for the assembly 1,2,4 ect.
So how I think the ilogic should work.
In the detail drawing have a rule named QTY when ran auto or manually Will pompt to pick the Top Level Assembly the parts are in.
The user will look for the top level assembly select it.
The rule would filter out all parts but the detail part number and return the QTY of parts needed for the assembly.
I only need the Qty.
I know this is done by the number of Occurrences in the assembly this I can find but what I can't find is how the user would look up the assembly and set it to parts only.
Like the pic below when doing a parts list.
I don't need the select view because it is a part and it would return QTY of 1 but the assembly may have 5.
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.
How to run iLogic Rule which I created for .ipt file in assembly?
As I have a myPart.ipt file with iLogic Rules which could create part1.ipt, part2.ipt, ..... (hundreds of them).
Now, I want creats iLogic Rule in myAssembly.iam to run the iLogic Rules in myPart.ipt in order I could create correct .ipt file to be used in myAssembly.iam.
I have the same ilogic part placed in the same assembly, and i am trying to drive two different configurations of the same part and when i apply the configuration it changes both of the parts but to only one of the configurations.
Is there a way to drive them seperately even though they are the same part.
Before using iLogic, I created lot of iAssembly and iPart. I could change iPart factory member when I need in iAssembly.Now, I want to move everything to iLogic.
how could I change the part by iLogic code?
For example:
I generated "Part1.ipt" and "Part2.ipt",...... (I have hundred of member)
In my assembly, sometimes, I need use Part1.ipt, sometimes I need use Part2.ipt.
Which is the iLogic Code I should to use?
Inventor 2009, WIN XP. Autodesk Inventor Professional 2013 (64 Bit) SP2 Windows 7 Professional Service Pack 1 Intel(R) Xeon(R) CPU E5645 12.0 GB Memory
Apparently the occurrences tab setting aren't easily accessible through the code snippets in ilogic.
How would one go about writing a rule that, in essense, would say:
If x = "whatever" then
occurrence.enabled = false
else
occurrence.enabled = true
end if
I've been reading that LOD's and suppression aren't the best course of action for assemblies especially when you're dealing with 20-40 parts as I am. I've got an assembly and parts controlled by a spreadsheet and when things are clicked off in the spreadsheet they need to be off in the model/drawings/bills etc. I have it working (to an extent) with suppression of parts in the assembly, but that casues LOD errors in the drawings. Research says parts are best disabled which is what i'm trying to do.
I got this code earlier from Curtis_Waguespack, and i would like to add a setting... When i run this rule it Derives the assembly, but LOD is set to Master, i would like it to be set to my own (Configurator) LOD...
I don't seem to be able to find anything in this code, that defines LOD...
So far im doing ok with the standard ilogic code, but when it´s API or VBA code im lost.. which leads me to this.. i've been searching the forum back and forth to find a code that performs the feature "Shrinkwrap", and somehow everything i have found so far does not work... even the code example in Inventors help menu under programming, Therefore im trying to solve this with Curtis's code as staring point..
'set a reference to the assembly component definintion.'this assumes an assembly document is open.Dim oAsmCompDef As AssemblyComponentDefinitionoAsmCompDef = ThisApplication.ActiveDocument.ComponentDefinition 'define the path and file nameDim sPathandName As StringsPathandName = ThisDoc.PathAndFileName(False)
I have made an iLogic external module who copy the iProperties from an Excel files, when i open the module from the *.ipt file il works perfectly. But i need this function from *.iam files.
Something like this: when i click with right button in one selected part of assembly i can open the module only for this part and when i save it save the change for all modify part of *.
I would like to make an External Rule that would make an iLogic Internal Rule (with the same code every time). I guess what I really need is a way to drive an Ilogic rule into every part that does not have the rule in the part already.
I know what you’re thinking and just using the External Rule doesn’t work for what I want to do. I need it to be an iLogic Internal Rule.
I have a couple of dozen features in my part, of which only one will be active at any time. The feature tree may be subject to additions, so I am looking for an ilogic rule that will first suppress all of the features in the part, and then switch on the specific feature I require (using a parameter). Any code to suppress ALL features?
I am using Ilogic to control visibility of a subassembly in a subassembly of my main assembly. It works correctly inside of the subassembly just not from the Main Assembly. If I use IsActive instead it works but I can't use this because the dimensions in the associated drawings lose there attachment points using IsActive. I can change my assembly by removing the middle sub assembly but will require writing a lot more code.
I have created a very simple yet effective tool for starting a new manifold assembly using iLogic. The rules and windows essentially fill out the size of the block, material type, description, project and part number.
Below I have a hydraulic manifold I have designed and from that I created the final .ipt of the internals. The way I did this (which may not be the best method) was to create a second .ipt matching the LxWxH of the original manifold, next I inserted and aligned both into another .iam file, lastly I derived a third .ipt from a subtraction resulting in the third image below. This is a bit time consuming to create, but has been very useful in error checking our designs. I would like to see if iLogic is capable of allowing me to automate this so we can easily create these internal flowpath .ipt's for every manifold we design.
Possible to add a thread feature to a part using iLogic.
Basically in the iLogic form if the user selects "Threaded Rod" the existing Extrusion is updated to reflect a cylinder with a length and diameter specified by the user and then I need to have a Thread Added to the cylinder.
Computer Specs: Windows 7 (64 Bit) Pro. SP1, Inventor 2014 Pro, 3D Connexion SpaceNavigator (Driver 3.15.2) Motherboard: ASUS Rampage IV Extreme x79 Socket 2011 Processor: Intel Core i7 Six Core Sandy Bridge-E 3.2GHz OCed to 4.7GHz (Under Water) RAM: G.Skill Ripjaw Z-Series 32 gig quad channel of RAM 1800MHz OCed to 2133MHz Video Card: 2x Nvidia Geforce GTX 770 (Running Six (6) Monitors) Monitors: [Primary = 2x 24in HD WS][Secondary = 2x 22in HD WS][Tertiary = 2x 19in FS] Primary Hard Drive: OCZ Vertex IV 256 GB Solid State Drive Secondary Hard Drive: OCZ Vertex III 120 GB Solid State Drive
I'm trying to finally utilize iLogic and all of its functionality (after using the basic features of inventor for the past 3 or so years) and I was wondering if there was a way to use iLogic (or some other feature for inventor) to resize text in a title block field of an IDW based on the length of the text entered (i.e. if the part's name was "Cam Retainer" the text height would be .12, but if its part name was "Spacer Cam Retainer Bushing" the text height would shrink down to .085 or something) so that it would still fit nicely into the text block?