正在尝试设置Dimblk VB。网
大家晚上好,我很好奇是否有人知道一个好方法,当块名已知并且在dwg中时,我可以获得块的objectid。我一直很难让它正常工作。。。我还在努力学习vbnet。其次,一旦我获得该objectid,我将尝试将Dimblk设置为该id。然而,如果该id不存在,我将需要导入它。如果有人问我这个问题,我很抱歉,但我还没有找到很多对我正在尝试做的事情有意义的解决方案,或者它们的编码方式让我不确定如何将其应用到我的代码中。以下是我目前掌握的代码:Private Function crwn_initdim(ByVal dimname As String, ByVal dimscale As Double, ByVal dimangdec As Integer, ByVal dimaltunits As Integer, ByVal dimaltdec As Integer, _
ByVal dimaltf As Integer, ByVal dimaltround As Integer, ByVal dimaltdec1 As Integer, ByVal dimaltzsup As Integer, ByVal dimaltunits1 As Integer, _
ByVal dimaltsup As Integer, ByVal dimapost As String, ByVal dimarcsymbol As Integer, ByVal dimarrowsize As Integer, ByVal dimatfit As Integer, _
ByVal dimaunit As Integer, ByVal dimazin As Integer, ByVal dimblock As String)
Dim crwn_dimid As ObjectId = Nothing 'dimid
Dim crwn_doclock As DocumentLock = Application.DocumentManager.MdiActiveDocument.LockDocument()
Dim crwn_database As Database = Application.DocumentManager.MdiActiveDocument.Database
Dim crwn_transaction As Transaction = crwn_database.TransactionManager.StartTransaction()
Dim crwn_dimstyle As DimStyleTableRecord
Try
Dim crwn_dimblktbl As BlockTable = crwn_transaction.GetObject(crwn_database.BlockTableId, OpenMode.ForNotify, False)
Dim crwn_dimtable As DimStyleTable = crwn_transaction.GetObject(crwn_database.DimStyleTableId, OpenMode.ForRead, False)
If crwn_dimblktbl.Has(dimblock) = False Then
MsgBox("Warning")
Else
'ObjectId
End If
If crwn_dimtable.Has(dimname) = False Then
crwn_dimstyle = New DimStyleTableRecord
crwn_dimstyle.Name = dimname
crwn_dimstyle.Dimscale = dimscale
crwn_dimstyle.Dimadec = dimangdec
crwn_dimstyle.Dimalt = dimaltunits
crwn_dimstyle.Dimaltd = dimaltdec
crwn_dimstyle.Dimaltf = dimaltf
crwn_dimstyle.Dimaltrnd = dimaltround
crwn_dimstyle.Dimalttd = dimaltdec1
crwn_dimstyle.Dimalttz = dimaltzsup
crwn_dimstyle.Dimaltu = dimaltunits1
crwn_dimstyle.Dimaltz = dimaltsup
crwn_dimstyle.Dimapost = dimapost
crwn_dimstyle.Dimarcsym = dimarcsymbol
crwn_dimstyle.Dimasz = dimarrowsize
crwn_dimstyle.Dimatfit = dimatfit
crwn_dimstyle.Dimaunit = dimaunit
crwn_dimstyle.Dimazin = dimazin
crwn_dimstyle.Dimblk = dimblock
crwn_dimtable.UpgradeOpen()
crwn_dimtable.Add(crwn_dimstyle)
crwn_transaction.AddNewlyCreatedDBObject(crwn_dimstyle, True)
crwn_dimtable.DowngradeOpen()
End If
crwn_dimid = crwn_dimtable.Item(dimname)
crwn_transaction.Commit()
Catch ex As Exception
crwn_transaction.Abort()
Finally
crwn_transaction.Dispose()
crwn_doclock.Dispose()
End Try
Return crwn_dimid
End Function
页:
[1]