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-10-29 12:29
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.