Newest first. Each one says what changed and, where something had been
wrong, what it had been doing instead — because a fix that does not say
what it was fixing is a claim rather than a record.
The second button says Open the editor. It said Start from
nothing, and it does not start from nothing: a new document opens on
a bracket with four holes in it. That is the better thing to open on — an
empty canvas is the question "where do I begin" with no answer attached —
and the wrong thing to promise.
The card a shared link shows is the cutting list. It was a picture
made before the list existed, and the words beside it still said
a section becomes a part — the wording the page dropped. Two
stories about one product, and the wrong one is the one in the
message.
It is drawn from the same sheet the page shows, so the two cannot
come apart: the list on the right, and what it is on the left, at the
1200×630 every messenger crops to.
And a test reads them. The card and the words live in the head, where
nobody looks again after the day they were written — so the title, the
description, the size and the domain are all checked against the page.
Built for. Four lines saying who this is for — steel fabrication,
aluminium systems, shop drawings, and the workshop and the site. All four
are what somebody BUILDS rather than what they do, so the row reads as one
question with four answers.
And it comes before What it is not. Somebody asks "is this me?"
before they ask "what is it instead of".
A line under the button: no installation, works on a desktop, opens
on a phone, DXF, PDF. Opens on a phone rather than "works on
mobile" — the editor wants a screen and the link does not, and this line
has to agree with the page below it, which says the same thing at
length.
The row borrows the cards the three steps already use. One row, one
kind of answer, and no style of its own to learn.
The isometric on the front page is shaded. On the views sheet, where
it is there to show the shape — an outline takes a moment to read and a
shaded solid takes none. 192 faces, worked out by the kernel from the
model itself.
And the list's own isometric stays in lines, because it is there to
carry the marks and shading would sit under them.
The picture on the front page is both sheets, one above the other —
the views with their dimensions and the isometric, and beneath them the
cutting list with every member marked. It was one sheet, and the wrong one.
The isometric is shaded, from the kernel's own mesh — 192 faces on
this frame. A line drawing of a dozen box sections crossing each other is a
puzzle; a shaded one is a bench.
And it is drawn from the model the button opens, not from one made up
to look like it. The list under the picture is the list that model
produces: five lines, twelve parts, four legs on one of them.
A shared corner is a joint; a member mostly inside another is a copy.
The check that guards the sample used to call both of them the same thing,
so a rail welded into a leg — six per cent of its own volume — read as a
fault, while a rail copied two millimetres from itself, ninety-five per
cent, was the thing it was written to catch. It is a proportion now, not a
size.
The picture on the front page is a cutting list, not a drawing of a
bracket. The views are what every drawing program makes; the list is what
this page is about, and a picture of it says more in a second than the three
paragraphs under it. It is drawn from the model behind the button, so the
two cannot come apart.
And the sample model is a workbench frame with mitred corners. Ten
parts, three lines, four legs on one of them — and 1208 against 1128 on the
mitred pair, which is the whole reason a list carries two lengths.
The model lives in the repo now, because a short link keeps its
drawing on the server and nothing here can open one. So what the tests check
is the file, and the file is what the picture was drawn from.
A mitred pair is allowed to share a corner. Two boxes round two rails
meeting at a mitre must overlap — that is what the joint is. What the check
is for is a rail running through a leg, where neither is cut and the boxes
overlap because the metal does.
The front page is in the app's own colours. It was a paper-white page
in front of a dark program, which reads as two things made by two different
people — and the one picture on it, a drawing on white, already carries that
contrast on its own.
A bar across the top, so What's new and the app are reachable from
anywhere on the page rather than only from the bottom of it.
The three steps are numbered and sit side by side, and the link to the
workshop has the phone beside it — it is the one thing here that nothing else
does, and it was a paragraph.
And the address line reads as an offer rather than a form. One line at
the foot: who built this, and somewhere to leave an address.
A block keeps every distinct figure on a side, not only the nearest.
On a bench whose rail stops two millimetres short of the legs picked on the
other side, the whole left-hand side came to one number — 2 —
and the eleven hundred across to the other pair never appeared. The near
thing won the side and was the one number nobody needed.
One member on its own is unchanged. Nearest wins there, and it has to:
a dozen parallel members would otherwise give thirty numbers and the drawing
would stop meaning anything. Picking several is asking about where THEY sit,
the block's own members are already out of the running, and what is left is
few.
The same distance to two identical members is one number, written
once, and the figures on a side step apart so none is written over
another.
A block carries its figures. Picking several members worked out how
far the block sat from what was beside it, and then nothing drew a line: the
view only asked for figures at all when exactly one member was picked. The
condition was written when a selection of several had no answer to give. It
has one now.
Nothing failed, which is the part worth fixing. A test on the
arithmetic passes whether or not anything draws what it worked out — so
there is one now that asks whether the view asks.
Drag a box to pick several members. In any of the flat views and in
3D. What the box would take is lit while it is still being dragged, so
nobody has to let go and then look to find out whether they caught what
they meant.
Which way you drag is the question you are asking. To the right it
takes only what is wholly inside; to the left it takes what it touches as
well. Those are two different questions and both get asked — picking one
rail out of three that touch needs the first, and picking a corner of a
frame where half of what you want runs off the edge needs the second.
The box is drawn solid one way and dashed the other, so which
question is being asked never has to be remembered from which way the hand
went.
Select is a mode now. It put the drawing tool away and nothing else —
a button called Select that selected nothing. It lights while it is on, and
Escape leaves it. Without it the box would have to fight the gesture that
slides the view and the one that zooms in 3D, both of which are drags.
And 3D asks the very same rule. A member there is not a rectangle on
the page, so what is compared is the box its own corners land in on the
screen — and then the same function the flat views call. A second rule over
there could come to a different answer about one drag.
Several members picked together are measured as one block. One number
a side, from the block's outer edge to whatever is beside it — which is what
somebody setting out a frame reads.
It used to dimension the first one and say nothing about the rest.
Picking four members measured one of them; the other three were selected and
silent.
And the figures inside the block go on their own, without a rule to
remove them: a member of the block is not somebody else, so it is not a
neighbour to measure to. A figure between two members that move together
measures something that is not going to move.
Nothing is drawn for this yet. The box you drag to pick them comes
next; this is the arithmetic underneath it, and picking several members with
shift already reaches it.
The sample model is a thing that could be welded. It was not. Twelve
pairs of its members occupied the same steel: every rail ran straight
through both legs it met, and the two rails at each corner ran through each
other. It was the first thing anybody arriving from a link would see.
It was built as JSON, checked by reading the list it produced, and never
looked at. A list coming out neatly says nothing at all about whether
the metal is possible.
The legs stop where the frame starts, which is how a bench is
actually welded — the top is four rails mitred at the corners sitting on
the legs, not through them. Everything touches, nothing overlaps, and the
whole comes to 1200 × 700 × 720 exactly.
And a test asks the metal rather than the list. No two members may
share steel, nothing may hang in the air touching nothing, and the model
has to have four of something and a mitre in it — or there is no reason to
show a list beside it. Putting the old model back fails it.
The front page is about the thing, not about the changes to it. It
was 859 words of what this is and 19,885 words of what changed in it —
ninety-six per cent of the page written for people who already use it, in
front of people who have never heard of it. Four hundred and twenty-seven
words now, and the whole record is here, where it is for the people it was
written for.
A sample model to open, before a blank sheet. The only way in was an
empty canvas, which is a question asked of somebody with no reason to answer
it. It opens as a shared link rather than in the editor: it works on a
phone, and it carries the cutting list as well as the model.
And the page mentions the list, and the link. The two things nothing
else does, and it did not know they existed.
What it is not, said plainly. Not a replacement for Inventor or
Revit. The first question anybody asks is what this is instead of, and
answering it is worth more than another feature.
The desktop line came out from under the button. There it is a
rejection notice to everybody holding a phone — and no longer even true,
since the link works on one.
A leaning member can be turned. It was refused, on the grounds that a
quarter of its own frame is not a quarter of the drawing — true when the
turn was measured against the drawing's axes, and not true since the turn
started going about the member's own length. Measured on a member leaning
0.6/0.8: its direction does not move at all and the section comes round in
place. And which quarter a leaning member is on is the hardest thing to
see, so it is the case that most wants turning.
The 3D floor is sized to the model. It was six metres across, always.
Beside a facade fifty-nine metres wide that is a postage stamp in the middle
of nothing, and nothing on the screen says how big anything is. The squares
are a round number now — a hundred millimetres, a metre, ten metres — and
the floor sits under the model rather than at the origin.
And the black screen is gone. The camera stopped seeing at sixty
metres, fixed. A model fifty-six by fifty-nine has a diagonal of eighty-one,
and fitting it puts the camera a hundred and eighty-six metres back — three
times past where the world was said to end. Everything was clipped: not a
crash, a correct drawing of nothing. Both planes are worked out from what is
actually there, before the camera is moved rather than after.
Lengthening a leaning member already followed its angle, which was
worth checking rather than assuming: the far end moves exactly along the
member's own direction.
Turn works again. An edit meant for one place landed in three, because
the line it anchored on appears three times — and one of the three was
inside the Turn button's own handler, which made it return instead of turn.
It has been broken since 1.71 and nothing said so.
The mirror shows its outline, and Enter keeps it. The outline was
worked out once and never again — the mode was not among the things it
watches — so pressing a line changed nothing on the screen. And Enter had
no handler at all: the block meant for it went to one of the other two
places.
A refusal says which of the two things went wrong: no line pressed
yet, or a hole that runs the way you are mirroring and has no position to
move.
The pan button is gone, and how to turn the model is said in every
state rather than only when nothing else is going on. It was the tail of a
line that gets replaced the moment a hole is open — so the one thing
somebody needs in their first minute was the first thing to disappear. The
middle mouse button still pans, as it always did.
The mirror lines are drawn. They never were. The two things the view
needs to draw them — which member, and which line is picked — were written
into it, used in it, and never handed to it: the edit that should have
passed them anchored on a line of code that had been reworded two patches
earlier, so it quietly did nothing at all.
Nothing failed, and that is the part worth fixing. The build passed,
every test passed, and the feature drew nothing — because the two were
declared optional, and a prop that is never passed is a prop the compiler
is happy with. They are required now.
And a test reads both files and asks whether they agree. Every prop
the view declares has to be one the app passes. Taking either of the two
back out fails it.
The mirror lines can be seen. They were grey and dashed, the length of
the part, in a view already full of blue dashed lines from the figures — one
more dashed line among them, and no way to tell whether one was there at
all.
Green, past the edge, and labelled. Green is the mode's own colour
and nothing else on the drawing uses it. The line runs well beyond the
metal, so its ends are somewhere nothing else is. And the word at the end
says which way it goes — across, up, or along — so it does not have to be
worked out from which way the line lies.
The one you press goes solid and thickens, and each carries a pale
halo so it reads over metal as well as over paper.
Mirroring a hole is done on the drawing, not on a menu. It was three
directions times two ways of doing it — six lines, named in words, for a
question whose answer is a direction on the part in front of you.
One item, and then the view asks the rest. Two lines appear through
the middle of the metal; press the one the hole should go over, and the
outline shows where it lands. Nothing moves until Enter, and Escape lets go
of it — the same as a turn and a slope.
Two lines, never three. A member has three directions of its own and
a view shows two of them; the third runs into the page, and a line seen
end-on is a point. Which two you are offered is decided by the view you are
in, which is most of the question answered before it is asked.
And Keep both is a tick in the line above, not a second set of items.
Four bolts at one end becoming eight is the usual thing, so it starts
ticked.
A submenu inside a submenu opens. It never did. The menu was written
twice — a list, and inside it a second hand-rolled list that had no
submenus of its own — so anything two levels down was drawn as a plain
item, with no arrow, and pressing it called a handler that was not
there.
Four items had been sitting like that: Point along, Run length along,
Section rotation, and the hole mirror added yesterday. Nothing said so,
because a menu item that does nothing looks exactly like a menu item.
And a disabled item is disabled at every depth. It was greyed at the
top level and live underneath.
A right press on a hole keeps the hole. It let go of it: choosing an
element lets go of whatever hole is open, which is right when somebody
presses the metal and wrong when they press the hole itself. The menu came
up with every item about the open hole greyed out — including the new
mirror — so a hole that had just been picked was unpicked by the very press
meant to ask what could be done with it.
And a right press does not choose things at all when something is
already chosen. It asks what can be done with what is chosen; pressing
metal that is already selected while a hole is open now leaves both
alone.
Two ways of drawing a hole, and four items gone. Draw a hole, or draw
a slot — and either can be made the other afterwards by pulling its
handles, which is why neither needs an item to change it. What went were
Round and Slotted, which put a twelve millimetre
hole at a fixed spot in the section, 25 across and 25 up: on a plate nearly
three metres wide that is a dot in a corner, and it reads as a command that
did nothing. One in the middle was the same idea with a better
spot, and still a hole somebody then had to move.
A picked hole is green. It was the same amber as a picked member — a
hole chosen inside something already wearing that colour, so being chosen
said nothing. Green is what the outline uses and nothing else on the metal
does, and a slot is filled the same way a round hole is.
And holes can be mirrored inside their own member. Across the
section, up it, or along the member — keeping both, which is what four
bolts at one end becoming eight means, or moving them over. Named by the
member's own directions, because "about X" means nothing once a member
leans and something different again after its section is turned a
quarter.
The plane is the middle of the metal, not the section's own zero. That
zero is a corner, and a hole mirrored about a corner lands outside the
part.
One thing at a time in a shared link. The list and the card answer
the same question, and showing both is answering twice. With the list open
a tap on the metal lights its row and scrolls to it — the row is the card.
With the list closed, a tap brings the card up.
The list is dark, like everything else there. A white slab read as
though another site had opened. A row carries the mark in a ring, the
section and its ends beneath, and the length and the count on the right —
so nothing has to scroll sideways and no column is cut off, which is what
a seven-column table did on a phone.
Beside the model on a screen, the whole screen on a phone. And the
tabs sit at the top where nothing covers them.
Totals in metres, lengths in millimetres. A metre is what a length of
steel is ordered in and a millimetre is what a saw is set to, and neither
number is the other one's business.
And the credit line gets out of the way rather than running through
the card, which is what it did.
Tapping a part in a shared link works. It did nothing, and it did
nothing on every link sent since models were stored: a short link draws
from the stored solid, and only the other path — the one a long link takes
— knew which member each shape was.
The list opens beside the model, not over it. On a phone it comes up
from the bottom over the lower half; on anything wider it goes down the
side, and the two are looked at together, which is the whole reason the
model is there.
And the tabs stay reachable. They sat under the list, so opening it
was a door that shut behind you.
The list travels in a shared link. Tick Bill of materials before
sharing and whoever opens the link gets two tabs: the model, and the
list.
Tap a part and it tells you what it is. A card comes up with the
mark, the section, both lengths, the ends and how many there are — and the
part lights up with its brothers. On paper a mark is a cross-reference:
find A4 in the table, then hunt for it on the drawing. A tap answers where
the question was asked.
And a link sent without a list is the page it always was. One tab,
no marks, nothing new to explain. Every link anybody has been sent so far
opens exactly as before.
The page is measured off the drawing too. It was laid out from where
a drawing is assumed to begin — the origin, running up. The bill of
materials does not begin there, so the right-hand columns fell outside the
page and the PDF came out with Mark, Section, Qty and Long and nothing
beyond. The views sheet was never affected, which is why nothing said
so.
And the columns keep a real gap. A character of clear space is not a
gap: Short ended twelve millimetres before Ends
began, on type twenty high, and the two read as one word. The character
width itself was wrong as well — 0.62 where a written file says 0.7 — so
the columns came out narrower than the fixed ones they replaced.
The test that let both through has been rebuilt. It laid out one
model that happens to sit at the origin, and it measured gaps with the very
figure the layout uses. It now lays out a model far from the origin as
well, on three paper sizes, and asks for a character and a half of clear
space rather than any at all.
The columns are measured off what goes in them, and they keep three
characters clear. They were given widths in advance and the content did not
fit — Short and Ends came out as one word — and
the first attempt at measuring them used a character width of 0.62 that
made them narrower still. Taken off a written file it is 0.7: a heading set
at 19.8 comes out 97 across for seven characters.
And the sheet reports the size it drew. It stated one instead, and
what fell outside was cut: the PDF came out with Mark, Section, Qty and
Long on it and nothing to their right. There was never a reason to state
it — the drawing is right there and it knows where it reaches.
Bill of materials, in the export window. One tick, beside Dimensions.
Off to begin with — somebody who wants a drawing should not have to turn a
list off.
The PDF gets a second page. A PDF has pages and it is the one format
that does, so the list travels in the same file: one thing to send rather
than two.
And the DXF gets the list beside the drawing. A DXF has no pages —
everything is in one space — so the two sheets sit side by side, each
inside its own border, and the border is what tells one from the other.
The drawing of the views is untouched either way. No marks on it, no
column taken out of it. The marks live on the list's own sheet, which is
where they are of any use.
And one sheet is drawn by one piece of code. Putting a sheet on paper
was tangled up with building one from a document; they are separate now, so
the list goes out through the very code the drawing goes through and the
two cannot disagree about borders, line weights, or where the page is.
The bill of materials, as a sheet. The isometric with a mark on every
member, and the list beside it — its own drawing, not a column on the
drawing of the views. Nothing is wired to it yet; the next patch puts it
behind the tick box and into the files.
Its own sheet, because a list grows and a drawing does not. Six rows
fit beside the views and sixty do not, so anything sharing the page carries
a threshold — and above it the type shrinks, or the views close up, or the
list is cut off. Then a drawing changes because the number of parts changed
rather than because the metal did, and two prints of one model do not
match.
A mark on every member, not one per line. Two members on one line are
two pieces of metal, and somebody holding the list has to be able to find
each of them.
And the type is sized off the drawing. Type that reads beside a
bracket does not read beside a gate; the columns are measured in multiples
of it rather than in millimetres, so the table cannot come apart from its
own writing when a big model is exported.
And the green notes are gone, with the room going to the drawing.
Six of the seven fired exactly when their own box was ticked and said the
same words every time — the isometric is drawn as lines, holes are
dimensioned, dimensions are DIMENSION entities, the file is R12. That is
not a note, it is an echo of a setting two inches above. What is left is
what could have been otherwise: a section that cut nothing, a dimension
that would not fit, a drawing too big for the paper — and when there is
none of that, the box is not drawn at all.
The border goes round the drawing. It went underneath it. The page
is described the way the SVG writer sees it, and that writer turns y upside
down on its way out — so handing those numbers back as points put the
border below the metal rather than around it.
And it is measured off what is on the sheet, not off the drawing's
stated width and height. The figures and the view titles reach past those:
with three views something sits four hundred millimetres below where the
drawing is said to begin, and a border drawn to the stated size cuts
through it.
The test that missed it now asks the only question that matters. It
asked whether the border was inside the page and whether both writers
agreed about it — and both were true while the border sat below the
drawing. It asks whether the border goes round the metal now, in three
different sets of views, which is what somebody looking at the sheet is
checking anyway.
Save SVG is gone, and so is the line about shared links passing
through the server. The SVG writer itself stays — it is what draws the
preview and what the PDF is printed from.
A border round the drawing. On its own layer, FRAME, so
anybody who has a frame of their own turns it off in one click rather than
picking lines out of the drawing. Inset from the edge of the page, because
a line at the very edge is a line the printer takes half of.
And the page is worked out in one place. It used to be worked out
inside the SVG writer, which left the DXF with no way of knowing where the
page was at all — so a border there would have been a guess at where the
other writer had put things. Both now ask the same function, and the round
trip is measured against it.
Chain really is one plane now. It made one plane and then asked each
member for a fall along whichever way its own face happened to be longest.
A fall is level ACROSS the line between its two points — so a member given
two points running north while the run goes north-east had the run's
eastward slope dropped from its plane, by a different amount for each
member according to how far east it stood. The planes came out parallel and
at different heights, and the tops stepped at every joint: eighteen
millimetres, then another eighteen, measured off the drawing that showed
it.
The two points now run along the run, said in each section's own
coordinates rather than picked from its corners — where the run is square
to one side of a face, two corners tie and the pair comes out diagonal,
which is a fall in a direction nobody asked for.
And the test that missed it now measures every corner. Two planes
that differ only in how they slope east agree exactly along the line down
the middle. The old test measured there, and passed while the drawing
stepped.
Chain — several members brought to one sloped plane. Pick them, tick
Chain, and point 1 sits at one end of the run with point 2 at the other.
Every member is cut by that same plane, so the tops meet because they are
the one surface.
One plane, not a slope each. The first way round was a chain: each
member sloped over its share of the run with heights handed on. It needed
an order, and the gaps between members, and a rule for a step laid the
other way round — and where members overlap rather than meet end to end,
which is what steps cut from one imported outline do, it left a lip at
every joint. A plane needs none of that and cannot leave one.
And the two ends are the two that reach furthest, whichever order
they were picked in — the only reading of "the end of the last" that
survives picking them in any order at all.
An arrow to turn the fall round. Only the two heights change places:
which end of the face is which is not what is being asked.
And a fall that comes to nothing says so. It used to close the mode
quietly, which looks exactly like a command that did not work. The outline,
Enter and the double-click all go through one call now, so a preview cannot
promise something the press does not do.
Slope, on the toolbar. An end of a member is brought to two heights.
The face that faces up is taken first, either end can be chosen, and the
outline shows where the metal is going — nothing moves until Enter, and
Escape lets go of it.
Two heights, and the two points they belong to. Two numbers on their
own do not name a plane: a face has four corners, and 900 and 850 could be
front to back or side to side. So the pair of points is marked 1 and 2 on
the metal and each box carries the same number. The plane falls along the
line between them and is level across it, which is the only plane two
heights can mean.
Said in all three: per cent, one in N, and degrees. A drawing carries
whichever the trade it is for reads.
And the heights are what is kept, not the plane. Open the slope again
and the numbers you typed are there to change. A plane on its own is a
result, and a result can only be replaced, never edited.
A fall that would take the whole part, or none of it, is refused and
says so. The first is what a mirrored cut did when its offset was negated
and the member vanished; the second is a command that looks like it
failed.
A curved part is not a ladder in the isometric. A line was drawn
along the part at every corner of its section — right for a section with
corners, and wrong for one that came out of a curve, where there are a few
hundred of them each turning a fraction of a degree. The rungs are not
edges of anything: they are where one flat strip of the sampling meets the
next.
A line goes in where the metal turns, or where it turns away. A
round bar drawn from fifty samples and the same bar drawn from four
hundred both get two lines along them — the two silhouettes, and nothing
else, because there is nowhere else it turns. A square one still gets every
corner you can see.
A curve carries a radius and a length, not a number on every chord.
An imported arc arrives as a few hundred little chords, each a hair
different from the last, and every one of them was a side carrying its own
figure: a fan of two hundred numbers along one curve, none of them a
measurement anybody wants, and together they hid the part. A reader sees
one curve between two corners. It now says R and how far it is round.
Round, not across. A quarter of a circle of 500 is 785 round and 707
across, and the sum of the little chords is short of both. The number
somebody ordering material or setting a roll is after is the first
one.
A shape you drew is untouched. Its edges are the shape, each still
carries its own length, and each can still be typed into. What changed is
only what happens where there are no edges to speak of — a run of chords
sitting on a circle.
And curve accuracy is yours to choose on the way in. It was fixed at
a fifth of a millimetre, which is right for a bracket and heavy for a
twelve metre arc — it decides how many chords a curve becomes, and so how
many faces the solid carries in the 3D view.
A DXF with curves in it comes in as the shape it is. Two faults, and
either on its own was enough to make rubbish of a rounded part.
An arc now arrives at the corner it joins. The centre of the circle
was worked out as a length and then pushed to one side by the sign of the
bulge alone, which put it on the wrong side of the chord. The arc then ran
round a circle that does not pass through the next corner: on one real
drawing it ended twenty-one metres away and the outline shot out there and
came back. It is one signed number now, which lands the centre correctly
for a turn either way and for an arc bigger than a half circle as readily
as a small one.
And a bulge belongs to one corner. It describes the arc leaving the
corner it is written after, and it was being put on that corner and then
carried forward onto the next one as well. So every straight run that
happened to follow a curve was read as a curve too, with its neighbour's
curvature: a spike where an edge should be.
The file said so on the way in. A drawing with ten arcs was reported
as having eighteen, right there in the notes above the Import button, and
nobody read it. It says ten now, because there are ten — and the outline
that comes in lands on the same extents the drawing itself declares in its
header, to the millimetre.
And the angle box is the size of an angle. It was as wide as the
toolbar for a number that never passes four characters — the rule meant to
size it had been put in a stylesheet nothing imports, so it never applied
at all.
Any angle, not only quarters. Drag a ring and the member goes to the
angle you drag it to, to the degree. The quarters are still easy to land
on — within four degrees of one the answer is the quarter exactly, because
nobody holds a mouse to a tenth of a degree — but they are no longer the
only answers.
The angle is shown, and can be typed. It sits in the line above the
drawing and reads back whatever the ring has been dragged to, so the two
can never tell different stories. Type into it and the outline follows.
A bead on the ring you are holding, at the angle it has come to. The
ring says which way round is possible; the bead says how far you have gone,
without looking away from the metal to read it.
And an angle that is not a quarter really is that angle. The roll was
taken to the nearest of the four whenever a member came off the twelve
standings — right for a member that only ever lands on them, and quietly
wrong for one turned 37°, which came out at 45 with nothing to say it had
been moved.
Turn is on the toolbar, beside Rotate. It is the same question asked
the other way round — Rotate turns a member on a view about a point you
pick, Turn turns it about itself — and it was only in the right-click menu,
which is a fine place for something done once and a poor one for something
reached for.
Three rings in the 3D view, one for each of the member's own axes.
Take hold of one and drag it round; the member goes with it, landing on
quarters. The outline shows where it is going and the metal does not move
until Enter, the same as before — and the ring you are holding is coloured
while the other two stand back.
A ring seen edge on is not offered. It is a line on the screen, and
dragging round a line reads as forwards and as backwards at once. Turn the
view a little and it comes back.
And the camera holds still while a ring is held. Otherwise the
member and the view would turn together and neither would look like it had
moved.
The outline reaches the 3D view. It was built there and never drawn:
the effect that puts it on screen did not list it among the things it
watches, so the prop changed on every quarter and nothing ran again. The
flat views moved and 3D sat still, which is exactly what it looked
like.
And the outline is green now, not amber. Amber was fine while the
only outline was a mirror's — the copy is not selected and nothing near it
is amber. It is not fine for a member being turned, because that member is
selected: the metal and the outline showing where it was going were the
same colour, one solid and one dashed, and the eye had to sort out
which was which.
Section rotation turns the member where it stands. It wrote the roll
straight onto the element, which turns the section about its own zero — a
corner — so naming a quarter sent an angle 200 deep two hundred
millimetres out of the place it had been put, and looked for all the world
like a command that did nothing useful. It goes through the same turn the
quarter mode goes through now: named rather than stepped to, but the one
action.
The quarter is shown in all four windows, 3D as well. It was shown
in three: the 3D view was never handed the outline or told the mode was
open, so half the screen carried no sign of either. In 3D it is the very
solid the member is already drawn from, with another matrix over it —
nothing is built twice and the four windows cannot come to different
ideas of what the turn amounts to.
Nothing moves until Enter. The member stays where it is and only
the outline goes round, however many quarters you press through. Enter
keeps it, Escape lets go of the whole walk round — the document is not
touched in between, so there is nothing half-done to undo.
And a line above the drawing says what is happening. What is being
turned, how far it has come, and both ways out. A mode with no sign of
itself is a mode nobody knows they are in, which is what the last one
was.
The turn is about the member's own axes, not the drawing's. On a
member standing on an axis these are the same three under other names.
On a brace they are not: about its own length it stays leaning exactly
where it leans and only the section comes round, where about Z it would
swing across the frame.
A member can be stood across an axis. Right-click, Orientation,
Perpendicular to — X, Y or Z. Which axis a member closes off was the one
thing about how it stands that could not be asked for, because it falls
out of the length and the roll together and neither of those can be asked
for it alone.
Turning the section over and over never got there. A plate lying
along Z goes across Y at 0°, across X at 90°, across Y at 180°, across X
at 270° — two answers, for ever. Across Z is not in the list and no number
of presses reaches it: getting there means moving the length, and a roll
is the one thing that never touches the length. Turn the section 90° stays
where it is; it is a quarter more from wherever you are, which is what you
want when you just mean to put a channel on its side.
And the member stays where it was put. The middle of the metal
holds, in all three directions. Turned about the section's own zero, a
plate 200 wide travelled 142 millimetres — its whole width, out of the
place it was put, and a wider one goes further. The zero is a corner of
the section and nothing on the steel marks it.
The handles that pull a length are on the ends of the member. They
were on the corners of the box drawn round it — which is the end for a post
or a rail, and two places the metal never reaches for a brace. Both of a
brace's handles stood out in the air.
And pulling one now runs along the member. The length was set along
the world axis the member is named after; a brace is only named after the
axis it leans towards, so the number meant nothing and the member jumped.
It is measured along its own lean now, and it goes through the same
growTo a typed length does — the handle you hold is the end that moves and
the other one stays put.
A member that leans out of a view gets no handles there, the same
way it gets no length figure: its ends are not where the drawing puts them,
so there is nothing honest to take hold of.
A hollow member that leans is no longer hatched down its whole
length. Hatching says the saw went through here, and a box section
that ran at an angle carried it over all eight hundred millimetres of
itself in every view. Its shadow was being handed to the drawing under the
same name the section itself uses — the one seen face on, in the view that
looks along the member, where hatching is exactly right. A shadow is not a
section, and the two are only both called outlines in English.
A member turned off an axis and back is the member it was. The way
back left its direction behind: the document said the post was upright
again and the drawing kept it at forty-five, and every turn after that
moved a number while the metal stood still. Two presses of Rotate and the
part stopped answering.
And an end face is one line, however the section is rolled. Its
plane holds the way you are looking, so every corner of it lands on the
same line — and the ring round them was that line walked over and back,
four segments deep at each end. On the paper it read as hatching nobody
asked for, and it showed up on exactly the members Rotate had made.
A brace says what angle it makes with what it connects. One figure
at each end that meets something, drawn with its point on the metal rather
than where two centre lines cross — a place inside the steel that nothing
marks and no bevel can be laid against. A square corner is not written: a
post meeting a rail at ninety says that by being a drawing.
And the figure is typed into, like every other measurement. The end
you type at holds still and the member swings about it. Both of a brace's
angles come from its one direction, so in a square corner they add to
ninety and the far one moves without being touched — type 55 at the foot
and the head reads 35.
The angle is between the members, not between their faces. Faces
swing with the section: turn a brace thirty degrees about its own length
and its four face pairs come to 30, 54.73, 60 and 70.52, and the angle of
the joint is not among them. What is asked about is the corner, and the
corner does not care how the section sits.
A member that leans out of a view gets no figure in that view. The
lines on the paper show one angle and the steel sits at another, because
the member also goes into the page. A length has always been refused for
the same reason; this is the same refusal.
And it leaves with the drawing — on the dimension layer, so it is in
the DXF and on the sheet along with everything else measured.
A mirrored mitre closes. Mirroring two members joined at a corner
left half of it cut and half of it square — a flat face standing in the
joint. The member went over and the plane it stops at did not: the copy is
the part turned end for end, so what was its start is now its far end, and
the cut was still written at the end it starts from.
And a mirrored member stands where the reflection stands. A
rectangle turned over is the rectangle it was, so the copy keeps the
section rather than filling the list with a second one — but it was not
moved back by the section's own width to suit, and the whole part stood
sixty millimetres from where it belonged. On a part sixty wide that still
looks like a part, which is why it went unseen. Every rectangle, box and
tube was affected, mitre or no mitre.
A section with a hole to one side is a different section the other way
round. Each ring was asked whether it reflects onto itself, and each
one does — somewhere. They have to do it about the same line.
A trim on a mirrored member remembers the mirrored place. Taking it
off sent the copy to where the original used to stand.
A slot's length is now what a rule reads across it. It was the
distance between the two centres — which is what the shape is built from,
and a number that appears nowhere on the steel. A Ø13 with its centres 25
apart is thirty-eight millimetres, and thirty-eight is what it says now.
Drawings already made are unchanged: what they hold has not moved, only
what is written on them.
Mitre is one press instead of three. Pick a member, press Mitre, and
the ends it could make a corner with light up — press one to join it,
press a joint to take it apart. Turn joint is gone: it existed because the
pairing was measured and the measurement was sometimes wrong, and there is
nothing to guess when the end itself is pressed.
And the mitre runs corner to corner. It split the angle evenly, so
every square corner came out 45 and 45 whatever the two sections were. On
a 60 meeting a 100 that leaves a step standing in the joint; it wants 31
and 59, and the two still add up to the corner.
A notch can be taken off by pressing it, and one that reaches
nothing says so instead of drawing a red mark on a member nothing has
happened to. Removing a single notch was not possible before — only every
cut on the member at once.
A dimension changes the members you picked. Sections are shared, so
typing a number moved every member drawn from that one. Picking several
still does; picking one now moves one.
A member running the negative way is drawn where its metal is. Its
outline was placed a whole length past itself — invisible until a mitre
clipped it against its own end plane and the member vanished from all
three flat views while standing there in 3D.
And a trim on a rolled member cuts parallel to the face again. The
cut was written in a frame turned ninety degrees from the one the steel is
built in, so a braced diagonal came back with a square end where a
mitred one belonged.
A shared link is now about fifty characters. It was three hundred and
eighty, because the whole drawing travelled inside the address — which is why
it needed nothing at all to open, and is still what happens if anything about
the shorter form fails. The drawing is now kept here and the link carries a
fingerprint of it.
And the message shows the part that was sent. Every link until today
came up beside the same stock picture, whatever had been drawn. The card is
made when the export window opens, from the solid the kernel built, so the
holes and the cuts are in it — and it is the part somebody actually sent,
with its name and how many members it has.
The viewer shows cuts. It never has. It pulled a section along a
length, which is exact for a plain member and has no way at all to take metal
away — so a notch, a bore across, a trimmed end simply were not there, and the
bar said so. The kernel that could do it is half a megabyte of WebAssembly
and closing tabs on a phone is what it cost the last time it was tried. So it
runs once, here, on the machine that already has it, and the result travels:
about five kilobytes for a bracket.
Trim no longer locks itself after one end. Bringing one end of a member
to a face turned the button into Un-trim, and the far end could not be reached
again. The button was asking about the member and the answer belongs to an
end. It now always says Trim, and taking one back is on the member's own menu
where the end is named.
A copy whose original was deleted kept its own name. It came back named
after its section, and — worse and quieter — every member listed after it came
back under somebody else's name. Reachable by duplicating a member and
deleting the original, or by renaming the original afterwards. The link
packed, the link opened, the shape was right, and two members were called the
wrong thing.
And opening a shared link is counted. Pressing Share was counted and
nothing on the other side ever was, so there was no way to tell whether any of
the above changed anything. What is sent is that a link was opened, whether it
was the short form, whether the solid was shown, and how many members rounded
to a band. No drawing, no name, no address — the viewer says so at the foot of
the page.
A shared link now shows a picture of the part. WhatsApp draws that
picture by asking the server for the page, and a browser sends the server
everything before the # and nothing after it — so a drawing that travelled
after one could never be pictured. It travels in the query instead.
And the checkbox that chose between them is gone. It started off, which
meant no picture for anybody who had not first found it and worked out what
it was for. Pressing Share is asking for the thing to be seen, and a question
with one sensible answer is not a question.
Which changes something an earlier note promised, so here it is plainly.
Sharing used to put the drawing where no server saw it. It no longer does:
a shared link passes through the server on its way to whoever opens it, and
to whatever shows the message. That is what a picture costs and there is no
way round it. Nothing else here uploads anything, and links you were sent
before this go on opening exactly as they did.
A copied member no longer carries its name in full. Duplicating appends
"(copy)", and duplicating that appends it again, so four uprights spelled
out the same long string four times — most of what was left in a link.
It travels as a number and the name is built back.
And the same section is written once. Two members given RECT 60×60
separately are two entries the drawing cannot tell apart afterwards, because
a section is its numbers. A frame of a dozen identical uprights carries one.
Two hand-drawn outlines that happen to match are kept apart — they are still
two shapes somebody may edit apart tomorrow, and folding them would join
them without saying so.
The saving is real and it is not large. A frame went from three hundred
and thirty-four characters to three hundred and eighteen. Compression was
already doing most of this work, which is why the honest answer to "how
short" was to measure rather than promise.
A part touching another is no longer dimensioned to it. One number per
side and the nearest wins, which is right — but a post sitting against a rail
is nearest to it on all four sides at nothing, so those zeros won every side
and the six hundred across to the next post never appeared. A gap of nothing
is not a measurement: two parts touching is plain from the drawing, and the
0 was taking the place of the number somebody setting out a frame actually
reads. It used to read zero on purpose, and that was wrong.
A triangle is edited by the two sides that decide it. Give a rectangle
a width and a height and both are yours; give a triangle two sides and a
square corner and the third is already settled. It is shown as a reading
rather than a field, and typing into it is turned down with the reason
rather than absorbed — a field that only snaps back tells nobody which
number was wrong.
And typing one side no longer moves another. Drawn outlines are sized
by a solver that holds every edge typed so far and scales the rest to fit,
which is right for a rectangle and wrong for three sides: setting one to 200
stretched another from 120 to 240, a number nobody typed, and typing the
second was then refused because everything was already held. A triangle
needs no solver — two corners stay where they are and the third goes where
the two lengths say.
A triangle without a square corner takes all three. A gusset across a
corner often has none. All three are typed then, and a side longer than the
other two put together is turned down, because there is no triangle that
shape. Which panel you get is measured from the outline rather than stored
on it: a flag and a shape drift apart, and the shape is what gets built.
And a corner drawn at 89.7° can be squared. By hand it is never exact,
and nobody wants a third field because of a third of a degree.
The viewer filled the screen. A canvas is a replaced element, so laying
it out with an inset of zero and no width leaves it at its intrinsic three
hundred by a hundred and fifty in the top corner, and the browser is required
by the specification to ignore the rest. Every framing sum was correct and
every one of them was fitting the model inside a stamp. It is measured
against the window now and says so in words if it ever comes back smaller.
And the kernel really did come out this time. The last release said it
had. It had come out of the viewer's imports and not out of the viewer's
download: the bundler groups modules by which pages reach them and then
merges the small groups back, and the viewer's handful of files came out in
one chunk with half a megabyte of compiled geometry engine. That is what an
iPhone was being asked for, and it is why removing an import changed nothing
anybody could see. The chunks are named now, and a test reads what the page
actually fetches rather than what it imports.
Bores that run along a member are drawn. Holes were left out wholesale
because holes are subtraction and subtraction is the kernel. True of a hole
drilled across a member and not of one drilled along it: that is not taken
out of the solid at all, it is a hole in the shape being pulled, which is the
same thing already done for every hollow section. The rule was too broad and
the bores somebody was looking for could have been there the whole time. What
still needs a kernel is a hole drilled across, a notch and a cut, and the bar
says which.
And the edges are drawn. Fourteen members in one grey lit from one side
is a lump. Two posts standing against each other share a face and nothing in
the shading says where one stops, which is a picture that is correct and
unreadable. A drawn edge is what a drawing has and a render does not.
A link is a third of what it was. The address held the document spelled
out, every field named, every member carrying an identifier nobody at the far
end will ever look up. Compression hid enough of that to make the size look
settled. Written as rows of numbers a real frame goes from a thousand and ten
characters to three hundred and eighty, and what somebody is sent stops being
thirty lines of base64 before anything readable. Nothing is dropped to get
there, and every address anybody has already been sent still opens.
And a picture in the message, if it is asked for. A preview is drawn by
whatever is showing the message, and it can only draw what it can fetch, and
a browser will not send anyone what sits after the hash. There is no clever
way round that. So it is a box that starts off: leave it and the drawing goes
nowhere, as before; tick it and the drawing travels where a server can see it,
which the box says in those words.
And it draws when something changes. It drew sixty times a second
whether or not anything had moved, and went on drawing after the browser had
taken the drawing surface away — which is a tab being killed and reloaded into
the same loop, and is what a phone reports as a problem that keeps happening.
Idle, it now costs nothing at all.
Anything that goes wrong is written on the screen. Rounds went into
guessing which of several things was broken from photographs of a black
screen. A page that fails on somebody else's phone cannot be read from here
and the browser's console is not somewhere most people can reach, so every
way this can die — a script error, a promise nobody caught, WebGL refusing
to start, the drawing surface being taken back when a tab runs out of room —
now says what happened, in words that can be photographed.
The viewer no longer fetches the CAD kernel. It was pulling half a
megabyte of compiled WebAssembly to turn fourteen members — four hundred
triangles — and an iPhone was killing the tab for it. Android has more room
and got away with it, which is why this looked like a phone problem instead
of a weight problem, and why the answer was never in the framing or the
maths. A member is a section pulled along a line and three.js does that on
its own. The kernel is for subtraction.
So holes and cuts are not shown, and it says so. Those are subtraction.
Somebody sent a model is not going to measure a bolt hole on a phone, but
they should know it is outlines only rather than find out later.
One shader, not fourteen. A phone compiles a shader for every distinct
material it is handed, and every member was being given its own copy of the
same grey. They share one now, lit the cheap way rather than the physically
accurate way — on plain steel with a single light it looks the same — and
the canvas draws one pixel per pixel instead of nine.
And the camera is placed every frame. It was worked out once, the
first time the canvas had a size, and every phone reports a size before its
toolbars have settled. One reading taken a moment too early parks the camera
at the wrong distance for the rest of the session, which is exactly what a
model in the corner looks like. A pinch now changes how much of the model to
show rather than a distance, so it survives the screen changing shape.
And the build it reads is one it made itself. Reading whatever was on
disk made the check pass or fail on the order the commands were run in —
green on a machine that had just built, red on one whose last build was an
hour old. A test that depends on what happened before it is worse than no
test, because it sends somebody looking at the wrong thing.
And the weight is read out of the build. Weight creeps back one import
at a time and never announces itself. The kernel is fetched lazily, so it
never appears in a list of imports — a first version of the test checked the
names, passed with the kernel wired straight back in, and was worth nothing.
It reads what the files say now.
Copy view link. The 3D files needed the phone to support a format, and
there is no format both support — Android takes glTF and not USDZ, an iPhone
takes USDZ and not glTF — so sending one meant knowing which phone was at
the other end, and it still did not open reliably on either. A link needs
the phone to open a web page, which every phone does.
And it carries the drawing with it. Packed into the address, after the
hash where a browser keeps it to itself: nothing is uploaded and no server
sees it, which is the promise the rest of this makes and an odd one to break
at the moment of sharing. There is one exception and it is a checkbox that
starts off — asking for a picture in the message means the drawing has to
travel where the messaging app can fetch it, which is to say through a
server. It says so next to the box. Addresses have a limit and this looked tight until
it was measured — a real frame of fourteen members packs to under two
thousand characters, four hundred and forty-eight of them to under six.
Steel repeats, and repetition is the thing compression is best at.
Half the length, and the phone's own share sheet. A shape made from
numbers is made again from them at the other end rather than carried point
by point — a circle is fifty points of it — and a section nothing is drawn
from travels for nobody. A real frame went from nineteen hundred characters
to eight hundred. Share opens whatever is on the phone: WhatsApp, mail,
messages. Copying to the clipboard is what happens where there is no sheet,
not the other way round.
And the model is framed for the screen it is on. The camera stood back
a fixed multiple of the model's diagonal, which fits a wide screen and spills
off a narrow one — a field of view is measured up and down and the width
follows the shape of the screen. And a diagonal is the wrong measure anyway:
a frame four and a half metres tall and two wide has a diagonal barely
longer than its height, so it came out either half off the side or lost in
the middle at a third of the screen. The eight corners are turned into the
camera's own view now, and the widest and tallest of them decide. It fills
the screen either way up.
The viewer page is allowed to go stale. This was it. The built files
carry a hash in their names and are kept for a year, which is right — a name
that changes means a file nobody has to check again. The pages that point at
them must not be, and / and /app were listed while
/view was not. A phone that had opened one shared model kept
opening that same build, so every fix looked like it had not been deployed.
Three rounds went into the maths and the framing before the header was
looked at. A test now reads the pages out of the build's own list and fails
if one of them has no rule.
And it is measured every frame, not when something says it changed. A
browser reports a size before it has laid the page out, and a phone changes
it again as its toolbars slide. Every event meant to say "now it is settled"
fires at least once when it is not, and one reading taken at the wrong moment
is a picture drawn for a rectangle that never existed — which is what put the
model in a corner. Comparing two numbers sixty times a second costs nothing
and cannot be early.
The picture is drawn at the shape it is shown at. This was the whole
of it. A phone's window height is not the height the canvas is stretched to
— the address bar and the toolbar are counted differently — so the drawing
was made for one rectangle and displayed in another, which stretches it and
crops it. The sum said the model fitted with room to spare while the screen
showed one corner of it, and both were telling the truth about different
rectangles. The canvas is measured now, not the window.
The viewer can be asked what it measured. Add &d=1 to
a link and it prints the build it is running, the size of the model, the
shape of the screen, how far back the camera stood and whether the corners
landed on it. Three rounds went on guessing which of two things was wrong
from a photograph, when the numbers could have been asked for.
And a link that builds nothing says so. What travels is the numbers a
shape is made from, not the shape. If the far end does not make it again,
every section arrives with no outline and the viewer shows an empty screen —
which reads as the model being off the side rather than as not being there.
It is now said in words.
The two 3D files are gone. They needed the phone to support a format
and the link does not.
The viewer is a page here, so it is ours. The part's name is on it and
there is a way back. One finger turns it and two pinch it; nothing pans,
because a model that can be pushed off the screen is one somebody has to be
told how to get back, and there is nobody there to tell them.
Save 3D. The model itself, as a file to send to whoever asked what the
thing looks like — which a drawing is not the honest answer to. It opens on
a phone straight from a message, with nothing installed, which is the whole
reason for the format.
Two files, because there is no one format both phones open. Android
reads glTF and not USDZ; an iPhone reads USDZ and not glTF. Neither company
reads the other's, which is not something that can be designed around — it
can only be met, with a file each, named for the phone rather than for the
format. The first version shipped only the glTF one, on the strength of my
believing an iPhone would take it. It does not, and the only thing that
found that out was sending a file to a phone.
The viewer is not ours, and that is the trade. No title on it, no part
number, no way back here and no way to know anybody opened it. Worth taking
while the question is still whether anyone wants to send a model at all: a
viewer of our own needs a page to live on, and a page needs a reason.
Colour is chosen on the way out. A file has no buttons, so it is baked
in or it is not there. It follows the screen by default — somebody looking
at a coloured model and pressing export meant the coloured one.
Un-trim. Bringing an end to a face moves two things at once: the cut,
and the length the member was grown or shortened to. Taking the cut off
alone left a squared end on a member of the wrong length — a third state
nobody asked for, which on the drawing looks like the command half worked.
The cut is the record of what was done, so it carries what to put back, and
the member returns to exactly the metal it was.
One line that says what pressing it will do. Trim while there is
nothing to take back, Un-trim once there is — the same place, the same
press, the way Mitre already reads. The menu no longer offers both at once,
or a submenu of ends to hunt through for the one that applies. What stays
under Ends is what a trim did not make: a mitre, and an angle set by
hand.
And nothing of no length is written into a DXF. A line that draws
nothing is still an entity: it snaps to, it selects, it turns up in a count
of what is on the layer, and somebody eventually has to explain it. Guarded
where the file is written rather than only where those came from, because
the next source of one will not be that place — and checked by reading the
file back, because what matters is what a fabricator opens.
And the line that ran past a trimmed end has gone. The end faces are
drawn as their own edges, because a leaning member with none reads as a
shadow with no ends — but they were the uncut section, so two lines carried
on to where the metal used to stop. The silhouette had already been clipped,
so the drawing disagreed with itself inside one picture.
Trim aims at a plane, not at a member. The first version looked for
where one member's line passed through another. That can shorten and cannot
lengthen at all — a brace falling short of a rail never passes through it,
and the answer came back "does not pass through Rail", which was a correct
answer to the wrong question. A face carries on for ever, so an end sent to
the rail's underside reaches it whether it would have met the rail or not.
That is the whole of what makes extending work.
Press the plane, and nothing else is asked. Every face of every other
member that can be reached is drawn as a line across the view; the one under
the pointer lights up. Which end moves is read from which plane was pressed
— a member has two and only one is near it — and whether metal is cut back
or added falls out of where the plane is. The four options that used to be
chosen beforehand were both questions the geometry already answers.
The end that is left is a whole section, not a corner. An end face is
square to its own member, so on one running at 45° its corners are
forty-two millimetres apart along that direction. Sending the middle of the
face to the plane leaves half of it past and half short, and the cut then
takes a corner off instead of squaring the end — a brace with a nick in it.
What has to reach is the corner that reaches last, and the cut is then set
back onto the plane.
The views draw what the kernel built. A member that leans has its
shadow worked out from its section at both ends, and the end cuts were
being left out of that — so a brace trimmed to a post was drawn reaching
past it by the spread of its own end face. The kernel had it right and the
drawing did not, which is the wrong way round for a drawing.
And a suggestion is only made when it would work. Offering to re-run
a member's length used to rest on whether an end would be near enough
afterwards. Near is a proxy, and a proxy offers a button that does something
and leaves the mitre refused anyway. The pairing is simply tried.
A face the member runs parallel to is not offered. It would never be
met however far the member was taken, and a choice that cannot be taken is
better not shown than shown and then refused.
Trim, and Extend, as one thing. A brace crossing a post has an end that
is wrong in two ways at once: part of it has gone past and part has not
reached. Neither word describes what is wanted, and offering both as
separate commands would be asking a question the shape has no answer to. So
there is one instruction — the end goes to the face — and whether metal is
lost or gained falls out of the arithmetic. It says which happened, because
a member that quietly grew is one nobody notices growing.
The choice that is real is which face. Stop against the member, or run
through to its far side: a bolted cleat wants the first, a member passing
through a frame wants the second. Named for what happens rather than for
near and far, because a start holds everything ahead of it and an end
everything behind — so the same face does the opposite thing at the two
ends, and a geometric name would mean the opposite thing on alternate
members.
Given from wherever the member was picked. Right-click a member and
the four ways its ends can meet another are there, each one a whole
decision that arms straight away. The first version put the two questions
in a list as settings, so choosing one closed the menu, looked like it had
done something, and left nothing armed — press the other member afterwards
and the answer was silence.
A member can be pointed anywhere, and the panel says where. Three
numbers, a direction and not a size: 1,1,0 and 2,2,0 are the same lean. And
a button to put it back on the nearest axis, because a member that has come
back to square should read the way it read before it was ever turned.
A member can run its own way. Until now it ran along x, y or z and
nothing else, so a brace across a corner could only be faked by turning its
section — which looks diagonal from the front and leaves the brace running
the same way as the post it was meant to brace. Two such members are
parallel, however diagonal they look, which is why a mitre between them was
refused: correctly, on a reading that was right about the model and wrong
about the drawing.
Rotate turns by any angle, in any view. It used to snap to a quarter
for a member lying in the view, because a length that turned off an axis had
nothing to be described as. It has something now. A quarter still comes back
as a plain axis rather than a direction, or a drawing slowly fills with
members that sit on an axis and do not say so.
Four routes to the same metal, and all four are checked against each
other. The map that places a point, the kernel that turns the solid, the
matrix the screen uses, and the outline the views draw. A wrong turn order
does not throw — it builds a part of the right shape, in the right place,
facing the wrong way. The drawing would look plausible and the part would
come back wrong. One of the four was missed on the first pass, and it was
the one being looked at.
Twenty-one buttons on two rows became twelve. The trouble was never the
count — it was that nothing in the row said which buttons belonged together.
Rectangle, Polygon and Circle were one decision wearing three buttons; Mirror
X, Y and Z were one; Open, Save and Import were one. Each is now a single
button that opens its own short list. What is pressed while working —
Rotate, Mitre, Notch, Align — stays where one press finds it, because
grouping costs a press and only the things nobody reaches for mid-drawing
can afford one.
Sections and Section were never the same thing. One opened the library
of shapes a member is pulled from; the other drew a cutting plane. Two words
a letter apart for two unrelated things. They are now Profiles and
Section — and Section is kept clear of Cut, which takes metal out of a
member and is a third thing again.
A second row for what leaves no mark. Select, Colour, Dimensions and
Grid change how the drawing is looked at; none is saved and none can be
undone. That is the line the split is drawn on rather than a tidy guess, and
Dimensions and Grid come out of the view menus where they were hard to
find.
New and Reset moved off the row. They throw the drawing away, and a
button that does that does not belong beside Save.
A picked section can be deleted from the menu. It always could, from
the menu on the line itself — but that is one line on a drawing and pressing
exactly on it is a small target. Once a section is picked it is the only
thing selected, so a press anywhere now offers to open or delete it. Del did
this before and nothing said so.
A figure sits against the member it measures. A 60 across one member
used to be carried out to the edge of the whole view, ending up as far from
that member as the 740 spanning the entire frame — a long line between the
number and the thing it is about, and bands to count before you know which
is which. It now goes beside its own member, with a short tick at each end
saying where it starts and stops.
An overall size stays in the margin, and that is the right place for
it. It spans from one member's far edge to another's and belongs to
neither. What is furthest out is what contains everything — the distance
carries that, and putting the overall size beside a member would throw it
away.
Where there is no room, nothing is attempted. Two members flush
against each other have no clear air between them, and a figure squeezed in
there collides with the drawing or with the neighbour's figure. So it asks
first, and the answer when it is no is the margin — which means the worst
this can do is the drawing that was already there.
Dimensions keep to the margin. An extension line used to start at the
feature it measured, which meant it set off from wherever that member
happened to sit and crossed everything between there and the edge — on a
view with four members at four depths, four lines drawn straight through the
drawing. The arrows on the dimension line already say where a figure is
measured; the extension line only has to reach the edge. There is now a test
that fails if one ever crosses the metal again, because nothing else here
would notice.
Say what did not work, where it did not work. Not a Feedback button in
a corner — that reads as a complaints box and stays untouched while
everything is going well, which is most of the time. It sits beside the
places the drawing has already admitted it could not manage something: a cut
it could not take out, a notch whose member is gone. Whoever presses it was
stopped, and that is who there is anything to learn from. The warning's own
words travel with the message, so a report arrives with the thing it is
about attached. An address is optional and small: asking for one roughly
halves the number of people who say anything.
And a line for updates. On the front page, and once a drawing has
actually come out — then not for three more, then five, then eight, widening
every time nothing comes of it. Closing it is read as "not now" rather than
as "no", which is usually what it means.
Usage is counted, and the drawing is not. Eleven things: opened, a
model opened, a section made, a notch, an end cut, a sheet, an export. No
geometry, no names, no file contents — and the list of what may be sent is a
list in the code rather than a promise in a sentence, with a test that fails
if a name or an outline or a position ever tries to pass. Counts travel as
bands, because the exact number of members in a drawing is a small fact
about somebody's job and "between ten and twenty" answers the same question
about nobody.
Who is asking is one random number kept in this browser. Not a login,
not a cookie, nothing about anybody. It answers whether the same person came
back, which cannot be answered without it. There is a switch to turn the
whole thing off in plain sight, not buried — and turning it off forgets the
number too, because a thread left to pick up again is not what off means.
Rotate. Press it, press the point it should go round, and drag. Whole
degrees, with the eight a drawing is actually set out on — the quarters and
the halves between them — held from a little further away, so a joint meant
to be 45 does not come out 44 because the pointer was a pixel off. Shift lets
go of that; the angle can also be typed, which is the only way to ask for one
the pointer cannot hold still on.
A member seen end on turns by any angle at all. The turn never touches
its length — the section turns and the member moves round the point — and a
section can now sit at any angle rather than one of four quarters. The
quarters are still worked out exactly and not through the trig, so a section
at 90° lands on whole numbers instead of on 6.1e-17.
A member seen along its length can only go to another axis. Its length
runs along one of the three, so there is no direction between them for it to
point at. The turn snaps to a quarter and names the members that forced it,
rather than rounding quietly. A selection with both kinds in it moves together
or not at all: one member turning 30° while the other refused would take the
selection apart under a single press.
The new standing is found, not tabulated. A turn is applied to the
member’s own three directions and then the axis and roll that reproduce them
are looked for — twenty-four table entries not written is twenty-four chances
to be wrong not taken. The tests compare the metal against the same metal
turned by hand, corner by corner.
The right-click menu is eight entries instead of eighteen. Orientation,
holes, cuts and ends open as families. "Remove all cuts" was in it twice.
A member can be told which way to run its length. Everything that acts
on an end — an end cut, a mitre — acts at the ends of the pull, so a member
whose length runs the wrong way has no end where the joint is, and nothing
at the joint can invent one. Drawing a rectangle in a view makes a member
running into the screen with its Depth as the length, which is right and
looks right and has no end at the top. Now it can be turned: a rectangular
section is a prism all three ways, so the very same metal is described a
different way and nothing moves. Any other section is a prism one way only,
and asked anyway the member is rebuilt rather than re-described — said
plainly first, because a member that changed shape while being tidied is
worse than one left alone.
And a mitre that has nowhere to cut says so. Two members whose boxes
overlap are not a joint: a rail passing a post halfway along it overlaps and
has no end there at all. It used to cut a face anyway, quietly. It now names
the member and offers to turn it.
A copy no longer carries somebody else's joint. Copying took the cuts
across word for word, ids and all, so the copy held a link back to the
original's partner — and taking its cut off reached across and opened a
joint the original was still standing in. A copied angle is kept, because
the second rail of a frame is the first one again; the pairing is not. Copy
both halves of a corner and the two copies are joined to each other; copy a
notched member with the member it is cut around and the notch follows the
copy, not the original.
Mitre. Pick two members, press it, and their ends are cut so they meet.
Which of their four ends join is measured rather than asked — only one
pairing is a corner. When "nearest" picks the one you did not want, press
again and the joint turns to the next. Nothing here works in angles: 45/45
is simply what an even split of a square corner comes to.
Taking one off lifts both halves. A mitre is one decision landing on
two members, so an end now names the member it was cut to meet. Without
that, removing it left the other standing with its corner gone and nothing
to meet — a joint half undone, worse than either state it was in.
A sloped end can be aligned to at its corners. Not along its face: a
reference here is a world coordinate on a world axis, and a slope is square
to neither, so the line itself is still not offered. Its two ends are, and
on a mitred corner those are the only two places the joint is ever set out
from.
An end cut: the plane a member stops at. Given in the element's own
coordinates, so it knows nothing about frames or corners or 45° — those are
things somebody does with it. A single member can be given a sloped end with
nothing else in sight, at 30, 45, 60 or anything between, and a mitre is two
of these worked out from a pair.
A plane needs a place as well as a direction. Without one it went
through the middle of the end face, which is right for a saw cut and wrong
for a joint: two members mitred that way each took a small wedge and went on
occupying the same steel. Because both wedges were the same size it looked
correct — equal is not the same as complementary, and the test that caught
it asks whether the two share any volume at all.
The face between them is the difference of the two directions, not the
bisector. The bisector points between the members, which is the same way
for both, so both kept the same half of the corner. The difference points
from one across to the other, which is what a face between them has to do.
The drawing shows it. Seen from the side a member is a rectangle and an
end plane meets it along a line, so the silhouette becomes a trapezoid —
nothing more general than a convex clip was needed after all. The isometric
stops where the metal stops and draws the face that is left. Seen end on the
same cut is a line across the section and changes no shape, which is drawn
too, because a cut that changes nothing has to change nothing.
Two colours that read as one, fixed twice over. A drawing with a BOX
80×100 and a BOX 50×100 in it came out as two teals a shade apart, and
telling exactly those two apart is the entire job. The palette was handed
out in wheel order, so profiles next to each other in a document got hues
next to each other; it now walks across the wheel instead. And it had a
seventh hue squeezed into what was left after the reserved arcs, eighteen
degrees from its neighbour — an interval no ordering can rescue. Six hues,
none closer than thirty-seven, three shades each: eighteen before anything
repeats, which is more sections than a drawing has.
Colour. One switch. On, every profile gets a colour of its own and
keeps it everywhere — 3D, the views, the cuts. Not decoration: on a drawing
with forty members the question the eye asks first is which of these are the
same thing, and counting section labels to answer it is slow.
The same steel is the same colour. Keyed on the shape and not on the
record, so the same standard section imported twice under two ids reads as
one thing, which is what it is to anyone looking at the screen. Handed out
in order rather than by hashing: a hash spreads nicely over a large set and
collides cheerfully over a small one, and a drawing usually has four or five
sections in it — exactly the case where a collision ruins the only thing
this is for.
It stays out of the way. Three colours here already mean something:
orange is what is selected, blue is a dimension, red is a cut or a warning.
The hues are the ones left over, all muted, and selection is drawn over the
top regardless — what you have picked is never in doubt because of what it
happens to be made of.
It is not a property of anything. Nothing is written to the file and
no colour can be set by hand. A drawing saved with this on and one saved
with it off are the same drawing, and the PDF and the DXF stay black and
white, because the paper was never asking the question this answers.
A cut offers its faces, not only its holes. Aligning has always been:
name a plane, then name the thing that goes there. A section that offered
only holes could name the thing and never the plane, so picking in one never
came to anything. Every edge of the metal square to the drawing is now a
plane you can pick, and a bore offers both its walls and its centre — the
lines are drawn while Align is armed, so you can see what there is to aim
at.
A slope is left out. A reference is a world coordinate on a world
axis, so an edge that is square to nothing is not a plane, and rounding it
into one would be inventing a face that is not on the part.
Ready for a cut through several parts. Every line carries the part it
belongs to and none of them are pooled, so a plane on one part and a hole on
another are already two ends of the same alignment. Nothing about this waits
on a second element existing.
The reference is shown where it falls. Once a plane is picked it is
drawn across the cut, so the thing being aligned and the thing it is going
to are on screen together. A plane square to the cut itself is edge-on and
has nothing to show, and shows nothing.
The box opens on the number, not above it. It was hung one level above
the drawing, and an absolutely placed thing is measured from the nearest
positioned ancestor — which up there was somewhere else entirely, a header
and a toolbar away. Getting the arithmetic right last time only made it
wrong in a straight line instead of a crooked one.
The box opens where the number is. Its place was worked out as a
straight ratio across the panel, which ignores that a drawing is scaled to
fit and then centred — so in a panel whose shape does not match the
drawing's, it opened a long way off. The browser is now asked where the
point actually is.
A hole in a section can be aligned, and aligned to. An align reference
is a world coordinate on a world axis, which is the whole point of it: a
hole picked in a section means the same thing as a face picked in a view, so
the two ends of an alignment need not come from the same place. Which of the
two directions is meant is not asked with a second click — a bore the plane
opened lengthways has only one direction that is its position at all, so
that one is taken, and a round bore takes whichever is nearer the
pointer.
The number is now something you can actually hit. The double-click was
on the glyphs themselves — thin shapes with holes in them — and any press on
the drawing starts a pan, which pulled the number out from under the second
click before it landed. There is now a patch of nothing over each editable
dimension, big enough to aim at, and pressing it does not start a pan.
A dimension on a section can be typed into. Double-click one and put in
the number you want; the hole or the cut goes there. The chain from a
distance on the page back to an element's own coordinates — its roll, the
plane's orientation, which way the cut is looked at — is not guessed at.
The placement is asked what it does to a step of one, and the answer is
inverted. Guessing at that chain is what put every hole dimension on the
wrong axis last time.
It moves. It does not resize. For a hole that is the only thing a
dimension to it could mean. For a cut it is a choice: a cut is a polygon,
and a number touching one of its edges could be absorbed by its position,
its width or its height, all three fair readings of the same figure. Taking
hold of an edge and pulling says which one you meant, so resizing stays in
the views, where that gesture lives.
A cut is measured too. Until now the only trace of one on a section
was the metal missing around it. A notch that starts 84 from the end is a
number somebody sets out from. Pushed the other way — into the metal rather
than across it — the number is how far in the cut begins, which is still a
move; a cut that goes all the way through has no start, so that direction
does nothing rather than quietly resizing it.
A bore is left alone along its own axis. There it has no position at
all — it fills whatever metal is there — so a number typed against that
direction moves nothing, rather than moving the wrong thing.
Every hole in a section is measured, including the ones the plane opened
lengthways. They were left out, so a section could be full of holes with
nothing saying where any of them went. They are measured from the edge of
the part they are in, and only across the bore — along it the opening just
fills whatever metal is there, so a dimension to the middle of that would be
measuring the plate and calling it the hole.
A rolled part is measured on the right axis. Which way a bore lay was
read off the part's own coordinates, and a roll turns those against the
drawing's. Every dimension came out on the wrong axis, and the ones that
then shared a coordinate cancelled each other out — four holes reduced to
one number. The question is now put to the placement itself rather than
guessed.
An extension line reaches what it measures. Its near end was clamped
to the edge of the section, so on a part whose holes sit away from that edge
the line stopped in mid-air and the number pointed at nothing. It now runs
from the feature out to the dimension line, with a gap where it leaves the
metal and a little overshoot past the arrow.
A bore the plane opened lengthways now carries a number. It says
16 open (Ø20): the gap you are looking at is 16 across and the
hole you drill is 20. The Ø sits on the number that is a diameter and stays
off the number that is not, so the two cannot be swapped by anyone reading
quickly. On the centre it says Ø20 open rather than repeating
itself — still not a bare Ø, because the shape beside it is a gap and not
a circle.
A hole in a section is measured from its own part. It was measured
from the edge of the section, which is the union of everything the plane
cut — so adding a part somewhere else in the model changed the number
written against a hole that had not moved. A part a cut has split in two
still has one pair of edges to measure from.
A cut is taken out of the section wherever it is square to the axes.
It used to have to cross the whole face, which refused the commonest cut
there is — a notch in one leg of an angle, which crosses the leg and not the
L. The four pieces left round a rectangle are each the face against a convex
window, and clipping to one of those is something this already knew how to
do. Still no clipper, and now only a free polygon is left over — and it
still says so by name.
The section panel carries its overall size. Holding every dimension
back until the panel was maximised meant a panel with no number on it
anywhere, which reads as one that forgot rather than one being tidy. The
overall size and the diameters are always on; the per-part sizes and the
hole positions still wait for the room.
Double-click on nothing lets go of what is picked. A picked cut could
only be dropped by picking something else, so there was no way to simply
stop having one.
A section is dimensioned on screen too. It follows the drawing's own
dimensions switch, like a view does — having turned them off everywhere and
got them anyway in one panel is not a feature. At a quarter of the screen
only the diameters go on, because a set of dimension bands at that size is
a smudge and Ø is the number anyone looks at first. Maximised, it gets the
lot.
What a section measures is decided once. The panel and the paper ask
the same code and draw the same answer in their own coordinates. Two pieces
of code deciding that would have agreed for about a week, and a screen that
disagrees with the sheet it prints is worse than a screen with nothing on
it.
A cut can be dragged. Press its line on any view that shows it and pull:
the section panel redraws as it moves, so you find the plane by looking at
what it gives you rather than by typing a number and checking. It pulls onto
every element's faces and every hole's centre — not just the selection's,
because a plane belongs to no part and goes through all of them — and lands
on a whole millimetre otherwise. The whole drag is one press of Ctrl+Z.
The views say where the cut was taken. Every section on the sheet is
marked on the views that can show it: the chain line, the arrows the way it
is looked at, and the letter at both ends. A sheet with an A–A on it and
nothing saying where A–A is, is a section that is right and unplaceable.
Only the sections that were chosen are marked, because a line pointing at a
panel that is not on the paper points at nothing.
A section can be put on the drawing. The export picks them the same
way it picks views — A–A and B–B sit in the row beside Front, Top and 3D,
and they are all on to begin with. A cut that was worth making is worth
putting on the paper. A plane that passes through no metal is left off and
says so, instead of going quietly absent.
Holes are in the cut, and the two kinds are not confused. A bore the
plane crosses appears as itself, a circle or a slot, with its diameter
written beside it. A bore the plane goes along is opened lengthways, and
what appears is a gap in the metal as wide as the bore is there — a
plane 4 mm off the centre of a Ø20 opens 19.6, not 20. It gets no diameter,
because that number would be right only sometimes. The gap stops where the
metal stops, so a bore through a channel opens two gaps and not one across
the hollow.
Hatching. Anchored to the origin rather than to each face, so two
faces of one part meet without a jog that reads as a joint, and stepped
through four angles by part, which is how you see that a bracket is a
separate piece and not a continuation of the plate.
A cut across the metal is taken out of the section. A cope, a corner
off, a slot the full width — anything that goes clean across is subtracted
exactly. A bite that stops inside the metal is not, and that is said on the
drawing by name: it is drawn whole with a line telling you which part to
check. A section that quietly ignores a cut is one somebody cuts steel
from.
A cut can be picked and removed. Click its line on a view to pick it —
it thickens — then Del, or the right button for a menu that also opens it.
Picking a cut lets go of anything else that was selected, and choosing
anything else lets go of the cut, so Del is never aimed at something you had
stopped thinking about.
Two cuts close together no longer write their letters on top of each
other. Each is stepped a little along its own line.
Sections. Press Section, draw the line with two clicks, and click the
side you are looking from. The cut is kept with the drawing and is marked on
the view it was taken from, lettered, with arrows the way it is looked at.
Making one does not open it: cutting three in a row should not throw you out
of the drawing three times, and making a thing and looking at it are two
decisions.
A cut is shown in the fourth panel, beside the model. Its header holds
a chooser — 3D, A–A, B–B — so nothing takes over the screen and there is no
way back to find, because you never went anywhere. The panel maximises like
any other when a detail needs the room.
What the plane cuts. Square to a part it gives the section that part
was made from, holes in it and all. Along a part it gives a face for every
stretch of metal it passes through — two for a channel with the plane above
its base, and none where it passes through the air inside the shape. That
last one is why this is not a bounding box.
Round one of three. Hatching, holes in the cut, the mark on the
original view, and dimensions come next. The geometry is on its own first so
it can be looked at and believed before anything is drawn on top of it.
Groundwork for sections. A drawing can now hold cutting planes. Nothing
draws one yet — this is the shape of the saved document and nothing else, put
in on its own so it can be checked before the geometry is built on top of it.
A section keeps the letter it was given: delete A–A and B–B stays B–B,
because a drawing already in a workshop says B–B on it.
A file made by a newer version is refused, and says so. It used to be
read anyway and quietly opened without whatever the newer version knew about.
A drawing that is silently incomplete is worse than one that will not open —
somebody cuts steel from it. The number in the file counts document changes
and not releases, so eight releases in a day do not make an older reader
cry wolf.
A hole is only measured to a hole it is alongside. Two holes 2 mm apart
across and 45 apart down were being dimensioned as 2 apart — a true number
about nothing, since they are diagonal neighbours and no one sets out from
that. The same test already kept an edge out unless the hole was across from
it; holes were left out of it on the grounds that a hole is a point, and that
was wrong. A row of holes still reads its spacing, because a row is
alongside itself.
Align moves a hole when you pick a hole. It has always moved parts, so
picking a hole's centre or its wall did nothing that was wanted — the hole
rode along inside a part that was already where it belonged. What was picked
now decides what moves: a line of the part moves the part, a line of a hole
moves the hole.
A snapping guide reaches only as far as it means. It was drawn across
the whole view, which looks exactly like a line of the drawing — and one left
behind by a drag that had ended was then impossible to tell from something
real. It now runs from the holes it is lining up with to where the cursor is,
and no further.
The snapping guides go when the hole is let go. The lines a hole is
being lined up with were only cleared when a drawing tool closed — and
dragging a hole is not a drawing tool, so they stayed on the drawing
afterwards. Nothing tells a guide that has outlived its drag from a real
line, so they built up until the view was unreadable.
A round hole no longer says it is not a slot. Its two slot lengths read
↔0 and ↕0 on every hole for ever, sat next to the diameter and next to any
short dimension nearby, and the three became one smudge. They appear when
there is a slot to measure. A slot is still made by dragging its handle, and
once it exists its length is there to type into.
A short dimension clears the hole, not just the gap. Two holes 2 mm
apart leave the far end of that 2 mm still inside the hole, so a number put
just past it landed on the diameter anyway.
A short dimension is written beside what it measures, not on top of it.
A number goes in the middle of its line, which works until the line is
shorter than the number. Two holes 2 mm out of line — exactly the thing
worth being told — had that 2 written inside the hole it belonged to, on top
of the diameter. It now goes past the end, with the line carried out to meet
it.
Align works on holes. A hole's centre line and both its walls can be
aligned to, and so can a slot: its two long sides, its centre line, and along
itself the centre of each end, the middle, and the outer wall at each end —
which are the places a slot is actually set out from. Seen edge on, a bore
offers its centre as well as its walls. These are read from the model rather
than from the shapes drawn for them, so a slot gives all of its lines and not
just the two that happened to be straight in the path.
An edge-on bore's line runs where the bore runs. It was given the
width of the hole instead of the depth of metal it goes through, so the line
sat 10 mm either side of nothing while the bore went 20 mm down through the
plate. Aligning to it failed exactly where it should have worked.
A drawn section lands on whole millimetres. The solver returned what
the arithmetic gave, and the arithmetic does not care about round numbers:
stretching an angle's upright by 72 left its flange 11.797 thick, which a
drawing writes as 12 — wrong rather than merely awkward. Every free edge is
now rounded and the error that rounding causes is put back into the longest
edge, which keeps the outline closed. On anything folded from plate, where
the edges run along the axes, everything comes out whole. On an outline with
a slanted edge, whole numbers cannot close it at all, so the exact answer is
kept and shown with its decimal — a number with a decimal beats a number
that is not true.
A drawn section is dimensioned once, not twice. Its edges each carry a
length, and its bounding box was still being dimensioned as well — which on
a right angled outline is the same measurement, written in the same place.
Two numbers on top of each other. The box is gone where the edges are shown;
the edges describe the shape and can be typed into, and the box could do
neither.
Holes line up with the holes already there. Every hole throws a line
out along each of its axes, and placing or dragging a hole takes those
lines — any hole in the drawing, not only the ones in the part being worked
on. Holes already on the same line are read as a row, and a row that is
evenly spaced also pulls along itself, to where the next hole in the pattern
would go, including one step past either end. A row that is not evenly
spaced offers no next place, because inventing one would put a hole where
nothing said it should be. The line is drawn while it is catching, with a
ring round each hole it is lining up with — grey for a single hole, green
for a spaced row.
Mirror shows you what it will do before it does it. With an axis armed,
the mirrored parts follow the pointer, drawn faintly, with the plane itself
as a dashed line. They are drawn in every view, not only the one the
pointer is in — the plane is a plane in the world, and the reason to look
from the side is to find out what it does to the front. The preview is built
by the same code that does the real thing, so it cannot be wrong in a way
the result is not. Click to keep it, Esc to leave.
Each view says whether it can place the plane. Mirror needs a
coordinate on its own axis, and a view looking straight down that axis has
none — there is no X to point at in a Z–Y side view. That was true before
and the view simply ignored the click, which read as a broken button. Front
is X–Y, top is X–Z, side is Z–Y, and each panel now says which of the three
it can take.
Mirror. Select parts, pick the axis, then click where the mirror
plane goes — the way a drawing does it, and with the same snapping the
drawing tools use. Only a view that shows that axis can place it, because
you cannot set an X coordinate by clicking a view with no X in it. The
originals stay where they are — a mirrored bracket is a second part, not an
edit to the first. Where the
mirror runs square to a part it is the same as turning it end for end, and
the section is untouched. Where it runs along the part, the section itself
is turned over and a mirrored one is added to the list: a left hand angle
really is a different part from a right hand one, and holes measured from
one end are measured from the other.
One dimension per side, and it is the nearest. A selected part showed
its distance to every neighbour at once. In a frame of a dozen parallel
members that is thirty numbers stacked down the view, several of them
identical because the members are identical, and the drawing stops meaning
anything. What a fabricator reads off a part is how far it sits from the
thing next to it; the thing beyond that is dimensioned from its own
neighbour. Same rule the dimensions from a hole already follow.
Mirror is on the right-click menu too.
The toolbar wraps instead of running off the edge. It was a single
row with no wrapping and no scrolling, so anything added to it past the
width of the window simply could not be seen or pressed.
The page is no longer cached. Assets carry a hash in their name and
are told to be kept forever, which is right — but the rule matched by
address rather than by result, so a request for an asset that had been
replaced came back "not found, keep this answer for a year". The pages
themselves are now marked as changing on every deploy, so they never ask
for a bundle that has gone.
The drawing goes on a sheet of paper. A 4.5 metre assembly used to be
a 4.5 metre drawing, which is how you get thirty pages and a roll of tape.
Export now picks the smallest paper that holds it — A4 up to A0, either way
round — and the largest scale from the ladder a workshop can read off a rule:
1:1, 1:2, 1:5, 1:10 and so on down to 1:200. Never a scale that happens to
fit, because nobody can measure against 1:23.7. The scale is chosen first and
the paper second: asking for the smallest sheet first always lands on A4 and
takes whatever scale is left, which put a 4.5 metre frame at 1:100 with its
box sections a millimetre wide. Filling the page is not the same as being
readable. Name a paper size and the scale drops instead, for when the only
printer in the building takes A4.
Ctrl+A selects every element.
A phone is told what this is, instead of being handed a broken editor.
Four views side by side need width, and snapping and dimensions need a
pointer that hovers, which a finger cannot do. Below 900 points the editor
says so and shows what it makes. Wide enough but no hover — a tablet held on
its own — opens normally with one line saying dragging and dimensions want a
pencil or a trackpad, and that line does not come back once dismissed. A
tablet with a pencil or a trackpad hovers, so it gets nothing in the way.
Opening a saved drawing to look at on a phone is the next step.
A slot is drawn as a slot in the isometric. The line drawing gave every
hole a round opening whatever it was, so a Ø14 slot 50 long came out as a
Ø14 hole — a different part on the same drawing. It now reads as a stadium:
two semicircles with the slot's length between them, every point of it one
radius from the line the drill was dragged along. The shaded drawing and the
3D view were always right; they are built from the kernel, which cuts the
slot properly.
Which way a slot runs comes from the hole itself. The direction is
stored as an index into the hole's two numbers, and those two numbers mean a
different pair of directions for each way a hole can be drilled — so reading
the index as "0 means across" is right in one case out of three. It is taken
from the hole's own two end centres now, the same thing the kernel cuts
from.
One way of drawing a hole, not two. A hole running along the element
had a separate path that drew a circle on the near face and knew nothing
about slots. Every hole goes through the same code now: the near opening
solid, the far one dashed, and the wall between them.
A drawn section can be dimensioned. Until now a shape you sketched was
a list of points with no number to type into. Every edge now carries its own
length in the view that looks straight at the section, and typing one holds
it: the outline is solved again with every held edge kept and every angle
unchanged. A triangle scales as a whole, because with its angles fixed there
is nothing else it can do; a rectangle's width and height move on their own.
A held edge shows a lock, and one click releases it. If two numbers
contradict each other the outline stays as it was and the number turns red.
A sketched rectangle or circle is exact. Dragging one out gives 169.98
× 464.97; if the shape is one we can describe with numbers, it is recognised
on the spot and becomes a real section at 170 × 465, with a width and a
height you can type and lock.
Hole positions are measured in the view, not in the world. The one
dimension that never went through the view's own sign convention was the
position of a hole, so in the top view — the view whose depth runs down the
page — the number came out mirrored and its extension line was drawn to a
point outside the panel. That is the line that ran the height of the sheet
and belonged to nothing. The hole's own Ø label was placed the same way, so
in the top view it landed off the sheet and no diameter was shown at all.
A new drawing opens on a bracket. An angle with four bolt holes and a
rib in the corner, instead of the old frame. It is small, and every part of
it asks the drawing something real.
A hole is drawn as long as the metal it goes through. A hole bored
across the section is drilled through the section's bounding box, but on
an angle or a channel most of that is open air. The two lines of the bore
ran the element's whole depth — across the drawing, over the other views'
projections, and impossible to click past. They now cover only the
stretches that are inside metal.
The line isometric shows every hole. It only knew how to draw a hole
that runs along the element, so a bolt hole across an angle was missing
unless the drawing was shaded. It now reads as a ring where the bore breaks
out of a face and the two lines of its wall in between.
A rib in the corner no longer draws over the part behind it. When a
part's corner sits exactly on another's, the ray that decides what is
hidden passed through a vertex and counted it twice, so the line came out
solid. What is behind is dashed now, as it should be.
Dimensions reach what they measure. Extension lines started at the
edge of the view whatever they measured, so a part in the middle of a
bigger one got a number attached to a stub of line touching nothing.
A hole is dimensioned from what is around it. An open hole already
showed its distance from the four edges of its own part. It now also shows
its distance to the nearest hole or part on each side — including another
hole in the same part, which is the pair most often marked out from.
Every one of those numbers opens for typing: the reference stays put and
the hole moves to the distance you asked for, on the side it was already
on. One reference per direction, four at most, so a plate full of holes
stays readable.
The 3D view keeps up with a section change. Solids are cached so that
moving a part does not rebuild it, but the cache was keyed on the section's
name rather than its shape — and a section keeps its name when you resize
it. The old solid was handed back until the page was reloaded. The key now
reads the outline itself, and sizes nothing points at any more are thrown
away instead of piling up during a drag.
A hole can be dragged from any view. Seen edge-on a hole is drawn
as two thin lines, and those lines were the only thing you could grab —
a click a few pixels off went through to the part behind and dragged the
whole element. The hole itself is now the target, the way it always was
in the view that shows it as a circle. In a view where the hole runs into
the screen the cursor shows the one direction it can move.
The top view is drawn the right way round. Its silhouette was built
straight out of world coordinates while its holes and cuts were mapped
through the view, so the part landed on one side of the axis and its
holes on the other — and the depth dimension read twice the real depth.
Everything in the top view now goes through the same conversion.
Align means the same thing in a view and in 3D. A face picked in
the top view is now reported as a world coordinate, so aligning to it
moves the part to where you clicked instead of to its mirror image.
A hole goes through the face you pick. Right-click a part, choose
Add hole, then click the face — the view you click in decides which way
it is drilled.
Keyboard shortcuts work on a Hebrew layout. They matched the letter
a key produces rather than the key itself, so everything with a letter in
it was dead while Delete kept working.
Dimensions in the DXF are measured by AutoCAD rather than carrying a
number we wrote in — a measurement it made itself cannot disagree with the
geometry.
A cleaner sheet. No build stamp in the corner, and no second copy of
the model sitting beside the views.
Shaded 3D. The isometric can be filled instead of drawn in lines,
worked out from the solid itself — so any shape you can cut, it can shade.
Cuts. Draw a shape on a part and it is taken out: through, or to a
depth. Rectangles stay editable by their numbers; free shapes keep their corners.
Dimensions on the sheet for every part and every cut, and holes
carry their diameter.
DXF that AutoCAD opens, with dimensions as real DIMENSION entities
rather than lines pretending to be some.