Lấy tập hợp các cao độ tại các trên Featurline trong Civil3D với ứng dụng API

Yuri Boyka August 7, 2015 0

Mình xin chia sẻ 1 đoạn code lấy các cao độ tại vị trí các đỉnh trên 1 FeatureLine:

[CommandMethod(“GETFEATURELINEVERTICAL”)]
public static void GETFEATURELINEVERTICALS()
{
using(acad.DocumentLock acLock = doc.LockDocument())
{
using(Transaction tr = db.TransactionManager.StartTransaction())
{
// Chọn Polyline
PromptEntityOptions _ent = new PromptEntityOptions(“\n- Chọn FeatureLine:”);
_ent.SetRejectMessage(“Null”);
_ent.AddAllowedClass(typeof(FeatureLine), true);

PromptEntityResult result = ed.GetEntity(_ent);
if (result.Status != PromptStatus.OK) return;
ObjectId _id = result.ObjectId;

//ép kiểu về lại Featureline
FeatureLine _fea = tr.GetObject(_id, OpenMode.ForRead) as FeatureLine;
AeccLandFeatureLine _land = (AeccLandFeatureLine)_fea.AcadObject;
double[] _pts = _land.GetPoints();
int dem = 1;
for(int i = 2; i < _pts.Length; i = i + 3)
{
ed.WriteMessage(“\n- Cao độ điểm” + dem + “:” + _pts[i].ToString() + “m”);
dem++;
}

tr.Commit();
}
}

1

 

Chúc các bạn thành công!

Leave A Response »

You must be logged in to post a comment.