# Quick Start

### REGISTER FOR UPDATES!!!

#### Please Help US ... Help YOU!

OpenSource only works if we (as the project owners/maintainers) know "who" is using CREOSON! We can communicate directly with you about any important issues, updates, releases over time specific to CREOSON and PTC CREO Automation.

You can easily register yourself by filling out THIS Google Form.

DON'T WORRY - your information will NOT BE DISTRIBUTED to a third party.

## Quick Start!

If you see this page... CONGRATS! You got CREOSON running... :)

Assuming that you already have:

- CREO Parametric is installed with JLINK
- CREOSON correctly configured to your CREO Parametric Environment...

Now you can start to play with and learn more about CREOSON.

#### Step 1

Check out the Playground Page... to play with a few CREOSON functions using just a Web Page.

Here are some popular library options:

- Python - CREOPYSON
- JavaScript / Node.JS - Source in Directory --> creoson/web/assets/creoson_stuff/creoson_js

#### Step 2

Learn about CREOSON Functions and how to use them... (JSON specifications and examples)

#### Step 3... GO DO SOMETHING COOL!

Choose your favorite Programming/Scripting Language, learn how to do JSON transactions, and start doing something cool with CREOSON!

#### VERY IMPORTANT TO REMEMBER:

CREOSON uses HTTP transactions - specifically HTTP POST Transactions.

Most programming/scripting languages support HTTP POST transaction types either directly or via a library/package. A bit of research may be required to figure out how to setup the transactions and execute them for your chosen language - but once you figure this out, using CREOSON should be very straightforward.

## What is CREOSON?

CREOSON is a highly optimized, high-level, interface to PTC'S CREO Parametric JLINK.

- more functional interfaces and commands, less understanding of the CREO Modeling Kernel required.
- more emphasis on do this rather than this is what a user does...

CREOSON is NOT designed to do everything... it is NOT a replacement for JLINK, Pro/TOOLKIT or ObjectToolkit. However, CREOSON is VERY USEFUL for automating and integrating CREO Parametric IF you embrace the philosophies it was built around.

CREOSON is cetered around the following principles specific to CREO Parametric:

- CREO is a very capable and mature modeling and documentation system
- CREO can, and will, generate stable and repeatable results - even over multiple releases
- CREO automation should NOT assume to REPLICATE what a user DOES (e.g. click-by-click automation)
- CREO automations, when properly planned for and implemented, just need to react and respond to commands/inputs
- CREO can be easily integrated with other business systems to better integrate people and processes - reducing the need for outsourcing

## Do I need to be a "Developer"?!

Good question! -- The short answer is "NO!" (not really - but some coding experience does help!)

The automation of Pro/E / Wildfire / CREO Parametric has always been difficult balance between "users" who know what they want to do... and "programmers" who don't really understand how CREO Parametric works.
The results have often been overly complex, hard to manage, update, distribute, and confidently rely on as a dependable mechanism - unless a company can truly dedicate resources for the purpose.

These are the main reasons why CREOSON was developed to be a functional interface to CREO Parametric.

CREOSON was designed to be very straight forward for all requests and responses. Specifically, it was designed around what you want CREO Parametric to do rather than requiring the extreme technical details about how to get a desired result.

- CREOSON = Broad Brush Strokes... like Bob Ross
- ObjectTookit = Detailed Brush Strokes... like Claude Monet

BOTH CREOSON and ObjectToolkit can independently produce amazing results. There may be some automations that CREOSON can do faster and easier the ObjectToolkit (or any other PTC Programming Interface) - and there are things CREOSON just can't (and won't) do. Success depends on your ability to balance CREO functionality with your automation desires.

If you are already a "programmer"... GREAT! You will find CREOSON a pleasure to use!

If you new to scripting/programming... DON'T WORRY! The initial technical barrier will pass quickly. Once you get your first connection and requests working with CREO the REAL FUN BEGINS!

CREOSON uses generic JSON requests to a CREOSON Micro-Server, the CREOSON Micro-server will reply with generic JSON responses. The CREOSON Micro-server translates all your JSON requests into JLINK calls to CREO Parametric, and then formats and sends back JSON responses/results.

This fundamental approach opens up your scripting/programming options - specifically, you do not have to use JAVA or C/C++/C# - you can use ANYTHING that supports JSON over HTTP (even a simple web page)!

Here are some generic JSON links to various languages that you might find useful.

- Scripting Languages / Environments
  - Ruby
  - PHP
  - Python
  - JavaScript (w/ jQuery)
  - node.js
- Programming Languages
  - C#
  - Java
- Command Line
  - cURL (command line execution)

> If you are skilled in any of the above languages and want to contribute some code (or better links) to help others, please submit suggestions!

## Get the latest!

We strongly recommend you download/upgrade to the latest version of CREOSON if you have not updated in a while.

Get the latest CREOSON

## Minimum Requirements

#### CREO Minimum Requirements

CREOSON requires PTC's CREO Parametric 3.0 at minimum.
Not all functionality is supported in CREO 3.0 -- so please try to use CREO 4.0, 5.0, 6.0.X for best results.

You may load PTC's CREO either locally or access it from a shared/mounted drive location.

Expect better overall performance if CREO and CREOSON are loaded locally on the same machine.

It is also a good idea to not install CREO, or CREOSON in a directory with 'spaces' in the directory path.
NOTE: This is only a suggestion, not a requirement.

#### JLINK

CREOSON requires 'JLINK' to be installed with your CREO Parametric Installation.
In earlier versions of CREO it was standard, in the more recent versions it is an "optional" installation.

### Client Communication Settings

#### VERY IMPORTANT TO REMEMBER:

CREOSON uses HTTP transactions - specifically HTTP POST Transactions.

Most programming/scripting languages support HTTP POST transaction types either directly or via a library/package. A bit of research may be required to figure out how to setup the transactions and execute them for your chosen language - but once you figure this out, using CREOSON should be very straightforward.

#### Server URLs

Use the following URL to make function calls to CREO Parametric:

> http://localhost:<port number>/creoson

See the Function documentation for more specifics on making function calls.

Use the following URL to get information about the CREOSON microserver itself:

> http://localhost:<port number>/server

#### Port Number

CREOSON uses the embedded Web Server that ships with Java to provide the Application Interface to PTC's JLINK interface for CREO Parametric.
You must specify the "port" number that the Web Server will use for communications.
These are the ports that should be AVOIDED : 22, 80, 8080, 443.

> The default we recommend is Port: 9056
> Your local firewall, or networked firewall, will likely need to be adjusted to allow communication to the CREOSON Service.

#### Windchill

Windchill support is limited to only Connection and Workspace Operations.

You are responsible for your own Winchill setup, credentials and security!

### Awesome Creo Automation Apps!

#### Automate w/ Excel!

Download

#### BOM Automation!

Download

#### Pro/PROGRAM

Download