Risultati da 1 a 3 di 3
  1. #1
    Moderatore L'avatar di PlannerRoad
    Iscritto da
    2007
    Messaggi
    4630
    Professione
    Variabile
    Regione
    Italia
    Software
    AutoCAD 2012

    Predefinito Creare screenshot di AutoCAD con AutoCAD stesso in C#

    Su Through the Interface è disponibile il codice in C# per la compilazione di una utility che consente di creare in contemporanea due screeshots tramite AutoCAD: uno della sua finestra e l'altro della sua area di lavoro.

    Il codice, riportato qui, è il seguente:

    Codice PHP:
       using acApp Autodesk.AutoCAD.ApplicationServices;
        
    using Autodesk.AutoCAD.Runtime;
        
    using System.Drawing.Imaging;
        
    using System.Drawing;
         
        
    namespace ScreenshotTest
        
    {
          public class 
    Commands
          
    {
            [
    CommandMethod("CSS")]
            static public 
    void CaptureScreenShot()
            {
              
    ScreenShotToFile(
                
    acApp.Application.MainWindow,
                
    "c:\\main-window.png",
                
    0000
              
    );
              
    ScreenShotToFile(
                
    acApp.Application.DocumentManager.MdiActiveDocument.Window,
                
    "c:\\doc-window.png",
                
    30261010
              
    );
            }
         
            private static 
    void ScreenShotToFile(
              
    Autodesk.AutoCAD.Windows.Window wd,
              
    string filename,
              
    int topint bottomint leftint right
            
    )
            {
              
    Point pt wd.Location;
              
    Size sz wd.Size;
         
              
    pt.+= left;
              
    pt.+= top;
              
    sz.Height -= top bottom;
              
    sz.Width -= left right;
         
              
    // Set the bitmap object to the size of the screen
         
              
    Bitmap bmp =
                new 
    Bitmap(
                  
    sz.Width,
                  
    sz.Height,
                  
    PixelFormat.Format32bppArgb
                
    );
              
    using (bmp)
              {
                
    // Create a graphics object from the bitmap
         
                
    using (Graphics gfx Graphics.FromImage(bmp))
                {
                  
    // Take a screenshot of our window
         
                  
    gfx.CopyFromScreen(
                    
    pt.Xpt.Y0,0sz,
                    
    CopyPixelOperation.SourceCopy
                  
    );
         
                  
    // Save the screenshot to the specified location
         
                  
    bmp.Save(filenameImageFormat.Png);
                }
              }
            }
          }
        } 
    Nel codice in rosso sono riportati il comando dell'utility che è CSS e il percorso e il formato dell'immagine utilizzati come directory di salvataggio degli screenshot, cioè
    c:\\main-window.png e c:\\doc-window.png
    Il primo relativo alla finestra di AutoCAD, il secondo relativo alla sua area di lavoro.
    Questi 3 parametri (comando e percorsi) possono essere modificati a piacimento.

    Come compilare il codice: in questa discussione Visual C#: compilare il codice per AutoCAD ho spiegato il procedimento e indicato il software per la compilazione del C#.

    In questo caso, oltre ai due file ACDBMGD.DLL eACMGD.DLL già citati nella discussione indicata, per questa utility devono essere aggiunti altri riferimenti.

    Come e quali altri riferimenti aggiungere
    : sempre nel menù "Progetto" -> opzione "Aggiungi riferimento" -> scheda ".NET" questa volta, aggiungere come riferimento System.Drawing e nel caso di AutoCAD 2010 probabilmente anche Presentation.Core.
    Anche se non citato nell'articolo, per il funzionamento del codice ho dovuto aggiungere anche il riferimento System.Windows.Forms, senza il quale l'utility in fase di compilazione segnalava un errore.

    Per il resto della compilazione e del caricamento dell'utility in AutoCAD continuare a seguire il procedimento riportato nell'altra discussione.

    Dopo aver caricato l'utility compilata con il comando NETLOAD dando il comando CSS (o altro comando da voi modificato) avrete la creazione in automatico dei due screenshots nella directory indicata.
    Ultima modifica di PlannerRoad; 17-09-2009 alle 00: 19

  2. #2
    Moderatore L'avatar di PlannerRoad
    Iscritto da
    2007
    Messaggi
    4630
    Professione
    Variabile
    Regione
    Italia
    Software
    AutoCAD 2012

    Predefinito

    Allego il file, che ho generato da quel codice sopra riportato.
    File Allegati File Allegati
    • Tipo File: zip CSS.zip (2.3 KB, 9 Visualizzazioni)
    Ultima modifica di PlannerRoad; 09-10-2009 alle 18: 34

  3. #3
    Moderatore L'avatar di PlannerRoad
    Iscritto da
    2007
    Messaggi
    4630
    Professione
    Variabile
    Regione
    Italia
    Software
    AutoCAD 2012

    Predefinito

    SCREENSHOT

    Il codice dell'utility CSS, riportata sopra, è stato completamente modificato dall'Autore (Kean Walmsley di Through the Interface) e ne è nata una nuova utility per la creazione di screenshot di AutoCAD, molto più completa, che è entrata a far parte delle utility mensili di Autodesk Labs.
    La nuova utility, dal nome SCREENSHOT, consente ora molte più opzioni, quale la possibilità di inviare direttamente lo screenshot alla stampante, o di avere tutti gli oggetti, anche se colorati, di colore nero oppure nella tonalità del grigio.
    Trovate gli articoli di Kean Walmsley, con i vari update che si sono succeduti, qui:

    http://through-the-interface.typepad...the-month.html

    http://through-the-interface.typepad...the-month.html

    http://through-the-interface.typepad...creenshot.html

    http://through-the-interface.typepad...available.html

    L'utility essendo come la precedente in C#, si carica con il comando NETLOAD, dopo di chè AutoCAD la "registrerà".
    Il comando dell'utility è SCREENSHOT, mentre il comando della sua rimozione è REMOVESS.
    Leggere comunque il file readme contenuto nel file compresso, dove sono contenuti anche i sorgenti.

    E' possibile effetturare il download qui:

    http://labs.autodesk.com/utilities/screenshot/

  • Discussioni Simili

    1. Risposte: 9
      Ultimo Messaggio: 04-03-2013, 13: 44
    2. Risposte: 6
      Ultimo Messaggio: 24-06-2010, 13: 26
    3. Creare retini con AutoCAD 2009
      Di mister_4d nel forum AutoCAD
      Risposte: 1
      Ultimo Messaggio: 03-05-2010, 17: 59
    4. Creare una legenda blocchi in AutoCAD
      Di arosini nel forum AutoCAD
      Risposte: 2
      Ultimo Messaggio: 13-04-2010, 10: 40
    5. Creare campiture....tipo grass di Autocad
      Di WaYdotNET nel forum Solid Edge
      Risposte: 2
      Ultimo Messaggio: 12-02-2009, 09: 10

    Tag per Questa Discussione

    Segnalibri

    Segnalibri

    Permessi di Scrittura

    • Tu non puoi inviare nuove discussioni
    • Tu non puoi inviare risposte
    • Tu non puoi inviare allegati
    • Tu non puoi modificare i tuoi messaggi
    •  




    CAD3D.it - la community dei progettisti