KernelCAD Documentation

DInsight Home
Skip Navigation Links.
Start page
Quick Start
Installation
Overview of the software
What is new
Collapse KernelCAD ModelsKernelCAD Models
Collapse KernelCAD ComponentsKernelCAD Components
KernelCAD Control
KernelCAD .NET Control
Methods and Properties
Menu
Model Explorer
Birds Eye View
Programming
Direct User Access
Direct Operations
Interface Queries
Printing Support
Data Types
Modes of KernelCAD Control
DIObjectGenerator class
Properties
FlatObjectArray Poperty
Context
64 bit development
Dual Mode
Initialisation Context
Overlay Editor
Memory Management
Input validation
Collapse Advanced functionalityAdvanced functionality
Collapse InterfacesInterfaces
Alphabetical list
I3DGrid
I3DBugger
I3Dpt
IAxiBase
IAxis
IBoolSection
IBoolSectionEx
IBoundary
IColor
IConstraint
IData
IDiffSurface_KC
IDIFont
IDraw
IDrawUtil
IDraw2
IElem
IElement
IKCLine
ILightSource
ILocation
ILocationEx
IMaterial
IMetrics
IMetrics2
IModel
IModel2
IModelEx
IPatch
IKCPathCollisionDetector
IProfiles
IPropertyArray
IPropertyArray2
IStdShape
IStrip
ISurface
IText
ITexture
ITransform
IUnknown
Collapse Open Cascade TechnologyOpen Cascade Technology
Collapse DataData
Collapse MovementMovement
Collapse FramesFrames
Collapse Oriented ObjectsOriented Objects
Collapse SectionsSections
Collapse GeneralGeneral
Collapse Topological InterfacesTopological Interfaces
Collapse Viewing InterfacesViewing Interfaces
Collapse Lines And CurvesLines And Curves
Collapse Symmetry InterfacesSymmetry Interfaces
Collapse Clipping plane interfacesClipping plane interfaces
Collapse AlgorithmsAlgorithms
Collapse 2D Geometry2D Geometry
Collapse Programming Samples and TutorialsProgramming Samples and Tutorials
Collapse OverviewOverview
Collapse DeploymentDeployment
Collapse .NET Samples.NET Samples
Collapse C++ SamplesC++ Samples
Collapse Visual Basic SamplesVisual Basic Samples
Collapse Delphi SamplesDelphi Samples
Collapse 3D Debugger3D Debugger
Collapse DeploymentDeployment
Licensing
Model Viewer
Open C++ Source
Technical Support
Skip Navigation LinksHome Page > KernelCAD Models > Sections > Surface and Solid Sections > 3DS Sections > Surface Patches
Patches

Surface Patches of Generic 3D Objects

The simplest surface in DI models is a 3DS patch.  A 3DS patch is a piece of surface between two 3D Curved Segments and flat edges at top and bottom cross-section planes.

 

Simple Arc Patch

Fig 1. A 3DS patch with one straight (right) and one curved (left) edge.

Fig2. The same patch in wire frame.

A patch has distinct orientation. Figure 2 shows names of each of four edges in a patch. Left and right edges are considered more important. They are 3D Curved Segments. Unless we point out specifically, by edges of a patch we normally mean left and right edges.

Edges can merge at any point or even coincide at whole length. 

  

Patch with edges merged at the top

Fig 3. Patch with edges merged at the top. frame

Surface of a patch in projection to z-axis is contained exactly between two sequential base knots. This is the consequence of the fact that both (left and right ) edges of the patch have ends with z coinciding with two sequential knots.

In the model from Figure 2 if the second base knot  is modified whole patch will appear expanded or contracted along z-axis.

Another assumption about patches in 3DO is that in each cross-section patch is an arc or straight line.

Fig 3. Patch and its cross-section at the middle z-position.

Modification of curvature if cross-sectional arc (using Cross-section Editor of 3D Debugger or programmatically) leads to changes of internal curvature of the surface patch. 

There two distinct types of patches: general arc patch similar to one in Fig 1-3 and linear patch. Cross-line patch is a patch which in any cross-section is a straight line. Cross-line patch sometimes not quite correctly is referred to as a flat patch.

 

Cross Line Patch

Fig 4. Cross-line patch.

In 3D Debugger type of patch can be changed dynamically by using "Change Class" command of the Cross-section View. Programmatically it can be achieved using SetType method of IStripTopol interface. When an arc patch is converted to Cross-line patch its curvature changed to zero at every cross--section but edges remain unchanged.  

3DS Patches are special kinds of Generic Patches.

Standard and Radial Arc 3DS Patches

Arc patch has a single parameter, which determines how curved the patch is. By default this is curvature. This can be changed to make it radius. Arc patches which have radius  as its parameter are called Radial Patches. Because radius and curvature are inverse of each other, a radial patch with constant  parameter equal to r is geometrically the same as standard Arc Patch with curvature 1/r. Despite that, normally Radial and standard arc patches  are different in shape. For example Radial Arc patch with radius equal 0 at one knot and 1 at another can not geometrically coincide with any standard arc patch.

Radial patches have restriction that the radius can not change its sign at whole length of z range. Because of that, standard arc patches are easier to modify but Radial Patches are more intuitive in many cases, when modeling standard shapes like cones or spheres. 

All patches in a Patch Strip currently must have the same type.

Type of an arc patch can be changed dynamically by using "Element type" controls on the Current Object page of Modeling Studio or in Properties dialog (Context menu in Cross-section editor).