[Back to Blog](/blog) # Creating HoleChartOrigin in Teigha Mechanical

Alexandr Matvienko August 08, 2017 [\#mechanical](/blog/tag/mechanical) [\#getting started](/blog/tag/getting-started)

<a class="a2a_button_facebook"></a><a class="a2a_button_twitter"></a><a class="a2a_button_linkedin"></a>

In Teigha Mechanical, HoleChartOrigin is a part of the HoleChart complex entity. Creation of HoleChartOrigin is the first thing to do to make all components of HoleChart work correctly.

![image1](/files/inline-images/image001_5.png)Use AcMgDimManager to create AcAmgHoleChartOrigin and then set its position.

```
AcMgDimManager manager;
AcAmgHoleChartOriginPtr pHCO;
manager.newHoleChartPoint(pHCO, pDb, btrId, FHCId);
pHCO->setOrigin(OdGePoint3d(65.0, 300.0, 0.0));

```

The arguments for newHoleChartPoint are as follows:

- pHCO — A HoleChartOrigin smart pointer
- pDb — A database pointer
- btrId — A block table row, which will contain the HoleChartOrigin, then the OdDbObjectId for AcAmgFilteredHoleChart
- FHCId — A bool flag that is true by default and indicates that you are creating a HoleChartOrigin and not a HoleChartPoint

HoleChartOrigin contains two independent coordinate system layers: cartesian and polar. These layers have their own properties, such as text properties (height, color, attachment point) and HoleChartOrigin components (terminator and arrows of the coordinate system). A cartesian coordinate system is used by default. To set text properties, use the following code:

```
pHCO->setTextPosition(OdGePoint3d(85.0, 320.0, 0.0));
pHCO->useSetTextPosition();
pHCO->setTextHeight(7.0, AcMgHc::kCartesian);
pHCO->setTextAttachment(Acm::kTopRight,
AcMgHc::kCartesian);
pHCO->setTextColor(OdCmColor(OdCmEntityColor::kByLayer), AcMgHc::kCartesian);

```

You can configure properties for a polar coordinate system using the AcMgHc::kPolar enumeration and then switch to a polar coordinate system:

```
pHCO->setCoordSystemType(AcMgHc::kPolar);

```

You can also configure the terminator type and visibility of different components:

```
pHCO->setOriginTerminator(AcMgHc::kPoint2d, AcMgHc::kCartesian);
pHCO->setOriginFlags(SHOWZERO | SHOWCOORDSYSTEM, AcMgHc::kCartesian);

```

There are seven types of origin terminators:

- text
- kNone
- kPoint2d
- kDot
- kDotBlank
- kCross
- kNc
- kCustom

Origin flags is a bit mask that sets the visibility of components:

- SHOWCOORDSYSTEM — Visibility of origin arrows.
- SHOWZERO — Visibility of “0” text.
- DRAWLEADER — Used by HoleChartPoint to set visibility of leaders.

You can set origin text via AcAmgFilteredHoleChart:

```
OdDbObjectPtr pObj = FHCId.safeOpenObject(OdDb::kForWrite);
AcAmgFilteredHoleChartPtr pFHC = AcAmgFilteredHoleChart::cast(pObj);
pFHC->setColumnEquation(AcMgHc::kHcOrigin, L"MyStr");

```

The last step is setting the layer for HoleChartOrigin:

```
pHCO->setLayer(L"AM_5");

```

## Get started today

**Try ODA software free for 60 days.  
No risk, no credit card required.**

[Try for Free](https://www.opendesign.com/free-trial)
