1

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);
?>
4

0 に答える 0