DG Kernel Documentation


Skip Navigation Links.
Start page
Quick Start
Search Page
Installation
Overview of the software
What is new
Licensing
Collapse ModelsModels
Collapse DG Kernel ComponentsDG Kernel Components
Collapse API ReferenceAPI Reference
Interface List
Vector Space
Collapse General GeometryGeneral Geometry
Collapse ModelModel
Collapse ViewView
Collapse General ComputingGeneral Computing
Collapse Samples and TutorialsSamples and Tutorials
Collapse GraphicsGraphics
Collapse Math ObjectsMath Objects
Collapse DeprecatedDeprecated
Redistribution
Model Viewer
Open Source
Support
Skip Navigation Links Search Documentation


MiniCAD Sample

Source code for MiniCAD sample is available in Samples\VB folder of the installation directory. We suggest to copy  whole VB  directory to location outside of the installation folder. MiniCAD is an Visual Basic 6.0 form-based application which displays DI model using DG Kernel ActiveX control and allows to modify geometrical parameters of the model.

Note that VB 6.0 samples require Common Dialogs component enabled in the development environment (details).

See also C# MiniCAD SampleVisual Basic .NET MiniCAD Sample,   Visual C++ MiniCAD Samples,    All samples

Description

Implementation

Almost all functionality is implemented by MiniCADForm. Navigation through the interface hierarchy is the most important task. InitModelInfo Sub retrieves m_iModel IModel interface. Interface to the current entity is kept into m_iEntity. It is obtained by UpdateSectInfo Sub using call

m_iModel = KernelCADCtrl.GetModel();

The same Sub UpdateSectInfo acquires IAxiBase interface using call

Set m_iAxiBase = m_iEntity

Prior to that we query the entity type with

m_iEntity.GetEntityType (szSectType)

to check if the entity is a "3DSection". Otherwise it is a Surface of Revolution, which does not have base. 

Interface List says that we can reyrieve two more interfaces from from m_iEntity, namely  I3DObject and IStrip. This is the last job done UpdateSectInfo. Note that m_iStrip interface is implemented by object which represents cross-entity segment strip in case of Generic 3D Entity and profile strip in case of Surface Of Revolution.

Actual geometry changes are done in commandApply_Click() handler through IElement interfaces which are kept in m_iElemJoint and m_iElemSegment members. These are obtained by UpdateJointInfo and UpdateSegmentInfo.