C3D-CERTS4 · Plat certificates v3 - one MText each, tab-aligned done
Four certificates, ONE MText each so they move as a unit, with columns aligned via MText tab stops instead of separate text objects. Real Line signature rules. Adds only; nothing erased.
C# payload
// Plat certificates for 260619 - v3.
// ONE MText per certificate (4 total, movable as a unit), with columns aligned by MTEXT TAB
// STOPS (\pxt<in>,<in>; ... \t) rather than by splitting into separate text objects or
// padding with spaces. Signature rules are real Line entities positioned to sit just above
// their label row.
// Text 0.08" on C-ANNO-CERT, rules on C-ANNO-CERT-LINE. Paper space, sheet inches.
// ADDS ONLY - nothing existing is erased. Host owns Tx; host regens after commit.
const string LAYOUT = "22X17 C", TLAYER = "C-ANNO-CERT", LLAYER = "C-ANNO-CERT-LINE";
const double H = 0.08;
var blocks = new (string name, double x, double y, double w, string t)[] {
(@"SURVCERT", 0.75, 15.9, 6.6, @"SURVEYOR'S CERTIFICATE\P\PIt is hereby certified that this Boundary Line Adjustment / Recombination Plat is true and correct and was prepared from an actual survey of the property, made by me or under my supervision; that all monuments shown hereon actually exist, or are marked as ""Future"", and their location, size, type and material is correctly shown.\P\PThis plat has been calculated for closure and is found to be accurate within one foot in __________ feet.\P\PAs required by subsection (d) of O.C.G.A. Section 15-6-67, this plat has been prepared by a land surveyor and approved by all applicable local jurisdictions for recording as evidenced by approval certificates, signatures, stamps, or statements hereon.\P\P\P\PG. L. Sawhney, Registered Georgia Land Surveyor No. 2547"),
(@"OWNERACK", 0.75, 12.35, 6.6, @"OWNER'S ACKNOWLEDGEMENT\P\PSTATE OF GEORGIA\PCITY OF SOUTH FULTON\PFULTON COUNTY\P\PThe owner of record of the land shown on this plat and whose name is subscribed thereto, in person or through a duly authorized agent, hereby acknowledges that this plat was made from an actual survey, dedicates to the public for use forever those water and sewer improvements constructed in accordance with this plat that are specifically labeled as dedicated to the public, and dedicates to the City of South Fulton, the complete ownership and use of all public streets and dedicated right-of-way specifically labeled as public streets and dedicated right-of-way, and dedicates to the use of the public forever the following:\P\P\\pxt2.600,2.950;Public Streets 0 acres\PPublic Sewer Easements 0 acres\PPublic Drainage Easements 0 acres\PPublic Parks/Open Space 0 acres\P\\pxt;\P\\pxt3.550;\P\PTyped Name of Subdivider Typed Name of Owner of Record\P\P\PSignature of Subdivider Signature of Owner of Record\P\P\PDate Date\P\\pxt;\P(All owners must sign the original in permanent type BLACK ink prior to submittal. Ballpoint and felt pens are not acceptable.)"),
(@"DIRAPPR", 0.75, 7.35, 6.6, @"MINOR SUBDIVISION PLAT APPROVAL\P\PThe Director of the Community Development and Regulatory Affairs Department of the City of South Fulton, Georgia, certifies that this plat complies with the City of South Fulton Zoning Resolution, Conditions of Zoning, and the City of South Fulton Subdivision Regulations as amended.\P\P\P\P\\pxt4.200;For the Director, Community Development Services Date\\pxt;"),
(@"HEALTHDEPT", 0.75, 5.55, 6.6, @"FULTON COUNTY HEALTH DEPARTMENT\P\PThis subdivision, as shown, is approved upon the condition that sewage disposal and water supply facilities are in compliance with Chapter 34, Articles IV and XI, Sewage Disposal and Drinking Water Supply of the Fulton County Health Department regulations and in accordance with the requirements below:\P\P\\pxt3.550;WATER SUPPLY SEWAGE DISPOSAL\P( ) Public Water Supply ( ) Public Sanitary\P( ) Individual Water Supplies ( ) Individual Onsite Sewage\P\PService Requirements - S/D Type Service Requirements - S/D Type\P( ) Type ""A"" ( ) Type ""B"" ( ) Type ""A"" ( ) Type ""B""\P ( ) Type ""C"" ( ) Type ""D""\P\P\PDate Fulton County Health Department\P\P\PRevision Date Fulton County Health Department\\pxt;")
};
var rules = new (double x1, double y1, double x2, double y2)[] {
(0.75, 14.1248, 4.15, 14.1248),
(0.75, 9.5825, 3.3, 9.5825),
(4.3, 9.5825, 6.85, 9.5825),
(0.75, 9.1775, 3.3, 9.1775),
(4.3, 9.1775, 6.85, 9.1775),
(0.75, 8.7725, 3.3, 8.7725),
(4.3, 8.7725, 6.85, 8.7725),
(0.75, 6.5197, 4.65, 6.5197),
(4.95, 6.5197, 6.7, 6.5197),
(0.75, 3.6397, 2.95, 3.6397),
(4.3, 3.6397, 7.2, 3.6397),
(0.75, 3.2347, 2.95, 3.2347),
(4.3, 3.2347, 7.2, 3.2347)
};
var layDict = (DBDictionary)Tx.GetObject(Db.LayoutDictionaryId, OpenMode.ForRead);
var layout = (Layout)Tx.GetObject(layDict.GetAt(LAYOUT), OpenMode.ForRead);
var ps = (BlockTableRecord)Tx.GetObject(layout.BlockTableRecordId, OpenMode.ForWrite);
EnsureLayer(TLAYER, 7);
EnsureLayer(LLAYER, 7);
foreach (var b in blocks)
{
var mt = new MText {
Location = new Point3d(b.x, b.y, 0.0),
Contents = b.t,
TextHeight = H,
Width = b.w,
Attachment = AttachmentPoint.TopLeft,
LineSpacingFactor = 1.0,
};
mt.Layer = TLAYER;
ps.AppendEntity(mt);
Tx.AddNewlyCreatedDBObject(mt, true);
var e = mt.GeometricExtents;
Log(" " + b.name + " one MText at (" + b.x + "," + b.y + ") height=" +
(e.MaxPoint.Y - e.MinPoint.Y).ToString("F2") + "in bottom=" + e.MinPoint.Y.ToString("F2") +
" handle=" + mt.Handle);
}
foreach (var r in rules)
{
var l2 = new Line(new Point3d(r.x1, r.y1, 0.0), new Point3d(r.x2, r.y2, 0.0));
l2.Layer = LLAYER;
ps.AppendEntity(l2);
Tx.AddNewlyCreatedDBObject(l2, true);
}
Log("Placed " + blocks.Length + " certificate MTexts (tab-aligned columns) and " + rules.Length + " rules.");
Result
Log
SURVCERT one MText at (0.75,15.9) height=2.30in bottom=13.60 handle=22461 OWNERACK one MText at (0.75,12.35) height=4.23in bottom=8.12 handle=22462 DIRAPPR one MText at (0.75,7.35) height=1.32in bottom=6.03 handle=22463 HEALTHDEPT one MText at (0.75,5.55) height=2.75in bottom=2.80 handle=22464 Placed 4 certificate MTexts (tab-aligned columns) and 13 rules.
Notes
What worked, what didn't, job-specific gotchas — flagged notes feed the recipes.
No notes yet.