Joint Variance Analysis (dcu_fjva.dll)

<< Click to Display Table of Contents >>

Navigation:  User DLLs > Add-In DLLs > Extra DLLs >

Joint Variance Analysis (dcu_fjva.dll)

This module is designed as an added-on module for 3DCS. It will read a DCS-FJVA-Deviation-Format (FJD) file to deviate concerned points (may be features later).

 

Within this Section:

Sample Data Deviation (dcsFjvaSmpDev).

Sample Data Fit Deviation (dcsFjvaSmpFitDev).

Statistical Data Deviation (dcsFjvaStatDev).

Tolerance Data Deviation (dcsFjvaTolDev).

Import Nominal Data from a Data File (dcsFjvaAnsysImpNomData).

Deviate Points By Sample Data from a Data File (dcsFjvaAnsysDev).

Deviate Points By Fitting Sample Data from a Data File (dcsFjvaAnsysFitDev).

 

 

 

1. Sample Data Deviation (dcsFjvaSmpDev)

Sample Data Deviation is similar to CmmDev module. It deviates points by directly using <sample_data> in the FJD file. All samples for each point will be decomposed as three tolerances correspondingly in X-direction, Y-direction, and Z-direction.

 

2. Sample Data Curve Fitting Deviation (dcsFjvaSmpFitDev)

Sample Data Curve Fitting Deviation deviates points by using curve fitted information based on the <sample_data> in the FJD file. All samples for each point will be decomposed as three tolerances correspondingly in X-direction, Y-direction, and Z-direction.

 

3. Statistic Data Deviation (dcsFjvaStatDev)

Statistic Data Deviation is similar to StatRow module. It deviates points based on mean and standard deviation assigned to each point with direction in <statistic_data> in the FJD file. Each <statistic_data> will create one tolerance

 

4. Tolerance Data Deviation (dcsFjvaTolDev)

Tolerance Data Deviation deviates points based on mean and standard deviation assigned to each tolerance in <tolerance_data> in the FJD file. Each <tolerance_data> will create one tolerance.

 

5. Import Nominal Data from a Data File (dcsFjvaAnsysImpNomData)

Import the nominal Data from a Data File between "nblock,3" and "! end of nblock command"; See file format in Appendix below. The first field in the data line is the point name, followed by the point position (x, y, z). If the point name is not in a part, a new point is created. The part name is specified with the key "PARTNAME:". No new part is created with this routine. The data files are specified in String List Under a tolerance.

 

6. Deviate Points By Sample Data from a Data File (dcsFjvaAnsysDev)

Read a deviated point data from a Data File and deviate each point by samples. The part name is specified with the key "PARTNAME:". No new part is created with this routine. Each point data format: point-name nominal-x nominal-y nominal-z deviated-x deviated-y deviated-z.

 

7. Deviate Points By Fitting Sample Data from a Data File (dcsFjvaAnsysFitDev)

Read a deviated point data from a Data File, calculate the statistics from imported data, and deviate each point by a random number with the calculated statistics. The part name is specified with the key "PARTNAME:". No new part is created with this routine. Each point data format: point-name nominal-x nominal-y nominal-z deviated-x deviated-y deviated-z.

 

Technical Purpose:

The purpose of this Dynamic Linking Library (DLL) is to set a linking between Finite Element Analysis (FEA) and 3DCS.  The DCS-FJVA-Deviation-Format is designed as a generic format so that the results from any FEA tools can be easily converted to this format.  With this DLL, 3DCS can 'virtually' simulate a deformed part.

 

Marketing Purpose:

This module is developed to fulfill the requirements in SBIR Phase II Option 1, which requires that 3DCS can link with FEA tools to simulate deformed parts and compensate the results with DCS_JVAT (Joint Variance Analysis Tool). The deformation from DCS_JVAT is based on historic data while DCS_FJVA is based on the calculated (predicted) results from FEA tools.  Since a CATIA module TAA  (Tolerance Assembly Analysis) is using the FEA results, DCS_FJVA can link with TAA to combine the benefits from 3DCS and TAA.

 

The Communication between DCS_FJVA and FEA Tools is shown as follows in Figure 4.1.

 

dcs_fjva_flow        

 

Note: DCS_FEA will be developed for each type of FEA Tools to convert data without calculation

 

Input:

DCS_FJVA is designed as a tolerance module, which uses the Tolerance's User Graphical Interface (User DLL Tolerance GUI) as the input Interface.

FJD File Selection:  FJD file for data input is selected as the first string in String List. The file path will be searched by absolute-and-relative-rules during Nominal Build in the following loading.

Point Selection: Point List will contain the deviating points, which should be contained in the FJD file.

Deviation Function Selection: one of DCS_FJVA functions has to be selected.

 

Validate:

The following items have to be validated during Nominal Build.

(a) The FJD file has to be available

(b) Point List has to be contained in the FJD file

(c) The FJD file should contain the proper data section for the selected function.

 

DCS-FJVA-Deviation-Format (FJD):

A DCS-FJVA-Deviation-Format (FJD) file is an XML file, which contains three separated data sections. A FJD file links the points in Point List by using the point name and the parent (component) name.  The names are case-sensitive.

<sample_data> section

This section contains sample data for each point. The section is bracketed by <sample_data> and </sample_data>. This section is used by Sample Deviation and Sample Data Fit Deviation.

<statistic_data> section

This section contains statistic data (mean and standard deviation) for each point in each direction. The section is bracketed by <statistic_data> and  </statistic_data>.

<tolerance_data> section

This section contains tolerance data (mean and standard deviation) for each tolerance, which contains the list of points (point associated directions will be used). The section is bracketed by <tolerance_data> and </tolerance_data>.

 

XML file example:

 

File extension:        .xml

File storing method:        ascii format

sample.jva

<?xml version="1.0" encoding="iso-8859-1" ?>

<jva>

<part id="part_1">

<point id="pt_1">                

<nominal>1.000000,2.000000,3.000000</nominal>

<absolute>1.000000,2.000000,3.000000</absolute>

<std>0.434300</std>

<mean>1.232300</mean>

  </point>

  <point id="pt_2">                

<nominal>1.000000,2.000000,3.000000</nominal>

<absolute>1.000000,2.000000,3.000000</absolute>

<std>0.434300</std>

<mean>1.232300</mean>

</point>

</part>

<part id="part_2">

<point id="pt_11">                

<nominal>1.000000,2.000000,3.000000</nominal>

<absolute>1.000000,2.000000,3.000000</absolute>

<std>0.434300</std>

<mean>1.232300</mean>

</point>

<point id="pt_12">                

<nominal>1.000000,2.000000,3.000000</nominal>

<absolute>1.000000,2.000000,3.000000</absolute>

<std>0.434300</std>

<mean>1.232300</mean>

</point>

</part>

</jva>

 

 

Appendix:

ANSYS File Format Information

 

PARTNAME: part

/com,*********** Nodes for the whole assembly ***********

nblock,3

(1i8,3e20.9e3)

1   -1.250000000E-001   -5.000000000E-001    5.000000000E-001

2   -2.500000000E-001   -5.000000000E-001    5.000000000E-001

3   -3.750000000E-001   -5.000000000E-001    5.000000000E-001

4   -1.250000000E-001   -5.000000000E-001    0.000000000E+000

5   -2.500000000E-001   -5.000000000E-001    0.000000000E+000

6   -3.750000000E-001   -5.000000000E-001    0.000000000E+000

7   -1.250000000E-001   -5.000000000E-001   -5.000000000E-001

8   -2.500000000E-001   -5.000000000E-001   -5.000000000E-001

9   -3.750000000E-001   -5.000000000E-001   -5.000000000E-001

10   -1.250000000E-001    0.000000000E+000    5.000000000E-001

11   -2.500000000E-001    0.000000000E+000    5.000000000E-001

…..

116   -3.750000000E-001   -5.000000000E-001   -1.000000000E+000

117   -2.500000000E-001    5.000000000E-001   -1.000000000E+000

118   -2.500000000E-001    0.000000000E+000   -1.000000000E+000

119   -2.500000000E-001   -5.000000000E-001   -1.000000000E+000

120   -1.250000000E-001    5.000000000E-001   -1.000000000E+000

121   -1.250000000E-001    0.000000000E+000   -1.000000000E+000

122   -1.250000000E-001   -5.000000000E-001   -1.000000000E+000

123    0.000000000E+000   -5.000000000E-001   -1.000000000E+000

124    0.000000000E+000    0.000000000E+000   -1.000000000E+000

125    0.000000000E+000    5.000000000E-001   -1.000000000E+000

! end of nblock command