Multi Diameter components

This tutorial demonstrates how to draw a multi-diameter tubing element. It also shows how to draw a sinusoidal curve on the external side of a cement or open-hole element.

# Multi Diameter Elements

This example uses multi-diameter elements such as "casing", "tubing" and "open hole".
For convenience, their implementations are registered in a MultiDiameterComponentFactoryRegistry instance.
According to MultiDiameterComponentNode class implementation, such elements have their geometries formatted as an array of geometry ranges.

import { initCanvas } from "/src/code/Schematics/MultiDiameterComponents/initCanvas.ts";
const createScene = (canvas) => initCanvas(canvas, false);
export { createScene };

createScene(document.querySelector('[ref="plot"]'));

If an element, such as "tubing" or "open hole", does not support an inner diameter then the "inner" geometry range element is not needed.

# Drawing a Sinusoidal Curve Along Cements/Open Holes

The user can draw a sinusoidal curve on the external side of a cement element and open-hole using the SinusoidNode object.
The API allows user to control geometry of the sinusoid as well as graphic attributes of the line. See the class SinusoidNode for detailed information.

import { initCanvas } from "/src/code/Schematics/MultiDiameterComponents/initCanvas.ts";
const createScene = (canvas) => initCanvas(canvas, true);
export { createScene };

createScene(document.querySelector('[ref="plot"]'));