我正在使用PHP通过API连接SAP2000(结构分析软件)。
我在这一行的标题中提到了一个错误,我不知道我做错了什么?
$ret = $SapModel->PointObj->setRestraint("A", $supports);
错误:
PHP Fatal error: Uncaught exception 'com_exception' with message 'Parameter 0: Type mismatch.
Stack trace:
#0 C:\...: variant->setRestraint("A", Array)
#1 (main)
这来自SAP2000 API手册:
VB6程序
Function SetRestraint(ByVal Name As String,ByRef Value()As Boolean,可选ByVal ItemType As eItemType = object)As 长
命名
现有点对象或组的名称,具体取决于ItemType项的值。
值
这是六个约束值的数组。
Value(0) = U1
Value(1) = U2
Value(2) = U3
Value(3) = R1
Value(4) = R2
Value(5) = R3
的ItemType
这是eItemType枚举中的以下项之一:
Object = 0
Group = 1
SelectedObjects = 2
如果此项为Object,则对Name项指定的点对象进行约束分配。
如果此项目是“组”,则对“名称”项指定的组中的所有点对象进行约束分配。
如果此项为SelectedObjects,则对所有选定的点对象进行约束分配,并忽略Name项。
我的整个代码: ApplicationStart();
$SapModel=$SapObj->SapModel;
$ret = $SapModel->InitializeNewModel;
$ret = $SapModel->File->NewBlank;
settype($Name, "string");
$ret = $SapModel->PointObj->AddCartesian(0, 0, 0, $Name, "A");
$ret = $SapModel->PointObj->AddCartesian(0, 6, 0, $Name, "B");
$ret = $SapModel->FrameObj->AddByPoint("A", "B", $Name);
$supports = array(
True,
True,
True,
False,
False,
False);
$ret = $SapModel->PointObj->setRestraint("A", $supports);
$ret = $SapModel->PointObj->setRestraint("B", $supports);
?>