Search TWI

Type in the Key Words you wish to search for

|  SEARCH TWI | CALL US TOLL FREE 866 936-2756


Pro/TOOLKIT Power without Pro/TOOLKIT Complications

What is it?

ETRAGE Automation COM Interface (ACI) for Pro/ENGINEER is COM-based encapsulation of Pro/TOOLKIT (Pro/ENGINEER's native C API).

Who is it for?

If you are an engineer with programming skills and you want to...

  • automate Pro/ENGINEER but are anxious to avoid complexities of Pro/TOOLKIT API
  • build rich user interface "over" Pro/ENGINEER in a language other then C
  • solve your engineering problem by utilizing Pro/ENGINEER facilities in minimal lines of code

...then ETRAGE Automation COM Interface for Pro/ENGINEER is the right solution for you.

Hello ACI for Pro/ENGINEER!

Following Visual Basic .NET program uses ACI for Pro/ENGINEER to load a part and highlight one of its features:

    Dim server As New ProeServer.Server ' Start ACI.
    Dim proe As ProeServer.IProE = server.StartProE() ' Start Pro/E.
    Dim part As ProeServer.IPart = proe.LoadPart("my_part.prt") ' Load part.
    part.Visible = True ' Show part.
    Dim feature As ProeServer.IFeature = part.Features.ItemByName("EXTRUDE_1")
    feature.ToSelection().Highlight() ' Highlight feature.

For more information, please see the Tutorial.

About COM

Component Object Model (along with related technologies: "Distributed COM" or DCOM, "Object Linking and Embedding" or OLE, and ActiveX) is Microsoft's object-oriented interoperability technology. COM is a binary standard, meaning it does not depend on the syntax of any particular language. In fact, any language that adheres to COM standard is automatically compatible with any other COM-compliant language.

About ACI's Utilization of COM

ACI for Pro/ENGINEER is a COM server - it implements set of COM objects, such as "Part", "Feature" or "Dimension", which encapsulate native Pro/ENGINEER objects. Since "on the outside" these objects do not differ from any other COM objects, they can be used from any COM-compatible language (such as VB or VB.NET).


ETRAGE Automation COM Interface for Pro/ENGINEER


When the client makes a COM call into ACI, ACI internally translates this call into corresponding series of Pro/TOOLKIT calls, thus completely shielding the client from ever needing to know Pro/TOOLKIT internals.


There are two principal benefits of using ACI for Pro/ENGINEER:

  • Greater freedom in choosing client language, as noted in "Language Support" section below.
  • Significant reduction in programming complexity - a lot of Pro/TOOLKIT "plumbing" is hidden inside the ACI and error handling is greatly simplified since client does not need to constantly check for Pro/TOOLKIT error codes. For example, starting the Pro/ENGINEER, loading a part and suppressing a feature (including proper error handling) requires about 50 lines of Pro/TOOLKIT C code, while equivalent Visual Basic .NET program using ACI is only 6 lines long.

Language Support

Any COM compatible language can be used as client for ACI. Technically, all ACI interfaces are "dual", meaning they support both "virtual table" calls (for fast access from compiled languages) and "dispatch" calls (for flexibility of OLE Automation compatible interpreted/scripting languages).

As a result, ACI for Pro/ENGINEER is compatible with large number of languages, including (but not limited to):

  • .NET Languages (Visual Basic .NET, C#, managed C++ or C++/CLI)
  • "Classic" Visual Basic (version 6 and earlier)
  • Delphi
  • non-managed C++
  • Tcl, VBA and other scripting languages
  • Java, with appropriate bridge


In accordance to PTC's licensing policy, ACI for Pro/ENGINEER can only be used by customers that already own the Pro/TOOLKIT license. Full version of ACI for Pro/ENGINEER is delivered as locked Pro/TOOLKIT executable (EXE or DLL) and it is expected from the customers to unlock it (using their Pro/TOOLKIT unlock tool) prior using it.

Trial version is limited in functionality and provided for evaluation only, so it is delivered as unlocked Pro/TOOLKIT application and can be run without Pro/TOOLKIT license.