FAQ’s

Lizenzierung und Weitergabe an Dritte

Frage:
Welche Lizenzen sind notwendig um eine Applikation mit CADMAI Modulen zu entwickeln und an Dritte weiterzugeben?

Antwort:
Um CADMAI Module an Dritte weitergeben zu dürfen, sind Mengenlizenzen (Bulk Licenses) notwendig. Diese heißen Bulk...Lic
Die verwendeten CADMAI Module werden dann innerhalb der Applikation durch die Übergabe des Lizenzstrings an bestimmte Methoden der CADMAI Module lizenziert und dürfen an Dritte ohne weitere Kosten weitergegeben werden.
Zur Entwicklung der Applikation sind Entwicklungslizenzen für jeden Entwickler notwendig die die benötigten CADMAI Module innerhalb des Entwicklungsrechners freischalten. Diese heißen Single...Lic.
 

Frage:
Gibt es eine Testversion von CADMAI

Antwort:
Die Software kann unter www.cadmai.com/cadmai.zip heruntergeladen werden.
Die einzige Einschränkung einer nicht lizenzierten gegenüber einer lizenzierten Version ist die Darstellung des "unregistered" Textes im Grafikfenster.
 

Frage:
Woher bekommt man die Entwicklungsmodule nach dem Kauf einer Lizenz.

Antwort:
Die CADMAI Software kann unter www.cadmai.com/cadmai.zip heruntergeladen werden und enthält alle notwendigen Module sowohl für die Entwicklung als auch für die Redistribution.
Im nichtregistrierten Fall wird der Text "unregistered" im Grafikfenster angezeigt.
 

Frage:
Wie lizenziert man die CADMAI Module wenn man eine Lizenz gekauft hat?

Antwort:
Die Entwicklungslizenzen (Single...Lic) sind Textstrings, die man im CADMAI Lizenz Tool (Licensing.exe) eingibt.
Die Lizenzen werden von diesem Tool dann sowohl in die Registry, als auch in die CADMAI Konfigurationsdatei (cadmai.ini) geschrieben.
Die Redistributionslizenzen sind ebenfalls Textstrings, die die Endbenutzer Applikation an die zu lizenzierenden CADMAI Module per Methodenaufruf übergibt.
In der API Hilfe unter API -> Licensing findet man weitere Informationen hierzu..
 

Frage:
Wenn man Applikationen entwickelt, die das Modul CmiWindowsApi verwenden, muss ebenso eine Referenz auf das Modul CmiObjectApi gesetzt werden.
Muss man dann sowohl die CmiWindowsApi als auch die CmiObjectApi Lizenzen kaufen?

Antwort:
Nein. Die Lizenz der CmiWindowsApi sowie der CmiBatchApi schließt die CmiObjectApi mit ein.
 

Frage
Welches Modul kann an Dritte weitergegeben werden und wie viel kostet dies?

Antwort:
Durch den Kauf der Mengenlizenzen (Bulk...Lic) erwirbt der Kunde das Recht CADMAI Module im Rahmen seiner Applikation an Endbenutzer ohne weitere Kosten weiterzugeben.
Die Mengenlizenzen müssen also nur einmal erworben werden.
Die notwendigen Module, die weitergegeben werden müssen, hängen von der verwendeten API ab. Eine genaue Aufstellung findet sich in der API Hilfe unter API->Redistribution

Grundlagen / API

Frage:
Ist CADMAI eine 3D Programmierbibliothek oder eine Software Applikation?

Antwort:
CADMAI ist sowohl ein direkt verwendbares 3D CAD System, als auch eine Programmierumgebung für eigene Applikationen.
Die mit dem Setup installierten Endbenutzer-Applikationen (CmiNativeUI.exe, CmiRibbonUI.exe, CmiTestClient.exe, ViewExtract.exe, CmiServerSession.exe) sind mit den enthaltenen API Modulen erstellt worden.
Mit diesen Endbenutzer-Applikationen können beispielsweise relationale CAD Modelle erstellt werden, die dann in den eigenen Applikationen verwendet werden.

Die API Module können aber ebenso verwendet werden, um eigene CAD Applikationen zu erstellen.
Das Setup stellt im Verzeichnis C:\Program Files (x86)\CADMAI Software GmbH\CADMAI V4\examples\programming zahlreiche Beispiele incl. Source Code zur Verfügung.
 

Frage:
Wie unterscheiden sich die unterschiedlichen API's?

Antwort:
CADMAI enthält die folgenden API's, die unterschiedliche Funktionalität bereitstellen:

  • CmiObjectApi ist die Basisbibliothek
    Sie unterstützt die Erzeugung von CAD Objekten wie zum Beispiel Punkte, Linien,  Kreise, Bemaßungen, Volumenkörper, Koordinatensysteme,...
    Diese CAD Objekte können in jedem Standard-OpenGL Fenster oder im Batch Modus ohne Grafik verwendet werden.
    Die Bibliothek unterstützt nicht die Verwendung von kombinierten Objekten (z.B. Modelle oder Baugruppen)
    Das gesamte OpenGL Grafik-Handling (wie z.B. Selektion, Druckausgabe, etc.) muss vom Anwendungsentwickler implementiert werden.
    Die Bibliothek ist für native Entwicklung mit C/C++ und für DotNet Entwicklung (C#,...)  verfügbar.
    Die benötigte Lizenz ist SingleCmiObjectApiLic/BulkCmiObjectApiLic

Die folgenden 3 API Module verwenden die CmiObjectApi intern und stellen dem Anwendungsentwickler kombinierte Objekte (Modelle, Baugruppen), Relationsmanagement (Aktionen, Elemente), Parametrik und Import/Export Funktionalitäten zur Verfügung.

  • CmiBatchApi wird verwendet, um technische Applikationen zu erstellen, die im Hintergrund ohne Grafikfenster ausgeführt werden.
  • Man kann

    • CADMAI Modelle erzeugen, öffnen und speichern
    • Die Modelle über die Verwendung der Relationen und Parameter steuern
    • Neue CADMAI Aktionen und Elemente erzeugen
    • Daten importieren und exportieren
    • Auf die CAD Basisobjekte zugreifen, die von der CmiObjectApi bereitgestellt werden.

    Man kann nicht

    • Grafisch interagieren
    • Animationen starten
    • Mehr als ein Modell parallel öffnen

    Die Bibliothek ist für native Entwicklung mit C/C++ und für DotNet Entwicklung (C#,...)  verfügbar.
    Die benötigte Lizenz ist SingleCmiBatchApiLic/BulkCmiBatchApiLic

  • CADMAI Controls (AxtiveX Control, DotNet control, Browser-Plugin)
    Die Controls dienen dazu CAD Funktionalität in unterschiedlichsten Umgebungen bereitzustellen.
    • Das ActiveX Control kann in jeder Umgebung verwendet werden, die COM unterstützt (z.B. Delphi, VB6, DotNet, Internet Explorer,...)
    • Das DotNet Control kann in DotNet Umgebungen eingesetzt werden.
    • Das Plugin kann in unterschiedlichen Web Browsern (z.B. Firefox) eingesetzt werden

    Man kann

    • CADMAI Modelle erzeugen, öffnen und speichern
    • CADMAI Modelle über Web URL's laden
    • Die Modelle über die Verwendung der Relationen und Parameter steuern
    • Neue CADMAI Aktionen und Elemente erzeugen
    • Daten importieren und exportieren
    • Grafisch interagieren (z.B. Selektion, 3D Ansichtsmanipulation (Rotation, ...))
    • Drucken
    • Animationen starten

    Man kann nicht

    • Auf die CAD Basisobjekte zugreifen, die von der CmiObjectApi bereitgestellt werden
    • Mehr als ein Modell parallel öffnenl

    Die benötigte Lizenz ist SingleCmiControlApiLic/BulkCmiControlApiLic

  • CmiWindowApi
    Die CADMAI WindowsApi unterstützt die Erzeugung von CADMAI Grafikfenstern in Fremdapplikationen.
    Analog dem Konzept der CommonControls von Microsoft, das Basiscontrols wie Buttons, Eingabefelder, ... für Applikationen zur Verfügung stellt, stellt die CmiWindowsApi dem Entwickler CADMAI Fenster zur Verfügung.
    Es existieren folgende zwei Fensterklassen
    • SingleCadmaiWindow. Diese Klasse enthält ein Grafikfenster incl. schaltbarer
      Tool- und Statusleiste und einen Struktureditor, der den Inhalt des Grafikfensters behandelt.
    • EmbeddedCadmaiWindow. Mit dieser Klasse können mehrere Grafikfenster erzeugt werden, die durch einen Struktureditor behandelt werden.

    Man kann:

    • Ein oder mehrere CADMAI Grafikfenster in einer Applikation erzeugen
    • Die Modelle über die Verwendung der Relationen und Parameter steuern
    • Neue CADMAI Aktionen und Elemente erzeugen
    • Daten importieren und exportieren
    • Grafisch interagieren (z.B. Selektion, 3D Ansichtsmanipulation (Rotation, ...))
    • Drucken
    • Animationen starten
    • Auf die CAD Basisobjekte zugreifen, die von der CmiObjectApi bereitgestellt werden.

    Man kann nicht

    • CADMAI Modelle über Web URL's laden

    Die Bibliothek ist für native Entwicklung mit C/C++ und für DotNet Entwicklung (C#,...)  verfügbar.
    Die benötigte Lizenz ist SingleCmiWinApiLic/BulkCmiWinApiLic
     

Frage:
Welche Programmiersprache kann verwendet werden?

Antwort:
CADMAI selbst ist in C/C++ programmiert und stellt die Funktionalität über C/C++ mittels Importbibliotheken zur Verfügung.
Für die DotNet Entwicklung steht für jedes Modul ein DotNet Zugriffsmodul zur Verfügung, das die Funktionalität DotNet Programmiersprachen zur Verfügung stellt.
Die CADMAI Controls unterstützen C , C++, DotNet und COM
Somit lassen sich z.B. mit C/C++, C#, VB.Net, COM JavaScript VB6, und Delphi Anwendungen erstellen, die CADMAI Funktionalitäten verwenden.
 

Frage:
Alle API Beispiele werden im Installationsverzeichnis erzeugt. Kann man ein Projekt auch in einem anderen Verzeichnis erzeugen lassen?

Antwort:
Die notwendigen CADMAI Dateien müssen auffindbar sein. Dies kann man durch einfaches Kopieren der benötigten dll's in das Zielverzeichnis umsetzen.
In der API Hilfe unter API -> Redistribution steht welche Dateien notwendig sind.
 

Web Entwicklung

Frage:
Eine Applikation soll mit ASP.NET erstellt werden und auf dem Kundenserver liegen
Externe Benutzer sollen die Web Seite des Kunden aufrufen und die Produkte des Kunden grafisch konfigurieren.
Welches CADMAI Modul muss verwendet werden um diese Anforderung zu erfüllen?

Antwort:
Aus Software Sicht stellt sich das Szenario wie folgt da:

  1. Das CADMAI ActiveX-Control bzw. das Browser Plugin muss auf dem Rechner des Endbenutzers installiert sein.
  2. Der ASP.NET Teil befindet sich auf der Serverseite des Kunden. Dieser Teil erzeugt HTML Seiten, die das CADMAI Control auf der Seite des Endbenutzers laden und steuern.

Aus Lizenzierungs-Sicht gibt es folgende Möglichkeiten:

  1. Der Endbenutzer lizenziert das CADMAI Control auf seinem Rechner über eine SingleCmiControlApiLic Lizenz (clientseitige Lizenzierung)
  2. Der Provider der Web Seite lizenziert das Control als Teil seiner HTML Seite über die BulkCmiControlApiLic (serverseitige Lizenzierung für alle Benutzer, die auf die Web Seite gehen)

Ein Online Beispiel für die Verwendung von CADMAI im Web findet man unter http://www.cadmai.com/WebApiSamples/Control/webapisamples.html

Das CADMAI Setup (www.cadmai.com\cadmai.zip) installiert zahlreiche Beispiel für die Web Entwicklung unter
"CADMAI Installation folder\examples\programming\Web\BasicPages\Control".

 
Der HTML Teil der Beispiele enthält dabei eine Referenz auf das Control über das <OBJECT> Element
z.B.
<OBJECT ID="CmiControl" NAME="cmi1" HEIGHT=400 WIDTH=600 CLASSID="CLSID:B6CCAB4C-E98B-46F6-BE14-46A831115A00"></OBJECT>
 
Der JavaScript Teil steuert das Control
z.B.
 
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);   
}