- UID
- 270761
- 积分
- 154
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2005-6-1
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2013-5-12 10:49:36
|
显示全部楼层
本帖最后由 guohq 于 2013-5-12 10:53 编辑
[pcode=vb,true] Public Function RenameLinetype(ByVal OldName As String, ByVal NewName As String, Optional ByVal KeepOld As Boolean = False) As Boolean
If OldName.ToUpper = "CONTINUOUS" OrElse OldName.ToUpper = "BYLAYER" OrElse OldName.ToUpper = "BYBLOCK" Then
Return False
End If
Using Trans As Transaction = DB.TransactionManager.StartTransaction
Dim LTT As LinetypeTable = Trans.GetObject(DB.LinetypeTableId, Autodesk.AutoCAD.DatabaseServices.OpenMode.ForWrite)
If LTT.Has(OldName) Then
If LTT.Has(NewName) Then
RenameLinetype = False
Else
Dim LTR As LinetypeTableRecord = Trans.GetObject(LTT(OldName), Autodesk.AutoCAD.DatabaseServices.OpenMode.ForWrite)
If KeepOld = True Then
Dim LTRNew As LinetypeTableRecord = LTR.Clone
LTRNew.Name = NewName
LTT.Add(LTRNew)
Trans.AddNewlyCreatedDBObject(LTRNew, True)
Else
LTR.Name = NewName
End If
RenameLinetype = True
End If
Else
RenameLinetype = False
End If
Trans.Commit()
End Using
End Function[/pcode]
几年过去了,用.net终于可以实现!!
|
|