AutoCAD Inventor :: Parameters Not Calculated - Can't Rebuild With UI Or ILogic
Mar 8, 2012
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'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."
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?
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.
I have a parameters only part which drives the parts in an assembly. When I change the parameters and go back into the assembly I am getting an error. I can accept the error and drag the parts around and they snap into place, which ends the error. It works, but isn't very appealing to the eye. Is there any way to fix this?
I have a sketch that Inventor changes its status between under constrained, over constrained, and fully constrained depending on dimensions (makes sense), and wether I rebuild the model (WTF?).
Steps to reproduce:
1) Open the attached .ipt file.
2) Examine Sketch11 (under Face3) It should be fully constrained.
3) Exit the sketch. Open the parameters dialog and change the value of "angle" from 45 to 60. (If you get an error message change it to 50 first, then 60. It's a work in progress.)
4) Re-examine Sketch11. It is now under constrained.
5) Exit the skecth and go to the manage tab. Click "Rebuild All".
6) Re-examine Sketch11. It is now fully constrained.
7) Scratch your head and post back with your theory.
I am working on one frame where I have rebuilt two parts multiple times and they still revert to being rotated slightly after performing a rebuild. I can continually hit the rebuild button and watch them rotate back and forth. Is there a known fix for some of these oddities with FG?
Notice the two tubes in the attached pic. I do not understand why they continue to rotate out of alignment after they are placed correctly. (They even look fine when placed.)
How are arrowhead attachment locations calculated when using the Automatic Balloon command? Arrowheads seem to attached to objects at rather strange places!
I normally use auto-ballooning to place balloons within a drawing and then "season to taste". Is there a way to control how and where the arrowhead gets attached to an object?
I have a program which had compiled for acad 2010 and windows XP x86. I want to rebuild for acad 2014 and win7-8 x64. I did import 2014's dll (AcMgd.dll, AcDbMgd.dll, AcCui.dll, AcCoreMgd.dll) and built. There is no errors. But when I wantted to run one of my commands it gives an error. I attached the error message.
I had a corridor built with a CulDeSac on a side access road. Problem I was running into was the daylighting from the assembly on curve so I finally decided that I needed to move the CulDeSac 20 feet further down the road. I deleted the CulDeSac region and when I did that the Final Grade for the EOPs profiles were deleted with it. I then moved the EOP alignments (Left & Right side) 20 feet further down the road and readjusted the start and ending of the alignments. Then went back to the existing grade profiles of the EOP alignments and redrew in the Final Grade profiles. I added back in the Regions for each Baseline and set the targets to Road CL Alignment and Final Grade Profile. These are the exact same steps I took originally to build the CulDeSac the first time and it worked great. Now it won't even build the CulDeSac.
When I deleted the region the FG of the EOP disappeared, but actually still showed in the Toolspace so the new FG profiles with same name were seconds/duplicates. Once I saw that I deleted the originals from Toospace and renamed the duplicates and used them for the Baselines.
Windows 7 Prof w/ SP1, 64bit, Xeon 3Ghz, 16GB Civil 3D 2013
I would like to add a Rebuild Surface command to my Ribbon Modify Panel. I would also like to have it included in my Right Click menu after a surface is selected. There doesn't appear to be any way to initiate a surface rebuild from the command line and I don't find a command for it in the CUI editor.
There does seem to be a rebuild command in the API but I am not a programmer. Is this possible without programming?
2012. I have contours from a corridor merged into a full surface. I labeled the contours, then had to rebuild the corridor after the profile changed.
The contour labels all vanished and had to be redone. While surface contours work well for roadway corridors with few intersecting roads. I am not finding them to be useful for parking lots. I am thinking I will have to go back to the extract all contours from model and neaten them up for acceptable graphic presentation, then label them using the label line function and pray they don't change. i.e. old LDD work flow.
The automatic outside boundary also does not work well when updating parameters and rebuilding. The old fashioned LDD boundary from polyline seems to work better most of the time.
Im wondering if its possible to link either a constraint dimension to an action parameter or vice versa. Or using a linear parameter's value in an user parameter formula.
Its a 2D cylinder, for winding purposes we just have a rectangle, with a distance from the Y axis for radial.
Parametric dimensions: B=thickness, C=Lenght, R=radius User parameter: A=Diameter (R*2), Mass in kg ((((pi*(c*b))*(A+B))*1.25)/1000)/1000
For the BOM, i need A, B, C & mass
For drawing references for peoples on the floor, to distinquish a cylinder from a stick, we put lines at the top and bottom of the cylinder, 1mm distance inbetween them.
I figured that making a linear parameter + stretch on the thickness to replace the B parametric dimension, allowed me to make an array of that line, with increments of 1mm as i stretch the cylinder. The thing is that the mass formula cant take the value of action parameters....
Other alternative is to keep the B parametric dimension, and add a linear parameter as above for the array. But then i have 2 places to adjust, and from a test i made, if i change the R dimension, the linear one does not follow. Its very frustrating.
What i was hoping autocad would be able to do is distance1 for array to be same as B dimension, but it does not allow me to do that, unless im missing something.
I have 5 intersections in a drawing and i try to update all the intersections regions one after the other with "Update Regions and Rebuild Corridor". The problem is that sending up to date some intersections send other intersections (previously updated) out of date. So i cannot have all my intersections updated. The only way i found to correct this is to "Update regions automatically". but this way i cannot make changes to regions manually.
I’m wondering regarding the equation used to calculate the radius of the circular curve. Is it the one attached? How the horizontal curve is updated as the design speed is changed?Ja