Exercise 14.1 - Creo to SysML.
Objectives
The new learning objective of this exercise is to generate a SysML model from a Creo CAD assembly structure.
Preparation
This exercise assumes the student has all of the following:
IBM Rational Rhapsody 8.2 or later correctly installed and licensed on their machine,
Syndeia 3.3 or 3.4 installed as a plugin for Rhapsody with a valid license for use,
Syndeia Creo interface, correctly installed with a valid Syndeia license for use,
PTC Creo 4.0 or later, installed correctly on his or her machine with a valid license for use.
A local repository connection in the Syndeia Repository Manager (DZ Local in this example), giving access to a local or shared file system containing the Creo model (see Video 1.2 about setting up repository connections). The CAD model used in this example is the model sample_assbly.asm.9Â , but you can use any standard Creo assembly model.
Notes
Rhapsody has configurable restrictions on the naming of SysML elements that reject name strings commonly used by other applications.
If left as configured, there are cases where Rhapsody will fail the creation of elements that use names of elements provided by external clients (such as Syndeia) that violate these restrictions.
For example, Rhapsody will deny a number in the first characters of the name of a SysML Block.
You must edit Rhapsody’s configuration, in each Rhapsody model, to alter these constraints.
Modify the properties of the top-level package of each model under General::Model::NamesRegExp with the following regular expression and save this modification and the project.
^(([a-zA-Z0-9_][a-zA-Z0-9_ ():-]*)|(operator.+))$
Exercise
Open the MagicDraw model Syndeia Tutorial Testbed.rpy (Get it here - SysML Models, Profiles and Mappings.). Right-click on package Creo_Tutorial, launch the Syndeia dashboard, select a Syndeia Cloud project if required, and click on the Connection Manager tab. Click on Repository at the top of the left panel and select SysML Repository. Click on Repository at the top of the right panel and select the DZ Local repository. The dashboard should appear as in Figure 1. The left panel shows the SysML model element selected. The right panel has been expanded to show the sample_assbly.asm.9Â file.
Expand the asm file to view the Creo model structure. This will initialize a Creo session if this is the first time you are accessing Creo models after creating/opening your SysML project. Once the Creo session is initialized, you will see an assembly icon (for Creo assemblies) or a part icon (for a Creo piece part as a prt file), as shown for the SAMPLE_ASSBLY assembly model in Figure 1 below.
Figure 1 Creo model loads when a Creo asm or prt file is expandedÂ
Expand the Creo model to view the assembly structure, as shown in Figure 2. You can see both components of the assembly in the Syndeia Dashboard, similar to the Creo model tree.
Figure 2 Expand the Creo model to view the assembly structure
Â
Right-click the asm file of the Creo CAD model in the RHS pane and select Open. This will open the CAD model in Creo, as shown in Figure 3 below.
Figure 3 Syndeia opens the Creo CAD model from the Syndeia dashboard
Select Model Transform connection type in the middle panel of the Connection Manager (Figure 1) and drag and drop the Creo model (SAMPLE_ASSBLY in this example) from the right column to a SysML Creo_Tutorial package on the left. Select Yes to confirm at the prompt.
This generates a SysML block structure from the Creo assembly structure, as shown in Figure 4. Notice the generation of part properties corresponding to assembly components in the CAD model.
Figure 4 SysML block structure generated (LHS) from the Creo model structure (RHS)
Â
Create a SysML block definition diagram in the SysML tool and drag and drop the SAMPLE_ASSBLY block generated in the previous step to the diagram. Expand and expose all the part properties and value properties of this block, as shown in Figure 5 below The semantic mapping from Creo CAD assembly structure to SysML block structure is as follows:
Creo part or assembly -> SysML block
Creo part or assembly mass properties -> SysML block value properties
Creo assembly component -> SysML block part property with an association block
Creo parameter -> SysML value property (optional)
Figure 5 SysML BDD showing the block structure generated from Creo assembly structure
Syndeia generates a SysML block corresponding to every Creo CAD part or sub-assembly in the root assembly structure. It applies the Creo_Assembly stereotype to identify Creo assemblies (.asm files) and Creo_Part stereotype to identify piece parts (.prt files). The mass properties of the part or assembly are generated as value properties. This includes mass, volume, density, surface area, center of gravity, and the coordinates of the lower left corner and upper right corner of the geometric bounding box of that part/assembly. The units for mass properties are assigned to the unit tag of the Creo_Mass_Property stereotype applied to the value property, e.g. unit for volume is in^3.
A CAD assembly is made of up of components, each of which are usages of a part (or sub-assembly) in the context of that assembly. Syndeia generates two important elements for assembly components. First, it creates a reference property relationship (e.g. PEG) from the parent assembly block (SAMPLE_ASSBLY) to the child part or sub-assembly block (PEG). Second, it creates an association block which is intended to store information regarding the placement of the component in the assembly, specifically the transformation from the child part (or sub-assembly) co-ordinate system to the parent assembly (or global) co-ordinate system. Syndeia applies the Creo_Component stereotype to association blocks.
In the drag-and-drop operations, Syndeia generates connections between SysML blocks and the Creo CAD parts/assemblies. You can view the connections organized by the SysML model in the Connection Browser tab or as a flat list in the Connection Search tab. Users can invoke compare and sync operations by right-clicking on one or more connections.
Compare compares the mass properties between the SysML blocks and Creo parts/assemblies.
Sync from Target > SysML updates the mass properties in the SysML block from the Creo part/assembly
Sync SysML > Target is not supported. This use case is not a high priority for system engineers since they usually do not modify existing CAD models directly. Mass properties in a CAD model are computed from the geometry and hence they are read-only properties.Â
Syndeia provides the option to bring or not bring some parameters from Creo models (parts/assemblies) to the SysML model, which in this case are the DESCRIPTION and MODELED_BY parameters. This is set by the Get parameters of Creo models setting in the Settings tab as shown in Figure 6. If this is changed, click Apply before proceeding.
Figure 6 Syndeia provides the option to bring parameters from Creo
Â