在UCS上绘制圆弧
很好的一天一个程序如何绘制圆弧(点、半径、角度、角度)
根据WCS不断绘制弧?角度也与WCS有关。如果从两点3D绘制直线-ucs没有问题-但即使用户已更改为ucs,圆弧和圆仍保留为WCS?
是,这里需要帮助
即使只是一个简单的例子,在当前用户UCS上画一个弧也会很棒
干杯
穴居人 这些链接可能有用:
AutoCAD。NET开发者指南,这里有一个片段:
将角度从UCS转换为WCS
计算UCS和WCS之间的角度
HTH公司 干杯谢谢提供的源代码
有机会的时候我会复习的
下面是我创建的两个公共模块,它们同样有效。
用红色加高是我的错误-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)
acArc.TransformBy(GetUcsMatrix(acCurDb))
acBlkTblRec.AppendEntity(acArc)
acTrans.AddNewlyCreatedDBObject(acArc, True)
acTrans.Commit()
EndUsing
EndFunction
_____________________________________________________________
FriendFunction GetUcsMatrix(ByVal db As Database) As Matrix3d
Dim origin As Point3d = db.Ucsorg
Dim xAxis As Vector3d = db.Ucsxdir
Dim yAxis As Vector3d = db.Ucsydir
Dim zAxis As Vector3d = xAxis.CrossProduct(yAxis)
Return Matrix3d.AlignCoordinateSystem(Point3d.Origin, Vector3d.XAxis, Vector3d.YAxis, _
Vector3d.ZAxis, origin, xAxis, yAxis, zAxis)
EndFunction
欣赏
干杯
穴居人 穴居人
请阅读代码发布指南并编辑您的帖子。
页:
[1]