# Tag: Geometry & Topology

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. […]
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 […]
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 […]
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 […]
While I was experimenting with xGenerative Design (xGen) a while ago, I had the idea of revisiting old tutorials that I developed and taught in classes over the past years using RhinoScript, FormZ, Dynamo, Digital Project and CATIA. In my experience, this is one of the best to learn new tools. Since I like to […]
As architects we’re often searching out novel approaches to patterning for building facade design or custom building interiors. Algorithms that approximate processes in nature can be a good source material for pattern exploration. Their quick to run once developed and provide a large array of design variability with some simple tweaking. Approximating the veining pattern, […]
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 […]
This EKL code shows how to read data from an Axis System object to create corresponding Point object at the origin, as well as XY, YZ, and ZX planes matching those of the axis system. /* inputs: -axis: AxisSystem -geoset: OpenBodyFeature */ let originVector(Vector) let originXmag, originYmag, originZmag(Real) let axMatrix(Matrix) let xxMag, xyMag, xzMag (Real) […]
Objects Geometric objects, called features in CATIA. An object belongs to one of four types: Point, Curve, Surface, or Solid. These objects, theoretically, act as spaces. For example, it is possible to place a Point along a Curve. Here, the Curve is a one dimensional space within which a point is created. Objects can exist […]