# Documentation

Create object of `PmitCadCSH` class

## Syntax

```PmitError = pmit_create_cadcs(PmitCadCSH* const pmitCadCSHOut, const char* name, const char* nodeID, double rotation[9], double trans[3])```

## Description

```PmitError = pmit_create_cadcs(PmitCadCSH* const pmitCadCSHOut, const char* name, const char* nodeID, double rotation[9], double trans[3])``` returns an error status `PmitError`.

With `pmit_create_cadcs`, you can create an object of `PmitCadCSH` class to represent a coordinate system in an API CAD model.

## Input Arguments

 `name` String naming the coordinate system `nodeID` String uniquely identifying the coordinate system for associativity purposes `rotation` Double-type real rotation 9-vector specifying rotational transformation of the origin of this coordinate system with respect to its parent CAD model. `trans` Double-type real 3-vector specifying translation of the origin of this coordinate system with respect to its parent CAD model.

## Output Arguments

 `pmitCadCSHOut` Handle object of `PmitCadCSH` class representing a coordinate system in an API CAD model

collapse all

### Orthogonal Matrix

A matrix R is orthogonal if it satisfies the matrix multiplication rule RT*R = R*R T = 1, where 1 is the identity matrix.

### Rotational Transformation: Rotation Matrix and Rotation Vector

The rotation vector input is a 9-vector, defined from the 3-by-3 orthogonal rotation matrix R, that represents the rotational orientation of a CAD model component with respect to its parent CAD model.

$R=\left(\begin{array}{ccc}{R}_{11}& {R}_{12}& {R}_{13}\\ {R}_{21}& {R}_{22}& {R}_{23}\\ {R}_{31}& {R}_{32}& {R}_{33}\end{array}\right).$

You define the rotation 9-vector column-wise:

```rotation = [R(1,1) R(2,1) R(3,1) R(1,2) R(2,2) R(3,2) ...            ... R(1,3) R(2,3) R(3,3)]```