The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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):

  ProCmdActionAdd()
  ProDimensionInit()
  ProDimensionSymbolGet()
  ProDimensionValueGet()
  ProMdlCurrentGet()
  ProMdlDelete()
  ProMdlDisplay()
  ProMdlErase()
  ProMdlEraseAll()
  ProMdlIdGet()
  ProMdlInit()
  ProMdlModificationVerify()
  ProMdlNameGet()
  ProMdlPostfixIdGet()
  ProMdlSave()
  ProMdlSessionIdGet()
  ProMdlSubtypeGet()
  ProMdlToModelitem()
  ProMdlTypeGet()
  ProMdlWindowGet()
  ProMenubarmenuPushbuttonAdd()
  ProMessageClear()
  ProMessageDisplay()
  ProMessageDoubleRead()
  ProMessageIntegerRead()
  ProMessagePasswordRead()
  ProMessageStringRead()
  ProModelitemInit()
  ProModelitemMdlGet()
  ProParameterInit()
  ProParameterNameGet()
  ProParameterValueGet()
  ProParameterVisit()
  ProParamvalueValueGet()
  ProSolidDimensionVisit()
  ProSolidPostfixIdGet()
  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>

SEE ALSO

perl.