Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD ObjectARX und .NET
  Probleme bei mehrfachen Plotten einer Datei

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
  
NVIDIA GTC Paris und ISC High Performance-Konferenz 2025, eine Pressemitteilung
Autor Thema:  Probleme bei mehrfachen Plotten einer Datei (1153 mal gelesen)

Ex-Mitglied

erstellt am: 29. Feb. 2012 12:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hallo!
Ich bin neu hier und hoffe das ich hier eine Lösung für mein Problem finden kann.

Ich habe ein Plugin für AutoCAD 2012 geschrieben das auf .NET/C# basiert. Eine Funktion des Plugins ist,
in einem Batchprozess (in einer Transaktion) mehrfach Elemente zu ändern und dann auf mehrere Plotter zu plotten.

Ablaufbeispiel:
- Transaktion starten
- Elemente ändern
- Plotten als PDF, PNG, JPG ...
- Elemente ändern
- Plotten als PDF, PNG, JPG ...
- ...
- Transaktion verwerfen (Dokument soll nicht geändert werden)

Mein erster Ansatz war, die PlotEngine zu Beginn über die PlotFactory zu erzeugen und den Plot zu starten,

Code:
var plotEngine = PlotFactory.CreatePublishEngine();
plotEngine.BeginPlot(null, null);

dann die Elemente mehrfach anzupassen und dann pro Ausgabeformat das Dokument hinzuzufügen (a x b Dokumente also),

Code:
plotEngine.BeginDocument(plotInfo, ...);
plotEngine.BeginPage(new PlotPageInfo(), plotInfo, true, null);
plotEngine.BeginGenerateGraphics(null);
plotEngine.EndGenerateGraphics(null);
plotEngine.EndPage(null);
plotEngine.EndDocument(null);

und am Ende, nachdem alle Änderungen an den Elementen durchgeführt und diese jeweils pro Ausgabeformat als Dokument hinzugefügt wurden,
den Plot abzuschließen.

Code:
plotEngine.EndPlot(null);
plotEngine.Destroy();

Jedoch wurde dann immer nur das letzte hinzugefügte Dokument geplottet. Daher bin ich davon ausgegangen, dass das alles nicht in einem Auftrag geplottet werden kann.
Darauf hin habe ich den Code so abgeändert, dass pro Änderung und Ausgabeformat immer die PlotEngine neu erzeugt, das Dokument geplottet
und gewartet wird, bis der ProcessPlotState auf NotPlotting steht und dann mit der der nächsten Änderung/Format fortgefahren wird.

Code:
// create plot engine
var plotEngine = PlotFactory.CreatePublishEngine();
plotEngine.BeginPlot(null, null);

// begin document
plotEngine.BeginDocument(plotInfo, ...);

// plot the first sheet/layout
plotEngine.BeginPage(new PlotPageInfo(), plotInfo, true, null);

// generate graphics
plotEngine.BeginGenerateGraphics(null);
plotEngine.EndGenerateGraphics(null);

// finish the sheet/layout
plotEngine.EndPage(null);

// finish the document and plot
plotEngine.EndDocument(null);
plotEngine.EndPlot(null);
plotEngine.Destroy();

// wait for plotter
new Thread(delegate()
    {
          while (PlotFactory.ProcessPlotState != ProcessPlotState.NotPlotting) Thread.Sleep(10);
          ExportCompleted(null, EventArgs.Empty);
    }).Start();


Das Problem hierbei.. es dauert einfach viel zu lange um z.B. 7 PDF-Dateien zu erzeugen.
Ich habe beobachtet, dass eine PDF recht schnell erzeugt wird, aber dann noch einige Zeit vergeht bis der PlotState auf NotPlotting springt.

Hier jetzt meine konkreten Fragen:


  • Ist mein erster Ansatz doch machbar? Vielleicht mit ein paar Tricks? War vielleicht nur etwas an meinen Plot- oder PageInfos falsch?
  • Wenn der erste Ansatz nicht funktioniert, kann man den zweiten Ansatz dann irgendwie beschleunigen?

Leider komme ich hier nicht mehr selber weiter. und wäre euch daher sehr dankbar wenn ihr mir helfen könntet.
Vielen Dank! Kurki

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz