About User Defined Hole Standards

You can define hole standards in an .xml file.

This page discusses:

See Also
Creating Hole Standards

File Structure

You can define hole standards in .xml files with specific structures.

Sample file structure for simple hole

<?xml version="1.0" ?>
<std:node name="S1_standard" xmlns:std="http://www.dsweb.com/std">
<std:node name="Units">
<std:node name="Length">
<std:strval name="Length">mm</std:strval>
</std:node>
<std:node name="Angle">
<std:strval name="Angle">deg</std:strval>
</std:node>
</std:node>
<std:typedef name="SimpleHoleValues">
<std:strval name="Name">S1</std:strval>
<std:floatval name="MainDiameter">5.</std:floatval>
<std:floatval name="MainDepth">10.</std:floatval>
<std:floatval name="BottomAngle">110.</std:floatval>
<std:floatval name="ThreadDiameter">6.</std:floatval>
<std:floatval name="ThreadDepth">8.</std:floatval>
<std:floatval name="Pitch">1.</std:floatval>
<std:strval name="ThreadDescription" >THD_S_01</std:strval>
</std:typedef>
<std:node name="SimpleHoleValues">
<std:typeval name="SimpleHoleValues">
<std:strval name="Name">S1</std:strval>
<std:floatval name="MainDiameter">5.</std:floatval>
<std:floatval name="MainDepth">10.</std:floatval>
<std:floatval name="BottomAngle">105.</std:floatval>
<std:floatval name="ThreadDiameter">6.</std:floatval>
<std:floatval name="ThreadDepth">8.</std:floatval>
<std:floatval name="Pitch">1.</std:floatval>
<std:strval name="ThreadDescription" >THD_S_01</std:strval>
</std:typeval>
<std:typeval name="SimpleHoleValues">
      <std:strval name="Name">STD_S_S2</std:strval>
      <std:floatval name="MainDiameter">6.</std:floatval>
      <std:floatval name="MainDepth">12.</std:floatval>
      <std:floatval name="BottomAngle">100.</std:floatval>
      <std:floatval name="ThreadDiameter">7.</std:floatval>
      <std:floatval name="ThreadDepth">10.</std:floatval>
      <std:floatval name="Pitch">1.05</std:floatval>
      <std:strval name="ThreadDescription" >THD_S_02</std:strval>
    </std:typeval>
</std:node>
</std:node>

Sample file structure for tapered hole

<?xml version="1.0" ?>
<std:node name="T1_standard" xmlns:std="http://www.dsweb.com/std">
<std:node name="Units">
<std:node name="Length">
<std:strval name="Length">mm</std:strval>
</std:node>
<std:node name="Angle">
<std:strval name="Angle">deg</std:strval>
</std:node>
</std:node>
<std:typedef name="TaperedHoleValues">
<std:strval name="Name">T1</std:strval>
<std:floatval name="MainDiameter">5.0</std:floatval>
<std:floatval name="MainDepth">10.</std:floatval>
<std:floatval name="TaperedAngle">90.0</std:floatval>
<std:intval name="AnchorPoint">0</std:intval>
<std:floatval name="BottomAngle">110.0</std:floatval>
<std:floatval name="ThreadDiameter">6.0</std:floatval>
<std:floatval name="ThreadDepth">8.</std:floatval>
<std:floatval name="Pitch">1.0</std:floatval>
<std:strval name="ThreadDescription" >THD_T_01</std:strval>
</std:typedef>
<std:node name="TaperedHoleValues">
<std:typeval name="TaperedHoleValues">
<std:strval name="Name">T1</std:strval>
<std:floatval name="MainDepth">10.</std:floatval>
<std:floatval name="MainDiameter">5.0</std:floatval>
<std:floatval name="TaperedAngle">90.0</std:floatval>
<std:intval name="AnchorPoint">0</std:intval>
<std:floatval name="BottomAngle">100.0</std:floatval>
<std:floatval name="ThreadDiameter">6.0</std:floatval>
<std:floatval name="ThreadDepth">8.</std:floatval>
<std:floatval name="Pitch">1.0</std:floatval>
<std:strval name="ThreadDescription" >THD_T_01</std:strval>
</std:typeval>
<std:typeval name="TaperedHoleValues">
      <std:strval name="Name">STD_T_2</std:strval>
      <std:floatval name="MainDiameter">6.0</std:floatval>
      <std:floatval name="MainDepth">12.</std:floatval>
      <std:floatval name="TaperedAngle">85.0</std:floatval>
      <std:intval name="AnchorPoint">0</std:intval>
      <std:floatval name="BottomAngle">105.0</std:floatval>
      <std:floatval name="ThreadDiameter">7.0</std:floatval>
      <std:floatval name="ThreadDepth">10.</std:floatval>
      <std:floatval name="Pitch">1.05</std:floatval>
      <std:strval name="ThreadDescription" >THD_T_02</std:strval>
    </std:typeval>
</std:node>
</std:node>

Sample file structure for counterbored hole

<?xml version="1.0" ?>
<std:node name="CB1_standard" xmlns:std="http://www.dsweb.com/std">
<std:node name="Units">
<std:node name="Length">
<std:strval name="Length">mm</std:strval>
</std:node>
<std:node name="Angle">
<std:strval name="Angle">deg</std:strval>
</std:node>
</std:node>
<std:typedef name="CounterBoredHoleValues">
<std:strval name="Name">CB1</std:strval>
<std:floatval name="MainDiameter">5.0</std:floatval>
<std:floatval name="CounterBoredDiameter">10.0</std:floatval>
<std:floatval name="CounterBoredDepth">5.0</std:floatval>
<std:floatval name="BottomAngle">120.0</std:floatval>
<std:floatval name="ThreadDiameter">6.0</std:floatval>
<std:floatval name="Pitch">1.0</std:floatval>
<std:strval name="ThreadDescription" >THD_CB_01</std:strval>
</std:typedef>
<std:node name="CounterBoredHoleValues">
<std:typeval name="CounterBoredHoleValues">
<std:strval name="Name">CB1</std:strval>
<std:floatval name="MainDiameter">5.0</std:floatval>
<std:floatval name="CounterBoredDiameter">10.0</std:floatval>
<std:floatval name="CounterBoredDepth">5.0</std:floatval>
<std:floatval name="BottomAngle">115.0</std:floatval>
<std:floatval name="ThreadDiameter">6.0</std:floatval>
<std:floatval name="Pitch">1.0</std:floatval>
<std:strval name="ThreadDescription" >THD_CB_01</std:strval>
</std:typeval>
<std:typeval name="CounterBoredHoleValues">
      <std:strval name="Name">STD_CB_2</std:strval>
      <std:floatval name="MainDiameter">6.0</std:floatval>
      <std:floatval name="MainDepth">15.</std:floatval>
      <std:floatval name="CounterBoredDiameter">11.0</std:floatval>
      <std:floatval name="CounterBoredDepth">5.0</std:floatval>
      <std:floatval name="BottomAngle">110.0</std:floatval>
      <std:floatval name="ThreadDiameter">7.0</std:floatval>
      <std:floatval name="ThreadDepth">10.</std:floatval>
      <std:floatval name="Pitch">1.05</std:floatval>
      <std:strval name="ThreadDescription" >THD_CB_02</std:strval>
    </std:typeval>
</std:node>
</std:node>

Sample file structure for countersunk hole

<?xml version="1.0" ?>
<std:node name="CS1_standard" xmlns:std="http://www.dsweb.com/std">
<std:node name="Units">
<std:node name="Length">
<std:strval name="Length">mm</std:strval>
</std:node>
<std:node name="Angle">
<std:strval name="Angle">deg</std:strval>
</std:node>
</std:node>
<std:typedef name="CounterSunkHoleValues">
<std:strval   name="Name">CS1</std:strval>
<std:floatval name="MainDiameter">5.0</std:floatval>
<std:intval   name="Mode">0</std:intval>
<std:floatval name="CounterSunkDepth">5.0</std:floatval>
<std:floatval name="CounterSunkAngle">90.0</std:floatval>
<std:floatval name="CounterSunkDiameter">0.0</std:floatval>
<std:floatval name="BottomAngle">120.0</std:floatval>
<std:floatval name="ThreadDiameter">6.0</std:floatval>
<std:floatval name="Pitch">1.0</std:floatval>
<std:strval name="ThreadDescription" >THD_CS_1</std:strval>
</std:typedef>
<std:node name="CounterSunkHoleValues">
<std:typeval name="CounterSunkHoleValues">
<std:strval name="Name">CS1</std:strval>
<std:floatval name="MainDiameter">5.0</std:floatval>
<std:intval   name="Mode">0</std:intval>
<std:floatval name="CounterSunkDepth">5.0</std:floatval>
<std:floatval name="CounterSunkAngle">90.0</std:floatval>
<std:floatval name="CounterSunkDiameter">0.0</std:floatval>
<std:floatval name="BottomAngle">120.0</std:floatval>
<std:floatval name="ThreadDiameter">6.0</std:floatval>
<std:floatval name="Pitch">1.0</std:floatval>
<std:strval name="ThreadDescription" >THD_CS_1</std:strval>
</std:typeval>
<std:typeval name="CounterSunkHoleValues">
      <std:strval name="Name">STD_CS_2</std:strval>
      <std:floatval name="MainDiameter">6.0</std:floatval>
      <std:floatval name="MainDepth">12.</std:floatval>
      <std:intval   name="Mode">0</std:intval>
      <std:floatval name="CounterSunkDepth">6.0</std:floatval>
      <std:floatval name="CounterSunkAngle">85.0</std:floatval>
      <std:floatval name="CounterSunkDiameter">0.0</std:floatval>
      <std:floatval name="BottomAngle">115.0</std:floatval>
      <std:floatval name="ThreadDiameter">7.0</std:floatval>
      <std:floatval name="ThreadDepth">10.</std:floatval>
      <std:floatval name="Pitch">1.05</std:floatval>
      <std:strval name="ThreadDescription" >THD_CS_2</std:strval>
    </std:typeval>
</std:node>
</std:node>

Sample file structure for counterdrilled hole

<?xml version="1.0" ?>
<std:node name="CD1_standard" xmlns:std="http://www.dsweb.com/std">
<std:node name="Units">
<std:node name="Length">
<std:strval name="Length">mm</std:strval>
</std:node>
<std:node name="Angle">
<std:strval name="Angle">deg</std:strval>
</std:node>
</std:node>
<std:typedef name="CounterDrilledHoleValues">
<std:strval name="Name">CD1</std:strval>
<std:floatval name="MainDiameter">5.0</std:floatval>
<std:intval name="Mode">0</std:intval>
<std:floatval name="CounterDrilledDiameter">10.0</std:floatval>
<std:floatval name="CounterDrilledDepth">5.0</std:floatval>
<std:floatval name="CounterDrilledAngle">90.0</std:floatval>
<std:floatval name="CounterSunkDiameter">0.0</std:floatval>
<std:floatval name="BottomAngle">120.0</std:floatval>
<std:floatval name="ThreadDiameter">6.0</std:floatval>
<std:floatval name="Pitch">1.0</std:floatval>
<std:strval name="ThreadDescription" >THD_CD_1</std:strval>
</std:typedef>
<std:node name="CounterDrilledHoleValues">
<std:typeval name="CounterDrilledHoleValues">
<std:strval name="Name">CD1</std:strval>
<std:floatval name="MainDiameter">5.0</std:floatval>
<std:intval name="Mode">0</std:intval>
<std:floatval name="CounterDrilledDiameter">10.0</std:floatval>
<std:floatval name="CounterDrilledDepth">5.0</std:floatval>
<std:floatval name="CounterDrilledAngle">90.0</std:floatval>
<std:floatval name="CounterSunkDiameter">0.0</std:floatval>
<std:floatval name="BottomAngle">120.0</std:floatval>
<std:floatval name="ThreadDiameter">6.0</std:floatval>
<std:floatval name="Pitch">1.0</std:floatval>
<std:strval name="ThreadDescription" >THD_CD_1</std:strval>
</std:typeval>
<std:typeval name="CounterDrilledHoleValues">
      <std:strval name="Name">STD_CD_2</std:strval>
      <std:floatval name="MainDiameter">6.0</std:floatval>
      <std:floatval name="MainDepth">12.</std:floatval>
      <std:floatval name="CounterDrilledDiameter">11.0</std:floatval>
      <std:floatval name="CounterDrilledDepth">5.0</std:floatval>
      <std:floatval name="CounterDrilledAngle">85.0</std:floatval>
      <std:floatval name="BottomAngle">115.0</std:floatval>
      <std:floatval name="ThreadDiameter">7.0</std:floatval>
      <std:floatval name="ThreadDepth">10.</std:floatval>
      <std:floatval name="Pitch">1.05</std:floatval>
      <std:strval name="ThreadDescription" >THD_CD_2</std:strval>
    </std:typeval>
</std:node>
</std:node>

Hole Standard Parameters

Different parameters are available for each hole type. Some parameters are optional.

Simple hole

  • Description of the standard: Mandatory
  • Main Hole diameter: Mandatory
  • Main Hole Depth: Optional
  • Bottom Angle: Optional
  • Thread Diameter: Optional
  • Thread Depth: Optional
  • Pitch: Optional
  • Thread Description: Optional

Tapered hole

  • Description of the standard: Mandatory
  • Main Hole diameter: Mandatory
  • Tapered angle: Mandatory
  • Anchor Point: Mandatory
    Note: If you set the Anchor Point value to 0, the anchor point is placed at the bottom of the hole. If you set the Anchor Point value to 1, the anchor point is placed at the top of the hole.
  • Main Hole Depth: Optional
  • Bottom Angle: Optional
  • Thread Diameter: Optional
  • Thread Depth: Optional
  • Pitch: Optional
  • Thread Description: Optional

CounterBored hole

  • Description of the standard: Mandatory
  • Main Hole diameter: Mandatory
  • CounterBored Diameter: Mandatory
  • CounterBored Depth: Mandatory
  • Main Hole Depth: Optional
  • Bottom Angle: Optional
  • Thread Diameter: Optional
  • Thread Depth: Optional
  • Pitch: Optional
  • Thread Description: Optional

CounterSunk hole

  • Description of the standard: Mandatory
  • Main Hole diameter: Mandatory
  • CounterSunk Mode: Mandatory
    Notes:
    • If you set CounterSunk Mode to 0, you can define CounterSunk Depth and CounterSunk Angle.
    • If you set CounterSunk Mode to 1, you can define CounterSunk Diameter and CounterSunk Depth.
    • If you set CounterSunk Mode to 2, you can define CounterSunk Diameter and CounterSunk Angle.
  • CounterSunk Diameter: Mandatory
  • CounterSunk Depth: Mandatory
  • CounterSunk Angle: Mandatory
  • Main Hole Depth: Optional
  • Bottom Angle: Optional
  • Thread Diameter: Optional
  • Thread Depth: Optional
  • Pitch: Optional
  • Thread Description: Optional

CounterDrilled hole

  • Description of the standard: Mandatory
  • Main Hole diameter: Mandatory
  • Mode: Mandatory
    Notes:
    • If you set Mode to 0, you cannot define CounterSunk Diameter.
    • If you set Mode to 1, you can define CounterSunk Diameter.
  • CounterDrilled Diameter: Mandatory
  • CounterDrilled Depth: Mandatory
  • CounterDrilled Angle: Mandatory
  • CounterSunk Diameter: Mandatory
  • Main Hole Depth: Optional
  • Bottom Angle: Optional
  • Thread Diameter: Optional
  • Thread Depth: Optional
  • Pitch: Optional
  • Thread Description: Optional

Notes:
  • If you do not define thread parameters in the hole standard, the hole created by using the hole standard will not be threaded.
  • If you do not define bottom angle in the hole standard, the hole created by using the hole standard will be flat bottomed.
  • The thread diameter and pitch must be set together. The thread depth cannot be set alone.
  • The modification in thread description value in the standard is considered only when creating a new hole using the user defined standard.

Location of Hole Standards Files

You must store hole standards .xml files in separate directories under the following directory.

PartDesignFeature\CNext\resources\standard

You must create the following directories under the standard directory.

  • SimpleHole to store simple hole files.
  • TaperedHole to store tapered hole files.
  • CounterSunkHole to store countersunk hole.
  • CounterDrilledHole to store counterdrilled hole.
  • CounterBoredHole to store counterbored hole.

You can also mention norms related to the hole, such as, ISO, ASME, and ANSI, in the .xml file.

Set the environment variable as follows:

set CATCollectionStandard = dir1\xxx\yyy

Name of Hole Standard

You can name the standards file as required. The name of the standard is the name of the source file.

Description of Hole Standard

You must provide a name to only one description.