Manufacturing

Back Home Up Next

 

FAQ

Questions on the LPM/5 Manufacturing Constructs

Question 1

We have an MIS system for fabricators, and our initial goal is to be able to import a bill of materials (parts, assemblies [?]), labor operations, and some of the project data. The export will generally come from some detailing program.  I am assuming that parts and assemblies will map to located_part and located_assembly, and that in general we will be interested in the 'physical' level of entity. Does this seem correct?

Answer to Q1

Yes. Developers of MIS systems will be interested mainly in the ‘physical’ entities in LPM/5. These are all the ones related to assembly_manufacturing. They will not be interested in the analysis aspects of LPM/5. It should be remembered that the CIS was not designed specifically to create an MIS system, but it does contain a lot of information that will be relevant to such a system. More importantly, the LPM deals with the exchange of data between different applications, and therefore contains information that a MIS system may produce (and be able to export) or require (and be able to import).

In general, the ‘located_item’ and its subtypes deal with physical aspects of the structure. Many of the entities that these located items reference (and make use of for their own definition) are also used by the design aspects of the structure. For example, the entity ‘part’ is used to define both the ‘located_part’ and the ‘design_part’.

Question 2

I am not sure what entity we need for assemblies and how we might unpack the parts within it. Where is the mechanism for decomposing assembly_manufacturing into parts (i.e. located_parts [?])? Assembly_manufacturing_child appears to offer only a cumbersome singly-linked list.

Answer to Q2

The entity ‘assembly_manufacturing_child’ is used to define the hierarchical composition of assemblies from the manufacturers (fabricators) point of view. The relationship from child to parent (assembly_manufacturing_child to assembly_manufacturing) is indeed one-to-one. This means that a child can only have one parent. The relationship from parent to child (the INVERSE direction) is one-to-zero-one-or-many. This means that the parent assembly can have any number of child assemblies. For the purposes of manufacturing, a ‘beam’ subassembly can only belong to one (and only one) ‘frame’ assembly.

To place the assembly in a structure, we use the ‘located_assembly’ entity. This provides a coordinate system for the descriptive assembly, and locates the assembly with respect to its structure.

Similarly, the ‘located_part’ provides a coordinate system for the descriptive part, and locates the part with respect to its parent assembly_manufacturing.

Question 3

I am guessing that labor operations will map to located_feature, but I cannot see how a located_feature can be associated with a located_part. I don't see a mechanism for this association. Does this association have to be done through the structural_frame_process classes somehow (and then processes associated with structural_frame_product)? If so, perhaps you can indicate broadly how this might be done.

Answer to Q3

Labour operations are represented by the ‘structural_frame_process’ entity and its subtypes ‘cut’, ‘bend’, etc., NOT by the ‘feature’ entity.

The located_feature can be associated with a located_part using the subtype ‘located_feature_for_located_part’. This provides a coordinate system for the descriptive feature, and locates the feature with respect to the located_part to which it is applied. The located_part is modified by the located_feature.

To associate generic products with generic processes with an overall schedule, we use the entity ‘structural_frame_process_schedule_item’. The process must be assigned a processor (the person and organization performing the process), start and end times as well as a duration. The process produces a product from the processing of one or more products. Both the processed products and the resulting product must be declared.

To describe the process that puts the parts and assemblies together, we use the entity ‘assemble’. This is a type of ‘structural_frame_process’ that produces a single ‘assembly_manufacturing’ by bringing together a number of components using a number of processes. The components that are required to make up the ‘assembly_manufacturing’ are selected from a list of either an ‘assembly_manufacturing_child’, a ‘located_part’, a ‘located_feature’, or a ‘located_joint_system’.

Question 4

How do you designate/define a tapered member? 

Answer to Q4

Use the part_prismatic_complex_tapered.

Question 5

How is a located_part_joint really different from a located_joint? Examples?

Answer to Q5

As explained on page 422 of publication SCI-P-268, a 'located_part_joint' represents a logical connection between a pair of 'located_parts' which require the existence of one or more 'located_joint_systems'. This entity provides an association between the entities 'located_part' and 'located_joint_system'.

As explained on page 417 of publication SCI-P-268, 'located_joint_system' (there is no located_joint entity) provides a coordinate system for a 'joint_system' and places that 'joint_system' within an 'assembly_manufacturing'.  This entity provides the association between the entities 'coord_system', 'joint_system' and 'assembly_manufacturing'.

To put it simply, the 'located_part_joint' tells us that 2 parts are joined together, while the 'located_joint_system' tells us how the connection is physically fulfilled.

In the diagram above, the column ('located_part' #1) is logically connected to the endplate ('located_part' #2). This 'located_part_joint' is physically fulfilled by a 'located_joint_system' consisting of 4 Bolts, nuts and washers (which make up a 'joint_system_mechanical'). The endplate is logically connected to the beam ('located_part' #3). This 'located_part_joint' is physically fulfilled by a 'located_joint_system' consisting of a 'weld_mechanism' along a path defined by a composite_curve (making up a joint_system_welded).

Question 6

My understanding of the use of assembly_manufacturing / located_assembly is that the exporting application should gather identical assemblies and create ONE instance of assembly_manufacturing and MANY instances of located_assembly for each one. Similarly for part and located_part. None of the example files I have looked at have done that so is this a question of not following the standard or just interpretation. 

A relatively simple example would be a situation where a assembly consists of a beam and 4 identical angle cleats shop bolted. The detailing software identifies that as assembly A1 with 2 occurrences. A similar assembly (same cleats different main beam), is identified as A2 with 3 occurrences. 

Answer to Q6

In LPM/5, structures are built from a complex, multi-level hierarchy of parts, joints, subassemblies and assemblies. These are all located with respect to each other via an equally complex, multi-level hierarchy of nested coordinate systems. (If done to its extreme, any part in a structure can be located with respect to some fixed point on planet Earth (longitude, latitude, altitude).

Unfortunately, few software developers have implemented CIS/2 in such a way that takes full advantage of this scheme. Some even cheat - and use analytical nodes as locating points for assemblies.

Ideally, each unique part in a structure should be modelled by one instance of part. As steel structures usually contain repetition, these unique part 'types' will occur many times throughout the structure. It's not only parts that can be repeated, but whole assemblies.

Unfortunately, few software developers have implemented the component optimisation facilities available in CIS/2. The simplest CIS translators create an instance of part for each instance of located_part, and an instance of 'assembly_manufacturing' for each instance of 'located_assembly'. That is, a one-to-one correspondence. While this is not actually wrong in CIS/2, it not optimised for data exchange and not optimised for fabrication. It relies on the receiving application to rationalize and optimise the parts it receives.

Question 7

How do I determine which is the main part in an assembly from the information given in the CIS/2 files? This information should be known in the detailing systems.

Answer to Q7

There is no explicit attribute in LPM/5 to say 'main part'. Each part in an assembly is considered to be at the same level in the assembly hierarchy. A difficulty may arise, therefore, if one wishes to state explicitly that a stiffener is welded to a beam section rather than the beam section being welded to the stiffener.

There are several possible attributes that could fulfil this role. The entities 'part', 'assembly', 'located_part', and 'located_assembly' are all subtypes of the top level entity 'structural_frame_item', and as such inherit the attributes 

item_number : INTEGER; 

item_name : LABEL; 

item_description : OPTIONAL TEXT;

Either the item_name or the item_description could be used to say 'main part'. For example, the item_name of an instance of located_part could include the text string 'main component'.

(Things are a little easier with assemblies, as the entity 'assembly' has the attribute 'assembly_sequence_number', and the entity 'assembly_manufacturing' has an attribute 'assembly_sequence'.)

It should remembered that 'parts' don't have locations - located_parts do. The 'part' is effectively the specification of a component type, while the 'located_part' is an occurrence or 'token' of a part. The location of a 'located_part' is defined by its coordinate system. In the case of a prismatic part, the start end of the cut piece defines the origin of the part's local coordinate system. This is then located and oriented with respect to its parent assembly.

(Thus, analytical 'nodes' play no role in the location of physical parts!)

Further, the 'located_part' has to belong to a 'located_assembly'. Although the 'located_assembly' can contain many 'located_parts', the 'located_part' can only belong to one 'located_assembly'.

Question 8

I have received CIS/2 files containing several part_sheet entities, but I cannot see how to determine the plate width or length from the data given. Should these actually be part_sheet_bounded_simple or even use section_profile_rectangle?

Answer to Q8

The part_sheet entity says nothing about the width or length of the plate. If this is instanced on its own, the stock material is regarded as infinite in length. If you wish to represent a stock plate (one with known a length and width) then the subtype part_sheet_bounded_simple or part_sheet_bounded_complex should be populated.

Question 9

My understanding of the cut_length for a part_prismatic_simple is that it defines the length before any cutting features are applied, e.g. a beam could be defined with its coordinate system placing its start at a column centre, and cut_length being the distance to the next column. In order to determine the actual finished length of steel, it would be necessary to take into account any cutting features defined for the beam-column connections. Is that correct because it would then be possible for the stock_length to be less than the cut_length which is not allowed? At the moment, none of the files includes cutting features so has anyone got any plans to add them?

Answer to Q9

It is true that the cut_length attribute of the part_prismatic_simple entity defines the length before any cutting features are applied, however it would not be a good idea to define a beam with a coordinate system placed at the column centre, and cut_length equal to the distance to the next column.  The attribute cut_length is intended to represent the length of the part as cut by the fabricator from a stock piece. If profiles were made to order, then the stock piece would be the correct cut length required for the job. However, stock pieces tend to come in truck-size pieces (say 12m) - which are then cut as required for a job. It is assumed that this cut is square (i.e. perpendicular to the longitudinal axis). If the finished piece is required to have a skewed end - the extra length must be taken into account when cutting the stock piece.  The stock length should always be greater than the cut length.

The fact that none of the CIS/2 files you are receiving includes cutting features is probably because few applications actually support features (other than 'cut backs') Where applications support features, then they should put them in the file.

Question 10

Only the one of the CIS/2 files I received contained material information, i.e. steel grades. Is there any reason for omitting it from the others.

Answer to Q10

At time of writing, most CIS/2 translators are still under development.  Software vendors are likely to increase the scope of their translators version by version.

If your underlying application can deal with materials (description, grade) then this should be exported as using the entity 'material'. If you wish to capture material properties, use the entity 'material_representation' with the associated material_representation_item.

 

 

CIS/2 - online

This web site is hosted and maintained by 

SCI Home PageThe Steel Construction Institute

Copyright © 1999, 2000, 2003.  All rights reserved. 
Last modified: Friday April 20, 2001.

Questions or problems regarding this web site should be directed to Andrew Crowley.

CIS/2 is based on deliverables of the Eureka EU130 CIMsteel Project.

cimsteel_logo.gif (2358 bytes)

Copyright ©  The CIMsteel Collaborators.
CIMsteel is a Registered Trademark.

Other products mentioned are registered trademarks or trademarks of their respective companies