Advanced Engineering Language (A-EKL)  

Note that this language inherits the behaviors and components of the Mathematical Engineering Language (M-EKL) and of the Core Engineering Language (C-EKL).

A-EKL uses the full set of capabilities of the Engineering Knowledge Language (EKL) letting you access attributes and functions and manipulate types.  V5 applications aim at creating design objects enriched by a knowledge type. A-EKL is the level of language required to manipulate them as knowledge objects through tightly integrated knowledge artifacts:

A_EKL also provides a full set of functionalities to manipulate V5 features as Knowledge Objects

Knowledgeware and Extended Functions and Types  

Object Type Feature Type Literal Type
Keywords Design tables Generative Functions
Law List Macros
Mathematical Functions Messages Operators
Pointer Objects Search Function String
Analysis Operators Circle Constructors Direction Constructors
Electrical Functions Line Constructors Measures
Part Measures Plane Constructors Point Constructors
Surface Constructors Wireframe Constructors  
  Operators belonging to Knowledge products.
  Operators and constructors belonging to non Knowledge products.
Note that the packages available in the Knowledge Expert browser are documented in the Reference section in the Knowledge Expert User's Guide.

More Information About A-EKL

Working with Types and objects

The knowledge type is defined by:

Note that an attribute can be:

An object in V5 implements one or several types. Implementing means that this object will have the attributes defined by the type (and its super types). It also means that it can be used at a place where we expect an object of this type. For example, a mechanical feature (like a Pad) implements both the type of its specification (the Pad) and the type of its result (a solid).

Working with Basic Types

When manipulating an object in the Knowledgeware language, it is possible to read or to write its attributes. We describe here the basic types hierarchy. The applicative types inherit from this basic hierarchy, and use these types for the definition of their attributes.

 Types can be broken down into 3 main categories:

All types derive from a basic type called ObjectType (1). If a function takes such a type as argument, you will be able to pass both values and objects. You can therefore create a list of objects or a list of values (List.setItem (ObjectType)).

Note that the List (5) type is a sub-type of Feature. So an attribute of List type is similar to an attribute of Point type, i.e. they both provide access to an object of List type or of Point type.


Writing and Reading Attributes

An attribute is characterized by its name and its type.

Example 1 Example 2
sin (x.att) x.att = 4
The reference to the attribute of x is passed as variable of the sinus function. The variable is read within this function which reads the value of the attribute att of x. The reference of the attribute att of x is passed as variable of the affectation operator. Within this operator, the variable is valuated, thus allowing you to write the value of the attribute att of x.

Using Object Methods

if PartBody\Pad.1\Boolean.1 <> true
PartBody\Pad.1.SetAttributeBoolean("Boolean.1", true)