Abstract:
A method and system for synchronized visualization of two partial scenes, in particular for three-dimensional rendering of contour surfaces of two workpieces, is described. A user opens several partial scenes and selects those partial scenes which are to be synchronized. The user then pushes a button on the taskbar (e.g., “Share-Camera”) corresponding to the scenes. The partial scenes are synchronized by associating all synchronized partial scenes with a main camera, whereby manipulation of the scene content of one window affects the (all) synchronized partial scenes of the other windows. The synchronization is independent of the mode of visualization in the individual window. In this way, several partial scenes can be visualized simultaneously within an application. Advantageously, the partial scenes can be manipulated independently of each other.

Description:
CROSS-REFERENCES TO RELATED APPLICATIONS  
         [0001]    This application claims the priority of German Patent Application Serial No. 101 54 794.3, filed Nov. 8, 2001, pursuant to 35 U.S.C. 119(a)-(d), the disclosure of which is incorporated herein by reference.  
         BACKGROUND OF THE INVENTION  
         [0002]    The present invention relates to a method for the synchronized visualization of two partial scenes, in particular for the three-dimensional rendering of contour surfaces of two workpieces, as well as a corresponding device, in particular a simulation computer.  
           [0003]    In CNC-controlled processing machines, a workpiece is typically either encoded directly or the workpiece is first modeled using a CAD system and thereafter converted into an equivalent CNC parts program. The resulting CNC parts programs and/or the CAD model then correspond to perfect processing commands for the processing machine. The CNC programs is then loaded into a CNC controller and the processing machine is controlled according to the CNC program.  
           [0004]    If the workpiece manufactured according to this CNC program is within the desired manufacturing tolerances of an ideal workpiece, then this approach causes no problem. However, if the manufactured workpiece does not meet the desired requirements, then the process needs to be optimized and the necessary changes, for example in the CNC program, have to be made so that an acceptable workpiece can be produced.  
           [0005]    It is possible to change sequentially individual processing commands and/or individual operating parameters of the processing machine, to produce a new workpiece and to then test the new workpiece. However, this approach is very time consuming and expensive, and wastes material. Moreover, the cause for deviations between the actually manufactured workpiece and the desired workpiece it is frequently not known.  
           [0006]    For this reason, there is an increasing trend to simulate mechatronic systems, such as industrial processing machines. However, a visualization environment is needed for analyzing the simulation results and for realistically rendering the surface of a workpiece generated by the simulation. The visualization environment is particularly important for the process simulation.  
           [0007]    Such a visualization environment is particularly important because visualization allows a better evaluation of the contours of several different workpieces calculated by the simulation system or of the differences between the actually produced workpiece and the desired workpiece. In a simulated milling operation, for example, milling points and the milling path as well as possibly an associated area workpiece contour have to be rendered. An evaluation of such virtually machined workpiece surfaces or other surfaces requires a differential comparison between parts programs with milled contours of individual control components (monitoring principle).  
           [0008]    Modern visualization elements provide three-dimensional rendering and can be integrated with other applications. The rendered content represents orthographic and/or perspective three-dimensional projections which can be interactively changed by the user. The user can typically rotate, displace and size (zoom) the rendered content. User-friendly visualization elements can also allow the user to obtain associated information by selecting certain details, such as for example the dimensions, spatial location or relationship to other details of the scene.  
           [0009]    This leads to a better understanding of the manufacturing process. Moreover, the surface quality of the workpiece to be manufactured can be determined and analyzed already in the design stage, so that the existing parameter values of the control and drive of the machine tool can be optimized.  
           [0010]    Accordingly, a “virtual workpiece” can be manufactured and/or the manufacturing operation can be carried out virtually. It is hence not necessary to actually produce a workpiece. In principle, there is not even a need for a processing machine. The number of prototypes can be significantly reduced through simulation and virtual production which saves costs.  
           [0011]    This applies to a comparison of the same workpiece fabricated in two different ways (e.g. with differently parameterized machine tools), or a workpiece which is processed by different techniques, e.g. scrubbing, pre-sizing, sizing.  
           [0012]    Conventional methods for visualizing several workpiece surfaces are limited to rendering the surfaces of different workpieces individually in graphic form. Hereby, corresponding partial scenes are typically visualized and evaluated sequentially and separately.  
           [0013]    Accordingly, it would be desirable and advantageous to provide an improved and more refined visualization of two or more three-dimensional contoured surfaces, for example of workpieces, so that a user can effectively compare even small differences between such surfaces and thereby evaluate surface qualities and differences between the surface qualities.  
         SUMMARY OF THE INVENTION  
         [0014]    According to one aspect of the present invention, a method is provided for synchronized visualization of two partial scenes, in particular for three-dimensional rendering of contour surfaces of two workpieces. The method includes the following the process steps:  
           [0015]    rendering a first partial scene in a first window of a visualization environment in an associated first view,  
           [0016]    simultaneously rendering a second partial scene in a second window of the visualization environment in an associated second view,  
           [0017]    providing an initially neutral main view,  
           [0018]    linking of the two partial scenes by  
           [0019]    selecting one partial scene and  
           [0020]    importing the parameters of the view associated with the selected partial scene into the main view, and  
           [0021]    associating the main view with the two partial scenes by rendering both partial scenes in the corresponding windows according to the main view, and  
           [0022]    importing a manipulation of a partial scene in one window into the main view and rendering the two partial scenes in the corresponding windows according to the main view.  
           [0023]    According to another aspect of the invention, the two partial scenes can also be linked by  
           [0024]    selecting one partial scene and  
           [0025]    importing the parameters of the view associated with the selected partial scene into the main view, and  
           [0026]    associating the main view with the selected partial scene and  
           [0027]    copying the parameters of the main view into the view of the other partial scene in the other window,  
           [0028]    importing a manipulation of the selected partial scene into the main view and copying the parameter of the main view into the view of the other partial scene in the other window, or  
           [0029]    importing a manipulation of the other partial scene into the associated view and copying the parameters of this view into the main view, and  
           [0030]    rendering the selected partial scene according to the main view and rendering the other partial scene according to the partial view associated with the other partial scene.  
           [0031]    It has proven to be advantageous in both cases to  
           [0032]    associate the first view with a first data structure,  
           [0033]    associate the second view with a second data structure,  
           [0034]    associate the main view with a third data structure,  
           [0035]    providing each data structure with memory locations for receiving all parameters required for a complete description of a view, and  
           [0036]    importing a selected view into another view by copying the parameters of the data structure associated with the selected view into the data structure associated with the other view.  
           [0037]    According to an advantageous embodiment of the invention, the synchronization process can be terminated by  
           [0038]    decoupling the two partial scenes by  
           [0039]    importing the parameters of the main view into the two views of the two partial scenes and  
           [0040]    associating the c 6 rresponding partial scene in the corresponding window with the corresponding view, and  
           [0041]    importing a manipulation of the partial scene in one of the windows into the corresponding view and rendering this partial scene in the corresponding window according to the associated view.  
           [0042]    The aforedescribed method of the invention is particularly suited for manipulating the view of a partial scene by moving the content of the partial scene in a window by zooming and/or rotation and/or translation, which is particularly effective in evaluating the surface qualities of workpieces, in particular in the context of virtual manufacturing of such workpieces with different machining instructions.  
           [0043]    The method of the invention can be implemented using a suitably programmed simulation computer with software segments executed on the computer, with the software segments performing the various method steps on the computer.  
           [0044]    According to yet another aspect of the invention, a device for synchronized visualization of two partial scenes includes  
           [0045]    a visualization environment, in particular a display, with  
           [0046]    a first window for displaying a first partial scene in an associated first view, and  
           [0047]    a second window for simultaneously displaying a second partial scene in a corresponding second view,  
           [0048]    a first memory adapted to receive parameters of the first view of the first partial scene,  
           [0049]    a second memory adapted to receive parameters of the second view of the second partial scene,  
           [0050]    a third memory adapted to receive parameters of a main view,  
           [0051]    a means for linking the two partial scenes, in particular a software switching element (button), with  
           [0052]    a means for selecting a partial scene, and  
           [0053]    a means for copying the parameters of the memory of the view associated with the selected partial scene into the third memory associated with the main view, and  
           [0054]    a means for linking the two windows with the content of the third memory associated with the main view, and  
           [0055]    a means for rendering both partial scenes in the respective window according to the parameters of the third memory, and  
           [0056]    a means for importing the changes in the parameters caused by a manipulation of a partial scene in one of the windows into the third memory.  
           [0057]    Still another advantageous device for synchronized visualization of two partial scenes includes  
           [0058]    a visualization environment, in particular a display, with  
           [0059]    a first window for displaying a first partial scene in an associated first view, and  
           [0060]    a second window for simultaneously displaying a second partial scene in a corresponding second view,  
           [0061]    a first memory adapted to receive parameters of the first view of the first partial scene,  
           [0062]    a second memory adapted to receive parameters of the second view of the second partial scene,  
           [0063]    a third memory adapted to receive parameters of a main view,  
           [0064]    a means for linking the two partial scenes, in particular a software switching element (button), with  
           [0065]    a means for selecting a partial scene,  
           [0066]    a means for copying the parameters of the memory of the view associated with the selected partial scene into the third memory associated with the main view,  
           [0067]    a means for linking the window with the selected partial scene with the content of the third memory means associated with the main view,  
           [0068]    a means for copying the parameters of the third memory into the memory associated with the partial scene in the other window,  
           [0069]    a means for rendering both partial scenes in the respective window according to the parameters of the respective associated memory,  
           [0070]    a means for importing the changes in the parameters caused by a manipulation of a partial scene in one of the windows into the third memory, and  
           [0071]    a means for importing the changes in the parameters caused by a manipulation of the other partial scene in one of the windows into the associated memory of the partial scene.  
           [0072]    The invention can also be implemented with a computer program product which can be loaded directly into the internal memory of a digital computer and which includes software segments for carrying out the aforedescribed method steps, when the program product is executed on a computer.  
           [0073]    The method of the invention for synchronized visualization of two partial scenes, as described above, can advantageously be employed for evaluating surface qualities of workpieces, in particular in conjunction with a virtual fabrication of such workpieces with different machining instructions.  
       
    
    
     BRIEF DESCRIPTION OF THE DRAWING  
       [0074]    Other features and advantages of the present invention will be more readily apparent upon reading the following description of currently preferred exemplified embodiments of the invention with reference to the accompanying drawing, in which:  
         [0075]    [0075]FIG. 1 depicts a synchronization of partial scenes based on scene graphs of the individual partial visualization scenes;  
         [0076]    [0076]FIG. 2 depicts possible components of a scene graph; and  
         [0077]    FIGS.  3  to  5  depict a configuration of an exemplary partial visualization scene with scene graphs using the symbols of FIG. 2. 
     
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS  
       [0078]    Throughout all the Figures, same or corresponding elements are generally indicated by same reference numerals.  
         [0079]    The invention will be described hereinafter with the aid of so-called scene graphs with reference to FIGS.  1  to  5 , which are particularly suited to represent the functionality.  
         [0080]    The system and method can be implemented in the form of a software environment which provides a suitable visualization environment on a graphic computer.  
         [0081]    For this purpose, several windows are created to render partial visualization scenes—using, for example, the Windows® MDI technology (Multiple Document Interface). Each window includes a visualization scene. In the context of the entire application, each window includes a partial visualization scene or partial scene. Each partial visualization scene is composed of different geometric objects (points, lines, surface grids represented as lines, surface grids represented as filled objects, etc.) that render a virtual process, such as a milling process, and is provided primarily for visualizing workpiece contours.  
         [0082]    For visualizing the scene (of the corresponding scene objects), a visualization environment is used which can be based on known graphic libraries. The application uses, for example, the object-oriented graphics library “Openlnventor” commercially available the Company TGS. Implementation could also be realized by using the freely available graphic library “OpenGL”. For rendering specific scene objects, each partial scene requires a “camera” representing the view of the partial scene and/or the viewing angle of a user in front of the display screen of the visualization environment.  
         [0083]    If the visualization environment “OpenInventor” is used, then a camera object is instantiated and added to one of the aforedescribed so-called scene graphs.  
         [0084]    In the following, the individual elements of scene graphs are listed, wherein the reference numerals  1  to  10  are associated with the graphic symbols depicted in FIG. 2.  
         [0085]    1 Separator node (SoSeparator)—the Separator subdivides the graphs into partial graphs. Feature nodes are valid in the respective partial graphs.  
         [0086]    2 Selection nodes (SoSelection)—children of these nodes can be selected. The method for selection can be defined. The selection node is simultaneously a Separator.  
         [0087]    3 Switch nodes (SoSwitch)—offers the possibility to mask individual children (partial graphs). Possible settings are ALL, NONE, CHILD(i).  
         [0088]    4 Feature nodes—specifies a modal feature.  
         [0089]    5 Metric and/or topology nodes.  
         [0090]    6 Light nodes—specifies the corresponding light (illumination) model.  
         [0091]    7 Geometry node—specifies the shape of the corresponding object.  
         [0092]    8 Camera node—specifies the type and setting of the camera.  
         [0093]    9 Callback node—offers the possibility to functionally react to events.  
         [0094]    10 Sub-graph—subdivides the scene graphs into partial graphs.  
         [0095]    The diagrams of FIGS.  3  to  5  depict a configuration of a typical partial visualization scene composed of such elements. FIG. 3 shows a tree structure of a scene graph with a Separator node m_root as a root node, with a Callback node m_keybevent, a feature nodes m_surroundings, and a topology node m_vertex that branches off the root node. Two sub-graphs SELECT and 2D_SCENE also branch off.  
         [0096]    The two other scene graphs, which depict additional examples, can be easily deduced from the Table above that shows the graphic symbols of FIG. 2. The respective function is indicated by the reference symbols.  
         [0097]    Of interest for the present invention is primarily the camera object m_Camera3D in FIG. 4 and the two light sources m_dirlight_blue and m_dirlight_red in FIG. 5, which directly affect the rendition of a partial scene in a window of the visualization environment. Each partial visualization scene has its own camera object in the corresponding scene graph. The other elements relate to the selection of options which lead to the node elements of the scene graphs.  
         [0098]    The camera object is of particular importance for the present invention. It includes a plurality of object data and object methods, with examples of such object data and object methods given below.  
         [0099]    Examples of object data:  
         [0100]    viewportMapping  
         [0101]    position  
         [0102]    orientation  
         [0103]    aspectRatio  
         [0104]    nearDistance, farDistance, focalDistance  
         [0105]    pointAt  
         [0106]    Examples of object methods:  
         [0107]    GetViewVolume  
         [0108]    ViewAll  
         [0109]    getViewportBounds  
         [0110]    When the application starts, a main camera is added to the application. As shown in the diagram of FIG. 1, the main camera is added in the scene graphs of the individual partial visualization scenes. The individual camera of a partial scene, called ‘camera’, and the main camera, called ‘Main_Camera’, can be selected in each partial scene n with a corresponding switch node Camera_Switch.  
         [0111]    When the user pushes a so-called Share-Camera-Button (for example, a software elements, Button) in any partial visualization scene, with each partial scene being provided with such Button, then the following happens:  
         [0112]    If the corresponding partial scene uses its own camera (left camera in FIG. 1) at the time of synchronization, then the camera of the main window is overwritten with the values of the corresponding camera of the partial scene and this partial scene is associated with the camera of the main window (for example, by using the OpenInventor function “IvfSetActiveCamera” described in the following program example).  
         [0113]    Conversely, if the corresponding partial scene uses the main camera (right camera in FIG. 1) at the time of synchronization, then the camera of the partial scene is overwritten with the values of the respective camera of the main window and the actual camera of the partial scene belonging to this partial scene is again associated with this partial scene.  
         [0114]    In the following, a code segment of an exemplary software implementation in the programming language C++ with OpenInventor functionality is listed:  
                                                                                                                                                                                                                                                                                                                 if (m_switchcamera-&gt;whichChild.getValue( ) == 0) {                theApp.m_camera-&gt;viewportMapping =            m_personalCamera-&gt;viewportMapping.getValue ( ):                theApp.m_camera-            &gt;position.setValue (m_personalCamera-&gt;position.getValue ( ));                theApp.m_camera-            &gt;orientation.setValue (m_personalCamera-       &gt;orientation.getValue( ));       theApp.m_camera-&gt;aspectRatio-m_personalCamera-       &gt;aspectRatio;                theApp.m_camera-&gt;nearDistance ″m_personalCamera-            &gt;nearDistance;                theApp.m_camera-&gt;farDistance == m_personalCamera-            &gt;farDistance                theApp.m_camera-&gt;focalDistance = m_personalCamera-            &gt;focalDistance;                m_switchCamera-&gt;whichChild = 1;           view-&gt;IvfsetActiveCamera (theApp.m_camera);           m_switchImage-&gt;whichChild = SO_SWITCH_ALL;                }           else {                m_personalCamera -&gt;viewportMapping =            theApp.m_camera-&gt; viewportMapping.getValue( );                m_personalCamera-            &gt;position.setValue (theApp.m_camera-&gt;position.getValue ( ));                m_personalCamera-            &gt;orientation.setValue (theApp.m_camera-       &gt;orientation.getValue ( ).);                m_personal Camera-&gt;aspectRatio = theApp.m_camera-            &gt;aspectRatio ;                m_personalCamera-&gt;nearDistance = theApp.m_camera-            &gt;nearDistance;                m_personalCamera-&gt;farDistance = theApp.m_camera-            &gt;farDistance;                m_personal Camera-&gt;focalDistance = theApp.m_camera-            &gt;focalDistance;                m_switchCamera-&gt;whichChild = 0,           view-&gt;IvfSetActiveCamera (m_personalCamera);           m_switchImage-&gt;whichChild = SO_SWITCH_NONE;                }            }                  
 
         [0115]    The assignment of the variables and functions is closely related to the semantic used in the Figures, which makes the preceding functionality easy to understand.  
         [0116]    A partial scene can be synchronized as often as desired.  
         [0117]    If a user can open several partial scenes (for example representation of the parts program, individual results of control components) and optionally arrange these partial scenes vertically or horizontally with a menu selection. The user then selects those partial scenes that are to be synchronized and clicks in these partial scenes the “Share-Camera” button on the taskbar.  
         [0118]    The partial scenes are now synchronized, i.e., the movement of the scene content of one window, such as zooming, rotation and/or translation, affects the (all) synchronized partial scenes of the other windows. The synchronization is independent of the type of visualization of the individual windows, i.e., the selected setting “representation of points, lines and/or areas” of the window is maintained.  
         [0119]    Advantageously, several partial scenes can be visualized simultaneously within one application. Alternatively, the partial scenes can also be manipulated independent of each other.  
         [0120]    The selected partial scenes hence always have the same settings, such as camera location, observer location, angle of incident light, etc. If the user zooms to the surface of a partial scene—for example to recognize inaccuracies on a micrometer scale—, then he can evaluate, for example, the surface results of other control/monitoring components and/or different renditions (milling path) in parallel and under exactly identical general conditions.  
         [0121]    This is made possible because the application can generate several windows (partial scenes) (for example, MDI applications). When several partial scenes are open and accessible, then the system and method of the invention can be used to synchronize scene content. If content of several scenes is synchronized, then the cameras of the various scenes are linked to cover more than one scene (window). The desired result is obtained by coupling the cameras of the various scenes.  
         [0122]    The synchronized graphic rendition according to the invention makes it easier for the user to evaluate surface qualities of contours which are obtained at different locations. By synchronizing and rendering partial scenes, the two virtually fabricated workpiece contours can be directly related within one scene on a display.  
         [0123]    While the invention has been illustrated and described in connection with currently preferred embodiments shown and described in detail, it is not intended to be limited to the details shown since various modifications and structural changes may be made without departing in any way from the spirit of the present invention. The embodiments were chosen and described in order to best explain the principles of the invention and practical application to thereby enable a person skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated.