API経由でSAP2000(構造解析ソフト)と接続するためにPHPを使用しています。
この行のタイトルに記載されているエラーが表示されますが、何が間違っているのかわかりません。
$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, Optional ByVal ItemType As eItemType = object) As Long
- パラメーター
名前
ItemType アイテムの値に応じた、既存のポイント オブジェクトまたはグループの名前。
価値
これは、6 つの拘束値の配列です。
Value(0) = U1
Value(1) = U2
Value(2) = U3
Value(3) = R1
Value(4) = R2
Value(5) = R3
アイテムタイプ
これは、eItemType 列挙内の次の項目の 1 つです。
Object = 0
Group = 1
SelectedObjects = 2
この項目が Object の場合、Name 項目で指定された点オブジェクトに拘束が割り当てられます。
この項目が Group の場合、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);
?>