Hiển thị các thông số tại các vị trí đường cong chuyển tiếp, cong tròn trên tuyến đường trong Civil3D với ứng dụng API

Yuri Boyka July 30, 2015 0

Mình xin chia sẻ 1 đoạn code cho phép ta chọn tim tuyến đường, chương trình sẽ hiển thị các thông số tại các vị trí đặc biệt trên tuyến đường:

[CommandMethod(“ENTITYPROPERTIES”)]
public static void ENTITYPROPERTIESS()
{
acad.Document doc = acad.Application.DocumentManager.MdiActiveDocument;
Editor ed = doc.Editor;
Database db = doc.Database;
Civil.CivilDocument _civil = Civil.CivilApplication.ActiveDocument;
using(acad.DocumentLock acLock = doc.LockDocument())
{
using(Transaction tr = db.TransactionManager.StartTransaction())
{
// Chọn tim đường
PromptEntityOptions _ent = new PromptEntityOptions(“\n- Chọn tim đường:”);
_ent.SetRejectMessage(“\n- Phải chọn đúng Alignment”);
_ent.AddAllowedClass(typeof(Alignment), true);
PromptEntityResult _ents = ed.GetEntity(_ent);
if(_ents.Status != PromptStatus.OK) return;
ObjectId _obi = _ents.ObjectId;
Alignment _ali = tr.GetObject(_obi, OpenMode.ForRead) as Alignment;
int i = 0;
foreach(AlignmentEntity myAe in _ali.Entities)
{
i++;
string _msg = “”;
switch(myAe.EntityType)
{
case AlignmentEntityType.Arc:
AlignmentArc myArc = myAe as AlignmentArc;
_msg = string.Format(“Entity{0} is an Arc, length: {1}\n”, i, myArc.Length);
break;
case AlignmentEntityType.Spiral:
AlignmentSpiral mySpiral = myAe as AlignmentSpiral;
_msg = string.Format(“Entity{0} is a Spiral, length: {1}\n”, i, mySpiral.Length);
break;
default:
_msg = string.Format(“Entity{0} is not a spiral or arc.\n”, i);
break;
}
ed.WriteMessage(_msg);
}
}
}
}

Gọi lệnh ENTITYPROPERTIES, chọn tim tuyến đường sẽ hiển thị các thông số tại các vị trí đặc biệt trên tuyến:

1

 

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

Leave A Response »

You must be logged in to post a comment.