乐筑天下

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

两条曲线之间的最小距离,并在这些点上画一条线

[复制链接]

6

主题

14

帖子

1

银币

初来乍到

Rank: 1

铜币
38
发表于 2020-10-18 22:09:27 | 显示全部楼层 |阅读模式
通过下面的代码,我可以确定两条曲线之间的最短距离。这很管用
然后,我如何确定每个曲线上出现最短距离的点3d
这是为了在这两个点之间画一条线,以帮助用户确定最短距离的位置。
https://forums.autodesk.com/t5/net/minimum-distance-between-two-entities/td-p/6381823
  1. [CommandMethod("MinDist")]
  2.         public void GetMinimumDistance()
  3.         {
  4.             var doc = Application.DocumentManager.MdiActiveDocument;
  5.             var db = doc.Database;
  6.             var ed = doc.Editor;
  7.             var options = new PromptEntityOptions("\nSelect first object: ");
  8.             options.SetRejectMessage("Must be a curve.");
  9.             options.AddAllowedClass(typeof(Curve), false);
  10.             var result = ed.GetEntity(options);
  11.             if (result.Status != PromptStatus.OK)
  12.                 return;
  13.             var id1 = result.ObjectId;
  14.             options.Message = "\nSelect second object: ";
  15.             result = ed.GetEntity(options);
  16.             if (result.Status != PromptStatus.OK)
  17.                 return;
  18.             var id2 = result.ObjectId;
  19.             using (var tr = db.TransactionManager.StartTransaction())
  20.             {
  21.                 var curve1 = (Curve)tr.GetObject(id1, OpenMode.ForRead);
  22.                 var curve2 = (Curve)tr.GetObject(id2, OpenMode.ForRead);
  23.                 var distance = curve1.GetGeCurve().GetDistanceTo(curve2.GetGeCurve());
  24.                 ed.WriteMessage("\nDistance = {0}", distance);
  25.                 tr.Commit();
  26.             }
  27.         }

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

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

使用道具 举报

6

主题

14

帖子

1

银币

初来乍到

Rank: 1

铜币
38
发表于 2020-10-19 00:46:10 | 显示全部楼层
做了一些挖掘,设法想出一个磨破
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2020-10-19 00:54:57 | 显示全部楼层
我觉得不错
欢迎加入!
DWG几何API非常丰富,如果你挖掘得足够深入,你可能会找到它
回复

使用道具 举报

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2020-10-19 18:26:55 | 显示全部楼层
如果你碰巧有Civil 3D,那里有一个命令可以做到这一点:
https://knowledge.autodesk.com/support/civil-3d/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/Civil3D-UserGuide/files/GUID-26094B8A-1A5F-462E-AAF1-AF1716DE526A-htm.html
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2024-11-22 00:20 , Processed in 0.139865 second(s), 60 queries .

© 2020-2024 乐筑天下

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