Пример #1
0
        public void InsertTablero()
        {
            TableroContent cont = AutoCADUtils.GetTableroFromJSON();

            if (cont == null)
            {
                return;
            }
            Editor ed  = Application.DocumentManager.MdiActiveDocument.Editor;
            var    res = ed.GetPoint("Selecciona el punto de inserción de la tabla");

            if (res.Status == PromptStatus.OK)
            {
                cont.LoadBlocks();
                AutoCADUtils.VoidTransaction((Document doc, Transaction tr) =>
                {
                    TableroTable table = new TableroTable(res.Value, cont);
                    table.Blocks       = tr.GetBlockTableRecordIds(doc.Database);
                    table.Init();
                    table.Insert(doc, tr);
                });
            }
        }
Пример #2
0
        /// <summary>
        /// Obtiene la información que crea un tablero desde los datos en JSON
        /// que obtiene del porta papeles
        /// </summary>
        /// <returns>La información del tablero a insertar</returns>
        public static TableroContent GetTableroFromJSON()
        {
            TableroContent cont = null;

            try
            {
                string cp = System.Windows.Clipboard.GetText();
                if (cp != null)
                {
                    cont = Newtonsoft.Json.JsonConvert.DeserializeObject <TableroContent>(cp);
                }
                if (cont == null)
                {
                    throw new Exception("Error al cargar la información del tablero. JSON no válido.");
                }
            }
            catch (Exception exc)
            {
                Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage(exc.Message);
                Autodesk.AutoCAD.ApplicationServices.Application.ShowAlertDialog("La información del portapapeles actual no coincide con la información de un tablero.");
            }
            return(cont);
        }