Hide Table of Contents
ICreateTransform Method (IMathUtility)

Creates a new math transform.

.NET Syntax

Visual Basic (Declaration) 
Function ICreateTransform( _
   ByRef ArrayDataIn As System.Double _
) As MathTransform
Visual Basic (Usage) 
Dim instance As IMathUtility
Dim ArrayDataIn As System.Double
Dim value As MathTransform
value = instance.ICreateTransform(ArrayDataIn)
MathTransform ICreateTransform( 
   ref System.double ArrayDataIn
MathTransform^ ICreateTransform( 
&   System.double% ArrayDataIn


  • in-process, unmanaged C++: Pointer to sixteen (16) components of the transform (see Remarks)
  • VBA, VB.NET, C#, and C++/CLI: Not supported

    See In-process Methods for details about this type of method.

  • Return Value

    Newly created math transform or null if the operation fails


    Transformation matrix data:

       |a b c . n |

        |d e f . o |

        |g h i . p |

        |j k l . m |

    The SOLIDWORKS transformation matrix is stored as a homogeneous matrix of 16 elements, ordered as shown. The first 9 elements (a to i) are elements of a 3x3 rotational sub-matrix, the next 3 elements (j,k,l) define a translation vector, and the next 1 element (m) is a scaling factor. The last 3 elements (n,o,p) are unused in this context.

    The 3x3 rotational sub-matrix represents 3 axis sets:

    • row 1 for x-axis components of rotation
    • row 2 for y-axis components of rotation
    • row 3 for z-axis components of rotation

    The 3 axes are constrained to be orthogonal and unified so that they produce a pure rotational transformation. Reflections can also be added to these axes by setting the components to negative. The rotation sub-matrix coupled with the lower-left translation vector and the lower-right corner scaling factor creates an affine transformation, which is a transformation that preserves lines and parallelism; i.e., maps parallel lines to parallel lines.

    If the 3 axis sets of the 3x3 rotational sub-matrix are not orthogonal or unified, then they are automatically corrected according to the following rules:

    • If any axis is 0, or any two axes are parallel, or all axes are coplanar, then an identity matrix replaces the rotational sub-matrix.

    • All axes are corrected to be of unit length.

    • The axes are built to be orthogonal to each other in the prioritized order of Z, X, Y (X is orthogonal to Z, Y is orthogonal to Z and X).


    See Also


    SOLIDWORKS 2001 FCS, Revision Number 9.0

    Provide feedback on this topic

    SOLIDWORKS welcomes your feedback concerning the presentation, accuracy, and thoroughness of the documentation. Use the form below to send your comments and suggestions about this topic directly to our documentation team. The documentation team cannot answer technical support questions. Click here for information about technical support.

    * Required

    Subject:   Feedback on Help Topics
    Page:   ICreateTransform Method (IMathUtility)
    *   I acknowledge I have read and I hereby accept the privacy policy under which my Personal Data will be used by Dassault Systèmes

    Print Topic

    Select the scope of content to print:


    We have detected you are using a browser version older than Internet Explorer 7. For optimized display, we suggest upgrading your browser to Internet Explorer 7 or newer.

     Never show this message again

    Web Help Content Version: API Help (English only) 2018 SP05

    To disable Web help from within SOLIDWORKS and use local help instead, click Help > Use SOLIDWORKS Web Help.

    To report problems encountered with the Web help interface and search, contact your local support representative. To provide feedback on individual help topics, use the “Feedback on this topic” link on the individual topic page.