Заранее приношу свои извинения, возможно, я неправильно использовал некоторую терминологию. Я новичок в объектно-ориентированном программировании.
Я пытаюсь управлять Siemens Solid Edge ST2 (программа CAD / CAM) из MATLAB через COM API. при выполнении этого из VB6 или VB.NET довольно легко идентифицировать (скажем) все объекты класса objEdge, выполняя какие-то действия для каждого цикла через объект коллекции objEdges:
Dim objEdges As SolidEdgeGeometry.Edges
objEdges = objCurve3D.GetType().InvokeMember("Edges", _
Reflection.BindingFlags.GetProperty, Nothing, objCurve3D, args)
For Each objEdge In objEdges
objProf.IncludeEdge(objEdge)
Next
Я пытаюсь сделать то же самое из MATLAB. Я успешно загружаю COM-сервер Solid Edge с помощью h = actxserver('SolidEdge.Application')
, могу делать такие вещи, как открывать документы, создавать геометрию и т. Д. Через API, но я просто не уверен, что MATLAB-эквивалент этого Visual Basic «объекта для каждого» (из-за отсутствия имя получше).
Похоже, пользователь Джулиан на форумах MATLAB Central здесь имеет ту же проблему, но у них нет ответа для него. Обратите внимание, что это не тот же вопрос, что и this, который рассматривает циклы for-each по стандартным массивам, а не COM-объектам.
Большое спасибо за любую помощь, которую могут предоставить.