The Alignment

Updated 2026-09-03 Also in: Português
Ask about this page
Answers from this page only. General assistant
What it is The project's central alignment: an ordered list of segments carrying station data and properties
File <name>.capcad (JSON), in the project's alignments folder
Where the drawing keeps the link The key CapCad.Alignment.Name of the dwg's capcad dictionary
Where it is created and maintained CAPCAD_ALIGNMENT_MANAGER (Alignment Manager)
Where it is queried CAPCAD_ALIGNMENT_STATION_GOTO (Station Navigator) and practically every design command

A polyline is geometry; an alignment is the project's ruler. The alignment is what turns "a point in the drawing" into "station 145+20, right-hand side, 4.20 m off the centre line" — and it is what signs, road markings, profiles, reports and exports position themselves from.

  • Station is data, not drawing. Each segment carries its initial station and a length factor, and may carry station equations, so the chainage matches the field rather than the CAD units.
  • One alignment, several segments. The alignment groups typed segments — highway, one-way or two-way carriageway, access, edge — and each command takes the type it needs.
  • Properties along the alignment. Design speed, carriageway width, daily traffic, terrain: values that change from stretch to stretch and that commands look up by station.
  • The alignment travels with the project. It is a .capcad file in the alignments folder, not a drawing entity — the drawing only stores the file name.
  • Click and read. Any point you click returns its station, a signed offset (left is negative) and the alignment's bearing at that point.
  • It never blocks you. Commands that work on an alignment always offer both options: use the active alignment, or select a curve on the spot.

Alignment and centre line

CapCad's Portuguese interface keeps two distinct words, and they survive into the English one because they name two different things:

  • the project alignment (Portuguese eixo) — the central alignment: the road's centre line, the main alignment of the project. This is the one the drawing sets as its active alignment;
  • an alignment in general (Portuguese alinhamento) — any alignment, of any nature. The project alignment is one of them, but edges, offsets and the auxiliary alignments are not project alignments.

That is why the Alignment Manager's button is Auxiliary alignments… rather than "auxiliary centre lines", while the box that sets the main one stays Active alignment. Some captions show the Portuguese Eixo / Eixos.

How an alignment is built

An alignment is a composite curve: an ordered list of elements, each one called a segment. Each segment is a geometry taken from the drawing — a line, a polyline, an arc — with its own properties.

That means:

  • the order of the segments in the list is the order in which the alignment is walked;
  • each segment has its own stationing, its own type and its own name;
  • and the alignment as a whole carries a set of top-level properties valid for all of it.

The file is written as <name>.capcad, a JSON, in the project's alignments folder (which defaults to the project folder itself). The drawing stores only the file name, under the key CapCad.Alignment.Name; the folder comes from the project configuration.

Stations and stationing

The station is not measured in drawing units. Each segment carries two values:

Property Stored key What it is
Initial station Curve.Initial The station value at the segment's first vertex
Length factor Curve.Factor A multiplier applied to the drawn length

The arithmetic is direct:

station(m)     = Factor × m + Initial
measure(s)     = (s − Initial) / Factor
final station  = Factor × Length + Initial

where m is the distance walked along the segment from its first vertex. A factor that is missing or zero is treated as 1 in the conversions.

The factor exists because a drawing almost never has the exact field length: the plan is a projection, the road is measured on the ground. The factor absorbs that difference without touching the geometry. That is why the Alignment Manager's segment list shows the Real length (as drawn) and the L Corrected (factor × length) side by side.

Station equations

When a road is remeasured — a stretch added, removed or renumbered — stations stop growing uniformly with distance. CapCad handles that with station equations: each equation is a pair (measure, jump), and from that measure onwards the jump is added to the station value. Several jumps accumulate:

station(m) = m + base + Σ jumps whose measures ≤ m

Equations are also commonly written on plans the other way round — "station X now reads Y" — and that is the form the Alignment Manager accepts. A segment with equations shows <equations> in place of L Corrected and Final in the segment list, because in that case no single factor describes the stretch.

Display format

Each segment stores how its station should be written, in the property Estaca20:

Format What it shows
Km (default) 0+000 — kilometre, then the metres to three places. For example 46+484
de 20 The number of the 20 m stake: the station divided by 20, rounded
Atributo The value comes from an attribute, not from the calculation

The three names are stored and shown as written above, in every language.

The 0+000 mask (and variants with decimals, such as 0+000.00) comes from the project's style.

Segment types

Each segment can be given a type, stored in the property alignment.type:

Type Stored value What it is for
Highway rodoviário The road's main alignment
One-way carriageway pista 1 sentido A single-direction carriageway
Two-way carriageway pista 2 sentidos A two-direction carriageway
Access acesso An access alignment
Edge bordo A carriageway edge

The stored values are the literal strings written into the .capcad file, in every language.

The two carriageway types are the ones that determine side and direction handling. Commands filter the alignment by the type they need — asking, for instance, only for the carriageway segments, or for everything except them. Untyped segments fall outside the filter by default, and when no segment matches the requested type a command may get the whole alignment back.

A segment also has a name of its own (the property Curve.Name), which appears in the Name column of the segment list and in reports.

Properties along the alignment

Besides the stationing, the alignment carries design data indexed by station. These are not single values: they are series that change along the road.

The format is a list of breakpoints station,value, one per line, with a comma as the separator — and reading is a step function: the value in force is that of the last breakpoint whose station is less than or equal to the station asked for.

VelocidadeDiretriz: 0,80
                    12000,60

Read at any station below 12000 the result is 80; from 12000 on it is 60.

Properties CapCad recognises:

Property Content
VelocidadeDiretriz Design speed of the stretch
VelocidadeRegulamentada (and its increasing / decreasing variants) Posted speed limit
VelocidadeViaLfo The speed used to size the edge line
LarguraPista Total carriageway width (commands halve it when they need a half carriageway)
VDM Average daily traffic
SegmentTypeCivil3D The segment's type on Civil 3D import
SNV The stretch's road-network code
Terreno Terrain classification

Two properties apply to the whole alignment and are stored in the same form, with a single breakpoint at station 0:

Property What it holds
rodovia.classe The road class, from the class list of the active country profile's manual
TipoVia The road type (rural, urban, express, protected area)

Those two are the keys of the sign-size and advance-distance tables.

Mind the format. A value written bare (just 100, with no station in front) is not recognised and reads as 0, with no error at all. That is why the Alignment Manager automatically prefixes 0, when you record a simple property from its Properties tab.

The alignment can also keep, in its top-level properties, the coordinate system (CapCad.CoordSys) and the style (CapCad.Paradigm) it was designed under. Both have priority in the project's resolution: a drawing carried to another folder keeps working with the alignment's system and style.

From point to station, and back

The alignment's most-used operation is projection: given any point, find the foot of the perpendicular on the alignment and read the station there. It returns three things:

  • the station at the foot of the perpendicular;
  • the signed offsetnegative on the left of the walking direction, positive on the right;
  • the bearing of the alignment's tangent at that point.

On an alignment with several segments, the segment whose foot is nearest the point wins. The search is capped at a maximum distance; in the alignment commands that cap is 200 drawing units. A point out of range is not an error: the station simply comes back as 0.

The inverse operation — from a station to a point — walks the segments and returns the point at the first valid position, with the factor and the equations already applied.

The active alignment, and how commands use it

A drawing has one active alignment at a time: the file named in CapCad.Alignment.Name. Setting it is the Alignment Manager's job, which also:

  • normalises the name you type so it ends in .capcad;
  • creates the file physically only when the first segment is added;
  • records, as a user preference, the last alignments folder and last alignment used, so it can offer them next time you open a drawing with no project.

Commands that need an alignment do not block when there is none. The CapCad pattern is to offer two options on the form itself:

  • Active — use the project's alignment; available only when one exists, and always the default choice when it does;
  • Select — point at a curve in the drawing on the spot, which acts as the alignment for that run.

Commands that work directly on the alignment, with no form, offer to open the Alignment Manager when they find none.

What depends on the alignment

Area What the alignment determines
Stationing and annotations The position and label of every station post; PC/PT and radius annotations
Navigation Go to station, walking the stretch, zoom to the alignment, identify a point
Vertical signing The station and side of every sign, and the chainage / coordinate attributes written into the blocks
Road markings Carriageway construction, shoulders, edge lines and lane lines along the alignment
Vertical profile Level and grade per station; the profile is paired to the alignment by name
Guardrails and clear zone Design speed, carriageway width and daily traffic per station
Reports Station, side, offset, segment name, direction and alignment property columns
GIS and exports The alignment's coordinate system, and KML / GPX / GeoJSON generation
Right of way Strips closed between two stations, or one every n metres

Notes

  • Editing the drawn polyline does not change the alignment. The alignment is the file, not the entity. After editing the drawn geometry, use reread alignment from polyline in the Alignment Manager, which rereads the vertices and keeps the stations and properties.
  • Every change in the Manager writes the file immediately. There is no "save alignment" button.
  • A closed segment has no stationing. It appears in the list with type Area and dashes in the station columns.
  • Direction is set by your click. When you add a segment, the end nearest where you clicked becomes the start — and therefore sets which way stations grow and which side is the right.

See also

  • Alignment Manager — create and maintain the alignment, its segments and its stations.
  • Station Navigator — go to a station, identify a point and measure along the alignment.
  • The CapCad project — where the alignments folder and the active alignment are stored.
  • Styles — the station mask and the layers the alignment is drawn on.