Message 1 of 3
Xdata, BlockReference and hatch problem
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
i have a custom command that inserts a BlockReference with Xdata associated, the app name used in the xdata is validated in the method:
Public Sub gdAddApp(ByVal AppName As String, Optional db As Database = Nothing)
If IsNothing(db) Then
db = HostApplicationServices.WorkingDatabase
End If
Using trans As Transaction = db.TransactionManager.StartTransaction()
Dim appTbl As RegAppTable = trans.GetObject(db.RegAppTableId, OpenMode.ForRead)
If Not appTbl.Has(AppName) Then
Dim appTblRec As New RegAppTableRecord
appTbl.UpgradeOpen()
appTblRec.Name = AppName
appTbl.Add(appTblRec)
trans.AddNewlyCreatedDBObject(appTblRec, True)
End If
trans.Commit()
End Using
End Sub
the xdata is setted in this method
Friend Sub setXRec(ByVal br As BlockReference)
Dim rb As New ResultBuffer()
rb.Add(New TypedValue(DxfCode.ExtendedDataRegAppName, SpParede.appName)) '0
rb.Add(New TypedValue(DxfCode.ExtendedDataAsciiString, Me.id)) '1
rb.Add(New TypedValue(DxfCode.ExtendedDataAsciiString, Me.hatchName)) '2
rb.Add(New TypedValue(DxfCode.ExtendedDataReal, Me.ptIni.X)) '3
rb.Add(New TypedValue(DxfCode.ExtendedDataReal, Me.ptIni.Y)) '4
rb.Add(New TypedValue(DxfCode.ExtendedDataReal, Me.ptFim.X)) '5
rb.Add(New TypedValue(DxfCode.ExtendedDataReal, Me.ptFim.Y)) '6
rb.Add(New TypedValue(DxfCode.ExtendedDataReal, Me.altura)) '7
rb.Add(New TypedValue(DxfCode.ExtendedDataReal, Me.largura)) '8
rb.Add(New TypedValue(DxfCode.ExtendedDataInteger16, If(Me.isDrawgin, 1, 0))) '9
rb.Add(New TypedValue(DxfCode.ExtendedDataInteger16, If(Me.selectMe, 1, 0))) '10
rb.Add(New TypedValue(DxfCode.ExtendedDataInteger16, If(Me.eixShow, 1, 0))) '11
rb.Add(New TypedValue(DxfCode.ExtendedDataInteger16, If(Me.eixGripShow, 1, 0))) '12
rb.Add(New TypedValue(DxfCode.ExtendedDataInteger16, If(Me.hatchShow, 1, 0))) '13
rb.Add(New TypedValue(DxfCode.ExtendedDataReal, Me.hatchScale)) '14
rb.Add(New TypedValue(DxfCode.ExtendedDataInteger16, Me.hatchColor)) '15
br.XData = rb
End Sub
All is working ok, i have overrules that add grips and stretch points to the block reference and everything is fine.
The problem is, when the document has one or more of this BlockReference on it, if the user calls a hatch command, when the variable HPQUICKPREVIEW is set to ON, AutoCAD crashes with fatal error, even if the blockReference is not involved direct with the hatch boundary.
Tested in 2019 and 2021, with all updates.