FixError 方法 (ActiveX/CSP)
将修复对象的属性值应用于错误对象的相同属性。 支持的平台:仅限 Windows 命名空间:AcStMgr (英语) 集会:AcStMgr.tlb 签名VB.NET: Public Sub FixError(pError, pFix[, pFailedReason]) _ Implements IAcStPlugin2.FixError ... End Sub C#: public void FixError(pError, pFix[, out pFailedReason]) { ...; }
返回值 (RetVal)无返回值。 言论没有其他评论。 发行信息释放: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 tmpFix = Nothing 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, 2024-12-16 00:06
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.