Module for visualizing openafpm-cad-core’s 3D wind turbine model in a web browser.
The model housed in openafpm-cad-core is made with the open-source CAD program, FreeCAD.
The following is a high-level explanation for how openafpm-cad-core and openafpm-cad-visualization fit together:
openafpm-cad-core
    .obj) format.openafpm-cad-visualization
    .obj file) with three.js for visualization in a web browser.
Install Yarn.
npm install yarn -g
Install dependencies.
yarn install
openafpm-cad-core.(OPTIONAL) Build bundle if you want to make changes to files in src/.
npm run watch
Start server.
npm run serve
Navigate to http://127.0.0.1:8080/ in your web browser of choice. Currently tested in Chrome.
Additionally, on UNIX-like operating systems, you can run npm start; which runs npm run watch and npm run serve in parallel.
A list of object names that MUST be present in the .obj file for the Wind Turbine.
In the Wavefront .obj format, object names start with o and are delimited with a space on their own line (e.g. o Coils).
* Denotes and “ends with” match is performed.
Construct a new OpenAFPM CAD visualization instance.
Behind the scenes constructs a WebGLRenderer, and a single instance is intended to be used throughout the lifetime of various visualizations (i.e. Wind Turbine and tools).
It also appends style elements to the head of the document.
| Name | Type | Required | Description | 
|---|---|---|---|
| options | Object | true | See below rows documenting properties. | 
| options.rootDomElement | Element | true | DOM element to mount visualization elements to. | 
| options.width | number | true | Width of visualization. | 
| options.height | number | true | Height of visualization. | 
| Name | Type | Required | Description | 
|---|---|---|---|
| loadObj | function(): Promise.<string> | true | Zero-argument function returning a Promisethat resolves to Wavefront OBJ file contents. | 
| assembly | [ string] | true | Assembly of visualization. Must be one of "WindTurbine","StatorMold","RotorMold","MagnetJig", or"CoilWinder". | 
| furlTransformPromise | Promise.<FurlTransform> | truewhentype==="WindTurbine",falseotherwise. | When assembly==="WindTurbine", thePromisemust resolve to aFurlTransformobject. See below table for details. | 
| Name | Type | Required | Description | 
|---|---|---|---|
| furlTransform | Object | true | An object representing how to furl the tail. | 
| maximum_angle | number | true | Maximum angle (in degrees) to furl the tail before high end stop hits the yaw bearing pipe. | 
| transforms | Array.<Transform> | true | Three element array of Transformobjects needed to furl the tail. See below table for details. | 
| Name | Type | Required | Description | 
|---|---|---|---|
| transform | Object | true | An object representing a 3D transformation in Axis–angle representation. | 
| transform.name | string | false | Name of transformation for descriptive purposes. (optional). | 
| transform.position | Array.<number> | true | Three element array for x, y, and z coordinates. | 
| transform.axis | Array.<number> | true | Axis of rotation, three element array for x, y, and z axes. | 
| transform.angle | number | true | Angle of rotation (in radians). | 
Resize visualization to specified width and height.
| Name | Type | Required | Description | 
|---|---|---|---|
| width | number | true | Width to resize visualization to. | 
| height | number | true | Height to resize visualization to. | 
Returns: undefined
Display tooltip if cursor hovers over part and update internal mouse coordinates.
This method is debounced with a 10 millisecond wait time.
| Name | Type | Required | Description | 
|---|---|---|---|
| event | MouseEvent | true | mousemove event. | 
Returns: undefined
Performs various clean-up such as disposing geometries and materials.
Returns: undefined
Basic themeing support is available via the data-theme attribute on the rootDomElement.
Supported values include "light" (the default) and "dark".