Generate SysML block structure from NX CAD assembly structure.

The process of generating SysML models from NX CAD assembly structure follows the common drag-n-drop pattern in Syndeia. Follow the instructions below to generate SysML block structure from NX CAD assembly structure or a piece part. 

The NX CAD model used in this illustration is the Toycar model that is available with NX installation. It is located under: 
<NX_Installation>\ UGOPEN\SampleNXOpenApplications\Java\parts, e.g.
C:\Program Files\Siemens\NX 9.0\UGOPEN\SampleNXOpenApplications\Java\parts

  1. Create a new Rhapsody project. Add the Syndeia profile to your SysML model.
  2. 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 this section for adding a repository link).
  3. 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 below.

     

  4. Expand the NX model to view the assembly structure. 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 shown below. This will open the CAD model in NX, as shown below.

     

     

     

     
  5. Go to Settings tab on Syndeia dashboard and uncheck Get features of NX parts option, as shown below. Click Apply. This prevents part features with invalid names from creating problems in the Rhapsody SysML model.

     
     
  6. 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.

     
     
  7. Select Yes at the prompt.

     

  8. This will generate a SysML block structure from NX assembly structure. Notice the generation of block value properties and part properties corresponding to mass properties and assembly components respectively in the CAD model.


     
  9. 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. 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)

       

    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). 


    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. 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. 

     
  10. 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. Users can invoke compare and sync operations by right clicking on one or more connections.

     

Currently, the following are supported in the compare and sync operations.

  • Compare only compares the mass properties between the SysML blocks and NX parts/assemblies.
  • Sync from Target > SysML only updates the mass properties in the SysML block from the NX 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.