← Inbox

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.

Script file
C3D-0262.cs
Target
260714 - 285 Huckaby Rd.dwg · model space
Author
claude
Approved
yes · auto-auth
Timeout
60s

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

Status
success
Drawing file
C:\Users\sanja\OneDrive\_SurveyDisco\260714 - 285 Huckaby Rd, Brooks, GA 30205, USA\260714 - 285 Huckaby Rd.dwg
Message
Executed C3D-0262 (0 entities touched).
Entities
Duration
879 ms
Civil 3D
25.0.0.0

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.