1 Introduction

Computer aided design (CAD) systems are nowadays recognised as basic systems in the design process. 3D CAD models provide a natural way of sharing design information among designers and other participants in the production process. Unfortunately, in order to share a CAD model among different people, each person must have access to a CAD workstation. This is reasonable if the participants involved are working at the same company, preferably if they work in the same or related departments; of course, they also have to know how to use the CAD system. In practice, however, the situation is often much different. The model data has to be transferred from one system to another, often with the Web as a data transfer media. Due to the continuous development of CAD systems they have become sophisticated tools for modelling 3D objects; highly parameterised and powerful in presentations, analyses and simulations. However, many problems still remain unsolved. For instance, CAD systems do not provide support in the early design stage, although that stage is recognised as the most important for product development, with a great impact on development and production costs, and the old paradigm of using 2D design interfaces for modelling 3D objects is still applied, etc. Considering the global market, the data exchange over the Web between participants in the design process, and, following a concurrent paradigm, a cooperation with the participants in production process, represents another deficiency. Due to different user preferences and different algorithms used in CAD systems, the incompatibility between systems will continue to exist. The standard exchange formats (STEP, VDA, etc.) do not support the transfer of all functions available in CAD systems and moving data between CAD systems still remains a problem. Virtual reality (VR) has emerged as a popular technology, enhancing a user-friendly human-computer interface in product design fields. With several unsolved problems such as representation speed vs. reality outlook, VR still has the potential for the further development of user-friendly interfaces. The term VR is mainly used for immersive systems using special IO devices such as CAVE, HMD and BOOM with a full-scale stereoscopic viewing of computer-generated virtual worlds. The realistic navigation and real-time interactions for the manipulation and the control of a virtual environment are provided. The feeling or illusion of being fully immersed in the virtual world is fairly realistic. Beside full immersive systems, semi-immersive systems have been developed based mainly on screen projection (virtual tables, CyberSphere, projection walls, etc.). The lowest level of VR systems are desktop systems using only a monitor-based viewing of virtual objects. The production of quality virtual worlds requires a considerable amount of design and programming time. Expertise is required in device handling, user interface design, network programming, graphics programming and interaction techniques.

2 Problem highlighting

VR techniques require significant computer power to provide such basic requirements as viewing and interactions with a real-time response. The problems of global cooperation over the Web are reduced with more or less specialised viewers described in [1]. With new user-computer interfaces, VR CAD users and researchers are starting to incorporate new techniques to overcome the abovementioned weaknesses. The VR techniques enable the performance of functionality tests and verifications in the advance of interactive media that CAD systems cannot provide. Multimedia techniques are supporting the user-computer interaction, as well as dialogues, among the users. Considerable research is in progress to overcome the lack of information in the conceptual part of the design process, introducing functional features as referred to in [2] or with VR techniques as in [3]. VR systems and distributed VR systems have been developed in many fields, such as education [4], architecture [5], medicine [6] and chemistry [7], to mention just a few. Many early applications were develooped for the automotive and aerospace industries for the assembly and maintenance process [8] or for manufacturing [9]. Practically all of them use special IO devices for navigation in a virtual world. Large companies lack the time and small companies lack the resources required to implement the technology and automation needed to compete in the market place. Desktop non-immersive VR systems features are far from the possibilities of immersive VR technologies, but a key advantage in desktop systems are that standardised computer techniques can be used.

In order to integrate virtual worlds, heterogeneous data sources should be used. At the system level, this means the association or connection of CAD parts and assemblies for the generation of the virtual environment components. At the data level, this means converting and processing different data formats. That part of the process is very important and intensive. Many standard (de facto or de jure) independent exchange formats for geometric data are available, but only STEP offers a standardised way to propagate other product data, beside geometry. The process needs to improve the precision of appearance and illustration, to raise the presentation performance and to reduce the loss of information. It must be pointed out that virtual models are tessellated CAD models, because only a polygonal representation allows fast rendering in a real-time. VR systems use a different dataflow for manipulating virtual models in real time; converting data into the VR format is maintained differently from system to system, mainly depending on applications discussed in [10]. In other words, the conversion is not standardised, and proposals do not exist in this direction, since in applications virtual environments functionalities vary greatly.

Traditionally, VR systems are separate from CAD systems, and CAD systems output geometric data into a VR system that is used as a separate visualisation tool. This forces the use of a one-directional data-flow, and makes it hard to give feedback in some modifications of CAD systems. Research about including VR techniques in the design process is heading in two directions: including VR into the CAD system and including VR after the CAD system. In the first approach, researchers are trying to develop tools to create, modify and manipulate models inside CAD systems with 3D interfaces based on VR techniques, and using virtual environments as visualisation and analysing environment as in [3, 11]. This approach demands an access to CAD model databases and VR systems working as shell applications. In the second approach, models are created in a CAD system and than converted to a VR system to improve the visualisation and functional analysis of the part or the assembly. The models are converted from CAD and enriched with additional information into a 3D virtual environment. Descriptions of many such examples can be found on the Web [3, 10, 12].

With the transfer from CAD systems, using standard transfer formats, only the geometry is the same; all other information such as colours, the textures used, the assembly restraints, the analysis results, the optimisations, etc., are dependent on the range of possibilities and the openness of the CAD systems. In [13] the system for a fabrication of mechanical parts is introduced using VRML and a specially developed data format for exchanging machining features. The main weakness of such systems is that a user cannot directly modify the CAD model in the VR system. If, during the evaluation or examination of a virtual prototype, any modification is preferred or needed, a user has to make the changes in the CAD system, and re-convert the model into VR system, and this leads to a very unproductive and time-consuming repetitive loop.

3 The system architecture

The main goal of this paper is to develop and implement a computer system to handle the viewing and the examination of assemblies in low-level VRs, and to manipulate them with the appearances of parts and to enable the exchanging of parts simultaneously. For an effective production of assemblies companies, one must go to the highest possible modular structure to enable an exchange of parts and to enable an automation of the product planning and manufacturing process.

Due to the possibilities to exchange the models over the the Web, and considering the other limitations, a system has been developed and is presented in Fig. 1. One of the strict limitations in our research framework was the use of standard and freeware tools; therefore, we used the following tools: VRML as the standard model geometry data presentation, a Web browser with a plug-in as a virtual model viewer, XML as the configuration data carrier and Java as the programming language.

Fig. 1
figure 1

A system process model

Virtual models are exported from the CAD system via VRML as a standard geometry data transfer. The VRML model is defined in the file in a regular ASCII text format and standard syntax. VRML models have a 3D polygonal presentation enriched with functionality and dynamic behaviour that can be controlled interactively by the user. With the conversion of the CAD model into VRML a crucial step is performed, since that conversion is irreversible. As the VRML representation of a part is a polygonal approximation of the original CAD model, it cannot replace the CAD model. VRML is full of elements for data representation in a 3D space, but very limited for streaming and multi-user elements. In Fig. 2 the system architecture is presented.

Fig. 2
figure 2

The architecture of the presented computer model

We transferred the geometry from the CAD system into VRML syntax models using standard converters within the CAD systems. The VRML models have to be optimised, and the structure and usage of VRML syntax varies a lot between CAD systems. We somehow unified the VRML models and included entities defining the appearances, sensors, interpolators, scripts and routes. The combination of VRML and JavaScript creates a very strong tool for developing dynamic virtual worlds and the on-line presentation of objects [14]. Using a Web browser, the HTML limitations of structured data has been minimised by XML, and has become a standard for dispatching database data over the Web. VRML and XML were designed for very different domains but they offer many benefits if they are used integratively.

All VRML models are in the VRML models database, and the appearance data, the scripts, the sounds and the light definitions are kept in the database. Many generative elements were generated for sensors or routing that could be easily modified and used for a particular part. The configuration of assemblies is defined in the database in XML files using XML schema technology. XML is a Web standard format to define and exchange structured data, and in contrast with HTML, defines the content and not the presentation of data. Documents are in ASCII code that is easy to define; the documents basically have a tree-like structure and may contain attributes. XML is constrained to be syntactically well-formatted and validated and enables the separation of semantic aspects and the presentation of the data. The main benefit of XML is a hierarchical structure that is easier to search or rearrange and is very useful for application programming. The parsers are easy to obtain and are well-suited for producing output user interfaces in different formats. With the Java DOM parser, it is possible to read an input file in XML, check the formatting and semantic validity, and build and present a complex hierarchical object structure in few lines of code. In our application the configuration is transferred from an XML file through the DOM parser as a tree using Java Swing coding. The application reads the configuration data from the XML file, searches for the appropriate parts and scripts in the VRML database and presents it in the VRML viewer (an IE Web browser with Cosmos Plug-in is used), which could be navigated and examined. The assembly configuration and parts, including the appearance and functional behaviour, are very clearly specified as the attributes of the parts.

In the application, the user has the possibility to change attributes or replace assembly elements with others from the limited selection also defined in the configuration XML file.

Every element is defined as a tag a in hierarchical structure, where the selected material is clearly defined in a list of materials (appearances) that could compose the element. If the element could be exchanged with other elements, this is also indicated, and a list of appropriate elements is added. The limited selection assures consistency with the PDM system database. The changed assembly is rewritten and reviewed in the VRML viewer for further investigation. The new configuration is saved in XML file. After the system was defined and implemented, as discussed in the next section, we found more research opportunities and investigation directions. Since we have a limited space of choices, for those choices the limited space of production plans, assembly sequences, etc., exist as well. Since we already have the data about a structure of an assembly we decided to use them for other purposes in the project process. We decided to investigate a few directions; we have implemented some of them, but in general they are not solved yet, as they are being developed specifically for a company.

4 A case study

Our case study is an assembly from Adria Mobil Ltd. Adria is one of the leading European producers of motorhomes and caravans. Every market has its own technical regulations, and different customer desires and needs that significantly increase the number of variations of produced models. The competition on the market is very demanding and consequently the companies are forced to improve the quality of the products quite often by adding new features or refreshing the outer and the interior design. The evaluation of the design properties and the geometry in accordance with the manufacturing and assembly process is usually possible only with a physical prototype production. An optimal arrangement of the interior can be achieved due to a very limited space and comfort requirements. The CAD system for 2D drafting was implemented years ago and very effectively used in the manufacturing process (with NC machines) with command and macro files, as is described in [16]. The company moved from a 2D to a 3D modelling system, but some fragments of the old system are still in use. The main problems of producing these prototypes are that they require time-consuming and expensive work, and more importantly, the production of the physical prototype moves the design from the computer domain into the physical world. After analyses and evaluations are performed the modifications need to be transferred back to the computer environment. In Fig. 3 the CAD model of a motorhome is shown, created with the company's CAD system ProEngineer from PTC. The figure is less clear because it is a greyscale picture. It presents a view from the backside, where the empty toilet block area is noticeable; where the subassembly is installed is that we want to present more details.

Fig. 3
figure 3

A part of a motorhome modelled in the CAD system

The elements of the toilet block were converted directly from a CAD system and optimised with additional programs. The tessellation divides the part into many surfaces with the same appearance property. The programme re-joins the tessellated faces of the single part and simplifies the VRML model to the geometry level. When VRML models of the parts were finalised the configuration file was created. In Fig. 4, a representative piece of the XML file is presented.

Fig. 4
figure 4

An extract of an XML file

Every part is described as a leaf node and consists of three tags: an ID definition with adequate attributes, a position tag and an appearance tag. Attributes in the ID definition comprehend the reference to the geometry and, optionally, references to scripts, routes and sensors that are needed for a functional description of the part. In the position tag, the translation and rotation in the main coordinate system is defined. In the appearance tag the reference to the material list is indicated. If the assembly consists of more subassemblies and parts, they are clearly defined in the XML file in the hierarchical tree definition. One thing that is special in our XML file definition is the attribute "c". That attribute indicates that inside that tag it is possible to choose between different elements at the same level in the hierarchical structure. It is easiest to explain via the appearance tag in the last part described in Fig. 4. We have an attribute in the tag with the name of c and with a value equal to 1. That means that between the next tags at the equivalent level c is first used as a reference for the material definition. The same system is used for other elements.

We have a complete description of the assembly configuration with all possible variations defined in the single XML file. In other applications using XML technology, the contents of the file is rearranged from the input XML file, processed with the DOM parser into tree structure; with the application, the new tree structure is arranged and written to an output XML file [15]. We used a single XML file, where all possibilities for exchange are specified and the selected elements are indicated. The application enables us to change the configuration and the properties of the virtual environment and to perform analyses and evaluations simultaneously. It is possible to modify object properties (appearances, materials) and the assembly configuration via a limited selection of exchangeable parts and subassemblies including their functional behaviour (simulations, sound, etc.). When the part is exchanged with another part the functional behaviour of that part is included in the VRML model automatically. The limited selections of exchangeable parts are necessary due to the consistency of databases. The application outlook is presented in Fig. 5.

Fig. 5
figure 5

An application screen snapshot

The application is running in the frame divided into sub-frames. The big one on the right-hand side is earmarked for the visualisation of the VRML model with a Cosmo VRML viewer, where it is possible to navigate and interact in the virtual world. It can be noticed that the cabinets door are open, and it is hard to see that the lights are switched on to have a better picture contrast. Parts of the uniform colour are from plastic; the wooden parts are presented with texture as well as a marble washbowl. The left part is in a frame to control the application, with a dashboard added with buttons to submit the rebuilding of the virtual model with a selected configuration or to create an extra output for the CAD system or MARP. Since we have the description of all elements (IDs and materials) it is a pretty straightforward task to generate the list of all the parts with the appropriate material definitions. That file is arranged as a direct input for the company's PDM system.

5 Conclusions

Companies worldwide are introducing new technologies into the production cycle to increase their effectiveness and generate faster responses to market demands. Before the manufacturing process, a designed object should be verified to make sure that all construction constraints are obeyed; a project could be easy or a time-consuming and expensive process, depending on the complexity of the object. As an alternative for physical prototyping and testing, more computer techniques are being incorporated for visualising and testing the functionality of the objects. VR is recognised as the technology at the moment that can offer to the user the ability to see and explore in a realistic manner new products or concepts before they exist in reality. The costs involved in virtual prototyping are often essentially lower than a similar test on real prototypes. Standard Web technologies are leading to easier, more effective and more generalised applications. In our approach, we used VRML for sharing models over the Web, introducing XML as an interface between VRML and CAD models. The model enables the generation of a virtual environment for a viewing and an evaluation of the functionality in a standard VRML Web browser. The application reads the composition of the model from the XML file and generates a virtual environment for the evaluation. In the application, it is possible to change the configuration from a limited selection of options; we had to consider the consistency of the databases and the variations of materials of which elements could be made. After the analyses and the evaluations performed and the assembly was considered satisfactory from all participants in the project, we reached the point from where many varieties of application outputs were possible. One of them was producing the bill of materials (BOM) file that is used as an input for a MARP system; we found that to be a very welcome shortcut, and an effective, easier and faster way of preparing data for the production process. We had to have in mind that in our working example, the assembly consisted of highly modular inbuilt components with precisely defined manufacturing process plans that could be included in our interfaces to XML or similarly organised databases. Unfortunately, those interfaces cannot be generalised, because they have to serve different applications and systems with different algorithms, and we were at the problem of standard or universal applications data again.

We implemented a research version of the application for Adria Mobil Ltd. for testing and getting real feedback from industry. Design engineers and some users from the sales department mainly used the application. They find the application fairly useful for the exchange of parts and examining the results of changed configurations. The main weaknesses are the speed of navigation and the matching of colours on the screen with the real objects. The functional behaviour and interactivity possibilities were found to be adequate and promising. The output files, as BOMs, were found very useful, but they need some further work, mostly on PDM systems to incorporate data directly.

The combination of XML and VRML linked with an application proved to be a very effective way to maintain information over the Internet.