NAME

CAD::ProEngineer - Perl extension for the Pro/Engineer API (Pro/Toolkit)

SYNOPSIS

  use CAD::ProEngineer;
  blah blah blah

DESCRIPTION

This module implements a few Pro/Toolkit functions in perl. There are two main components: an embedded imterpreter and an extension module. The embedded interpreter can be found in the perl folder. This is an early build so don't expect a flawless install to work, but the module works very well on Solaris and Windows. It is not fully tested, so your mileage may vary.

Functions implemented (to be documented at a later time):

  ProMdlCurrentGet()
  ProMdlDelete()
  ProMdlDisplay()
  ProMdlErase()
  ProMdlEraseAll()
  ProMdlIdGet()
  ProMdlInit()
  ProMdlModificationVerify()
  ProMdlNameGet()
  ProMdlPostfixIdGet()
  ProSolidPostfixIdGet()
  ProMdlSessionIdGet()
  ProMdlSave()
  ProMdlSubtypeGet()
  ProMdlToModelitem()
  ProMdlTypeGet()
  ProMdlWindowGet()

  ProMessageClear()
  ProMessageDisplay()
  ProMessageDoubleRead()
  ProMessageIntegerRead()
  ProMessagePasswordRead()
  ProMessageStringRead()

  ProCmdActionAdd()
  ProMenubarmenuPushbuttonAdd()

  ProDimensionInit()
  ProDimensionSymbolGet()
  ProDimensionValueGet()
  ProSolidDimensionVisit()

  ProModelitemInit()
  ProModelitemMdlGet()

  ProParameterInit()
  ProParameterNameGet()
  ProParameterValueGet()
  ProParameterVisit()
  ProParamvalueValueGet()

  ProTreetoolRefresh()


  These can be used by three (or more) methods:

    Method #1:
      $retval = CAD::ProEngineer::ProMdlCurrentGet();

    Method #2:
      $o = new CAD::ProEngineer;
      $retval = $o->ProMdlCurrentGet($mdl);

    Method #2:
      $o = new CAD::ProEngineer;
      ($mdl,$retval) = $o->ProMdlCurrentGet();

Enum's available as perl subroutines:

  PRO_TK_NO_ERROR
  PRO_TK_GENERAL_ERROR
  PRO_TK_BAD_INPUTS
  PRO_TK_USER_ABORT
  PRO_TK_E_NOT_FOUND

  PRO_TK_E_FOUND
  PRO_TK_LINE_TOO_LONG
  PRO_TK_CONTINUE
  PRO_TK_BAD_CONTEXT
  PRO_TK_NOT_IMPLEMENTED

  PRO_TK_OUT_OF_MEMORY
  PRO_TK_COMM_ERROR
  PRO_TK_NO_CHANGE
  PRO_TK_SUPP_PARENTS
  PRO_TK_PICK_ABOVE

  PRO_TK_INVALID_DIR
  PRO_TK_INVALID_FILE
  PRO_TK_CANT_WRITE
  PRO_TK_INVALID_TYPE
  PRO_TK_INVALID_PTR

  PRO_TK_UNAV_SEC
  PRO_TK_INVALID_MATRIX
  PRO_TK_INVALID_NAME
  PRO_TK_NOT_EXIST
  PRO_TK_CANT_OPEN
  PRO_TK_ABORT

  PRO_TK_NOT_VALID
  PRO_TK_INVALID_ITEM
  PRO_TK_MSG_NOT_FOUND
  PRO_TK_MSG_NO_TRANS
  PRO_TK_MSG_FMT_ERROR

  PRO_TK_MSG_USER_QUIT
  PRO_TK_MSG_TOO_LONG
  PRO_TK_CANT_ACCESS
  PRO_TK_OBSOLETE_FUNC
  PRO_TK_NO_COORD_SYSTEM

  PRO_TK_E_AMBIGUOUS
  PRO_TK_E_DEADLOCK
  PRO_TK_E_BUSY
  PRO_TK_E_IN_USE
  PRO_TK_NO_LICENSE
  PRO_TK_BSPL_UNSUITABLE_DEGREE

  PRO_TK_BSPL_NON_STD_END_KNOTS
  PRO_TK_BSPL_MULTI_INNER_KNOTS
  PRO_TK_BAD_SRF_CRV
  PRO_TK_EMPTY
  PRO_TK_BAD_DIM_ATTACH

  PRO_TK_NOT_DISPLAYED
  PRO_TK_CANT_MODIFY
  PRO_TK_CHECKOUT_CONFLICT
  PRO_TK_CRE_VIEW_BAD_SHEET
  PRO_TK_CRE_VIEW_BAD_MODEL

  PRO_TK_CRE_VIEW_BAD_PARENT
  PRO_TK_CRE_VIEW_BAD_TYPE
  PRO_TK_CRE_VIEW_BAD_EXPLODE
  PRO_TK_UNATTACHED_FEATS
  PRO_TK_REGEN_AGAIN
  PRO_TK_DWGCREATE_ERRORS
  
  PRO_MDL_UNUSED
  PRO_MDL_ASSEMBLY
  PRO_MDL_PART
  PRO_MDL_DRAWING
  PRO_MDL_3DSECTION
  PRO_MDL_2DSECTION
  PRO_MDL_LAYOUT
  PRO_MDL_DWGFORM
  PRO_MDL_MFG
  PRO_MDL_REPORT
  PRO_MDL_MARKUP
  PRO_MDL_DIAGRAM

  PROMDLSTYPE_NONE
  PROMDLSTYPE_BULK
  PROMDLSTYPE_PART_SOLID
  PROMDLSTYPE_PART_COMPOSITE
  PROMDLSTYPE_PART_SHEETMETAL
  PROMDLSTYPE_PART_CONCEPT_MODEL
  PROMDLSTYPE_ASM_DESIGN
  PROMDLSTYPE_ASM_INTERCHANGE
  PROMDLSTYPE_ASM_INTCHG_SUBST
  PROMDLSTYPE_ASM_INTCHG_FUNC
  PROMDLSTYPE_ASM_CLASS_CAV
  PROMDLSTYPE_ASM_VERIFY
  PROMDLSTYPE_ASM_PROCPLAN
  PROMDLSTYPE_ASM_NCMODEL
  PROMDLSTYPE_MFG_NCASM
  PROMDLSTYPE_MFG_NCPART
  PROMDLSTYPE_MFG_EXPMACH
  PROMDLSTYPE_MFG_CMM
  PROMDLSTYPE_MFG_SHEETMETAL
  PROMDLSTYPE_MFG_CAST
  PROMDLSTYPE_MFG_MOLD
  PROMDLSTYPE_MFG_DIEFACE
  PROMDLSTYPE_MFG_HARNESS
  PROMDLSTYPE_MFG_PROCPLAN
  PROMDLSTYPE_REGEN_BACKUP
  PROMDLSTYPE_OLD_REG_MFG
  PROMDLSTYPE_ASM_CLASS_SCAN_SET

  PRO_B_FALSE
  PRO_B_TRUE

  uiCmdPrioDefault
  uiProeImmediate
  uiProeAsynch
  uiProe2ndImmediate
  uiProe3rdImmediate
  uiCmdNoPriority


  These can be used by two methods:

    Method #1:
      if ($retval == CAD::ProEngineer::PRO_B_TRUE) ...

    Method #2:
      $o = new CAD::ProEngineer;
      if ($retval == $o->PRO_B_TRUE) ...

EXPORT

None by default, but a pseudo object oriented syntax can be used.

AUTHOR

Marc Mettes, <marcs_perl@yahoo.com>

COPYRIGHT

The CAD::ProEngineer module is Copyright (c) 2003 Marc Mettes. All rights reserved.

You may distribute under the terms of either the GNU General Public License or the Artistic License, as specified in the Perl README file.

SEE ALSO

perl, perlapi, perlxs, perlembed.