Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Navigation
- Solid Edge
- Forums
- Blogs
- Knowledge Bases

- Siemens PLM Community
- Solid Edge
- Solid Edge Blog
- VB in the Variable Table - Sky's the Limit

- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Email to a Friend
- Printer Friendly Page
- Report Inappropriate Content

VB in the Variable Table - Sky's the Limit

Tushar

Gears Honored Contributor

Report Inappropriate Content

29,628 Views

04-06-2014
08:04 PM

- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Email to a Friend
- Printer Friendly Page
- Report Inappropriate Content

The Variable Table in Solid Edge supports VBScript functions. This presents endless possibilities for users who are not programmers in the strictest sense of the word but have a rudimentary understanding of writing logical expressions. The Variable Table can be used to define and edit functional relationships between the variables and dimensions of a design.

The relationships can be defined using functions and formulas which can be

• Mathematical,

• Trigonometric,

• Logical or

• User-defined fnuctions in a BASIC or .bas file.

BASIC is Beginner's All-purpose Symbolic Instruction Code.

A rudimentary understanding of writing logical expressions in an all easy-to-use syntax using plain notepad is sufficient to start off.

This implies the user need not have any kind of indepth programming knowledge nor be a master of technologies like .Net or C++ to unleash the power of user-defined functions in Solid Edge.

Using an IDE such as Visual Studio can be useful for finding syntax errors and probably debugging little code snippets, though this is not absolutely necessary.**• Mathematical and Trigonometric Functions**

It appears that the mathematical and geometric functions that Solid Edge support are directly mapped from the VBScript's Math class.

The only important point to note are the SIN, COS and TAN functions which take the angle in radians and not degrees.**• Logical functions**

These remain largely un-documented. Use of logical operators like Less than (<), greater than (>), <= and >= are permitted in the formula for a Variable.

For example, a simple implementation of the =Min(V1,V2) function can be written as:*= -1*( V1 < V2 )* V1 +(-1*( V2 <= V1 )* V2)*

In the above formula, the logical operator returns a -1 or 0 based on whether the condition evaluates to true or false. So given, V1 = 15 and V2 = 45, the above formula evaluates as follows:

= -1*(-1)* 15 + (-1 * (0) * 45)

= -15 + 0

= 15

This way the smaller number is always returned. Such type of formula are difficult to write and interpret hence rarely used.**• VBScript Functions and Sub-routines**

Take an example of a shaft as shown below.

The various dimension variables are seen in the Variable Table.

The design of various parameters is as below:

1. Keyway length is always 75 less than the shaft length.

2. Hole diameter is 4.5 if ShaftDia is 20 or above and 2.75 if ShaftDia is less than 20.

3. Shaft diameter has predefined values and a corresponding diameter for the hole.

Lets see the three cases in greater details.

**Case 1.** The keyway length can be set right into the variable table by specifying it as:

= (ShaftLength - 75)**Note:** It is always advisable to enclose even the simplest of expressions in parentheses.

This also presents an opportunity to setup a simple VB function to calculate the value for the KeywayLength variable. Start notepad and save the file as Shaft.bas making sure it does not have the .txt in addition. Type in the following:

Function KeywayLength(ByVal ShaftLength As Double) As Double

KeywayLength = (ShaftLength - 75)

End Function**Notes:**

• The keyword Function indicates beginning of function definition.

• The name of the function 'KeywayLength' can be same as the variable name that is calculated.

• The variable ShaftLength from the variable table is provided to the function in the round brackets or parentheses.

• Double simply means a decimal number. For integer values, the word Integer is used.

• A variable KeywayLength which is same as the function name is then calculated using the ShaftLength provided.

• End Function denotes, the end of function definition.

• Also note the 'As Double' at the end of function declaration on line 1. The 'As Double' indicates that the KeywayLength is also calculated as a decimal number.**How to use in Solid Edge:**

• Click in the formula cell for the KeywayLength variable in the variable table.

• Click the Formula (Fx) button in the variable table.

• The Function Wizard dialog appears. Select Visual Basic in the list.

• Select the Shaft.bas file. The function KeywayLength appears in the list on the right side of the Wizard dialog. Select it.

• Click Next.

• Step 2 of the wizard appears asking for the arguments for the function.

• Type ShaftLength as the argument. This ShaftLength from the Variable Table is provided to the ShaftLength variable of the function.

• Click Finish. The formula cell is filled with the path and name of the bas file and the function name with the argument 'ShaftLength' in brackets.

• Change the ShaftLength variable in the variable table and verify the KeywayLength updates accordingly.**Tip:** Make sure the 'Automatic Update' button is checked ON on the Tools tab, Links group.**Case 2.** Hole diameter is 4.5 if ShaftDia is above 20 and 2.75 if ShaftDia is less than 20.

For this add a function as below to the .bas file:

Function HoleDia(ByVal ShaftDia As Double) As Double

If ShaftDia >= 20 Then

HoleDia = 4.5

ElseIf ShaftDia < 20 Then

HoleDia = 2.75

End If

End Function

and the formula for the HoleDia variable updates as below:

D:\Temp\Shaft.HoleDia( ShaftDia )

Experiment by changing the ShaftDia value to 20, less than 20 and more than 20.

**Case 3.** Shaft diameter has predefined values and has a corresponding diameter for the hole as below:

The first step is to limit the values of the ShaftDia in the Variable Table to a range of given values. For this

• Right click the ShaftDia variable in the variable table and select Variable Rule Editor from the menu.

• Check ON "Limit Value To:".

• Select the radio button for 'Descrete List:' and specify the range as:*{8.00 mm;10.00 mm;12.00 mm;17.00 mm;22.00 mm}*

• The values are separated by a semi-colon and enclosed in curly braces. This automatically creates a drop-down list for the ShaftDia variable. Double click the current value to reveal the list.

To pick the value of HoleDia corresponding to the ShaftDia, write the function as below:

Function HoleDia(ByVal ShaftDia As Double) As Double

Select Case ShaftDia

Case 8

HoleDia = 2.5

Case 10

HoleDia = 3.25

Case 12

HoleDia = 3.5

Case 17

HoleDia = 4

Case 22

HoleDia = 4

End Select

End Function

Here, the Select Case structure helps to set a value for a variable corresponding to another variable passed to the function.

As mentioned earlier, there many more logical constructs in the BASIC language, thus presenting huge possibilites and complexity to user-defined functions. The techniques discussed here should be helpful to make a small beginning.

Labels:

Comments

You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.

Latest Comments

- DavidChadwick on: Solid Edge 2020 offers expanded MBD capabilities
- mja on: New Responsibilities for Mechanical Engineers in t...
- Rahul_Mehta on: Keyboard shortcuts in Solid Edge
- Tushar on: Startup Spotlight: The Hero Lab
- Johnson_BigMatt on: Conversions and Transformations using the Solid Ed...
- anthonyjohnson on: Notes from the field: Solid Edge Pune User Meet Ma...
- Imics on: 101 Uses of the Control and Shift Keys in Solid Ed...
- Imics on: 101 Uses of the Control and Shift Keys in Solid Ed...
- 2PiDesign on: Startup Spotlight: 2Pi Design
- GaneshLande on: Manage Annotations Using Alignment Shape

Latest Articles

- Solid Edge Augmented Reality debuts at Realize Liv...
- Finamac: possibly the coolest Solid Edge user ever...
- Solid Edge 2020 offers expanded MBD capabilities
- Solid Edge 2020 launched at Realize Live
- New Responsibilities for Mechanical Engineers in t...
- Conversions and Transformations using the Solid Ed...
- Keyboard shortcuts in Solid Edge
- The Solid Edge Command Finder is Your Friend
- Startup Spotlight: The Hero Lab
- Conversions and Transformations using the Solid Ed...

Follow Siemens PLM Software

© 2019 Siemens Product Lifecycle Management Software Inc