MATLAB: Error while using smimport

SimscapeSimscape Multibodysimulinksmimport

I am receiving an error: 'Error using smimport_implementation' when using the 'smimport' function to import a CAD model into Simscape Multibody. I have copied the command window readout below.
Error using smimport_implementation
Workspace for block diagram 'sm_robot' was not loaded because an error occurred while loading the MATLAB-file 'C:\Program
Files\MATLAB\R2018b\bin\win64\sm_robot_DataFile.m'.
Error in smimport (line 167)
[varargout{1:nargout}] = smimport_implementation(multibodyDescriptionFile, varargin{:});
Caused by:
Error using smimport_implementation
Undefined function or variable 'sm_robot_DataFile'.
I have seen the previous answer to a similar question in 2017, but the issue that caused the error has been fixed in the release I am using: R2018b. The line in the function smimport is also line 167 not 132 as in the older question. This error is even happening with the demo XML file: sm_robot. I have checked that the data file has been generated and I can open it and view it.
How can I rectify this error so that the multibody block diagram builds without errors?

Best Answer

Hi,
Try moving to a directory whose path does not have a 'space' character.
It is best practice to avoid using spaces or any special characters in folder names used by MATLAB and Simulink. A space is present in your current path:
C:\Program Files\MATLAB\R2018b\bin\win64\sm_robot_DataFile.m'.
You may also try renaming the sm_robot_DataFile.m to smrobotDataFile.m to eliminate the occurence of underscore character "_" in the MAT file name.
Having changed the directory, make sure to run this command:
>> addpath <new path (before the .m file)>
Another approach you may try is to navigate to the model's Model Workspace in the Model Explorer in the generated model. Change the Workspace Data Source from MATLAB File to MATLAB Code. Copy the contents of the generated "sm_robot_DataFile.m" and paste it into the text area. Click Apply.
DISCLAIMER: These are my own views and in no way depict those of MathWorks.
Related Question