ResultStatus 属性 (ActiveX/CSP) 
指定错误的当前状态。 支持的平台:仅限 Windows 命名空间:AcStMgr (英语) 集会:AcStMgr.tlb 言论没有其他评论。 发行信息释放:AutoCAD 2004 及更高版本 
 例子VB.NET: Public Sub FixError(ByVal pError As AcStError, _
                    ByVal pFix As AcStFix, _
                    Optional ByRef pFailedReason As String = "0") _
                    Implements IAcStPlugin2.FixError
    ' << Change based on standards implementation >>
    If IsNothing(pError) = False Then
        Dim sFixClrVal As ACAD_COLOR
        Dim sFixLWVal As ACAD_COLOR
        ' Get the drawing object to fix
        Dim badObjID As Long = pError.BadObjectId
        Dim badObj As AcadLayer = m_pCheckDatabase.ObjectIdToObject(badObjID)
        ' If no fix is provided, try the recommended fix
        If IsNothing(pFix) Then
            Dim tmpFix As New AcStFix()
            tmpFix = GetRecommendedFix(pError)
            If IsNothing(tmpFix) Then
                ' Set the result status of the error to Failed and No Recommended Fix
                pError.ResultStatus = AcStResultStatus.acStResFixFailed + AcStResultStatus.acStResNoRecommendedFix
            Else
                ' Fix the bad object
                pFix = tmpFix
                tmpFix = Nothing
                ' Fix the color of the layer
                pFix.PropertyValueGet("Color", sFixClrVal)
                Try
                    badObj.color = sFixClrVal
                    pError.ResultStatus = AcStResultStatus.acStResFixed
                Catch m_ex As Exception
                    pError.ResultStatus = AcStResultStatus.acStResFixFailed
                End Try
                ' Fix the Lineweight of the layer
                pFix.PropertyValueGet("Lineweight", sFixLWVal)
                Try
                    badObj.Lineweight = sFixLWVal
                    pError.ResultStatus = AcStResultStatus.acStResFixed
                Catch m_ex As Exception
                    pError.ResultStatus = AcStResultStatus.acStResFixFailed
                End Try
            End If
        Else
            ' Fix the color of the layer
            pFix.PropertyValueGet("Color", sFixClrVal)
            Try
                badObj.color = sFixClrVal
                pError.ResultStatus = AcStResultStatus.acStResFixed
            Catch m_ex As Exception
                pError.ResultStatus = AcStResultStatus.acStResFixFailed
            End Try
            ' Fix the Lineweight of the layer
            pFix.PropertyValueGet("Lineweight", sFixLWVal)
            Try
                badObj.Lineweight = sFixLWVal
                pError.ResultStatus = AcStResultStatus.acStResFixed
            Catch m_ex As Exception
                pError.ResultStatus = AcStResultStatus.acStResFixFailed
            End Try
        End If
    End If
End Sub
C#: public void FixError(AcStError pError, AcStFix pFix, out string pFailedReason)
{
    // << Change based on standards implementation >>
    if ((pError == null) == false)
    {
        object sFixClrVal = default(ACAD_COLOR);
        object sFixLWVal = default(ACAD_LWEIGHT);
        // Get the drawing object to fix
        long badObjID = pError.BadObjectId;
        AcadLayer badObj = (AcadLayer)m_pCheckDatabase.ObjectIdToObject(badObjID);
        // If no fix is provided, try the recommended fix
        if (pFix == null)
        {
            AcStFix tmpFix = new AcStFix();
            tmpFix = GetRecommendedFix(pError);
            if (tmpFix == null)
            {
                // Set the result status of the error to Failed and No Recommended Fix
                pError.ResultStatus = AcStResultStatus.acStResFixFailed | AcStResultStatus.acStResNoRecommendedFix;
            }
            else
            {
                // Fix the bad object
                pFix = tmpFix;
                tmpFix = null;
                // Fix the color of the layer
                pFix.PropertyValueGet("Color", ref sFixClrVal);
                try
                {
                    badObj.color = (AcColor)sFixClrVal;
                    pError.ResultStatus = AcStResultStatus.acStResFixed;
                }
                catch (Exception m_ex)
                {
                    pError.ResultStatus = AcStResultStatus.acStResFixFailed;
                }
                // Fix the Lineweight of the layer
                pFix.PropertyValueGet("Lineweight", ref sFixLWVal);
                try
                {
                    badObj.Lineweight = (ACAD_LWEIGHT)sFixLWVal;
                    pError.ResultStatus = AcStResultStatus.acStResFixed;
                }
                catch (Exception m_ex)
                {
                    pError.ResultStatus = AcStResultStatus.acStResFixFailed;
                }
            }
        }
        else
        {
            // Fix the color of the layer
            pFix.PropertyValueGet("Color", ref sFixClrVal);
            try
            {
                badObj.color = (AcColor)sFixClrVal;
                pError.ResultStatus = AcStResultStatus.acStResFixed;
            }
            catch (Exception m_ex)
            {
                pError.ResultStatus = AcStResultStatus.acStResFixFailed;
            }
            // Fix the Lineweight of the layer
            pFix.PropertyValueGet("Lineweight", ref sFixLWVal);
            try
            {
                badObj.Lineweight = (ACAD_LWEIGHT)sFixLWVal;
                pError.ResultStatus = AcStResultStatus.acStResFixed;
            }
            catch (Exception m_ex)
            {
                pError.ResultStatus = AcStResultStatus.acStResFixFailed;
            }
        }
    }
    pFailedReason = "0";
}
 | 
|Archiver|CAD开发者社区
( 苏ICP备2022047690号-1   苏公网安备32011402011833)
GMT+8, 2025-11-4 14:19
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.