...
- Create a new Rhapsody project. Add the Syndeia profile to your SysML model, as shown in Section 2.1.
- Launch the Syndeia Dashboard and access the NX CAD model (.prt) file, using a repository link pointing to the section of your local file system where the CAD model is located (see Section 2.1 for adding a repository link).
Expand the prt file to view the NX model structure. This will initialize a NX session if this is the first time you are accessing NX models after creating/opening your SysML project. Once the NX session is initialized, you will see an assembly icon (for NX assemblies) or a part icon (for NX piece parts) under the prt file, as shown for the toycar_assy assembly model under toycar_assy.prt file in Figure 108 below.
Figure 108:
NX model loads when a NX prt file is expanded
- Expand the NX model to view the assembly structure, as shown in Figure 109. You can also expand any other NX prt file to view the part/assembly structure, as shown for the toycar_axle_assy.prt file below. You can right-click the prt file or the NX CAD model in the RHS pane and select Open, as show in Figure 110 shown below. This will open the CAD model in NX, as shown in Figure 111 belowshown below.
Figure 109: Expand the NX model to view the assembly structure
Figure 110: Right click on the prt file or NX model and select Open
Figure 111: Syndeia opens the NX CAD model from the Dashboard
- Go to Settings tab on Syndeia dashboard and uncheck Get features of NX parts option, as shown in Figure 112 below. Click Apply. This prevents part features with invalid names from creating problems in the Rhapsody SysML model.
Figure 112: Turn off Get features of NX parts option in Syndeia dashboard, Settings tab
- Return to the Connection Manager tab (make sure you clicked Apply on the Settings tab). Select Model Transform connection type in the middle panel and drag and drop the NX model (e.g. toycar_assy) from the RHS pane to a SysML package on the LHS pane, as shown in Figure 113.
Figure 113: Drag and drop the NX model to a SysML package
- Select Yes at the prompt.
Figure 114: Select Yes to confirm generation of SysML block structure from NX assembly structure - This will generate a SysML block structure from NX assembly structure, as shown in Figure 115 below. Notice the generation of block value properties and part properties corresponding to mass properties and assembly components respectively in the CAD model.
Figure 115: SysML block structure generated (LHS) from the NX model structure (RHS)
- Create a SysML block diagram in Rhapsody and drag and drop the blocks generated in the previous step to the diagram and expose all the parts (as association ends) and values (as attributes) of the toycar_assy block, as shown in Figure 116 below. Now. Now, you can see the details of the block structure generated from NX assembly structure by Syndeia. The toycar_assy block has 4 part properties—3 shown in the parts compartment and 1 shown in an expanded form (FRONT_AXLE). The semantic mapping from NX CAD assembly structure to SysML block structure is as follows:
- NX part or assembly -> SysML block
- NX part or assembly mass properties -> SysML block attributes
- NX assembly component -> SysML block part property with an association block
- NX part feature -> SysML block and part property (optional)
- NX feature expression -> SysML value property (optional)
Figure 116: SysML BDD showing the block structure generated from NX assembly structure
Syndeia generates a SysML block corresponding to every NX CAD part or sub-assembly in the root assembly structure. It applies the NX_Part stereotype to identify NX parts (piece parts or assemblies) and sets the base unit for the part (e.g. mm) in the unit stereotype tag. The mass properties of the part or assembly are generated as attributes. 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).
Figure 117:
Figure 118:Model browser after model transform
Association block attributes for toycar – body association (BODY)
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 an Association relationship (FRONT_AXLE) from the parent assembly block (toycar_assy) to the child part or sub-assembly block (toycar_axle_assy). Syndeia applies the NX_Component stereotype to the association, as shown in Figure 117. Second, it creates an association block as part of the association, where Syndeia stores information regarding the placement of the component in the assembly. The transformation from the child part (or sub-assembly) co-ordinate system to the parent assembly (or global) co-ordinate system is expressed in terms of a translation vector and a 3x3 rotation matrix, as shown in Figure 118. - Similar to all drag and drop operations, Syndeia generates connections between SysML blocks and the NX CAD parts/assemblies. These connections are stored in the SysML model. You can view the connections organized by the SysML model in the Connection Browser tab or as a flat list in the Connection Summary tab, as shown in Figure 119 below. Users can invoke compare and sync operations by right clicking on one or more connections.
Figure 119: Invoke SysML-NX compare and sync operations using connections generated by Syndeia
...
- Open the MySystemPartFeatures model in Rhapsody. Open the Part feature decomposition BDD under the Part package, as shown in Figure 120 below.
- Right click on the Part package in the SysML model containment tree and select Syndeia > Dashboard menu. This will launch the Syndeia dashboard. Go to the Connection Manager tab, as shown in Figure 121 below.
Figure 120: SysML block structure with feature definitions for generating NX CAD model with features
Figure 121: Drag SysML block with feature definitions (LHS) to a folder (RHS) to generate NX CAD model
- In the Syndeia dashboard, select the connection type in the middle panel as Model Transform and drag-n-drop the My_System block from the SysML tree (LHS) to a folder on your local file system (RHS), as shown Figure 121.
- Select the option to Generate NX CAD model in the dialog box , as shown in Figure 122 below, and then click Yes to generate the NX CAD model, as shown in Figure 123.
Figure 122: Select option to generate NX CAD model
Figure 123: Click Yes to generate NX CAD model
- This will generate a NX CAD model with the same name as the SysML block (e.g. My_System), as shown in Figure 124 below.
Figure 124: NX CAD model My_System generated from SysML block structure
- Right click on the My_System.prt file or My_System NX model in the Syndeia dashboard and select Open. This will open the CAD model in NX, as shown in Figure 125 below. Note that 7 features have been generated in NX (as highlighted) from the 7 feature definitions in the SysML block structure (Figure 120). The part property names for the feature definitions in the SysML model have been used to name the features in the NX CAD model, e.g. "itsSphere" for the Sphere feature used in My_System.
Figure 125: Open NX CAD model from the Syndeia Dashboard
Follow the general rules below to create your own SysML model for generating NX CAD parts with features. These rules are also mentioned in a note form in the SysML BDD Part::Part feature decomposition in the My System Part Features SysML model.
Define a block to represent the parent part. Apply the NX_Part stereotype to this block and populate the unit tag, as shown in Figure 126 below (allowable values are mm and inch). The units apply to everything in the part, including computed parameters such as volume and bounding box.
Figure 126: Populate the unit tag of the NX_Part stereotype to specify the base units for the NX part
- Create blocks to represent the primitive features. Allowable names are - Point, Line, Plane, Cuboid, Cone, Cylinder, and Sphere. Apply the NX_Part_Feature stereotype to these blocks, as shown in Figure 120.
- Create and populate (default value) the value properties of the feature blocks, as shown in Figure 120. The . The names of value properties for the feature blocks must be exactly same as in the My_System_PartFeatures model (Figure 120).
For steps 2-3 above, it is recommended that you copy the feature blocks in the example model My_System_Part_Features in your own SysML model and then modify the value properties for the feature parameters, as needed.
- Create part properties (composition relationships) from the parent part block to the feature blocks, as shown in the My_System_Part_Features model (Figure 120).
- Name the part properties with names that are relevant to your domain. These names will be used to set the feature names in the NX CAD model, as shown in Figure 125.