首页 > 解决方案 > 制作从 MatLab 到 AutoCAD 画线的脚本时出现问题

问题描述

我想做一个项目,我可以使用在 MatLab 中计算的数据绘制电动机。我知道如何在 AutoCAD 中绘制它,现在我想用 MatLab 进行这个实现。

我开始学习如何在 AutoCAD 中绘制 MatLab 计算,但我的脚本中有一些错误,我不明白哪里出了问题。首先,我使用 ActiveX 进行连接。连接正常,我设法做到了。问题是当我尝试画一条线时

feature('COM_SafeArraySingleDim', 1)
acad=actxGetRunningServer('AutoCAD.Application');
set(acad,'visible',1);
c_doc=get(acad,'ActiveDocument');
dwg=c_doc.PaperSpace;


a=[1;5];
b=[3;4];

invoke(dwg,'AddLine',a,b);

主要错误是描述:SafeArray 中的元素数量不正确。我使用了 2D 工作空间(PaperSpace),但如果我在 a 和 b 中添加第三个值,脚本可以工作,但不会画线。

如果您认为这不是从事此类项目的最佳解决方案,您能否向我推荐一些书籍、youtube 视频或一些我可以从中学习的资源?谢谢!

标签: matlabscriptingautocadcad

解决方案


ActiveXAddLine方法要求起点和终点参数是相对于世界坐标系 (WCS) 表示的 3D 点,并由 3 个双精度数的(安全)数组表示。

因此,您的数组将需要包含三个数值,例如:

a=[1.0;5.0;0.0];
b=[3.0;4.0;0.0];

invoke(dwg,'AddLine',a,b);

你有什么理由在 Paperspace 中创建你的线条吗?

顾名思义,图纸空间通常用于标题栏和注释,视口显示模型空间中定义的相关几何图形。

您可能还需要重新生成绘图以绘制线条,这可能看起来像这样:

invoke(c_doc,'Regen',0);

推荐阅读