FAQ’s

Licensing and Redistribution

Question:
Which licenses are needed if an application using CADMAI modules should be programmed and distributed?

Answer:
If CADMAI modules should be redistributed in connection with 3rd party applications a bulk license (called Bulk...Lic) is needed. The CADMAI modules are then licensed in context of your application by transferring the license string to specific module methods and may be redistributed to end users without any additional costs.
To develop an application a development license for each developer (called Single...Lic) is needed.

Question:
Is there a trial version of your product available?

Answer:
The software can be downloaded at www.cadmai.com/cadmai.zip
The only restriction in a non registered installation is an "unregistered" text in the background window.

Question:
After purchasing a license how do we receive the development modules?

Answer:
The CADMAI software can be downloaded at www.cadmai.com/cadmai.zip and includes all necessary modules. This is the final software for development and redistribution.
If it is not licensed it just shows an "unregistered" text in the background window
 

Question:
How are the CADMAI modules licensed after a license has been purchased?

Answer:
The Single... licenses are just license strings which can be entered in the CADMAI licensing tool (Licensing.exe).  This tool stores the license string in the registry and in the user cadmai.ini file
The Bulc... licenses are also just license strings. They are used in the 3rd party application as a parameter to register the used CADMAI module in the context of the application.
More information can be found in the API help chm file under API –> Licensing.
 

Question:
To build CmiWindowAPI based applications also a reference to CmiObjectApi is needed.
Do we have to buy CmiWindowsApi and CmiObjectApi licenses?

Answer:
No, the CmiWindowsApi and the CmiBatchApi license include also access to the CmiObjectApi.
 

Question:
Which modules can be redistributed and how much does it cost.

Answer:
With the bulk licenses developers are allowed to redistribute the used CADMAI modules as a part of their application to end customers without any royalties.
So the licenses must only be bought once.
The required modules for redistribution can be found in the API help chm file under API->Redistribution

Basic / API

Question:
Is CADMAI a 3D library or a software application?

Answer:
CADMAI is a standalone CAD system as well as a library for 3rd party applications.
The installed end user modules (CmiNativeUI.exe, CmiRibbonUI.exe, CmiTestClient.exe, ViewExtract.exe, CmiServerSession.exe) have been created using the CADMAI API modules.
These end user modules are mainly used to design the relational models which then can be used by the customer’s apps.
The API modules can also be used to create own branded CAD designer applications.
The setup provides many examples incl. Source code in C:\Program Files (x86)\CADMAI Software GmbH\CADMAI V4\examples\programming
 

Question:
What is the difference between the offered API's

Answer:
CADMAI offers the following modules which support a different set of functionality:

  • CmiObjectApi is the base API library.
    It supports the creation of basic CAD objects like Points, Arcs, Lines, Dimensions, Solids, Coordinate systems,...
    The CAD objects can be used in standard OpenGL windows or in batch mode without a graphical window.
    There is no support for combined objects like models or assemblies.
    All OpenGL functionality (selection, printing, etc) must be created by the application developer.
    The library is available for native development (C/C++) and .Net development (C#,...)
    The license for this API is SingleCmiObjectApiLic/BulkCmiObjectApiLic

The next 3 API modules use CmiObjectApi internally and provide combined objects (models, assemblies), relation management (Actions, Entities), parametric, Import/Export to the application developer

  • CmiBatchApi can be used to create technical applications which should run in background mode with no graphical window
  • You can:

    • Create, open and save local CADMAI models
    • Steer the models using the relations and parameters
    • Create CADMAI Actions and Entities
    • Import and export data
    • Access the internal basic CAD objects provided by the CmiObjectApi

    You cannot 

    • Interact graphically
    • Start animations
    • Open more than one model parallel

    The library is available for native development (C/C++) and .Net development (C#,...)
    The license for this API is SingleCmiBatchApiLic/BulkCmiBatchApiLic

  • CADMAI Controls (AxtiveX Control, DotNet control, Browser-Plugin)
    The CADMAI controls can be used to provide CAD functionality in different programming environments.
    • The ActiveX control can be used in any application which supports COM (e.g. Delphi, VB6, .NET, Internet Explorer, ...)
    • The DotNet control can be used in DotNet environments
    • The Plugin can be used in non Microsoft web browsers e.g. Firefox

    You can

    • Create, open and save local CADMAI models
    • Download CADMAI models from web URLs
    • Steer the models using the relation management
    • Create CADMAI Actions and Entities
    • Import and export data
    • Interact graphically (e.g. Selection, 3D View manipulation (Rotation, ...)
    • Print
    • Start animations

    You cannot

    • Access the internal basic CAD objects provided by the CmiObjectApi
    • Open more than one model parallel

    The license for this API is SingleCmiControlApiLic/BulkCmiControlApiLic

  • CmiWindowApi
    The CADMAI window API offers the use of CADMAI graphical windows in foreign applications.
    Similar to the concept of the common controls from Microsoft which provides basic controls like Buttons, Input fields,... to applications the CmiWindowApi provides CADMAI windows to the developer.
    There are two different CADMAI window classes available
    • SingleCadmaiWindow, which includes one graphical window and (switchable) tool bar, status bar and structure windows.
    • EmbeddedCadmaiWindow which offers one or more graphical windows and a structure window which handles the content of all graphical windows.

    You can

    • Embed one or more CADMAI windows in your application
    • Create, open and save local CADMAI models
    • Steer the models using the relation management
    • Create CADMAI Actions and Entities
    • Import and export data
    • Interact graphically (Selection, 3D View manipulation (Rotation ...))
    • Print
    • Start animations
    • Access the internal basic CAD objects provided by the CmiObjectApi

    You cannot

    • Download CADMAI models from web URLs

    The library is available for native development (C/C++) and .Net development (C#,...)
    The license for this API is SingleCmiWinApiLic/BulkCmiWinApiLic
     

Question:
Which programming language can I use?

Answer:
The CADMAI kernel modules are programmed in C/C++ and provide their functionality for C/C++ access via import libraries.
For the .Net environment each module has a .Net access module which publishes the needed functionality to the .Net programming languages.
The control modules support the usage of C,C++,DotNet and COM
So C/C++, C#, VB.Net, COM, JavaScript, VB6, Delphi ... can be used as primary programming languages for applications.
 

Question:
All API samples are built in the installation folder. Is it possible to build and run a project in any directory?

Answer:
The necessary CADMAI files must be copied into the target directory.
The API chm documentation -> API -> Redistribution chapter shows which files are needed
 

Web development

 Question:
An application should be written in ASP.NET and should reside on our customer’s servers.
Users connect and use it to graphically configure the customer’s products.
Which is the right CADMAI module for this requirement?

Answer:

From the software side of view the scenario looks like this:

  1. The CADMAI control/plugin must be installed on the end users machine
  2. The download URL of the control setup must be hosted on the web site
  3. The ASP.NET part is located on your customer’s site. This part generates html pages which reference and steer the CADMAI control on the end user’s machine.

From the licensing side of view there are the following possibilities:

  1. The end user licenses the CADMAI control with the SingleCmiControlApiLic on his computer (client site licensing)
  2. The web site provider licenses the control as a part of the html page with the BulkCmiControlApiLic (server site licensing for all users which load the web site)

An online sample for the usage of CADMAI in Web environments can be found at http://www.cadmai.com/WebApiSamples/Control/webapisamples.html

After downloading and installing the complete CADMAI package (www.cadmai.com\cadmai.zip) html samples can be found in the directory "CADMAI Installation folder\examples\programming\Web\BasicPages\Control".
 
The html part of the samples references the CADMAI control via the <Object> tag
e.g.
<OBJECT ID="CmiControl" NAME="cmi1" HEIGHT=400 WIDTH=600 CLASSID="CLSID:B6CCAB4C-E98B-46F6-BE14-46A831115A00"></OBJECT>
 
The JavaScript part steers the control
e.g.
 
function initializeControl()
{
  // license the CADMAI control from the html page,
  // (can be encrypted)
  CmiControl.RegisterCmiCtrl (“Your license string”) 
  CmiControl.CreateCadWindows();
  CmiControl.InteractiveMode = 0;
  CmiControl.Language = "en"
 
  //adding an event handler
  CmiControl.attachEvent('CmiNotification', cmiEventHandler);
 
  //load model
  CmiControl.LoadModelFromWeb("http://www.cadmai.com/TestModels/brain.3ds",1,0);   
}