干杯谢谢提供的源代码
有机会的时候我会复习的
下面是我创建的两个公共模块,它们同样有效。
用红色加高是我的错误-Arc未转换为当前ucs。
______________________________________________________________________
-
- Code:
- PublicModule ModDrawArc
- FriendFunction DrawArc(ByVal startPoint As Point3d, ByVal Radius AsDouble, ByVal StartAngle AsDouble, ByVal EndAngle AsDouble) As Arc
- Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
- Dim acCurDb As Database = acDoc.Database
- acDoc.LockDocument()
- Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()
- Dim acBlkTbl As BlockTable
- acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead)
- Dim acBlkTblRec As BlockTableRecord
- acBlkTblRec = acTrans.GetObject(acBlkTbl(BlockTableRecord.ModelSpace), OpenMode.ForWrite)
- Dim acArc As Arc = New Arc(startPoint, Radius, StartAngle, EndAngle)
- [color=red]acArc.TransformBy(GetUcsMatrix(acCurDb))[/color]
- acBlkTblRec.AppendEntity(acArc)
- acTrans.AddNewlyCreatedDBObject(acArc, True)
- acTrans.Commit()
- [size=2][size=2][color=black]End[/color][/size][/size][size=2][size=2][color=black]Using[/color][/size]
- [/size][color=black][size=2][size=2]End[/size][/size][size=2][size=2]Function[/size][/size][/color]
- [size=2][color=#0000ff][size=2][color=#0000ff]_____________________________________________________________[/color][/size][/color][/size]
- [color=black] [/color]
- [color=black][size=2][size=2]Friend[/size][/size][size=2][size=2]Function[/size][/size][size=2] GetUcsMatrix([/size][size=2][size=2]ByVal[/size][/size][size=2] db [/size][size=2][size=2]As[/size][/size][size=2] Database) [/size][size=2][size=2]As[/size][/size][size=2] Matrix3d[/size][/color]
- [color=black][size=2][size=2]Dim[/size][/size][size=2] origin [/size][size=2][size=2]As[/size][/size][size=2] Point3d = db.Ucsorg[/size][/color]
- [color=black][size=2][size=2]Dim[/size][/size][size=2] xAxis [/size][size=2][size=2]As[/size][/size][size=2] Vector3d = db.Ucsxdir[/size][/color]
- [color=black][size=2][size=2]Dim[/size][/size][size=2] yAxis [/size][size=2][size=2]As[/size][/size][size=2] Vector3d = db.Ucsydir[/size][/color]
- [color=black][size=2][size=2]Dim[/size][/size][size=2] zAxis [/size][size=2][size=2]As[/size][/size][size=2] Vector3d = xAxis.CrossProduct(yAxis)[/size][/color]
- [color=black][size=2][size=2]Return[/size][/size][size=2] Matrix3d.AlignCoordinateSystem(Point3d.Origin, Vector3d.XAxis, Vector3d.YAxis, _[/size][/color]
- [size=2][color=black]Vector3d.ZAxis, origin, xAxis, yAxis, zAxis)[/color][/size]
- [color=black][size=2][size=2]End[/size][/size][size=2][size=2]Function[/size][/size][/color]
欣赏
干杯
穴居人 |