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 […]

Alternatives In Visual Programming–Updated

Current Graph Implementations Visual programming tools have matured over the years to offer key features that users have come to expect: – Graphs are composed of nodes, that can be connected by data streams Nodes are multi-functions, capable of taking multiple inputs and generating multiple outputs. Nodes have input and output ports. Data is transmitted […]

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 […]

Designer Vs Automation

What is design? I view design as a problem solving activity; where the intent is to reverse the effects of the problem. Further, I think of creativity in problem solving as an overall character evaluated by two parameters: utilization of resources (quantitative/ordinal), and beauty (qualitative/nominal). The first is maximized by meeting the required goal(s) while […]

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 […]

Automation APIs For CATIA

CATIA exposes some of its engine’s functionality to 3rd party developers via APIs– Application Programming Interfaces. It does that by providing what is known as: – Packages for EKL, KML, and CATRules. – DLLs (dynamically loaded libraries) for VBA, VSTA(C-Sharp), and CATScript. – Header files for C++, along with additionals DLLs. xGenerative Design xGenerative Design […]

Walking CATIA’s Trees with C-Sharp

In the post on CATIA Automation APIs, I described the languages one can use to automate CATIA. In this post, we’ll learn how to walk a CATIA tree using C-sharp. I assume that the readers is somewhat familiar with Object Oriented Programming concepts. API CHM (Compiled HTML) Document Before we start, let’s take how to […]

Ice-ray Recursive Grammar

I previously showed two examples on implementing recursion using iteration: Walking CATIA trees, and generating Fibonacci-number series. In this post, I’ll demonstrate generating geometric designs recursively using a combination of UDFs, Power Copies, and Knowledge Patterns. The strategy for implementing recursion through iteration is quite simple: operate on one set of elements; where every iterations […]

CopyPaste With EKL

I recently received a question on how to program copy-paste in EKL. While EKL does not support clipboard operations, it offers two options to deliver what is required. Let’s take a look. Use EKL To Recreate Datum Here, we rely on creating datum objects using the new method, then setting the newly created objects to […]

Writing JSON With EKL

Spreadsheets are commonly used when exporting CATIA’s attributes and parameters, because they can be modified and analyzed further by tools like Excel. Spreadsheets are also very well suited for defining and comparing parameter configurations. However, it is rather difficult to use them for expressing hierarchies (nesting) of data due to their "flat" row-column grid structure. […]

Where Does Visual Programming Fit?

xGenerative Design (XGD) is an easy entry point for learning parametric modeling and visual programming in one simple environment. Its main value, however, comes from its ability to author geometric definitions whose representations are native to CATIA. In this post, I’ll try to connect the dots between visual programing and parametric modeling workflows. First, I’ll […]

xGenerative Design (And A Fibonacci Series Example)

Parametric modeling, an approach to build geometry, permits data manipulation via exposing controls (operands and parameters) to end users. CATIA allows manipulating these controls via User-Interface (UI) tools or programmatically via EKL in Knowledge-ware objects. Users with basic computer science background will immediately map programming concepts onto CATIA: tools are like constructors in object-oriented-programming; features […]