乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 90|回复: 4

如何选择多段线并获取当前坐标

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
6
发表于 2020-6-8 07:35:36 | 显示全部楼层 |阅读模式
你好
,谁能帮我?
我需要选择一条折线并读取当前坐标系中的起点和终点。
我有这个:
  1. Dim id1 As ObjectId = SelectSpecificObjectType(vbLf & "Select polyline: ", GetType(Polyline))
  2.         If id1.IsNull Then
  3.             Return
  4.         End If
  1. Private Shared Function SelectSpecificObjectType(ByVal prompt As String, ByVal objectClass As System.Type) As ObjectId
  2.         Dim ed As Editor = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor
  3.         Using tr As Transaction = ed.Document.Database.TransactionManager.StartTransaction()
  4.             While True
  5.                 Dim res As PromptEntityResult = ed.GetEntity(prompt)
  6.                 If res.Status  PromptStatus.OK Then
  7.                     Return ObjectId.Null
  8.                 End If
  9.                 Dim ob As DBObject = tr.GetObject(res.ObjectId, OpenMode.ForRead)
  10.                 If objectClass.IsAssignableFrom(ob.[GetType]()) Then
  11.                     Return res.ObjectId
  12.                 End If
  13.                 ed.WriteMessage(vbLf & "Invalid selection, {0} entity expected", RXClass.GetClass(objectClass).DxfName)
  14.             End While
  15.         End Using
  1. Dim lineA As Polyline = CType(acTrans.GetObject(id2, OpenMode.ForRead), Polyline)
  2. IntersectionPointA = lineIntersectors(AuxMuroA.StartPoint, AuxMuroA.EndPoint, lineA.StartPoint, lineA.EndPoint)

我需要一个当前用户坐标系的行A。
谢谢

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

4

主题

219

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
238
发表于 2020-6-9 10:44:17 | 显示全部楼层
实体在数据库中的坐标始终是世界坐标。如果需要当前UCS中的坐标,只需使用编辑器变换坐标点即可。CurrentUserSystemCoordinate:,类似于:
var ed=Application.DocumentManager.MdiDocument。编辑
var endPt=LineA.EndPoint.TransformBy(ed.CurrentUserCoorinateSystem)
类似地,如果您在当前UCS中拾取的点与世界不同,则在使用该点对实体进行计算之前,您可以通过使用Editor.CurrentUserCoordinationSystem.Inverse()将拾取的点转换为世界坐标系。
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
6
发表于 2020-7-20 07:19:14 | 显示全部楼层

多谢各位
回复

使用道具 举报

1

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
7
发表于 2020-10-15 08:08:15 | 显示全部楼层
是否有此解决方案的 C# 代码?
回复

使用道具 举报

85

主题

404

帖子

7

银币

中流砥柱

Rank: 25

铜币
751
发表于 2020-10-15 13:12:14 | 显示全部楼层

https://codeconverter.icsharpcode.net/
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2024-11-22 00:12 , Processed in 0.182986 second(s), 62 queries .

© 2020-2024 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表