static private void addRefMgr(RibbonTab ribTab)
        {
            //create the panel source
            Autodesk.Windows.RibbonPanelSource ribSourcePanel = new RibbonPanelSource();
            ribSourcePanel.Title = "References";
            //now the panel
            RibbonPanel ribPanel = new RibbonPanel();

            ribPanel.Source = ribSourcePanel;
            ribTab.Panels.Add(ribPanel);
            //create button Refm
            Autodesk.Windows.RibbonButton ribButton1 = new RibbonButton();
            ribButton1.Orientation = System.Windows.Controls.Orientation.Vertical;
            BitmapImage bmpI = ArCaUtils.GetBitmapImage(ArCaManaged.Properties.Resources.RefMgr);

            ribButton1.LargeImage       = bmpI;
            ribButton1.Image            = bmpI;
            ribButton1.Size             = RibbonItemSize.Large;
            ribButton1.Text             = "Reference Manager";
            ribButton1.ShowText         = true;
            ribButton1.CommandParameter = "refm ";
            ribButton1.ShowImage        = true;
            ribButton1.CommandHandler   = new AdskCommandHandler();
            ribSourcePanel.Items.Add(ribButton1);
        }
        static public BitmapImage GetThumbnail(string blockName)
        {
            Bitmap bmpPreview;

            using (Database dbRef = new Database(false, true))
            {
                // Read the DWG
                dbRef.ReadDwgFile(DBPath, FileShare.Read, true, "");
                using (Transaction trans = dbRef.TransactionManager.StartTransaction())
                {
                    BlockTable       bt        = trans.GetObject(dbRef.BlockTableId, OpenMode.ForRead) as BlockTable;
                    BlockTableRecord BlcTabRec = trans.GetObject(bt[blockName], OpenMode.ForRead) as BlockTableRecord;
                    bmpPreview = BlcTabRec.PreviewIcon;
                }
            }
            return(ArCaUtils.GetBitmapImage(bmpPreview));
        }
Example #3
0
        public DWGFileModel(string sFilePath)
        {
            _sFilePath = sFilePath;
            _sFileName = Path.GetFileNameWithoutExtension(sFilePath);
            _sFileDate = String.Format("{0:MM/dd/yyyy}", File.GetLastWriteTime(sFilePath));
            _sFileSize = String.Format("{0:MM/dd/yyyy}", File.GetLastWriteTime(sFilePath));
            FileInfo fi = new FileInfo(sFilePath);

            _sFileSize       = (fi.Length / 1024).ToString() + " KB";
            _bIsChanged      = false;
            _sMessageProcess = "Unprocessed";

            using (Database db = new Database(false, true))
            {
                // Read the DWG
                db.ReadDwgFile(sFilePath, FileShare.Read, true, "");
                _btmImage = ArCaUtils.GetBitmapImage(db.ThumbnailBitmap);
            }
        }
        static private void addCusEnt(RibbonTab ribTab)
        {
            //create the panel source
            Autodesk.Windows.RibbonPanelSource ribSourcePanel = new RibbonPanelSource();
            ribSourcePanel.Title = "WT-Tools Entities";
            //now the panel
            RibbonPanel ribPanel = new RibbonPanel();

            ribPanel.Source = ribSourcePanel;
            ribTab.Panels.Add(ribPanel);

            //create button
            Autodesk.Windows.RibbonButton ribButtonGrating = new RibbonButton();
            ribButtonGrating.Orientation = System.Windows.Controls.Orientation.Vertical;
            BitmapImage bmpI = ArCaUtils.GetBitmapImage(ArCaManaged.Properties.Resources.grating);

            ribButtonGrating.LargeImage       = bmpI;
            ribButtonGrating.Image            = bmpI;
            ribButtonGrating.Size             = RibbonItemSize.Large;
            ribButtonGrating.Text             = "Grating";
            ribButtonGrating.ShowText         = true;
            ribButtonGrating.CommandParameter = "grating ";
            ribButtonGrating.CommandHandler   = new AdskCommandHandler();

            //create button
            Autodesk.Windows.RibbonButton ribButtonRamp = new RibbonButton();
            ribButtonRamp.Orientation = System.Windows.Controls.Orientation.Vertical;
            BitmapImage bmpIRamp = ArCaUtils.GetBitmapImage(ArCaManaged.Properties.Resources.Ramp);

            ribButtonRamp.LargeImage       = bmpIRamp;
            ribButtonRamp.Image            = bmpIRamp;
            ribButtonRamp.Size             = RibbonItemSize.Large;
            ribButtonRamp.Text             = "Ramp";
            ribButtonRamp.ShowText         = true;
            ribButtonRamp.CommandParameter = "ramp ";
            ribButtonRamp.CommandHandler   = new AdskCommandHandler();

            //create button
            //create a Ribbon List Button
            Autodesk.Windows.RibbonSplitButton ribListBtn = new RibbonSplitButton();

            Autodesk.Windows.RibbonButton ribButtonQuota = new RibbonButton();
            ribButtonQuota.Orientation = System.Windows.Controls.Orientation.Vertical;
            BitmapImage bmpIQuota = ArCaUtils.GetBitmapImage(ArCaManaged.Properties.Resources.Quota);

            ribButtonQuota.LargeImage       = bmpIQuota;
            ribButtonQuota.Image            = bmpIQuota;
            ribButtonQuota.Size             = RibbonItemSize.Large;
            ribButtonQuota.Text             = "Arrow";
            ribButtonQuota.ShowText         = true;
            ribButtonQuota.CommandParameter = "quota arrow ";
            ribButtonQuota.CommandHandler   = new AdskCommandHandler();

            Autodesk.Windows.RibbonButton ribButtonQuota_Leader = new RibbonButton();
            ribButtonQuota_Leader.Orientation = System.Windows.Controls.Orientation.Vertical;
            BitmapImage bmpIQuota_Leader = ArCaUtils.GetBitmapImage(ArCaManaged.Properties.Resources.Quota_Leader);

            ribButtonQuota_Leader.LargeImage       = bmpIQuota_Leader;
            ribButtonQuota_Leader.Image            = bmpIQuota;
            ribButtonQuota_Leader.Size             = RibbonItemSize.Large;
            ribButtonQuota_Leader.Text             = "Leader";
            ribButtonQuota_Leader.ShowText         = true;
            ribButtonQuota_Leader.CommandParameter = "quota leader ";
            ribButtonQuota_Leader.CommandHandler   = new AdskCommandHandler();

            Autodesk.Windows.RibbonButton ribButtonQuota_Plane = new RibbonButton();
            ribButtonQuota_Leader.Orientation = System.Windows.Controls.Orientation.Vertical;
            BitmapImage bmpIQuota_Plane = ArCaUtils.GetBitmapImage(ArCaManaged.Properties.Resources.Quota_Plane);

            ribButtonQuota_Plane.LargeImage       = bmpIQuota_Plane;
            ribButtonQuota_Plane.Image            = bmpIQuota;
            ribButtonQuota_Plane.Size             = RibbonItemSize.Large;
            ribButtonQuota_Plane.Text             = "Plane";
            ribButtonQuota_Plane.ShowText         = true;
            ribButtonQuota_Plane.CommandParameter = "quota plane ";
            ribButtonQuota_Plane.CommandHandler   = new AdskCommandHandler();

            ribListBtn.Text     = "Quota";
            ribListBtn.Size     = RibbonItemSize.Large;
            ribListBtn.ShowText = true;
            ribListBtn.Items.Add(ribButtonQuota);
            ribListBtn.Items.Add(ribButtonQuota_Leader);
            ribListBtn.Items.Add(ribButtonQuota_Plane);

            ribSourcePanel.Items.Add(ribButtonGrating);
            ribSourcePanel.Items.Add(ribButtonRamp);
            ribSourcePanel.Items.Add(ribListBtn);
        }
        public BitmapImage GetBitmap()
        {
            //Suprimido pq tava dando fatal erro quando lia do bloco externo
            //if (_bDbIsInExternalDWG)
            //    db.ReadDwgFile(ArCaRefMgrController.DBPath, FileShare.Read, true, "");
            //else
            try
            {
                Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
                using (Database db = doc.Database)
                {
                    using (Transaction trans = db.TransactionManager.StartTransaction())
                    {
                        try
                        {
                            Manager manager = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.GraphicsManager;
                            Device  device  = manager.CreateAutoCADOffScreenDevice();
                            using (device)
                            {
                                device.OnSize(new System.Drawing.Size(100, 100));
                                Autodesk.AutoCAD.GraphicsSystem.Model model = manager.CreateAutoCADModel();
                                using (model)
                                {
                                    //Suprimido pq tava dando fatal erro quando lia do bloco externo
                                    //if (rbWhite.IsChecked != true)
                                    //    device.BackgroundColor = System.Drawing.Color.Black;
                                    //else
                                    device.BackgroundColor = System.Drawing.Color.White;

                                    double dMinX = 0, dMinY = 0, dMinZ = 0;
                                    double dMaxX = 0, dMaxY = 0, dMaxZ = 0;

                                    Boolean isUnstarted = true;
                                    Autodesk.AutoCAD.GraphicsSystem.View view = new Autodesk.AutoCAD.GraphicsSystem.View();
                                    ObjectIdCollection objIdColl2             = new ObjectIdCollection();

                                    //As pitombas dos objectsId estao trocando de numero quando eu do Read no DWG, to tendo que lere os Ids no Bloco denovo
                                    if (_bDbIsInExternalDWG)
                                    {
                                        using (Transaction tr = db.TransactionManager.StartTransaction())
                                        {
                                            BlockTable       bt  = tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;
                                            BlockTableRecord btr = tr.GetObject(bt[_objBlockModNew.Name], OpenMode.ForRead) as BlockTableRecord;
                                            foreach (ObjectId entId in btr)
                                            {
                                                objIdColl2.Add(entId);
                                            }
                                        }
                                    }
                                    else
                                    {
                                        objIdColl2 = objIdColl;
                                    }

                                    foreach (ObjectId objId in objIdColl2)
                                    {
                                        // serĂ¡ usado pra definir limites para criar bitmap
                                        using (DocumentLock dl = doc.LockDocument())
                                        {
                                            Entity ent = trans.GetObject(objId, OpenMode.ForRead) as Entity;
                                            //Min Point
                                            if (ent.GeometricExtents.MinPoint.X < dMinX || isUnstarted)
                                            {
                                                dMinX = ent.GeometricExtents.MinPoint.X;
                                            }
                                            if (ent.GeometricExtents.MinPoint.Y < dMinY || isUnstarted)
                                            {
                                                dMinY = ent.GeometricExtents.MinPoint.Y;
                                            }
                                            if (ent.GeometricExtents.MinPoint.Z < dMinZ || isUnstarted)
                                            {
                                                dMinZ = ent.GeometricExtents.MinPoint.Z;
                                            }

                                            //Max Point
                                            if (ent.GeometricExtents.MaxPoint.X > dMaxX || isUnstarted)
                                            {
                                                dMaxX = ent.GeometricExtents.MaxPoint.X;
                                            }
                                            if (ent.GeometricExtents.MaxPoint.Y > dMaxY || isUnstarted)
                                            {
                                                dMaxY = ent.GeometricExtents.MaxPoint.Y;
                                            }
                                            if (ent.GeometricExtents.MaxPoint.Z > dMaxZ || isUnstarted)
                                            {
                                                dMaxZ = ent.GeometricExtents.MaxPoint.Z;
                                            }

                                            isUnstarted = false;
                                            view.Add(ent, model);
                                        }
                                    }

                                    Point3d p3dLeftLower = new Point3d(dMinX, dMinY, dMinZ);
                                    Point3d p3dRightTop  = new Point3d(dMaxX, dMaxY, dMaxZ);
                                    device.Add(view);

                                    view.ZoomExtents(p3dLeftLower, p3dRightTop);
                                    System.Drawing.Rectangle rect = new System.Drawing.Rectangle();// view.Viewport;
                                    bmpPreview = view.GetSnapshot(rect);
                                    return(ArCaUtils.GetBitmapImage(bmpPreview));
                                }
                            }
                        }
                        catch (System.Exception ex)
                        {
                            trans.Abort();
                            return(null);
                        }
                    }
                }
            }
            catch (System.Exception ex)
            {
                return(null);
            }
        }