AutoCAD Inventor :: Custom VBA Function In Parameter
Jan 31, 2013
I've got a custom VBA function that works perfectly when called from a parameter in my part.
However, when in the context of my assembly, there is no error, but the function no longer runs, and the parameter text is red.
Apparently, the function is no longer in context?
I've heard of external rules, but have never implemented one.
Is there a way to declare my function and keep it in context regardless?
Public Function BumpHeight(dblHeight As Double, dblMember As Double) As Double Dim X As Integer X = 2 If dblHeight > dblMember * 2 Then BumpHeight = dblHeight Else BumpHeight = dblMember * X End If BumpHeight = BumpHeight / 2.54 End Function
Here is the Parameter:
VBA:BumpHeight(ValanceBackBumpoutHeight;ValanceMemberSize) * 1 in
Update: (problem better defined)
What seems to be happening is that once I insert the part into an assembly, it creates a new blank copy of the parts' modules in VBA and the functions no longer work.
If I go to the VBA editor,
There are now two copies of my part listed in the browser tree, but the new one is blank.
If I paste in my function to the new one, it will work until I return to the parent assembly.
Next time I come back to the part, it will have a new blank set of modules.
This appears to continue indefinitely...
see the attached screenshot.
At this point there are only 2 copies of the DocumentProject. The original still contains my functions, but the new one is blank.
I need these functions to work in order to build my model.
I am trying to publish to the CC a guide rail. The vendor of the rail gives me the option of entering the desired length of the rail. After that he gives me the option to choose between the length that I entered and a shorter and longer standard length witch can be delivered faster.
I want to do the same thing with my published part, but I cannot make a key parameter to change depending on the entered custom parameter. I want the user to make the next steps when inserting from the CC: 1- select the size of the rail; 2-select the type of the rail; 3- enter the desired length of the rail; 4- choose between the desired length and the 2 recommended lengths (I need these 3 lengths to be shown)
Just installed 2013 Pro x64 and I'm doing a little testing. Using Tube and Pipe, I created a few mock pipe runs which are named according to a unique line number. When clicking on the Iproperties of any of these pipe runs, I can see that the value of model parameter "Part Number" now includes the name of the top level assembly and the line number, which is the name I assigned to the pipe run when I created it (see Fig 1 attached). Then in IDW I created a user defined symbol which contains text that I have directed to extract value of "part number" from the model properties, and fill in my symbol with that value (see Fig 2). The problem is, when I tag the pipe run with my custom symbol, the value in the symbol remains blank, instead of giving me the value of "part number". WHAT am I missing??
I would like to use a multi-list parameter in a form, that isn't a problem. However I want the selection to be copied to a custom parameter when the form closes. Is there anyway to fire a rule when the form closes or to add a multi-select list to a parameter, in a form?
An application that will let me choose a group of Drawing files (.idw) and perform "Save Copy As" to a PDF format on them. The Filename of each Drawing should be extracted from a custom Parameter I embeded in the IDW file.
I know I can use the Task Manager with a virtual PDF Printer to create these files, but then the PDF Filename will equal the IDW Filename, and I want it to be derived from the custom parameter I prepared inside the drawings.
when i create an ipart with an custom parameter column, the files are created in the workspace. Is there any way how i can change this location?
Many parts are piling up in the workspace.For example to the library (like "normal iparts" do) or to a folder in the workspace (workspace/ custom_ ipart_ folder)?
In a simple case I have an extrusion with some attached seals/weather stripping, all implemented as iParts having their own LENGTH parameters.
RailPart.ipt, Seal_A.ipt, Seal_B.ipt
The goal is to encapsulate these IParts within an iAssembly: RailAssy.iam, where a LENGTH parameter can be input when the iAssembly is placed, causing RailPart and Seal_A to have their length parameters set to the LENGTH provided at that time and SEAL_B having Length set by an iLogic rule to LENGTH - 5.
I've been unable to set up a Custom Parameter Column in an iAssembly table. Is this even permitted?
Is it possible to link a parameter value to a function? I want text or attributes to never be "upside down".
If it is rotated with a rotation parameter the text would need to be automatically flipped or rotated if the angle is less than say >3*PI / 4 and < 7*PI/8.
My ultimate goal is to have a virtual human model that I can re-size parametrically to reflect real-world measurements. I've used MAX to make architectural models and scenes so I know how to manipulate basic shapes in MAX.
how to make some sort of basic-custom geometric shape and control that shape parametrically, like the built-in "Box", "Sphere" and "Cylinder" objects.
I have user parameters that are no longer needed and are not being used anywhere. They each takes 4-5 seconds to delete, prior to 2012 this would happen instantly.
I have a symbol on the stage: symbol1.Inside symbol1 I have an image: symbol1_image1...I have another symbol on the stage: symbol2 Inside symbol2 I have an image: symbol2_image2
in composition.ready I have an action on the mouseout for symbol1:
var theTarget = sym.getComposition().getStage().getSymbol('symbol2').$('symbol2_image2'); sym.getComposition().getStage().doMouseoutGS(theTarget);
In composition.ready i have the following function defined
sym.doMouseout = function (colorTile){ sym.$(colorTile.show()); }
I cannot get this to work and I am not understanding why.If I do an alert on the mouseout function for alert($(colorTile).attr("id")); I get the correct referenc to the element I want to show but it does not actually happen
I got a deadline for my project, but I got a big problem:
"I cannot set the "parameter" for the End Value in Parameter Animate dialog"
For easy understand, let's see a example:
1. I got a part which has two parameters named: "A" and "MaxA" 2. I animate Favorited parameter A. 3. The End Value is MaxA_ (Everything is ok) 4. I finish Studio environment, then I change parameter MaxA_ from 200 mm to 400 mm 5. I turn back to Studio environment, the End Value now is "200 mm" (I want this will be MaxA_, so I can animate the flexible parameter).
show me how to keep the end value will be "MaxA_" after I change parameter?
I'm trying to be able to have a function run another function with the secondary function being passed as an argument to the first. I'm trying to create a recursive function and the recursive part works great. I just need to be able to have the recursive function run other functions to actually do stuff.
Here is something I found that should do what I need, mainly run a function from a function name in a variable.
Sub test() Dim ftnName As String Dim argument As String Dim result As String ftnName = "myFunction" argument = "cat" result = Application.Run(ftnName, argument) MsgBox resultEnd SubFunction myFunction(inString As String) As String myFunction = inString & " has " & Len(inString) & " letters."End Function
However I get the error "object required" on the "result = Application.Run(ftnName, argument)" line. So I'm guessing the Inventor VBA doesn't like this method of doing this. I'm just hoping there is a way to do this or this function will be useless or reduced to hardcoding functions which still defeats the purpose.
I want to create an custom parameter like "button" under my object parameters or in attribute holder and i want this button run a simple code/script for me.
for example: linking Box1 to Box2 $.parent = $Box002
I know how to work with "wire parameter" and "parameter editor" but the problem is that i cant find any way to tell them to run this script with that parameter.
I would like to know that while system families are not editable, would the shared parameters file for these families be accessible? I am looking to add a custom label for sections.
I am using a trial download of PSE11, and find that some of the functions [that I have been using for many years on several iterations of PSE] are greyed out and not usuable. Is that becuase I haveatrial edition? I want ot use custom rotate to straghten a photo, and "straighten image" is not enough. Why can't I access "custom rotate"?
In Lightroom 5.3 suddenly, when I enter custom aspect ratios in the cropping function the results are not right. The values I enter should make it shorter, but the results are making it narrower. This has been working correctly until just the last hour or so. Have I inadvertenly changed a setting of some kind?
When inserting a content center part for which we have to choose a material, we would like to have a custom material as a default (material with name: "No material selected"). So when selecting no material for this part (for example when the user forgets to select a specific material), the default material (in this case material "No material selected") will be active. In this way, we can see in one view across the BOM which parts have no material assigned yet.
How can this be achieved in the content center (editor)?
Product Design Suite 2014 Inventor 2014, Vault 2014 HP Workstation Z220 Intel Xeon 3.4GHz 16GB RAM Nvidia Quadro 4000 Windows 7 Professional (64bit)
When using Inventor with Vault, we have a problem when categorizing custom content center parts in Vault. In short, custom content center parts are incorrectly categorized as "Content Center" and automatically released - as there is no property that we can use to identify these files.
I need iLogic code to trigger when custom content center files are created/saved, wich adds the following custom iproperty "IsCustomContentCenter=True".
I am trying to create custom Materials in Inventor 2013. I have been able to create the custom appearances I want use on the materials and store them in the Inventor Materials Library.
After creating the custom appearance, Ive created new materials. When I try to change to new material appearance from default to my custom appearance, upon hitting the 'apply' button I get an error message which reads, 'failed to updated style'.
I'm trying to build a command to replace AutoCAD's "DI" command, to give distance and delta x, y, and z values in decimal and imperial, and keep the angles in XY plane and out of XY plane.
in Inventor 2010 we can save and load iLogic Paremeter with *.xml and just in my opinion we can control parameter using *xml or html. It's right or false?
I need to extrude a simple shape between two planes and then get the length as a parameter. Is there anyway of generating this? All I can find is a parameter for the angle of the extrusion.
I have generated frame that has 100 members in it. Is there a quicker way of changing G_L unit to a mm so that I don't have to go into all 100 parts to change the custom properties?
Also I do not need unit string to be appear in my BOM.
I set a dimension to a 2dline. The dimension is automatically added to Model Parameters. How can I find , by code, the line which length is driven by the parameter ? Or, starting from the line find the parameter which indicate its length ?
::GetDependents(), nor ::GetDrivenBy(), nor ::GetParent() gives me the answer.