SAP2000 и октава - PullRequest
       14

SAP2000 и октава

0 голосов
/ 05 ноября 2018

У меня проблемы с реализацией кода API для sap2000 с использованием октавы. мой код указан ниже

`function [axial_internal_force] = sap2000_analysis(external_force)

  % create Sap2000 object
  %feature('COM_SafeArraySingleDim', 1);
  %feature('COM_PassSafeArrayByRef', 1);
  SapObject = actxserver('Sap2000v15.SapObject');

  % start Sap2000 application
  ret = com_invoke(SapObject,'ApplicationStart')
  ret = com_invoke(SapObject,'Hide')

  % start sap model
  sapmodel = 'Ten Bar Truss.sdb';
  sapmodel_dir = strcat(pwd,'\',sapmodel);
  ret = SapObject.SapModel.File.OpenFile(sapmodel_dir)

  % unlock Model
  ret = SapObject.SapModel.SetModelIsLocked(false)

  % set units to kip_in_F
  ret = SapObject.SapModel.SetPresentUnits(3)

  % assign loads at joints 
  Name = '4';
  LoadPat = 'DEAD';
  Value = zeros(1,6,'double')
  Replace = true();
  CSys = 'GLOBAL';
  Value(1,3) = -external_force %Load on the x direction
  Value(1,6) = 0.0
  ret = SapObject.SapModel.PointObj.SetLoadForce(Name,LoadPat,Value,Replace,CSys,0)

  % close sap model
  ret = SapObject.ApplicationExit(false)
  SapModel = 0;
  SapObject = 0;

  % save model
  %ret = SapObject.SapModel.File.Save(strcat(pwd,'\test1.SDB'))

  ret=0;             
end`

Я опустил функцию 'lines' ('COM_SafeArraySingleDim', 1) 'и' feature ('COM_PassSafeArrayByRef', 1) ', так как в Octave возникли проблемы, которые, я полагаю, являются источником ошибки этого кода. Таким образом, кто-нибудь знает какую-либо альтернативную функцию для этих двух функций в Octave. Если нет, как мне обойти эту проблему.

...