User:OPUSDOKUMENTATION/sandbox

The open production support system OPUS is a CAM-/CAD software for the creation, modification and simulation of NC programs for turning, milling, wire edm and flame cutting in mechanical engineering, tool making and mold making.

History
Since 1980, the software has been developed by the OPUS Vertriebs- und Entwicklungs GmbH in Kirchheim unter Teck. At that time, programmable pocket calculators with programs for calculating the contour of cutting edge radius compensation and milling cutter path correction were sold. Over many years a modular CAD / CAM system developed from this, which offers solutions for the various tasks in the field of CNC programming. In terms of market share, the company occupies a leading position in the German-speaking region.

The name "open production support system" contains the concept of the software: optimally solve any CAM problem posed by flexibility and adaptability and integrate itself into any existing structure. OPUS provides core modules which can be put together to an individual software solution for a CNC machine. OPUS is working closely with companies such as LuK, Mapal or Bosch for many years.

The system is being further developed by around 20 people and sold worldwide. So far there have been more than 4000 installations at almost 1000 companies. OPUS itself is used as the (modeling) core in other software systems, so e.g. in the graphical interactive time and cost calculation system TICC or the PUMA system for aluminum profile processing. Furthermore, OPUS is used in research and teaching. Over the years, a couple of papers und thesis           have been written using the system.

Software
The system is developed in C++. Large parts of the system are written in the system's own macro language SESAM (nterface for extending the system with application-specific macros) which are openly available to the user as source code. In this way, the system can be easily expanded according to the needs of the application.

OPUS consists of several components


 * for generating, modifying and managing NC programs, post processors and the application-related macros in SESAM (OPUSEDI),
 * for generating and manipulating turning, milling and wire EDM machining in 2D or 3D, for generating, analyzing and modifying CAD models as raw and finished parts including machining, for creating machine models including the necessary kinematics and the creation and management of tools (OPUSGEO),
 * for source, reverse and machine simulation of NC programs including the display of collisions and axis limit violations (OPUSSIMU) as well as
 * for workshop networking with DNC and machine data acquisition (MDE).

OPUS supports turning with two and four axes and milling with three and five axes. Integrated into the OPUS system are software libraries from OWLNext (user interface), ACIS (modeling core, dynamic modeling approach), HOOPS (graphics) and module works (simulation and five axis path calculation).

SESAM (programming language)
SESAM is a procedural programming language with object-oriented approaches that can be used to implement OPUS algorithms within the CAM system, e.g. user interfaces or database applications. The OPUSEDI program contains the SESAM development environment integrated in OPUS, including a translator, interpreter and debugger. SESAM programs are compiled for syntax checking and interpreted during execution. SESAM is tailored to the needs of NC program development and enables access to almost all data and functions available in OPUS. Large parts of OPUS are implemented in SESAM and are available to the user as a template in the source code. Over the years, the language has developed into a complete, easy-to-learn programming language with which almost all tasks can be processed directly within OPUS. The range of functions of the language can easily be expanded.

Language elements
The syntax and semantics of SESAM are similar to the syntax and semantics of common high-level and macro languages. All key words in the language must be given in German. Variables can be declared with the data types LOGISCH, GANZ, DEC, TEXT and ZEIGER; Building on this, object-oriented structures (data and methods) can be defined using the KLASSE data type. For each data type, static or dynamic fields can be created and managed in one or two dimensions. The keyword UNTERMAKRO can be used to implement functions or subroutines with transfer and return values. The typical expression options and control structures of a high-level language, such as logical operations, conditional statements and branches (WENN... DANN... SONST) and loops (SOLANGE... SCHLEIFE) are supported as well as recursions.

Include and parameter files
Include files are libraries of SESAM subroutines or macros, which can be used in various programs. For this purpose, relevant include files are included with a command at the beginning of a program. In this way all existing OPUS functions can be integrated in user macros. Include files already exist for a large number of tasks, such as e.g. vector and matrix calculations, text and file manipulations, dialog generation, generation and manipulation of CAD objects, database applications, generation and simulation of NC programs, etc. By exchanging or overwriting UNTERMAKRO calls with the same signature, program sequences and structures can be structured like a framework which can then be programmed or reprogrammed for specific applications.

Parameter files are files for parameter values ​​that are structured with a uniform keyword system. These are used to control SESAM programs and to exchange data at the runtime of the program. They are identified by a parameter name and can be written or read as required. Parameter files can also describe the structure of databases and define masks for user interfaces.

Dialogs
User interfaces or dialogs can be created in the development environment directly with SESAM or via a dialog generator. A dialog can contain common standard elements such as pictograms, switches, input fields, checkboxes, selection fields and lists, but also complex graphic elements such as nested tree structures with customizable drag-and-drop functionality.

Weblinks

 * Official website