PREDEFINED_BEVEL_GRIND_CONTROL - Intergraph Smart 3D - Reference Data

Intergraph Smart 3D Structural Manufacturing Reference Data

Language
English
Product
Intergraph Smart 3D
Subproduct
Structural Manufacturing
Search by Category
Reference Data
Smart 3D Version
12.1 (2019)

Defining Bevel, Grind, and Margin Attributes

The base bevel, grind, and margin attributes are each defined as a separate TYPE under the Contour attribute set:

<ATTRIBUTE_SET NAME="Contour">

<TYPE NAME="...">

</TYPE>

<TYPE NAME="BevelProperties">

<INCLUDE_GROUP NAME="BEVEL"/>

</TYPE>

<TYPE NAME="GrindProperties">

<INCLUDE_GROUP NAME="GRIND"/>

</TYPE>

<TYPE NAME="MarginProperties">

<INCLUDE_GROUP NAME="MARGIN"/>

</TYPE>

</ATTRIBUTE_SET>

The bevels TYPE must be named BevelProperties, the grind TYPE must be named GrindProperties, and the margin TYPE must be named MarginProperties.

The actual contents of the bevel, grind, and margin groups can be modified in the <ATTRIBUTE_GROUPS> section.

Naming Predefined Bevels and Grinds

Predefined bevels and grinds are listed in the <PREDEFINED_BEVEL_GRIND_CONTROL> section. That section is divided into three subsections: <CUT_TYPES>, <BEVEL_CLASSES>, and <GRIND_CLASSES>.

<CUT_TYPES> lists all the available cuts for both bevels and grinds and are listed as individual <CUT_TYPE> nodes:

<CUT_TYPES>

<CUT_TYPE NAME="ButtI" ALLOWABLE=""/>

<CUT_TYPE NAME="ButtV" ALLOWABLE="V20-RG_2mm,V25-RG_3mm,V20-RG_3mm"/>

<CUT_TYPE NAME="ButtX" ALLOWABLE=""/>

<CUT_TYPE NAME="ButtK" ALLOWABLE="K-BevelsEqual,K-AntiRefBevel10mm"/>

<CUT_TYPE NAME="ButtY" ALLOWABLE="Y20-Nose2,Y25-Nose3,Y25-

Nose4,Y22.5-Nose5,Y22.5-Nose6"/>

<CUT_TYPE NAME="TeeFillet1" ALLOWABLE=""/>

<CUT_TYPE NAME="TeeFillet2" ALLOWABLE=""/>

<CUT_TYPE NAME="TeeY" ALLOWABLE="Y-Nose3,Y-Nose5,Y-NoseThick/2"/>

<CUT_TYPE NAME="TeeK" ALLOWABLE="K-Nose3,K-NoseThick/3"/>

<CUT_TYPE NAME="TeeV" ALLOWABLE=""/>

<CUT_TYPE NAME="TeeX" ALLOWABLE="X-Bevels1/3_2/3,X-Bevels2/5_3/5"/>

<CUT_TYPE NAME="TeeStaggered" ALLOWABLE=""/>

<CUT_TYPE NAME="TeeChain" ALLOWABLE=""/>

<CUT_TYPE NAME="TeeChill" ALLOWABLE=""/>

</CUT_TYPES>

Each <CUT_TYPE> node corresponds to a bevel or grind name, such as ButtV or TeeY. Each <CUT_TYPE> node also contains a list of available subtypes, separated by commas and listed in ALLOWABLE. In the Attribute Editor, auto is automatically listed as a subtype for each bevel type. The names and types listed here are interpreted by a custom bevel and grind command to actually set the relevant values on an object, as defined below.

<BEVEL_CLASSES> and <GRIND_CLASSES> can each contain multiple <BEVEL_CLASS> and <GRIND_CLASS> nodes. These entries are distinguished based on TYPES. The values listed in TYPES should be a distinct subset of the allowed values listed in the contour attributes SMS_BEVEL||TYPE and SMS_GRIND||TYPE. For example, if the contour SMS_BEVEL||TYPE attribute is defined as follows:

<PROPERTY NAME="SMS_BEVEL||TYPE" VALUE="(null)" READONLY="0" ALLOWABLE="(null),Tjoint,blockjnt,assemjnt,subjnt,ext_Tjoint,ext_blockjnt,ext_assemjnt,ext_subjnt" ... />

then the following <BEVEL_CLASS> entries would be allowed:

<BEVEL_CLASS TYPES="blockjnt,assemjnt,subjnt>

<BEVEL_CLASS TYPES="Tjoint,ext_Tjoint">

However, the following <BEVEL_CLASS> entries would not be allowed, because the entries overlap:

<BEVEL_CLASS TYPES="blockjnt,assemjnt,subjnt>

<BEVEL_CLASS TYPES="blockjnt,ext_Tjoint">

Each <BEVEL_CLASS> or <GRIND_CLASS> node contains one or more <INCLUDE_CUT> nodes. Each <INCLUDE_CUT> node corresponds to a defined <CUT_TYPE> node, such as ButtV or TeeY. Each <CUT_TYPE> node also contains a list of available subtypes, separated by commas and listed in ALLOWABLE. In the Attribute Editor, auto is automatically listed as a subtype for each bevel or grind type. Following is an example of the complete XML structure of the predefined bevels and grinds:

<PREDEFINED_BEVEL_GRIND_CONTROL>

<CUT_TYPES>

<CUT_TYPE NAME="ButtI" ALLOWABLE=""/>

<CUT_TYPE NAME="ButtV" ALLOWABLE="V20-RG_2mm,V25-RG_3mm,V20-RG_3mm"/>

<CUT_TYPE NAME="ButtX" ALLOWABLE=""/>

<CUT_TYPE NAME="ButtK" ALLOWABLE="K-BevelsEqual,K-AntiRefBevel10mm"/>

<CUT_TYPE NAME="ButtY" ALLOWABLE="Y20-Nose2,Y25-Nose3,Y25-Nose4,Y22.5-

Nose5,Y22.5-Nose6"/>

<CUT_TYPE NAME="TeeFillet1" ALLOWABLE=""/>

<CUT_TYPE NAME="TeeFillet2" ALLOWABLE=""/>

<CUT_TYPE NAME="TeeY" ALLOWABLE="Y-Nose3,Y-Nose5,Y-NoseThick/2"/>

<CUT_TYPE NAME="TeeK" ALLOWABLE="K-Nose3,K-NoseThick/3"/>

<CUT_TYPE NAME="TeeV" ALLOWABLE=""/>

<CUT_TYPE NAME="TeeX" ALLOWABLE="X-Bevels1/3_2/3,X-Bevels2/5_3/5"/>

<CUT_TYPE NAME="TeeStaggered" ALLOWABLE=""/>

<CUT_TYPE NAME="TeeChain" ALLOWABLE=""/>

<CUT_TYPE NAME="TeeChill" ALLOWABLE=""/>

</CUT_TYPES>

<BEVEL_CLASSES>

<BEVEL_CLASS TYPES="blockjnt,assemjnt,subjnt,ext_blockjnt,ext_assemjnt,

ext_subjnt">

<INCLUDE_CUT NAME="ButtI"/>

<INCLUDE_CUT NAME="ButtV"/>

<INCLUDE_CUT NAME="ButtX"/>

<INCLUDE_CUT NAME="ButtK"/>

<INCLUDE_CUT NAME="ButtY"/>

</BEVEL_CLASS>

<BEVEL_CLASS TYPES="Tjoint,ext_Tjoint">

<INCLUDE_CUT NAME="TeeFillet1"/>

<INCLUDE_CUT NAME="TeeFillet2"/>

<INCLUDE_CUT NAME="TeeY"/>

<INCLUDE_CUT NAME="TeeK"/>

<INCLUDE_CUT NAME="TeeV"/>

<INCLUDE_CUT NAME="TeeX"/>

<INCLUDE_CUT NAME="TeeStaggered"/>

<INCLUDE_CUT NAME="TeeChain"/>

<INCLUDE_CUT NAME="TeeChill"/>

</BEVEL_CLASS>

</BEVEL_CLASSES>

<GRIND_CLASSES>

<GRIND_CLASS TYPES="grind_flat,grind_radius,grind_bevel">

<INCLUDE_CUT NAME="ButtI"/>

<INCLUDE_CUT NAME="ButtV"/>

<INCLUDE_CUT NAME="ButtX"/>

<INCLUDE_CUT NAME="ButtK"/>

<INCLUDE_CUT NAME="ButtY"/>

</GRIND_CLASS>

</GRIND_CLASSES>

</PREDEFINED_BEVEL_GRIND_CONTROL>

Based on the above example, here is the resulting display in the Attribute Editor:

Implementing Predefined Bevels and Grinds

After the Predefined Bevels and Grinds have been named in PartEditorDefaultAttributes.xml, they must be implemented in the Part Monitor customization VB project located at:

[Product Folder]\3DRefData\SharedContent\StructManufacturing\Rules\Services\PartMonitorCustomization\ StrMfgPartMonitorInfor.vbp.

When compiled, the project is delivered to

[Product Folder]\SharedContent\Bin\StructManufacturing\Rules\Release\ StrMfgServicesPartMonitorCustomization.dll.

The predefined bevels and grinds are implemented in the method IJMfgPartMonitorInfo_GetBevelAttributes. The Attribute Editor passes to that method the displayed part object (if available), the physical connection object (if available), the part or face thickness, the bevel type name, the bevel subtype name, and the chamfer values in a MfgBevelParams object called pParams. To set the bevel attributes, the parameters on the pParams object must be set, and the pParams object is then used by the Attribute Editor to set the attributes on the RAD object. The following is a sample segment of VB code illustrating how to set the bevel parameters:

In the above example, the GetBevelAttributes method uses a helper subroutine SetBevelParams, which takes the pParams object as its first argument, and then sets all the parameters on the pParams object in the order that they are defined (Angle1_M, Angle1_UM, Angle2_M, Angle2_UM, AttachmentAngle, ChamferAngle_M, ChamferAngle_UM, ChamferDepth_M, ChamferDepth_UM, Depth1_M, Depth1_UM, Depth2_M, Depth2_UM, eBevelType, eGrindShape, MarkingSide, Method1_M, Method1_UM, Method2_M, Method2_UM, Nose, NoseAngle, NoseMethod, Radius, RootGap, and Symmetrical).