You can add numeric control data (NCDate) to the Structural Manufacturing output.
-
The Structural Detailing symbol is mapped to a Structural Manufacturing symbol.
-
The Structural Manufacturing symbol is computed and numeric control data is extracted and added to the XML output.
-
Angle information for feature orientation and penetration angles is computed and added to the XML.
The following example shows the XML output:
<SMS_FEATURE_INFO FEATURE_TYPE="WebCut" FEATURE_NAME="D0-3DCK-1-11T-1-LC11.1-AC1-StructFeature1" ITEM_NAME="WebCut_C3Right" FEATURE_GUID="0010C8F2-0000-0000-1201-4695154A2604" FEATURE_LOCATION_X="0.000" FEATURE_LOCATION_Y="250.000">
<SMS_NCDATA>
<SMS_SYMBOL_ATTRIBUTE NAME="NC04_R" TYPE="float" VALUE="0.02500"/>
<SMS_SYMBOL_ATTRIBUTE NAME="NC03_H" TYPE="float" VALUE="0.40618"/>
<SMS_SYMBOL_ATTRIBUTE NAME="NC02_W" TYPE="float" VALUE="0.14508"/>
<SMS_SYMBOL_ATTRIBUTE NAME="NC01_A" TYPE="float" VALUE="1.57080"/>
</SMS_NCDATA>
<SMS_FEATURE_ORIENTATION_X X="1.000" Y="0.000" Z="0.000"/>
<SMS_FEATURE_ORIENTATION_Y X="0.000" Y="1.000" Z="0.000"/>
<SMS_FEATURE_DIRECTION X="0.000" Y="-0.000" Z="1.000"/>
</SMS_FEATURE_INFO>
Process Overview for Structural Manufacturing Symbols
In the Structure task:
-
Place members.
-
Place assembly connections.
In the Structural Manufacturing Task:
-
Manufacture the members. The software creates feature cuts using the Structural Detailing symbol.
-
View the member in the Part Monitor or send the part to Nesting.
-
GetXMLData generates XML output for the 2D representation of the member.
-
MfgSymbolSelector ProgID is retrieved from SRD Rule.
-
MfgSymbolSelector maps information about the Structural Detailing symbol to find the Structural Manufacturing symbol.
-
Numeric control data and dimensions are extracted from the Structural Manufacturing symbol and added to the XML output.
-
The following figure shows the MfgSymbolSelector ProgID:
Symbol Mapping
The mapped symbol must have the same inputs as the Structural Detailing symbol and enough graphics to compute. For example:
Private Function IJMfgSymbolSelector_Select(ByVal pMfgObj As Object, ByVal pFeature As Object, ByVal pInputs As Object, ByVal strSymbol As String) As String
Const METHOD = "IJMfgSymbolSelector_Select"
On Error GoTo ErrorHandler
Dim lPos As Long
Dim sTempName As String
lPos = Len(strSymbol) - InStr(1, StrReverse(strSymbol), "\")
sTempName = Left(strSymbol, lPos + 1) & "Mfg" & Right(strSymbol, Len(strSymbol) - 1 - lPos)
Dim oFSO As New FileSystemObject
If oFSO.FileExists(oFSO.BuildPath(GetSymbolSharePath, sTempName)) Then
IJMfgSymbolSelector_Select = sTempName
Else
IJMfgSymbolSelector_Select = strSymbol
End If
CleanUp:
Exit Function
ErrorHandler:
Err.Raise Err.Number, , Err.Description
End Function
Symbol Representations
The software extracts the data from the ProfileSketchCurve representation of the Structural Manufacturing symbol. For the different types of features these representations are named as follows:
-
SlotProfileSketchCurve
-
EdgeProfileSketchCurve
-
CornerProfileSketchCurve
-
WebProfileSketchCurve
-
FlangeProfilesketchCurve
Location
The software gets the origin representation from the symbol. The software checks the value of the Points attribute for each of the three points in the representation. The location is the point where the attribute has the value of Origin.
The Origin representation must have three points grouped together. Each point must have an attribute type of Text with the name Points. For the three points, this attribute must have the values Origin, UPoint and VPoint respectively. There are no requirements with respect to the layers.
Symbol Changes
To take advantage of this functionality, you must do the following:
-
Create a copy of an existing symbol, and name that copy so that the mapping project finds it.
-
Add the NCData as shown.
-
Add dimensions.
-
Add an attribute to the NCdata set. The attribute name must start with NC.
-
Add the dimensions to the <type>ProfileSketchCurve representation, such as WebProfileSketchCurve.
-
-
Add the Origin Points as shown.
-
Place three points representing the Origin, the U-Axis, and the V-Axis.
-
On each point, add an attribute set called OriginPoints.
-
On each point in the OriginPoints attribute set, add the attribute Points. The attribute has the values Origin, UPoint, and VPoint respectively.
-
Part Monitor View
XML Feature Output
<SMS_FEATURE_INFO FEATURE_TYPE="WebCut" FEATURE_NAME="D0-3DCK-1-11T-1-LC11.1-AC1-StructFeature1" ITEM_NAME="WebCut_C3Right" FEATURE_GUID="0010C8F2-0000-0000-1201-4695154A2604" FEATURE_LOCATION_X="0.000" FEATURE_LOCATION_Y="250.000“ FEATURE_LOCATION_Z=“0.000”>
<SMS_NCDATA>
<SMS_SYMBOL_ATTRIBUTE NAME="NC04_R" TYPE="float" VALUE="0.02500"/>
<SMS_SYMBOL_ATTRIBUTE NAME="NC03_H" TYPE="float" VALUE="0.40618"/>
<SMS_SYMBOL_ATTRIBUTE NAME="NC02_W" TYPE="float" VALUE="0.14508"/>
…
</SMS_NCDATA>
<SMS_DIMENSIONS>
<SMS_DIMENSION NAME="Dimension 581" DIMENSION_TYPE="2" BREAK_DIST="0.03837642" BREAK_POS="1" DISPLAY_BY_NAME="0" DISPLAY_TYPE="1" TERMINATOR_POS="0" TRACK_ANGLE="0" TRACK_DIST="0.4554048" VISIBLE="-1" LEADER_PRESENT="-1" LEADER_DIST="0.02286"><SMS_DIM_REL_OBJS><SMS_DIM_REL_OBJ NAME="Arc2d 709" REL_TO_KEY_PT="0"><SMS_DIM_POINT X="0.216695046859254" Y="0.431180000000001" Z="0"/></SMS_DIM_REL_OBJ></SMS_DIM_REL_OBJS></SMS_DIMENSION>
<CVG_CURVE NAME="Line2d 598">
<CVG_VERTEX POINT_CODE="s_point" SEG_TYPE="line" SX="71.625" SY="406.184" A="0.98980775" B="-0.16864818" C="0.00500000"/>
<CVG_VERTEX POINT_CODE="e_point" SEG_TYPE="dummy" SX="0.005" SY="0.005" A="0.0" B="0.0" C="0.0"/>
</CVG_CURVE>
…
<CVG_CURVE NAME="Line2d 751">
<CVG_VERTEX POINT_CODE="s_point" SEG_TYPE="line" SX="216.701" SY="500.005" A="1.00500000" B="0.00500000" C="-216.69096026"/>
<CVG_VERTEX POINT_CODE="e_point" SEG_TYPE="dummy" SX="216.701" SY="431.184" A="0.0" B="0.0" C="0.0"/>
</CVG_CURVE>
<SMS_DIMENSION NAME="Dimension 876" DIMENSION_TYPE="1" BREAK_DIST="0.5" BREAK_POS="2" DISPLAY_BY_NAME="0" DISPLAY_TYPE="1" TERMINATOR_POS="0" TRACK_ANGLE="1.5707963267949" TRACK_DIST="0.03025582" VISIBLE="-1" LEADER_PRESENT="0" LEADER_DIST="0.02286"><SMS_DIM_REL_OBJS><SMS_DIM_REL_OBJ NAME="Point2d 580" REL_TO_KEY_PT="0"><SMS_DIM_POINT X="-4.95314074555608E-06" Y="1.30612819279792E-15" Z="0"/></SMS_DIM_REL_OBJ><SMS_DIM_REL_OBJ NAME="Point2d 731" REL_TO_KEY_PT="0"><SMS_DIM_POINT X="7.16250468592543E-02" Y="0.406180000000001" Z="0"/></SMS_DIM_REL_OBJ></SMS_DIM_REL_OBJS></SMS_DIMENSION>
</SMS_DIMENSIONS>
…
< <SMS_FEATURE_ORIENTATION_X X="1.000" Y="0.000" Z="0.000"/>
<SMS_FEATURE_ORIENTATION_Y X="0.000" Y="1.000" Z="0.000"/>
<SMS_FEATURE_DIRECTION X="0.000" Y="-0.000" Z="1.000"/>
</SMS_FEATURE_INFO>