PDM - xCAD Integration

 

For some Parts in the PDM system it is possible to associate a series of documents and / or CAD drawings. The parts described by CAD drawings have specified the attribute "Drawing Type" (other than "No Drawing").   When have several different kinds of CAD:

 

Mechanical

AutoCAD (2D & 3D) ,  3DS Max ,  Inventor , Pro/Engineer, CATIA , Solid Works , Solid Edge , Unigrafix (NX) ….

 

CIVIL / Architectural

AutoCAD (2D & 3D) , 3DS Max ,  Revit  , ArchiCAD ,  STAAD.Pro ….

 

Electrical / Electronic

PC Schematic EL Automation,  OrCAD P-Spice, OrCAD Capture, Mentor Graphics …

 

All of them generate files that we need to connect to a PDM part:  the CAD PART element represents the general container for CAD files and their properties.

The specific CAD tool introduces specialized CAD elements that extend the basic functionalities of the CAD PART class.

 

 

 

Consider, for example, the Solid Edge CAD tool, we can have the following file types:

 

 

From the PDM point of view, PAR and PSM are equivalent.

Each type of file must be supported with a related CAD element in PDM.

CAD elements are connected to the main PDM PART and among them according to structures defined in the CAD tool.

 

 

Assembly:  mounting of elementary 3D parts (PAR/PSM) or other assemblies (ASM)

 

 

Family of Parts (FoP): a set of primary 3D components (PAR) generated by a single matrix, based on structural parameterizations (e.g. dimension parameters)

 

Family of Assembly (FoA):  a group of 3D assemblies (ASM) in which vary the characteristics of the components that compose them but deriving from a single constructive model

 

 

The original element of a FoP or FoA is called the Master of the Table (for example Mechanical table, Electrical table etc..) and it usually includes a Draft file where all the characteristics/parametric values of family members are reported in a tabular format.

 

For the Solid Edge CAD integration we need to define new CAD element classes (one for each supported file type) derived from the generic CAD PART:

 

Each CAD element contains files and metadata and the CAD_Integration tools can alter both files and data or only files or data.  Synchronization hidden fields help to avoid the download of unnecessary information when a user needs to update the local CAD element data and files stored inside his workstation.

 

 

 field

name:  PDM_CheckInCount

description:  A counter increased after a file checkin

type:  integer

hidden:  true
reset:  oncreate  (clone+revise)

 

 

 

 field

name:  PDM_UpdateCount

description:  A counter increased after data update

type:  integer

hidden:  true
reset:  oncreate  (clone+revise)

 

 

 

 class

name:  PDM_CADPART

description:  basic CAD part element

abstract:  true

fields:  

PDM_CheckInCount

PDM_UpdateCount

 

 

 

 

 class

name:  PDM_<CAD type>_CADPART

description:  basic CAD part element for specific CAD type
superclass:  PDM_ CADPART

abstract:  true

 

 

 

 class

name:  PDM_<CAD type>_< Element type> (ex: PDM_SE_Draft)

description:  <CAD type> CAD element

abstract:  false

superclass:  PDM_< CAD type>_CADPART

fields:   attributes exchanged with CAD tool for the

              specific element type

 

 

 

 linktype

name:  PDM_PartToDrawing

description:  Connect a Part with a CAD Part

flags:  !duplicable , !selflinks

from: PDM_PART  (single, !revision, !clone)

to: PDM_CADPART (multiple, !revision, !clone)

access rights:

community:  read

assignment[PDM_Designer]: create,destroy

 

 

In addition you need to define all the linktypes for the CAD structures (Family of Parts / Family of Assemblies / CAD Assemblies  etc.)

 

 

Coding of CAD PART instances – CAD Integration

 

CAD PART elements are not created manually inside a PDM module, but they are instead generated and managed by a CAD Integration Interface.

 

The design of mechanical / electronic structures and the definition of aesthetic characteristics of finished products or subparts of them occurs almost exclusively by means of external CAD tools.  The designers have access to the workstations and use  CAD applications for the drawing of product components.   They work locally, saving the work in the workstation hard disks or into a network server.

However, the generated files (diagrams / drawings / schematics / tables / documents) must be shared very often with other project areas located in different geographical sites.

The PDM therefore acts as a means for the interchange of data and files to enable collaboration between the various R&D engineers.

In a client-server architecture the PDM represents the central point, and it is the collector (the server) of all information exchanged among the user workstations (called CAD-clients).

Each CAD-client provides a user interface within the CAD-application for providing or receiving the necessary data from/to the PDM to keep up to date the information related to technical drawing and for the file exchange operations.

 

One of the most important aspects to ensure the efficiency of the interchange of data and files between the CAD clients and the PDM module is to consider separately the management of information and that of CAD files.  Because CAD clients and PDM server can be located in different geographic areas these exchanges take place over a WAN and they are all the more critical as more is the consistency of each individual transaction.  In particular a CAD file has a considerable dimension and its transportation over a WAN in both directions involves waiting times for the designer of several minutes.   In addition, it is few probable that a CAD file has to be shared immediately between designers located in different geographic areas, so the fact to make it available in a few hours delay is not dramatic.

 

 

 

An efficient structure for the file interchange between the PDM module and the geographically distributed CAD-clients is given by:

 

- a centralized database

- a centralized File Storage

- a set of peripheral File Storages for the collection of "temporarily" decentralized files: they store files in exclusive way till the periodic synchronization with the central one.

 

Each local file system includes a local interface module with which all CAD-clients talk for the checkin / checkout file operations. This file system is designed to keep the files that are frequently exchanged among users over the LAN inside the same design department.

However the files must to be shared among all the designers, also located in different geographical areas and therefore they must be transferred, in the first instance, on the centralized file system and secondarily on local file systems that belong to the same business unit.   This operation, called Synchronization, is generally performed in batch mode in the night unless a request for a specific file not yet synchronized is raised during the checkout process.  In that case, the Synchronization is made on the fly and the designer have to wait for till it is completed.

 

 

 filespace

name:  PDM_<CAD type>_Files     (ex:  PDM_SE_Files)

description:  Repository for <CAD type> files

protocol:  ftp

flags:  hashed , subfolders

localareas: one for each LAN server

 

 

  localarea

name:  PDM_<CAD type>_<Area name>   (ex:  PDM_SE_Area1)

description:  Local repository for <CAD type> files - <Area name>

protocol:  ftp

flags:  hashed , subfolders

filespace: PDM_<CAD type>Files

 

 

 

 

As described above a CAD Integration includes the following elements:

 

 

-       Client side module (C)

 

o   it is an extension of the CAD application

o   it is written in the language supported by CAD tool
(for example in Visual Basic or C++ in case of the generated extension is a windows DLL)

o   generally it adds a new sub-menu in the main menu bar

o   it exchanges data (REST/SOAP) and files (FTP) with server side module

 

 

-       Server side module

 

o   installed in the LAN server (SL) and in the WAN server (SW)

o   it works in background: receives the requests (REST/SOAP) from CAD clients and performs the actions in the PDM database

o   it retrieves files from the local file system and sends them to CAD clients

o   it receives files from CAD clients and stores them into the local file system

 

 

The main functionalities of a CAD Integration module are:

 

-       User Login / Connect

the developer inserts its credentials (name / password) in a login form and the client module (C) sends a request to the central server module (SW)

The (SW) verifies the user name and password and returns all setup parameters to (C), including the network address of local (in the user LAN) server module (SL) for the next file checkin-checkout operations.

 

-       Search CAD Parts

the developers can query for CAD parts by specifying some query filters (patterns for type, code, revision, status, holder …) in a search panel:  the (C) sends a request to (SW) and displays the list of parts with related information (type, code, revision, holder, status, lock status, description … ) received back from the server.

 

-       Get CAD structures

from the list of parts proposed as a result of a query, the developer can select a specific CAD element, the (C) asks to (SW) the list of first level connected CAD parts (members of assemblies, FoP, FoA).  If the selected item belongs to a family of parts or family of assemblies, the table master element is also included. The structure shown on the CAD-client is the same viewable within the PDM with the navigation functions.   The user interface in the CAD client should provide navigation functionalities like

 

o   Root-Here:  switch the root of navigation tree to the selected item

o   Root-Back:  restore the root of navigation tree to the previous item

o   Expand to level:  expand the selected element to the specified level

o   Expand All:  expand the selected element to all levels

o   Where Used:  get all parent CAD element for the selected item

 

 

All these actions generate a request from the client (C) to the central server (SW) integration module for updating the user interface with new data.

The client optimization should avoid to ask for data that are already received from the server.

 

 

 

 

 

-       File Check-out

The designer selects the CAD parts for the checkout of related files inside the workstation hard disk. He can indicate for each item the checkout mode (1 LEVEL / 2 LEVEL / 3 LEVEL / ALL LEVELS) and if he intends to acquire the exclusive possession of them (lock).

The (C) module expands each object to the level indicated by the user and identifies the structures and all the other drawings / models which are necessary (for example the master of the family), and finally requires the files to the local server module (SL).   This module picks up the files from its local store and sends them to the requesting client module.  In case of absence of one or more files on the local store the selective synchronization between main and the local store is performed (or from another local store – to main store – and finally to current local store when the file is not synchronized with the main store).

The client optimization should avoid to ask for files that are already received from the server and store locally when they have not been modified by other users.

 

-       File Check-in

Once the files (and any other required models) were downloaded, the designer can make changes to the 3D drawings and tables or create new parts. At the completion of his job, the designer opens the model he wants to upload (usually the master of FoP / FoA / ASM) and select the command "Check-In" from the toolbar.   The client module (C) determines the model structure as defined, based on the CAD connections and compares it with the one retrieved from PLM.

The result of the comparison is given by the check-in interface:  a structured view in which new / changed models are highlighted and there are present check-in options for each of them.  The check-in process expands each node up to the appropriate level including all other drawings / models which are necessary for the generation of the structures inside the PDM (eg, masters of families, assembly components), and finally it sequentially sends the files to the local server (SL).

 

 

 

The file check-in is allowed if and only if:

- the main Part with same code exists and it is in the InWork status

- it is performed for the last revision of Part code

- the user who performs the first check-in is also the holder of the main Part

- in the main Part has been specified the proper DrawingType value

- the name of the CAD file matches the code of the Part (the revision index may be not included in the file name, but it is present inside the file internal properties)

 

During first check-in the CAD part for the specific file type is automatically created in PDM (with same code and revision of main Part) and it is connected to the related main Part; finally the physical file is attached to the CAD part.  If you repeat the check-in only the physical file is replaced.

 

-       Set CAD structures

 

At the end of check-in, the client module communicates with the central server (SW) for generating PDM relationships between CAD objects and for synchronizing the CAD part attributes.

 

 

-       Lock / Unlock CAD Parts

When a CAD object is locked in the PDM no one except the user who locked it, can check-in the files inside.  Generally the designer activates the lock on a model / drawing during check-out to take exclusive control for the file modification / revision till the subsequent check-in. However, he can also change the condition of the lock using the Lock / Unlock functions.

 

-       CAD Properties synchronization

The synchronization of the CAD attributes between the drawing file and the object inside the PDM occurs at the end of each check-Out (PDM-> CAD) and at the end each check-in (CAD-> PLM). However, you the designer should be able to perform the synchronization in both directions of these attributes, independent of the file transfer operations, using the "Property Synchronization" functionality.

 

The CAD integration module can be defined by using the servlets or the SOAP protocol (webservices )