从MatLab到AutoCAD绘制直线的脚本制作问题

从MatLab到AutoCAD绘制直线的脚本制作问题,matlab,scripting,autocad,cad,Matlab,Scripting,Autocad,Cad,我想做一个项目,在那里我可以画一个电机使用MatLab计算的数据。我知道如何在AutoCAD中绘制它,现在我想用MatLab实现它 我开始学习如何在AutoCAD中绘制MatLab计算,但脚本中有一些错误,我不明白哪里出了问题。 首先,我使用ActiveX建立连接。连接正常,我成功了。问题是当我试图画一条线的时候 feature('COM_SafeArraySingleDim', 1) acad=actxGetRunningServer('AutoCAD.Application'); set(a

我想做一个项目,在那里我可以画一个电机使用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视频或一些我可以从中学习的资源吗? 谢谢

ActiveX方法要求起点和终点参数是相对于世界坐标系(WCS)表示的三维点,并由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);