TaskGotoPoint

Espacio de nombres: Digi21.DigiNG.Plugin.TaskPanel
Ensamblado: Digi21.DigiNG.Plugin

Tarea del panel de tareas que, al hacer doble clic, centra la ventana de dibujo en unas coordenadas. Digi3D.AI dibuja además un icono en esas coordenadas de la ventana de dibujo.

public class TaskGotoPoint : TaskBase

Herencia: TaskBase → TaskGotoPoint. Implementa ITask. Clase derivada: TaskEntityGotoPoint.

La tarea se añade al panel con Digi3D.Tasks.Add.

Icono en la ventana de dibujo

Si la tarea tiene Severity igual a TaskSeverity.Error y se añade directamente al panel (no como hija de otra tarea), Digi3D.AI dibuja en Coordinates un triángulo relleno de color Color, de 2 × Size píxeles de ancho y de alto, centrado en las coordenadas. El triángulo no cambia de tamaño con el zoom. Tasks.Add copia Coordinates, Color y Size al añadir la tarea: los cambios posteriores de esas propiedades no mueven ni cambian el icono.

Constructores

public TaskGotoPoint()
public TaskGotoPoint(Point3D coordinates, string title, TaskSeverity severity)
public TaskGotoPoint(Point3D coordinates, string title, TaskSeverity severity, string drawingFile, string module)
public TaskGotoPoint(Point3D coordinates, string title, TaskSeverity severity, string drawingFile, string module, ITask[] children)
public TaskGotoPoint(Point3D coordinates, Color color, int size, string title, TaskSeverity severity)
public TaskGotoPoint(Point3D coordinates, Color color, int size, string title, TaskSeverity severity, string drawingFile, string module)
public TaskGotoPoint(Point3D coordinates, Color color, int size, string title, TaskSeverity severity, string drawingFile, string module, ITask[] children)
Parámetro Descripción
coordinates Coordenadas del terreno (Point3D) en las que se centra la ventana de dibujo. Se devuelven en Coordinates.
color Color del icono. Las sobrecargas sin color usan rojo con alfa 128 (Color.FromArgb(128, 255, 0, 0)).
size Mitad del ancho del icono, en píxeles. Las sobrecargas sin size usan 6. El constructor no comprueba el valor.
title Texto de la tarea en el panel de tareas.
severity Gravedad de la tarea, de la enumeración TaskSeverity.
drawingFile Archivo de dibujo al que se refiere la tarea. El panel lo muestra en su columna de archivo.
module Nombre del módulo que ha generado la tarea, por ejemplo el nombre de la orden.
children Tareas hijas.

El constructor sin parámetros deja Title, DrawingFile, Module y Children a null, Severity a TaskSeverity.Error y Coordinates a Point3D por defecto, con el color y el tamaño por defecto. Asigna las propiedades después de crear el objeto.

Propiedades

Propiedad Descripción
Point3D Coordinates { get; set; } Coordenadas del terreno en las que se centra la ventana de dibujo.
Color Color { get; set; } Color del icono.
int Size { get; set; } Mitad del ancho del icono, en píxeles. Asignar un valor negativo lanza ArgumentException.

Propiedades heredadas de TaskBase: Title, Severity, DrawingFile, Module y Children.

Métodos

Método Descripción
void Execute() Digi3D.AI lo llama al hacer doble clic en la tarea. Lee la cámara de la ventana de dibujo activa, le asigna Coordinates como posición, sin cambiar la escala ni la orientación, y vuelve a dibujar la ventana. Lanza NullReferenceException si no hay ninguna ventana de dibujo abierta.

Ejemplo

Esta orden añade un error por cada punto (entidad Point) no eliminado del archivo de dibujo que tiene la coordenada Z igual a 0. Las tareas dibujan un triángulo azul de 20 píxeles en cada punto; al hacer doble clic en una tarea, la ventana de dibujo se centra en el punto:

using System.Drawing;
using Digi21.Digi3D;
using Digi21.DigiNG.Entities;
using Digi21.DigiNG.Plugin.Command;
using Digi21.DigiNG.Plugin.TaskPanel;
using Digi21.Tasks;

namespace Ejemplos;

[Command(Name = "PUNTOS_SIN_Z")]
public class PuntosSinZ : Command
{
    public PuntosSinZ()
    {
        Initialize += (sender, e) =>
        {
            var archivo = Digi21.DigiNG.DigiNG.DrawingFile;

            foreach (var punto in archivo.OfType<ReadOnlyPoint>().Where(punto => !punto.Deleted))
            {
                if (punto.Coordinate.Z != 0)
                    continue;

                Digi3D.Tasks.Add(new TaskGotoPoint(
                    punto.Coordinate,
                    Color.Blue,
                    10,
                    "Punto con Z = 0",
                    TaskSeverity.Error,
                    archivo.Path,
                    "PUNTOS_SIN_Z"));
            }
            Digi3D.Tasks.Show();

            Dispose();
        };
    }
}