| 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
.capcadfile 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 prefixes0,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 offset — negative 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
Areaand 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.