Untitled
unknown
csharp
a year ago
5.9 kB
19
Indexable
[CommandMethod("PROFILE_EXPRESS")]
public void PROFILE_EXPRESS()
{
// CONFIGURAÇÃO DAS OPÇÕES DE SELEÇÃO
TypedValue TVTipo = new TypedValue((int)DxfCode.Start, "LWPOLYLINE");
SelectionFilter SF = new SelectionFilter( new TypedValue[] { TVTipo });
PromptSelectionOptions SOpts = new PromptSelectionOptions();
SOpts.MessageForAdding = "\nSelecione as polylines";
SOpts.MessageForRemoval = "\nApenas polylines";
// PEGA AS POLYLINES
PromptSelectionResult SelPolys = Manager.DocEditor.GetSelection(SOpts, SF);
if (SelPolys.Status != PromptStatus.OK)
{
return;
}
PromptEntityOptions OptsSurf = new PromptEntityOptions("\nSelecione a surperfície");
OptsSurf.SetRejectMessage("\nApenas Superficies");
OptsSurf.AddAllowedClass(typeof(TinSurface), true);
PromptEntityResult SelSurf = Manager.DocEditor.GetEntity(OptsSurf);
if (SelSurf.Status != PromptStatus.OK) {
return;
}
F_ESTILOS Janela = new F_ESTILOS();
Janela.ShowDialog();
if (!Janela.Fazer)
{
return;
}
PromptPointResult PTClicado = Manager.DocEditor.GetPoint("\nPonto Clicado");
if (PTClicado.Status != PromptStatus.OK)
{
return;
}
// PEGA O ID DO ESTILO ALINHAMENTO
ObjectId IDEstiloAlinhamento = Manager.DocCivil.Styles.AlignmentStyles[Janela.NomeEstiloAlinhamento];
ObjectId IDLabelsAlinhamento = Manager.DocCivil.Styles.LabelSetStyles.AlignmentLabelSetStyles[Janela.NomeLabelAlinhamento];
ObjectId IDEstiloVistaPerfil = Manager.DocCivil.Styles.ProfileViewStyles[Janela.NomeEstiloVista];
ObjectId IDEstiloPerfil = Manager.DocCivil.Styles.ProfileStyles[Janela.NomeEstiloTerreno];
ObjectId IDEstiloLabelPerfil = Manager.DocCivil.Styles.LabelSetStyles.ProfileLabelSetStyles[Janela.NomeLabelsPerfil];
ObjectId IDBandSet = Manager.DocCivil.Styles.ProfileViewBandSetStyles[Janela.NomeEstiloBand];
ObjectId IDEstiloGreide = Manager.DocCivil.Styles.ProfileStyles[Janela.NomeEstiloGreide];
using (DocumentLock Lock = Manager.DocCAD.LockDocument())
{
using (Transaction TransCAD = Manager.DocData.TransactionManager.StartTransaction())
{
LayerTable TabelaLayer = TransCAD.GetObject(Manager.DocData.LayerTableId, OpenMode.ForRead) as LayerTable;
ObjectId IDLayer = TabelaLayer["0"];
TinSurface Terreno = TransCAD.GetObject(SelSurf.ObjectId, OpenMode.ForRead) as TinSurface;
ProgressMeter PB = new ProgressMeter();
PB.SetLimit(SelPolys.Value.Count);
PB.Start("Processando");
double X = PTClicado.Value.X;
double Y = PTClicado.Value.Y;
for (int i = 0; i < SelPolys.Value.Count; i++)
{
PolylineOptions OptsPL = new PolylineOptions();
OptsPL.PlineId = SelPolys.Value[i].ObjectId;
OptsPL.EraseExistingEntities = Janela.ApagarPL;
string NomeAlinhamento = "Eixo - " + SelPolys.Value[i].ObjectId.Handle.Value.ToString();
string NomePerfil = "Perfil - " + Terreno.Name;
string NomePerfilVista = "Perfil - " + NomeAlinhamento;
string NomeGreide = "Greide - " + NomeAlinhamento;
ObjectId IDNovoAlinhamento = Alignment.Create(Manager.DocCivil, OptsPL, NomeAlinhamento, ObjectId.Null, IDLayer, IDEstiloAlinhamento, IDLabelsAlinhamento);
Alignment ALCriado = TransCAD.GetObject(IDNovoAlinhamento, OpenMode.ForRead) as Alignment;
ObjectId IDPerfilTerreno = Profile.CreateFromSurface(NomePerfil, IDNovoAlinhamento, SelSurf.ObjectId, IDLayer, IDEstiloPerfil, IDEstiloLabelPerfil);
Profile PerfilTerreno = TransCAD.GetObject(IDPerfilTerreno, OpenMode.ForRead) as Profile;
double CotaInicial = PerfilTerreno.ElevationAt(0);
double CotaFinal = PerfilTerreno.ElevationAt(ALCriado.EndingStation);
ObjectId IDPerfilGreide = Profile.CreateByLayout(NomeGreide, IDNovoAlinhamento, IDLayer, IDEstiloGreide, IDEstiloLabelPerfil);
Profile PerfilGreide = TransCAD.GetObject(IDPerfilGreide, OpenMode.ForWrite) as Profile;
Point2d PT1 = new Point2d(0, CotaInicial);
Point2d PT2 = new Point2d(ALCriado.EndingStation, CotaFinal);
PerfilGreide.Entities.AddFixedTangent(PT1, PT2);
Point3d PTFazerPerfil = new Point3d(X, Y, 0);
ObjectId IDPerfil = ProfileView.Create(Manager.DocCivil, NomePerfilVista, IDBandSet, IDNovoAlinhamento, PTFazerPerfil);
ProfileView PerfilCriado = TransCAD.GetObject(IDPerfil, OpenMode.ForWrite) as ProfileView;
X = PerfilCriado.GeometricExtents.MaxPoint.X + 20;
PB.MeterProgress();
System.Windows.Forms.Application.DoEvents();
}
PB.Stop();
TransCAD.Commit();
}
}
}Editor is loading...
Leave a Comment