C3D-0262 · 260714 Huckaby: put 17X11 on the full-bleed B media so the border stops clipping done
The only full-bleed B is the orientation-less ANSI_full_bleed_B (the portrait sheet resolves it to 11x17). Sets it at rotation 0, and if it resolves portrait, applies the 90-degree rotation - which is correct for a portrait-resolving media, unlike the earlier case where the media was already landscape. Reports paper size, printable area and whether the 17x11 border fits.
C# payload
// The only full-bleed B is the orientation-less "ANSI_full_bleed_B". The portrait sheet reports
// ANSI_full_bleed_B_(11.00_x_17.00_Inches), which is that same media resolved portrait.
// Set it here and see which way it resolves; if it comes back portrait, rotation 90 is then the
// CORRECT way to get a landscape full-bleed sheet (rotation is only wrong when the media is
// already landscape, which was the earlier mistake).
LayoutManager.Current.CurrentLayout = "17X11";
var bt = (BlockTable)Tx.GetObject(Db.BlockTableId, OpenMode.ForRead);
foreach (ObjectId btrId in bt) {
var rec = (BlockTableRecord)Tx.GetObject(btrId, OpenMode.ForRead);
if (!rec.IsLayout) continue;
var l0 = (Layout)Tx.GetObject(rec.LayoutId, OpenMode.ForRead);
if (l0.LayoutName != "17X11") continue;
var lay = (Layout)Tx.GetObject(rec.LayoutId, OpenMode.ForWrite);
var psv = PlotSettingsValidator.Current;
Func<string> report = () => {
var b = (Layout)Tx.GetObject(rec.LayoutId, OpenMode.ForRead);
var m = b.PlotPaperMargins;
double pw = b.PlotPaperSize.X / 25.4, ph = b.PlotPaperSize.Y / 25.4;
double aw = pw - (m.MinPoint.X + m.MaxPoint.X) / 25.4;
double ah = ph - (m.MinPoint.Y + m.MaxPoint.Y) / 25.4;
return string.Format("{0} rot={1} paper {2:F2}x{3:F2} printable {4:F2}x{5:F2}",
b.CanonicalMediaName, b.PlotRotation, pw, ph, aw, ah);
};
psv.SetCanonicalMediaName(lay, "ANSI_full_bleed_B");
psv.SetPlotRotation(lay, PlotRotation.Degrees000);
Log("full_bleed_B @ rot 000 : " + report());
var b1 = (Layout)Tx.GetObject(rec.LayoutId, OpenMode.ForRead);
double w1 = b1.PlotPaperSize.X / 25.4;
if (w1 < 16.99) {
// resolved portrait -> rotate to get landscape
psv.SetPlotRotation(lay, PlotRotation.Degrees090);
Log("full_bleed_B @ rot 090 : " + report());
}
var b = (Layout)Tx.GetObject(rec.LayoutId, OpenMode.ForRead);
var mm = b.PlotPaperMargins;
double pw2 = b.PlotPaperSize.X / 25.4, ph2 = b.PlotPaperSize.Y / 25.4;
double aw2 = pw2 - (mm.MinPoint.X + mm.MaxPoint.X) / 25.4;
double ah2 = ph2 - (mm.MinPoint.Y + mm.MaxPoint.Y) / 25.4;
bool land = pw2 > ph2;
bool fits = aw2 >= 16.99 && ah2 >= 10.99;
Log("");
Log(string.Format("FINAL: {0} rot={1} paper {2:F2}x{3:F2} in printable {4:F2}x{5:F2} in landscape={6} border-fits={7} (verified)",
b.CanonicalMediaName, b.PlotRotation, pw2, ph2, aw2, ah2, land, fits));
}
Ed.Regen();
Result
Log
full_bleed_B @ rot 000 : ANSI_full_bleed_B rot=Degrees000 paper 11.00x17.00 printable 11.00x17.00 full_bleed_B @ rot 090 : ANSI_full_bleed_B rot=Degrees090 paper 11.00x17.00 printable 11.00x17.00 FINAL: ANSI_full_bleed_B rot=Degrees090 paper 11.00x17.00 in printable 11.00x17.00 in landscape=False border-fits=False (verified)
Notes
What worked, what didn't, job-specific gotchas — flagged notes feed the recipes.
No notes yet.