【工具篇】 Solidworks导出xml模型到matlab(适用于simscape)

目录标题

  • 准备环节
    • 第一步:下载
    • 第二步:安装
    • 第三步:将MATLAB注册为自动化服务器
    • 第四步:完成在CAD软件端的配置【即sw等】
      • 导出sw中装配体
  • 检验环节
    • 额外操作
    • matlab导入模型
    • 修改simscape重力方向
  • 问题记录:

这个插件跟 上一篇文章提到的sw2urdf插件是平行关系;
本插件的作用是 将solidworks的装配体导出成xml文件【并最终在matlab simscape中使用】


该插件的下载方法及使用方法在matlab官方均有提供
如果看不懂英文,也可以看SolidWorks模型导入到MATLAB(Simulink-Simscape)详细过程这篇文章,博主把英语文档翻译了一遍。

另附matlab端的操作指南和Solidworks端的操作指南。

写在前面

  • 本文与官网教程有出入,只是记录了笔者设备调试成功的经验
  • 大部分的步骤是照着matlab端的操作指南走的,如果换到了Solidworks端操作指南我会提出
  • 这个插件与sw2urdf的一个不同之处在于,他会记住你的配合关系,这个插件中设置恰当的配合关系很重要!
  • 本插件不需要选择轴和坐标系等,所有关系均根据配合关系自动生成

准备环节

第一步:下载

按照官网给出的链接,进入下载界面,邮箱等信息可以随便填,不重要,填完进入如下界面
【工具篇】 Solidworks导出xml模型到matlab(适用于simscape)_第1张图片
下载与matlab版本对应的.zip.m文件,不需要解压.zip

第二步:安装

进入下载目录,新建一个脚本,输入

install_addon('zipname')

其中,"zipname"是zip文件的名字,如install_addon('smlink.r2020b.win64.zip)`
命令行显示类似下图【untitled.m是我创建的脚本,里面只有这一行命令】
【工具篇】 Solidworks导出xml模型到matlab(适用于simscape)_第2张图片

第三步:将MATLAB注册为自动化服务器

每次导出 CAD 装配模型时,Simscape Multibody Link插件都会尝试连接到 MATLAB。要启用连接,您必须将 MATLAB 注册为自动化服务器。

但是从我的使用经验来看,只要导出过一次.dll文件,就能永久在Solidworks使用了

可以通过以下两种方式将MATLAB注册为自动化服务器

  • 以管理员模式打开 MATLAB ,在下方命令行中输入"regmatlabserver"
  • 以管理员模式打开系统的命令提示符【cmd】,输入"matlab -regserver"

可以考虑进行完这一步之后再进行一次第二步

至此,matlab端的操作告一段落,接下来的操作在Solidworks端;
若上述步骤完成的顺利,第二或者第三步命令行里会有类似"保存文件到XXX.dll中"之类的字样

第四步:完成在CAD软件端的配置【即sw等】

这一步需要打开solidworks,跟sw2urdf时的操作一样,点开工具->插件,在【工具篇】 Solidworks导出xml模型到matlab(适用于simscape)_第3张图片其他插件中需那种Simscape Multibody Link

导出sw中装配体

【工具篇】 Solidworks导出xml模型到matlab(适用于simscape)_第4张图片

注意配合关系应合理且恰当,所有配合关系均会同步导出到xml文件中。

注意:本插件不需要选择轴和坐标系等,所有关系均根据配合关系自动生成

  • 部分参数,如生成STEP或STL可在settings中修改,其他参数笔者并未关注,欢迎自行探索

检验环节

至此,全部工作已经完成

额外操作

但是,为了让matlab识别到你的文件,首先需要将生成的实体文件中的中文去掉,并保证文件的绝对路径没有中文。

matlab导入模型

在matlab中新建一个脚本,输入导入模型的命令后,simulink界面会自动跳出

clear
clc
smimport("XXXXX.xml")

加载界面
【工具篇】 Solidworks导出xml模型到matlab(适用于simscape)_第5张图片
simulink界面
【工具篇】 Solidworks导出xml模型到matlab(适用于simscape)_第6张图片
调整停止时间后,点击右上角运行:
【此处附gif图片一张】

运行状态可能和我们想的不一致,这是因为系统的重力方向与我们预想的重力方向不同导致的

修改simscape重力方向

双击在这里插入图片描述
【工具篇】 Solidworks导出xml模型到matlab(适用于simscape)_第7张图片
我们发现重力是沿y方向的,结合上面的仿真动画,进行修改即可~

问题记录:

似乎第一次运行simscape没有问题,但是同样的文件运行第二次时,就会显示XXX文件/文件夹不存在,原因未知

你可能感兴趣的:(机器人学?,matlab,xml,开发语言)