I have a simple code below trying to iterate through all the assembly component and copy the iProperties > Occurrece Name (i.e. "Part1:1") and paste it to iProperties > Project tab > Part Number field for each individual part in assembly.
' 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
The Debug message shows the correct output for every iteration, but when I check each part's properties they all have the Occurrence Name of the last part in the aseembly.
I'm having some difficulties with iLogic and reference parameters.
I have made a tube with a weird shape and I want to measure the longest length. So I have to cut the tube in a certain angle in relation with the center to measure the length.
The problem is that this angle is really hard to calculate.
So I tried making a rule where I can make my angle shift x degree and then measure the longest length. If the measurement is larger the previous measurement the angle will shift x degree again until the measurement is smaller than the previous.
So I made my starting angle 0 degree, I know this is for a fact not the longest length. And then I tried this rule. (before making a While rule).
And I noticed that on screen the measurement changes. But the reference - parameter stays the same. So it gives me the measurement on the starting angle & after rotating it again gives me the starting angle.
How can I get the parameter to update itself in between?
Dim measurement_length As DoubleDim measurement_length2 As DoubleMessageBox.Show("Start angle ", "My iLogic Dialog", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1)angle_measurement_spec = 0RuleParametersOutput()InventorVb.DocumentUpdate()measurement_length = [code].....
I would like to save parameters marked as Key to an XML-file (from an Inventor addin, VB.NET):
Dim addIn As ApplicationAddIn = m_inventorApp.ApplicationAddIns.ItemById("{3bdd8d79-2179-4b11-8a5a-257b1c0263ac}") 'iLogic addin addIn.Activate() Dim iLogicAddin As Object = addIn.Automation iLogicAddin.ParametersXmlSave(invDoc, "c: emp ext.xml", iLogicAddin.XmlSaveOption.KeysOnly) This doesn't run: "Public member 'XmlSaveOption' on type 'iLogicAutomation' not found."
In the attached file there is a User Parameter, "Antal_ledekasser". Inventor has calculated its value to 2.
If you do the math by hand then you see the value should be 5.
Rebuild doesn't force recalculation.
There is an iLogic rule in the part, but this also fails to force recalculation: iLogicVb.UpdateWhenDone=True InventorVb.DocumentUpdate() ThisDoc.Document.Rebuild2 ThisDoc.Document.Update2
Manual work around is to change the formula, then the value is recalculated.
iLogic work around is to change a parameter-value - and run the rule TWICE.
Question: How do I force a real rebuild, that actually wil recalculate parameter-values the first time I run the iLogic rule?
Background: The attached file is a little subset of the skeleton in a large assembly that is controlled by iLogic. The rules are placed in the topassembly, and writes vaules to the skeleton-file.
After writing values to skeleton-parameters I try to force them through with this iLogic RuleParametersOutput() InventorVb.DocumentUpdate() iLogicVb.RunRule("Skeleton", "Update")
Later in the process I use calculated values to decide which components should be active. But my logic fails because my decisions are made on faulty values.
I did manage to get the updating work in 2011. But after migrating to 2012, it seems impossible to have it update correct. The user has to run rules several times, and doing manually updates to get a correct model.
I want to export reference parameters to an excel table using i-Logic
I found the function GoExcel.CellValues("filename.xls", "Sheet1", "A2", "A10") = MultiValue.List("d0")
It looks like the syntax calls for the file location and name if the xls file is not open and if open is not supposed to be required.
I have entered it both ways and with and with out the target file open and with the function GoExcel.Open("pathFilename.xls","sheet1") and continue to get the error:
we couldn't find C:AbellAbell VaultWorkSpaceDEVELOPMENTAC100-0100MRLTEST Table.xls. Is it possible it was moved, renamed or deleted?
Also, I was expecting that to fill in the sheet cell's would be MultiValue.List("d0","d1","d2")
but the system give me an error that says
Error on Line 3 : Overload resolution failed because no accessible 'List' accepts this number of arguments.
I am trying to enter some material ordering info into an external spreadsheet, and have that info reflected in a text box within an idw drawing file.
My method is as follows:
Obtain a numerical value (250) from an external Excel spreadsheet (sample.xlsx).Assign this value to a parameter (abc) in an idw file (Materials Ordering.idw).Insert parameter abc I made into a text box within the same idw file.
I made a set_parameters rule, and the ilogic text of the above example is as follows:
'Open File and Scan line - Part = Impeller Casing Flange i = GoExcel.FindRow("sample.xlsx", "Sheet1", "Part", "<=", "Impeller Casing Flange") 'abc = Material Width abc = GoExcel.CurrentRowValue("Material Width")
I had no problems with the first two steps, after checking the parameters I could see that parameter abc is being updated successfully.
However, I am having trouble with the third step. In the format text dialog box, I can see a drop box for components, but I can't find a reference to the idw file in there.
My question is, am I going the wrong way about this? Should I have assigned the parameters to a component instead of the idw file?
I have a question regarding parameters in a block definition, or more specifically how to constrain parameters. I have attached a PDF showing exactly what I am working on. Basically I have an arm for a monitor which I need to add some parameters to. I need to be able to have a point that I can grab where the "primary grab" is located, and when I grab that I need the arm to pivot at the indicated pivot point, but be restrained by the first arm that is constrained to the circle. Is this possible to do in AutoCAD?
iLogic code question concerning how Place iLogic Component and retain the ability to push parameters from the subassemblies to the parts after being renamed.
I have ASSEMBLY.iam containing:
SUBASSEMBLY-01:1.iam SUBASSEMBLY-02:1.iam and sometimes SUBASSEMBLY-02:2.iam
each SUBASSEMBLY.iam contains PART1.ipt and PART2.ipt which have variable LENGTH and WIDTH. LENGTH and WIDTH are entered manually at the SUBASSEMBLY.iam and are infinitely variable.
To transfer the parameters I'm using iLogic code in the SUBASSEMBLY:
Issue 1: When I place the SUBASSEMBLY as an iLogic Component, the parts are renamed to PART1-01.ipt which renders my Parameter transfer useless. What am I missing on writing this code so it can find the new part name?
Issue 2: I like the automatic renaming that happens with Place iLogic Component. Is there a better way to handle this automatically through Place Component -> Save & Replace?
I am looking for information on the option parameters, any documentation?
I found some code to query what parameters there are (Rule: GetTranslatorOptions), just not sure what the enumerations are for some.
Specifically: ExportUnits, Resolution
Using Rule:ExportSTL
I have changed the Export Units from 1 to 4 and do not see any change to the STL ASCII output.. not sure what this parameter does... Expected it to be an enumeration of the drop-down box that you see during "manual" exporting.
I have this little iLogic snippet that writes out the name and value of all parameters in active document.
doc = ThisDoc.Documentparams = doc.ComponentDefinition.Parametersnames = New List(Of String)values = New List(Of String)For Each param In paramsIf Len(param.Name)>4 Thennames.Add(param.Name)values.Add(param.Value.ToString)ElseEnd IfNextMultiValue.List("ParamsList") = namesMultiValue.List("ParamsValues") = valuesGoExcel.CellValues("COVER.DEFAULT.PARAMS.xlsx", "Sheet1", "A2", "A400") = MultiValue.List("ParamsList")GoExcel.CellValues("COVER.DEFAULT.PARAMS.xlsx", "Sheet1", "B2", "B400") = MultiValue.List("ParamsValues")GoExcel.SaveGoExcel.Close
The problem is it ignores the parameter's units and assumes cm for length and rad for angular. I need another nested IF - Then that says:
IF param.Values.'UnitType' is "in" THEN param.Value = param.Value/2.54 Else If param.Values.'UnitType' is "deg" THEN param.Value = param.Value*360/2/3.14159 End If
Is there a way to work with parameters on a suppressed assembly using iLogic.Everything works fine, but when I suppressed a part ilogic rule give me an error: Parameter: The component named "xxxxx:1" was not found.
I want to import the parameters from the .ipt file into the .iam file using a rule from iLogic (unless there is another way to do it?)
I pinched the code from the example hand rail iLogic part that comes with inventor and tweaked it to suit. After inputting the code shown in the image, when I click OK I get a 'fatal error' of some sort.
Is there a standard command or command sequence that allows for the changing of a parameter, say length, of a component from within an assembly. I'm looking to compile a code that allows for a template to be created, then that template will do changes based on text box input and then save out the modified parts with new part numbers.
I need import all new params, rules and forms from a new template to older parts. I'm trying to use an external rule to create a new iproperties and import params from xml file but I can't assign these parameters with these iproperties.
I would like to be able to use iLogic to get the value of the Comment field of a model's parameters. I have some text there that I would like to display in a sketched symbol. The attached image illustrates what I am seeking.
I have two user parameters saved in a part template that are tied to the part volume and an overall estimated part weight. The user parameter Pc_Volume is the volume in cubic feet and calculated by pulling the part mass (in cubic inches) and converting to cubic feet via ilogic rule. This is then automatically run via event triggers before a file is saved and if the part geometry has changed to keep the volume up to date. These are exported because they get pulled into iproperties of our drawing files as well as used to create a parts lists showing the volumes and weights.
I have the property formats of the user parameters set to Number and to unitless and the unit display turned off so it does not show on the parts list, with a precision of 0.000 for Pc_Volume. The Pc_Weight is set the same way however with a precision rounded to the nearest whole number.
These are created this way so when we use the part file as the template when we select "Make Components" to separate our parts and tie them to an assembly all the files are then updated and the information saved for exporting.
The problem is, the Pc_Volume always comes in rounded to a whole number. The Pc_Weight Does as well, but that doesn't bother me since we want it to do that anyway. If I would go into the part file after it's created, double check the precision and then re-run the rule the volume will show up with the correct precision in the exported parameters. I don't want to have to open each partfile however to get this to update.
Attached are images of the parameters, ilogic rule, and exported results.
Luckily I found your site I have used CorelDraw X4 for a couple of years now, mainly for my crafting hobby. For some strange reason now, sometime when I created a dashed line (as I always have before) and send to my cutter it arrives as a solid cut line and not a "pounce" line. It doesn't always happen to all of the dashed lines which on the visual in Corel are correct. Even if I try to delete a problem line and create a new correct one and then send again to the cutter, either this or even one of the correct "pounce" lines will appear as a solid cut line. I've never had the problem before so I tried a "repair" to Corel which doesn't seem to have had any effect.
I'm looking to recreate the crease/fold lines below. I've found various tutorials showing ways to create fold lines using thegradient tools (i.e putting black/white to create fold) and others that use an overlay of crinkled image and making opaque.Neither of these produce effects like the ones attached.
A while back I figured out how to put a few characters before and after several lines of code in iLogic to make it compress to one line or expand to its full size inside the code editor. I belive this is a fairly common VBA command, but I can't figure out how to do it again.
Inventor 2014 HP Pavilion dv6t-6b00 Intel Core i7 2670QM AMD Radeon HD 6490M 8gb RAM Windows 7 64 bit 3Dconnexion SpaceExplorer
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 am trying to fold the attached sheet metal part that is created from an imported ACAD drawing. After cleaning up the sketch I created the face and then created a sketch with the first bend line on it, but when I attempt to flod the part it will not sellect the bend line. I have attempted selecting the line before selecting fold and that does not work. I have placed the sketch both on the part surface and the datum plane. The only line I can get fold to select are the two ends of the part but I don't see how anything could be bent off the end of the part.
Inventor Premium 2013 SP1.1 Vault 2013- plain vanilla version HP G71 notebook celeron cpu w 4gb RAM and 64 bit system Win 7 home premium
I am trying to fold a sheet into an "L" shape (using the the Fold command) but i would like to have the inside of the bend to be sharp and not a radius like on the outside. Is there any way that i can achieve this?
I am having real difficulty in putting a fold on a sheet metal part that only fold part of the piece. I have made the part as a solid body and it almost looks the part but not quite.how to draw the part as a sheet metal piece.
The is very simple to make as a sheet metal part, the piece in question is placed into the press brake to the 34mm depth and then its folded to the 13 degree angle.
Is there a feature on the latest series of inventor whereby you can automatically generate fold detail on the flat pattern , ie. fold up 45 degrees, eliminating mistakes. I am currently on Inventor 2008 so this feature could be on a new version.
The left-hand part was created by someone else, using the bend part command in the "modify" tab.The right-hand part was created by me using fold in the sheet metal environment, using the same sketch.Why, is my part shorter?