ChemCAD 5 services to visual basic applications: User Manual, страница 16

short FromCurUserUnitToInternalUnit(short engUnitID, float valueInUser, float* valueInInternal);

        };

Methods          Two methods are exposed for unit conversion of an engineering quantity between CHEMCAD 5 internal units and the current user units. To convert a value in CHEMCAD 5 internal units to user units, use the following method.

Method             FromInternalUnitToCurUserUnit

                        Returns                        number of value returned

Argument

Type

Description

engUnitID

valueInInternal

valueInUser

userUnitString

short

float

float

BSTR

Engineering unit category ID [in]

Value in CC5 internal unit [in]

Value in current user unit [out]

User unit string [out]

To convert a value in current user units to CHEMCAD 5 internal units, user calls

Method             FromCurUserUnitToInternalUnit

                        Returns                        number of value returned

Argument

Type

Description

engUnitID

valueInUser

valueInInternal

short

float

float

Engineering unit category ID [in]

Value in CC5 internal unit [in]

Value in current user unit [out]

Example          This subroutine generates a table of stream data for outlets in current user units.

Sub PrintATableOfOutletStreams(ByVal ChemCADEntry As Object)

On Error Resume Next

' generate a table of outlet stream data in current user units

' get chemCAD objects

Dim curUnitOp As Object

Dim strInfo As Object

Dim strConv As Object

Set curUnitOp = ChemCADEntry.GetCurUnitOp

Set strInfo = ChemCADEntry.GetStreamInfo

Set strConv = ChemCADEntry.GetStreamUnitConversion

'inlets

Dim check As Integer

Dim nOutlets As Integer

nOutlets = curUnitOp.GetNoOfOutlets

Dim outletIDs(1 To SIZE_STREAM_ARRAY) As Integer

check = curUnitOp.GetOutletIDs(outletIDs)

' setup table header

Dim tempUnit As String

Dim presUnit As String

Dim enthUnit As String

Dim moleRateUnit As String

Dim massRateUnit As String

Dim stdLRateUnit As String

Dim stdVRateUnit As String

Dim compUnit As String

Dim compCategory As String

check = -1

strConv.GetCurUserUnitString tempUnit, presUnit, enthUnit, moleRateUnit, massRateUnit, stdLRateUnit, stdVRateUnit, compUnit, compCategory

Dim outletSheet As Worksheet

Set outletSheet = Worksheets("OUTSTREAMS")

outletSheet.Activate

outletSheet.Cells(STREAM_ROW_SECTION_TITLE, STREAM_COL_NAMES).value = "Outlet Streams"

outletSheet.Cells(STREAM_ROW_ID, STREAM_COL_NAMES).value = "Stream IDs"

outletSheet.Cells(STREAM_ROW_LABEL, STREAM_COL_NAMES).value = "Labels"

outletSheet.Cells(STREAM_ROW_TEMPERATURE, STREAM_COL_NAMES).value = "Temperature"

outletSheet.Cells(STREAM_ROW_TEMPERATURE, STREAM_COL_UNITS).value = tempUnit

outletSheet.Cells(STREAM_ROW_PRESSURE, STREAM_COL_NAMES).value = "Pressure"

outletSheet.Cells(STREAM_ROW_PRESSURE, STREAM_COL_UNITS).value = presUnit

outletSheet.Cells(STREAM_ROW_ENTHALPY, STREAM_COL_NAMES).value = "Enthalpy"

outletSheet.Cells(STREAM_ROW_ENTHALPY, STREAM_COL_UNITS).value = enthUnit

outletSheet.Cells(STREAM_ROW_MOLE_FRACTION, STREAM_COL_NAMES).value = "Vapor Mole Fraction"

outletSheet.Cells(STREAM_ROW_MOLE_FLOWRATE, STREAM_COL_NAMES).value = "Total Mole FlowRate"

outletSheet.Cells(STREAM_ROW_MOLE_FLOWRATE, STREAM_COL_UNITS).value = moleRateUnit

outletSheet.Cells(STREAM_ROW_MASS_FLOWRATE, STREAM_COL_NAMES).value = "Total Mass FlowRate"

outletSheet.Cells(STREAM_ROW_MASS_FLOWRATE, STREAM_COL_UNITS).value = massRateUnit

outletSheet.Cells(STREAM_ROW_STD_LIQ_VOLRATE, STREAM_COL_NAMES).value = "Total Std. Liq. Vol. FlowRate"

outletSheet.Cells(STREAM_ROW_STD_LIQ_VOLRATE, STREAM_COL_UNITS).value = stdLRateUnit

outletSheet.Cells(STREAM_ROW_STD_VAP_VOLRATE, STREAM_COL_NAMES).value = "Total Std. Vap. Vol. FlowRate"