DG Kernel Documentation


Skip Navigation Links.
Start page
Quick Start
Search Page
Installation
Overview of the software
What is new
Licensing
Expand ModelsModels
Expand DG Kernel ComponentsDG Kernel Components
Expand API ReferenceAPI Reference
Expand Samples and TutorialsSamples and Tutorials
Expand GraphicsGraphics
Expand Math ObjectsMath Objects
Collapse DeprecatedDeprecated
Redistribution
Model Viewer
Open Source
Support
Skip Navigation LinksHome Page > Deprecated > Deprecated Geometry > 3DS > 3DS Generator Search Documentation


Runtime 3DS Construction

Entities with 3DS geometry can be created using IObjectGenerator_DG.Create("IEntity_DG") > IEntity_DG > IEntity_DG.SetGeometryType("3DS")

 

The information below describes construction of 3DS entities using lower level method via COM Program or Class ID. It can be useful when DK Kernel is used as a background engine or in a command line application without a DGK control window.

Sect3DGenerator class

This topic describes creation of new 3DS objects in the model programmatically at runtime using Sect3DGenerator COM class. See also Object Array sample

Sect3DGenerator is an Object Generator, which allows creation of new Generic 3D Objectss. In COM terminology Sect3DGenerator is a Class Factory. It can be instantiated in COM-enabled development environments by using either its Class ID or Program ID (see below). Note that DG Kernel control does not have to be created in the application before creation of the object. 

In .NET environment Sect3DGenerator can be created using standard new operator as (C# example):

       KernCADnet.Sect3DGeneratorClass sect = new KernCADnet.Sect3DGeneratorClass();

Actual name of the wrapper class might be different in different versions of the development environment. Refer to Object Browser in the project after adding a reference to the KernelCADnet component (See Patch Tutorial).

In C++ the Sect3DGenerator can be instantiated by using its Class ID and call to CoGetClassObject() COM function. See CObjArrayDlg::Create3DS() method of Object Array sample for details of implementation.

In native Visual Basic an instance of the class can be created using the Program ID and CreateObject() API as follows:

            Dim gener3D As Object

            gener3D = CreateObject("KERNELCAD.Entity3D.1")

Sect3DGenerator implements a single interface I3DSectionGenerator, which can be obtained via call to CreateInstance() COM API in C/C++ or a cast in other languages.

Actual 3D Entity objects can be created using Create() method of I3DSectionGenerator interface. The method returns ISection interface, which can be used in a call to Add() method of IArray interface to insert the new object in the model or make it a child entity of another object. Query ISection > IEntity_DG to use DG interface, and perhaps add the entity via IModel_DG.

Using Create method of IDIObjGenerator with eType parameter set to eObjType3DSGenerator provides another method of obtaining I3DSectionGenerator interface.

IDs of Sect3DGenerator 

Class ID:

// {44886EA6-F4FC-420a-A27B-BF095946D608}
static const GUID CLSID_Sect3DGenerator = 
{ 0x44886ea6, 0xf4fc, 0x420a, { 0xa2, 0x7b, 0xbf, 0x9, 0x59, 0x46, 0xd6, 0x8 } };

Program ID:  

KERNELCAD.Entity3D.1

These definitions can also be found in Samples\VC\Inclide\DIInterface.h file of the installation directory.