Importing from COMPRESS

Importing from COMPRESS

Importing from COMPRESS

Importing COMPRESS XML Files

Contents

1 Introduction 2

1.1 Definitions 2

1.2 Basic data flow and steps 2

1.3 The XML file output from COMPRESS 2

2 COMPRESS part uniqueness, preventing duplicates, overwriting 3

2.1 How shell and nozzle IDs are created/determined, and how you can manage that in COMPRESS 4

2.2 ID duplicates in the same file 4

3 Importing Shells 5

3.1 Shell Part Field Mappings 5

3.2 Shell Holes Field Mappings 6

4 Importing nozzles 7

4.1 Nozzle Field Mappings 7

4.1.1 Nozzle Part Mappings 7

4.1.2 Nozzle End Cut Mappings 8

4.2 What to Expect from different Nozzle types 9

5 Considerations/Limitations 10

5.1 Design Considerations 10

5.2 Reimporting Considerations 10

Introduction

This document covers how PypeServer imports Codeware's COMPRESS XML files. The COMPRESS xml file provides enough information about holes, that the PypeServer import system can derive the parts connecting to the holes as well.

You should always check the data after importing to make sure that everything was interpreted correctly. Contact PypeServer if things are not working as needed.

Definitions

  • In this document we'll use "shell" to mean the main component you're designing in COMPRESS. In COMPRESS shells can be of several subtypes, cylinder being one.

  • We'll use "Nozzles" for the pipe parts (also commonly called headers or pups) that connect to the shell holes. Granted, nozzles typically mean store-bought parts, but in COMPRESS, nozzles refer to any part coming off a shell. Nozzles can be derived (on a best-efforts basis) from the shell hole and nozzle information.

Basic data flow and steps

The basic data flow:

COMPRESS CAD File, export to:

?? COMPRESS XML file, open using:

?? PypeServer import staging (part of PypeServer app), import to:

?? PipeServer Database, where it can be used in pypeserver

Steps:

  1. Export data from COMPRESS to an XML file. This is built into COMPRESS.

  2. Start PypeServer, and go to Import Data, select the COMPRESS Import

  3. Select a COMPRESS xml file you exported from COMPRESS.

    • This parses the file and presents the shells and nozzles you can import

  4. From a dialog, select the parts

Video tutorial:

In your PypeServer application's Training section, you'll find a video on doing an import. You can skip to that, but you really should read section 2 below. It's important for ensuring that your parts in PypeServer stay in sync with your designs in COMPRESS.

The XML file output from COMPRESS

Codeware has gone through great lengths to define and publicize as standard output format for pressure vessels and other large shells. It is this xml formatted file type that is being imported.

Because Codeware encourages other companies to use this same format, it may be that other CAD company's may export to this format. The PypeServer import may work for those as well.

You probably won't need to look into the XML file, but if so, the definition of COMPRESS XML format can be found on Codeware's website, last seen at: https://www.codeware.com/compress/xml.html

COMPRESS part uniqueness, preventing duplicates, overwriting

This section is put before actual importing so you don't miss it. It's important to understand.

It is highly desirable to maintain a unique-link between CAD designs and the parts imported into PypeServer. Put another way, anything imported into PypeServer should reference a specific part in your CAD system, so that you an a) look at a PypeServer design (of a shell or nozzle) and find the information in PypeServer you need to go find the exact (only) drawing that you imported from.

Another reason for this 1:1 link is for both sanity and convenience:

Sanity: Say a user tries to import the same shell (and nozzles) that have already been imported into PypeServer. Confusion will break out in many different ways, followed by a potentiall cumbersome cleanup. (This is no different than mismanaging the CAD files themselves-like creating duplicates all over the place.

For this reason, PypeServer will not re-import the shells or nozzles with the same ID (though it will update them-see "convience" below. If users cannot import new shells or nozzles because of this, you must change your

Convenience: Say a CAD designer makes changes to a shell design after importing to PypeServer, but before cutting the shells and nozzles. The user can re-export from COMPRESS to .xml and re-import (without having to delete all the already imported parts in PypeServer). On the second (or other subsequent) imports, the PypeServer import system will advise the user that the parts already exist (and haven't been cut) and allows the user to update the existing parts.

How shell and nozzle IDs are created/determined, and how you can manage that in COMPRESS

The CODEWARE xml export does not provide a guaranteed UID for every shell designed, or every hole made in a shell. This is in part because it is a CAD design and would be difficult for Codeware to determine if any given shell is meant to be new, or is just a duplicate file of the same design. As such, you the user need to maintain uniqueness of your shells and nozzles, such that there is always a Unique 1:1 relationship between your COMPRESS parts, and the parts imported into PypeServer.

During import, PypeServer determines "Unique Identifier" of a part using two fields: "idNumber" (of a shell or nozzle (which is used to define a nozzle), and "revNumber" which is the drawing Revision number you can set within the COMPRESS application.

Revision number in XML

This is found at the beginning of the xml file.

<?xml version="1.0" encoding="UTF-8"?>

<cw:vessel xmlns:cw="urn:PressureVessel" creationDate="2014-03-14" version="1.07.0066">

<!-- saved from url=(0024)http://www.codeware.com/ -->

<pressureVessel>

<revisions>

<revision>

<revNumber>2B</revNumber>

?

</revision>

</revisions>

idNumber number in XML

This is found in the standardComponentData section of a shell/<shelltype>/. E.g:

<shell>

<cylinder>

<standardComponentData>

<identifier>Cylinder #1</identifier>

<idNumber>1394824411</idNumber>

NOTE: For PypeServer, Revision numbers and idNumbers are alphanumeric (they can be letters, not just numbers).

ID duplicates in the same file

Shells and nozzles with Duplicate IDs in the same COMPRESS .xml file are assumed to be duplicates, thus:

  • For each duplicate ID found in the .xml file, an additional scheduled parts will be scheduled on import.

  • The name of the nozzle in PypeServer will be the first nozzle found

  • Warning, if in COMPRESS you duplicate shells or nozzles in the same file, make sure that the idNumbers vary wherever you change the design of the duplicated shell or nozzle.

Importing Shells

You can select which shells you want to import for a given file. (You don't need to import them all.)

Shell Part Field Mappings

PypeServer Field COMPRESS xml "<>
Part.Name

<shell>

<cylinder>

<standardComponentData>

<identifier>pressure vessel #1</identifier>

Part.Notes none
Part.Customer From the Customer field in the COMPRESS Import Dialog
Part.Job From the Job field in the COMPRESS Import Dialog
Part.Priority From the Priority field in the COMPRESS Import Dialog
Part.Cut Date (desired) From the Cut Date field in the COMPRESS Import Dialog
Part.Design Group

A join of these two fields:

<pressureVessel>

<generalVesselInfo><identifier>72-20-HT-125-B</identifier>

:

<shell>

<cylinder>

<standardComponentData>

<idNumber>14164349270</idNumber>

Part.CAD Import ID

A join of these two fields:

<shell>

<cylinder>

<standardComponentData>

<idNumber>14164349270</idNumber>

.

<pressureVessel>

<revisions>

<revision>

<revNumber>0</revNumber>

Material Type

<shell>

<cylinder>

<standardComponentData>

<material>SA-106 B Smls pipe</material>

Outer Diameter

<shell>

<cylinder>

<standardComponentData>

<outerDiameter>3.825 </ outerDiameter >

Wall Thickness

<shell>

<cylinder>

<standardComponentData>

<nominalThickness>0.125 </ nominalThickness >

Shell Holes Field Mappings

PypeServer Field COMPRESS xml
Cut.Name

<nozzle>

<drawingMark>N9A</ drawingMark >

Cut.Note

<nozzle>

<standardComponentData>

<identifier>Drain/Cleanout (N9A)</identifier>

Cut.Mate1Diameter
(Hole Diameter)

<nozzle>

<standardComponentData>

<outerDiameter>5.0</outerDiameter >

Cut.Mate1Angle

(angle rotated around pipe)

<nozzle>

<orientationAngle>90.0</orientationAngle >

Cut.YStart (dist along pipe)

<nozzle>

<lclIntersectionPointZ>53.0</lclIntersectionPointZ >

Or

<lclIntersectionPointX>53.0</lclIntersectionPointX >

(depending on pressure vessel orientation)

Cut.Mate1Offset
(offset across pipe)

<nozzle>

<offset>6.0</offset >

Cut.Mate1Angle

(angle tilted down pipe)

90 - <nozzle>

<tippingAngle>0.0</tippingAngle >

Cut.FeedRate From the Shell Cut Feed Rate field in the COMPRESS import dialog
Cut.Bevel Angle

Nozzle types 1-4 will use the Bevel Angle field in the COMPRESS import dialog (shown below), or if not set there, then the bevel angle for the default hole in PypeServer.

Nozzle types 7 & 8 (anything penetrating) will be set to zero in the importer.

Cut.Tabs (for holes > than a given ID) From the Tabs for holes field in the COMPRESS import dialog
Orientation (used for importing only)

<nozzle>

<orientation>6.0</ orientation >

Importing nozzles

You can select which nozzles you want to import for a given file. (Note that you can import nozzles separately from shells.)

Also see Considerations/Limitations about reimporting after deleting nozzles.

The PypeServer import does not distinguish which nozzles in the xml file are store-bought, and which ones need to be cut out of pipe (and therefore be imported into PypeServer).

  • The CAD designer should consider labelling (via hole naming convention or the nozzles' notes) those parts that should be imported.

  • The person doing the importing will need to manually select when nozzles are to be imported into PypeServer.

Nozzle Field Mappings

This section describes how PypeServer import parses and maps the COMPRESS xml fields that define nozzles.

Nozzle Part Mappings

PypeServer Field COMPRESS xml "<nozzle>
Part.Name

<standardComponentData>

<identifier>4" Drain/Cleanout (N9A)</identifier>

Part.Notes

<standardComponentData>

<idNumber>1234455335</ idNumber >

" for "

<nozzle>

<drawingMark>N9A</ drawingMark >

Part.Customer From the Customer field in the COMPRESS Import Dialog
Part.Job From the Job field in the COMPRESS Import Dialog
Part.Priority From the Priority field in the COMPRESS Import Dialog
Part.Cut Date (desired) From the Cut Date field in the COMPRESS Import Dialog
Part.Design Group

A join of these two fields:

<pressureVessel>

<generalVesselInfo><identifier>72-20-HT-125-B</identifier>

:

<shell> (note that this is the shell id-NOT the nozzle ID)

<cylinder>

<standardComponentData>

<idNumber>1416331170</idNumber>

Part.CAD Import ID

A join of these two fields:

<nozzle>

<standardComponentData>

<idNumber>1416331170</idNumber>

.

<pressureVessel>

<revisions>

<revision>

<revNumber>0</revNumber>

Material Type

<nozzle>

<standardComponentData>

<material>SA-106 B Smls pipe</material>

Outer Diameter

<nozzle>

<standardComponentData>

<outerDiameter>3.825 </ outerDiameter >

Wall Thickness

<nozzle>

<standardComponentData>

<nominalThickness>0.125 </ nominalThickness >

Nozzle End Cut Mappings

Nozzle End PypeServer Field COMPRESS xml "<nozzle>
Shell Cut.Name "For shell hole:" <drawingMark>N9A</drawingMark>
Shell Cut.Note

"For Nozzle:"

<standardComponentData>

<identifier>4" Drain/Cleanout (N9A)</identifier>

Flange Cut.Name

"Flange end:"

<nozzle>

<nozzleFlange>

<standardComponentData>

<identifier>Firetube Flange</identifier>

Flange Cut.Note

ID:

<nozzle>

<nozzleFlange>

<standardComponentData>

<idNumber>1420003943039</idNumber >

Attach to:

<nozzle>

<nozzleFlange>

<standardComponentData>

<attachedTo>Head #2 - Firetube End</attachedTo>

What to Expect from different Nozzle types

The following chart shows what nozzle types are supported in the PypeServer compress importer.

  • Nozzle types 1-4 are penetration type nozzles. They create beveled holes on the shell, and no bevel saddles on the connecting (penetrating) header part. The depth of penetration is defined in the COMPRESS export file. See the Cut.Bevel row for more information on how bevel angles get set.

  • Nozzle types 7 and 8 are set-on types nozzles. They create no-bevel holes with positively beveled saddle cuts for the header part.

Considerations/Limitations

Design Considerations

Seam Angle:

As of V2.069, PypeServer does not store seam angle on the part. It only stores it on the pipe.

  • The import appends the desired seam angle onto the notes.

  • This feature is scheduled for development.

Offset + tilted holes

At PypeServer's last investigation, COMPRESS did not allow for holes that are offset across the pipe and tilted (rotated laterally) down the pipe. PypeServer can make these cuts, but the operator may need to make changes to both the shell holes and the nozzles after import.

  • PypeServer suggests adding notes to such holes such that the operator can make updates after the import.

12 Nozzle types supported

At the time of writing this import, COMPRESS had 12 nozzle types defined. If additional nozzles have been added, and you need support for them, please contact PypeServer for getting the new nozzles included in the importing system.

Reimporting Considerations

Cannot reimport Designs with parts already cut

If you have already cut parts from a design, you cannot reimport these same designs to replace the existing PypeServer designs. Create a new revision in your COMPRESS file, or change the idNumber of the part(s) being reimported.

Reimporting after deleting nozzles

If you import a nozzle on a shell, and then in COMPRESS delete the nozzle from the shell, and then reimport the shell into PypeServer, then the deleted nozzle will remain in PypeServer. You will need to manually locate and delete the nozzles deleted in COMPRESS.

Reimporting with "Schedule Parts" selected will delete existing scheduled parts and recreate new scheduled parts

If you re-import a shell or nozzle and choose to schedule parts when import), will reflect the selected items imported on the re-import.

    • Related Articles

    • Enterprise Training - Importing

      Introduction to Importing Importing files into PypeServer Using the importing system to import part designs into PypeServer v3.03 Importing Into PypeServer Document on the importing data into PypeServer Describes the activities and rules in importing ...
    • Importing Into PypeServer

      Importing Into PypeServer How Importing Works This document describes the process of importing data that describes pipe parts. PypeServer creates these importers, though customers may contact PypeServer if they are interested in developing their own ...
    • Importing PCF files

      Importing PCF files Using PCF Files from CAD to PypeServer This document explains the meaning of data in a PCF file and how to structure it to get the best flow of data from your CAD system/workflow into PypeServer. Contents 1 Configuring your CAD ...
    • CAD/Importer Support Matrix

      Please refer to the below table to determine which CAD products are supported by what PypeServer products and importers. PypeServer Products 1 - Enterprise 2 - Lyte 3 - Portal * - Limited beta Importer PypeServer Connect PypeServer PypeServer ...
    • Importer Preprocessing Introduction

      Importer Preprocessing Introduction Importer Preprocessing - Introduction When Importing, you can direct PypeServer to run a script, application or other executable immediately prior to importing files. Also see the document Importer Preprocessing ...