| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: pdf von Layout plotten (1965 mal gelesen)
|
SchwedeNK Mitglied Holztechniker
Beiträge: 43 Registriert: 19.05.2011 AutoCAD 2009 - 2018 Visual Studio Express 2010 / 2012 /2015 Windows 10 64 Bit Windows 8.1 Pro 64 Bit
|
erstellt am: 15. Nov. 2013 09:24 <-- editieren / zitieren --> Unities abgeben:
Hallo! Ich habe ein Problem beim Plotten von Layouts. Folgende Gegegbenheiten: - verschiedene Layouts mit verschiedenen Blattgrößen - geplottet werden soll lediglich ein Blatt - Seitengröße soll aus dem Layout entnommen werden. Ich habe vor, den Plot-Dialog zu verwenden, dort wird aber eine feste Blattgröße in der Plotkonfiguration gefordert. Diese habe ich versucht mit "CanonicalMediaName" variabel zu gestalten. Als Ergebnis hierfür bekomme ich allerdings immer "User66" was natürlich keine Seitengröße ist. Code:
Dim psv As PlotSettingsValidator = PlotSettingsValidator.Current ' We'll plot the extents, centered and ' scaled to fit psv.SetPlotType(ps, Autodesk.AutoCAD.DatabaseServices.PlotType.Extents) psv.SetUseStandardScale(ps, True) psv.SetStdScaleType(ps, StdScaleType.ScaleToFit) psv.SetPlotCentered(ps, True) ' We'll use the standard DWG To PDF PC3, as ' for today we're just plotting to file psv.SetPlotConfigurationName(ps, "DWG To PDF.pc3", "ANSI_A_(8.50_x_11.00_Inches)")
' We need to link the PlotInfo to the ' PlotSettings and then validate it pi.OverrideSettings = ps Dim piv As New PlotInfoValidator() piv.MediaMatchingPolicy = MatchingPolicy.MatchEnabled piv.Validate(pi)
Gibt es hier eine Möglichkeit die Seitengröße immer aus dem aktuellen Layout zu entnehmen? Vielen Dank für Eure Hilfe!!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 15. Nov. 2013 09:29 <-- editieren / zitieren --> Unities abgeben: Nur für SchwedeNK
|
SchwedeNK Mitglied Holztechniker
Beiträge: 43 Registriert: 19.05.2011 AutoCAD 2009 - 2018 Visual Studio Express 2010 / 2012 /2015 Windows 10 64 Bit Windows 8.1 Pro 64 Bit
|
erstellt am: 15. Nov. 2013 10:34 <-- editieren / zitieren --> Unities abgeben:
Hallo Holger! Vielen Dank für deine schnelle Antwort. Zitat: direkt nicht, du musst die Daten aus dem aktuellen Layout ermitteln und zuweisen.
wie komme ich denn an die Daten? Wie gesagt, der CannoncialMediaName liefert mir kein brauchbares Ergebnis... Ich habe eigentlich immer die Größen von DIN A0 bis DIN A4. Viele Grüße, Schwede Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 15. Nov. 2013 11:25 <-- editieren / zitieren --> Unities abgeben: Nur für SchwedeNK
public System.Collections.Specialized.StringCollection CanonicalMediaNames { get; } Member von Autodesk.AutoCAD.PlottingServices.PlotConfig public string GetLocalMediaName(string canonicalMediaName) Member von Autodesk.AutoCAD.PlottingServices.PlotConfig
Hilft das?
Grüße! Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen.
defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Karlovac Mitglied
Beiträge: 54 Registriert: 12.09.2013 AutoCAD Mechanical 2012-2015 Windows 7 Enterprise X64 Visual Studio 2010/2013 Intel Xeon W3680 Nvidia Quadro 2000 16 GB RAM
|
erstellt am: 18. Nov. 2013 11:59 <-- editieren / zitieren --> Unities abgeben: Nur für SchwedeNK
Hallo Schwede, Zitat:
- Seitengröße soll aus dem Layout entnommen werden.
Ist schon mal schwierig, weil je nach dem welches Device im Layout eingestellt ist, auch die Blattformate anders benannt sind. (kann man aber recht einfach mit Layout.CanonicalMediaName auslesen) Ich könnte mir aber vorstellen, dass du den mit "Layout.PlotPaperSize" erhaltenen Wert (z.B. "(841,1189)" für A0) interpretierst, dadurch das Format erkennst und den jeweiligen CanonicalMediaName von DWG To PDF.pc3 verwendest in dem Fall z.B: psv.SetPlotConfigurationName(ps, "DWG To PDF.pc3", "ISO_A0_(841.00_x_1189.00_MM)" Gruß Karlovac Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin
Beiträge: 2624 Registriert: 02.05.2006 AutoCAD LandDesktop R2 bis 2004 Civil 3D 2005 - 2014 Plateia, Canalis Visual Basic
|
erstellt am: 18. Nov. 2013 13:41 <-- editieren / zitieren --> Unities abgeben: Nur für SchwedeNK
Zitat: - Seitengröße soll aus dem Layout entnommen werden.
Zitat: Original erstellt von Karlovac: Ist schon mal schwierig, weil je nach dem welches Device im Layout eingestellt ist, auch die Blattformate anders benannt sind. (kann man aber recht einfach mit Layout.CanonicalMediaName auslesen)
Die Größe des Layout (wenn nur die zu plottenden Inhalte dargestellt sind) kann man leicht über die Systemvariablen Extmin und Extmax herauslesen, allerdings hatte ich damals Probleme mit den richtigen Werten ... Ich lese mir also zunächst alle in der Config enthaltenen Daten in eine Liste, hol mir dann die tatsächlichen Werte des Layout, vergleiche diese mit den Werten im pc3 und nehme das nächst größere gibt hier auch ein Beispiel dafür, das ich aber auf die Schnelle leider nicht finde. Vielleicht noch ein Tip: Ich hatte damals immer Probleme mit den pdf-Dateien, da sich diese nach dem Erzeugen immer gleich öffnen wollten. Habe dann das ganze umgestellt auf Postscriptausgabe und wandele diese .ps Dateien anschließend in einen Rutsch zu pdf (mit Adobe Acrobat Stapelbearbeitung). Dabei kann man auch sehr schön die Zeichnung auf die tatsächliche Größe beschneiden lassen. Bei bis zu 20 Layouts braucht es das nicht, bei mehrmals über 500 ist das aber ganz hilfreich. Grüße Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SchwedeNK Mitglied Holztechniker
Beiträge: 43 Registriert: 19.05.2011 AutoCAD 2009 - 2018 Visual Studio Express 2010 / 2012 /2015 Windows 10 64 Bit Windows 8.1 Pro 64 Bit
|
erstellt am: 03. Feb. 2014 09:23 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank euch allen! Habe es jetzt so hinbekommen: Erst die Größe vom Layout ermitteln und dann in der Plot-Konfiguration die nächstmögliche der .pc3-Datei auswählen. Code:
.... Dim medlist As StringCollection = psv.GetCanonicalMediaNameList(ps) ... For i As Integer = 0 To medlist.Count - 1 If medlist(i).StartsWith("ISO_full_bleed_A") And medlist(i).Contains(GrößeX.ToString + ".00_x_" + GrößeY.ToString) Then ed.WriteMessage(vbLf & "{0} {1}", i + 1, medlist(i)) medname = medlist(i) End If Next ....
Viele Grüße, Schwede Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |