Radial large dimensions measure and represent the radius of a circle, circular arc, or polyline arc segment as a dimension entity in primary and alternate units. To define the placement, the radial large dimension entity requires the center point of the circle or arc to be measured, chord point on the circle or arc to which the dimension line is drawn, text point that defines the location of the dimension text box, override point from which the dimension line is drawn, jog point through which the dimension line jogs, jog angle which defines the dog-leg of a dimension line, and the normal which orients a dimension in WCS. The circle or arc to be measured is the definition circle or definition arc.
The radial large dimension entity can be rotated, scaled, and oriented in WCS. Additionally, the center of the radial large dimension entity can be marked.
A radial large dimension entity consists of the following elements (no leader line or extension lines):
The common structure of the radial large dimension entity is defined by the placement of the dimension line relative to the definition circle or arc (inside or outside).
When the radial large dimension entity is placed inside of the definition circle or arc, the dimension line is drawn from the center point to the chord point.
When the radial large dimension entity is placed outside of the definition circle or arc, the dimension line is drawn from the outside to the chord point, in the direction of the center point.
For working with radial large dimension objects, use the OdDbRadialDimensionLarge class, which represents a radial large dimension entity, and manipulate its properties. The OdDbRadialDimensionLargePtr class is the typified smart pointer to an instance of this entity, and it is used for storing and passing a reference to the radial large dimension object.
To create and initialize a new instance of a radial large dimension entity, see Overview of Specific Entities.
The main methods of the OdDbRadialDimension class are listed below:
The next example demonstrates how to work with a radial large dimension entity.
// Create an arc to be dimensioned
OdDbArcPtr pArc = OdDbArc::createObject();
pArc->setDatabaseDefaults(pDb);
bBTR->appendOdDbEntity(pArc);
// Set arc parameters
OdGePoint3d center(7.0,-5.0, 0.0);
pArc->setRadius(3.5);
pArc->setCenter(center);
pArc->setStartAngle(OdaToRadian(0.0));
pArc->setEndAngle(OdaToRadian(90.0));
// Create radial large dimension
OdDbRadialDimensionLargePtr pDimension = OdDbRadialDimensionLarge::createObject();
// Set dimension defaults
bBTR->appendOdDbEntity(pDimension);
pDimension->setDatabaseDefaults(pDb);
// Set dimension parameters
OdGePoint3d centerPoint, chordPoint, overrideCenter, jogPoint, textPosition;
// The centerPoint of the dimension is the center of the arc
centerPoint = pArc->center();
// The chordPoint of the dimension is the midpoint of the arc
chordPoint = centerPoint + OdGeVector3d(pArc->radius(), 0.0, 0.0).rotateBy(0.5*(pArc->startAngle()+pArc->endAngle()), OdGeVector3d::kZAxis);
// Override center point is just to the dawn of the actual center
overrideCenter = centerPoint + OdGeVector3d(0.0, -1.5, 0.0);
// The jogPoint is halfway between the overrideCenter and the chordCoint
jogPoint = overrideCenter + 0.5 * OdGeVector3d(chordPoint - overrideCenter);
// The textPosition is along the vector between the centerPoint and the chordPoint.
textPosition = centerPoint + 0.6 * OdGeVector3d(chordPoint - centerPoint);
double jogAngle = OdaToRadian(30.0);
pDimension->setCenter(centerPoint);
pDimension->setChordPoint(chordPoint);
pDimension->setOverrideCenter(overrideCenter);
pDimension->setJogPoint(jogPoint);
pDimension->setTextPosition(textPosition);
pDimension->setJogAngle(jogAngle);
Overview of Angular Dimensions
Overview of Arc-Length Dimensions
Overview of Diametric Dimensions
Overview of Ordinate Dimensions
Copyright © 2002 – 2021. Open Design Alliance. All rights reserved.
|