如何选择多段线并获取当前坐标
你好,谁能帮我?
我需要选择一条折线并读取当前坐标系中的起点和终点。
我有这个:
Dim id1 As ObjectId = SelectSpecificObjectType(vbLf & "Select polyline: ", GetType(Polyline))
If id1.IsNull Then
Return
End If
Private Shared Function SelectSpecificObjectType(ByVal prompt As String, ByVal objectClass As System.Type) As ObjectId
Dim ed As Editor = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor
Using tr As Transaction = ed.Document.Database.TransactionManager.StartTransaction()
While True
Dim res As PromptEntityResult = ed.GetEntity(prompt)
If res.StatusPromptStatus.OK Then
Return ObjectId.Null
End If
Dim ob As DBObject = tr.GetObject(res.ObjectId, OpenMode.ForRead)
If objectClass.IsAssignableFrom(ob.()) Then
Return res.ObjectId
End If
ed.WriteMessage(vbLf & "Invalid selection, {0} entity expected", RXClass.GetClass(objectClass).DxfName)
End While
End Using
Dim lineA As Polyline = CType(acTrans.GetObject(id2, OpenMode.ForRead), Polyline)
IntersectionPointA = lineIntersectors(AuxMuroA.StartPoint, AuxMuroA.EndPoint, lineA.StartPoint, lineA.EndPoint)
我需要一个当前用户坐标系的行A。
谢谢
**** Hidden Message ***** 实体在数据库中的坐标始终是世界坐标。如果需要当前UCS中的坐标,只需使用编辑器变换坐标点即可。CurrentUserSystemCoordinate:,类似于:
var ed=Application.DocumentManager.MdiDocument。编辑
var endPt=LineA.EndPoint.TransformBy(ed.CurrentUserCoorinateSystem)
类似地,如果您在当前UCS中拾取的点与世界不同,则在使用该点对实体进行计算之前,您可以通过使用Editor.CurrentUserCoordinationSystem.Inverse()将拾取的点转换为世界坐标系。
多谢各位 是否有此解决方案的 C# 代码?
https://codeconverter.icsharpcode.net/
页:
[1]