# Tag: EKL

## Knowledge-ware Formulas: Variable, Operators, and Expressions

Formulas are Knowledge-ware objects of type AdvisorFormula, which is a specialized AdvisorRelation. I usually explain formulas as single-line Rules written in EKL*. They serve as the building blocks for constructing complex Parameter relationships. Formulas are composed of variables, operators, and/or functions and methods**. A formula can drive only one parameter. It also must return a […]

## The Physical Product PositionMatrix

I showed earlier how to extract origin-coordinates and rotation-angles from Axis Systems’ components. Atsushi followed with a post on working with vectors and I recently showed how to perform Axis To Axis transformations on geometric features. Today I’ll focus on Physical Product’sPositionMatrix; more specifically, the VPMInstance PositionMatrix. Instance Position Vs Occurrence Position A Physical ProductReference […]

## Axis To Axis Transformations With EKL

Transforming geometric features from an AxisSystem to another is a common task in CATIA; especially when the goal is to decouple driving geometry from the construction of a UDF or a PowerCopy. For example, providing 2D-curves as input to a UDF that transforms the curves to build an extruded surface along a line–think window-frame tubes/channels. […]

## More on The Bounding Box With EKL…

Hi All! Sometime back I had created a powercopy for generating bounding boxs for 3D surfaces. Seeing Maher’s post, I thought of sharing what I had done and also some EKL scripts for achieving the same. There are two possibilities here: A bounding box based on computed inertia axes. A bounding box based on a […]

## Bounding Geometry With EKL: Box and Rectangle

In my previous post, I showed how to create a convex hull around a set of points or a polygon. Today’s post will focus on creating a bounding box and a bounding rectangle, depending on the input. Determining the boundary of an object will be guided by 3 directions: X, Y, and Z. In today’s […]

## Bounding Geometry With EKL: 2D Convex Hull

We often need to build simplified representations of geometry to facilitate solving problems related to packing and stacking; area and volume (weight) estimation; and more generally, space reservation. One such simplified representation is finding a 2D convex hull of a point set. Let’s take a look. Pseudo Code A convex hull is an unambiguous boundary […]

## Understanding The Shape Representation

I explained earlier the Drawing Representation model and touched upon a few notions: Aggregated vs Shared Representations, Collections, and Representation’s Root. Let’s now take a look at the more complex Shape Representation, and some of the differences between the dotnet and the EKL APIs. The Shape Data Mode Shapes are Representations whose V_discipline attribute value […]

## Organizing Automation

It is quite tempting to throw all of your EKL code in a single Knowledgeware object– Action, Rule, KnowledgePattern, or Reaction. While convenient, this practice brings many drawbacks. Instead of describing what these are, I will focus instead on describing some programming principles and the benefits they bring. I learned the value of these principles […]

## Making Use of Catalogs

I posted earlier on creating CATIA trees by passing instructions based on a custom syntax using EKL. I also posted on deploying tools to Catalogs as a mean to distribute automation tools for an organization. Today, I’ll show another example on building a tree, and will cover a few more things on Catalogs that I […]

## Making Use of Resource Tables

We can use EKL code to call reusable features Actions, Powercopies, UDFs, and Engineering Templates. To do this, we need to define them as Resources by adding them to a Resource Table. Resources can be inserted from any Representation in a Resource Table. However the Resource Table itself has to be inside the same Representation […]

## Engineering Templates Explained

One of the most robust functionalities supported by CATIA’s Knowledgeware is the ability to create reusable content: User Defined Features or Power Copy features, which can be instantiated within Representations; Engineering Templates, which can be instantiated within Physical Products. This functionality enables the encapsulation of compelx relationship and enterprise best practices; supporting Knowledge Based Engineering […]

## Working With Vectors

Working with mathematical vectors in code is valuable. It requires only math calculation, and a code executing time is faster than a code dependent on a geometrical object attributes. Maher showed, in a previous post how to extract direction components from an AxisSystem matrix using EKL. In this post, I’ll dig deeper into how Vectors […]

## Deploying Automation

CATIA provides two methods to deploy automation written in EKL to end users; enabling organizations to streamline tools for maximum impact. Let’s take this EKl action as an example: Assign Color Based On Attribute Example I previously posted on how to assign different colors to physical products. Today I’ll show a variant of that post. […]

## Circle Curve Divide

In this post we make a variation of Points along curve by max spacing, to generate division points and axes along a circle curve in three ways: by angle, instances and angle-instances. This spacing can be particularly useful as more flexible polar assembly pattern. The circular division is displayed using an action and a reaction, […]

## Polygonise Curve

Distance can be measured with respect to the shape (Geodesic) using a curve’s length, or direction (Euclidean) using a straight line’s length. Examples provided by Guido, and Mirco use the Geodesic method, that is they are both based measuring distances or locating points along the curve using EKL’s pointoncurve and pointoncurveRatio. In this post, in […]

## Automating Generative Design for Fabrication

Arguably one of the most powerful Knowledgeware Objects in CATIA is the almighty Engineering Template – an object that allows you to capture entire product structures as a template with dynamic input parameters and attributes. In particular Engineering Templates allow us to capture and re-use manufacturing data relevant to a product including fabrication information, assembly […]

## Building Trees With Custom Syntax Using EKL

Automation can make things quick and easy. Inspired by the idea of providing Syntactic sugar to execute tasks quickly, and more specifically Markdown-Mermaid, here is an example of generating assemblies using EKL with simple syntax. The Syntax I’ll define syntax to builds trees by describing parents and children relationships as instructions. Since tree nodes can […]

## Custom EKL Libraries

Organizations can create and reuse custom EKL functions as Knowledge Libraries. Creating such libraries requires a KHC license to use the Quality Rules Capture app. However, consuming them does not require KHC. It does however require KDI in order to be able to write EKL code. A custom EKL Function will behave as a regular […]

## Session 1 Notes (PowerCopies and UDFs)

Here is what we went over during the April 27th 2019 session on PowerCopies and UDFs( User Defined Features). Organizing The Tree: I learn back in 2008 from BIlly Wong, a former colleague from Gehry Technologies (now Trimple Technologies), the good practice of organizing the content of PowerCopy and UDF templates into two owners: Input, […]

## Google Sheets To CATIA Via EKL

REST, Representation State Transfer, is a pattern for making APIs (Application Programming Interfaces) that can serve clients (callers of that API). They’re used for web-services. REST’s pattern includes methods names and parameters. You send requests and receive responses. REST APIs typically include six methods: Delete, Get, Link, Patch, Post, and Put. These API Calls are […]