查询 PolyFaceMesh 范围内任意点高程
本帖最后由 csharp 于 2016-2-11 12:49 编辑PolyFaceMesh 范围内测试点高程
public void PolyTest_PolyFace()
{
var ed = Autodesk.AutoCAD.ApplicationServices.Core.Application.DocumentManager.MdiActiveDocument.Editor;
var peo = new PromptEntityOptions("\n选择PolyFaceMesh: ");
peo.SetRejectMessage("\n*非PolyFaceMesh*");
peo.AddAllowedClass(typeof(PolyFaceMesh),true);
var per = ed.GetEntity(peo);
if (per.Status != PromptStatus.OK)
return;
var ppr = ed.GetPoint("\n测试点: ");
if (ppr.Status!=PromptStatus.OK)
{
return;
}
var db = ed.Document.Database;
using (var tr = db.TransactionManager.StartTransaction())
{
var polyface = tr.GetObject(per.ObjectId, OpenMode.ForRead) as PolyFaceMesh;
if (polyface!=null)
{
var pt = ppr.Value;
var ext3D=polyface.GeometricExtents;
if (pt.X<ext3D.MinPoint.X||pt.X>ext3D.MaxPoint.X||pt.Y<ext3D.MinPoint.Y||pt.Y>ext3D.MaxPoint.Y)
{
return;
}
var **s = PolyFaceMeshTo**(polyface);
foreach (var ** in **s.Where(** => **.IsInside(pt)))
{
ed.WriteMessage("\n高度 = {0}",**.GetHeightAtPoint(pt));
break;
}
}
tr.Commit();
}
}
**** Hidden Message ***** 哦 看不懂
支持 学习学习! 能不能给个动画 jwj0805 发表于 2016-2-17 16:45
能不能给个动画
如图
这个可以看看 学习学习!!!
看不懂。。不过支持LZ 多谢分享多谢分享多谢分享
谢谢楼主分享 **是隐藏的代码? 执行在**报错 学习!!!!!!!!!!!!! 非常有用的功能,谢谢楼主分享,学习了 heganglin 发表于 2019-3-23 15:43
**是隐藏的代码?
楼主应该是定义了一个结构体,把定义结构体的名字**换成自己需要的名字应该就可以了
页:
[1]
2