|
-
Moderatore
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", 0, 0, 0, 0 ); ScreenShotToFile( acApp.Application.DocumentManager.MdiActiveDocument.Window, "c:\\doc-window.png", 30, 26, 10, 10 ); } private static void ScreenShotToFile( Autodesk.AutoCAD.Windows.Window wd, string filename, int top, int bottom, int left, int right ) { Point pt = wd.Location; Size sz = wd.Size; pt.X += left; pt.Y += 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.X, pt.Y, 0,0, sz, CopyPixelOperation.SourceCopy ); // Save the screenshot to the specified location bmp.Save(filename, ImageFormat.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
-
-
Moderatore
-
Moderatore
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
-
Di IN.TEC nel forum AutoCAD
Risposte: 9
Ultimo Messaggio: 04-03-2013, 13: 44
-
Di Midnite nel forum AutoCAD
Risposte: 6
Ultimo Messaggio: 24-06-2010, 13: 26
-
Di mister_4d nel forum AutoCAD
Risposte: 1
Ultimo Messaggio: 03-05-2010, 17: 59
-
Di arosini nel forum AutoCAD
Risposte: 2
Ultimo Messaggio: 13-04-2010, 10: 40
-
Di WaYdotNET nel forum Solid Edge
Risposte: 2
Ultimo Messaggio: 12-02-2009, 09: 10
Tag per Questa Discussione
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
-
Regole del Forum
|
|
Segnalibri