1.0 Overview 

2.0 Using the HOOPS 3D Part Viewer for ACIS

3.0 Creating/Joining Collaborative Sessions

4.0 Streaming from HOOPS/Net Server

5.0 Material Editor

6.0 InterOp Integration


1.0 Overview

The HOOPS 3D Part Viewer for ACIS is available for the MS Windows platform and is built using the ACIS Kernel Modeler and the HOOPS 3D Application Framework. By licensing these components, developers can easily customize or extend this application or port it to the major UNIX platforms, including Linux. Web-based applications may also be created using HOOPS/ActiveX extensions, HOOPS/Netscape extensions, or the HOOPS JNI bindings. In addition, developers may license additional modules for the reading and writing of the STEP, IGES, VDA-FS. CATIA, Pro/E and X_T file formats. 

The underlying architecture of this part viewer consists of the HOOPS 3D Product Suite from TSA, including it's tight integration with the ACIS Modeling Kernel from Spatial. The HOOPS and ACIS components are modular and extensible tools which help developers rapidly deliver world class 2D/3D applications.

The Part Viewer includes the following functionality:

In addition to its use for viewing ACIS models, saving to other ACIS versions, web-publishing your SAT files and allowing users to collaborate in real-time, this application is intended as a demonstration of the power of the HOOPS 3D Product Suite and ACIS Kernel. As such, it serves as a reference architecture from which developers may extend and build their own CAD/CAM/CAE applications.  For more information about licensing the framework to build custom CAD/CAM/CAE application please contact either info@techsoft3d.com.


3.0 Using the HOOPS 3D Part Viewer for ACIS

The HOOPS 3D Part Viewer for ACIS has been designed to work and act like any standard Windows application.  It uses the MFC multi-document interface (MDI), supporting the standard MFC services (New, Open, Save As, Print, Print Preview, Copy to Clipboard). ACIS SAT files may be read, interrogated, viewed and saved.

There are various toolbars available. These can be hidden/shown through View-Toolbar menu. 

Standard Toolbar:

Tools Toolbar:

Markup-Text Toolbar:

Standard Views Toolbar:

There are also a number of settings that can be toggled by clicking on the right mouse button.  They are:

The full set of features are explained in more detail below:
 

2.1 Opening/Reading Files

The Part Viewer reads SAT, HSF, STL, VRML and HMF files. For your convenience, a set of demonstration files are contained on this media located in the parts directory of your installation. The files are of varying degrees of complexity so certain files may take a couple of seconds to load depending on the speed of your system.

2.2 Command Line Arguments

In certain cases it may be preferable to start the Part Viewer from the command line. To do this, specify the files which you want loaded. For example,

> acispartviewer.exe bnc.sat  

2.3 Modifying Application Settings

The application settings are the options which are applicable to all the documents in the application. These are stored in the registry and are restored back when the application is launched again. You can modify these settings by clicking on Tools-Options menu.

General Settings

Appearance Settings

File Settings

Interaction

Selection

2.4 Saving Files

The Part Viewer allows you to save models as: 

2.5 Creating HTML Pages

HTML pages are created simply by saving the file as a HTML page. When you save a file as an HTML page two files will be created; an HTML file which references a newly created HSF file with the exact same filename. (So, SaveAs-> 'foo.html' would create two files: foo.html and foo.hsf.) To publish your model to the web simply copy both these files to your web site. The HTML page uses the HOOPS 3D Stream Control which, if not already installed the user's system, will be automatically downloaded and installed when the HTML page is viewed. By default, the PartViewer does not include Levels of Detail (LODs) in the HSF. Since LODs are ordered in the front of the file and are much smaller than the original objects they represent it is very beneficial to have LODs in the HSF to facilitate streaming. LODs may be generated through the Frame Rate Options in the View pulldown menu.

2.6 Copying to Clipboard

As is standard with Windows Applications, Ctrl-C will copy the contents of the screen to the clipboard (in the form of an EMF). You can then easily import  the metafile into any of the usual windows applications such as Microsoft Word, Excel, Power Point, etc.

2.7 Printing/Print Preview

The application supports standard Windows GDI Printing and Print Preview.  Although not currently in this version of the application, HOOPS/3dGS supports HPGL, Postscript and CGM output. Developers wishing to extend this viewer to contain such functionality may easily expose it by licensing the HOOPS 3D Application Framework. 

2.6 Camera Manipulation

Each MFC window has a separate HOOPS camera that may be manipulated to change the current view of the model. The camera operations implemented are: 

These are modal Operators on the View and are chosen by toggling the appropriate menu button or by using the pull down menus on the frame. Once a camera manipulation operator has been selected, the camera may be interactively manipulated with the mouse. All operators respond to the following sequence: left mouse button down, left mouse button down & moved (motion), left mouse button up. 

Starting with this release the functionality of the Orbit Operator has been extended to allow for panning and zooming without switching operators. Holding down the [SHIFT] key while dragging the mouse will initiate a camera pan while holding down the [CTRL] key will zoom the camera. In addition holding down the middle (or third) mouse button while over an object will orbit the camera around the selected point.

At any time double clicking the middle mouse button will either zoom to the object under the cursor or (if no object is under the cursor) will reset the camera to the scene extents.

Smooth Transition

This feature can be toggled on or off via the Manipulate pull down menu. When turned on the camera will be smoothly transitioned (producing animation effect) when user zooms to window, changes the view plain or resets the camera.  

2.9 Entity Selection

There are three primary ways of selecting entities in the ACIS model:

Selection lists containing multiple entities may be created by holding down either the Shift or Ctrl key while using either of the Selection Operators and can be used to build up selection lists for the topology browser. 

The Part Viewer makes use of the MFC "right click" user interface to provide a mechanism for controlling the visibility and selectability of entities in the scene. Positioning the mouse in the view window and pressing the right mouse button invokes a floating menu bar. The behavior of the selection operators can be configured via this floating menu bar interface. The interface may be used to determine which ACIS Topological Entity type is selectable. Selections can be made on the nearest ACIS: Vertex, Edge, Face, or Body.   The color of the selected geometry is changed to white (or "highlighted"). 

To ensure optimal rendering performance, face selection is disabled by default. Face selection can be enabled from this menu, however note that this will cause the object to be re-tesselated which can take time depending on the size of the model.

2.10 Querying the Model 

The query operator allows users to query information about the ACIS part and is selected by toggling the appropriate menu bar button. Once selected, the mouse may be used to interactively query ACIS Models. The first time the left mouse button is pressed while in the view and over an ACIS model an MFC dialog window is created and displays the following information: 

Moving the mouse around the scene with the left button depressed will cause this information to be updated in real-time.  

2.11 Measuring Distance

Users can query and measure the distance between two points in the scene. When this operator is selected,  a dialog similar to the Query dialog will appear. In addition to displaying the standard query information the distance between two points will be displayed. A left mouse button click will select the beginning point of the measurement. Measurement is shown by holding the left button down and dragging to the desired end point of the measurement. A line will be shown between the two points. 

2.12 Setting Visibility of Lights 

The application makes use of the MFC "right click" user interface to provide a mechanism for controlling the visibility and selectability of the entities in the scene. Positioning the mouse in the view window and pressing the right mouse button invokes a floating menu bar. Lights may be toggled off or on in the Visibility. Turning Lights off will cause the model to appear "flat" or non-shaded.

2.13 Setting Visibility of ACIS Entities

Via the same right click floating menu bar, the user can turn the visibility of ACIS Vertices, Edges or Faces off or on.

2.14 Setting Selectability of ACIS Entities

The Selectability of ACIS entities are also be controlled via the right click button.  By moving to "Selection Level" you can enable or disable the selection of ACIS Vertices, Edges, Faces or Bodies. Note that selection of faces is turned off by default for rendering optimization.  If Face level selection is enabled, the model will be need to be re-tesselated. To highlight a face in the scene without requiring a re-tesselation, simply click the "Show Face Outlines" button.

2.15 Changing the Render Mode

Render Modes for the scene are also controlled via the right click mouse button.  There are 4 different rendering modes provided for viewing models.

Upon startup, the default rendering mode is Smooth Shaded. Please note that the Hidden Line algorithm is computationally intensive and for large models may take several seconds.  Visibility of the hidden lines is controlled by the right click Visibility menu. 

2.16 Changing the Viewing Projection

By default, the scene is rendered with a Perspective viewing projection, you can change this to an Orthographic viewing projection via the View menu.  

2.17 Topology Browser

Selecting the Topology Browser from the Query Menu allows you to browse the topological structure of the model. As you select on entities in the dialog they are highlighted in the visualization window and any user-defined attributes are displayed in the Topology browser's text box. To ensure optimal rendering performance, face selection is disabled by default. Turning on face selection can be enabled from this menu, however this will cause the object to be re-tesselated which can take time depending on the size of the model.

2.18 Frame Rate Options

From the "View" pulldown menu, users may define a desired framerate to be maintained during rendering. When setting this option you can ask the application to 'Use Levels of Detail' in order to maintain the requested framerate.  This causes HOOPS to generate simplification levels for each body. The default values may be used, or the user may control the number of levels which are generated and the percentage fall-off between levels. 

The 'LOD Settings' tab provides control over the LOD generation process. 'Detail Levels' allows the user to control how many Levels of Detail should be generated. The Falloff Value represents what percentage of vertices the new LOD should contain as compared to the next highest level. For example, a falloff value of 0.30 would mean that the Level 1 LOD would have 30% of the vertices of the original object. If desired you can see the individual LOD levels directly via the 'LOD Level' item in the 'View' menu pulldown.

If the system can't maintain the user specified frame rate HOOPS will drop through the different simplification levels in order to keep up with the desired frame rate. Generating levels of detail has an associated one time pre-process cost which can be significant depending on the size of the model.

Turning on the Threshold LOD type will cause the application to utilize further HOOPS/3dGS logic to determine the LOD level on each body separately, depending on its triangle count per square window space unit.

You can also tell the viewer to simplify to allow one of the LODs to be simply the bounding box of the object. Depending on the model these may or may not be desirable.

2.19 Shadow Display

Display of Shadow for the objects in scene can be toggled using "Shadow" option from "View" menu. Shadow is displayed on the plane perpendicular to the current view-up vector. 

2.20 Axis Triad

Beyond indicating the current orientation of the camera the axis triad can be used to access the Orbit/Pan/Zoom functionality (as described in 2.6) by clicking and dragging the mouse pointer in the axis window. Also clicking at any of the arcs indicating a particular view plane the camera will automatically realign the view to that plane.


3.0 Creating/Joining Collaborative Sessions

Collaboration Sessions require a HOOPS/Net server to be running and accessible by any clients that want to be involved in a session. The server supports both TCP/IP and HTTP connections. For a TCP/IP connection you provide an IP address and a port number while for a HTTP connection you simply provide the URL of the webserver hosting the HOOPS/Net Server.

To allow you to launch you own server the server executable, hnet_server, resides in the bin directory of your viewer?s installation. The server?s configuration file, hnet_server.conf, which is also located in the bin directory specifies the server?s initial admin and access passwords (both of which are defaulted to a null string) and the port over which the server listens for initial client TCP/IP connections (this has a default value of 11111).

Connecting to the Server

Once the server is running (you do this by running the hnet_server executable) you connect to the server via the Network button in the File pulldown menu of your viewer.

In the Network dialog you provide the address and server port depending upon the connection type. For TCP/IP connection, the address field must of form "foo.com" or "62.127.1.50" and server port must be a valid socket port number, from 1 -> 65534. For HTTP connection, the address field must be of form http://www.foo.com and the server port must be the fully rooted pathname to the hnet_connect.cgi script. Following are examples.

Pressing the Connect button should connect you to the server.  If there are any currently active sessions these will be listed in the Session dialog.  You can create a new session by typing the name of the session in the Session Name text box, entering an optional password for this session in the Session Password box and your name in the Client name text box and then pressing the Create button.  If the session is already created simply enter the session name you wish to joint, along with your name and the password for that session and press the Join button. You will then be connected to the active session.

Creating/Joining a session will create a new window which will include a tabbed-dialogbar on the right size. On the 'Peers' tab you will find controls for sending text ?Chat? messages to other members of the session and a button for requesting or releasing control of the session.  If you do not have control of the session you will only be able to view the activities of the user who is in control and will not be able to ?drive? the session. Chat messages can always be sent by anybody and to anybody regardless of who is controlling the session.  The controlling user can load HSF files into the scene, create, manipulate and delete geometry as well as annotate and select objects within the scene.

Requesting/Releasing Control

To request control, simply press the Request Control button. The controlling user will be sent a message that control has been requested. Once that control has been released, the user requesting control will then be leading the session.

TSA will host a number of demonstration sessions on our company website to demonstrate the HTTP capabilities of the HOOPS/Net Server.  Please connect to www.hoops3d.com for further details.


4.0 Streaming from HOOPS/Net Server

Streaming HOOPS Stream files (HSF) from a HOOPS/Net Server also requires a HOOPS/Net server to be running and accessible by any client that wants to stream the file. Refer to previous section 'Creating/Joining Collaborative Sessions' for details on how to connect to a server and create a session.

Once the client is connected to a server through a session, you will have a tabbed-dialogbar at the right-hand side of the window. 'Files' tab provides the controls required for streaming files from the server.

Associating with a directory on the Server

To stream files on server, the client is first required to associate the current session with a particular directory on the server. Note that for doing this the client must be in control of the session. Clicking on the Associate Directory... will pop-up a dialog box listing the directories on the server. If you don't find any directories in the list, you should ensure that the HOOPS/Net server configured to host directories. Please refer to HOOPS/Net programming guide for details. Choose a directory from the list and type the password required to access the directory and click OK. You will find that a listing of files (if there are any in the directory) appears in the 'Files' tab of client dialog-bar. These are the files in the directory you have associated with the session.

File Streaming

There are various modes a client can stream data from the server. These can be controlled by the control in the bottom portion of 'Files' tab. The streaming is initiated by double-clicking on a file in the files listing.

Note that for all these modes to be effective, the files on the server must be generated using HOOPS/StreamToolkit 8.0 or later with TK_Generate_Dictionary option. Results with the other formats are not guaranteed.


5.0 MaterialEditor

The Material Editor makes it easy to create a library of Material "Styles" based on colors, textures and visibility settings and apply them to geometry in the scene.

The left side of the dialog contains the style preview window as well as a horizontal list of styles which allows the user to select among the various styles and apply them to the current selection. There are also options for creating a new style, deleting, renaming or cloning the current style. A set of styles can be saved out to an hsf file or loaded back into the current model.

The right side of the dialog contains the texture, color and visibility settings for the selected style and allows the user to manipulate the texture parameters (which are global to all styles). In the "Texture Settings" window a new image can be loaded which will automatically be associated to a texture. Various texture parameters are exposed and can be changed (please refer to the HOOPS 3DGS Reference Manual for more information on textures in HOOPS). Additionally individual images or textures can be deleted and existing textures can be cloned.

The "Style Settings" on the right side expose the various color components of a particular style grouped by entity type. Textures can be applied to the various face color components and the visibility for the entity types can be changed. All those changes are imediatly reflected in the preview window as well as all geometry to which the selected style has been applied.


6.0 InterOp Integration

If you have InterOp installed, you can run a version of the HOOPS/InterOp ACIS Part Viewer which can be built using the acispartviewer_interop_vc<MS Visual Studio Version>.vcproj project found in <hoops>/demo/mfc/acispartviewer directory.

The ACIS/InterOp Part Viewer has all of the same capabilities as the ACIS Part Viewer with the addition of several other features. It can read and write the CAD file formats supported by InterOp.

While in the Part Viewer, users can launch the InterOp Part Browser from Tools menu. This browser shows the Part Info Window and the Browser Window. In the Part Info Window, users can see the BREP content of the document including number of bodies, edges, faces and other metrics. Users can also examine the E-BOM XML description of the assembly in the Browser Window. This includes an entry for each part of the model with a link to the log file that was generated during translation.

Figure 6a: The ACIS/InterOp Part Viewer with the InterOp Part Browser opened.