Main Content

Onshape Import

Onshape® is a third-party CAD application that you can import multibody models from. As with other CAD applications, you use Onshape software to model 3-D parts and articulated assemblies. Onshape is full-cloud software and does not rely on a local installation to run.

You must have an active Onshape account to use the software. The Simscape™ Multibody™ smexportonshape function replaces the Simscape Multibody Link plug-in as the CAD export means. The plug-in is incompatible with Onshape and cannot be used with Onshape models.

Onshape Model

Onshape models are similar in composition to other multibody models. Parts connect through mates such as Ball, Slider, and Revolute to form articulated linkages, mechanisms, and machines. The models are hierarchical, with parts and mates nested inside subassemblies that can in turn be nested inside larger subassemblies.

Each Onshape model exists in a cloud document. A document can have multiple Part Studio tabs, for modeling parts, and Assembly tabs, for mating parts. A Part Studio tab can have multiple parts and these can be modeled in the relative poses anticipated in the final assembly—for example, to form rigid groups during assembly without the aid of Fixed mates.

Rigid groups are unique to Onshape models and map into Simulink® Subsystem blocks with rigidly connected bodies enclosed.

A Word about Terminology

Onshape and Simscape Multibody models have different standard terms for what are often the same things. Parts in an Onshape model are bodies in a Simscape Multibody model. Mates and relations in an Onshape model are joints and constraints in a Simscape Multibody model. These terms are used interchangeably here.

Preparing a Model for Import

Consider fixing one part in each Onshape subassembly. The fixed part determines the location of the subassembly reference frame in the imported model. You must fix the reference part directly in the subassembly tab containing that part. Parts fixed in the root assembly tab—that containing all other subassemblies or bodies—have no impact on the location of the subassembly reference frames.

Ensure that your Onshape parts are free of geometry errors and that your mates have been fully defined. If no mate exists between two parts—that is, if they have six relative degrees of freedom—the imported model will show a 6-DOF Joint block between the corresponding body subsystems. Fix at least one part at the root assembly level to prevent such a block from being added between the assembly and the World frame.

Importing an Onshape Model

You import an Onshape model into the Simscape Multibody environment using the smexportonshape and smimport functions. The smexportonshape function converts the Onshape model into an intermediate representation comprising an XML file and a set of STEP files. The smimport function converts the XML file into the final Simscape Multibody model and a supporting data file.

Onshape CAD Import Workflow

About the Intermediate Files

The XML file provides the smimport function the data it needs in order to recreate the Onshape model in the Simscape Multibody environment. This file is referred to as the multibody description file and is required for model import.

The STEP files provide the imported model, once generated, the 3-D geometries it needs in order to render the bodies in the visualization panes of solid blocks and Mechanics Explorer. The files are referred to as geometry files and are optional for model import.

About the Imported Model

The geometry files are referenced in the solid blocks of the imported model. If the geometry files are missing, or if the paths to the files change, the body geometries no longer show in the visualization panes of the solid blocks and Mechanics Explorer. Simulation is unaffected provided that the model is otherwise still valid.

The remaining block parameters are specified in terms of MATLAB® variables defined in the supporting data file generated by the smimport function. The variables are stored in a single data structure, with the data field names and indices identifying the block parameters that the variables correspond to—e.g., smiData.Solid(2).mass.

What Can You Import?

You can use the smexportonshape and smimport functions to import the contents of Onshape Assembly tabs only. Part Studio tabs lack the necessary information to generate a complete XML multibody description file and cause the smexportonshape function to error. Other Onshape document tabs, such as Drawing and Folder, present the same problem and cannot be exported.

If You Need to Import Single Parts

You can export part geometries directly from an Onshape document using the Onshape Export feature. This feature enables you to save geometries in various formats, but only two are compatible with Simscape Multibody models—STL and STEP. Once exported, the geometries can be individually imported into Simscape Multibody solid blocks. See Try It: Import a STEP Geometry File.

User Authentication and Account Permissions

Before you can export an Onshape model, the smexportonshape function needs to authenticate your Onshape account and verify that the Simscape Multibody Exporter app has access permission to your Onshape models.

Authentication occurs once per MATLAB session and is based on a protocol known as OAuth2. So that you can validate your account, the smexportonshape function automatically opens an Onshape log-in page on your first export attempt of a session.

You need give the Simscape Multibody Exporter app access permissions only once until these are revoked. So that you can set the permissions for the app, the smexportonshape function automatically opens an Onshape application authorization page on your first-ever export attempt.

You can revoke permissions at any time from the Onshape Applications page.

About the OAuth2 Protocol

OAuth2 is an authentication protocol that delegates the authentication process to the service hosting the account—in this case, Onshape. The website describes the protocol as a valet key that gives third-party applications such as Simscape Multibody access to some, but not all, aspects of your account. In particular, Simscape Multibody can access your app permissions data, but it cannot see or store your private log-in credentials.

Mapping to Simscape Multibody Blocks

Simscape Multibody can map all Onshape mates but Tangent to equivalent blocks. The mappings are straightforward, with only slight differences between mate and block names standing out. The table shows the mappings used during model import.

Onshape MateSimscape Multibody Block or Feature
BallSpherical Joint
CylindricalCylindrical Joint
FastenedDirect connection line
ParallelAngle Constraint
Pin SlotPin Slot Joint
PlanarPlanar Joint
RevoluteRevolute Joint
SliderPrismatic Joint

Onshape relations such as Gear and Linear are not supported. All relations in your model are ignored during import. You can often model the ignored relations using Simscape Multibody blocks—for example, using the Common Gear Constraint block to model a Gear relation between two gears. You may need to create and carefully place new frames before adding such blocks.

Onshape Import Warnings and Errors

Invalid Assembly URLs

The smexportonshape function expects the URL of an Onshape Assembly tab as an argument. An Onshape document often comprises Part Studio, Drawing, and other tabs. If you inadvertently specify the URL for the wrong document tab—one not containing an assembly—the function throws an error.

Zero-Mass Bodies

Onshape parts without assigned material translate into Simscape Multibody bodies with zero inertia. Such massless bodies can cause simulation to fail due to degenerate mass errors. A MATLAB warning identifies all massless bodies identified in your model, if any. You can manually specify the mass of a massless body after import using the Brick Solid block for that body. However, as a best practice, always try to assign a material to each body in an assembly before exporting it.

Unsupported Mates and Relations

Onshape mates such as Tangent and relations such as Gear are not supported. The smexportonshape function throws a warning identifying all unsupported mates and relations, if any. Unsupported mates map into nothing in a Simscape Multibody model. For a list of Onshape mates that you can import, see Mapping to Simscape Multibody Blocks.

Physical Units

The block parameters in the imported model are in the default units of the Onshape model workspace. These units often include a mix derived from SI, CGS, and other unit systems. You can change the units for an entire model in your Onshape model workspace and for an individual block in your imported Simscape Multibody model.

Obtaining Onshape Models to Import

You can create a free account and create your own assembly model in—or import one into—your Onshape account. Many Onshape assembly models are public. You can import all such models into the Simscape Multibody environment.

See Also


Related Topics