| Building Block Software The Boundary Offset Experts | Click here to tell a colleague about Building Block Software |
| products | services | documentation | recommend | blog | contact | |
CAD/CAM Developer's Kit / 3D
The CAD/CAM Developer's Kit / 3D (CCDK/3D) provides four key software components needed for any type of application that works with geometry. These components are:
- DXF input and output (online docs)
- geometry display (online docs)
- 2D and 3D geometric computations, such as transformations and intersections (2d and 3d online docs)
- list management (online docs)
These software "building blocks" enable programmers to quickly develop applications without being distracted by the basic geometry issues handled by these routines.
Not just for CAD/CAM anymore...
When the CAD/CAM Developer's Kits (CCDKs) were first developed, they were used mainly by programmers who wrote CAD/CAM applications. Since then, a lot of programmers in other fields -- such as mapping, architecture, finite element analysis, machine control and robotics -- have also discovered how much time and effort CCDKs save.
DXF Input and Output
The Building Block Software CAD/CAM Developer's Kit / 3D provides functions that enable your programs to read and to write data in DXF format. These functions are collectively called "CCDK/DXF".
DXF, which stands for drawing exchange file, is a file format for geometric and other types of CAD/CAM data. Specified by Autodesk, Inc., it has become a standard in the PC-based CAD/CAM world. Nearly all PC-based CAD/CAM systems can read and write files in DXF format.
The two primary uses for DXF files are: permanent data storage, and communication between CAD/CAM systems and other programs.
The CCDK/DXF functions read and write files in the DXF format. These routines can read objects one at a time, or in batches. They also can read and write in both ASCII and binary formats.
Geometry Display
The Building Block Software CAD/CAM Developer's Kit / 3D provides functions that enable programs to set up 2D and 3D viewports, and to display geometry in them. These functions are collectively called the "CCDK/3D display routines."
Display routines can be interfaced with any of the popular display systems such as Windows GDI and OpenGL.
2D and 3D Geometric Computations
The CAD/CAM Developer's Kit functions that perform geometric operations with 2D points, vectors and curves are called "CCDK/2D". CCDK/2D supports the following:
- construction of lines, arcs, circles, ellipses, polycurves and NURB splines
- coordinate, tangent vector and curvature evaluation
- computation of curve intersection points
- curve offset construction
The Building Block Software CAD/CAM Developer's Kit / 3D also provides functions that enable your programs to create 3D curves and points, and to perform computations with them. These 3D geometry functions are an extension of CCDK/2D, and add operations such as projecting a circle onto a plane to create an ellipse, and 3D mode called "2D-on-a-3D plane".
Geometry in the "2D-on-a-3D plane" mode is a very convenient way to work with 2D geometry positioned on an oblique plane in 3D space. When any information on this plane is required in 3D format, it can be converted to 3D using the transformation associated with the local coordinate system. Similarly, 3D geometry can be "projected" into this 2D coordinate system.
List Management
The Building Block Software CAD/CAM Developer's Kits provide functions that enable your programs to build and manage lists of data. These functions are collectively called "CCDK/Lists".
The two object types used for list management are:
- list
- item
A list is an ordered collection of objects.
An item marks a location on a list.
A CCDK list is a doubly-linked list, and provides a number of features that are important for CAD/CAM and other applications. These features are:
- the ability to navigate forwards and backwards
- the ability to delete the first object on the list without changing the address that refers to the head of the list
- the ability of an object to be on more than one list at a time
- the ability of an object to be on a list more than once
Copyright © 1988-2009 Building Block Software, Inc. All rights reserved.