Compare commits

..

442 Commits

Author SHA1 Message Date
bherbruck 8e2b0cd60d Release 0.30.1 2026-11-02 11:11:46 -05:00
bherbruck 6cee7a91b9 Release 0.30.1 (#11176)
Bumps the version to 0.30.1 and folds the pending format changes into format 48.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 11:10:02 -05:00
bherbruck 15e7615ce3 PR rules: a PR has to explain itself and show its picture (#11188)
A pull request now starts by saying what it is in plain words, and shows
anything there is to look at in its description. A file in the diff
doesn't count. The new Picture check fails a PR that adds to the showcase
or docs/screenshots without showing a picture. It isn't a required check.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 15:43:22 +00:00
bherbruck 70b2466965 Corner window tests: wait for the size preview before clicking OK or reading the error (#11180)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 14:57:52 +00:00
Vvynot ec1f78c6fa Hole: editing a Single hole replaces the picked face (#10692) (#10797)
The editor reused the new-hole Face input, which is multi, so a second pick
appended and OK silently kept the first. Editing now makes that input single,
so a pick replaces the place.

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-02 14:45:37 +00:00
github-actions[bot] 01b592e0c8 Regenerate generated files and fold pending files [skip ci] 2026-11-02 14:52:32 +00:00
Ray f6e932f61a Rounded Rectangle: corners take parameter expressions, as a 2-point rectangle's do (#10956)
`sketch.rectangle.rounded` read `p0` and `p1` with `req_vec2`, so a corner typed as an
expression (`["W / 2", "H / 2"]`) was refused with "`p0` must be a point [x, y]", although the
2-point rectangle it hands the corners to already places expression corners and keeps them
following their parameters. The corners are now read with `corner_arg`, as the 2-point and
center rectangles read theirs; the worked-out values still check the radius against the sides.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 14:10:17 +00:00
Vvynot 8ab33bb80c Dimension: the value box keeps a 30 px gap from the pointer (#11057) (#11073)
A value typed before its target opened the box 18 px right and 10 px below the
pointer, so its frame covered the geometry a click was about to pick. Near the
viewport's right or bottom edge the clamp then slid the box back over the
pointer, losing the gap where it mattered most. It now keeps a 30 px gap, and at
an edge it opens on the pointer's other side instead of sliding back.

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-02 14:08:54 +00:00
NOWN-DEV e33b8cfb07 Sheet metal convert: trays made in SolidCraft convert back (#7529) (#7580)
Convert to Sheet Metal refused a tray made with SolidCraft's own sheet metal, exported and
imported again: its walls run on past each bend's end (notch, tear and round corner reliefs), so
the edges beside the bend cylinder's edge never reach the other face's plane and the face could
not be trimmed ("a face beside a chamfer picked as a bend does not reach the face across it").
Where that edge is round or runs on along the bend's line, the face now keeps its corner and
steps down square to the other plane, a step the bend's setback takes up again; the inset drops
an edge the setback leaves shorter than the tolerance.

Test: trays_of_its_own_sheet_metal_convert_back (notch, tear and round, the walls made in one
flange feature, and notch and round with the short walls in a second one): the volume, the flat's
size and outline area and every bend's length are the source's.

Fixes #7529.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 14:04:39 +00:00
Dahak Builds 768dc253dd Fix mirror/pattern feature copy dropping bottom slice on hollow parts (#6452) (#7994)
* claim: #6452

* Engine: a pattern or mirror copy of a join keeps its ends as drawn (#6452)

The copy's tool is rebuilt against the current state, which already holds
the source feature's own material; the embedded-join-end trim (#2059)
read that material as the target already filling the copy's bottom band
and trimmed it away before the copy matrix was applied. Mirroring or
patterning a join on a hollow part silently lost the floor-level slice.
Copies now skip the trim: their ends are where the source drew them.

* chore: re-trigger duplicate PR check

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-11-02 14:03:53 +00:00
dudedagger42 1d98b59883 Sketch Break: a length becomes the distance between the old ends; no piece of no length (#6826) (#6834)
Breaking a dimensioned line left the length on the first piece, which the solver stretched
back to the whole length, skewing the line. A cut on (or a hair from) an end, as where a tangent
arc meets a line, made a zero-length piece with its coincident and collinear ties every time
Break was clicked there.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 14:03:42 +00:00
Nathan Dane abea79d8ab Preferences redesign 4/11: General profiles, files and updates (#9876) (#10295)
* Redesign General preferences

* Update Preferences regression fixtures and gallery coverage

* Keep measured Preferences faces out of neutral exclusions

* Keep the profile name entry in Preferences search results

The redesigned Profiles section had no search-visible control, so a query
such as "profiles" dropped the whole section and the name field could not
be reached with a search active. Report the entry row as a hit so the
section stays on the results page, and point the typing-focus regression
test at the redesigned "Profile name" field and "Save as new" button. It
still checks that typed profile names stay out of the search box.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: bherbruck <brennen.herbruck@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:58:23 +00:00
Colin Faulkingham c4808e4715 MCP: clean up empty scratch folders on shutdown (#7836) (#7929)
* claim: #7836

* fix(mcp): remove empty scratch directories on command exit
2026-11-02 13:57:48 +00:00
Homero Thompson 6649cf4cfe Project: a refusal that names no body names the kind alone (#10626) (#10859)
The refusal of sketch.project ended in "face of " with nothing after the
"of" when the reference named no body: a picked face, edge or vertex is
found by its geometry, so the body it belongs to is not in the reference.

LinkSource::describe() now drops the "of <body>" when there is no body to
name and names the kind alone ("face", "edge", "vertex", "spun
profile", "isoparametric curve"). A source that names a body keeps its
name.

Only the text changes: the command refuses exactly what it refused before.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-11-02 13:49:26 +00:00
semmelrinde 9b431fea16 Hole: on a cone or torus face, drill along the face's normal, not a facet's (#10698) (#10885)
A hole placed on the side of a cone with no direction drilled along
the nearest display-mesh triangle's normal, up to 2.6° off the
surface's normal and sideways. Planes, cylinders and spheres already
gave their exact normal; cones and tori now do too, from the surface
the kernel reports for the face.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:48:20 +00:00
Steve Jason f484457c3b Expressions: sign(0) is 0, not 1 (#10996) 2026-11-02 13:47:34 +00:00
Colin Faulkingham 2339510e41 Sketch Trim: keep endpoint tangency on the surviving arc (#10851) (#10853)
* claim: #10851

* Sketch Trim: keep endpoint tangency on the surviving arc (#10851)
2026-11-02 13:47:26 +00:00
austin62jake a9fa61ce77 Viewport: the shader compiles in browsers again, so the web app's 3D view isn't black (#11080) (#11107)
* claim: #11080

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Viewport: the shader compiles in browsers again (#11080)

The ambient occlusion turn added in #9335 mixed `<<` and `|` without
parentheses. naga accepts that, so the desktop app ran, but browsers'
WGSL compiler refuses it: the sc_viewport module was invalid, every
pipeline built from it failed, and the web app drew nothing once a
design was open. The line gets its parentheses, and a test checks every
shader in the repository for the rule.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-11-02 13:46:45 +00:00
semmelrinde ac9d4e8a1d Move to Component: a sketch on a face inside the moved part goes along (#11063) (#11072)
* Move to Component: a sketch on a face inside the moved part goes along (#11063)

A face attachment stores the placement path it was found through. Moving
the placement into another component changes that path, the stored one
no longer starts at the design, and the move was refused as breaking
the sketch. Face attachments of sketches and construction planes, and
an emboss's face, now follow the move as the session's paths already do.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Move to Component: attachments made through any placement of the old parent follow

A parent placed more than once is one definition: a face attachment made
through another placement of it than the one named also ran through the
moved placement and broke. Every stored path through the moved placement
now runs through its new place. A path that would grow past the 64
placements a design keeps is refused instead of saved unreadable.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:46:12 +00:00
Christian Glombek 39163148d9 Sheet metal: an edge flange on part of a stepped outline spans that part (#11034) (#11046)
A flange picked on one segment of a stepped base outline ran the base
face's whole length: trimming the picked edge back to the bend line
merged it with the outline's own edge on that line beyond the step, and
the flange took the merged edge. It now stays off the base's edges that
already lay on the bend line, so it spans the segment picked, with no
relief there: the base is already back at the bend line. The same
outline made by cutting notches into a rectangle gave the right flange
already.

Assisted-by: LLM
2026-11-02 13:45:56 +00:00
semmelrinde 3ca311f922 Sketch: a dog bone's outline outside it meets outside both notches (#10984) (#11000)
* Sketch: a dog bone's outline outside it meets outside both notches (#10984)

Where two tangent arcs touch at a cusp, the copies of the two arcs cross
twice, both crossings as far from the cusp, and rounding chose one: on
one side of a dog bone the outline ran both copies on and drew a loop
into the bone. Such a tie now takes the crossing that cuts both copies
short.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Dog bone test: the outline goes outside, away from the picked bottom line

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:45:56 +00:00
Colin Faulkingham b978eeddcd Sketch: preserve short reference-line directions when dimensioning (#11001) (#11117)
* claim: #11001

* fix(sketch): keep short infinite references aligned
2026-11-02 13:45:36 +00:00
Vvynot 2ccca96929 Rename: a refused inline rename keeps the editor open (#10654) (#10952)
* Rename: a refused inline rename keeps the editor and says why (#10654)

commit_rename dropped the command's Result, so a refusal closed the editor
with no message and left the old name. It now returns the error, shows it in
the status line, and the inline editor stays open.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* Rename: keep the command's status line when the editor stays open (#10654)

The command completion already explains the refusal; do not overwrite it with
the raw engine error.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-02 13:44:34 +00:00
Vvynot 8ac4c03602 Extrude: going back reaches the view it was clicked in from an open sketch (#10571) (#11035)
Extrude started with the sketch still open ends the sketch on its way. With
"If a sketch ends: Return to the previous view", that end starts a camera
animation, and turn_for_extrude read the camera through settled_cam() - the
target of that animation - so the view saved as "before Extrude" was where the
sketch end was already turning, not where the command was clicked. The view is
now taken before the sketch is finished.

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-02 13:44:01 +00:00
bherbruck 063f481ea0 API keys: read the base URL's host the way the HTTP client does (#10953)
The check that lets a key go only over HTTPS or to this computer ended the host part at `/` or
`?`, while the HTTP client also ends it at `#`, so the two could disagree about the host. It now
ends where the client ends it, and over plain HTTP the host part must be exactly this computer's
name with at most a valid port: no user name, backslash or stray character.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:18:51 +00:00
Colin Faulkingham 3c806394b0 Edit Sketch: restore timeline and undo state when finishing (#10691) (#10791)
* claim: #10691

* Fix sketch edit completion history (#10691)
2026-11-02 09:37:38 +00:00
Nathan Dane 3ddd73728b Render workspace: one editor per Browser selection; delete the Render studio panel (#6281) (#8000)
* Dispatch the Render inspector by selection on current editors

* Exercise native CPU capture through the Sampling editor
2026-11-02 09:08:23 +00:00
Dahak Builds ef939b52eb Parameters: one meaning for value in every reply; round reported numbers (#10747) (#10812)
* claim: #10747

* Parameters: value is mm/degrees in every reply; round reported numbers (#10747)

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-11-02 08:26:24 +00:00
momysnow c1612e9234 Move / Copy with Copy on a component copies the component (#9914) (#9930)
* claim: #9914

Co-Authored-By: Claude <noreply@anthropic.com>

* test: Move/Copy copy of a picked component (#9914)

Tests for a component picked in Move/Copy with Create Copy: it is copied as an
independent component placed with the move, the original stays, one undo removes
the copy; a body picked with Create Copy stays a body copy; a component picked
without Create Copy moves its bodies as before.

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: Move/Copy copies a picked component as a component (#9914)

With Create Copy ticked and the component pick mode on (or a Browser component
row), a picked component is copied as an independent component (Paste New,
component.paste_new) and the copy moves by the move's transform (occurrence.move
in the world). Bodies picked still copy as bodies; without Create Copy a component
still moves its bodies. The copy and the bodies are one undo step.

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: solid.move copies of components reply like a move and roll back (#9914)

A copying move with components replies as a solid.move does: the bodies' feature reply,
with the copies listed in occurrences. The bodies are mapped to their frame before any
copy is made. The solid.move help documents occurrences. A copy that fails part way
changes nothing and leaves no undo step.

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: Move/Copy takes a picked component whether or not Create Copy is ticked (#9914)

A component picked in the component pick mode, or a Browser component row, goes into
the Move bodies input as a component, so Create Copy can be ticked after picking it.
Without Create Copy the component still moves its bodies. Not while editing an
existing move. The Browser model tests read the bodies the command would move.

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: Move/Copy preview draws a copied component where the copy lands (#9914)

The fast preview took the component's bodies from the listed occurrences as well as the
bodies, drawn moved by the move, so a component copy previews at the moved place
instead of the scratch design's unplaced states. Test: a component-only copy and a
mixed copy preview where the copy lands.

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: a copying move refuses bodies that are not a list (#9914)

With components, a bodies value that is not a list was ignored; without components it
is refused. It is refused now, before anything is copied.

Co-Authored-By: Claude <noreply@anthropic.com>

* test: an edited move never takes a component pick, through the click (#9914)

Clicks the component in component pick mode while an existing move is edited: the pick
stays a body. Fails when the editing condition is dropped.

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: Move/Copy preview takes components only for a copy, and the mixed test can fail (#9914)

The engine refuses `occurrences` without `copy`, so the preview leaves
such params to the full preview too. The mixed-copy test now gives the
component a taller box, so its height shows the component was drawn.

Co-Authored-By: Claude <noreply@anthropic.com>

* docs: component_pick no longer needs Create Copy ticked (#9914)

Co-Authored-By: Claude <noreply@anthropic.com>

* test: a component picked with its parent is copied once (#9914)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-11-02 07:56:22 +00:00
Yogesh D 544de55baa Localization: Russian "Close draft" reads as a draft analysis (#9284) (#9387)
* claim: #9284

* Localization: Russian "Close draft" reads as a draft analysis (#9284)

The report form's "Close draft" button said «Закрыть анализ уклонов»
(close draft analysis). It closes the report draft: «Закрыть черновик»,
the word the Russian catalog already uses for this draft.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 07:31:59 +00:00
semmelrinde 29a6bbdb43 Hole: say when a hole removes no material, or all of a body (#10701, #10702) (#10836)
* Hole: a hole moved off the material says it removes no material (#10701)

A hole whose position, parameter or sketch point moves it off the part
cut nothing and said nothing: the feature had no warning, and a
parameter sweep listed the value as fine. A hole whose tool is clear of
every body it cuts now warns "the hole removes no material" ("1 of 2
holes remove no material" for several), as a pattern does of its
copies. The check compares boxes only, from the meshes the hole already
found its face on, so a large hole pattern costs no extra booleans.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Hole: a hole wider than the part says it removes all of it (#10702)

A through hole wider than the part removed the whole body with no
message, also when a parameter widened it later. The hole now warns
"the hole removes all of Body1" when a body it cuts is gone after the
cut.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 07:13:00 +00:00
github-actions[bot] a169ad4194 Regenerate generated files and fold pending files [skip ci] 2026-11-02 07:21:59 +00:00
semmelrinde d907078434 Section details card: every row shows, and the numbers read like the pill (#10708) (#10799)
The card's area is as tall as it was the frame before, and the first
frame laid the body out shorter than it ends up, so the scroll area
stayed short and the Hatch row (and Flip, for a tilted plane) was cut
off. The card may now grow to the height it is allowed.

The offset is shown to the design's length decimals and a tilted normal
to three places, as the pill shows them.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 06:53:46 +00:00
kaltenbrunnermarkus 073bbc3f00 Assemblies: a construction axis follows its component when the component rotates (#10127) (#10212)
* claim: #10127

* Assemblies: a construction axis follows its component when the component rotates (#10127)

A construction axis or point built on a body now goes with that body when
Move/Copy moves or turns it. Each construction records the bodies its picks
lie on; the Move feature (not a copy) carries along every construction whose
bodies it all moved, with the same transform in the construction's component
frame. One that also reads something fixed stays where it is.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Markus Kaltenbrunner <kaltenbrunnermarkus@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 06:40:58 +00:00
alfonsotames 9e5e143ac3 Sheet metal: a fold crosses slanted or curved edges of any panel (#10621) (#10922)
sheet.fold refused any fold whose bend zone wasn't a rectangle. It now
crosses the sheet's own outer edges, slanted or on any curve: the outline
is cut exactly across the zone, the panels keep their real outlines, and
flanges and other folds still go on them. The flat pattern's DXF keeps the
curve as drawn. A sharp corner in the zone stays refused.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 05:24:50 +00:00
Tarek 0dd8d9e5ec Add a dialog for Create Components from Bodies (#10919) 2026-11-02 05:23:00 +00:00
bherbruck 9fdf153054 Agent chat: only the chat's own tools skip the panel's question (#10955)
A permission question counted as one of SolidCraft's own tools when its title merely contained
"solidcraft". Now the whole title must be a tool of the chat's own MCP server, named as
`mcp__solidcraft-app__<tool>`, and its kind must be `other` or not given. Anything else goes through
the user's mode and remembered answers, or is asked in the panel.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 05:15:42 +00:00
Dahak Builds 5336007c2b Section Analysis: view.pick skips edges and vertices in the removed half (#10704) (#10712)
* claim: #10704

* Section Analysis: view.pick skips edges and vertices in the removed half

near_edges now applies the same section `kept` predicate the mouse picker
uses (viewport::pick, since #6722), so an agent picking through view.pick /
ui.pick no longer gets edges and corners the user cannot see.

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-11-02 04:38:22 +00:00
bherbruck 21fc384e40 Control channel: a new connection has five seconds to show its token (#10961)
A client could connect and send nothing, or only blank lines, and hold one of the 16 connection
seats for as long as it liked. All reads before the token now share one five-second deadline; the
connection is then closed without a reply. An authenticated connection may idle as before.

`solidcraft-cli mcp --connect` used to open a connection at start and hold it until the first tool
call. It now only checks that the app is there, and the first call connects.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 04:23:23 +00:00
bherbruck 5d6a80ff35 Control token file: no file in a custom folder when icacls times out (#10958)
On Windows the token file is restricted with `icacls`, which may not finish in time (#6145). That
counted as success everywhere, and is safe in the default folder, the user's own local app data.
A folder picked with SOLIDCRAFT_CONTROL_DIR may be readable by others, so there a timeout now
removes the still empty file and returns an error. The default folder behaves as before. The
decision is a small function of its own, tested without running icacls.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 04:08:13 +00:00
bherbruck 9636188a0f Lock files: never written or read through a link (#10951)
A design's lock file went through the same writer as the design, which follows a symbolic link
so a linked design is saved where it lives. The lock now has a writer of its own that refuses
anything at its path but a regular file and replaces only that name. Reading a lock takes only a
regular file and no more than a lock's size. Saving a design through a link works as before.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 03:53:28 +00:00
github-actions[bot] ec39a8ebb4 Regenerate generated files and fold pending files [skip ci] 2026-11-02 06:12:24 +00:00
semmelrinde 450cc8b389 Russian: translate the 20 messages main gained after batch 7, construction lines included (batch 8) (#9445)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 03:32:48 +00:00
bherbruck 3c12c36bef Security policy: say what counts as a security issue and what's a normal bug (#10946)
Also points the links at tangency-labs/solidcraft. The old list asked for reports of file access outside the allowed folders, and for crashes.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 03:29:43 +00:00
MarkusRe 6e67ae34b0 Agent chat: keep transcript shortcuts out of CAD (#10576)
Selectable transcript labels do not request TextEdit focus, so the global
clipboard handler also copied, cut and pasted selected CAD geometry while
the user worked with chat text.

Keep keyboard ownership with the visible chat after a pointer press until
the next press outside it. Release it when the panel is hidden, and do not
use selections from other native viewports as a global CAD shortcut guard.

Cover real label selection, clipboard events, fallback key events, quick
select-all, hidden panels and deliberate return to the CAD viewport.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 03:24:30 +00:00
bherbruck afd81380ab Release 0.30.0 2026-11-01 21:55:18 -05:00
bherbruck 3125a79827 Release 0.30.0 (#10894)
Bump the workspace to 0.30.0 and fold the pending design format changes into format 47.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 21:55:11 -05:00
SilentWolf75 1cbebe21bf Edit Hole: seed the face where the hole is now (#10689) (#10860)
* claim: #10689

Co-authored-by: Cursor <cursoragent@cursor.com>

* Edit Hole: seed the face where the hole is now (#10689)

Project the stored position onto the drilled face along the hole direction when opening the editor, matching evaluation, so OK works after a parameter moves the face.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-11-02 02:39:25 +00:00
github-actions[bot] 25a19cdefe Regenerate generated files and fold pending files [skip ci] 2026-11-02 05:40:52 +00:00
kaltenbrunnermarkus 12ebc80e15 Cosmetic tap markings: look for their cylinder only in nearby bodies (#10303)
* Holes and cuts: count the bodies a cut works on in the cost tests

A test helper, cut_work, adds a feature at the end of a design and reports
how many bodies its cut ran booleans on and which bodies it left exactly
as they were (same geometry, key and face names). A new test pins that a
cut still goes through the boolean where its tool touches a face, runs
along an edge, passes a hair beside a body or drills into a dome.

The sheet metal hole (#10226) and cosmetic thread (#10227) work reuse the
helper for their own shortcuts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Holes and cuts: leave bodies the tool cannot reach untouched without a full cut

A cut ran a whole boolean against every body of its component, and for a
body its tool does not reach that boolean only handed the body back: about
7 ms per body, so a hole in a design of 200 blocks took 1.3 s. Now a body
whose box lies clear of every tool's box is left as it is. Both boxes are
their meshes' grown past how far the exact faces can curve out from them,
the same test sheet metal cuts already use, so a tool that touches a body,
grazes it or drills into a dome still goes through the boolean. Bodies
shown in another frame, mesh bodies and Intersect (which removes the
bodies it misses) are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Cosmetic tap markings: look for their cylinder only in nearby bodies

A tap marking (a Thread feature, or the marking of a tapped hole) looked
for the cylinder at its point in every body of the design, and each
search meshes the body afresh: with many bodies and many markings that
grew quadratically (200 markings on 200 cylinders: 33 s of a 33 s run).
A body is now passed over when its box, from the mesh it keeps and
grown past that mesh's deflection, lies farther from the point than the
search itself would look (a twentieth of the body's size, plus its own
mesh's deflection). The search finds no face there, so the marking and
everything else stay the same.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 02:15:18 +00:00
dudedagger42 b470d46ffc Sketch: rebuilding a projection keeps the sketch's own curves on its points (#5388) (#5537)
* claim: #5388

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Sketch: rebuilding a projection keeps the sketch's own curves on its points (#5388)

When a projected face changed shape, update_link rebuilt the link with
drop_link_entities, whose remove_points also deleted every curve using a
projected point: a circle the user drew on a projected hole's centre vanished,
and the extrude on it lost its profile. Before the projected points go, the
sketch's own curves on them move to a free point at the same place.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 02:09:59 +00:00
Vvynot 6e98bd474e Grid: a selected plane previews before Create Sketch (#10804) (#10900)
Selecting a plane in the view now draws the grid on it, so the plane a
sketch would use shows before the button is clicked. Deselecting returns
the grid to the ground.

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-02 02:09:30 +00:00
Colin Faulkingham ad23882080 Assistant: recover when an agent ignores Stop (#10800) (#10916)
* claim: #10800

* fix: recover when ACP agents ignore Stop
2026-11-02 02:09:27 +00:00
ABDULLAH 63fb818f33 Arabic: profile label in the dialog selection list matches the curve and constraint labels (#10927) 2026-11-02 02:09:25 +00:00
dudedagger42 96509412e9 Extrude: a Cut To the far side of a curved wall takes the wall (#8634)
A Cut To Object on a curved face ran the tool through the target and kept
the tool less the body, the piece at the start. From outside a curved wall
to its inside face that piece is the air before the wall: the cut took
nothing, or the tool lay in the curved face and the boolean failed on the
coincident faces.

Where the target's material ends at the picked face under the whole
profile (rays over the profile cross it once, material before, none
after), the tool now ends flat halfway across the gap beyond the face. It
takes what lies before the face and meets no face of the body. Otherwise
the trim is as before.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 02:01:42 +00:00
froglemonade2 f2ffd8d233 Save As: refuse a name that opens as another kind of file (#9745) (#9752)
* Save As: refuse a name that opens as another kind of file (#9745)

file.save and file.save_as wrote a design container under any name, so a
design saved as part.step was refused when opened again and part.stl opened
as a broken mesh. A name doc.open reads as a STEP/CAD exchange file, a mesh,
a 2D drawing, a point cloud or a SolidCraft drawing is now refused, pointing
to .sc and, for export formats, to file.export. Names that open again as the
design (.sc, legacy extensions, .json, anything else) save as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Save As: check the folder scope before the design name (#9745)

A path outside an agent's folders is refused for that first, whatever its
extension, as before; the design-name check runs after it in `write`. Fixes
solidcraft-mcp tests::tool_calls_stay_inside_the_agents_folders, which saves
`x.step` outside the agent's folders and expects the scope refusal.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 01:51:19 +00:00
SilentWolf75 2b08e0c6a7 AppImage: refresh the icon cache so the taskbar shows the mark (#10673) (#10858)
* claim: #10673

Co-authored-by: Cursor <cursoragent@cursor.com>

* AppImage: point the taskbar at the installed icon PNG (#10673)

Install hicolor icons before writing the desktop entry, refresh the icon cache, and set Icon= to the absolute 256×256 path so Cinnamon and similar panels show the mark instead of a thin strip.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-11-02 01:50:44 +00:00
kaltenbrunnermarkus 1885fa739b Assemblies: a second planar joint can be added (#10331) (#10371)
* claim: 10331

* Assemblies: a second planar joint turns its part a half turn to meet (#10331)

A second planar joint between two boards that mates faces pointing the
same way needs the board turned a half turn on the first joint. The loop
solve starts exactly turned away, finds no way round, and left the new
joint as a conflict; Move then said the part has no movable joint axis.

A new loop-closing joint now tries its own angle, each angle on the
joint path between its two parts, or one of each, a half turn round, as
the first joint of a chain moves its part into place, and keeps the
first that closes the loop without a new conflict. Faces that can never
meet stay a conflict and nothing moves.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Move test: give the blocked part faces that can never meet (#10331)

The blocked-Move test from #10509 used two boards whose second planar
joint mates two faces pointing the same way. That joint now closes its
loop with the board turned a half turn, so the scenario no longer
conflicts. Mate the yellow front against the red top instead, which no
turn on the first joint can bring together.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Markus Kaltenbrunner <kaltenbrunnermarkus@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 01:29:29 +00:00
github-actions[bot] cacfbbc578 Regenerate generated files and fold pending files [skip ci] 2026-11-02 05:03:27 +00:00
Joberndo 2ae13ba9cf Feature editor: Undo, Redo and the History bar wait while an editor is open (#10688) (#10786)
* claim: #10688

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Feature editor: Undo, Redo and the History bar cancel an open editor first (#10688)

Undo, Redo and History steps changed the design under an open feature
editor, whose OK and Cancel then refused it. They now cancel the editor
first, putting its marker back, as starting another tool already does.
While an editor is still opening they wait for it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 00:36:34 +00:00
raykholo e91f5d73bd Joints: a typed joint that closes a loop starts where its parts are (#6061) (#10336)
A relation given no values already started from where its parts sit
(relation_values), so the part moves no further than it must. A typed joint
(planar, revolute, cylindrical ...) added between parts another joint
already relates started its values at 0 instead, so the loop solver began
far from the current placement and could report a conflict for a joint that
agrees with how the parts are placed.

Seed every loop-closing joint, typed or relation, from the current
placement when no values are given. Joints in an open chain and joints with
explicit values keep their initial values as before.
2026-11-02 00:24:33 +00:00
github-actions[bot] da501178aa Regenerate generated files and fold pending files [skip ci] 2026-11-02 04:35:57 +00:00
Daniel Katz 3231f049d0 Insert Part: ASME/ANSI inch hex cap screws, hex nuts and SAE/USS washers (#10316) (#10335)
* claim: #10316

* Insert Part: ASME/ANSI inch hex cap screws, hex nuts and SAE/USS washers (#10316)

Part of #10316. New standard-part families, tabled in inches as the
standards give them and built in millimetres: hex cap screw (ASME
B18.2.1) and hex nut (ASME B18.2.2), 1/4 to 1 in UNC and UNF from the
thread catalogue, and plain washers SAE and USS (ANSI B18.22.1 Type A).
Cap screws take the standard inch lengths, 1/2 to 8 in, defaulting to
the first at or above 2.5 d.

Lengths read as fractional inches in Insert Part, Change Part Size, part
names and part numbers. Insert Part gains a Unit system list (Metric,
Inch) above Type; it opens on Metric. parts.library reports each
family's system.

Inch parts get no cosmetic thread: solid.thread takes only metric
designations (#9571), and the old path would have made a wrong metric
mark. 9/16 waits for the thread catalogue; split lock washers and
carriage bolts follow in later PRs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 00:21:21 +00:00
semmelrinde a22ea76ab6 Feature editor: a section, an analysis or the selection changed while it is open leaves OK and Cancel working (#10687) (#10822)
The editor accepts revision changes that only changed what is shown,
counted by the display revision, but only hiding and showing counted
there. Section Analysis, the surface analyses, continuity, the
selection, the status pill catching up and view.render_select bumped
the revision alone, so turning a section off with an editor open made
OK refuse ("the design changed while the feature editor was open") and
Cancel leave the timeline rolled back. They now go through
refresh_display, as visibility changes do.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 00:18:00 +00:00
austin62jake a735620aa8 Circular pattern: the axis origin takes length expressions and follows them (#10852) (#10855)
* claim: #10852

* Circular pattern: the axis origin takes length expressions and follows them (#10852)

solid.pattern.circular with axis {origin, dir} kept its origin as plain
numbers, so a pattern about a parameter-driven point stayed where the
point was when the pattern was made: the seed moved with the parameter
and the copies did not. Expressions were refused (#248).

The pattern's origin is now a point of expressions, as a Mirror plane's
origin is: numbers or length expressions, evaluated on each rebuild, and
renamed with their parameters. Plain numbers are saved as numbers, as
before. timeline.edit sets pattern.origin as expressions, and editing the
pattern in its dialog keeps them. One pending format change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-11-02 00:17:15 +00:00
rugbymauri 059119b345 solid.move: an inserted part moves in world space beside another body (#9660) (#9683)
* claim: #9660

Signed-off-by: Maurizio Monticelli <maurizio@whatwedo.ch>

* Move bodies of differently turned components in the world together (#9660)

A Move feature moves each of its bodies in the body's own frame by one
vector and one turn. `solid.move` mapped the world vector and axis into
the frame of the first body listed only, so a body in a frame turned
otherwise (a part inserted with a non-default direction, moved together
with a block of the root) moved along its own axes.

When the bodies listed lie in frames that turn differently (or, for a
turn, also sit in different places), the move is now split into one
Move feature per frame, each with the vector and axis mapped into that
frame, in one undo step. Bodies sharing a frame still make one feature.

Fixes #9660

Signed-off-by: Maurizio Monticelli <maurizio@whatwedo.ch>

---------

Signed-off-by: Maurizio Monticelli <maurizio@whatwedo.ch>
2026-11-02 00:16:56 +00:00
jeromehzl e016c40f43 Sketch Intersect: picked faces meet as their whole surface, not the span under the pick (#9009) (#9107)
A surface extruded from a fit-point spline is one B-rep face per span,
joined by hidden seams; the viewport picks and highlights it as one face
(Mesh::surface_patch). sketch.intersection_curve turned a face pick into
the single nearest face, so the curve stopped at that span's ends.

project3d::mesh_of now returns the picked face's surface patch and
mesh_intersection keeps the triangles of every face in it. Body sources
and Project to Surface are unchanged.
2026-11-02 00:16:06 +00:00
austin62jake 1fb9dadcd9 Language: a Traditional Chinese system opens in Traditional Chinese, macOS's zh-Hant-TW included (#10306) (#10307)
* claim: #10306

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019FAWPuFoh9qxn2uS2j53QZ

* Language: a Chinese system tag goes by its script, then its region (#10306)

macOS lists its languages with a script (zh-Hant-TW), which no catalog
matches exactly, so the base zh (Simplified) was picked for a Traditional
Chinese system. Hong Kong and Macao tags got Simplified the same way.

A Chinese tag now picks zh-TW for the Hant script, zh for Hans, and
without a script zh-TW for the TW, HK and MO regions, zh otherwise.
Other languages keep the exact tag, then the base language.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-11-02 00:15:53 +00:00
github-actions[bot] 91a19548d3 Regenerate generated files and fold pending files [skip ci] 2026-11-02 03:47:23 +00:00
kaltenbrunnermarkus a277839236 Section Analysis: tilting the plane rebuilds the outline index once, not on every drag frame (#10373)
* claim: sectiontilt

* Section Analysis: tilting the plane no longer rebuilds the outline index every frame (#10373)

The section outline cut through an index of slabs along one normal, rebuilt
whenever the normal changed: tilting a Section Analysis rebuilt it every
drag frame (about 0.15 s on a 2.5 million triangle part). The index is now a
grid of cells holding each triangle by where its box sits, with the box
around each cell's triangles, so it serves every normal. It finds the same
segments, in the same order and to the bit, as cutting every triangle.

The viewport keeps one index per shown body mesh, no longer per normal.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Markus Kaltenbrunner <kaltenbrunnermarkus@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 00:15:29 +00:00
cronos b5d931ff4c Preserve offset distances when trimming their source line (#10391) 2026-11-02 00:15:27 +00:00
Christian Glombek d7a17de3d9 Sheet metal: a perforation field bounded by a sketch's outline (#732) (#10754)
`sheet.perforate` takes an optional `sketch` (and `profiles`): the field's
outline. Holes go only inside its closed profiles, out of their inner loops,
`margin` clear of its edges, on a grid from the outline's lower-left corner.
On a folded sheet the outline maps through each panel the sketch lies on and
is clipped to it, so it never reaches a flange in the flat; a sketch on no
face of the sheet is refused. A mirrored copy mirrors the outline, and an
edit that names no sketch (the Perforate dialog has no outline) keeps it.
Without a sketch the field covers the whole sheet as before.

The feature saves `sketch` and `profiles`, a sheet's perforation its outline
in flat coordinates: one pending format note, no migration.

Assisted-by: LLM
2026-11-02 00:14:41 +00:00
leValdemar19 a33619fd2b Tangent Plane: line it up with a reference plane, at an angle (#8822) (#9002)
* claim: #8822

* Tangent Plane: line it up with a reference plane, at an angle (#8822)

`construct.plane.tangent` takes an optional `reference` (a plane or planar
face) and `angle`. On a cylinder, cone or torus the plane touches where the
face turns towards the reference, turned by the angle about the face's axis,
on the side of the pick; on a sphere it is parallel to the reference. The
plane follows the reference when it moves. The Tangent Plane dialog gets a
Reference plane input and, once one is picked, an Angle field; editing the
plane brings both back. Saved as a pending format change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 00:13:22 +00:00
austin62jake e4e3c8609c OBJ export: welded as STL and 3MF are, so a curved body opens again closed (#9074) (#9213)
* claim: #9074

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* OBJ export: welded as STL and 3MF are, so a curved body opens again closed (#9074)

The OBJ writer joined vertices only when their coordinates were equal bit
for bit, but each face of a curved body writes its edge points again a few
ulps apart, so neighbouring faces shared no vertices and the file reopened
as an open mesh with no volume.

It now welds each body as the STL and 3MF exports do (threemf::weld_tagged,
with the same tolerance), and every corner keeps its normal: the normal of
the original corner it came from, or for a point a side was split at, the
normal interpolated across the triangle.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-11-02 00:13:06 +00:00
CamWight 325917f2ae Ambient occlusion: no artifacts on the preview or on hollow bodies (#9327) (#9335)
* Ambient occlusion: the radius follows what the frame draws (#9327)

In an empty design the radius came from the model's box, which is empty, so a
preview got the smallest radius and the depth map's precision showed as specks.
It now comes from the box the depth range uses, and with nothing to draw there
is no occlusion.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Ambient occlusion: the term drawn once and blurred by depth (#9327)

The lit pass worked the term out for every fragment it shaded, under a pattern
that changed from pixel to pixel, which read as grain. The term now has its own
texture, drawn once for each pixel of the prepass, with a fixed 4 x 4 pattern, and
a 4 x 4 blur that keeps to each pixel's plane takes the pattern out without
crossing an edge. The lit pass reads the result. The prepass and the term share
their pipelines and draw walk.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 00:12:57 +00:00
austin62jake 5ad2503503 Timeline folders: editing a feature in a folder leaves no stale id, and such designs open again (#9373) (#9393)
* claim: #9373

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Timeline folders: editing a feature in a folder leaves no stale id, and such designs open again (#9373)

timeline.redefine runs the edited feature's command on a scratch copy with the marker just after
the feature, and takes the new definition from the feature that run makes. Inside a timeline
folder that trial feature joined the folder too; it was removed from the feature list but not
from the folder, and its id, handed back, was the next feature's. Each edit left that id in the
folder (the same one, edit after edit), naming no feature or, once a later feature took it, a
feature twice, and the reader then refused the design: "damaged design: invalid feature in a
timeline folder". The trial feature now leaves the folders as it leaves the feature list.

The reader drops a folder entry naming a feature or joint the design doesn't have, or one a
folder already holds, and opens the design: folders only group the timeline, so nothing else is
lost. A folder damaged in itself is still refused.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-11-02 00:12:50 +00:00
PapaEcho f43198988d fix(ui): keep profile-name typing out of Preferences search (#9505) (#9568)
Report focused keyboard ownership from the shared text editor, matching the other Preferences fields. Regress real Name-field typing, focus retention, unchanged search text, and saving the resulting profile.
2026-11-02 00:12:36 +00:00
Sebastian Höpfl 6f73bd95c4 Assemblies: dragging a part with mirrored copies no longer meshes them on every frame (#10101)
A mirror of placed bodies follows its source, so each frame of a drag evaluated
it and made new copies with empty mesh cells. A reflection can't share its
source's triangles, so every copy was tessellated from nothing, and so was
anything an evaluated feature after the mirror made.

Keep the first copy of a body with its source: each later copy is a proper rigid
move of it, so a world state draws them from one set of triangles. The model
keeps each copy's own lazy mesh. A feature evaluated again that gives the same
solids (an import) keeps its meshes.

A mirror of placed bodies no longer searches its copies' revolved faces when no
later feature can build on bodies. That depends on the design alone and is part
of the mirror's placement digest.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 00:11:45 +00:00
CamWight 9d7544929e Tests: the same language on every PC (#10297) (#10298)
Since #10183 the app follows the system's language, and the tests followed it too, so a test
naming an English word failed on a PC set to another language. CI's runners read as English
and never saw it. In tests the system's language is now English: `cfg!(test)` for this crate's
own tests, as the engine's folders do, and the harness for the tests outside it. The preference
stays `system`, and the app is unchanged.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 00:11:16 +00:00
kaltenbrunnermarkus eb0cecee31 Web app: the offline check with the real app finishes its download (#10368) (#10370)
* claim: 10368

* Web offline test: each copy of a real build gets a file of its own (#10368)

With --site, the six builds were copies of one real build that differed
only in index.html. The overlapping-downloads step holds back the files
the next build lacks, so nothing of v5 was held: its download finished
before v6 launched, v6's worker then retired and deleted it (correctly,
no page used it), and the step waited 240 s to see it complete.

Successive deployments differ in more file names than that (Trunk names
files after their contents). Each copy now gets own-<build>.txt, like
the stand-in's build-named script, so v5's own file is held as the step
intends.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Markus Kaltenbrunner <kaltenbrunnermarkus@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 00:10:42 +00:00
semmelrinde 27951f40c3 Parameters: the Filter box also reads expressions (#9706) (#10385)
Typing a parameter's name now lists every parameter whose expression
uses it, and a value finds the parameter that holds it. The filter
still reads names, comments and groups, and a text parameter's text.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 00:10:09 +00:00
Homero Thompson 9e3cf05c4f fix(sketch): a line of another sketch projects from the Project dialog (#10390)
A straight line of another sketch, picked into the Project dialog, came
in as a named sketch curve, which the projection preselection did not
know: it refused with "select geometry or bodies that can be projected"
although the OK button was live. The same reference the external pick
stands for is now made for it, so the line projects (#10291).

Co-authored-by: vdirienzo <vdirienzo@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-11-02 00:10:01 +00:00
Homero Thompson 6459c9fcf0 A context error is not something to report (#10181) (#10594)
* wip: the diagnosis of #10181 (the bug reproduces on current main)

sketch.project has .enabled(in_sketch) (crates/engine/src/cmd/sketch_project.rs:24)
and in_sketch (crates/engine/src/cmd/mod.rs:285) answers 'no sketch is being edited'.
Pressing P outside a sketch goes keymap::press -> sketch_tool_for
(crates/ui-egui/src/keymap.rs:451-457) -> app.start("sketch.create") with
d.then_start = Some("sketch.project"): the sketch IS created, but the Project
dialog opens and the command is refused, so the dialog shows the red row and the
'Create Issue...' button, which opens the Report a bug form over the viewport.

The probe here reproduces the bug on the CURRENT main (two variants). It is a
diagnostic probe, not the regression test: it must be replaced before a PR.

* test: a context error offers no Create Issue button (#10181)

The Project panel showed the red row for a CONTEXT error ('sketch.project is not
available right now: no sketch is being edited') and offered the 'Create Issue...'
button, which opens the Report a bug form over the viewport. A context error is
not something to report, so the panel must not offer it.

RED: the test fails with the exact message of the issue.

* fix: a context error is not something to report (#10181)

The Project panel offered "Create Issue..." for the error the engine
raises when the command is not available in the current context
("`sketch.project` is not available right now: no sketch is being
edited (Create Sketch or Edit Sketch first)"). That refusal is guidance
about the context, not a failure of the design, so there is nothing to
report: ending the sketch under an open Project panel should not invite
the user to file a bug.

error_rows already spared the missing-pick errors ("select ...", "pick
...") the same way. It now spares the context refusals too, using the
engine's own kind rather than the message text: CommandSpec gains
disabled_refusal, which is the engine's own Disabled refusal for the
command in the current session, and the UI matches the dialog's error
against it. A real failure of the command (an invalid face, say) still
shows the red row with "Create Issue...".

* style: rustfmt the test of #10181

The formatter joins the two asserts of the test onto one line (the
repository sets max_width = 150 and use_small_heuristics = Max). The
tokens of the file are unchanged: the diff is the line breaks of the
asserts and nothing else.
2026-11-02 00:09:40 +00:00
austin62jake 5e7f3651fb Angle fields: a decimal point typed into an angle stays (#10582) (#10631)
* Angle fields: a decimal point typed into an angle stays (#10582)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Angle fields: a decimal point typed into an angle stays (#10582)

Edit Canvas applies its Angle box at each keystroke and keeps the angle
in radians, so the box gets back a hair off the value it set; egui's
DragValue takes that for a change made elsewhere and rewrites the text
being typed, dropping a decimal point just typed (-3.7 became -37).
angle_field now hands the DragValue the value it set while the value it
is given is within 1e-9 of it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-11-02 00:09:32 +00:00
Colin Faulkingham da586bc048 Fix viewport Unisolate after isolating a component (#9894) (#10635)
* claim: #9894

* Fix viewport recovery after component isolation
2026-11-02 00:09:23 +00:00
austin62jake 062a7b8288 Tangent Arc: a first click off a curve's end is refused at once, saying where to click (#10653) (#10655)
* Tangent Arc: a first click off a curve's end is refused at once, saying where to click (#10653)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Tangent Arc: a first click off a curve's end is refused at once, saying where to click (#10653)

The Tangent Arc tool took any first click as its start; a click on a
line between its ends snaps to a place that is no point yet (on:l3:...,
mid:l1), and the second click then failed with "unknown sketch point"
naming that internal reference.

The tool now refuses such a first click at once, with its own hint as
the error, asking the command's rule (tangent_arc_starts_at, factored
out of arc_tangent: the picked point or one at the same place, and a
drawn curve leaving it). The command refuses a snapped start with its
existing message that start must be the end point of a line or arc.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-11-02 00:09:17 +00:00
Colin Faulkingham 5bbfa5ea6c Sketch: preserve source geometry when deleting a pattern (#10651) (#10661)
* claim: #10651

* fix(sketch): preserve source geometry when deleting patterns
2026-11-02 00:09:10 +00:00
austin62jake 75c46dad7b Tests: the autosave scenario crashes once its autosave has landed (#10690) (#10694)
* Tests: the autosave scenario crashes once its autosave has landed (#10690)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Tests: the autosave scenario crashes once its autosave has landed (#10690)

s25_autosave_recovery 'crashed' right after the extrude; under load the
autosave of it, written on a worker thread, had not landed, so the next
launch recovered the earlier autosave without the body (step 16).

The harness's crash restart now runs frames, bounded, until the active
autosave has caught up (Autosaver::caught_up: no write running and the
last autosave holds the design as it is). The app's own ticks still do
the writing, so an autosave that stopped writing still fails the test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-11-02 00:09:03 +00:00
github-actions[bot] af54b09bb1 Regenerate generated files and fold pending files [skip ci] 2026-11-02 01:51:55 +00:00
github-actions[bot] dcbca523a0 Regenerate generated files and fold pending files [skip ci] 2026-11-02 01:42:49 +00:00
froglemonade2 e9b08f4af4 Control channel: report the dialog as data, the open tool windows, and what ui.start opened (#9087) (#10740)
* claim: #9087

* Control channel: report the dialog as data, the open windows, and what ui.start opened (#9087)

`ui.inspect.dialog` (and `ui.editFeature`'s reply) was the dialog's Rust Debug text, which
changed with every refactor and couldn't be parsed. It is now an object: the dialog's command,
title, the feature an edit rebuilds, its selection inputs, its error, and the commands OK runs
(or what it waits for). `hover` in `ui.inspect` and `ui.selection` is a selection-like item
instead of Debug text.

`ui.inspect` gains `windows`: the tool windows open beside the model (Parameters, Bill of
Materials, Design Properties, Sketch Report, material card review) by the command that opens
each, and the Help menu's (About, Updates, Shortcuts, Crash Reports, Report, Messages) by their
`ui.help` item. Before, an agent couldn't tell these windows were open.

`ui.start` and `ui.editFeature` reply with what they opened (tool, dialog, windows), the status
line, and `pending` when the start waits for the history and opens on a later frame.

Scenario `dialog` checks match words of the dialog's state from the app directly, so the
scenario files are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 00:08:48 +00:00
Dahak Builds 6a7275a5af Agent chat: copy an entire sent prompt or assistant message (#10675) (#10741)
* claim: #10675

* agent chat: Copy message on each sent prompt and assistant text block (#10675)

A visible Copy message button on each copyable transcript message and a
right-click menu with the same action. Assistant replies copy their
original Markdown, prompts copy the text as entered; picture-only prompts
and thoughts get no action. Hover-only message areas keep partial text
selection working.

* agent chat: complete Copy message locales and tests (#10675)

* agent chat: route the message copy menu through ui_kit::Container (ui-containers gate)

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-11-02 00:08:41 +00:00
PapaEcho 666356dba0 Assistant: configurable show/hide shortcut (#10764) (#10767)
* claim: #10764

* Assistant: make show/hide shortcut configurable (#10764)
2026-11-02 00:08:23 +00:00
austin62jake 3fe2b3386f Sketch: Remove Spline Point takes one point out of a spline (#10783) (#10793)
* Sketch: Remove Spline Point takes one fit point out of a spline (#10783)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Sketch: Remove Spline Point takes one point out of a spline (#10783)

sketch.spline.remove_point takes one fit or control point out of a
spline. The spline keeps its id and runs through its other points, which
stay where they are. The point goes with the constraints on it, unless
another curve uses it. A closed spline's closing point, an end joined to
other geometry, the last 2 points (3 when closed), and projected, offset
or patterned splines are refused with a message.

The right-click menu of a spline point, picked alone, offers it beside
Reverse Spline Direction.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-11-02 00:08:11 +00:00
Colin Faulkingham afe06a1a3d Edit Joint: show components for point and frame origins (#7749) (#10838)
* claim: #7749

* fix(ui): show components for point and frame joint origins
2026-11-02 00:07:29 +00:00
Colin Faulkingham eaf34d2528 Construction planes: refuse duplicate feature names (#10707) (#10743)
* claim: #10707

* Fix construction plane name collisions (#10707)
2026-11-02 00:06:59 +00:00
Dahak Builds 2b9261050f Sketch: stop tying expression-placed points to the origin with an automatic Coincident (#10703) (#10722)
* claim: #10703

* Sketch: do not tie expression-placed points to the origin with an automatic Coincident

A point whose coordinates are parameter expressions follows those
expressions. When they came to 0 at draw time the point landed on the
origin and connect_points tied it there with a Coincident, exactly like
a snapped click; the next parameter change then conflicted with the tie.
connect_points now skips points that carry exprs; plain-number points
keep the snap.

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-11-02 00:06:51 +00:00
semmelrinde eac1425661 Hole: a face name shared by two bodies is no split face (#10699) (#10872)
* Face names: one name on two bodies is no split face (#10699)

A hole placed on the top of one of two bodies an extrude made, or on a
piece of a split body, warned "face `F2:top` was split; using the piece
nearest the picked point": the face name is on both bodies, and any
name found more than once counted as split. A name on several bodies,
one face on each, now finds the face the point lies on without the
note; pieces on one body, or a point on none of them, still say split.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Hole: look for a face name shared by two bodies on the body the point is on (#10699)

The lookup over every body counts a name on several bodies as split on
purpose (a copy's face is not a piece of the source's, see
`the_same_face_on_a_copy_is_not_a_piece_of_the_named_bodys_face`), so
the first change, which made it unique there, is undone. A hole whose
face name is found split while its point lies on one of those faces now
looks again on that body alone: one face of the name there is the face,
whole; pieces on that body still say split.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 00:06:43 +00:00
github-actions[bot] 88dbda42a7 Regenerate generated files and fold pending files [skip ci] 2026-11-02 00:31:13 +00:00
Homero Thompson 9e30ff5878 fix(#5505): a zero length dimension keeps constraining the sketch (#10790)
The residual of a length dimension is the magnitude of the distance between
the line's two ends. At zero the magnitude has no derivative, so the rank
analysis read the constraint as if it were not there and the sketch reported
a degree of freedom that was not there.

At zero the two ends of the line meet, so the residual says it with the
vector between them, the way a coincidence does. That is the treatment a
distance of zero already gets (upstream #4397); the length family was left
out of it.

Regression test: crates/sketch/src/tests.rs, zero_length_keeps_the_line_constrained.

Co-authored-by: Homero Thompson <homero@local>
2026-11-02 00:05:09 +00:00
thocsmith 4c4c768d57 Cancel button on the Computing toast (#8266) (#10366)
* claim: #8266

* Computing toast: a Cancel that gives up on the move (#8266)

The Computing toast for a history command (marker move, undo, redo,
suppress, reorder) or a delete's check computing off the window thread now
has a Cancel button. It drops the job and the commands queued behind it;
the design stays as it was, since a deferred command only runs for real
once its evaluation is in. A feature edit applying keeps its dialog's own
Cancel, so its toast shows none.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: thocsmith <193096300+thocsmith@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 00:04:53 +00:00
Dahak Builds 83fe1f874f Sketch Project: keep hidden origin planes hidden in Project (#10778) (#10834)
* claim: #10778

* Sketch Project: keep hidden origin planes hidden (#10778)

WIP from dead worker: fix + test written, gates not yet run.

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-11-02 00:04:45 +00:00
Colin Faulkingham 0734616104 View cube: follow the selected projection (#10634) (#10640)
* claim: #10634

* Make navigation cube follow viewport projection (#10634)
2026-11-02 00:04:43 +00:00
Dahak Builds d68d86dae9 Dialog form cards widen their label column for the current language (#10620) (#10646)
* claim: #10620

* widen dialog form-card label columns to the measured label width (#10620)

* fix compile of the grow tests

* grow the card only past the label cap and tag the form scope in place (#10620)

* keep scope_grow crate-internal so the gallery scan stays element-only (#10620)

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-11-02 00:04:41 +00:00
rugbymauri 7d86a8cfd3 Sketch: dragging a constrained centre point of a centre rectangle moves it, not resizes it (#10510) (#10535)
* claim: #10510

Signed-off-by: Maurizio Monticelli <maurizio@whatwedo.ch>

* Sketch: dragging a centre rectangle's constrained centre point keeps the rectangle's size

A centre rectangle's centre sits on the middle of its diagonal, and a
press there picked the diagonal's midpoint before the centre point. The
drag then took the diagonal by its middle: with the centre free the
rectangle moved along, but with the centre held (on the origin, on a
line) the diagonal turned and stretched about it, and the rectangle
grew or shrank with the pointer, many times its size.

A drag that starts on a line's middle where a point is held by a
Midpoint constraint now drags that point, as a drag that starts on the
point does. A centre held on the origin stays there and the rectangle
keeps its size; a centre on a line slides the whole rectangle along it;
a free centre still moves the rectangle. Clicking the middle still
selects the line's midpoint for constraints.

Fixes #10510

Signed-off-by: Maurizio Monticelli <maurizio@whatwedo.ch>

---------

Signed-off-by: Maurizio Monticelli <maurizio@whatwedo.ch>
2026-11-02 00:04:38 +00:00
semmelrinde cea07cbc66 Sketch Slice: cut at the sketch plane while a Section Analysis is on (#10705) (#10768)
With a section on, Slice in the Sketch Palette lit up but the model was
still cut only by the section: the viewport took the sketch's plane only
when there was no section. Slice now takes it whenever it is on in the
sketch being edited; the section comes back when Slice is turned off or
the sketch closes. A slice is hatched as it is without a section.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 00:02:59 +00:00
Colin Faulkingham 0b90731096 Dialogs: readable sketch selection labels (#10752) (#10770)
* claim: #10752

* Fix readable sketch selection labels in dialogs (#10752)
2026-11-02 00:02:37 +00:00
SilentWolf75 afa4f72f7d Insert SVG: say why a sketch is too large (#10874) (#10880)
* claim: #10874

Co-authored-by: Cursor <cursoragent@cursor.com>

* Insert drawing: name the sketch size cap when a file is too dense (#10874)

A large SVG/DXF failed with opaque \"sketch is too large\". Say the 20000 point/curve limit and that scale alone does not reduce entity count, and refuse dense drawings before adding them.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-11-01 23:37:55 +00:00
Sebastian Höpfl cfc46448a8 Joints: an edge origin shares the joint faces' measurement (#10866)
`face_of` called `Body::faces`, which tessellates the whole body, on every
solve. Face origins went through the cached `ModelBody::joint_faces`, at
the same tolerance, but edge origins never did, so one edge origin on a
large body cost a drag or a Drive Joints step far more than the solve.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 22:51:42 +00:00
github-actions[bot] 58c64ca4d4 Regenerate generated files and fold pending files [skip ci] 2026-11-01 22:29:27 +00:00
Nathan Dane 5c7e50cb67 Preferences redesign 2/11: shared widgets and painters in ui_kit (#9874) (#9890)
* claim: #9874

* Add shared Preferences cards, figure painters and gallery entries to ui_kit

* Preferences: Arabic, Hebrew and Vietnamese carousel labels

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Use the app's selection colours in the Preferences cards

* Measure Preferences figure inks and use shared palette metrics

---------

Co-authored-by: bherbruck <brennen.herbruck@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 21:58:35 +00:00
Colin Faulkingham b6aabb88ff Insert Design: place reused links from their parent origin (#10813) (#10825)
* claim: #10813

* fix: place reused linked designs from parent origin (#10813)
2026-11-01 21:47:53 +00:00
DuBearte a1dc849e8d Sketch Fillet and Chamfer: a refused size's error goes once the size fits (#9316) (#9469)
A corner dialog copied the preview's error into its own, where nothing
cleared it when the preview recovered. The dialog already shows the
preview's error, so the copy is gone.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 21:25:21 +00:00
Kushagra Kumar 446590dca1 fix(engine): report design variant in timeline.inspect and accept in timeline.add (#10748) (#10792)
* fix(engine): report design variant in timeline.inspect and accept in timeline.add (#10748)

* ci: refresh checks to clear cancelled workflow run
2026-11-01 21:00:44 +00:00
CamWight 303236e524 Tests: io's byte mutator moves to a testkit crate, a dev-dependency only (#5184) (#7682)
* Tests: io's byte mutator moves to a testkit crate, a dev-dependency only (no behaviour change)

`solidcraft-testkit` (the Testkit class xtask/src/layers.rs reserves) holds the mutator and the
no-panic check unchanged: the same seeds, mutations, budget and doc comment. io's reader fuzz
tests use it as a dev-dependency and give the same case counts; the mutator's own test moves
with it. The co-editing wire's decoders will fuzz with it too (#5184, CE6).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Cargo.lock: testkit at the workspace version

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: bherbruck <brennen.herbruck@gmail.com>
2026-11-01 20:28:58 +00:00
bherbruck 97336ccfe7 Kernel pause: pull requests are judged by the kernel directories they change (#10807)
A pull request outside crates/kernel, crates/geom and vendor/truck* is no longer labelled for a
kernel word in its title. Issues and discussions keep the title check.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 20:19:41 +00:00
cronos e1d4cb433c Cover sketch line-arc fillets in both selection orders (#10242) 2026-11-01 20:19:16 +00:00
Thodoris Tsagkogeorgas 0ad74f2577 Revolve: keep the angle grab point when the sweep is zero (#9601) (#9602)
A revolve of 0° still builds no solid. The handle stays on the profile so the angle can be dragged back into range.
2026-11-01 20:18:27 +00:00
semmelrinde 835e261593 Coil: up and down arrows on the Revolutions field (#7481) (#7766)
* claim: #7481

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Coil: step arrows on the Revolutions field (#7481)

The Coil dialog drew Revolutions as a plain expression row, the one
count without the step arrows the pattern quantities have. It is now a
count row from 1 to 200 turns (the helix's limit); a fraction still
types in, and an arrow steps it to the next whole turn.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 20:12:56 +00:00
github-actions[bot] 84c3b6356c Regenerate generated files and fold pending files [skip ci] 2026-11-01 20:42:12 +00:00
github-actions[bot] d730a273dc Regenerate generated files and fold pending files [skip ci] 2026-11-01 20:33:03 +00:00
semmelrinde 89cb651084 Warnings: quote a long generated name by its start and end (#8673)
A chamfer's warning quoted the full generated names of fourteen split edges,
122,701 characters (#8541). Names over about 80 characters are now quoted by
their first 48 and last 24 characters.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 20:12:42 +00:00
Kai Evans 9efcb461f8 Feature edits: OK computes off the window thread in a dialog without a live preview too (#7388)
Offset Plane and a cosmetic Thread have no live preview, so their edits' OK ran on the window
thread and recomputed every later feature there. Any edit now goes through the off-thread
transaction. The editor's pinned original is used only while the dialog previews, as
open_feature_edit keeps it: a Thread switched from Modeled to cosmetic edits the design as it is,
so a body hidden meanwhile doesn't refuse it as a changed design.
2026-11-01 20:11:05 +00:00
Daniel 958ab867cd Press Pull on a chamfer or fillet face edits it where you clicked (#4986) (#9771)
* claim: #4986

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Press Pull on a chamfer's face changes the chamfer's distance (#4986)

A chamfer's face is flat, so solid.press_pull and the Press Pull start
path in the UI took it for a planar face and extruded it. Both now look
for a fillet's or chamfer's face before asking whether the face is
planar, so a chamfer's face reopens the chamfer and its distance grows
by the distance pulled, as a fillet's radius already does. A first pick
with Press Pull already open is routed the same way.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Press Pull on a blend face puts the arrow on the edge clicked

A fillet or chamfer reopened by Press Pull from one of its faces drew
its radius or distance arrow on the feature's first stored edge, which
can be a corner the user did not click and cannot see (the Sample
Plate's fillet, from the far corner). The click's point now goes with
the reopened dialog as a hint that is never saved, and the arrow sits
on the feature's edge nearest it, at the point on that edge nearest the
click. Opened any other way (the history, Edit Feature) the arrow stays
on the first edge as before.

A click point that is not finite is not kept, and a point on a flat face next to a chamfer still extrudes that face (tested).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 20:11:00 +00:00
Jesper We cffa6e1580 Loft and Surface Loft: two sections from one sketch (#8221) (#8222)
* claim: #8221

* Loft and Surface Loft: two sections from one sketch (#8221)
2026-11-01 20:10:13 +00:00
semmelrinde ce296a1ad5 Extrude preview: a round face sweeps round walls, with lines up its corners only (#8838)
The live preview of extruding a picked face built its walls from the
face's display triangles and drew a line up the wall at every boundary
point, each wall piece shaded flat. A round face (the Bolted Flange's
flange) looked like a polygon while extruding. Lines now go up only
where an edge of the face ends and the outline turns there more than
its curves do, and a wall's normal turns with it between smooth pieces.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 20:09:21 +00:00
semmelrinde 0515dee9ce Colour popover: a held step button keeps stepping, and R, G and B have tooltips (#10201) (#10203)
* Colour popover: a held step button keeps stepping, and R, G and B have tooltips (#10201)

The step buttons beside each colour number sensed clicks only. egui
stops counting a press as a possible click once it outlasts its longest
click (0.8 s), so the held button stopped repeating after 8 steps. They
now sense drags too, which keeps a long press down on the button until
it is let go.

R, G and B now carry tooltips (Red, Green, Blue) as H, S and V already
did: a single letter doesn't name the colour in every language.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Colour popover: the R, G and B tooltips in Vietnamese too, a complete catalog (#10201)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 20:08:43 +00:00
Vvynot 0478f7e401 Hole: reference Distance shows the document precision (#10693) (#10777)
* Hole: reference Distance shows the document precision (#10693)

A measured reference distance showed the raw float (10.000000868569572 mm).
The field now reads at the document's length precision while Refs keeps the
measured value for the model, so OK still sends what was measured.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* Hole: restored literals use the document precision (#10693)

Round every literal reference distance on Edit Feature, including comma
decimals and exact whole values; expressions stay as written.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-01 20:05:49 +00:00
Rec0iL 52f0b52b45 Agent chat: a searchable model picker with a custom entry, listed from every provider, and OpenClaw and OpenRouter presets (#2582) (#10255)
* ui_kit: search_picker, a filtered dropdown with a custom entry

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Agent chat: endpoints list their models with names, say when listing fails, and OpenClaw and OpenRouter presets (#2582)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Agent chat: a typed model goes to endpoints and to agents that offer a model option

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Agent chat: the header's model pickers search and take a custom model

The popup can't grow once it is open, so search_picker now fixes the height of what changes below
its box when it opens: the custom row or a late list could otherwise end up out of reach.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* AI preferences: pick an endpoint's model when adding it and on its card (#2582)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Agent chat: model picker rows read from the left, and a refused typed model says which

From running it: list_picker centres its text, which reads badly for a long list of ids, and an
agent's own refusal can say no more than "Internal error". The search box also asks for a repaint
while it waits for the focus, so an idle window does not stop short of it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Agent chat: docs for the model picker

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Agent chat: an endpoint's answer that is no model list says so, an empty list too, and editing lists with the kept key

A 200 without a `data` array (a web page where the endpoint should be, as OpenClaw's gateway
serves until its chat endpoint is enabled) was cached as a successful, empty listing, so the
picker stayed blank with nothing to say and never asked again. Now it is an error with its own
note, an empty list says so, and both are asked for again the next time.

The Edit dialog lists its endpoint's models when it opens, with the kept key read from the
keychain on the listing's thread, as the card does; the key stays out of the field.

The method-not-found test expects the refusal notice that names the model, as every refused
model gets since this branch.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* Agent chat: models from several providers fold under their providers inside the picker

As Chemiseblanc does in #10187: with two or more groups, `search_picker` draws each group as a
header with a chevron, the name and how many of its choices are listed, and a click folds or opens
it. Before anything is typed only the current value's group (and the one the caller asks for) is
open; a group with a match opens once something is typed; a fold made by hand stays until the popup
closes. Enter takes the first row shown, so never one folded away. A lone group keeps its plain
heading.

The header's model picker feeds its providers in as groups, so the separate provider drop-down
goes; the control channel's `provider` now says which group opens first. A header click gives the
focus back to the search box, so typing goes on filtering.

The dialog's listing test checks what kind of listing it got rather than translated words, which
the listing thread may render in another language than the test's.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* Agent chat: rustfmt the provider groups

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* Agent chat: an endpoint's models named `Vendor: Model` fold under their vendors

OpenRouter lists `openai/gpt-6.1-terra` as "OpenAI: GPT-6.1 Terra". A listing whose ids read
`vendor/model` and whose names read `Vendor: Model` now names its providers, so the picker folds
it under its vendors like a multi-provider agent; the rows read the model's name, and the id stays
in the tooltip and in the search. An agent's own `Provider: …` word still comes first. One vendor
is one flat list, as before.

The Add dialog's picker has no current model to prefer, so with nothing to prefer every group
starts open; folding is a click away.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 20:01:26 +00:00
ABDULLAH 1ae93218a7 Arabic: outline term in the cut preview tint help (#10801) 2026-11-01 19:50:21 +00:00
P'tite Tête 3017641b41 fix: Projection d'une silhouette à congés coniques fermée en un profil (#10773)
- snap_tangent_arcs : chaque extrémité d'arc prend la ligne la plus proche
- une ligne ne prend qu'une extrémité d'un arc ; l'autre passe à sa ligne suivante
- une ligne plus loin sur le contour est ignorée quand l'extrémité touche déjà une autre pièce
- tests : 4 unitaires (project_order.rs) et the_silhouette_of_conic_rounds_closes

Co-authored-by: P'tite Tête <asso@ptitetete.com>
2026-11-01 19:41:32 +00:00
github-actions[bot] 17b9a8e67f Regenerate generated files and fold pending files [skip ci] 2026-11-01 19:55:56 +00:00
github-actions[bot] 90c09eaaf9 Regenerate generated files and fold pending files [skip ci] 2026-11-01 19:48:16 +00:00
Dahak Builds 251573a5a4 MCP: compare the model with a reference picture (#1486) (#6416)
* claim: #1486

* Compare picture: overlap and edge offsets of the model against a reference picture (#1486)

inspect.compare_picture lays the model's silhouette over the part found in a
PNG or JPEG and slides it to the best overlap: overlap (0..1), the model's
edges against the picture's in mm at nine stations, and an overlay PNG. The
MCP tool compare_picture runs it and hands the overlay back as an image block.

inspect.silhouette grows a reusable silhouette::outline for the model side.

* chore: re-trigger checks (defaults line already present in PR body)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* i18n: carry the Compare Picture label in Arabic, Hebrew and Vietnamese too

The complete-catalog guard (every_complete_catalog_carries_every_english_message)
failed because the pending file covered only en/ja/zh; ar, he and vi are
complete catalogs and need the key as well.

* Compare picture: one uniform scale, capped fit, sturdier part finding

Review on #6416: fit no longer stretches the axes apart (width is the default,
both scales uniformly by width and reports aspect_mismatch); the fitted model
takes the same MAX_GRID cap as the picture; the border flood seeds only from
border pixels near the border's main colour, reads alpha, retries at a
stricter step, and says which case failed; the slide searches the whole
placement range instead of a tenth around the centre; the model's holes get
the picture's fill rule; crop becomes crop_px / crop_fraction with explicit
units. Pins #1486's bracket (overlap 0.865, bottom -10 mm at the upright) and
adds a regression test per problem.

* Compare picture: alpha only for a see-through border, part_fills_crop, outline-only wording

Review re-test on #6416: one translucent backdrop pixel no longer switches the read to
alpha — alpha decides only when most of the border is see-through, and any ink is then
part, so a part drawn at alpha 100 survives; part_fills_crop: true takes the crop box as
the part itself, for one view cropped tight off a board where the part takes most of the
border and the flood would keep the backdrop strip instead; a third backdrop pass compares
each pixel to the border's main colour, so a white part on (245, 245, 245) JPEG at quality
75 separates; the command, tool and docs descriptions now say the compare is outline only:
holes are not compared. A banded light backdrop stays a follow-up. A test per case.

* MCP compare: format the picture tests

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: bherbruck <brennen.herbruck@gmail.com>
2026-11-01 18:30:18 +00:00
Nathan Dane bdce595fb3 Render results: retained renders, Live and render compare, render all shots (#6281) (#7375)
* Render results: keep up to eight completed renders and select or discard them

* Render results: Live and render compare with a divider, and render all shots

* fix: use comparison theme tint and reveal reset test targets

* fix: restore Unicode expectations in render workspace tests
2026-11-01 18:30:11 +00:00
semmelrinde 862807ffc9 Lost GPU: the per-frame probe meets a D3D12 device reset before the first upload does (#6528) (#7767)
* claim: #6528

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Lost GPU: the per-frame probe opens a command list, as the upload would (#6528)

On a reset D3D12 device the empty submission before a frame's uploads
went through (it only signals a fence), and the first queue write then
panicked inside wgpu-core (PendingWrites::activate unwrapping Lost).
The probe now submits a command buffer with a debug marker: finishing it
makes the same begin_encoding call, through a path where wgpu loses the
device and runs its lost callback instead of panicking. The picture
capturer's probe does the same.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 18:20:40 +00:00
github-actions[bot] 6f368a5b77 Regenerate generated files and fold pending files [skip ci] 2026-11-01 19:01:13 +00:00
rbousigues88 a0ed5a9923 Measure: a fillet's torus or a sphere reports its radius (#7159) (#7160)
* claim: #7159

* Measure: a fillet's torus or a sphere reports its radius (#7159)

The face of a fillet round a circular edge is a torus and a ball's face a sphere, which
Measure listed by area only. Their face item now carries radius, diameter and surface
(and the ring radius of a torus); they stay out of Shape, so distances are unchanged.

Fixes #7159.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-01 18:03:17 +00:00
N3MI-DG 38ae728538 Preview: new surface is tinted whatever its size, and the tints can be turned off (#9111) (#9112)
* claim: #9111

* Preview: new surface is tinted whatever its size, and the tints can be turned off (#9111)

A preview decided which faces of a changed body were new surface by asking
whether their triangle centroids lay on the old body, within a tolerance that
follows the part's size. A round or chamfer small beside the part never leaves
that tolerance, so it was drawn as if it had always been there, and sampling at
a fixed step told alike faces apart by nothing but how many triangles they had.

The kernel already records which faces an operation generated, so `build` takes
that record alongside the geometric test. The test stays because a body carries
the history of whatever last made it, which is not the previewed operation when
a parameter change re-evaluates the design: the record only ever adds faces to
the answer. The vote itself now asks about every centroid of a small face,
spreads a large face's samples without a resonant step, and calls a face new
above an eighth of its samples, which a blend tangent on both of its sides
reaches with the one row of facets in five that is clearly off the old surface.

Graphics gains two settings, both on as they come, so nothing changes out of
the box: Tint new surface in a preview draws a changed body as itself when it
is off, working out no face at all, and Show removed material in red leaves the
see-through cut and the ghost of the shape a feature replaces fully
transparent, drawing only their outlines.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-11-01 18:02:57 +00:00
github-actions[bot] 147d1cfadd Regenerate generated files and fold pending files [skip ci] 2026-11-01 18:35:09 +00:00
github-actions[bot] d135e1659c Regenerate generated files and fold pending files [skip ci] 2026-11-01 18:26:58 +00:00
froglemonade2 3ccf04d4b2 Edit Extrude: close on the first Escape (#9084) (#9757)
* claim: #9084

* Edit Extrude: close on the first Escape (#9084)

An edit dialog whose value names a parameter (`T` in Edit Extrude) opened with
that field focused and its completion list showing the longer names (`tan(`),
unarmed. The list took the first Escape, so the dialog needed two.

An unarmed list now leaves Escape to the window until the box is typed in, as
it already leaves Enter and Tab; once typed in, Escape dismisses the list first
as before. Its hint drops "Esc dismiss" in that state.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 18:02:39 +00:00
N3MI-DG 2014e60ae6 Sketch Offset: an Instances count stacks offsets one behind another (#9827) (#9828)
* claim: #9827

* Sketch Offset: an Instances count stacks offsets one behind another (#9827)

Offset made one offset at a time, so a set of evenly spaced outlines meant
running it again on the curves it had just made, once per ring: a separate undo
step and a separate driving dimension each time.

`sketch.offset` now takes `instances`, a whole number or a unitless expression
from 1 to 100 (1, today's behaviour, by default). The per-group work the command
did inline becomes `offset_rung`, and `offset_ladder` runs it once per instance,
each rung offsetting the one before it the same distance again, so instance n
stands n distances from the curves picked. Every rung of a side is driven by
that side's own dimension, so editing it moves the whole set and keeps the
spacing even, and each side of a Two Sides or Symmetric offset grows its own
ladder. A rung the shape has no room for refuses the whole command and names
which instance it was.

A later rung reads its side from the geometry, through the rung's own
normal-distance annotation, rather than from the distance's sign: an output's
stored ends need not run the way the chain through them is walked, and a
reversed walk reads the same sign as the other side. A circle is the exception
and keeps the sign, because it offsets concentrically with no chain to walk, and
a step past a ring smaller than the distance lands beyond the centre, where the
circle's "outside the current radius" side test reads as the outward side: an
inward ladder turned round and grew again (1, 4, 1, 4 mm) instead of running out
of room.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* Sketch Offset: the Instances row in the offset window (#9827)

The offset window gets an Instances row under Distance: a whole number with step
arrows, 1 by default, so the count can be walked up a ring at a time and the
preview follows each step. The count is not kept in the design, as Mirror's and
Scale's values are not, so the window sends the number it evaluates to rather
than the text.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* UI kit: a count's step arrows are not text (#9827)

The arrows stand inside the editor, which asks for the text cursor across its
whole rect, so hovering one showed an I-beam and the arrows read as part of the
number. They take the ordinary cursor back after it, and the pointer is read
from the arrow's rect rather than from the hover the editor underneath competes
for, which keeps the hover highlight in step with it.

The pattern Quantity rows share this field and had the same thing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* Sketch Offset: Instances label in the complete catalogs and the other shipped languages

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Sketch Offset Instances: translations for the complete catalogs

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: bherbruck <brennen.herbruck@gmail.com>
2026-11-01 18:02:32 +00:00
Nathan Dane c454c05f88 Preferences redesign 1/11: design reference in docs (#9873) (#9889)
* claim: #9873

* Add the Preferences design reference: pages, figures, measurements, tokens

* Fix the selection look in the design reference to match the app
2026-11-01 18:02:24 +00:00
merik 1cc90036fb File: a command for each export format, so each can have a key (#10176) (#10177)
File › Export STEP…, STL…, 3MF…, OBJ… and URDF… were UI actions around
the shared file.export, so Keyboard Shortcuts had no row for them.
file.export_step, _stl, _3mf, _obj and _urdf now do what those items do
when started from a key, command search or the menu (a save picker; Save
As Mesh for STL and 3MF), and take a path when called with JSON. The File
menu shows their keys. Each has a contract and a reply type
(schema/file.rs).

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 18:02:16 +00:00
Dahak Builds 176c22acaa MCP: explain when an unknown command id is actually an MCP tool name (#10678) (#10680)
* claim: #10678

* MCP: explain when an unknown command id is actually an MCP tool name

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-11-01 15:36:04 +00:00
ABDULLAH 2ab5dedfc1 Arabic: pan term in the Creo navigation help (#10667) 2026-11-01 15:13:48 +00:00
Dahak Builds e77c55549f Sketch: a value box must not swallow a click on the reference line's endpoint (#10600) (#10639)
* claim: #10600

* Sketch: a value box must not swallow a click that lands on a sketch point (#10600)

The construction line tools' Length box waits beside the pointer. When the
pointer reaches the reference line's own endpoint it can land under that box
(the box is anchored to the tool hover, which freezes while the pointer rests
on the box), and the box's text edit takes the click, so the tool never sees
it. A release over the tool's own value box or construction/normal switch that
lands on a snapped sketch point now goes to the tool; a click on the box away
from any sketch point still edits the box.

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-11-01 13:31:14 +00:00
github-actions[bot] e7bb038795 Regenerate generated files and fold pending files [skip ci] 2026-11-01 13:27:53 +00:00
Marcel Karger a5a561caae Add Creo Parametric navigation preset (#3507) (#9322)
* claim: #3507

Co-authored-by: Codex <codex@openai.com>

* Add Creo Parametric navigation preset (#3507)

Add middle-button orbit, Shift+middle pan and Ctrl+middle vertical drag
zoom, with downward dragging zooming in. Keep the default navigation
preset and existing presets unchanged.

Refs #3507

Co-authored-by: Codex <codex@openai.com>

* Navigation: Creo preset needs the NX preset's reverse_drag_zoom field

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Codex <codex@openai.com>
Co-authored-by: bherbruck <brennen.herbruck@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 12:57:15 +00:00
Dahak Builds 462de5b9d2 Fix extrude preview placement in placed components (#2103) (#10596)
* claim: #2103

* Pin #2103: extrude-cut preview placement on placed component occurrences

* Format #2103 regression tests

* Satisfy clippy lints in #2103 regression tests

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-11-01 12:46:17 +00:00
kaltenbrunnermarkus be425c6102 Assemblies: use lookup maps when building the world state (#10497)
* claim: Assemblies: use lookup maps when building the world state

* Assemblies: use lookup maps when building the world state

world_state_reusing, made again after every geometry command in a design
with components, filtered all bodies for every placement, searched the
timeline for every sketch and construction of a placed part, and searched
all bodies twice per tap and placement. It now builds the feature to
component map, the bodies of each component (in body order) and each
tap's component and body offset once per call. The result and its order
are unchanged.

On a 100-part assembly placed 5 times (800 sketches, 200 taps) one world
state drops from 124 ms to 9.5 ms (release, median).

A test-only counter of searches through all features or all bodies
checks that the work no longer grows with the sketches and taps.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Markus Kaltenbrunner <kaltenbrunnermarkus@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 12:39:41 +00:00
Colin Faulkingham bc4d35b097 Avoid rebuilding bodies when rename updates feature references (#6287) (#10588)
* claim: #6287

* fix: reuse body geometry when renaming references (#6287)
2026-11-01 12:15:47 +00:00
Colin Faulkingham 78c5b8de42 Fix fastener placement on transformed washers (#9648) (#10583)
* claim: #9648

* Fix fastener picks on transformed washers
2026-11-01 12:13:41 +00:00
kaltenbrunnermarkus 9738861d61 Sketch drag: the crash test cleans up its folder like its neighbours (#10602)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 12:13:19 +00:00
ABDULLAH 0cf4da606c Arabic: one term for parameters in the equation curve and text help and the joint move hint (#10604) 2026-11-01 12:09:56 +00:00
github-actions[bot] 074cc758ee Regenerate generated files and fold pending files [skip ci] 2026-11-01 12:12:00 +00:00
kaltenbrunnermarkus 47e8b96c2f Placement digests look up bodies by name once (#10492)
A join, cut or intersect without explicit targets reads where every body
of its component is placed. Its placement digest searched the model for
each of those bodies by name, then the timeline for its component and the
placements for that component's frame: O(B^2 + B*F) per feature, on every
evaluation, also when every feature comes from the cache.

The bodies, their components (Document::model_body_components) and each
component's frame are now looked up once per digest. The bodies are still
hashed in name order with the same values, so every digest stays the same
bit for bit and saved caches stay valid.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 11:45:22 +00:00
Dahak Builds 7b3d84fb33 Per-component History hiding (#10393) (#10578)
* claim: #10393

* Per-component History hiding: flag, commands, Browser menu, bar toggle (#10393)

* Carry the new History-hiding strings in the complete catalogs (#10393)

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-11-01 11:42:33 +00:00
github-actions[bot] 59a40aabc0 Regenerate generated files and fold pending files [skip ci] 2026-11-01 11:43:09 +00:00
kaltenbrunnermarkus b557f22f97 Sketch: a construction/normal switch in the construction line tools (#10258) (#10551)
* Sketch: a construction line with a length can be a normal line (#10258)

`construction: false` on a construction line command that has a
`length` makes the segment a normal sketch line, ready to close a
profile, instead of construction geometry. The default stays
construction, and an infinite line is always construction.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Sketch: a length box in the construction line tools (#10258)

The horizontal, vertical, parallel and perpendicular construction line
tools show a Length box beside the pointer from the start. It stays
empty (shown as infinite) and leaves the keyboard to the tool's
shortcuts until a digit is typed; then the box takes the keyboard.
Without a length the tools work as before: one click, an infinite line.
With a length the first click sets the start and a second click the side
the segment runs to, sent as the command's `length` and `near`, so the
segment gets its length dimension. The angle tool has a Length box
beside its Angle box. A typed length keeps the start's snap, and the
preview draws the segment the click will create.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Sketch: a construction/normal switch in the construction line tools (#10258)

A Construction | Normal switch sits under the Length box of the
construction line tools. Normal sends `construction: false`, so a
segment with a length becomes a normal sketch line, ready to close a
profile, without converting it afterwards. The switch starts at
Construction with each start of a tool. An infinite line is always
construction, so without a length the switch is greyed out and its
tooltip says why. It belongs to the tool alone: the Sketch Palette's
drawing line type (X) is left as it is.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 11:15:21 +00:00
github-actions[bot] 29acaf8642 Regenerate generated files and fold pending files [skip ci] 2026-11-01 10:44:57 +00:00
kaltenbrunnermarkus 36bdf4ea3c Sketch drag: drop the second document copy per frame (#10507)
* claim: Sketch drag: drop the second document copy per frame

* Sketch drag: drop the second document copy per frame

edit_solved copied the document to edit it, then stored it with
`*s.doc_mut() = doc`. The command's undo snapshot still holds the old
document, so doc_mut copied the whole design a second time only to
overwrite it. Store the edited document with Session::set_doc instead,
which forgets the same caches and puts it in a new Arc. The design lands
at a new address as before and the command's end records it for the
crash journal (#7502).

A live drag frame on a design of 200 sketches (20k curves) drops from
19.2 ms to 9.4 ms; 50 sketches: 2.3 ms to 1.7 ms.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Markus Kaltenbrunner <kaltenbrunnermarkus@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 10:13:17 +00:00
kaltenbrunnermarkus ddd65cc4bb Move: say a part's joint conflicts instead of 'no movable joint axis' (#10509)
* claim: Move: say a part's joint conflicts instead of 'no movable joint axis'

* Move: say a part's joint conflicts instead of 'no movable joint axis'

When a joint of the selected part conflicts with the others (the solver
can't close its loop), Move found no axis and said "This part has no
movable joint axis.", pointing at joint types and limits. It now names
the conflicting joint and suggests editing, suppressing or deleting it.
Parts with no free joint value and no conflict keep the old message.

Refs #10331

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Markus Kaltenbrunner <kaltenbrunnermarkus@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 10:10:01 +00:00
kaltenbrunnermarkus 2a410c2d76 Sketch: Intersect can pick sketch lines (#10484) (#10512)
* claim: #10484

* Sketch: Intersect can pick sketch lines and model edges (#10484)

The Intersect dialog only took faces or whole bodies, so a click on a
line of another sketch (the sides of a rectangle crossed by a plane
through its middle) picked nothing, although sketch.intersect already
cuts edges and sketch curves with the sketch plane. The pick list now
takes faces, edges and other sketches' curves, and the selection filter
reads Geometry | Bodies like Project's.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Markus Kaltenbrunner <kaltenbrunnermarkus@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 10:09:55 +00:00
ABDULLAH 01b43999a5 Arabic: unambiguous last sentence in the Plane Through Axis And Point help (#10561) 2026-11-01 10:09:49 +00:00
Dahak Builds bcb5efcaa4 Right-to-left: multi-word Hebrew/Arabic names read backwards; prefs search misses multi-word labels (#10471) (#10562)
* claim: #10471

* Show given names in bidi display order; find RTL prefs labels typed in reading order (#10471)

crate::bidi ran over catalog text only, so a multi-word Hebrew or Arabic
body name showed its words left to right in stored order, and Preferences
search compared display-order labels against reading-order queries.
given_name now returns right-to-left names in display order (browser rows,
tabs, status bar all draw names through it), and text_matches also scores
the query after the same bidi transform.

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-11-01 10:09:44 +00:00
semmelrinde 74ee047d3f Configuration rules: Then says it lists only the table's columns, and how to add one (#10532) (#10544)
* Configuration rules: Then says it lists only the table's columns, and how to add one (#10532)

A rule drives or restricts a column of the table only, so Then leaves out a
feature without a Suppress column or a parameter without a column, where
When lists them all. A note under the list now says so and points at Add
Column.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Configuration rules: the two notes in the complete catalogs (Arabic, Hebrew, Japanese, Vietnamese, Chinese)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 10:09:38 +00:00
kaltenbrunnermarkus ab6e6941c7 View: look hidden bodies up in a set (#10496)
* claim: View: work out consumed sketches and hidden bodies once per revision

* View: work out the sketches features use once per design

Each sketch_shown call walked every feature of the design to tell whether
the sketch is used, and the viewport asks about every sketch several
times a frame. The used sketches are now gathered into a set once per
design (keyed on the design itself, so any edit reads them again).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* View: look hidden bodies up in a set

body_visible walked the hidden-bodies list for every body asked about, and
the viewport asks about every body several times a frame. The hidden
bodies now join the hidden joints and folders in the view's visibility
index, built when the list changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Markus Kaltenbrunner <kaltenbrunnermarkus@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 09:59:42 +00:00
github-actions[bot] a93d7b207c Regenerate generated files and fold pending files [skip ci] 2026-11-01 10:14:19 +00:00
kaltenbrunnermarkus 2b65164159 View: work out the sketches features use once per design (#10545)
* claim: View: work out consumed sketches and hidden bodies once per revision

* View: work out the sketches features use once per design

Each sketch_shown call walked every feature of the design to tell whether
the sketch is used, and the viewport asks about every sketch several
times a frame. The used sketches are now gathered into a set once per
design (keyed on the design itself, so any edit reads them again).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Markus Kaltenbrunner <kaltenbrunnermarkus@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 09:53:47 +00:00
kaltenbrunnermarkus fbb00dc7b2 Canvas: store reference image data as shared text so edits stop copying it (#10489)
* claim: Canvas: store reference image data as shared text so edits stop copying it

* Canvas: store reference image data as shared text so edits stop copying it

Every edit clones the document, because the undo history still holds the
old one, and the canvas image was a plain String: each of the up to 200
undo states owned its own copy of the base64 text. Canvas::data is now
Arc<str>, like the shared STEP text, meshes and point clouds; serde's rc
feature writes it as the same JSON string, so design files stay byte for
byte the same.

A 4.2 MB image with 250 edits: peak memory 1.09 GiB -> 42 MB, run time
1.16 s -> 0.12 s.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Markus Kaltenbrunner <kaltenbrunnermarkus@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 09:46:17 +00:00
semmelrinde 7702316039 Bosnian: translate the 68 messages main gained after batch 10, the regrouped Preferences included (batch 11) (#10445)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 09:44:28 +00:00
semmelrinde bb0b9a1d2f Browser: a folder that holds only a new group shows it (#10526) (#10529)
* Browser: a folder that holds only a new group shows it (#10526)

New Group from the root's context menu made an empty group in the Bodies
folder, but the Browser draws no folder without items, so in a design
with no bodies yet nothing appeared. A folder that holds groups is now
drawn with them, even before anything is in it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Browser: test that a new group in an empty folder shows and takes a dragged body (#10526)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 09:44:17 +00:00
kaltenbrunnermarkus 74eda80b5d Extrude dialog: work out the automatic operation once, not every frame (#10491)
* claim: Extrude dialog: work out the automatic operation once, not every frame

* Extrude dialog: work out the automatic operation once, not every frame

An open Extrude window with the automatic operation on asked the engine
for `auto_operation` every frame. That probes the bodies with
`Mesh::contains`, rays through every triangle, so a large part cost tens
of milliseconds per frame with nothing changing.

The window now keeps the answer with a key over what it depends on: the
extrude's parameters (participants included), the design's revision and
id, and the active component and occurrence path. The latch still runs
every frame as before.

Open Extrude over a 1M-triangle mesh body: 29.8 -> 0.87 ms per frame
(headless harness, median of 3).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Markus Kaltenbrunner <kaltenbrunnermarkus@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 09:43:06 +00:00
kaltenbrunnermarkus ea63eec845 Extrude dialog: keep the taper limits while the profile is unchanged (#10503)
* claim: Extrude dialog: keep the taper limits while the profile is unchanged

* Extrude dialog: keep the taper limits while the profile is unchanged

The taper handle is drawn every frame while the extrude window is open,
and every frame it worked out the inradius of each picked profile and of
each of its holes: a grid search over every side, about 200 ms a frame
for a plate with 64 round holes. Only the height changes between frames.

The radii are now kept in the window's state with the profiles they were
worked out for, and worked out again only when the profiles differ. The
limits come from the same arithmetic, so they are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Markus Kaltenbrunner <kaltenbrunnermarkus@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 09:37:47 +00:00
HiroKenEz 64a55392d8 Sketch: a Line chain survives Undo (#10016) (#10019)
* claim: #10016

* Sketch: a Line chain survives Undo (#10016)

Undo could take away the segment the chain was drawing on from, and every
further click was then refused with "unknown sketch point". The chain now
remembers where each segment started and goes back to the last one still there.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 09:19:23 +00:00
github-actions[bot] 3a6920d10f Regenerate generated files and fold pending files [skip ci] 2026-11-01 09:39:05 +00:00
kaltenbrunnermarkus 228b311a6f Raytracer: map faces to looks once (#10502)
* claim: Raytracer: map faces to looks once

* Raytracer: map faces to looks once per body

Preparing a body for the CPU raytracer walked the body's face look list
one entry per work step for every triangle, so a body cost T x (F + 1)
steps (each through the job host) instead of T. The face looks are now
sorted once per body, keeping the first entry per face as before, and
each triangle finds its look with one binary search. Pixels are
unchanged; with 10 000 faces and 50 to 500 face looks, preparation
drops by 40 to 88 %.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Markus Kaltenbrunner <kaltenbrunnermarkus@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 09:16:23 +00:00
kaltenbrunnermarkus 16f00d4cf9 Opening: validate the document once when a model cache is present (#10501)
* claim: Opening: validate the document once when a model cache is present

* Opening: validate the document once when a model cache is present

Opening a design that keeps its model parsed and validated document.json
twice: reading the model cache checked it before decoding the cached
bodies, and read_document, which follows straight after, runs the same
migrations and validation and fails the open when they fail. The open
path now reads the model without that check; geometry(),
read_design_geometry and the preview keep it. A broken document fails the
open with the same error as before.

3,000-feature design with its model cache, bench-open parse step:
426 -> 293 ms (median of 8, heavy machine load). Saving the opened
design gives a byte-identical file.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Markus Kaltenbrunner <kaltenbrunnermarkus@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 09:16:12 +00:00
Dahak Builds 9fa3c85c68 Invert the curved ViewCube roll arrows (option) (#10483) (#10539)
* claim: #10483

* ViewCube: an option to invert the curved roll arrows (#10483)

A new Navigation preference, "Invert the curved roll arrows"
(invert_curved_roll_arrows, off by default): with it on, the two curved
arrows at the cube's corner roll the view the other way within the
screen plane - the clockwise arrow rolls counterclockwise and the
counterclockwise arrow rolls clockwise. The sibling of the cardinal-arrow
inversion from #10286, which left these arrows alone.

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-11-01 09:13:00 +00:00
github-actions[bot] cda0277c3e Regenerate generated files and fold pending files [skip ci] 2026-11-01 08:49:46 +00:00
kaltenbrunnermarkus f233f000e8 Mesh imports: compare by pointer before comparing contents (#10490)
* claim: Mesh imports: compare by pointer before comparing contents

* Mesh imports: compare by pointer before comparing contents

MeshData derived PartialEq, so the dirty check and the autosave check
walked every coordinate and index of a scanned mesh after each edit,
although the document and its saved copy share the same arrays. Compare
shared arrays by pointer first and value by value otherwise, as Points
and Colors already do. About 1.9 ms per comparison for a mesh of one
million triangles goes to nothing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Markus Kaltenbrunner <kaltenbrunnermarkus@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 09:17:11 +00:00
kaltenbrunnermarkus fcb0a925e2 Sketch: hash sets for the stale-pattern check before each solve (#10493)
* claim: Sketch: use a lookup map for curves in pattern upkeep

* Sketch: use a lookup map for curves in pattern upkeep

Pattern upkeep runs before every solve, each drag frame included, and
looked up every copy curve and its arc points with a linear search over
all ids. Dragging another line in a sketch with a 500-copy slot pattern
spent about two thirds of each frame there. The ids now resolve through
maps built once per call; the result is the same to the bit.

The solve bench gains a circular slot pattern section.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Sketch: hash sets for the stale-pattern check before each solve

The check whether a pattern lost a seed, copy or relation built three
ordered sets of all ids before every solve. Only membership is asked, so
hash sets give the same answer; a drag frame in a sketch with a 500-copy
pattern takes another third less.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Markus Kaltenbrunner <kaltenbrunnermarkus@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 09:17:05 +00:00
kaltenbrunnermarkus 71624cf7fa Sketch: use a lookup map for curves in pattern upkeep (#10524)
* claim: Sketch: use a lookup map for curves in pattern upkeep

* Sketch: use a lookup map for curves in pattern upkeep

Pattern upkeep runs before every solve, each drag frame included, and
looked up every copy curve and its arc points with a linear search over
all ids. Dragging another line in a sketch with a 500-copy slot pattern
spent about two thirds of each frame there. The ids now resolve through
maps built once per call; the result is the same to the bit.

The solve bench gains a circular slot pattern section.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Markus Kaltenbrunner <kaltenbrunnermarkus@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 09:16:59 +00:00
PapaEcho ce72abacf9 Construct: plane through an axis and a point (#10178) (#10472)
* claim: #10178

* feat: add plane through axis and point (#10178)
2026-11-01 09:15:25 +00:00
Dahak Builds f25a8e6abc Fix tooltip delay bypass on sequential menu hovers (#10481) (#10482)
* claim: #10481

* Restart tooltip delay per menu row and place tips beside the drop-down (#10481)

* Format

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-11-01 09:10:54 +00:00
Leo 24b91bd453 Sketch Concentric: accept a circle or arc and a sketch point (#10487) 2026-11-01 07:57:43 +00:00
github-actions[bot] 22f12e80e4 Regenerate generated files and fold pending files [skip ci] 2026-11-01 08:13:20 +00:00
semmelrinde 1b02f38732 German: translate the 20 messages the catalog lacks (Move Sketches to Their Parts, the view cube's arrows, view angle locks and more) (#10488)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 07:45:55 +00:00
Frank 7239c95858 Sketch Project: round edges project as arcs, not short lines (#10312)
Projecting a whole body fitted its outline from mesh edges: a round wall seen
edge-on has triangles leaning a hair either way, so the outline zig-zagged
between both rims and broke into two-point pieces (lines), and seams where two
faces' triangles don't share vertices counted as open, outline edges. Faces
that face one way all over (planes, cylinders and cones about the sketch
normal) now decide for all their triangles, near vertices are welded, and a
seam between two faces facing the sketch is no outline. A STEP hook went from
159 lines to 10 lines and arcs.

A single rounded or chamfered rim of a cut curved face is a spline that only
follows its circle; read as Bezier pieces it came in as twenty splines. An
edge read as spline pieces that stays on a circle within 1e-5 of its radius,
in a plane parallel to the sketch, now comes in as that arc.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 07:13:00 +00:00
clark19990 f90b6116d5 Measure: datum planes, axes and points, at exact distances (#10157)
* Measure: datum planes, axes and points, at exact distances

The Measure tool took faces, edges, vertices and sketch geometry; a datum
plane or axis could not be picked into it, and a point set of an infinite
plane or axis would measure the wrong thing anyway.

Describe origin and construction planes, construction axes and construction
points as items, accept PLANES, AXES and CONSTRUCTION_POINTS (and the origin)
in the Measure dialog, and give the new shapes exact closest points:

- a point and a plane: the perpendicular distance;
- a point and a line: the perpendicular distance;
- two planes: parallel distance, or zero where they meet;
- a plane and a line: zero where they cross;
- two lines: the skew distance.

The panel and the quick readout show a plane's point and normal, and an
axis's point and direction.

Test: a point 10 above the XY plane, 5 from the Z axis, and a plane and an
axis that meet.

* Select: a straight sketch line is a curve in an input that takes curves

Adding axes to Measure's input made a straight sketch line match the "axis"
rule before the sketch-line rule, so a picked external sketch curve became a
SketchCurve instead of the ExternalSketchCurve Measure records. The axis rule
now applies only to inputs that take axes on their own (Move's direction and
the like), not to inputs that also take curves.

Test: measure_input_fits_external_sketch_geometry, and the Move axis picks.

* rustfmt: format the new selection filter and measure code

* Measure: drop an unused normalisation in the skew-line distance

---------

Co-authored-by: clarkliu <277482660@qq.com>
2026-11-01 07:04:03 +00:00
semmelrinde 38b9ff223b Frames: a renamed cut-off piece keeps its name when the design is rebuilt from its features (#10438) (#10466)
* Frames: test that a renamed cut-off piece keeps its name in a rebuild from the features alone (#10438)

solidcraft-cli eval rebuilds a saved design without its saved model; the
rename made after a cut then lands on the first line's member. The test
reproduces it on main; the fix follows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Frames: a renamed cut-off piece keeps its name when the design is rebuilt from its features (#10438)

Since #10132 a cut's pieces past the first belong to the cut and the piece
that keeps the body's name to the body's own feature. Ordering the pieces
by their faces then moved the names among them but left each body's
feature behind, so the cut-off piece said the frame member feature made
it. body.rename stored its new name there, in the first line's slot, and a
rebuild from the features alone (solidcraft-cli eval of the saved file)
named member A after it. A name now moves together with the feature it
belongs to.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 06:43:40 +00:00
github-actions[bot] d96d547f6b Regenerate generated files and fold pending files [skip ci] 2026-11-01 06:53:11 +00:00
github-actions[bot] 05a8911f83 Regenerate generated files and fold pending files [skip ci] 2026-11-01 06:43:56 +00:00
semmelrinde 1581d85cba Czech: translate the 68 messages main gained after batch 10, the regrouped Preferences included (batch 11) (#10446)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 05:44:50 +00:00
semmelrinde ad54bdf8eb Danish: translate the 69 messages main gained after batch 10, the regrouped Preferences included (batch 11) (#10447)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 05:44:32 +00:00
C.Vengels 7bafc99390 Send to Slicer: the Print face input takes one face for each body sent (#10468)
With several bodies to send (after Add all bodies, say), the Print face
input refused every face. It took a print face only when exactly one
body was sent; any other pick was cleared at once, with a note in the
status bar only. Each body's print face then had to be set with Ctrl+B,
or by sending that body alone.

The input now holds the print face of each body being sent. A face
picked in it becomes its body's print face, in place of the one it had.
A click on a body's print face takes it out and clears only that body's.
A face of a body that is not being sent is refused with a message
(`ui.print_face_body_not_sent`, in place of `ui.print_face_one_body`).
Each change is still one `body.print_face` command, so it undoes on its
own. Picks in this window are no longer widened to the other pieces of
the face's surface, so a click on a print face takes it out rather than
adding its neighbours.

The user guide (guide/files.md) says so. The new message is in
assets/locales/pending/print-face-each-body.json, in all 31 languages;
the old one is removed from the catalogs.

Test: dialogs_save_mesh::tests::the_print_face_input_takes_one_face_for_each_body_sent
(fails without the change: the second body's face is refused).

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 05:44:15 +00:00
semmelrinde e537a63988 Croatian: translate the 68 messages main gained after batch 10, the regrouped Preferences included (batch 11) (#10449)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 05:44:11 +00:00
semmelrinde 984a5de001 Galician: translate the 68 messages main gained after batch 10, the regrouped Preferences included (batch 11) (#10448)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 05:44:11 +00:00
semmelrinde a799318b0f Hungarian: translate the 68 messages main gained after batch 10, the regrouped Preferences included (batch 11) (#10450)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 05:44:00 +00:00
github-actions[bot] f989b3309f Regenerate generated files and fold pending files [skip ci] 2026-11-01 06:18:58 +00:00
github-actions[bot] 8771b734e4 Regenerate generated files and fold pending files [skip ci] 2026-11-01 06:09:49 +00:00
semmelrinde ef081519d5 Italian: translate the 62 messages main gained after batch 10, the regrouped Preferences included (batch 11) (#10453)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 05:43:48 +00:00
semmelrinde 2a3d29766e Indonesian: translate the 68 messages main gained after batch 10, the regrouped Preferences included (batch 11) (#10451)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 05:43:38 +00:00
semmelrinde 058f17cc37 Malay: translate the 68 messages main gained after batch 10, the regrouped Preferences included (batch 11) (#10454)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 05:43:32 +00:00
semmelrinde 6475418169 Norwegian Bokmål: translate the 68 messages main gained after batch 10, the regrouped Preferences included (batch 11) (#10455)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 05:43:20 +00:00
semmelrinde 1a76f80bae Dutch: translate the 68 messages main gained after batch 10, the regrouped Preferences included (batch 11) (#10456)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 05:42:36 +00:00
semmelrinde f7ceba9cca Romanian: translate the 68 messages main gained after batch 10, the regrouped Preferences included (batch 11) (#10457)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 05:42:34 +00:00
semmelrinde 249ca9267a Russian: translate the 68 messages main gained after batch 10, the regrouped Preferences included (batch 11) (#10458)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 05:42:32 +00:00
semmelrinde 119168cb3e Turkish: translate the 67 messages main gained after batch 10, the regrouped Preferences included (batch 11) (#10461)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 05:42:19 +00:00
semmelrinde 2eb81a79b5 Swedish: translate the 68 messages main gained after batch 10, the regrouped Preferences included (batch 11) (#10460)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 05:42:19 +00:00
semmelrinde b503340b06 Ukrainian: translate the 68 messages main gained after batch 10, the regrouped Preferences included (batch 11) (#10462)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 05:42:18 +00:00
semmelrinde 63123e9237 Serbian: translate the 68 messages main gained after batch 10, the regrouped Preferences included (batch 11) (#10459)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 05:42:05 +00:00
semmelrinde c843d1fb28 Traditional Chinese: translate the 67 messages main gained after batch 10, the regrouped Preferences included (batch 11) (#10463)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 05:41:16 +00:00
semmelrinde 483e21ab1b Sketch: Break Link in the context menu of projected geometry (#10417) (#10421)
* Sketch: Break Link in the context menu of projected geometry (#10417)

Projected curves and points (model edges and vertices, another sketch's
curves) could only be unlinked through command search, although Trim and
other refusals say "use Break Link on it". The sketch context menu now
offers Break Link when the selection holds projected geometry; text keeps
Explode Text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Sketch: test Break Link in a projected edge's context menu (#10417)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 04:41:25 +00:00
kaltenbrunnermarkus 9f37003dfa Browser: Features folders scrolled out of view skip working out their mark (#10439)
* Browser: Features folders scrolled out of view skip their mark

A folded Features folder shows the worst error or warning mark of the
features it holds. Working that out scans the design's whole history, and
from 16 features builds a table of all of them: per placement, on every
frame, whether the row is on screen or not. In a long tree of placements of
a part with a long history this was most of the window's frame while
orbiting.

A row scrolled out of view paints nothing (`tree_row` only takes its space),
so its mark is now worked out only when the row is on screen, as the
placement rows already do for their own state. The rows on screen show the
same marks.

Refs #6083

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Scale tests: time each frame of an orbit around a large design

`scale_tests::orbit_frame_cost` (ignored, manual) turns the view with the
right button over a design (a STEP file inserted as the app opens one, a
design file, or the generated assembly) with the model scene built, as the
app builds it once a renderer is there. Per frame it times the window
thread's frame and its named steps (`frame_watch`), egui's tessellation,
and the renderer's prepare, draw recording and GPU work on an offscreen
device (`OffscreenFrames::frame_parts`); without an adapter it times the
window thread alone. `painted` fingerprints the tessellated picture once
the view rests, to compare two builds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 04:40:39 +00:00
Christian Glombek 4c44126a4d Sketch: sketch.create says which way the origin planes' sketch axes run (#10397)
On XZ a sketch's y runs along world -Z, so a value written as a height lands
below the plane; only the modelling skill's reference said so. The command's
parameter text now gives the axes of all three origin planes (XY: +X, +Y;
XZ: +X, -Z; YZ: +Y, +Z), and a test pins them.

Assisted-by: LLM
2026-11-01 04:19:07 +00:00
Christian Glombek 5c1aad8a09 Assembly: Relink Source takes a .json design, as Insert Design does (#10394)
`component.insert_design` links a design saved as a .sc container or as plain
JSON (`.json`), but `component.relink` refused every path that was not a
container ("choose a saved .sc design"), so a component linked to a JSON
design could not be pointed at another one. Relink now takes any design path
Insert Design takes (`is_design_path`: .sc, a legacy extension or .json); the
file is read by the same `design_bodies`, which already reads both. The Relink
Source file dialog opens on a filter that lists .json among the designs, too.

Assisted-by: LLM
2026-11-01 04:18:49 +00:00
kaltenbrunnermarkus 9d01f6e005 Sketch: construction lines with a length (#10258) (#10427)
* claim: #10258

* Sketch: construction lines with a length (#10258)

The horizontal, vertical, angle, parallel and perpendicular construction
line commands take an optional `length`: the line becomes a construction
segment from `at`, running towards `near`, held by a length dimension
that follows its expression. Without `length` the line stays infinite,
as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Markus Kaltenbrunner <kaltenbrunnermarkus@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 04:13:03 +00:00
ashxddaga 127373a950 fix(ui): fade or unfade browser row dynamically when visibility toggles (#9953) (#9967)
- In entry_row (crates/ui-egui/src/browser.rs), use live  rather than cached  for the  property
- Ensures eye toggle dynamically fades or unfades rows for sketches and bodies without requiring a cache rebuild
- Add regression test in browser_card_tests

Fixes #9953
2026-11-01 04:10:32 +00:00
kaltenbrunnermarkus 64fe82b6c1 Engine: open a design a feature at a time (#10198) (#10274)
OpenSteps splits doc.open of a design into steps for a caller that must
keep working meanwhile (the web app, which has one thread): start reads
the file, each step evaluates the next feature by moving a copy's history
marker one feature on (so every result before it is reused), and finish
puts the design in the session's place with doc.open's reply. The next
feature's imported STEP text is offered first, so a caller can read it
in parts. Session::opened and opened_at are split into small helpers so
both paths build the session the same way; doc.open is unchanged.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 03:39:22 +00:00
kaltenbrunnermarkus fafa575c9f Find a saved model's sheets by their text, not a record built per state (#10418)
Saving a design with its model cache asked, for every state, for each sheet-metal body it holds,
and built that sheet's JSON record each time only to find it written already. A design of 906
states with 300 sheets spent most of its save there. The sheet's text written straight from it
is the key now; its record is built only the first time. The records and the file are the same.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 03:20:05 +00:00
kaltenbrunnermarkus 7e701aabc1 Save: write the model cache manifest without copying the model's records (#10419)
* Find a saved model's sheets by their text, not a record built per state

Saving a design with its model cache asked, for every state, for each sheet-metal body it holds,
and built that sheet's JSON record each time only to find it written already. A design of 906
states with 300 sheets spent most of its save there. The sheet's text written straight from it
is the key now; its record is built only the first time. The records and the file are the same.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Write the model cache manifest without copying the model's records

The manifest was built as a JSON tree, which copied the whole model's records (13 to 33 MB of
records in large designs) before writing them, and a cache too big for the file wrote it again for
each try at fewer states. The manifest is now written from the records where they are, its fields
in the sorted order the tree wrote them, so the file is the same byte for byte.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 03:19:59 +00:00
acebear17 9475e0e1a4 Docs/design approach 10063 (#10409)
* claim: #10063

* docs: add a design approach and workflows chapter to the user guide (#10063)

Adds guide/design-approach.md after the window tour: the parametric idea, principles for designs that change well, the timeline and rollback marker, bodies vs components and occurrences, common workflows with links, a term map for users of other CAD software, and where to find help.

* docs: match the chapter to the app's labels and sketch colours (#10063)

Checked in the web app (0.29.0): the timeline strip is headed History, the toolbar shows New Sketch and Parameters for Create Sketch and Change Parameters, and fully constrained geometry turns white in the default dark theme rather than dark.

* docs: tighten the design approach chapter's wording (#10063)

The glossary covers most, not all, of the chapter's terms; Redo moves forward; the timeline is shown as the History strip; Report a bug drafts a report for the user to file and sends nothing itself.
2026-11-01 02:27:40 +00:00
kaltenbrunnermarkus a8be28563c Sketch: leave out the exact roundoff estimate away from the pixel bound (#10267)
A flat node's roundoff allowance took a hypot per control point. Twice
|x| + |y| bounds each hypot from above with room to spare for rounding,
and rounding keeps sums monotonic, so whenever the flatness test passes
with that larger allowance it passes with the exact one too. Only nodes
whose chord distance comes near the 0.5 px bound (or with a non-finite
term) now take the exact hypots, and they decide as before.

Same result for every node: the reference comparison test still matches
bit for bit.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 02:16:37 +00:00
NOWN-DEV a69a7c6ffe Inspect: measure names_only lists every world body without measuring (#10402)
A caller that only needs the bodies' names (assembly occurrences included,
e.g. "Body2 (Part:2)") had to measure every body, or read document.inspect,
which lists definition bodies only. `inspect.measure {names_only: true}`
returns each world body's name and its definition's name, honouring the
`bodies` filter; an unknown name is refused before anything is measured.
The MCP `measure` tool passes it through, directly and as a batch step;
`summary` leaves such a list as it is, since there is nothing to narrow.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 02:12:23 +00:00
Nathan Dane 7366fe0ecc Blur behind panels: render path, zero cost when off (#8876) (#9809)
* claim: #8876

* Add optional viewport-only Kawase blur and native UI composition

* Fix vendored panel hook imports and deprecated float constant import

* Drain texture updates in the full GPU blur fixture

* Hold the blur evidence fixture camera fixed across radii

* Address blur compositor lint checks

* Share animated Render preview background with blur source

* Use resolved Design background for blur source

* Exercise blur rendering independently of software adapter policy in CI

* Use stock egui hosts instead of vendoring the full crate

* Preserve feature-window open handling with stock egui hosts

* Target the native Window in close-handling regression fixture
2026-11-01 01:37:44 +00:00
MarkusRe 60d79e7ea2 Browser: show F2 shortcut on Rename context menu rows and route key when open (#10388)
Show F2 beside Rename on context menus where F2 already renames the
target (bodies, features and sketches, construction planes, components and
occurrences, browser groups, and canvases). Saved views and joints remain
without a shortcut label because F2 does not rename them without a menu.

When a context menu is open, pressing F2 routes through press_shortcut to
rename the menu's target (such as a clicked browser group or canvas) and
close the menu, rather than renaming the viewport selection.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Gemini 3.8 Flash <noreply@google.com>
2026-11-01 01:37:25 +00:00
kaltenbrunnermarkus 653bc00be4 Sketch: work out each sampled point's clip distances and screen position once (#10343)
Each node of the display curve sampler recomputed a control point's
seven clip distances for every clip plane it tested (up to 7 times for
the reject test, 3 more for the depth test, once more for the cut), and
projected each point to the screen twice. They are now worked out once
per node into arrays and read from there.

Most nodes are split rather than drawn. A node is flat only when every
control point lies within the pixel bound of its chord after adding a
roundoff allowance that is never negative, so a point already farther
than the bound decides "split" on its own; the allowance (four hypot
and divisions per point) is now left out for those nodes.

Same values in the same order: the reference comparison test from the
previous commit still matches bit for bit.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 01:12:51 +00:00
kaltenbrunnermarkus 915dd9a83f Viewport: the comment above build_sketch_scene describes the sketch scene (#10367)
The doc comment of the ground shadow had slid onto build_sketch_scene when
that function was added above ground_shadow. Give it back to ground_shadow
and describe what build_sketch_scene builds.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 01:12:43 +00:00
semmelrinde b99d4ddde9 Sketch Coincident: a selected line midpoint is a point it takes (#10311) (#10315)
* Sketch Coincident: a selected line midpoint is a point it takes (#10311)

A selected midpoint goes to the command as {midpoint: line}, as
Horizontal/Vertical's alignment takes it, but Coincident wanted a point
id and refused it with "b must be a point or curve". The command now
puts a point at the line's middle, tied there by a Midpoint constraint
(or uses the one already tied there), and makes that point coincident
or puts it on the other curve, in one undo step. The toolbar button and
the context menu send a selected midpoint that way.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Sketch Coincident: test a line midpoint in the command, the toolbar and the context menu (#10311)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 00:44:48 +00:00
kaltenbrunnermarkus 425417b36a Web app: open a large design without freezing the page, with progress and Cancel (#10198) (#10211)
* Engine: open a design a feature at a time (#10198)

OpenSteps splits doc.open of a design into steps for a caller that must
keep working meanwhile (the web app, which has one thread): start reads
the file, each step evaluates the next feature by moving a copy's history
marker one feature on (so every result before it is reused), and finish
puts the design in the session's place with doc.open's reply. The next
feature's imported STEP text is offered first, so a caller can read it
in parts. Session::opened and opened_at are split into small helpers so
both paths build the session the same way; doc.open is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Web app: open a design a few features a frame, with progress and Cancel (#10198)

On the web, a design to open is now a staged file load like a STEP file
(#1376): its features are evaluated for about 30 ms a frame through
OpenSteps, a feature's imported STEP file is read a solid per frame first
and held so the feature finds it read, the progress card counts the
design's features, Cancel works between steps, and the meshes are made
a few per frame afterwards. The desktop app keeps its worker thread.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Web app: design links and the files window open designs with progress and Cancel (#10198)

Design links (?open=URL, as embedded viewers use), the files window and
designs opened from the computer went through the one-shot open_path,
which froze the page on a large design. They now use the staged open; a
design link becomes an unsaved copy under the link's name once the open's
reply arrives (SolveApp::open_path_answered).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 00:17:15 +00:00
kaltenbrunnermarkus b7a6967ef2 Web app: open a design a few features a frame, with progress and Cancel (#10275)
* Engine: open a design a feature at a time (#10198)

OpenSteps splits doc.open of a design into steps for a caller that must
keep working meanwhile (the web app, which has one thread): start reads
the file, each step evaluates the next feature by moving a copy's history
marker one feature on (so every result before it is reused), and finish
puts the design in the session's place with doc.open's reply. The next
feature's imported STEP text is offered first, so a caller can read it
in parts. Session::opened and opened_at are split into small helpers so
both paths build the session the same way; doc.open is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Web app: open a design a few features a frame, with progress and Cancel (#10198)

On the web, a design to open is now a staged file load like a STEP file
(#1376): its features are evaluated for about 30 ms a frame through
OpenSteps, a feature's imported STEP file is read a solid per frame first
and held so the feature finds it read, the progress card counts the
design's features, Cancel works between steps, and the meshes are made
a few per frame afterwards. The desktop app keeps its worker thread.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 00:16:01 +00:00
NOWN-DEV 68105938e2 Sketch: a text rebuilt with other words keeps the far-move walk (#10357)
A sketch holding a text whose words come from a text parameter is left
unsolved after the words change and its links then move far, with the
warning "the sketch constraints conflict (k1, ..., k10)". The same two
changes the other way round solve.

Repro: a sketch with three projected points, a construction rectangle on
them and a centred text along its far side, the text's words given by a
text parameter. Change the parameter's words, then move the source
geometry about 280 mm. Without the word change it solves; with it, the
sketch warns of conflicting constraints.

Other words are other outlines: the text is built anew with new points
and curves. The solve that walks a sketch from its stored state to a far
link move (and the check for sides the jump turned over) refused the two
sketches as not the same entities, and the single jump left alone failed.

`Sketch::stored_with_rebuilt_texts` gives the stored sketch as this one
has its entities when they differ only by rebuilt texts: the texts'
entities as they are now, every other point, radius, arc turn and
constraint value as stored. `Document::solve_sketch` walks from that, so
the points pair up again. Sketches that differ in anything else are
refused as before.

Test: sketch_project::side_tests::a_label_follows_its_source_far_after_a_text_parameter_gave_it_other_words
(fails without the fix with the conflict warning above).

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 00:15:32 +00:00
ABDULLAH 11e283ba77 Arabic: reasoning effort label, view cube arrow note (roll term, tanween spelling), Look group heading (#10355) 2026-11-01 00:11:16 +00:00
kaltenbrunnermarkus c25c2f3a21 Sketch: sample display curves without a heap copy per subdivision (#10342)
The pixel-bounded curve sampler that draws sketch curves and profile
outlines ran again on every camera move, and each subdivision step
allocated: every span's control points were a Vec, splitting one in
half built a Vec per de Casteljau level, each node's projection was
collected into a Vec, and every drawn part grew from two vertices.

The control points now live inline in a fixed array (`Hull`, at most a
degree-9 Bezier), the halves are worked out in place with the same
`mix` level by level, the projection goes into a reused array, and a
new part starts with room for eight vertices. The arithmetic and its
order are unchanged, so the points are the same bit for bit.

Tests: `samples_the_same_points_bit_for_bit_as_the_reference` keeps the
previous sampler as a reference and compares paths, quality and budget
use over every segment kind, slanted and far-off planes, orthographic
and perspective views from far out to far in, clipped and unclipped,
with ample and spent budgets. Ignored timings:
`sampler_cost_against_the_reference` (render) and
`sketch_scene_cost_while_the_camera_moves` (ui-egui).

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 00:10:37 +00:00
kaltenbrunnermarkus e0582668bb Web app: an opened design is drawn when its meshes cannot be made on a thread (#10362)
The web build cannot start the open-meshing thread. Its fallback counted
every body done but listed none ready, so whatever the file load opened
on the web drew no bodies and kept "Loading parts n/n" up for good. The
fallback now lists every body ready and the viewport meshes as it draws,
as the fallback meant to. Found while opening a design through the file
load in the browser (#10198).

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 00:10:20 +00:00
Colin Faulkingham df04e7742f Assembly: let components extruded from reference faces move independently (#10289) (#10332)
* claim: #10289

* fix: preserve placement of face-derived components (#10289)
2026-10-31 23:51:18 +00:00
github-actions[bot] 56b77b405d Regenerate generated files and fold pending files [skip ci] 2026-11-01 00:09:18 +00:00
raykholo e4a67d1e30 Assembly: move sketches to the part they're drawn on (#10218) (#10219)
* claim: #10218

* Assembly: move sketches to the part they're drawn on (#10218)

`component.move_sketches.to_parts` moves each given sketch, or every sketch in the design, whose
plane is an exactly attached face of a part's body into that part through
`component.move_sketches`, as one undo step. Sketches with no single part to go to stay where they
are, and the reply lists what moved and what stayed, with the reason. The Sketches folder's menu
offers it for the folder's sketches (or the selected ones), and a sketch's menu for that sketch or
the selected sketches; the status bar says how many moved and why the others stayed.

`component.move_sketches` now keeps a face-attached sketch where it is on its face: the sketch is
authored in the new component's placement (the face's own when the component owns the face), and
its picked point and repair plane are carried into it. Before, a face-attached sketch moved out of
the design was left without an author placement and failed to evaluate.

* Tests: the moved part is free to move; face anchor path

* Tests: move the to_parts test to the component command tests

* Shorter label: Move Sketches to Their Parts
2026-10-31 23:42:47 +00:00
Dahak Builds ed9599d1e4 View angles card: per-axis zero buttons and locks (#4581) (#10344)
* claim: #4581

* View angles card: per-axis zero buttons and locks (#4581)

The readout card under the orientation gizmo already showed and edited the
view's yaw, pitch and roll in degrees. Each axis row now also has a zero
button that turns that angle to 0 degrees at once, and a lock: a locked
angle stays put while orbiting, turning with the arrow keys or using a 3D
mouse, and its field and zero button go inert, so a symmetrical view can
hold its yaw and roll at 0 while only the pitch is adjusted.

* clippy: drop needless borrow in keep_locked call

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-10-31 23:39:24 +00:00
bherbruck 3a5195b0a0 Release 0.29.0 2026-10-31 19:20:30 -04:00
bherbruck beb35029a4 Release 0.29.0 (#10347)
Fold the pending design format changes (align-axis-mask, equation-variable-unit, link-file-digests) into format 46.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 19:20:15 -04:00
semmelrinde 80fb02f0b8 Sketch Ellipse: Major radius and Minor radius boxes while drawing (#10279) (#10282)
* Sketch Ellipse: Major radius and Minor radius boxes while drawing (#10279)

The Ellipse tool showed no value boxes. After the centre it now shows
Major radius, after the end of the major axis Minor radius; a typed value
places the point at that size and becomes the ellipse's dimension, as for
a circle's Diameter. sketch.draw.dimensioned takes major_radius and
minor_radius for sketch.ellipse, so Dimension new shapes covers it too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Sketch Ellipse: test the typed radii in the tool and in sketch.draw.dimensioned, and say so in the guide (#10279)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Sketch Ellipse: rustfmt the new engine test (#10279)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 23:18:35 +00:00
kaltenbrunnermarkus a5c8fa7be7 Viewport: faster highlight with many bodies selected (#10204)
* claim: faster highlight with many bodies selected

* Viewport: find selected bodies by name once per highlight build

With every body of a large assembly selected, each hover change built the
highlight again and looked every selected body up along the world's bodies
(`ModelState::body` scans them), which is quadratic: about 2.2 million name
comparisons on 2,116 bodies, some 3 ms of every hover change.

The selected bodies, faces and edges are now found in a map by name, made at
the first lookup. A name held by more than one body finds the first, as the
scan did, so the same bodies are lit in the same order.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Viewport: measure hover changes with many bodies selected

An ignored scale test: every body of a design selected (a file named by
SOLIDCRAFT_SCALE_DESIGN, else a generated grid of 1,440 boxes), the pointer
moving from face to face, timing each hover change's highlight build headless
and as the app builds it on a GPU (bodies drawn from their plans, and from the
model scene's blocks). Run with `--ignored --nocapture`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Markus Kaltenbrunner <kaltenbrunnermarkus@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 23:14:05 +00:00
MarkusRe 4c3d1484c5 Parameters: show one rename tooltip per name (#10309)
Keep full names in the tooltip only when the name cell clips them, and keep
the double-click rename hint without stacking a second popup. Cover short
and long names, favorites, and double-click input with a regression test.

Co-authored-by: Codex <noreply@openai.com>
2026-10-31 22:48:33 +00:00
Colin Faulkingham e0c1b8adbd Sketch: snap to infinite construction-line crossings (#10011) (#10285)
* claim: #10011

* Fix snapping at infinite construction-line crossings (#10011)
2026-10-31 22:23:57 +00:00
bherbruck 604515cfb3 Test: hovering a large body checks the pick index doesn't block, without timing (#10325)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 22:23:51 +00:00
github-actions[bot] 57d789c0aa Regenerate generated files and fold pending files [skip ci] 2026-10-31 22:34:32 +00:00
github-actions[bot] 4e9656ea9a Regenerate generated files and fold pending files [skip ci] 2026-10-31 22:25:42 +00:00
Nathan Dane 07160d9366 Preferences redesign 3/11: page structure, aliases and profile card (#9875) (#9907)
* claim: #9875

* Preferences: split pages and preserve aliases and profiles

* Preferences: preserve moved-page regressions and complete translations

* Preferences: retain newly added settings in profiles

* Preferences: target Tools in tool-cursor persistence tests
2026-10-31 22:05:20 +00:00
Dahak Builds c111b5f2fb ViewCube: option to invert directional rotation arrows (#10254) (#10286)
* claim: #10254

* ViewCube: an option to invert the directional rotation arrows (#10254)

A new Navigation preference, "Invert the view cube rotation arrows"
(invert_navigator_arrows, off by default): with it on, an arrow around the
cube orbits the camera the way the arrow points, as in Fusion and Inventor,
instead of rotating the cube toward the side the arrow sits on. Left and
right, and up and down, trade places, and each tooltip names the action
actually performed. The curved roll arrows are not inverted: they name the
rotation they perform, not a direction.

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-10-31 22:00:16 +00:00
Nathan Dane 4594d81f7a Gruvbox: light and dark themes with three contrast choices (#10292)
* claim: consolidate Gruvbox contrast variants

* Consolidate Gruvbox variants into light and dark contrast choices

* Check both original Gruvbox viewport gradient endpoints

* Reset Gruvbox scenario state before independent theme checks
2026-10-31 21:58:30 +00:00
raykholo 2e3448f348 Sketch: an option to make the part active when sketching on its face (#10215) (#10216)
* claim: #10215

* Sketch: an option to make the part active when sketching on its face (#10215)

Preferences › Sketch › "Sketching on a part's face makes that part active", off by default.
When it is on, a sketch started on a face of another component's body activates that component
at the picked placement first and is made there, as after an explicit activate. The part stays
active, so what is built from the sketch lands in the same part.

For scripts the same is `sketch.create` `activate_part: true`; the reply's `activated` names the
component and placement. On an error the active component goes back to what it was.

* Tests: a free part, no edge projection, the sketch on the face plane
2026-10-31 21:52:09 +00:00
github-actions[bot] e5c6e3ef1e Regenerate generated files and fold pending files [skip ci] 2026-10-31 21:57:31 +00:00
rugbymauri 57df47b763 Sketch: clicking the running tool's button ends it, so clicks select again (#10151) (#10263)
* claim: #10151

Signed-off-by: Maurizio Monticelli <maurizio@whatwedo.ch>

* Sketch: clicking the running tool's button ends it, so clicks select again (#10151)

The lit ribbon button of the running sketch tool started the tool over
when clicked again, so it gave no way out: every click in the view kept
drawing or measuring, and Ctrl+click never reached selection. Esc and
right-click already end a tool, but the pressed button looks like the
natural switch.

A second click on the running tool's button (large ribbon buttons and
the constraint grid) now ends the tool. Persistent analysis toggles keep
their own on/off. The old behaviour stays behind the Sketch preference
"Clicking the running tool's button ends it" (ribbon_click_ends_tool).

Fixes #10151

Signed-off-by: Maurizio Monticelli <maurizio@whatwedo.ch>

---------

Signed-off-by: Maurizio Monticelli <maurizio@whatwedo.ch>
2026-10-31 21:32:48 +00:00
PapaEcho 42145719a0 Measure: start with the current selection (#10169) (#10234)
* claim: #10169

* fix: initialize Measure from preselected items (#10169)
2026-10-31 21:26:40 +00:00
rugbymauri 64421a2cb9 3D mouse: turns a rolled or upside-down view the way the cap is pushed (#10083) (#10262)
* claim: #10083

Signed-off-by: Maurizio Monticelli <maurizio@whatwedo.ch>

* 3D mouse: turns a rolled or upside-down view the way the cap is pushed (#10083)

In the default upright (turntable) orbit the cap's Spin rolls the view,
but its Tilt and Turn went straight into yaw and pitch, which ignore the
roll. Rolled upside down, every push moved the model the opposite way on
screen; rolled on its side, tilt moved it sideways.

The device now takes Tilt and Turn back through the view's roll before
the orbit, for the cap and for a device app over the navigation bridge.
An unrolled view behaves exactly as before; Free orbit was already
view-relative and is unchanged.

Fixes #10083

Signed-off-by: Maurizio Monticelli <maurizio@whatwedo.ch>

---------

Signed-off-by: Maurizio Monticelli <maurizio@whatwedo.ch>
2026-10-31 21:20:10 +00:00
ABDULLAH 711e41233f Arabic: orbit/pan/zoom verbs in the NX navigation help, System language choice, measuring bodies progress (#10272) 2026-10-31 21:19:33 +00:00
kaltenbrunnermarkus cf0508e5c8 Sketch: held solves that cannot succeed give up sooner (#6606) (#10208)
* claim: #6606

* Sketch: held solves that cannot succeed give up sooner (#6606)

A status-only solve (the held solves of a drag) only asks whether it
succeeds. When LM sits in a least-squares valley of conflicting
constraints it crawled on to its 500-iteration limit, and a held solve
runs LM up to three times. Such a solve now leaves a component once the
iteration has stalled far from a solution: over the last 20 iterations
the sum of squared residuals fell by at most 1e-5 of itself while the
largest residual is still above 1e-4 mm.

Successful solves are unaffected: on about 62,000 LM runs that succeeded
(the sketch and engine tests and 120 generated sketch scripts with 2,900
drags) the slowest still fell by 1.4e-3 over any 20 iterations while
that far off. Solves with an analysis keep iterating (their report names
the violated constraints), and live frames are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Markus Kaltenbrunner <kaltenbrunnermarkus@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 20:51:32 +00:00
Dahak Builds bace1a1228 Assistant: set the reasoning effort per API agent (#10241) (#10259)
* claim: #10241

* Assistant: send a per-API-agent reasoning effort on /chat/completions (#10241)

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-10-31 20:48:42 +00:00
Colin Faulkingham bda8b6b2e8 Fix Touchpad navigation with focused tool fields (#10231) (#10253)
* claim: #10231

* fix(ui): allow touchpad navigation with focused tool fields
2026-10-31 20:48:28 +00:00
P'tite Tête 52765304cd fix: Sketch rectangles and centre circles take expressions (#10251)
- sketch.rectangle.center and two_point: a corner given with expressions is a fixed point that follows its parameters, as with sketch.line
- sketch.circle.center: a radius or diameter naming a parameter is a driving dimension; a string naming none is just the number; bare numbers read in the design unit
- A radius that is not a number is refused with its own message and no longer passed over for diameter
- sketch.circle.two_tangent: a string radius reads bare numbers in the design unit

Co-authored-by: P'tite Tête <asso@ptitetete.com>
2026-10-31 20:07:36 +00:00
Colin Faulkingham ec526d2b3d Sketch: keep polygon inputs clear of the preview (#10035) (#10199)
* claim: #10035

* Sketch: keep polygon inputs clear of the preview (#10035)
2026-10-31 20:06:03 +00:00
ABDULLAH 3b3d93f333 Arabic: selection wording for the freehand lasso option, clearer view cube fit note, tanween spelling (#10249) 2026-10-31 20:05:41 +00:00
kaltenbrunnermarkus 05f30c1674 Browser: a click just past a feature's name selects it instead of opening its sketch (#10079) (#10213)
* claim: #10079

* Browser: a click just past a feature's name selects it instead of opening its sketch (#10079)

The Edit Profile Sketch button on a browser feature row began 2 points after
the name, so a click that landed just past the name, or a press on the name
that slipped a few points before its release, opened the profile sketch.
The button now starts 8 points after the name, wider than egui's 6-point
click slop; the gap selects the row like the name does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Markus Kaltenbrunner <kaltenbrunnermarkus@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 20:05:28 +00:00
Colin Faulkingham bba2fc1400 Report omitted print-face selections in command-script exports (#10230) (#10235)
* claim: #10230

* fix: report omitted print-face assignments in script exports
2026-10-31 19:58:48 +00:00
Dahak Builds 538d7fcb43 Language: follow the system language by default (#10138) (#10183)
* claim: #10138

* Follow the system language on a first start (#10138)

The language preference defaults to a new 'system' value: the OS locale
(sys-locale) is matched against the catalog list - exact tag, base
language, then English - and a System choice sits at the top of the
Preferences language list. A saved language still wins.

* Drop the explicit deref clippy flagged; regenerate THIRD-PARTY-LICENSES.txt for sys-locale

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-10-31 19:50:08 +00:00
Ben Rog-Wilhelm 8be56316f6 Sketch Chamfer: several corners at once, as Fillet does (#8998)
The three sketch chamfers take `points: [corners]` (a point reference or
{a, b} each), as sketch.fillet does: every corner is cut alike in one
edit, and a corner that can't be cut, or is named twice, refuses them all.
The Chamfer window sends every picked corner instead of refusing a second.


Claude-Session: https://claude.ai/code/session_01PVKpSVXR9iiwSM9B25kpvq

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 19:28:14 +00:00
github-actions[bot] eda51873aa Regenerate generated files and fold pending files [skip ci] 2026-10-31 19:33:49 +00:00
Colin Faulkingham d4144ddf9b Select: resolve faces and edges from a point or index (#10171) (#10191)
* claim: #10171

* fix(select): resolve faces and edges from a point or index
2026-10-31 19:11:54 +00:00
Dahak Builds c39f44e190 Orbit ignores floating input fields passing under the cursor (#10128) (#10206)
* claim: #10128

* Orbit ignores floating input fields passing under the cursor (#10128)

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-10-31 19:04:33 +00:00
clark19990 5b8d8416e9 Navigation: an NX mouse mapping (#10156)
* Navigation: an NX mouse mapping

NX's CAD1 scheme drags the middle button to rotate, middle + left to zoom and
middle + right to pan. The mouse mappings here hold one button at a time, so
the preset takes the middle drag with Shift (pan) and Ctrl (zoom) for those two
drags, leaves the right button to the context menu, and fits on a middle
double-click as NX does.

The help text says which NX drags the modifiers stand for.

* Navigation NX note: translations for the complete catalogs

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Navigation NX note: use the message id nav.nx.help in the pending file

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: clarkliu <277482660@qq.com>
Co-authored-by: bherbruck <brennen.herbruck@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 18:44:45 +00:00
github-actions[bot] 1f2356fa7b Regenerate generated files and fold pending files [skip ci] 2026-10-31 19:06:16 +00:00
github-actions[bot] e29e32f197 Regenerate generated files and fold pending files [skip ci] 2026-10-31 19:00:09 +00:00
kaltenbrunnermarkus 76e009ab10 Viewport: blend grid levels while zooming instead of popping (#9570) (#9608)
* claim: #9570

* Cross-fade the viewport grid between levels while zooming (#9570)

grid_step switches the spacing in a step (1, 2, 5 times a power of ten), so
the whole grid swapped at once as the view zoomed through a switch and
popped over and over while scrolling. Near a switch the drawn grid now
draws the outgoing and incoming levels together, weighted by a smoothstep
over about 19% of zoom either side, each level's lines on their own places
on the plane so a fading level never shifts. A line both levels share is
drawn once; its colour and width blend between minor and major.

grid_step itself is unchanged, so sketch snapping, dash lengths and the
tools keep their spacing; the dominant drawn level is always grid_step's.
The viewport and the headless picture share grid_lines, so they still draw
the same grid.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Fade out the fine grid before a non-nested coarser level appears (#9570)

The levels go 1, 2, 5 times a power of ten. From 1 to 2 and from 5 to 10
every coarser line is also a finer one, but 5 is not a multiple of 2, so
cross-fading the 2 and 5 levels drew lines at 0, 2, 4, 5, 6, 8, 10 mm at
once, which looked restless.

At that switch the finer level's own lines now fade out over the first
half of the cross-fade and the coarser level's own lines fade in over
the second, so the two are never drawn together. The lines both levels
share (every 10 mm, the finer level's major lines) stay at full strength
throughout, so the grid never goes blank. The cross-fade spans the same
zoom range as before, and the nested switches cross-fade as they did.

grid_levels keeps its shares (adding up to 1, grid_step's level the
stronger one); grid_lines draws a line only one level has as strongly
as that level's own lines. The headless and viewport tests now check
half strength at the nested 5 to 10 switch and no 2 or 5 mm line right
at the 2 to 5 switch; a new test zooms through 2 to 5 in four decades.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 18:35:49 +00:00
froglemonade2 441d67f9ff View cube and axis gizmo: a standard view centres and fits the model (#10091) (#10092)
* claim: #10091

* View cube and axis gizmo: a standard view centres and fits the model (#10091)

A new Navigation preference, "Fit the model after a navigator view change"
(`navigator_fit`, off by default): with it on, a face, corner or arrow of
the view cube and an axis tip of the gizmo look at the middle of the model
from the one distance that fits its bounding sphere, so Home, an opened
design and every view chosen on a navigator share one zoom and one centre
and only the direction changes. Off, both navigators turn in place as
before.

"Home and Fit size" (`home_fit_size`, 10–100 %, default 100 %) is how much
of the view between the panels and the controls the model fills when Home,
Fit, an opened design or a navigator view change frames it; 100 % is the
framing as before.

`view.navigate` takes an optional `fit: true` with a direction or a turn,
so programmatic callers get the same framing.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-31 18:34:13 +00:00
semmelrinde 6541a4e980 Assistant: the agent list and the boxes under the switcher keep the panel's margin (#10172) (#10179)
* Assistant: the agent list and the boxes under the switcher keep the panel's margin (#10172)

The agent switcher above them sits in the panel's side margin, but what
the panel draws under it before a connection (the Agent row with Add
agent and Refresh, the agents found, what isn't installed, the New chat
confirmation and the sign-in box) started at the panel's very edge, and
Refresh was cut off at the right. They now keep the same side margin.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Assistant: test that the agent list keeps the panel's side margin (#10172)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Assistant: the margin test passes the labels without a needless borrow (#10172)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 18:31:55 +00:00
thocsmith 85197c1224 Selection: a freehand lasso that takes what is fully inside it (#4376) (#10185)
* claim: #4376

* Selection: a freehand lasso that takes what is wholly inside it (#4376)

The SELECT panel gets a Lasso checkbox (UiState::lasso_select, ui.set
lassoSelect). With it on, a primary drag from empty space draws a
freehand loop; the release selects through the same path as the window
box: items whose points are all inside the loop and no segment crosses
it, so a concave loop leaves out a curve that bulges out of it. Shift
and Ctrl add as with the box. ui.drag takes via waypoints (and scenario
drag steps take more than two points) so agents and tests can draw it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: thocsmith <193096300+thocsmith@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 18:31:21 +00:00
Colin Faulkingham ed66adac5c Keep renamed bodies visible when reusing hidden names (#10163) (#10175)
* claim: #10163

* fix(engine): preserve visibility when renaming into hidden names
2026-10-31 18:15:56 +00:00
ABDULLAH e88295ceba Arabic: isometric view wording in the Extrude view preference, equation curve range unit option and note, quoted menu names in the graphics card note, tanween spelling (#10189)
* Arabic: isometric view wording in the Extrude view preference

* Arabic: equation curve range unit option and note read naturally

* Arabic: tanween spelling in the new bold-font and delete-first messages, menu and option names quoted in the graphics card note
2026-10-31 18:15:34 +00:00
Kyle a.k.a. TechSquidTV aeca117045 Sketch: offset chains lines whose corners are coincident (#5019) (#8858)
* claim: #5019

* sketch offset: chain lines whose corners are coincident, not only shared

Lines drawn one by one meet at their own points held by Coincident
constraints. The offset walked shared points only, so each such line was
offset on its own, to the left of the way it was drawn: a closed
rectangle came apart, both horizontals moving up. The same split shows
next to a fillet or chamfer, whose other corners stay Coincident pairs.

Chain ends held by a Coincident constraint as one joint, the way
Sketch::chain() and axis_implied already do, so a closed outline offsets
as one closed shape.

Fixes #5019.

* test(sketch): cover coincident offset loops after trim and blends

* refactor(sketch): share and cache coincident endpoint groups
2026-10-31 17:37:38 +00:00
Dahak Builds 31326e9898 Frames: renaming a cut-off piece of a frame member renames a different member after a rebuild (#10123) (#10132)
* claim: #10123

* Frames: a renamed cut-off piece keeps its own name through a rebuild (#10123)

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-10-31 17:32:32 +00:00
github-actions[bot] a9e9f8b82b Regenerate generated files and fold pending files [skip ci] 2026-10-31 17:36:03 +00:00
austin62jake 8558b37e44 Edit dialogs: a stored number shows with its unit, Fillet, Chamfer, Shell, Draft and more (#1936) (#8697)
* claim: #1936 (Fillet, Chamfer, Extrude, Shell and Draft edit dialogs)

* Fillet, Chamfer, Shell and Draft: a stored number edits with its unit (#1936)

Their edit dialogs showed a value stored as a bare number as it was, so a
fillet made with a radius of 2 opened as "2" and a chamfer angle of 30 as
"30", where the other dialogs, and since #2107 the Plastic ones, read
"2 mm" and "30 deg". The Fillet radius, the Chamfer distances and angle,
the Shell thickness and the Draft angle now go through shown_expr, as the
Plastic dialogs do.

Extrude is left as it is: its editor keeps an unchanged expression exactly
as stored (extrude_edit_tests), and writing the unit would change it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Offset Face, Stock, Offset Plane, Plane at Angle, Pipe and Emboss too (#1936)

The rest of the dialog_descriptors! table's length and angle fields that
copied the stored text as it was now go through shown_expr as well: the
Offset Face distance, the Stock margin, the Offset Plane offset, the Plane
at Angle angle, the Pipe diameter and wall, and the Emboss depth. Scale's
factor has no unit and still shows as stored.

The test also edits an offset face, a stock and an offset plane.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Revolve, Thread, Rib and Web too (#1936)

The custom edit paths that copied a stored length or angle as it was now
go through shown_expr as well: the Revolve angle, the Thread length, and
the Rib and Web thickness and depth. The test also edits a revolve.

The Rectangular and Circular Patterns stay as they are, like Extrude:
their editors keep an unchanged definition exactly as stored
(preselect_tests::feature_mirror_and_patterns_reopen_as_feature_replays_even_for_body_creators).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-31 16:58:34 +00:00
Colin Faulkingham aa244bcee4 Fix copying drawn 3D sketch curves (#10134) (#10146)
* claim: #10134

* fix: copy drawn 3D sketch curves (#10134)
2026-10-31 16:53:47 +00:00
PaddleStroke eaf3acc297 Colour popover: step buttons, HSV fields and recent colours (#9234) (#9398)
* claim: #9234

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Colour popover: step buttons, H/S/V fields and recent colours (#9234)

Every colour field of the app opens the same ui_kit popover. It gains:
- step buttons beside each number (R, G, B and the new H, S, V): a press
  steps once, holding repeats, for live fine-tuning;
- H (degrees), S and V (percent) fields on the same gamma HSV as the square;
- a row of the last 12 colours picked in any colour field. A colour joins
  when an edit is finished; fine-tuning in one opening replaces its entry.
  The list is saved with the app's settings (`recent_colors`), hostile
  saved entries dropped and the list capped.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Recent colours: keep the shared list outside ui_kit, crate-visible only (#9234)

The store and the per-frame sync with the saved settings move to
crate::recent_colors; the ui_kit colour popover only shows the list and
adds finished picks. No plain pub escape from the gallery's ui_kit rule.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 16:51:56 +00:00
semmelrinde c392791f2c Sketch drag: a step that throws points far from the sketch, or presses a line to no length, counts as failed (#8600)
* Sketch drag: a step that throws points far from the sketch counts as failed

A held step of a drag that moved a point more than 1000 times the sketch's
size plus the drag's way was taken as solved, so a drag could leave points
around 1.4e6 mm away while reporting it reached the cursor. Such a step now
fails like one the solver cannot solve, and the cursor correction refuses it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Sketch drag: a step that presses a line to no length counts as failed too

An end dragged past the point where its line would have to turn over (a
line held at its midpoint and by an angle, dragged past the midpoint; a
rectangle's corner dragged across the opposite side) pressed the line to no
length, where it has no direction left for its constraints. A step leaving a
line under 1/1000 of its length at the drag's start now fails like one that
throws points far away, so the drag stops just short of it (48 such drags in
4000 random sketches, none with this).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 16:45:35 +00:00
rvmzym5xv8-star 0fb2e9b06b MCP batch: refuse a command entry with an unknown key (#7854) (#7865)
* claim: #7854

* MCP batch: refuse a step with an unknown key (#7854)

A step's parameters under another key (`args`) were dropped and the
command ran without them. The batch is now refused before its first
step, naming the key.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* MCP batch: a step carrying `expect` is refused, saying it is the batch's argument

#9904 gave batch an `expect` argument and tested that a step carrying one runs with
nothing checked. That is the silent drop this branch refuses: the step is now refused
before it runs, and the error says `expect` belongs to the batch.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 16:26:23 +00:00
clark19990 b410c577e0 Light a feature's faces when it is selected, even after a later edit renamed them (#9848)
* Light a feature's faces after a later edit renamed them

Selecting a feature in the Browser or the timeline lights its geometry on the
model, by the face names the feature gave (`F<feature>:…`). A later edit that
moves or renames those faces (Offset Face, Replace Face, Delete Face) leaves
them named after whatever last touched them, so selecting the earlier feature
lit nothing.

When no face carries the feature's name, compare the model states either side
of it instead: a face whose name is new, or whose area, centroid or plane
moved, is a face the feature changed. Each is found on the body as it is now
by its name, or by a parallel plane and nearest centre, so a face a later
feature moved again is still lit.

The Browser row of the feature a picked face belongs to already lights; that
is unchanged (a body row lights too, as #3009 asks).

Test: a box raised twice with Offset Face; selecting the first raise lights
the face the second one renamed.

* Browser: light the feature of a picked face, not its whole body

Picking a face in the view lit the body's row as if the body were selected,
which in NX is not what a face pick shows: the Part Navigator marks the
feature the face belongs to. Faces, edges and vertices no longer light their
body row; the feature row of the picked face shows as selected instead
(`picked_feature`), while the session's selection stays the face or edge, so
Replace Face, sketches and the rest keep the pick they take.

The live face of the view still lights the face itself; the timeline already
marked the feature of a picked face and is unchanged.

Tests: the browser's 178 tests pass (selection arrays unchanged; only the
rows lit differ).

---------

Co-authored-by: clarkliu <277482660@qq.com>
2026-10-31 16:26:05 +00:00
semmelrinde d95b8208b3 Sketch Fillet: a radius of half a side rounds both its corners (#2500) (#8238)
The second fillet of a side whose radius is half its length needs all
that is left of the line, and was refused as too large. Such a fillet
now takes the whole line: the line goes, the arc ends where the line did
and is tangent to the curve that goes on from there. A 20 x 10 rectangle
filleted with r = 5 becomes a slot, a 10 x 10 square a circle. Several
corners in one call keep their arcs by id, as removing a line renumbers
the curves.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 16:15:20 +00:00
semmelrinde 99f8cff454 Sketch Fillet: a corner held by Coincident takes a fillet when a dimension measures to it (#7507) (#7778)
* claim: #7507

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Sketch Fillet: a corner held by Coincident takes a fillet when a dimension measures to it (#7507)

Before rounding a corner whose two lines meet only through a
Coincident constraint, Fillet and Chamfer weld the two points into
one, but not when anything else referred to the second line's point,
such as a dimension measuring to the corner: the fillet was then
refused ("the lines must share a corner point"). The point is now
welded as well, and what referred to it refers to the corner, the
same place. A point that a constraint names together with the corner,
or a linked point, is still not welded.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 16:15:04 +00:00
semmelrinde 3292cba4ad Sketch Fillet and Chamfer: two lines that share no end are brought to where they meet (#6912, #7759) (#8426)
Two selected lines that stop short of each other or cross were refused
with "the lines must share a corner point". Now each line's end on the
shorter side of their meeting point moves there first (extending a line
that stops short, cutting a line that runs past), and the corner is
rounded or cut as before. Parallel lines, ends held by other geometry
and lines whose length is held are refused and change nothing.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 16:14:40 +00:00
semmelrinde 6fa023b3ab Sketch Break: refuse an offset's curves, as Trim and Extend do (#8645)
An offset's ends follow its source curves on every solve, so a break's new
ends were pulled back: a broken offset arc came out in three pieces going
the long way round, and the solve moved curves the break never touched.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 16:14:14 +00:00
lewis2e 510378d965 Sketch offset: an offset circle no longer reports a degree of freedom (#9264) (#9573)
The offset sets an offset circle's radius from its source after the solve,
but the solve still counted that radius as a free unknown, so a
dimensioned circle and its offset reported 1 DOF instead of 0. Lines and
arcs were not affected: the offset already holds their end points. The
solve now holds an offset circle's radius too.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 16:12:29 +00:00
github-actions[bot] c8a9159ac5 Regenerate generated files and fold pending files [skip ci] 2026-10-31 16:47:49 +00:00
github-actions[bot] fca86a414e Regenerate generated files and fold pending files [skip ci] 2026-10-31 16:39:00 +00:00
Colin Faulkingham b76fcae341 Preferences: retain Show tool at cursor between sessions (#10033) (#10049)
* claim: #10033

* fix(ui): persist tool cursor preference (#10033)
2026-10-31 16:10:37 +00:00
phanoob e64202417f Pattern and Mirror dialogs: explain Object Type, and say why a sketch is not taken (#10057) (#10097)
* claim: #10057

* Pattern and Mirror dialogs: explain Object Type, and say why a sketch is not taken (#10057)

The Object Type row of the Rectangular, Circular and Path Pattern and Mirror
dialogs gets a tooltip saying what Bodies and Features are and that a sketch
is neither. A sketch clicked for their objects, in the view, the Browser or
the History, now shows a hint naming what to pick and what to do with a
sketch instead of being ignored.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 16:10:09 +00:00
PaddleStroke 6a4b5c90c8 Properties: measure faster, show progress, and stop when closed (#8706) (#8730)
* claim: #8706

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Properties: measure faster, show progress, and stop when closed (#8706)

Properties on a large assembly measured every placed copy of every body
afresh (transform plus three fine tessellations each), so it took minutes.
#5203 (in #8103) already moved the measurement beside the window; this
builds on it.

- A rigid placement reuses the body's own cached measurement: volume, area
  and counts unchanged, centre placed, box from the placed corners (quarter
  turns) or from the body's shared mesh placed (other turns). Scaled or
  mirrored placements are still measured as placed.
- Bodies are grouped by component once and the subtree traversal groups
  occurrences by parent once (both were quadratic).
- The measurement beside the window is watched by a Progress: the card
  says "Measuring... n of N bodies" with a bar, and closing it (or
  switching designs) cancels the worker at its next body instead of
  leaving it running.
- component.properties and occurrence.properties are answered on a copy for
  control-channel requests too, as inspect.measure is.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Properties: count the measuring work instead of timing it in the reuse test (#8706)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 16:04:38 +00:00
Colin Faulkingham 2e981d66e8 Sketch: allow dimension edits with tangent caps (#4823) (#9494)
* claim: #4823

* fix: resize sketches with tangent offset caps (#4823)
2026-10-31 16:04:29 +00:00
PaddleStroke ef0914ff94 Design tabs: optionally keep each design's dialog, tool and toolbar tab (#9360) (#9656)
A switch between design tabs cancels the open dialog and tool of the design
left and shows MODEL. With the new Interface preference "Keep dialogs and
tools open when switching designs" (keep_work_on_tab_switch, off by default)
each tab keeps its dialog (with its picks and values), its editing state, its
tool and its toolbar tab, and has them back when it is shown again. A feature
still computing after OK is cancelled as before. A feature edit's saved source
revision follows the view refresh of the switch, so its Cancel still restores
the history.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 16:04:22 +00:00
froglemonade2 0476154973 Update Links: linked designs that changed while the tab was away come back as one undo step (#9743) (#9753)
* claim: #9743

* Update Links: linked designs that changed while the tab was away come back as one undo step (#9743)

Coming back to an assembly's tab read each changed link in an Update Links
run of its own, so each became its own undo step: one Undo took back one
component and left another copy of the same part at the new version.

component.update_links now takes `components`, a list, and goes on past a
design it cannot read: that link keeps its bodies, is named in `failed` and
gets a warning. The tab return sends one request with every changed link,
records as read only the ones that were, and says on the status line which
one could not be read.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 16:04:05 +00:00
Thodoris Tsagkogeorgas 5e265089c7 Sketch: offset corners trim when they cross and extend when they fall short (#10089)
The chain walk follows ends that share a point, a coincident constraint, or
the same position. The offset then meets at the intersection.
2026-10-31 16:03:31 +00:00
semmelrinde 31a0c99a2c Delete: the delete runs with what its check computed ahead, instead of building the history again (#9917) (#10090)
* Delete: the delete runs with what its check computed ahead (#9917)

With the history rolled back, a delete builds the history after the
marker to see what it breaks, once in the check that runs off the window
thread (Session::ahead) and once more in the delete itself, on the window
thread. The check's results were lost on the way: the dry run's scratch
session and the whole-history copy dropped what the model keeps, and the
check's kept results never reached the delete. The scratch and the copy
now keep what their model keeps, and the delete (at once or after the
confirmation) runs with the check's kept results, so it finds the
history there instead of building it again.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Delete: test that a confirmed delete runs with what its check kept (#9917)

With the history rolled back, deleting a side of the plate's outline is
checked off the window thread and confirmed first; the confirmation
carries the check's kept results, and the delete adds nothing to them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 15:19:57 +00:00
Dahak Builds ce3b0d4086 Hide the origin point behind bodies like the axes and planes (#10050) (#10103)
* claim: #10050

* Hide the origin point behind bodies like the axes and planes

The origin point is a flat dot painted after the 3D scene, so it always sat
over bodies while the axes and planes respect the through-bodies rule
(#2697, #2618). Ask the meshes the same question the depth test asks the
axes: is a nearer kept face in front of the origin along the view ray.

Fixes #10050

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-10-31 15:14:46 +00:00
austin62jake d782d45cce Sketch: a centre rectangle's centre lines up with the axes when dragged (#10086) (#10087)
* Sketch: a centre rectangle's centre lines up with the axes when dragged (#10086)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Sketch: a centre rectangle's centre lines up with the axes when dragged (#10086)

A centre rectangle's centre is held at the middle of a construction
diagonal (Midpoint), on none of its curves. Dragged by the centre, the
rectangle's own lines stayed snap targets and held the centre at their
middle, so it never lined up with the origin; dragged as a whole, the
centre wasn't a moving point, so only the corners lined up.

drag_snap::moving_points now takes all dragged entities at once and
treats a point held at a line's middle as going where the line's ends
go: it moves with a line whose two ends move, and when it is dragged
its line and the shape round it are no targets.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-31 14:31:19 +00:00
Dahak Builds 9a44641970 Fix Circular Pattern dialog showing two fields active at once (#10066) (#10078)
* claim: #10066

* Keep one dialog field active at a time (#10066)

Pick fields drew their accent ring from the dialog's active-input index
while text editors drew theirs from egui keyboard focus, so a Circular
Pattern dialog could show Axis and Quantity active together. A pick
field now drops its ring while a text editor holds the keyboard, and
clicking a pick field (or its clear button) takes the keyboard back.
Selection routing (d.active) is unchanged.

* Format editor_has_focus onto one line

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-10-31 14:01:09 +00:00
austin62jake 2b1ca94e2d Navigation: wheel and trackpad gestures go on under a value box (#10061) (#10073)
* Navigation: wheel and trackpad gestures go on under a value box (#10061)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Navigation: wheel and trackpad gestures go on under a value box (#10061)

Any area above the model took navigation's wheel input, so a two-finger
pan, orbit or zoom stopped as the pointer crossed a floating value box
(Extrude's distance), and none could start over one. Model-anchored
canvas areas (Surface::Canvas: value boxes, a dimension's editor,
readouts) scroll nothing: navigation's wheel, trackpad pan and orbit and
pinch now go on under them. Their clicks stay theirs, and with value
stepping on the wheel stays with the value under the pointer.

Container::area records the canvas areas it builds; navigation asks
whether the top layer under the pointer is one (container::is_canvas).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-31 14:01:05 +00:00
github-actions[bot] f30fce0fc1 Regenerate generated files and fold pending files [skip ci] 2026-10-31 14:25:05 +00:00
github-actions[bot] f4b74fcb1b Regenerate generated files and fold pending files [skip ci] 2026-10-31 14:17:58 +00:00
semmelrinde 59efc86826 Rename Body: a pasted placement's body renames by the name the browser shows (#10017) (#10026)
* Rename Body: a pasted placement's body renames by the name the browser shows (#10017)

The browser lists the bodies of a component's second placement by their
placed names (`KB (K:2)`) and the context menu's Rename sends that name,
but body.rename looked it up only among the model's own bodies and
refused it ("no body"). It now takes a placed copy's name as the body it
shows, as appearance.assign does (#9740): the body is renamed in its
component, so every placement shows the new name.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Rename Body: test renaming a pasted placement's body by its placed name (#10017)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Rename Body: the test also hides the copy first and undoes the rename (#10017)

A copy hidden by its placed name stays hidden under its new name, and
one undo brings both names back (checks from the review on #10026).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 13:48:14 +00:00
leValdemar19 24ce89e0fc Modify ▸ Delete with nothing selected asks for a pick instead of a parameter error (#9079) (#9114)
* claim: #9079

* Modify ▸ Delete with nothing selected asks for a pick instead of a parameter error (#9079)

Starting `timeline.delete` from the ribbon, the command palette or the
control channel ran it with no parameters, so the notice showed the
engine's check ("`features` must list features, or `groups` timeline
folders"). It now deletes what is selected, as the Delete key does, and
with nothing selected shows a hint saying what to pick, changing nothing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 13:35:33 +00:00
rugbymauri a476e645b0 Browser: F2 renames a selected group (#10005) (#10013)
* claim: #10005

Signed-off-by: Maurizio Monticelli <maurizio@whatwedo.ch>

* F2 renames a group clicked in the Browser (#10005)

A group has no selection of its own: clicking its Browser row only
records it as the picked folder, which V uses. F2's rename_selection
looked only at the selection, picked components and canvases, so on a
group it did nothing, or renamed a body that was still selected.

F2 now takes a clicked group row first, as V does, and opens the same
Rename box as the group's context-menu Rename, which commits through
browser.rename_group. This works for groups inside components as well.

Fixes #10005

Signed-off-by: Maurizio Monticelli <maurizio@whatwedo.ch>

---------

Signed-off-by: Maurizio Monticelli <maurizio@whatwedo.ch>
2026-10-31 13:35:26 +00:00
leValdemar19 3385d1c570 Viewport: dark parts keep their shape: linear-light shading and a sky fill (#7974) (#9028)
* claim: #7974

* Viewport: dark parts keep their shape: linear-light shading and a sky fill (#7974)

Preferences > Graphics "Keep the shape of dark parts" (off by default)
shades the viewport in linear light: the key light and eye fill over a
sky fill that grows as a face turns up, plus the 4% of that sky every
dielectric reflects (a little more toward grazing), encoded to sRGB
once. Near-black faces keep a gradient; light and mid-grey faces stay
within a few levels of the sRGB shading. The world's up direction and
the switch ride in a new `sky` vec4 at the end of the viewport uniform,
and the frame key, so turning it on redraws. Off, the shader takes the
old path unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 13:30:07 +00:00
austin62jake f0acea0992 Preferences: a shortcut recorded from a search result takes the key (#10043) (#10058)
* Preferences: a shortcut recorded from a search result takes the key (#10043)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Preferences: a shortcut recorded from a search result takes the key (#10043)

A Preferences search lists matching shortcuts with their key buttons,
but a recording started there only counted while the Shortcuts page
itself was open, and the page skipped its recorder during a search: the
key went into the search box and ran its command behind Preferences.

keymap::capturing now counts a recording while a search shows, and the
recorder runs for it; clicking back into the search field stops the
recording, so the search keeps its own typing. The recording's message,
a taken key's Use anyway / Cancel choice and the next-step hint show
above the search's shortcut matches too (outcome, shared with the page).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-31 13:28:40 +00:00
Colin Faulkingham 6047c0d5a1 Viewport: keep the ground grid stable through grazing views (#10014) (#10031)
* claim: #10014

* fix(ui): stabilize the ground grid near the horizon
2026-10-31 13:28:34 +00:00
Dahak Builds 34c378c063 Save As: rename the design to the new file's name (#4907) (#10036)
* claim: #4907

* Save As: rename the design to the new file's name when its name was borrowed (#4907)

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-10-31 13:22:10 +00:00
github-actions[bot] dc6e25250c Regenerate generated files and fold pending files [skip ci] 2026-10-31 13:48:06 +00:00
ashxddaga 2e22ff8035 fix(ui): disable bold in Edit Text when font has no bold face (#9940) (#9958)
* fix(ui): disable bold in Edit Text when font has no bold face (#9940)

- Check whether font has bold face via font_data_styled() before enabling bold toggle
- Automatically uncheck bold and disable bold button with explanatory tooltip for built-in font
- Prevent sending bold: true in sketch.edit_text when font lacks bold face
- Add unit regression test in sketch_text::tests

Fixes #9940

* style: format choice.rs in ui_kit

* i18n: move sketch_text.no_bold to pending locale catalog with complete translations

* test(sketch_text): assert disabled bold on built-in font without error (#9940)
2026-10-31 12:57:46 +00:00
rugbymauri cb9b50b11e Assistant: switching models no longer reports "Method not found" for session/set_model (#9970) (#10022)
* claim: #9970

Signed-off-by: Maurizio Monticelli <maurizio@whatwedo.ch>

* Agent chat: no error when an agent does not serve session/set_model (#9970)

An ACP agent can list models in the unstable `models` field of its
session/new reply without serving `session/set_model`; it answers
JSON-RPC -32601 and the Assistant showed that as an error each time the
model was switched. Agents that offer the model as a configuration option
already go through session/set_config_option. A -32601 reply to
session/set_model is now logged at debug level instead of shown; every
other error still shows.

Fixes #9970

Signed-off-by: Maurizio Monticelli <maurizio@whatwedo.ch>

---------

Signed-off-by: Maurizio Monticelli <maurizio@whatwedo.ch>
2026-10-31 12:51:26 +00:00
github-actions[bot] a22aeaaf93 Regenerate generated files and fold pending files [skip ci] 2026-10-31 13:19:38 +00:00
semmelrinde d4eeedbf95 Delete: in a rolled-back history, the check builds the history once when nothing breaks (#9917) (#9972)
* Delete: the check in a rolled-back history builds the history once when nothing breaks (#9917)

With the history rolled back, the check before a delete (which features
the delete would break) built the whole history twice, before and after
the change, with the marker removed. On a large design each build ran
every boolean after the marker: deleting twelve splines took half a
minute on the window thread. Only a feature that fails after the change
can be newly broken, so the history after it is built first, and when
nothing fails there the history before it isn't built at all.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Delete: test that the check in a rolled-back history still reports what breaks (#9917)

Deleting a hole in the plate changes the plate and every cut after the
marker and breaks none of them: the check reports nothing. Deleting a
side of the outline breaks the plate, and the check still says so, with
a cache too small to keep a state.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 12:29:30 +00:00
Colin Faulkingham c512c8e86a Feature editor: close when its feature is removed (#9394) (#10027)
* claim: #9394

* Fix stale feature editors after Undo and deletion (#9394)
2026-10-31 12:26:46 +00:00
SilentWolf75 1bcc1125f0 Graphics: apply the chosen card, or say when it could not (#8341) (#9252)
* claim: #8341

Co-authored-by: Cursor <cursoragent@cursor.com>

* Graphics: keep a preferred card when surface marks it incompatible (#8341)

Prefer the saved adapter by exact then case-insensitive name, including when only listed as surface-incompatible, and explain in Preferences when another card is still in use.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Format and clippy

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: bherbruck <brennen.herbruck@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 12:00:52 +00:00
ashxddaga 7c013333db feat(engine,ui): allow restricting point-to-point align to chosen axes (#9946) (#10015)
* feat(engine,ui): allow restricting point-to-point align to chosen axes (#9946)

* style: apply cargo fmt across crates

* fix(clippy): use filter then map instead of bool::then in filter_map
2026-10-31 12:00:17 +00:00
kaltenbrunnermarkus 7e0f8a9a4c History: build the row plan once per revision and draw only the visible rows (#9616)
* claim: History: build the row plan once per revision and draw only the visible rows

* History: build the row plan once per change and draw only the rows in view

The vertical History worked out its rows from the design on every frame: for each row it
searched every folder's last feature (cubic in features and folders), cloned every name, and
looked up each row's result, sketch and selection by a linear search. It also drew and
hit-tested every row, including the ones scrolled out of view.

- The row plan (features, folders' depth, extent, header places, contents and joints, the rows
  with listed sketches, which sketches have patterns) is built once per design change, keyed
  by session, revision, marker, counts and the "Sketches: under their feature" choice, and kept
  in the egui context; the visible order is kept beside it until a folder or fold opens.
- A feature row outside the scroll area's clip takes its place and publishes its handles, but
  is not drawn or made interactive; one being found, dragged or focused, or under an open
  menu, is drawn as before.
- Selection and results are collected once per frame; folder rows read their contents from
  the plan.
- The horizontal strip collects the picked features (selection and dialog items) once per
  frame and writes a chip's tooltip only while it shows.

Tests compare the plan with the per-frame searches it replaced on tangled folders in every
fold state, the kept plan with a fresh one after each kind of change, and the History drawn
with every row against the culled one (same places, same text in view, fewer rows drawn).
An ignored test times the panel on a large design.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drop a needless borrow

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: bherbruck <brennen.herbruck@gmail.com>
2026-10-31 11:54:50 +00:00
SilentWolf75 18e200f262 UI: recover chrome after sleep wakes a black window (#8749) (#8952)
* claim: #8749

Co-authored-by: Cursor <cursoragent@cursor.com>

* Recover egui chrome after a long pause between frames.

Sleep/wake can leave the window black while the GPU device stays up: re-upload
the font atlas, clear cached icon textures, and repaint when the frame clock
jumps so the ribbon and panels are not stuck blank (#8749).

Co-authored-by: Cursor <cursoragent@cursor.com>

* Format

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: bherbruck <brennen.herbruck@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:54:16 +00:00
github-actions[bot] bd0f0f3471 Regenerate generated files and fold pending files [skip ci] 2026-10-31 12:39:18 +00:00
github-actions[bot] e39d741862 Regenerate generated files and fold pending files [skip ci] 2026-10-31 12:30:11 +00:00
austin62jake ea9ea7bba8 Sketch: a driven dimension nothing fixes any more takes a value again (#10018) (#10023)
* Sketch: a driven dimension nothing fixes any more takes a value again (#10018)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Sketch: a driven dimension nothing fixes any more takes a value again (#10018)

A dimension placed while a constraint fixed what it measures goes in
driven, and stayed driven once that constraint was deleted: a
double-click only said it has no value to edit. The double-click now
tries making it driving on a scratch copy; when nothing else fixes it,
the value box opens at the measured value, and Enter makes it driving
(sketch.toggle_driven) at the typed value (parameters.change) in one
undo step. A refused value goes back to a checkpoint, so it stays
driven. While something still fixes it, it stays read-only as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-31 11:53:42 +00:00
sascha2101 07fa5e4f1f Sketch: Project gives its new curves the selected line type (#9945) (#10009)
* claim: #9945

* Sketch: Project gives its new curves the selected line type (#9945)

The sketch palette gives the drawing line type (construction, centerline, infinite) to the
curves a SKETCH › CREATE command reports under `curves`. Project reports what it made per link,
`links[].curves`, so its curves were never found and stayed normal lines whatever the palette
said. `apply_mode` now also reads the links' curves, so a projected line becomes construction,
centerline or infinite and a projected circle construction, in the projection's own undo step.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EMbqRqYimvY26QzcvrojSC

---------

Co-authored-by: sascha2101 <221609842+sascha2101@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:40:14 +00:00
semmelrinde 2a51f42495 Serbian: translate the 373 messages main gained after batch 9, the toolbar's command help included (batch 10) (#10001)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:25:34 +00:00
HiroKenEz 8f259d5b83 Sketch: the Line tool can switch to a tangent arc and back without changing tool (#9489) (#9553)
* claim: #9489

* Sketch: the Line tool can switch to a tangent arc and back without changing tool (#9489)

With Preferences > Sketch > "Rest on a line's last point to switch to a
tangent arc" on (off by default), leaving the chain's last point and resting
back on it for 0.35 s makes the next click a tangent arc, by the existing
sketch.arc.tangent command, and the same gesture goes back to lines. A label
at the cursor says which. sketch.arc.tangent's end can now name an existing
point, so an outline drawn this way closes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Sketch: the cursor label names the command in words (#9489)

The label asked the catalog for a message id that doesn't exist, so it showed
the id. It now takes the command's translated label, and the test checks the
words it paints. Moved clear of the pointer's own badge.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:21:59 +00:00
semmelrinde a6b9d5a5b2 Browser: a sketch shown before an Extrude still hides once it is used (#9954) (#9971)
Show/Hide put every sketch it showed in `shown_sketches`, the list of
finished sketches kept shown although a feature uses them. Hiding and
showing a sketch nothing used yet put it on that list, so once an
Extrude used it, it stayed shown instead of hiding itself as a sketch
never hidden does. Show now marks only a sketch a feature already uses;
one nothing uses is shown anyway and leaves the list alone.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:19:34 +00:00
semmelrinde 18e4b9ea9f Bosnian: translate the 373 messages main gained after batch 9, the toolbar's command help included (batch 10) (#9999)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:19:27 +00:00
semmelrinde 7cccb2b52e Croatian: translate the 373 messages main gained after batch 9, the toolbar's command help included (batch 10) (#10000)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:19:21 +00:00
semmelrinde 7d7a1ecfa5 Russian: translate the 373 messages main gained after batch 9, the toolbar's command help included (batch 10) (#10002)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:19:04 +00:00
semmelrinde 1202a79e25 Danish: translate the 349 messages main gained after batch 9, the toolbar's command help included (batch 10) (#10003)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:18:58 +00:00
semmelrinde fbafdfdcb6 Ukrainian: translate the 349 messages main gained after batch 9, the toolbar's command help included (batch 10) (#10004)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:18:52 +00:00
semmelrinde 2744063631 Norwegian Bokmål: translate the 373 messages main gained after batch 9, the toolbar's command help included (batch 10) (#9998)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:17:23 +00:00
Frank 8e53d5050e View corner Cancel: cancel an unfinished tool before the sketch (#6709) (#9584)
* claim: view corner Cancel cancels an unfinished tool first (#6709)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* View corner Cancel: cancel an unfinished tool before the sketch (#6709)

With OK and Cancel in the view's corner on, the cross took the whole sketch
even with a line half drawn. It now takes the steps one Esc takes first (a
drag, Select Other, the tool's points, then the tool) and cancels the sketch
only when nothing is unfinished. Esc and the cross share cancel_unfinished.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:12:36 +00:00
github-actions[bot] fde56d3c8b Regenerate generated files and fold pending files [skip ci] 2026-10-31 12:05:01 +00:00
github-actions[bot] 81a6a3dcde Regenerate generated files and fold pending files [skip ci] 2026-10-31 11:55:25 +00:00
Colin Faulkingham 3eb76a8b3b Agent chat: continue after creating or opening a design (#7526) (#9980)
* claim: #7526

* Agent chat: continue across agent-initiated design changes
2026-10-31 11:12:00 +00:00
semmelrinde 60de59d5a9 Czech: translate the 373 messages main gained after batch 9, the toolbar's command help included (batch 10) (#9984)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:11:54 +00:00
semmelrinde ad0b5c9d05 Hungarian: translate the 373 messages main gained after batch 9, the toolbar's command help included (batch 10) (#9986)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:11:48 +00:00
semmelrinde ff08eb0043 Italian: translate the 371 messages main gained after batch 9, the toolbar's command help included (batch 10) (#9987)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:11:41 +00:00
semmelrinde 6bfd53a55a Dutch: translate the 371 messages main gained after batch 9, the toolbar's command help included (batch 10) (#9988)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:11:35 +00:00
semmelrinde 709cb62fe8 Romanian: translate the 373 messages main gained after batch 9, the toolbar's command help included (batch 10) (#9989)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:11:29 +00:00
semmelrinde ee4786cd8f Swedish: translate the 373 messages main gained after batch 9, the toolbar's command help included (batch 10) (#9991)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:11:23 +00:00
semmelrinde 6a4fef151f Turkish: translate the 373 messages main gained after batch 9, the toolbar's command help included (batch 10) (#9992)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:11:16 +00:00
semmelrinde d3574dd493 Traditional Chinese: translate the 373 messages main gained after batch 9, the toolbar's command help included (batch 10) (#9993)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:11:10 +00:00
semmelrinde d2a3430147 Malay: translate the 373 messages main gained after batch 9, the toolbar's command help included (batch 10) (#9995)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:11:04 +00:00
semmelrinde 598556bca9 Indonesian: translate the 373 messages main gained after batch 9, the toolbar's command help included (batch 10) (#9996)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:10:58 +00:00
semmelrinde 80341ec13b Galician: translate the 373 messages main gained after batch 9, the toolbar's command help included (batch 10) (#9997)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:10:52 +00:00
github-actions[bot] 7be5d93e51 Regenerate generated files and fold pending files [skip ci] 2026-10-31 11:28:33 +00:00
HiroKenEz 5bb3b6717f Equation curves: the variable can carry its range's unit (#9333) (#9549)
* claim: #9333

* Equation curves: the variable can carry its range's unit (#9333)

A curve can set variable_unit "range" (or tick the new box in its window): the
variable is then a length, so a ^ 2 / (4 * t) is a length when a is one. Start
and end must both be lengths, or one a length and the other a plain number in
the design's unit; anything else is refused. Saved only when set, as one pending
format change; without it curves behave as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 10:54:06 +00:00
kaltenbrunnermarkus 5b6e5815a3 Engine: lower the per-command cost of evaluating large designs (#9615)
* claim: Engine: lower the per-command cost of evaluating large designs

* Engine: lower the per-command cost of evaluating large designs

- The fingerprint texts of features are kept in one store shared by every
  worker, not per worker: a command evaluated ahead runs on a new worker each
  time, where the per-worker store was always empty and every feature was
  written out again. Same texts, same hashes.
- Pinning body names after a command keeps, per feature, the names of the
  bodies it made with the state they were read from, so it no longer searches
  every result's bodies (features x bodies per command), and finds results by
  their index before searching.
- Pinning fingerprints the timeline again only from the first renamed feature
  (or a pattern or mirror of features replaying one) when the model proves its
  fingerprints are the design's; the fingerprints are those of the full pass.
- The evaluation cache's byte count looks bodies and sketches up instead of
  searching them per body (bodies squared per feature). Same counts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 10:51:16 +00:00
github-actions[bot] 376c313214 Regenerate generated files and fold pending files [skip ci] 2026-10-31 10:41:12 +00:00
Colin Faulkingham ab665ee3b3 Edit Sketch: open an existing sketch from the ribbon (#9705) (#9829)
* claim: #9705

* Fix Edit Sketch ribbon selection and chooser (#9705)
2026-10-31 10:13:35 +00:00
sascha2101 f0d47e1d26 Preferences: turn the view to isometric when Extrude opens, and back afterwards (#9176) (#9948)
* claim: #9176

* Preferences: turn the view to isometric when Extrude opens, and back afterwards (#9176)

Two new preferences on the Design page, next to "Extrude to a picked target", both off by
default:

- `extrude_view_isometric`: each time Extrude opens, the view turns to the isometric view, so
  the depth can be seen right after a sketch seen face-on.
- `extrude_view_return` (only with the first): when Extrude closes, by OK, Cancel or Esc, the
  view goes back to where it was before it turned, keeping the projection as the end of a sketch
  does (#7038). The check is per frame, so every way the dialog closes is covered.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EMbqRqYimvY26QzcvrojSC

---------

Co-authored-by: sascha2101 <221609842+sascha2101@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 10:13:08 +00:00
Dahak Builds a2365228ab eval_more: one FaceSlice value for the face helpers (#2684) (#9960)
* claim: #2684

* eval_more: one FaceSlice value for the face helpers (#2684)

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-10-31 09:52:29 +00:00
froglemonade2 e2a7a45c44 MCP: batch and execute take expect {volume, bodies, bbox} and flag a mismatch (refs #3380) (#9904)
* MCP: batch and execute take expect {volume, bodies, bbox} and flag a mismatch (refs #3380)

An optional `expect` argument on the `batch` and `execute` tools: the volume
(with a relative `tol`, default 0.002), body count and bounding box (0.05 mm)
the agent computed before building. Once the call has gone through the server
measures the design as the `measure` tool does and the reply gains
`expectation: {ok, measured, expected, mismatch}`. A mismatch flags the tool
result `isError` with the mismatch text first; the design is kept as built.
A malformed `expect` is refused before anything runs. Without `expect`
nothing changes, and a batch step carrying one is a step with a stray key.

In 29 logged agent sessions every agent computed these numbers beforehand
and then spent a `measure` call plus a comparison by hand after every stage;
one missed a 0.25 mm skin until it compared. Volume and body count are
kernel-independent checks.

Refs #3380

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* MCP expect: filter then map for the bbox coordinates that are off (clippy)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* MCP: expect's coordinate text helper no longer shares a name with the JSON reader

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: bherbruck <tenbee91@gmail.com>
2026-10-31 09:48:08 +00:00
kaltenbrunnermarkus fa21db7df8 Save: hard-link the backup copy and check for unsaved changes once per revision (#9617)
* claim: Save: hard-link the backup copy and check for unsaved changes once per revision

* Save: keep the backup as a hard link and check for unsaved changes once per revision

The backup of a save is the old file under a second name (a hard link renamed over the
old .bak) instead of a copy written out again; where links are refused (FAT, shares,
cloud folders) or the old file cannot be flushed, it is copied as before. Every point a
save can stop at leaves the design file whole and the backup the version before it.

Session::is_dirty compared the whole document with the saved one each time it was asked,
which the window does every frame for every tab. The answer is kept per revision and pair
of documents; the cache holds both, so neither can change in place while it stands, and
doc_mut lets it go first so edits stay in place.

On the rover in two unsaved tabs an idle frame takes 15.0 ms instead of 19.3 ms; a save
with its backup of the 11.8 MB file writes in 9.6 ms instead of 18.9 ms.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 09:29:20 +00:00
github-actions[bot] 4fda59af80 Regenerate generated files and fold pending files [skip ci] 2026-10-31 09:45:43 +00:00
MarkusRe 776dfc9c18 Agent chat: the system note reaches agents beyond the Claude adapter (#9811) (#9818)
* claim: #9811

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Agent chat: the system note reaches agents beyond the Claude adapter

The note only went out as `_meta.systemPrompt.append`, an extension of the
Claude adapter, so Codex and Antigravity never saw it. It now also goes in
the standard ACP `systemPrompt` field for agents that offer it, and in
`_meta.antigravity.systemPrompt.append` for Antigravity.

Fixes #9811

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 09:16:41 +00:00
P'tite Tête 6583c28231 fix: French catalog complete, 342 missing messages translated (#9941)
- 247 help texts (help.*) and 95 UI messages: theme options, viewport status, quick measure, personal sheet-metal rules, analysis details, sketch report
- Terms aligned with fr.json; no-break space before : ; ? ! as in the catalog
- Pending file, folded on main after merge

Co-authored-by: P'tite Tête <asso@ptitetete.com>
2026-10-31 09:16:34 +00:00
N3MI-DG 6b24775413 Extrude: with every body hidden, a new extrude stays New Body instead of turning to Cut (#9919) (#9920)
* claim: #9919

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Extrude: with every body hidden, a new extrude stays New Body instead of turning to Cut (#9919)

Smart Extrude passed the shown bodies as `participants` to keep hidden
ones out (#6901), but with none shown that list was empty, and the
engine reads an empty list as the whole scope: a profile on a hidden
body chose Cut, which has no shown body to change, so nothing was
previewed and OK did nothing. With no body shown it now chooses New
Body.

The operation it latches for a side is also decided again when a body
is shown or hidden while the window is open, as a new start already
does (#467): showing the body an extrude goes into turns it to Cut,
hiding it again back to New Body.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 09:16:30 +00:00
austin62jake c4f9269409 Report a bug: the window can be dragged by its title (#9916) (#9934)
* Claim #9916

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Report a bug: the window can be dragged by its title (#9916)

The window was pinned at the top middle of the screen (ui_kit::Window
anchor), over the model, in a sketch or not. It now starts there and can
be moved (`placed`), as the file-load card can.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-31 09:16:04 +00:00
froglemonade2 9b31d29443 MCP: server instructions that say how to plan, build and verify (refs #3380) (#9903)
The `initialize` instructions were one paragraph of command shapes. Replace
them with version-neutral guidance: read `skill_reference solidcraft-modeling`
first, plan the numbers, build in a few `batch` calls, the primitive routes
and the fillet-shell-inside-holes order, what follows a parameter, `measure`
after each stage with a coalesced parameter check, and `timeline.edit` /
`parameters.change` / `edit.checkpoint` to fix instead of rebuilding. The
Assistant's system note gets the same pointer; docs/mcp.md says so.

`instructions_name_only_real_tools` now checks the command ids as well as the
tools, and `instructions_recipe_builds_a_parametric_shelled_box` builds a part
the way the instructions describe and checks its volume, axes and parameters.

Refs #3380

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-31 09:09:53 +00:00
froglemonade2 e16647a63f MCP: measure summary and body_topology faces: cylinders for small verification replies (refs #3380) (#9853)
* MCP: measure summary and body_topology faces: cylinders for small verification replies (refs #3380)

`measure {"summary": true}` replies one short object per body (name,
volume_mm3, bbox, faces, closed) with body_count and total.volume_mm3,
as a tool and as a batch step. `body_topology {"faces": "cylinders"}`
replies only the cylindrical faces, the kernel's split halves merged
by radius and axis line into {radius, origin, axis, extent, names},
and no edges. Both defaults are unchanged. The merge uses only what
model.faces and model.edges already reply.

Measured on a 13-feature enclosure, body_topology is 74 KB and measure
1.1 KB per body; agents filter them with scripts, and seven of 29
benchmark runs asked for exactly a cylinders-only listing.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* MCP: keep body_topology's cylinder merge next to check_parameters' without a name clash

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: bherbruck <tenbee91@gmail.com>
2026-10-31 08:56:37 +00:00
Wenyao Ma 5281734a22 UI: add theme-aware button hover and press feedback (#4984) (#5331)
* fix(ui): add theme-aware button interaction feedback (#4984)

* fix(ui): preserve footer button identity in overlapping dialogs

* fix(ui): preserve native button widths in toast actions
2026-10-31 08:32:45 +00:00
austin62jake b5fe8776b5 Assembly: default names skip names in use (part of #9738) (#9898)
* Claim part of #9738

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Assembly: default names skip names in use (part of #9738)

Contact sets, motion studies and exploded views were named by how many
there were, and a component's placements by how many it had, so after a
delete the next default name repeated one still in use, and commands
given that name acted on the first. They now take the first number no
item has, as joints' and the app's dialogs' default names already do; a
placement keeps the next number when it is free.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-31 08:28:50 +00:00
Dahak Builds 8986a670e5 3-Point Circle keeps snapped clicks as coincident constraints (#9858) (#9922)
* claim: #9858

* 3-Point Circle keeps snapped clicks as coincident constraints (#9858)

The tool sent only the three clicked positions, so a click snapped to a
point or curve left no constraint and the circle was free once drawn.
Each click now goes as its snap, as the 3-Point Arc's do, and the engine
adds a PointOnCurve for each referenced point, as the centre circle's
through click does (#3099).

* Fix #9858 test: assert the clicked midpoint point, not the line end

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-10-31 08:27:13 +00:00
froglemonade2 c528964363 MCP: check_parameters tries parameter values and puts the design back (refs #3380) (#9910)
A new tool that checkpoints the design, sets every value in one
parameters.change, reports measure, errors and cylinder axes, and
restores the checkpoint, so the loop set_parameter / measure /
body_topology / set back costs one call and one rebuild.

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-31 08:24:41 +00:00
github-actions[bot] 251c20bef0 Regenerate generated files and fold pending files [skip ci] 2026-10-31 07:53:06 +00:00
austin62jake 3c0d4e120e Linked designs: one changed while the assembly was closed is read again when it opens (#9739) (#9872)
* Claim #9739

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Linked designs: one changed while the assembly was closed is read when it opens (#9739)

A link now keeps the SHA-256 of its design file's bytes as the assembly
last read them (DesignLink::file_sha256, a pending format change), set by
Insert Design, Relink, Extract to File and Update Links. component.links
reports `changed` from it, hashing a file again only when its time or
size changed (vfs::design_path_stamp, behind the design-path rule). The
app treats a link it meets for the first time whose file changed as not
read yet, so opening an assembly, in its own tab or in place of the blank
design, reads those parts again as a tab coming back does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Linked designs: read what changed last when a design opens in place of the blank one (#9739)

A read is taken up only by the design revision it started from, and
adopt bumped the revision after starting it, so the read was dropped.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-31 07:28:24 +00:00
Badger B bfd6aa9b7d Add German translations, batch 9 (#7237) (#9915)
Adds the last 79 German translations for messages that exist in en.json
but are missing from de.json, in a new pending file as described in
assets/locales/pending/README.md. Covers the agent chat tool summaries,
the history, sending to a slicer, Perforate, the window system and the
web app.
2026-10-31 07:24:48 +00:00
ABDULLAH 44d7c1fb6f Arabic: viewport and camera terms in the new view help and tab colour options, parameter, K factor, trim strip, run-off and standoff wording (#9909) 2026-10-31 06:55:14 +00:00
github-actions[bot] db696ec24b Regenerate generated files and fold pending files [skip ci] 2026-10-31 07:05:30 +00:00
Badger B a69c5770a4 Add German translations, batch 8 (#7237) (#9902)
Adds 130 German translations for messages that exist in en.json but are
missing from de.json, in a new pending file as described in
assets/locales/pending/README.md. Covers the Render studio (lighting,
environment, sun, depth of field), bounded volume and interior scattering,
saved shots, the timeline messages, thread direction and the agent chat
and endpoint settings.
2026-10-31 06:23:53 +00:00
momysnow da23eb1377 Sketch dialog follows "Dialog buttons at top" (#9860) (#9884)
* claim: #9860

Co-Authored-By: Claude <noreply@anthropic.com>

* Sketch panel follows Dialog buttons at top (#9860)

The Sketch panel drew Finish Sketch, Look at and Slice in a footer under
its options even with Preferences > Interface > Dialog buttons set to
Top. Panel::palette now reads the same published preference as the
feature cards and draws its footer row under the header, above the
options, when it is Top. With the preference off nothing changes.

Changes a default: no

Co-Authored-By: Claude <noreply@anthropic.com>

* Docs: Dialog buttons at top also moves the Sketch panel's Finish row (#9860)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-31 06:23:41 +00:00
austin62jake 5d9e4d5f95 joint.drive: a suppressed joint stores nothing, and the reply says what was asked and why a value differs (#9742) (#9862)
* claim: #9742

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019FAWPuFoh9qxn2uS2j53QZ

* joint.drive: a suppressed joint stores nothing; the reply says what was asked and why a value differs (#9742)

Driving a suppressed joint answered moved: false with "H is suppressed"
but wrote the values into the joint, with an undo step, so the part
jumped when the joint was unsuppressed. A suppressed joint outside any
motion link now stores nothing.

The reply gains `requested` (the values asked for, before limits and
links) and `held`: each driven value that ended up elsewhere, with why
(a motion link sets it, as a screw's travel follows its turn; a limit;
contact; a closed loop). A drive that moves nothing gives the first held
value's why as `reason`, so driving a screw's distance alone no longer
answers moved: false without one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019FAWPuFoh9qxn2uS2j53QZ

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-31 05:57:24 +00:00
Dahak Builds 75b3fb678c Sketch: conflict messages no longer name a nonexistent id or claim full constraint wrongly (#9735) (#9859)
* claim: #9735

* Sketch: conflict messages name real constraints, not the refused one's id or a false 'fully constrained' (#9735)

* fmt + clippy: contains over iter().any (#9735)

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-10-31 05:56:42 +00:00
github-actions[bot] 827713cc2f Regenerate generated files and fold pending files [skip ci] 2026-10-31 06:14:31 +00:00
ABDULLAH 4cf104ea2c Arabic: clearer wording in the new Sketch ribbon help (undo, mirror and revolve names, turned part, polygon sizes, normal direction) (#9870)
Co-authored-by: bherbruck <tenbee91@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 05:53:32 +00:00
Badger B 4fd8f8475c Add German translations, batch 7 (#7237) (#9864)
* Add German translations, batch 7 (#7237)

Adds 130 German translations for messages that exist in en.json but are
missing from de.json, in a new pending file as described in
assets/locales/pending/README.md. Covers the parameter list setting and
the Render panel pages: GPU material overrides, nested dielectrics, saved
optics, output size, physical background, presentation filters, preview,
quality budget, regrade and the result area.

* German batch 7: render.result_sequence follows the catalog's Checkpoint term

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: bherbruck <tenbee91@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 05:47:17 +00:00
github-actions[bot] 9fdf380286 Regenerate generated files and fold pending files [skip ci] 2026-10-31 05:35:14 +00:00
austin62jake affe37bcc3 Body names: inspect.interference refuses an unknown body; appearance.chain and appearance.list take a placed copy's name (#9740) (#9856)
* claim: #9740

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019FAWPuFoh9qxn2uS2j53QZ

* Body names: inspect.interference refuses an unknown body; appearance reads take a placed copy's name (#9740)

inspect.interference dropped a name that is no body, so a misspelled or
wrongly cased name left that body unchecked and two overlapping cubes
answered count 0. It now refuses the name, as inspect.clearance does,
naming the closest body when one is near enough to be a typo or another
case (cmd::no_body, on the existing edit_distance).

appearance.chain, appearance.list and appearance.replace's scope take a
placed copy's name (KB (K:2)) and a placement's (K:2) for the body and
component they show, as appearance.assign already does, through two
Session helpers: own_body_name (on body_frames) and component_or_placement,
which appearance.assign now uses too. A name that is neither is still
refused. select.set already refuses an unknown body on main (#9737).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019FAWPuFoh9qxn2uS2j53QZ

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-31 05:07:04 +00:00
PeppaWutz 9d8ab72da7 Ribbon tooltips: help for every remaining toolbar command (#9060) (#9868)
The last 106 commands on the backlog get the two-sentence help under
their tooltip, in English, German, Japanese, Chinese, Arabic, Hebrew and
Vietnamese: Surface, Sheet Metal, Plastic, Inspect, Construct,
Configure, Parameters, Library, View and the few single ones (Bill of
Materials, Frame Member, Pattern on Path, Convert Mesh, checkpoints).

With that the backlog is empty, so it goes: the test is now
every_toolbar_command_has_help, and the docs that mentioned the backlog
say so. The help tests use sketch.drag, which is not on the ribbon, as
the command without help.
2026-10-31 05:04:31 +00:00
Nathan Dane 160662ffec Tab colours: per-tab surfaces and fade (#8876) (#9808)
* claim: #8876

* Resolve theme tab surfaces with cached Oklab transitions

* Apply tab surfaces to unauthored Render preview backgrounds

* Allow quantized endpoint colours late in cubic Render fades

* Keep tab surface publication from restyling ordinary widgets
2026-10-31 04:39:12 +00:00
github-actions[bot] b5550d01c1 Regenerate generated files and fold pending files [skip ci] 2026-10-31 05:05:00 +00:00
PaddleStroke fd5d0e6738 Assemblies: mass, centre of mass and inertia per occurrence and rigid group (#9715) (#9717)
* claim: #9715

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Assemblies: mass, centre of mass and inertia per occurrence and rigid group (#9715)

assembly.mass_properties (and Session::mass_properties) gives, for every
occurrence and every rigidly-joined group, mass (kg), centre of mass (mm) and
the inertia tensor about it in world and frame axes (kg mm2), the input
the multibody dynamics work needs. Bodies are measured as Properties
measures them (kernel volume and centre, mesh gyration), once per body,
then moved by each placement and combined by the parallel-axis theorem.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 04:35:29 +00:00
PaddleStroke 0067dcab28 Settings: edit an added AI agent (#9619) (#9653)
* claim: #9619

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Settings: edit an added AI agent (#9619)

Agents you added in Preferences > AI get an Edit button between Test and
Remove. It reopens the Add agent dialog filled with the agent's name and
command, or its protocol, preset, endpoint, model and request timeout, and
Save changes the entry in place: same id, permission override and
always-allowed tools. The stored key is never read back into the dialog;
an empty key field keeps it (still only sent to HTTPS or this computer),
a new key replaces it. The control channel gets `edit_dialog`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 04:33:18 +00:00
snowsh1ne 2f6ca7e46b Linux: optional system title bar (server-side decorations) (#9263)
On Linux the window always had no OS decorations and drew Windows-style
caption buttons in the application bar. SOLIDCRAFT_TITLEBAR=system, or
"titlebar": "system" in graphics.json, now opens the window with the
desktop's own title bar and buttons (server-side decorations where the
compositor offers them). The default is unchanged; Windows and macOS
are unaffected.


Claude-Session: https://claude.ai/code/session_01Gnm1n2PVPqghMuR9kHWXfh

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 04:12:39 +00:00
PaddleStroke c2f66107cf Sketch: paste copied sketch geometry into another design (#9258) (#9675)
* claim: #9258

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Sketch: paste sketch geometry copied in another design (#9258)

Sketch geometry copied or cut in a sketch (sketch.copy / sketch.cut) now pastes into a sketch of another open design with Ctrl+V or the context menu, at the cursor or at the copied coordinates, with the constraints and dimensions among it. A dimension whose expression names the copied design's parameters keeps its value, in its unit; a text keeps its numbers. SketchClip::for_another_design prepares the clipboard; the app keeps the last sketch copy beside the cross-design body/component copy.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 04:11:57 +00:00
github-actions[bot] ec5f4b8740 Regenerate generated files and fold pending files [skip ci] 2026-10-31 04:29:13 +00:00
Dahak Builds 91aefd5abc Refuse sketch values that collapse a curve in settle_value_edit (#9729) (#9837)
* claim: #9729

* Refuse value edits that collapse a sketch curve: settle_value_edit runs settle's shrunk/flung checks (#9729)

* rustfmt

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-10-31 04:08:20 +00:00
PaddleStroke f1c2fc8804 Assistant: a new tab keeps the agent's sign-in (#9293) (#9669)
* claim: #9293

* Assistant: a sign-in confirmed in one tab holds in every tab (#9293)

The latest sign-in evidence per agent is window state: keep it across
tab switches, new tabs and replaced designs instead of resetting it with
the tab's conversation, so a new tab no longer marks the agent as signed
out when discovery's login probe is older than the chat's proof.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 04:01:52 +00:00
Nathan Dane d7cba9e96d Preferences: theme options list and the opacity option (#8876) (#9807)
* claim: #8876

* claim: #8876

* Theme options: persist per-theme values and expose preferences contracts

* Restore selected theme mode after stopping a followed theme

* claim: #8876

* Preferences: render theme options and apply readable panel opacity

* Use floating-point scale expectation in theme preferences scenario

* Keep panel opacity colour construction inside theme tokens

* Complete theme options translations in Arabic Hebrew and Vietnamese

* Let standalone theme sliders fill their option cells
2026-10-31 04:01:29 +00:00
PeppaWutz 849bb392d2 Ribbon tooltips: help for the Sketch tools (#9060) (#9847)
* claim: #9060

* Ribbon tooltips: help for the Sketch tools (#9060)

84 sketch commands get the two-sentence help under their tooltip, in
English, German, Japanese, Chinese, Arabic, Hebrew and Vietnamese, and
leave the backlog: every Create tool (lines, rectangles, circles, arcs,
slots, polygons, splines, conic, ellipse, text, points, the 3D sketch
tools, Project, Intersect and the other reference tools), every Modify
tool (Trim, Extend, Break, Offset, Fillet, the chamfers, Move, Scale,
Transform, Blend Curve), the patterns and Mirror, every constraint,
AutoConstrain, Sketch Dimension, Create/Edit/Finish/Cancel Sketch and
copy, cut and paste. The help tests use inspect.zebra as the
undocumented example, since sketch.trim has help now.
2026-10-31 04:01:09 +00:00
thocsmith 3b77567932 Docs: joint flip needs x for point origins; checkpoints are single use, 16 kept (#9746) (#9844)
joint.create's flip text and the assemblies guide said two origins at one
point with the same z stay as they are; a point origin without x takes its
x from z, so a part turned about z turns back. Say so, and point to giving
x on both origins or joint.as_built.

edit.checkpoint and edit.restore_checkpoint now say that restoring or
forgetting uses the checkpoint (and later ones) up and that only the last
16 are kept, and the "no checkpoint N" error says why. The editing and
mechanisms skills no longer read as if a checkpoint can be restored twice.

Co-authored-by: thocsmith <193096300+thocsmith@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 03:48:13 +00:00
Homero Thompson 810a9558bd perf(#3892): index the hidden joints and folders of the view (#9823)
The browser asks about every joint of the design on every frame, and
the answer walked the list of hidden joints: a nested STEP assembly
hides thousands of them, so a frame cost grew with the size of the
design.

Session keeps the hidden joints and folders as sets and answers from
them. The sets are built when the view changes and kept until it
changes again: the revision says the design changed, and the lists
say the view changed under it (the view is replaced outside the
engine too, without a revision of its own).

The behaviour is unchanged: the hidden joint stays hidden, the shown
one stays shown, and undo and redo keep the hiding right.
2026-10-31 03:01:33 +00:00
PaddleStroke d7ae568790 Insert SVG: say why a drawing has nothing to import (#9641) (#9652)
* claim: #9641

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Insert SVG: say why a drawing has nothing to import, and read UTF-16 files (#9641)

An SVG with nothing SolidCraft draws (only an embedded picture, shapes
pulled from another file with <use>, or not an SVG at all) was refused with
"invalid parameters for sketch.insert_svg: the drawing has no geometry
SolidCraft reads". It now names the file and says why, pointing pictures at
Insert Canvas and Canvas to Sketch. SVG files with a byte-order mark or in
UTF-16 now read, and a gzip-compressed (.svgz) file is refused clearly.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Insert SVG: decode UTF-16 with as_chunks (clippy)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 03:00:32 +00:00
PaddleStroke 43a549d967 Render: start the GPU path tracer setup only when the GPU image method is chosen (#9041) (#9668)
* claim: #9041

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Render: start the GPU path tracer setup only when the GPU image method is chosen (#9041)

Entering the Render workspace started the GPU path tracer setup even with
the default Raster image method. The setup compiles the path shader, which
some Vulkan drivers (Mesa RADV/ANV, NVIDIA) take gigabytes over: the memory
climb reported while orbiting in Render. The setup now starts only while
Render is open with the GPU path method.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 02:59:05 +00:00
Dahak Builds 7228e218bf Preferences: unapplied changes no longer reach the settings file (#9730) (#9831)
* claim: #9730

* Preferences: unapplied changes no longer reach the settings file while the dialog is open (#9730)

* Preferences: hold unapplied changes out of the settings file while the dialog is open

While prefs_window.snapshot is set, SolveApp::prefs() writes the snapshot's
values - the ones Cancel restores - so the periodic autosave, quit, window
close, web save and control channel can no longer persist a change that was
never applied. Apply re-baselines the snapshot; settings the dialog cannot
change keep saving live. Adds regression tests and updates the tests that
pinned the old behavior.

Fixes #9730

* prefs: bind the snapshot's shadow outside json! so the ui-containers guard reads it

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-10-31 02:58:02 +00:00
ABDULLAH 67b491671f Arabic: viewport term in the viewport status preferences and details, tolerance, flip and colour key wording in the details cards (#9836) 2026-10-31 02:57:10 +00:00
momysnow 60b9e9d188 Edit Joint: show the two sides and pick them again (#9686) (#9692)
* claim: #9686

Co-Authored-By: Claude <noreply@anthropic.com>

* Edit Joint: joint.edit takes the two sides

joint.edit accepts a and b in the form joint.create takes them (read by the same origin_param), so a joint can move its attachment without being deleted. A side left out keeps its place. The two sides must stay on different occurrences, checked as joint.create does. Limits, values, expressions and the name are kept; a relation's values start again where its parts are.

joint.edit gets an input contract and reply type (schema/joints.rs), and leaves schema/unconverted.txt.

Co-Authored-By: Claude <noreply@anthropic.com>

* Edit Joint shows both sides and picks them again

The Edit Joint dialog now shows the two sides in the same selection inputs as Joint, each pre-filled with the face or edge of its own component under the origin. OK sends joint.edit a or b only for a side picked again, so an untouched side keeps its origin exactly.

Co-Authored-By: Claude <noreply@anthropic.com>

* Edit Joint: a moved side turns the part as joint.create would

joint.edit kept the joint's old angle when a side changed, so the part could turn by a half turn about its axis when the new origin's x lay the other way. When a side moves and no angle is given, the angle is worked out again as joint.create does (the least turn from where the part is now); a relation's angle is its tilt and stays.

The mechanisms reference says joint.edit takes a and b.

Co-Authored-By: Claude <noreply@anthropic.com>

* Edit Joint: pre-fill sides by name, send the angle only when changed

A side shows the face or edge its snap names, the piece nearest its stored pick when the name has several, else the one nearest that pick; it no longer searches outward from the frame origin, which could show the plate beside a hole for the hole's wall. A point or frame side shows nothing. OK sends the angle only when the user changed it, so a side moved without it turns the part as joint.create would.

Co-Authored-By: Claude <noreply@anthropic.com>

* Edit Joint: a moved side leaves an angle expression alone (#9686)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-31 02:27:54 +00:00
Nathan Dane ca005237a1 Theme files: options, overlays and requires (#8876) (#9805)
* claim: #8876

* Theme files: add options, overlays and requirements
2026-10-31 02:25:34 +00:00
Colin Faulkingham 213e05da5f Shortcuts: normalize and validate text bindings (#9733) (#9800)
* claim: #9733

* Fix text shortcut normalization and current bindings (#9733)
2026-10-31 02:25:15 +00:00
bherbruck 251d18588a Release: build macOS on macos-15 runners (macos-14 is retired on Nov 2) (#9804)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 02:11:55 +00:00
github-actions[bot] 97f48a9f63 Regenerate generated files and fold pending files [skip ci] 2026-10-31 02:55:13 +00:00
PaddleStroke 72a265e4fc Nightly action matrix: a sketch on the sensor enclosure lid's top keeps its attachment (#9465) (#9670)
* claim: #9465

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Face attachments: a piece of a face its certificate finds the other pieces of keeps that certificate (#9465)

The nightly action matrix has refused a sketch and an offset plane on the
sensor enclosure lid's underside (`examples/sensor_enclosure :: Lid/F2:top`)
since #8278. The lid's lip, joined below it, parts the underside into a ring
and a panel; the ring rests on the case and is named after the case's top,
so the lid's cap certificate (via certified_pieces) finds only the panel.
#8278 then refused the certificate because it doesn't find the picked face,
and the history-name fallback can't take a name made by another body's
feature.

A face that is no pattern or mirror copy and lies on the same oriented plane
as the pieces the certificate finds is another piece of that face: the
certificate stands for it, as before #8278. Copies (the #8278 case) still
fall back to their own history name.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 02:02:24 +00:00
PaddleStroke 3877ef08b9 Measure: drag the labels away from the part (#8510) (#9395)
* claim: #8510

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Measure: drag the labels away from the part (#8510)

The distance and X/Y/Z labels in the view follow a drag of the pointer and keep
a leader to what they measure; a double-click or a new measurement puts them
back. A press on a label picks nothing, starts no box selection and opens no
Select Other.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 02:00:23 +00:00
PaddleStroke cce337f83f Sketch: alignment guides from any hovered point while drawing (#9105) (#9673)
* claim: #9105

* Sketch: alignment guides from any hovered point while drawing (#9105)

While a drawing tool waits for a point, hovering a line or arc end, a
rectangle corner or a free point wakes the same temporary horizontal/
vertical tracking guide as a circle centre or line midpoint. Idle
hovering keeps centres and midpoints only. Preference
sketch_tracking_points (on) turns it off.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 02:00:07 +00:00
PaddleStroke 5304294107 Browser: a Joints folder under each component lists the joints that attach it (#9130) (#9404)
* claim: #9130

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Browser: a Joints folder under each placement lists the joints that attach it (#9130)

Each component placement in the Browser gets a Joints folder (closed at
first) listing the joints whose Component 1 or Component 2 is that
placement, each beside the placement it joins it to. The rows are the
root folder's joints: click picks, the eye hides the glyph, double-click
edits and the menu is the joint's menu. The root Joints folder is
unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 01:59:53 +00:00
PaddleStroke b8eb8d262c Settings: saved to disk as soon as they change, not only when the app closes normally (#8275) (#9711)
* claim: #8275

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Settings: written to disk in the frame they change, not only at a clean exit (#8275)

eframe saves app.ron every 30 s and when the window closes normally. A
change made since the last save was lost whenever the app didn't close
normally: ended from the Task Manager, stopped by a sign-out or shutdown,
or crashed or hung in the graphics driver on the way out. The next start
then showed the old settings (View navigator back to Axes, Display quality
back to Normal).

The desktop app now writes its settings and flushes them in the frame they
change (frames with input and the one after), as the web app already does
(#8644). Unchanged settings are not written again.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Settings: write at most once a second, and only after input that can change them (#8275)

Review: pointer motion came in every frame while the mouse moved, so the
settings were serialized every frame; and some settings change in every frame
(a panel's width while its edge is dragged), which would have flushed app.ron
on the UI thread each frame. Only clicks, keys, text, paste, wheel and pinch
count as input now, and the file is written at most once per second: a change
made in between waits, a repaint is asked for when its second is over, and it
is written then, so an idle app still writes it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 01:57:54 +00:00
github-actions[bot] 28cbca72c5 Regenerate generated files and fold pending files [skip ci] 2026-10-31 02:26:00 +00:00
PaddleStroke 9d18034e13 Sketch drag: a line is never shrunk to a point to follow the cursor (#9062) (#9728)
* claim: #9062

* Sketch drag: a line is never shrunk to a point to follow the cursor (#9062)

A line's end on a horizontal construction line through the origin, dragged
up off it, made the construction line vanish. A horizontal row is
b.y - a.y, which a line a hair long meets at any tilt, so the drag's held
solves met the point-on-line by shrinking the construction line: to 1e-5 mm
on the first frame, 1e-7 mm by the tenth, and the end went up.

A drag step (held solve, the tangent-ends-held solve, and each cursor
correction pose) that shrinks a line or circle from over 1e-3 to under
1e-4 now counts as failed, as a step that wraps an arc does. The end then
stays on the construction line, which keeps its length.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 01:54:19 +00:00
PaddleStroke d61ec60480 Assistant: say when an installed agent can't start, and how to reinstall it (#9034) (#9655)
* claim: #9034

* Assistant: say when an installed agent can't start, and how to reinstall it (#9034)

An agent whose program is found but fails its `--version` check without
printing a version (npm's opencode.exe left as a placeholder when the
package's setup script did not run, which Windows refuses with "not
compatible with the version of Windows you're running") was listed like
a working one, and connecting only said "The agent stopped." with the
system's message.

Discovery now keeps why the program did not start: the spawn error
(Windows' `%1` replaced with the program) or, through a `.cmd` shim, the
first stderr line or the exit status. A probe that times out still says
nothing. The picker shows "Installed, but it does not start: ...", and
connecting first explains it with the agent's install command and Refresh.
The control channel status carries `problem`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 01:52:59 +00:00
Dahak Builds c4538c53e1 Fix Move feature editor prefill showing wrong values (#9696) (#9803)
* claim: #9696

* Show an edited Free Move its stored turn as the X/Y/Z angles that remake it (#9696)

* cargo fmt

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-10-31 01:51:40 +00:00
ABDULLAH b6b0d80332 Arabic: tanween spelling in the new ribbon help, fastener and standard part placement notes (#9820) 2026-10-31 01:51:32 +00:00
github-actions[bot] 42166bd6b7 Regenerate generated files and fold pending files [skip ci] 2026-10-31 01:56:59 +00:00
Nathan Dane 5bd5be9543 Viewport status item: standard details card (#8613) (#8614)
* Keep viewport summary menus below modal owners

* Build viewport status details from shared blocks

* Keep details focus checks outside context data locks

* Preserve native editor Escape ownership in details cards

* Initialize strict contract test sessions directly

* Translate viewport status detail cards

* Use inferred slider options and test legacy Section editing
2026-10-31 01:27:12 +00:00
PaddleStroke 2f09c90542 Exploded View: grey it out until the design has two components (#9142) (#9659)
* claim: #9142

* Exploded View: grey it out until the design has two components (#9142)

On a part made of plain bodies (the sample plate) Exploded View opened its
dialog and failed on OK with "an exploded view needs two or more
occurrences". The command is now disabled until the design has two or more
occurrences, and its tooltip says why and which commands make components.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 01:18:34 +00:00
Colin Faulkingham 8311ae5c5d BOM: group purchased children under inseparable parts (#9744) (#9794)
* claim: #9744

* Fix grouped BOM children for inseparable parts
2026-10-31 01:17:58 +00:00
Dahak Builds 4973638b56 Selection follows body rename so Delete targets the right body (#9737) (#9789)
* claim: #9737

* Selection follows body renames; stale body selections are dropped (#9737)

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-10-31 01:17:28 +00:00
rugbymauri 8a61069fbb Control channel: document.inspect reports undo, redo and path in the app (#9624) (#9632)
* claim: #9624

Signed-off-by: Maurizio Monticelli <maurizio@whatwedo.ch>

* Control channel: document.inspect reports undo, redo and path in the app (#9624)

The app answers document.inspect on a scratch copy of the session, which
has no undo or redo history and no file path, so the reply always said
undo 0, redo 0, path null. Take those three values from the live session
and put them into the reply.

Fixes #9624

Signed-off-by: Maurizio Monticelli <maurizio@whatwedo.ch>

---------

Signed-off-by: Maurizio Monticelli <maurizio@whatwedo.ch>
2026-10-31 01:15:03 +00:00
PaddleStroke 55bea620c7 Continuous orbit turns about the Orbit around point (#1044) (#9690)
* claim: #1044

* Continuous orbit turns about the Orbit around point (#1044)

With Orbit around set to the point under the cursor (or the origin), Continuous
orbit still turned about the view's centre. Cursor orbits move that centre off
the model, so the model swung across and out of the view while it spun. The
spin now turns about the origin, or the model point in the middle of the view
(else the middle of the bodies in view), held from start to stop.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 01:14:03 +00:00
rugbymauri c755e067f5 Sketch pane: stays still at 125 % display scaling (#9457) (#9598)
* claim: #9457

Signed-off-by: Maurizio Monticelli <maurizio@whatwedo.ch>

* Keep the sketch pane still at fractional display scaling (#9457)

Right-docked cards were placed by their right edge from last frame's
measured width, which flipped by one physical pixel each frame at
scales such as 125 % in the Docked layout. Place them by their left
edge from the width they are held to instead.

Fixes #9457

Signed-off-by: Maurizio Monticelli <maurizio@whatwedo.ch>

---------

Signed-off-by: Maurizio Monticelli <maurizio@whatwedo.ch>
2026-10-31 00:49:10 +00:00
Colin Faulkingham f73479ddf2 Preserve multiline fields and accept a BOM in parameter CSV imports (#9732) (#9772)
* claim: #9732

* fix(params): preserve quoted CSV records and BOM headers (#9732)
2026-10-31 00:46:57 +00:00
Dahak Builds 772815b4c0 Sketch Extend: only an end on a circle counts as held (#9731) (#9773)
* claim: #9731

* Sketch Extend: only an end on a circle counts as held (#9731)

grow_line's on-circle test was true for every point inside the circle; test distance to the circle instead. Also pin the new end point of a held-end extension onto the curve it stops on, as the free-end path does.

* Fix regression test harness usage and held-end setup (#9731)

---------

Co-authored-by: Dahak Builds <dahakbuilds@users.noreply.github.com>
2026-10-31 00:45:22 +00:00
Erlis Vidal 6d89de1f5a Construction planes, axes and points hide with their component's placement (#9790) (#9791)
construction_visible checked the item's own hide and its folder, but not
the placement its component is drawn at, so hiding Part:1 left Part's
planes, axes and points on screen. It now asks feature_placement_visible,
the check sketches already made; the placement path is computed in one
place for both.
2026-10-31 00:44:47 +00:00
ABDULLAH 6375529b44 Arabic: colour key wording in the analysis status help, browser eye note, print face highlight tip, constraint glyph note, parameters apply-live option (#9446)
* Arabic: colour key wording in the viewport analysis status help

* Arabic: tanween and direction-neutral wording in the browser eye position note

* Arabic: outline wording and no direction mark in the print face highlight tip

* Arabic: sketch term in the constraint glyph note

* Arabic: checkbox wording and discard verb in the parameters apply-live option
2026-10-31 00:43:02 +00:00
CaRLymx bdd7605d47 Spanish (es-ES): catch up with en.json (2026-10-31/01) (#9781)
Add 50 missing messages from upstream main (5f60d78):
- Sort/Order UI: 3 keys
- Parameters live apply: 4 keys
- Preferences viewport/parameters: 8 keys
- Render output profiles: 3 keys
- Sheet personal rules: 17 keys
- Sketch text formula: 1 key
- UI 3D mouse, agent chat, viewport status: 14 keys

Validations: i18n --check ✅, lists ✅, assets ✅
Placeholders: 0 mismatches
Keys: 4828/4828 (100%)

Co-authored-by: carlymx <24634598+carlymx@users.noreply.github.com>
2026-10-31 00:42:11 +00:00
momysnow ffbaf292f0 Browser: drag over the eyes to show or hide many rows at once (#9680) (#9681)
* claim: #9680

Co-Authored-By: Claude <noreply@anthropic.com>

* Browser: drag over the eyes to show or hide many rows at once (#9680)

Press an eye and drag up or down over other eyes: each eye the pointer passes
takes the first eye's new state (shown or hidden), and the whole drag is one
undo step. A plain click is unchanged. Dragging near the list's top or bottom
edge scrolls it. A component's eye now goes through browser.visibility, so it
is undoable like a body's.

Co-Authored-By: Claude <noreply@anthropic.com>

* Browser: fix the eye drag's undo merge and layering (#9680)

Merge the drag's steps from the undo depth noted at press, when the design
and visibility still match, instead of searching the history. Run the merge
every frame from logic(), so a release under an overlay is never missed. An
eye under a popup or tooltip no longer takes part in the drag. Adds a
regression test for a drag from the Origin's eye after a show.

Co-Authored-By: Claude <noreply@anthropic.com>

* Browser: say when the eye drag's undo merge gives up (#9680)

Co-Authored-By: Claude <noreply@anthropic.com>

* Gallery test: the eye-drag state key is not a renderable element

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: bherbruck <tenbee91@gmail.com>
2026-10-31 00:35:34 +00:00
github-actions[bot] 2b4f07a0e8 Regenerate generated files and fold pending files [skip ci] 2026-10-31 00:50:08 +00:00
PeppaWutz 4b1556d102 Ribbon tooltips: help for the Assemble and Insert tools and the Create primitives (#9060) (#9069)
* claim: #9060

* Ribbon tooltips: help for the Assemble and Insert tools and the Create primitives (#9060)

56 commands get the two-sentence help under their tooltip, in English,
German, Japanese, Chinese, Arabic, Hebrew and Vietnamese, and leave the
backlog: every Assemble tool (components, joints, contact, motion,
position), every Insert tool (files, images, 2D, library, links) and the
Model > Create drop-down primitives (box, cylinder, sphere, torus, cone,
coil, pipe, thread, rib, web, emboss, boundary fill, bounding solid).
Their drop-down rows now show a tooltip as well. The help tests use
sketch.trim as the undocumented example, since solid.rib has help now.
2026-10-31 00:22:31 +00:00
Colin Faulkingham 0fe5bf114c Timeline: resolve exact feature names before ID fallbacks (#9689) (#9748)
* claim: #9689

* Resolve timeline names before falling back to feature IDs
2026-10-31 00:08:24 +00:00
PaddleStroke 526cdfd247 Zebra: flat faces keep one stripe colour while the view turns (#2153) (#9761)
* claim: #2153

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Zebra: flat faces keep one stripe colour while the view turns (#2153)

A face whose normal lies in the upright plane through the view (every
horizontal face) reflects straight ahead, where the zebra's sideways
coordinate is zero: exactly on the edge between a black and a white
stripe. Rounding then picked one or the other from frame to frame, so
the face flickered while the camera orbited. Straight ahead is now white.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 00:03:59 +00:00
706 changed files with 81431 additions and 7593 deletions
+3 -1
View File
@@ -1,6 +1,6 @@
## Change
Describe the problem and resulting behavior. Link the issue when applicable.
Start with what this is, in plain words someone new to the project would understand: what it does and who it's for. Don't assume anyone knows the name of your tool, project or feature. Then describe the problem and resulting behavior. Link the issue when applicable.
Changes a default: no
@@ -14,6 +14,8 @@ What did you run, and what were the results? Include expected and measured value
## Screenshots of the behavior (when observable)
Put the picture or video here in the description. A file in the diff doesn't count: a maintainer has to be able to see what this is without opening the changed files.
For observable CAD, UI or model behavior, include actual descriptive screenshots or a short recording from a small reproduction. This includes kernel, geometry, assembly and backend effects that can be shown in the app. Coding agents should run the app and capture the evidence themselves, rather than asking a human for evidence they can produce. Show the actual failure/result, preferably before and after, with brief steps, expected/actual behavior and annotations where helpful.
Flowcharts and Mermaid diagrams cannot substitute for evidence of visible behavior. Use diagrams for architectural reasoning when actual screenshots cannot illustrate the point. Changes with no useful observable behavior may omit screenshot/video evidence. Exclude private designs and sensitive details; attach media or link to an accessible recording rather than committing generated review artifacts.
+4 -3
View File
@@ -1,6 +1,7 @@
# While a new geometry kernel is evaluated, new issues, pull requests and discussions about kernel
# work are labelled `kernel-paused` for a maintainer to answer (CONTRIBUTING.md, "Kernel work is
# paused"). The logic is in scripts/kernel-paused/ (tested in ci.yml).
# While a new geometry kernel is evaluated, new issues and discussions about kernel work, and new
# pull requests that change the kernel directories, are labelled `kernel-paused` for a maintainer to
# answer (CONTRIBUTING.md, "Kernel work is paused"). The logic is in scripts/kernel-paused/ (tested
# in ci.yml).
name: Kernel paused
on:
+18 -3
View File
@@ -1,6 +1,6 @@
# Two quick checks on every pull request (CONTRIBUTING.md, "Sending a change"): no second open PR
# for an issue a lower-numbered one already closes, and the "Changes a default:" line is filled in.
# Neither is a required status check. The logic is in scripts/pr-checks/pr-checks.js (tested in ci.yml).
# Three quick checks on every pull request (CONTRIBUTING.md, "Sending a change"): no second open PR
# for an issue a lower-numbered one already closes, the "Changes a default:" line is filled in, and
# a PR adding to the showcase shows a picture. None is a required status check. The logic is in scripts/pr-checks/pr-checks.js (tested in ci.yml).
name: PR checks
on:
@@ -48,6 +48,21 @@ jobs:
const r = await checks.checkDefaults({ github, context, core });
core.info(JSON.stringify(r));
picture:
name: Picture check
runs-on: ubuntu-24.04
timeout-minutes: 5
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
sparse-checkout: scripts/pr-checks
- uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
with:
script: |
const checks = require('./scripts/pr-checks/pr-checks.js');
const r = await checks.checkPicture({ github, context, core });
core.info(JSON.stringify(r));
# Labelling needs write access, which a fork PR's token never has, so it is its own job and best
# effort: a fork PR just doesn't get the `changes-default` label from here.
label:
+2 -2
View File
@@ -350,7 +350,7 @@ jobs:
name: macOS build ${{ matrix.arch }}
needs: version
if: needs.version.outputs.build == 'true'
runs-on: macos-14
runs-on: macos-15
strategy:
fail-fast: false
matrix:
@@ -384,7 +384,7 @@ jobs:
name: macOS universal
needs: [version, macos-build]
if: needs.version.outputs.build == 'true'
runs-on: macos-14
runs-on: macos-15
env:
SOLIDCRAFT_VERSION: ${{ needs.version.outputs.version }}
SOLIDCRAFT_BUILD_DATE: ${{ needs.version.outputs.date }}
+125 -4
View File
@@ -189,11 +189,7 @@ Editable drawing code, native projects and shipped exports are collected under `
| assets/shaders/viewport.wgsl | SolidCraft contributors | Original SolidCraft resource data or drawing code, collected without redesign | MIT OR Apache-2.0 |
| assets/styles/ui/palettes.rs | SolidCraft contributors | Original SolidCraft resource data or drawing code, collected without redesign | MIT OR Apache-2.0 |
| assets/styles/ui/themes/gruvbox-dark.json | SolidCraft contributors | original SolidCraft theme file mapping SolidCraft's UI colours to the Gruvbox palette's colour values (Gruvbox by Pavel Pertsev, https://github.com/morhetz/gruvbox, MIT) | MIT OR Apache-2.0 |
| assets/styles/ui/themes/gruvbox-dark-hard.json | SolidCraft contributors | original SolidCraft theme file mapping SolidCraft's UI colours to the Gruvbox palette's colour values (Gruvbox by Pavel Pertsev, https://github.com/morhetz/gruvbox, MIT) | MIT OR Apache-2.0 |
| assets/styles/ui/themes/gruvbox-dark-soft.json | SolidCraft contributors | original SolidCraft theme file mapping SolidCraft's UI colours to the Gruvbox palette's colour values (Gruvbox by Pavel Pertsev, https://github.com/morhetz/gruvbox, MIT) | MIT OR Apache-2.0 |
| assets/styles/ui/themes/gruvbox-light.json | SolidCraft contributors | original SolidCraft theme file mapping SolidCraft's UI colours to the Gruvbox palette's colour values (Gruvbox by Pavel Pertsev, https://github.com/morhetz/gruvbox, MIT) | MIT OR Apache-2.0 |
| assets/styles/ui/themes/gruvbox-light-hard.json | SolidCraft contributors | original SolidCraft theme file mapping SolidCraft's UI colours to the Gruvbox palette's colour values (Gruvbox by Pavel Pertsev, https://github.com/morhetz/gruvbox, MIT) | MIT OR Apache-2.0 |
| assets/styles/ui/themes/gruvbox-light-soft.json | SolidCraft contributors | original SolidCraft theme file mapping SolidCraft's UI colours to the Gruvbox palette's colour values (Gruvbox by Pavel Pertsev, https://github.com/morhetz/gruvbox, MIT) | MIT OR Apache-2.0 |
| assets/styles/ui/themes/solidcraft-95.json | SolidCraft contributors | original SolidCraft theme file | MIT OR Apache-2.0 |
| assets/styles/ui/themes/platinum-9.json | SolidCraft contributors | original SolidCraft theme file | MIT OR Apache-2.0 |
| assets/styles/ui/themes/cupertino.json | SolidCraft contributors | original SolidCraft theme file | MIT OR Apache-2.0 |
@@ -634,6 +630,131 @@ Original SolidCraft drawings, Open for owner review; no runtime assignments.
| docs/book/src/generated/equation-wave.png | SolidCraft contributors | rendered by `cargo xtask book` (`solidcraft-cli snapshot docs/book/scripts/equation-wave.json`; gitignored) | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/print_face.svg | SolidCraft contributors | two-tone modelling icon master (64 grid), original SolidCraft artwork | MIT OR Apache-2.0 |
| assets/locales/fi.json | SolidCraft contributors | Original Finnish translation of SolidCraft's English catalog, AI-assisted (Claude Code) clean-room from the English and not yet reviewed line by line by a native speaker; no commercial CAD text used | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/model/plane_axis_point.svg | SolidCraft contributors | original icon master (64 grid) | MIT OR Apache-2.0 |
| docs/design/preferences/figures/aa-2x.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/aa-2x.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/aa-4x.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/aa-4x.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/aa-8x.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/aa-8x.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/aa-off.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/aa-off.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/agent-pointer-speed.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/agent-pointer-speed.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/ao-on.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/ao-on.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/assembly-move.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/assembly-move.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/browser-card.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/browser-card.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/browser-column.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/browser-column.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/colour-vision-axes.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/colour-vision-axes.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/colour-vision-bends.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/colour-vision-bends.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/colour-vision-draft.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/colour-vision-draft.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/colour-vision-failed.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/colour-vision-failed.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/colour-vision-fixed.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/colour-vision-fixed.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/colour-vision-projected.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/colour-vision-projected.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/direct-interaction.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/direct-interaction.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/frame-rate.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/frame-rate.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/history-bottom.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/history-bottom.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/history-in-browser.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/history-in-browser.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/history-left.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/history-left.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/history-under-browser.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/history-under-browser.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/layout-schematic.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/layout-schematic.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/measure-axis-distances.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/measure-axis-distances.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/mouse-mapping.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/mouse-mapping.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/navigator-axes.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/navigator-axes.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/navigator-cube.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/navigator-cube.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/orbit-centre.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/orbit-centre.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/orbit-cursor.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/orbit-cursor.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/orbit-origin.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/orbit-origin.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/orientation-y-up.dark.svg | SolidCraft contributors | original SolidCraft artwork: the Orientation figure copied from the app and extracted from the Preferences redesign board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/orientation-y-up.light.svg | SolidCraft contributors | original SolidCraft artwork: the Orientation figure copied from the app and extracted from the Preferences redesign board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/orientation-z-up.dark.svg | SolidCraft contributors | original SolidCraft artwork: the Orientation figure copied from the app and extracted from the Preferences redesign board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/orientation-z-up.light.svg | SolidCraft contributors | original SolidCraft artwork: the Orientation figure copied from the app and extracted from the Preferences redesign board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/quick-measure.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/quick-measure.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/select-bodies.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/select-bodies.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/select-faces-edges.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/select-faces-edges.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/sketch-conflict.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/sketch-conflict.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/sketch-exit-keep.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/sketch-exit-keep.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/sketch-exit-previous.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/sketch-exit-previous.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/sketch-exit-unless-turned.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/sketch-exit-unless-turned.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/sketch-guides.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/sketch-guides.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/sketch-hide-glyphs.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/sketch-hide-glyphs.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/sketch-state-icons.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/sketch-state-icons.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/style-shaded-edges.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/style-shaded-edges.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/tess-coarse.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/tess-coarse.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/tess-fine.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/tess-fine.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/tess-normal.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/tess-normal.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/tess-ultra.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/tess-ultra.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/theme-dark.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/theme-dark.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/theme-gruvbox.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/theme-gruvbox.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/theme-imported.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/theme-imported.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/theme-light.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/theme-light.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/theme-system-dark-half.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/theme-system-dark-half.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/theme-system-light-half.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/theme-system-light-half.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/tool-cursor.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/tool-cursor.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/tool-extrude.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/tool-extrude.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/tool-hole.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/tool-hole.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/tool-placement.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/tool-placement.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/vertex-markers.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/vertex-markers.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/view-angles.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/view-angles.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/view-grid.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/view-grid.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/view-perspective.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/view-perspective.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/view-shadow.dark.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| docs/design/preferences/figures/view-shadow.light.svg | SolidCraft contributors | original SolidCraft artwork drawn for the Preferences redesign (tracker #9863), extracted from the design board as a standalone SVG | MIT OR Apache-2.0 |
| `assets/locales/pending/sketch-offset-instances.json` | SolidCraft contributors | Original offset instance-count label and translations | MIT OR Apache-2.0 |
| assets/icons/ui/design/svg/flat/settings_profile.svg | SolidCraft contributors | single-colour application/navigation icon master (64 grid), original analytic head and shoulder geometry for settings profiles | MIT OR Apache-2.0 |
## Code adapted from sibling projects
+14 -6
View File
@@ -19,12 +19,13 @@ Questions, ideas or want to say what you're working on? Join the [Discord](https
## Kernel work is paused
We're evaluating a new geometry kernel. Until that's decided, please don't open issues, pull
requests or discussions about kernel work: booleans, fillets, chamfers, shell, offsets, sweeps and
lofts, threads and holes, STEP/IGES import and export, tessellation, or anything else that changes
`crates/kernel/`. The pinned issue on the tracker explains it. New ones get the `kernel-paused`
label (`.github/workflows/kernel-paused.yml`) and a maintainer answers them. Crashes and data loss
are still taken as issues, and everything outside the kernel carries on as normal.
We're moving to a new geometry kernel. Until that's done, please don't open pull requests that
change `crates/kernel/`, `crates/geom/` or `vendor/truck*`, or issues and discussions about kernel
work: booleans, fillets, chamfers, shell, offsets, sweeps and lofts, threads and holes, STEP/IGES
import and export, or tessellation. The pinned issue on the tracker explains it. New ones get the
`kernel-paused` label (`.github/workflows/kernel-paused.yml`) and a maintainer answers them. Crashes
and data loss are still taken as issues. Pull requests outside those directories carry on as normal,
including the dialogs and tools for these features.
## Get it running (about 10 minutes on a fast machine)
@@ -346,6 +347,13 @@ without pushes. These automatic cleanup deadlines are separate from the daily pr
`/unclaim` releases the bot claim early (only you or a maintainer can). Issues a maintainer has
taken are never freed automatically.
**A PR has to explain itself.** Start the description with what it is, in plain words someone new
to the project would understand: what it does and who it's for. Don't assume anyone knows the name
of your tool, project or feature. If there's anything to look at, show it in the description: a
picture or video has to be visible there without opening the changed files. "The GIF is the change"
doesn't count. A PR that doesn't do this waits until it does. For a PR that adds to
`docs/showcase.md` or `docs/screenshots/`, the Picture check fails until the description shows one.
Help reviewers see what the words mean. For observable CAD, UI or model behavior, please
include actual descriptive screenshots or a short recording in the issue or PR. This evidence
is required for changes or bugs that can be demonstrated in the app, including kernel,
Generated
+38 -18
View File
@@ -4208,7 +4208,7 @@ dependencies = [
[[package]]
name = "solidcraft"
version = "0.28.0"
version = "0.30.1"
dependencies = [
"block2 0.6.2",
"eframe",
@@ -4245,11 +4245,11 @@ dependencies = [
[[package]]
name = "solidcraft-3dx-client"
version = "0.28.0"
version = "0.30.1"
[[package]]
name = "solidcraft-cli"
version = "0.28.0"
version = "0.30.1"
dependencies = [
"image",
"log",
@@ -4261,7 +4261,7 @@ dependencies = [
[[package]]
name = "solidcraft-derive"
version = "0.28.0"
version = "0.30.1"
dependencies = [
"proc-macro2",
"quote",
@@ -4270,7 +4270,7 @@ dependencies = [
[[package]]
name = "solidcraft-doc"
version = "0.28.0"
version = "0.30.1"
dependencies = [
"log",
"serde",
@@ -4287,7 +4287,7 @@ dependencies = [
[[package]]
name = "solidcraft-engine"
version = "0.28.0"
version = "0.30.1"
dependencies = [
"image",
"log",
@@ -4308,7 +4308,7 @@ dependencies = [
[[package]]
name = "solidcraft-geom"
version = "0.28.0"
version = "0.30.1"
dependencies = [
"serde",
"serde_json",
@@ -4317,7 +4317,7 @@ dependencies = [
[[package]]
name = "solidcraft-gpu"
version = "0.28.0"
version = "0.30.1"
dependencies = [
"image",
"log",
@@ -4337,7 +4337,7 @@ dependencies = [
[[package]]
name = "solidcraft-io"
version = "0.28.0"
version = "0.30.1"
dependencies = [
"cadmpeg-core",
"cadmpeg-ir",
@@ -4355,13 +4355,14 @@ dependencies = [
"solidcraft-doc",
"solidcraft-geom",
"solidcraft-kernel",
"solidcraft-testkit",
"thiserror 2.0.21",
"zip",
]
[[package]]
name = "solidcraft-kernel"
version = "0.28.0"
version = "0.30.1"
dependencies = [
"log",
"proptest",
@@ -4381,8 +4382,9 @@ dependencies = [
[[package]]
name = "solidcraft-mcp"
version = "0.28.0"
version = "0.30.1"
dependencies = [
"image",
"serde_json",
"solidcraft-engine",
"solidcraft-gpu",
@@ -4390,7 +4392,7 @@ dependencies = [
[[package]]
name = "solidcraft-render"
version = "0.28.0"
version = "0.30.1"
dependencies = [
"image",
"moxcms",
@@ -4399,12 +4401,13 @@ dependencies = [
"serde_json",
"sha2 0.10.9",
"solidcraft-geom",
"web-time",
"weezl",
]
[[package]]
name = "solidcraft-sketch"
version = "0.28.0"
version = "0.30.1"
dependencies = [
"harfrust",
"serde",
@@ -4417,14 +4420,18 @@ dependencies = [
[[package]]
name = "solidcraft-space-mouse"
version = "0.28.0"
version = "0.30.1"
dependencies = [
"serde",
]
[[package]]
name = "solidcraft-testkit"
version = "0.30.1"
[[package]]
name = "solidcraft-ui-egui"
version = "0.28.0"
version = "0.30.1"
dependencies = [
"arboard",
"egui",
@@ -4443,6 +4450,7 @@ dependencies = [
"solidcraft-gpu",
"solidcraft-space-mouse",
"syn 2.0.119",
"sys-locale",
"tiny-skia",
"toml",
"ttf-parser",
@@ -4454,7 +4462,7 @@ dependencies = [
[[package]]
name = "solidcraft-web"
version = "0.28.0"
version = "0.30.1"
dependencies = [
"eframe",
"egui",
@@ -4558,6 +4566,18 @@ dependencies = [
"syn 2.0.119",
]
[[package]]
name = "sys-locale"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4"
dependencies = [
"js-sys",
"libc",
"wasm-bindgen",
"web-sys",
]
[[package]]
name = "tempfile"
version = "3.27.0"
@@ -4565,7 +4585,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd"
dependencies = [
"fastrand",
"getrandom 0.3.4",
"getrandom 0.4.3",
"once_cell",
"rustix 1.1.5",
"windows-sys 0.61.2",
@@ -5997,7 +6017,7 @@ checksum = "e450f9b2ed1dff33c94c12589a87338689467b9c4f5d8a5710bd09a847d2c8a7"
[[package]]
name = "xtask"
version = "0.28.0"
version = "0.30.1"
dependencies = [
"proc-macro2",
"serde",
+3 -1
View File
@@ -5,7 +5,7 @@ members = ["crates/*", "apps/*", "xtask"]
exclude = ["vendor"]
[workspace.package]
version = "0.28.0"
version = "0.30.1"
edition = "2024"
license = "MIT OR Apache-2.0"
rust-version = "1.95"
@@ -28,6 +28,8 @@ solidcraft-space-mouse = { path = "crates/space-mouse" }
solidcraft-mcp = { path = "crates/mcp" }
solidcraft-derive = { path = "crates/derive" }
solidcraft-3dx-client = { path = "crates/threedx-client" }
# test tooling: a dev-dependency only (xtask/src/layers.rs)
solidcraft-testkit = { path = "crates/testkit" }
# foundation
thiserror = "2"
+3 -1
View File
@@ -662,7 +662,9 @@ completed drawings publish atomically. The browser still exports synchronously.
pieces survive unfold/refold as one logical sheet group, including split flanged sheets.
Cut-outs made in the flat pattern cross bends at any angle or curved: their edges fold to
helices and curves on the bend, their walls square to the sheet. Free-form bases use bounded
sampling.
sampling. A fold crosses the sheet's own outer edges the same way, slanted or on any curve,
with the outline exact in the flat pattern and its DXF, and flanges and other folds still go
on the panels.
Parallel prismatic partial-depth cuts retain pocket side and depth through transfer and
unfold/refold, with separate pocket contours in preview and DXF. Planar Intersect preserves
exact holes and retained islands, including the union of multiple selected profiles, and
+40 -12
View File
@@ -3,7 +3,7 @@
## Supported versions
SolidCraft is young and moves quickly, so only the latest release gets security fixes. Please
update to the [latest release](https://github.com/bherbruck/solidcraft/releases/latest) before
update to the [latest release](https://github.com/tangency-labs/solidcraft/releases/latest) before
reporting, and check whether the problem is still on `main`.
| Version | Supported |
@@ -15,18 +15,46 @@ reporting, and check whether the problem is still on `main`.
## Reporting a vulnerability
Please **don't open a public issue** for a security problem. Report it privately through GitHub:
open the repository's [Security tab](https://github.com/bherbruck/solidcraft/security) and choose
open the repository's [Security tab](https://github.com/tangency-labs/solidcraft/security) and choose
**Report a vulnerability**
([direct link](https://github.com/bherbruck/solidcraft/security/advisories/new)).
([direct link](https://github.com/tangency-labs/solidcraft/security/advisories/new)).
Please include what you found, how to reproduce it (a design file, command or MCP request), the
version and platform, and the impact you expect. I'll acknowledge the report as soon as I can,
keep you updated in the advisory, and credit you when the fix is published unless you'd rather
stay anonymous.
Please include what you found, the steps you ran to reproduce it (a design file, command or MCP
request), the version and platform, and what an attacker gains. I'll acknowledge the report as soon
as I can, keep you updated in the advisory, and credit you when the fix is published unless you'd
rather stay anonymous.
Areas where reports are especially useful:
## What counts as a security issue
- opening untrusted design, STEP, STL or 3MF files (crashes, excessive memory or CPU, path tricks)
- the MCP server and the control API (file access outside the allowed folders, command injection)
- the web app (anything reaching beyond the page's own storage)
- release packages and the update paths (AppImage, Flatpak, MSI, deb, rpm, snap)
Advisories are for problems where someone gets something they shouldn't, without already having
access to your computer or your account. For example:
- opening a design, STEP, STL or 3MF file from someone else runs code, or reads or overwrites files
it shouldn't
- a website or another computer can reach or control SolidCraft
- an agent gets past a prompt that promised to ask you first
- the web app reaches beyond the page's own storage
- a release package or an update can be tampered with
- an API key or token gets sent somewhere it shouldn't go
## What to report as a normal bug
Please [open an issue](https://github.com/tangency-labs/solidcraft/issues/new) for these. They're
still worth fixing, but they aren't security issues:
- anything that needs a program already running on your computer, or the control token. A program
running as you can already do what you can.
- MCP's allowed folders. They guard against accidents, they aren't a security boundary, and an agent
with a shell of its own can already reach those files. Getting around them isn't a vulnerability.
- crashes, hangs, or heavy memory or CPU use, unless they also lead to something in the list above
- anything that only happens in an unusual setup you'd have to choose on purpose
## Before you send it
- **Run it.** Reproduce the problem on the latest release. If you only read the code, say so, and
expect it to wait.
- **Check it yourself.** If a scanner or an AI agent found it, read the code and confirm it first.
These tools tend to overrate what they find.
- **Say what's gained.** Name what the attacker needs and what they get. I set the final severity.
Reports that don't fit will be closed with a short note, or moved to the issue tracker.
+30 -3
View File
@@ -1,6 +1,6 @@
Third-party software in SolidCraft
SolidCraft (the desktop app, solidcraft-cli and the web app) is built from the 560 crates below.
SolidCraft (the desktop app, solidcraft-cli and the web app) is built from the 561 crates below.
Generated by `cargo xtask licences` from Cargo.lock and the crates' own licence files.
SolidCraft's own licence is in LICENSE-MIT and LICENSE-APACHE, and NOTICE.
@@ -403,6 +403,7 @@ syn 1.0.109 (MIT OR Apache-2.0)
syn 2.0.119 (MIT OR Apache-2.0)
syn 3.0.6 (MIT OR Apache-2.0)
synstructure 0.13.2 (MIT)
sys-locale 0.3.2 (MIT OR Apache-2.0)
tempfile 3.27.0 (MIT OR Apache-2.0)
termcolor 1.4.1 (Unlicense OR MIT)
thiserror 1.0.69 (MIT OR Apache-2.0)
@@ -1836,8 +1837,8 @@ approx 0.4.0, as-raw-xcb-connection 1.0.1, atspi 0.29.0, atspi-common 0.13.0, at
cgmath 0.18.0, chardetng 0.1.17, codespan-reporting 0.13.1, encoding_rs 0.8.42, kurbo 0.13.1,
multiversion_no_op 1.0.0, nohash-hasher 0.2.0, peniko 0.6.1, polycool 0.4.0, raw-window-metal 1.1.0,
rustls-platform-verifier 0.7.1, self_cell 1.3.0, siphasher 1.0.4, spade 2.15.1, static_assertions
1.1.0, ureq 3.4.2, ureq-proto 0.6.4, utf8_iter 1.0.4, x11rb 0.13.2, x11rb-protocol 0.13.2, zeroize
1.9.1, zeroize_derive 1.5.0, zune-core 0.5.3, zune-jpeg 0.5.15
1.1.0, sys-locale 0.3.2, ureq 3.4.2, ureq-proto 0.6.4, utf8_iter 1.0.4, x11rb 0.13.2, x11rb-protocol
0.13.2, zeroize 1.9.1, zeroize_derive 1.5.0, zune-core 0.5.3, zune-jpeg 0.5.15
================================================================================
Apache License
@@ -13570,6 +13571,32 @@ The above copyright notice and this permission notice shall be included in all c
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
================================================================================
sys-locale 0.3.2
================================================================================
MIT License
Copyright (c) 2021 1Password
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================================================
tempfile 3.27.0
================================================================================
+5 -1
View File
@@ -172,7 +172,11 @@ fn main() -> ExitCode {
Some("oracle") => oracle::run(&args[1..]),
Some("fuzz") => fuzz::run(&args[1..]),
Some("fuzz-one") => fuzz::one(&args[1..]),
Some("mcp") => cmd_mcp(&args[1..]),
Some("mcp") => {
let result = cmd_mcp(&args[1..]);
solidcraft_mcp::cleanup_scratch_dir();
result
}
Some("crashes") => crashes::run(&args[1..]),
Some("icon") => cmd_icon(&args[1..]),
Some("licences" | "licenses") => {
+107
View File
@@ -263,3 +263,110 @@ mod setup {
assert!(json_of(&pkg.join("claude_desktop_config.json"))["mcpServers"]["solidcraft"].is_object());
}
}
/// Scratch files belong to the CLI process; exercise real startup, requests and shutdown.
mod scratch_cleanup {
use super::*;
use std::path::{Path, PathBuf};
fn command(case: &str) -> (PathBuf, Command) {
let dir = std::env::temp_dir().join(format!("solidcraft-mcp-lifecycle-{case}-{}", std::process::id()));
std::fs::create_dir(&dir).unwrap();
let mut command = Command::new(env!("CARGO_BIN_EXE_solidcraft-cli"));
command
.args(["mcp", "--headless"])
.env("TMPDIR", &dir)
.env("TMP", &dir)
.env("TEMP", &dir)
.env("SOLIDCRAFT_RECOVERY_DIR", dir.join("recovery"))
.stdin(Stdio::piped())
.stdout(Stdio::piped())
.stderr(Stdio::piped());
(dir, command)
}
fn scratch_folders(dir: &Path) -> Vec<PathBuf> {
std::fs::read_dir(dir)
.unwrap()
.map(|entry| entry.unwrap().path())
.filter(|path| path.file_name().unwrap().to_string_lossy().starts_with("solidcraft-mcp-"))
.collect()
}
fn initialize() -> Value {
json!({"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2025-06-18"}})
}
fn run(mut command: Command, request: Value) -> std::process::Output {
let mut child = command.spawn().unwrap();
writeln!(child.stdin.take().unwrap(), "{request}").unwrap();
child.wait_with_output().unwrap()
}
#[test]
fn eof_removes_only_the_process_scratch_folder() {
let (dir, command) = command("eof");
let unrelated = dir.join("solidcraft-mcp-unrelated");
std::fs::create_dir(&unrelated).unwrap();
let out = run(command, initialize());
assert!(out.status.success(), "{}", String::from_utf8_lossy(&out.stderr));
let reply: Value = serde_json::from_slice(&out.stdout).unwrap();
assert!(reply.get("result").is_some(), "{reply}");
assert_eq!(scratch_folders(&dir), vec![unrelated]);
assert!(dir.join("recovery").is_dir(), "cleanup must leave the recovery folder alone");
std::fs::remove_dir_all(dir).unwrap();
}
#[test]
fn startup_error_removes_the_process_scratch_folder() {
let (dir, mut command) = command("startup-error");
let out = command.args(["--param-check", "invalid"]).stdin(Stdio::null()).output().unwrap();
let stderr = String::from_utf8_lossy(&out.stderr);
assert!(!out.status.success());
assert!(stderr.contains("--param-check wants off, warn or strict"), "{stderr}");
assert!(scratch_folders(&dir).is_empty(), "startup error left a scratch folder in {dir:?}");
std::fs::remove_dir_all(dir).unwrap();
}
#[test]
fn shutdown_preserves_nonempty_scratch_folder() {
let (dir, mut command) = command("nonempty");
let mut child = command.spawn().unwrap();
let mut input = child.stdin.take().unwrap();
writeln!(input, "{}", initialize()).unwrap();
let mut reply = String::new();
BufReader::new(child.stdout.take().unwrap()).read_line(&mut reply).unwrap();
let reply: Value = serde_json::from_str(&reply).unwrap();
assert!(reply.get("result").is_some(), "{reply}");
let scratch = scratch_folders(&dir);
assert_eq!(scratch.len(), 1);
let saved = scratch[0].join("keep.txt");
std::fs::write(&saved, "saved output").unwrap();
drop(input);
let out = child.wait_with_output().unwrap();
assert!(out.status.success(), "{}", String::from_utf8_lossy(&out.stderr));
assert_eq!(std::fs::read_to_string(saved).unwrap(), "saved output");
std::fs::remove_dir_all(dir).unwrap();
}
#[test]
fn failed_screenshot_scratch_folder_is_removed_without_a_path_scope() {
let (dir, mut command) = command("screenshot");
command.arg("--allow-any-path");
// A headless server cannot capture a window. The request still allocates a scratch
// path before the backend refuses it, without relying on a GPU or installed renderer.
let out = run(
command,
json!({
"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {"name": "screenshot", "arguments": {"source": "window"}},
}),
);
assert!(out.status.success(), "{}", String::from_utf8_lossy(&out.stderr));
let reply: Value = serde_json::from_slice(&out.stdout).unwrap();
assert_eq!(reply["result"]["isError"], true, "{reply}");
assert!(reply["result"]["content"][0]["text"].as_str().unwrap().contains("the window gave no picture"), "{reply}");
assert!(scratch_folders(&dir).is_empty(), "failed screenshot left a scratch folder in {dir:?}");
std::fs::remove_dir_all(dir).unwrap();
}
}
+3 -1
View File
@@ -229,7 +229,9 @@ fn known_pending_concepts_and_released_files_round_trip_with_inert_metadata() {
assert!(output.status.success(), "{}", String::from_utf8_lossy(&output.stderr));
let reopened = io::read_design(&std::fs::read(&destination).unwrap()).unwrap();
assert_eq!(reopened.metadata, document.metadata);
assert_eq!(reopened.name, document.name);
// #4907: `run --save` maps to Save As, and a borrowed design name
// follows the destination file's stem instead of keeping the old name.
assert_eq!(reopened.name, format!("resaved-{index}"));
assert_eq!(reopened.features, document.features);
assert_eq!(std::fs::read(&source).unwrap(), bytes);
}
@@ -123,3 +123,42 @@ fn a_design_naming_a_sketch_and_its_extrude_alike_replays_from_its_script() {
assert_eq!(names, ["Block", "Block"], "{first:#}");
assert_eq!(second["commands"], first["commands"], "the replayed design's script has the same steps");
}
/// #10230: script export must disclose the print-face state that replay leaves out.
#[test]
fn script_export_warns_about_omitted_print_faces_on_stderr() {
let dir = std::env::temp_dir().join(format!("solidcraft-print-face-script-{}", std::process::id()));
std::fs::create_dir_all(&dir).unwrap();
let saved = dir.join("block.sc");
let exported = dir.join("block.json");
let mut s = Session::default();
s.execute("solid.box", &json!({"length": 20, "width": 10, "height": 5, "body_name": "Block"})).unwrap();
s.execute("body.print_face", &json!({"body": "Block", "point": [10, 5, 0]})).unwrap();
s.execute("file.save", &json!({"path": saved})).unwrap();
let native = std::fs::read(&saved).unwrap();
for to_file in [false, true] {
let mut cmd = std::process::Command::new(env!("CARGO_BIN_EXE_solidcraft-cli"));
cmd.arg("script").arg(&saved);
if to_file {
cmd.arg("--out").arg(&exported);
}
let out = cmd.output().unwrap();
let stderr = String::from_utf8_lossy(&out.stderr);
assert!(out.status.success(), "{stderr}");
assert!(stderr.contains("note: the script leaves out print-face assignments (body.print_face)"), "{stderr}");
let script = if to_file {
assert!(out.stdout.is_empty(), "--out must keep stdout empty");
std::fs::read(&exported).unwrap()
} else {
out.stdout
};
let script: Value = serde_json::from_slice(&script).unwrap();
let mut replayed = Session::default();
replayed.run_script(&script).unwrap();
assert!(replayed.doc.print_faces.is_empty());
assert_eq!(replayed.doc.features, s.doc.features);
assert_eq!(std::fs::read(&saved).unwrap(), native, "export must not change the source design");
}
std::fs::remove_dir_all(dir).unwrap();
}
+27 -8
View File
@@ -15,6 +15,9 @@ type Reply = Result<(String, Vec<u8>), String>;
pub struct Download {
reply: Rc<RefCell<Option<Reply>>>,
pending: Option<(String, Vec<u8>)>,
/// The downloaded design being opened (a few features a frame, #10198): the answer to come,
/// the name it takes and the file it was read from.
opening: Option<(std::sync::mpsc::Receiver<serde_json::Value>, String, String)>,
}
impl Download {
@@ -33,13 +36,14 @@ impl Download {
}
pub fn tick(&mut self, app: &mut SolveApp, ctx: &egui::Context) {
self.opened(app);
if let Some(reply) = self.reply.borrow_mut().take() {
match reply {
Ok(file) => self.pending = Some(file),
Err(error) => app.set_status(format!("Could not open design link: {error}"), true),
}
}
if self.pending.is_none() || app.file_picker_busy() {
if self.pending.is_none() || self.opening.is_some() || app.file_picker_busy() {
return;
}
if solidcraft_ui_egui::documents::any_dirty(app) {
@@ -71,18 +75,33 @@ impl Download {
}
}
let Some((name, bytes)) = self.pending.take() else { return };
// The extension selects the design loader even when the URL has no extension.
let path = &format!("/linked/design.{}", solidcraft_engine::io::DESIGN_EXT);
vfs::insert(path, bytes);
app.open_path(path);
if app.session.path.as_deref() == Some(path.as_str()) {
// The extension selects the design loader even when the URL has no extension. Named
// after the link, as the progress card shows the file's name.
let file: String = name.chars().map(|c| if matches!(c, '/' | '\\') { '_' } else { c }).collect();
let path = format!("/linked/{}.{}", if file.is_empty() { "design" } else { &file }, solidcraft_engine::io::DESIGN_EXT);
vfs::insert(&path, bytes);
// Opened as any design is, with its progress and Cancel; finished in `opened`.
self.opening = Some((app.open_path_answered(&path), name, path));
self.opened(app);
}
/// The downloaded design is in: it is an unsaved copy under the link's name.
fn opened(&mut self, app: &mut SolveApp) {
let Some((rx, _, _)) = &self.opening else { return };
let (ok, cancelled) = match rx.try_recv() {
Ok(reply) => (reply["ok"].as_bool() == Some(true), reply["error"].as_str().is_some_and(|e| e.contains("cancelled"))),
Err(std::sync::mpsc::TryRecvError::Empty) => return,
Err(std::sync::mpsc::TryRecvError::Disconnected) => (false, false),
};
let Some((_, name, path)) = self.opening.take() else { return };
if ok && app.session.path.as_deref() == Some(path.as_str()) {
app.session.path = None;
app.session.doc_mut().name = name;
app.session.mark_unsaved();
} else {
} else if !ok && !cancelled {
app.set_status("Could not open design link: the downloaded file is not a valid SolidCraft design", true);
}
let _ = vfs::remove(path);
let _ = vfs::remove(&path);
}
}
+13 -14
View File
@@ -375,7 +375,8 @@ mod web {
// Designs opened from the computer's disk (the files window): open them.
let opened: Vec<_> = self.files.opened.borrow_mut().drain(..).collect();
for path in opened {
self.app.open_path(&path);
// A few features a frame, with progress and Cancel (#10198).
self.app.open_path_async(&path);
self.files.panel.set(false);
}
// Recent designs whose file is gone are dropped from the list.
@@ -416,7 +417,7 @@ mod web {
path
};
match intent {
Intent::Open => self.app.open_path(&path),
Intent::Open => self.app.open_path_async(&path),
Intent::Insert | Intent::Theme => self.app.drop_path(&path),
}
self.files.panel.set(false);
@@ -580,7 +581,7 @@ mod web {
let path = format!("{}{name}", files::OPFS);
match what {
"open" => {
self.app.open_path(&path);
self.app.open_path_async(&path);
self.files.panel.set(false);
}
"insert" => {
@@ -684,7 +685,7 @@ mod web {
/// Whether the shell already has the on-demand face the live language needs.
fn script_font_ready(&self) -> bool {
match solidcraft_ui_egui::fonts::web_script_font_kind(&self.app.preferences.language) {
match solidcraft_ui_egui::fonts::web_script_font_kind(solidcraft_ui_egui::i18n::effective_language(&self.app.preferences.language)) {
Some("zh") => self.chinese_bytes.is_some() && self.chinese_kind == Some("zh"),
Some("zh-TW") => self.chinese_bytes.is_some() && self.chinese_kind == Some("zh-TW"),
Some("ja") => self.cjk_bytes.is_some(),
@@ -726,7 +727,8 @@ mod web {
false
}
};
if !installed && solidcraft_ui_egui::fonts::needs_cjk_font(&self.app.preferences.language) {
let effective = solidcraft_ui_egui::i18n::effective_language(&self.app.preferences.language);
if !installed && solidcraft_ui_egui::fonts::needs_cjk_font(effective) {
log::warn!("script font unavailable; showing English for this session");
}
self.font.finished(installed, &mut self.app.preferences.language);
@@ -734,12 +736,13 @@ mod web {
ctx.request_repaint();
}
let ready = self.script_font_ready();
let effective = solidcraft_ui_egui::i18n::effective_language(&self.app.preferences.language);
if self.font.tick(&mut self.app.preferences.language, ready) {
self.fetch_font(ctx, solidcraft_ui_egui::fonts::web_script_font_kind(&self.app.preferences.language).unwrap_or("ja"));
self.fetch_font(ctx, solidcraft_ui_egui::fonts::web_script_font_kind(effective).unwrap_or("ja"));
}
// The CJK face leads only a CJK UI: its Cyrillic glyphs are full-width, so switching
// to Ukrainian (or English) must put the Latin face back in front.
if self.app.preferences.language != self.font_language {
if solidcraft_ui_egui::i18n::effective_language(&self.app.preferences.language) != self.font_language {
self.apply_fonts(ctx);
}
}
@@ -747,17 +750,13 @@ mod web {
/// Set up the UI fonts for the live language, keeping fetched script fonts as fallbacks
/// (Chinese leads a Chinese UI; see [`solidcraft_ui_egui::fonts::install_web_script_fonts`]).
fn apply_fonts(&mut self, ctx: &egui::Context) {
let effective = solidcraft_ui_egui::i18n::effective_language(&self.app.preferences.language);
if self.cjk_bytes.is_none() && self.chinese_bytes.is_none() {
solidcraft_ui_egui::fonts::setup_fonts(ctx);
} else {
solidcraft_ui_egui::fonts::install_web_script_fonts(
ctx,
self.cjk_bytes.clone(),
self.chinese_bytes.clone(),
&self.app.preferences.language,
);
solidcraft_ui_egui::fonts::install_web_script_fonts(ctx, self.cjk_bytes.clone(), self.chinese_bytes.clone(), effective);
}
self.font_language.clone_from(&self.app.preferences.language);
self.font_language = effective.to_owned();
}
/// CJK text on screen with no Japanese font yet (an English UI showing a Japanese name):
+125 -8
View File
@@ -22,6 +22,10 @@ const MAX_BAD_LINES: usize = 8;
/// How long a subscribed connection waits after a `design.changed` line before the next: what
/// changes meanwhile (a parameter dragged) goes out as one line, the latest (#6985).
const EVENT_GAP: Duration = Duration::from_millis(100);
/// How long a new connection has to show the token. A client connects when it has a request to
/// send, so this is plenty; one that doesn't send it loses the connection, and its seat among
/// [`MAX_CONNECTIONS`] goes to someone else.
const TOKEN_WAIT: Duration = Duration::from_secs(5);
static OPEN: AtomicUsize = AtomicUsize::new(0);
/// The token files this launch wrote (its control port, the agent chat's endpoint) and the
@@ -225,23 +229,53 @@ fn unauthorized() -> Value {
/// Refuse the connection: the reply, then the end of what we send, then what the client had
/// already sent read and dropped (a little, briefly). Closing a socket with unread input resets
/// the connection, and a reset can reach the client before it has read the refusal.
fn refuse(out: &mut TcpStream, reader: &mut BufReader<TcpStream>) {
fn refuse(out: &mut TcpStream, reader: &mut BufReader<ClientInput>) {
use std::io::Read;
let _ = send(out, &unauthorized());
let _ = out.shutdown(std::net::Shutdown::Write);
let _ = reader.get_ref().set_read_timeout(Some(Duration::from_millis(500)));
reader.get_mut().deadline = Some(Instant::now() + Duration::from_millis(500));
let _ = std::io::copy(&mut reader.by_ref().take(64 * 1024), &mut std::io::sink());
}
/// What a client sends. Until it shows the token, all of its reads share one deadline, so neither
/// blank lines nor a line sent a byte at a time buy it more time. After that it may stay idle as
/// long as it likes.
struct ClientInput {
socket: TcpStream,
deadline: Option<Instant>,
}
impl ClientInput {
/// No deadline any more: the client showed the token.
fn admit(&mut self) -> std::io::Result<()> {
self.deadline = None;
self.socket.set_read_timeout(None)
}
}
impl std::io::Read for ClientInput {
fn read(&mut self, buf: &mut [u8]) -> std::io::Result<usize> {
if let Some(deadline) = self.deadline {
let left = deadline.saturating_duration_since(Instant::now());
if left.is_zero() {
return Err(std::io::ErrorKind::TimedOut.into());
}
self.socket.set_read_timeout(Some(left))?;
}
self.socket.read(buf)
}
}
/// How long a request waits for the app's reply: most requests, and a batch (or every request,
/// on a patient connection).
/// on a patient connection); and how long a new connection has to show the token.
#[derive(Clone, Copy)]
struct Waits {
short: Duration,
long: Duration,
token: Duration,
}
const WAITS: Waits = Waits { short: Duration::from_secs(60), long: Duration::from_secs(3600) };
const WAITS: Waits = Waits { short: Duration::from_secs(60), long: Duration::from_secs(3600), token: TOKEN_WAIT };
/// A request that timed out but is still running in the app (#1618): its id and method, and where
/// its reply will land.
@@ -543,7 +577,7 @@ fn serve_with(
let connection = running.connections.fetch_add(1, Ordering::Relaxed) + 1;
let Ok(read) = stream.try_clone() else { return };
let mut out = stream;
let mut reader = BufReader::new(read);
let mut reader = BufReader::new(ClientInput { socket: read, deadline: Some(Instant::now() + waits.token) });
let mut bad = 0usize;
let mut authenticated = false;
let mut pending: Option<Pending> = None;
@@ -554,6 +588,10 @@ fn serve_with(
let line = match read_line(&mut reader, MAX_LINE) {
Ok(Some(l)) => String::from_utf8_lossy(&l).into_owned(),
Ok(None) => break,
// Closed without a word: a client that connected early and only now sends its first
// request would read a line here as the reply to it. It finds the connection closed
// and opens another.
Err(e) if !authenticated && matches!(e.kind(), std::io::ErrorKind::TimedOut | std::io::ErrorKind::WouldBlock) => break,
Err(e) => {
let _ = answer(&mut out, events.as_ref(), &json!({"ok": false, "error": e.to_string()}));
break;
@@ -565,7 +603,12 @@ fn serve_with(
// The first request must carry the token; later ones on the same connection may.
if !authenticated {
match token_of(&line) {
Some(t) if control_auth::tokens_match(&t, token) => authenticated = true,
Some(t) if control_auth::tokens_match(&t, token) => {
if reader.get_mut().admit().is_err() {
break;
}
authenticated = true;
}
_ => {
refuse(&mut out, &mut reader);
break;
@@ -675,6 +718,80 @@ fn serve_with(
mod tests {
use super::*;
/// A connection that doesn't show the token in time is closed without a word, however it fills
/// the time. One that does keeps working when it idles for longer than that.
#[test]
fn the_token_has_a_time_limit_and_an_authenticated_client_may_idle() {
use std::io::Read;
let token = "0123456789abcdef0123456789abcdef";
let limit = Duration::from_millis(500);
let listener = TcpListener::bind("127.0.0.1:0").unwrap();
let addr = listener.local_addr().unwrap();
let (tx, rx) = channel::<ControlRequest>();
std::thread::spawn(move || {
for req in rx {
let _ = req.reply.send(json!({"ok": true, "result": req.method}));
}
});
static RUNNING: Running = Running::new();
let waits = Waits { short: Duration::from_secs(10), long: Duration::from_secs(10), token: limit };
std::thread::spawn(move || {
for stream in listener.incoming().flatten() {
let tx = tx.clone();
std::thread::spawn(move || serve_with(stream, token, tx, egui::Context::default(), false, waits, &RUNNING, &DESIGN_WATCH));
}
});
let open = || {
let s = TcpStream::connect(addr).unwrap();
s.set_read_timeout(Some(Duration::from_secs(20))).unwrap();
s
};
// Sends `drip` every 50 ms until the server closes; what it read, and when it closed.
let closed_after = |drip: &[u8]| {
let mut s = open();
let start = Instant::now();
s.set_read_timeout(Some(Duration::from_millis(50))).unwrap();
let mut got = Vec::new();
loop {
let mut buf = [0u8; 256];
match s.read(&mut buf) {
Ok(0) => break,
Ok(n) => got.extend_from_slice(buf.get(..n).unwrap()),
Err(e) if matches!(e.kind(), std::io::ErrorKind::WouldBlock | std::io::ErrorKind::TimedOut) => {
assert!(start.elapsed() < Duration::from_secs(20), "still open");
let _ = s.write_all(drip);
}
Err(_) => break,
}
}
(got, start.elapsed())
};
for drip in [&b""[..], b"\n", b"\r\n \n", b" ", b"{"] {
let (got, took) = closed_after(drip);
assert!(got.is_empty(), "{drip:?} was answered: {}", String::from_utf8_lossy(&got));
assert!(took >= limit.saturating_sub(Duration::from_millis(50)), "{drip:?} closed after {took:?}");
}
let mut s = open();
let mut lines = BufReader::new(s.try_clone().unwrap());
let mut ask = |line: Value| -> Value {
writeln!(s, "{line}").unwrap();
let mut l = String::new();
lines.read_line(&mut l).unwrap();
serde_json::from_str(&l).unwrap()
};
assert_eq!(ask(json!({"id": 1, "method": "ui.view", "token": token}))["ok"], true);
std::thread::sleep(limit * 3);
assert_eq!(ask(json!({"id": 2, "method": "ui.view"}))["ok"], true, "idle for longer than the limit");
// A wrong token is still answered, at once.
let mut wrong = open();
writeln!(wrong, "{}", json!({"id": 1, "method": "ui.view", "token": "nope"})).unwrap();
let mut l = String::new();
BufReader::new(wrong).read_line(&mut l).unwrap();
assert!(l.contains("unauthorized"), "{l}");
}
/// #1618: a request that outlasts its wait says it is still running; the connection keeps its
/// reply for `control.pending`, and refuses other requests as `busy` until it lands, so none
/// is queued to run unseen behind it.
@@ -698,7 +815,7 @@ mod tests {
let _ = req.reply.send(json!({"ok": true, "result": req.method}));
}
});
let waits = Waits { short: Duration::from_millis(100), long: Duration::from_millis(100) };
let waits = Waits { short: Duration::from_millis(100), long: Duration::from_millis(100), token: TOKEN_WAIT };
static RUNNING: Running = Running::new();
std::thread::spawn(move || {
if let Some(stream) = listener.incoming().flatten().next() {
@@ -764,7 +881,7 @@ mod tests {
let _ = req.reply.send(json!({"ok": true, "result": req.method}));
}
});
let waits = Waits { short: Duration::from_millis(100), long: Duration::from_secs(60) };
let waits = Waits { short: Duration::from_millis(100), long: Duration::from_secs(60), token: TOKEN_WAIT };
std::thread::spawn(move || {
for stream in listener.incoming().flatten() {
let tx = tx.clone();
+261 -3
View File
@@ -99,6 +99,86 @@ struct App {
nav_bridge: nav_bridge::NavBridge,
/// Where the next file dialog opens: it follows the open design (#7756).
dialog_folder: DialogFolder,
/// Settings go to `app.ron` in the frame they change (#8275).
prefs_writer: PrefsWriter,
}
/// Settings written to the settings file soon after they change (#8275). eframe saves them
/// only every 30 s and when the window closes normally, so a change was lost whenever the app
/// did not get that far: ended from the Task Manager, stopped by a sign-out or shutdown, or
/// crashed or hung in the graphics driver on the way out.
///
/// Some settings change continuously (a panel's width while its edge is dragged), so the file
/// is written at most once per [`PrefsWriter::INTERVAL`], and a change made in between is written
/// when that interval ends.
#[derive(Default)]
struct PrefsWriter {
/// The settings written (or read at start) last.
written: Option<String>,
/// The previous frame had input that can change settings: what it changed shows in this
/// frame's settings.
input_before: bool,
/// When the settings were last written by this writer.
last_write: Option<std::time::Instant>,
/// A change waits until then to be written.
pending_until: Option<std::time::Instant>,
}
impl PrefsWriter {
/// The least time between two writes of the settings file.
const INTERVAL: std::time::Duration = std::time::Duration::from_secs(1);
/// The settings as they were read at start: they are on disk already.
fn read(prefs: String) -> Self {
Self { written: Some(prefs), ..Self::default() }
}
/// Whether this frame's settings are worth comparing: input that can change them came in this
/// frame or the one before, or a waiting change's time has come. Pointer motion alone isn't
/// such input; eframe's own save still catches anything else.
fn due(&mut self, input: bool, now: std::time::Instant) -> bool {
let due = input || self.input_before || self.pending_until.is_some_and(|at| now >= at);
self.input_before = input;
due
}
/// Write `prefs` and flush them to disk if they differ from the settings written last and the
/// last write is at least [`Self::INTERVAL`] old. Returns how long a change waits otherwise:
/// the caller asks for a frame then, so an idle app still writes it.
fn store(&mut self, storage: &mut dyn eframe::Storage, prefs: String, now: std::time::Instant) -> Option<std::time::Duration> {
if self.written.as_deref() == Some(prefs.as_str()) {
self.pending_until = None;
return None;
}
if let Some(wait) = self.last_write.map(|at| Self::INTERVAL.saturating_sub(now.saturating_duration_since(at))).filter(|w| !w.is_zero()) {
self.pending_until = Some(now + wait);
return Some(wait);
}
storage.set_string(solidcraft_ui_egui::prefs::STORAGE_KEY, prefs.clone());
storage.flush();
self.written = Some(prefs);
self.last_write = Some(now);
self.pending_until = None;
None
}
}
/// Input that can change a setting: a click, a key, typed or pasted text, a wheel or a pinch.
/// Pointer motion, which comes every frame while the mouse moves, cannot by itself.
fn changes_settings(event: &egui::Event) -> bool {
matches!(
event,
egui::Event::PointerButton { .. }
| egui::Event::Key { .. }
| egui::Event::Text(_)
| egui::Event::Paste(_)
| egui::Event::Cut
| egui::Event::Ime(_)
| egui::Event::MouseWheel { .. }
| egui::Event::Zoom(_)
| egui::Event::Rotate(_)
| egui::Event::AccessKitActionRequest(_)
)
}
impl eframe::App for App {
@@ -186,11 +266,21 @@ impl eframe::App for App {
solidcraft_ui_egui::space_mouse::buttons_hook(&mut self.solve, ctx, self.space_mouse.buttons(), raw);
self.solve.raw_input_hook(raw);
}
fn ui(&mut self, ui: &mut egui::Ui, _frame: &mut eframe::Frame) {
fn ui(&mut self, ui: &mut egui::Ui, frame: &mut eframe::Frame) {
content_ui(&mut self.solve, ui);
// After the frame's UI, so a setting changed in it (Preferences' OK) is written now.
let now = std::time::Instant::now();
if self.prefs_writer.due(ui.input(|i| i.events.iter().any(changes_settings)), now)
&& let Some(storage) = frame.storage_mut()
&& let Some(wait) = self.prefs_writer.store(storage, self.solve.prefs(), now)
{
ui.ctx().request_repaint_after(wait);
}
}
fn save(&mut self, storage: &mut dyn eframe::Storage) {
storage.set_string(solidcraft_ui_egui::prefs::STORAGE_KEY, self.solve.prefs());
let prefs = self.solve.prefs();
storage.set_string(solidcraft_ui_egui::prefs::STORAGE_KEY, prefs.clone());
self.prefs_writer.written = Some(prefs);
}
fn on_exit(&mut self) {
// The agent chat's agent and everything it started end with the app.
@@ -728,6 +818,24 @@ fn msaa() -> Option<u16> {
/// (`solidcraft_ui_egui::titlebar`). macOS keeps its traffic lights over the integrated bar.
const CUSTOM_TITLEBAR: bool = !cfg!(target_os = "macos");
/// Linux: the window manager's own decorations (server-side, or the compositor's frame) can be
/// asked for instead of the application bar ([`titlebar_choice`]). Elsewhere always `true`.
fn app_titlebar_wanted() -> bool {
if !cfg!(all(unix, not(target_os = "macos"))) {
return true;
}
let setting = graphics().and_then(|v| v.get("titlebar").and_then(serde_json::Value::as_str).map(str::to_string));
titlebar_choice(solidcraft_engine::geom::env::var("TITLEBAR").as_deref(), setting.as_deref())
}
/// Linux: whether the application bar is the title bar. `SOLIDCRAFT_TITLEBAR` (else
/// `graphics.json`'s `titlebar`) set to `system` gives the window the desktop's own title bar and
/// buttons; `app` (or anything else, or nothing) keeps the application bar as the title bar.
fn titlebar_choice(env: Option<&str>, setting: Option<&str>) -> bool {
let choice = env.map(str::trim).filter(|v| !v.is_empty()).or(setting.map(str::trim));
!choice.is_some_and(|v| v.eq_ignore_ascii_case("system"))
}
const DEPTH_BITS: u8 = 24;
/// A 32-bit float depth buffer, drawn with reversed depth (1 near, 0 far) so its precision follows
/// the distance from the eye (#1434). Only where every adapter offers it with a stencil
@@ -898,7 +1006,7 @@ fn main() -> eframe::Result {
eframe::egui_wgpu::WgpuSetup::CreateNew(setup) => setup.instance_descriptor.backends,
_ => eframe::wgpu::Backends::all(),
};
let custom_titlebar = CUSTOM_TITLEBAR && !startup::system_title_bar(cfg!(target_os = "windows"), started);
let custom_titlebar = CUSTOM_TITLEBAR && app_titlebar_wanted() && !startup::system_title_bar(cfg!(target_os = "windows"), started);
eframe::egui_wgpu::set_startup_hook(startup_step);
solidcraft_engine::crash::phase("window");
let options = eframe::NativeOptions {
@@ -1018,6 +1126,12 @@ fn main() -> eframe::Result {
})
.collect();
let info = rs.adapter.get_info();
if !app.preferences.graphics_adapter.is_empty() && !info.name.eq_ignore_ascii_case(app.preferences.graphics_adapter.as_str()) {
eprintln!(
"SolidCraft graphics: preferred adapter {:?} was not used; using {:?} instead",
app.preferences.graphics_adapter, info.name
);
}
let samples = scene_msaa_request(saved_samples);
let supported = scene_sample_choices(depth_bits, STENCIL_BITS, |depth| {
eframe::egui_wgpu::supported_msaa_samples(&rs.adapter, &rs.device, rs.target_format, depth)
@@ -1122,6 +1236,8 @@ fn main() -> eframe::Result {
mark("app created");
solidcraft_engine::crash::phase("first frame");
Ok(Box::new(App {
// Before `app` moves: the settings as read, already on disk.
prefs_writer: PrefsWriter::read(app.prefs()),
solve: app,
starting,
frames: 0,
@@ -1313,6 +1429,148 @@ mod backend_tests {
assert!(!prefer_x11(true, true, Some("GNOME"), over(Some("wayland"))));
assert!(prefer_x11(true, true, Some("niri"), over(Some("x11"))));
}
#[test]
fn the_desktops_title_bar_only_when_asked_for() {
use super::titlebar_choice;
// Nothing set: the application bar is the title bar, as before.
assert!(titlebar_choice(None, None));
// graphics.json's `titlebar`.
assert!(!titlebar_choice(None, Some("system")));
assert!(titlebar_choice(None, Some("app")));
// SOLIDCRAFT_TITLEBAR wins over the file; empty counts as unset; case and spaces don't matter.
assert!(!titlebar_choice(Some(" System "), Some("app")));
assert!(titlebar_choice(Some("app"), Some("system")));
assert!(!titlebar_choice(Some(""), Some("system")));
// Anything unknown keeps the application bar.
assert!(titlebar_choice(Some("ssd"), None));
}
}
#[cfg(test)]
mod prefs_writer_tests {
use super::PrefsWriter;
use solidcraft_ui_egui::prefs::{NavigatorStyle, STORAGE_KEY};
use std::collections::HashMap;
use std::time::{Duration, Instant};
/// eframe's settings file: what was flushed to disk is what the next start reads.
#[derive(Default)]
struct Disk {
pending: HashMap<String, String>,
flushed: HashMap<String, String>,
flushes: usize,
}
impl eframe::Storage for Disk {
fn get_string(&self, key: &str) -> Option<String> {
self.pending.get(key).cloned()
}
fn set_string(&mut self, key: &str, value: String) {
self.pending.insert(key.into(), value);
}
fn remove_string(&mut self, key: &str) {
self.pending.remove(key);
}
fn flush(&mut self) {
self.flushed = self.pending.clone();
self.flushes += 1;
}
}
fn new_app() -> solidcraft_ui_egui::SolveApp {
solidcraft_ui_egui::SolveApp::new(solidcraft_engine::Session::default(), solidcraft_ui_egui::Services::default())
}
/// #8275: Preferences' View navigator and Display quality, changed and confirmed, are on disk
/// in that frame, so the next start has them even when this one never closes normally (ended
/// from the Task Manager, a sign-out, a hang or crash in the graphics driver on the way out).
#[test]
fn changed_settings_reach_the_disk_in_the_frame_they_change() {
let mut app = new_app();
let mut disk = Disk::default();
let mut writer = PrefsWriter::read(app.prefs());
let now = Instant::now();
assert_eq!(writer.store(&mut disk, app.prefs(), now), None);
assert_eq!(disk.flushes, 0, "the settings read at start are not written again");
app.preferences.navigator_style = NavigatorStyle::Cube;
app.preferences.display_quality = "fine".into();
assert!(writer.due(true, now), "a frame with input is checked");
assert_eq!(writer.store(&mut disk, app.prefs(), now), None);
assert_eq!(disk.flushes, 1, "flushed at once, not left for eframe's next save");
assert_eq!(writer.store(&mut disk, app.prefs(), now + Duration::from_secs(5)), None);
assert_eq!(disk.flushes, 1, "unchanged settings are not written again");
// The next start reads them.
let mut next = new_app();
let stored = solidcraft_ui_egui::prefs::stored(|k| disk.flushed.get(k).cloned()).expect("settings on disk");
next.load_prefs(&stored);
assert_eq!(next.preferences.navigator_style, NavigatorStyle::Cube);
assert_eq!(next.preferences.display_quality, "fine");
assert!(disk.flushed.contains_key(STORAGE_KEY));
}
/// A frame without input is checked only right after one with input (whose clicks the UI
/// handled in that frame); after that, idle frames cost nothing. Pointer motion, which comes
/// every frame while the mouse moves, doesn't count as input.
#[test]
fn frames_are_checked_with_input_and_once_after_it() {
let now = Instant::now();
let mut writer = PrefsWriter::default();
assert!(!writer.due(false, now));
assert!(writer.due(true, now));
assert!(writer.due(false, now), "the frame after input");
assert!(!writer.due(false, now));
let click = egui::Event::PointerButton {
pos: egui::Pos2::ZERO,
button: egui::PointerButton::Primary,
pressed: false,
modifiers: egui::Modifiers::NONE,
};
assert!(super::changes_settings(&click));
assert!(super::changes_settings(&egui::Event::Text("5".into())));
assert!(!super::changes_settings(&egui::Event::PointerMoved(egui::Pos2::ZERO)));
assert!(!super::changes_settings(&egui::Event::MouseMoved(egui::Vec2::X)));
}
/// A setting that changes in every frame (a panel's width while its edge is dragged) doesn't
/// write the file in every frame: at most once a second, and the last change is on disk at
/// most a second after it was made, with a frame asked for then so an idle app writes it.
#[test]
fn a_continuous_change_is_written_once_a_second_and_its_end_soon_after() {
let mut app = new_app();
let mut disk = Disk::default();
let mut writer = PrefsWriter::read(app.prefs());
let start = Instant::now();
let frame = Duration::from_millis(16);
let mut asked = None;
// 1.5 s of dragging at 60 frames a second, with input in every frame.
for n in 0..94u32 {
let now = start + frame * n;
app.preferences.browser_width = 200.0 + n as f32;
assert!(writer.due(true, now));
asked = writer.store(&mut disk, app.prefs(), now);
}
assert_eq!(disk.flushes, 2, "the first change at once, then one a second later");
let wait = asked.expect("the last width waits, and a frame is asked for when it can be written");
assert!(wait <= PrefsWriter::INTERVAL);
// The drag ends: no more input. Frames before the wait is over don't even look.
let end = start + frame * 93;
assert!(writer.due(false, end + frame), "the frame right after input");
assert!(!writer.due(false, end + frame * 2), "an idle frame before the wait is over");
// The frame asked for writes the last width.
let then = end + wait;
assert!(writer.due(false, then));
assert_eq!(writer.store(&mut disk, app.prefs(), then), None);
assert_eq!(disk.flushes, 3);
let mut next = new_app();
let stored = solidcraft_ui_egui::prefs::stored(|k| disk.flushed.get(k).cloned()).expect("settings on disk");
next.load_prefs(&stored);
assert_eq!(next.preferences.browser_width, 293.0, "the width the drag ended at");
assert!(!writer.due(false, then + frame), "nothing waits any more");
}
}
#[cfg(test)]
+25 -10
View File
@@ -137,8 +137,11 @@ pub struct AdapterChoice {
pub compatible: bool,
}
/// Choose only surface-compatible adapters. Names saved in preferences are exact; the
/// environment override follows wgpu's case-insensitive substring convention.
/// Choose an adapter by name. The environment override follows wgpu's case-insensitive
/// substring convention among surface-compatible adapters. A saved preference prefers an
/// exact (then case-insensitive) name among compatible adapters, and if the named card is
/// only listed as incompatible with the surface still picks it (#8341: otherwise the
/// preference is kept in the dialog while wgpu silently uses another GPU).
/// No match leaves selection to the normal wgpu request.
pub fn choose_adapter(adapters: &[AdapterChoice], environment: Option<&str>, preference: Option<&str>) -> Option<usize> {
// wgpu's environment helper panics on a missing name; an override must remain recoverable.
@@ -149,12 +152,14 @@ pub fn choose_adapter(adapters: &[AdapterChoice], environment: Option<&str>, pre
return Some(index);
}
}
if let Some(name) = preference.filter(|s| !s.is_empty())
&& let Some((index, _)) = compatible().find(|(_, a)| a.name == name)
{
return Some(index);
}
None
let name = preference.filter(|s| !s.is_empty())?;
let find = |pred: &dyn Fn(&AdapterChoice) -> bool, only_compatible: bool| {
adapters.iter().enumerate().find(|(_, a)| (!only_compatible || a.compatible) && pred(a)).map(|(i, _)| i)
};
find(&|a| a.name == name, true)
.or_else(|| find(&|a| a.name.eq_ignore_ascii_case(name), true))
.or_else(|| find(&|a| a.name == name, false))
.or_else(|| find(&|a| a.name.eq_ignore_ascii_case(name), false))
}
/// Leave Automatic on wgpu's normal request path; named choices may defer to it too.
@@ -416,7 +421,8 @@ mod tests {
assert_eq!(choose_adapter(&cards, None, Some("removed")), None);
assert_eq!(choose_adapter(&cards, Some("missing"), Some("Discrete small")), Some(1));
assert_eq!(choose_adapter(&cards, Some(""), Some("Discrete small")), Some(1));
assert_eq!(choose_adapter(&cards, None, Some("Discrete")), None, "saved names are exact");
assert_eq!(choose_adapter(&cards, None, Some("discrete small")), Some(1), "preference matches without regard to case");
assert_eq!(choose_adapter(&cards, None, Some("Discrete")), None, "a preference is the full name, not a substring");
}
#[test]
@@ -425,11 +431,20 @@ mod tests {
assert_eq!(choose_adapter(&cards, None, None), None);
assert_eq!(choose_adapter(&cards, Some(""), Some("")), None);
cards[2].compatible = false;
assert_eq!(choose_adapter(&cards, Some("large"), Some("Discrete large")), None);
// Environment still needs a compatible adapter; a preference keeps the named card (#8341).
assert_eq!(choose_adapter(&cards, Some("large"), Some("Discrete large")), Some(2));
assert_eq!(choose_adapter(&cards, Some("small"), None), Some(1));
assert_eq!(choose_adapter(&[], None, None), None);
}
#[test]
fn preference_keeps_a_named_card_even_when_surface_says_incompatible() {
let mut cards = cards();
cards[1].compatible = false;
assert_eq!(choose_adapter(&cards, None, Some("Discrete small")), Some(1));
assert_eq!(choose_adapter(&cards, None, Some("discrete SMALL")), Some(1));
}
#[test]
fn automatic_adapter_preserves_the_previous_request_configuration() {
use eframe::egui_wgpu::WgpuSetupCreateNew;
@@ -181,6 +181,7 @@ pipe false
plane false
plane_along_path false
plane_angle false
plane_axis_point false
plane_midplane false
plane_perpendicular false
plane_tangent false
@@ -236,6 +237,7 @@ settings_monitor false
settings_mouse false
settings_palette false
settings_plug false
settings_profile false
sheet false
sheet_rules false
shell false
@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Settings profile</title>
<circle cx="32" cy="19" r="8" fill="none" stroke="currentColor" stroke-width="5.6" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M12 53C12 44.7157 20.9543 38 32 38C43.0457 38 52 44.7157 52 53" fill="none" stroke="currentColor" stroke-width="5.6" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 413 B

@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<title>Plane through axis and point</title>
<path d="M26 15L56 32.32L38 42.71L8 25.39Z" fill="#b9ddf8" stroke="#236ead" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round" stroke-dasharray="0.1 5"/>
<path d="M15 18.4L53 40.34" fill="none" stroke="currentColor" stroke-width="2.55" stroke-linejoin="round" stroke-linecap="round"/>
<circle cx="22" cy="29" r="3.1" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 475 B

+493 -24
View File
File diff suppressed because it is too large Load Diff
+446 -1
View File
@@ -60,6 +60,7 @@
"BLEND SURFACE": "PRELAZNA POVRŠ",
"BOUNDARY SURFACE": "GRANIČNA POVRŠ",
"BROWSER": "STABLO MODELA",
"Back to the original order": "Nazad na izvorni redoslijed",
"Ball": "Kuglasti",
"Bar": "Šipka",
"Base Center": "Centar osnove",
@@ -595,6 +596,8 @@
"Snap to face and edge centres": "Privlači na centre lica i ivica",
"SolidCraft cannot submit reports directly. Submit on GitHub; no token is needed in the app.": "SolidCraft ne može slati izvještaje direktno. Pošaljite ih na GitHubu; u aplikaciji nije potreban token.",
"SolidCraft closed before these designs were saved. Their last autosave can be opened.": "SolidCraft se zatvorio prije nego što su ovi dizajni sačuvani. Može se otvoriti njihovo posljednje automatsko čuvanje.",
"Sort A to Z": "Sortiraj od A do Ž",
"Sort Z to A": "Sortiraj od Ž do A",
"Spacing 2 must be a non-zero number": "Razmak 2 mora biti broj različit od nule",
"Spacing must be a non-zero number": "Razmak mora biti broj različit od nule",
"Specialise": "Specijalizuj",
@@ -790,6 +793,13 @@
"browser.sketch_attachment_lost": "{name} (pričvršćenje izgubljeno)",
"browser.sketch_editing": "{name} (uređuje se)",
"browser.sketch_name": "Skica{number}",
"browser.sketches_to_parts_already_in_part": "već u svom dijelu",
"browser.sketches_to_parts_design_body": "na tijelu samog dizajna",
"browser.sketches_to_parts_moved": "Skice premještene u dio na kojem se nalaze: {moved}",
"browser.sketches_to_parts_no_exact_attachment": "na licu bez tačnog pričvršćenja",
"browser.sketches_to_parts_not_on_face": "ne na licu dijela",
"browser.sketches_to_parts_part_missing": "njihov dio više ne postoji",
"browser.sketches_to_parts_result": "Skice premještene u dio na kojem se nalaze: {moved}; ostale na mjestu: {stayed} ({why})",
"browser.units": "Jedinice: {units}",
"cam.flat": "Ravno lice",
"cam.follower": "Pratilac",
@@ -819,6 +829,7 @@
"cmd.appearance_pick_up": "Preuzmi izgled",
"cmd.appearance_replace": "Zamijeni izgled",
"cmd.assembly_bom": "Sastavnica",
"cmd.assembly_mass_properties": "Svojstva mase",
"cmd.body.print_face": "Površina za štampu",
"cmd.body_rename": "Preimenuj tijelo",
"cmd.browser_collapse_all": "Skupi sve",
@@ -856,6 +867,7 @@
"cmd.component_move_bodies": "Premjesti tijela u komponentu",
"cmd.component_move_features": "Premjesti operacije u komponentu",
"cmd.component_move_sketches": "Premjesti skice u komponentu",
"cmd.component_move_sketches_to_parts": "Premjesti skice u njihove dijelove",
"cmd.component_paste_from_design": "Zalijepi iz drugog dizajna",
"cmd.component_paste_new": "Zalijepi kao novo",
"cmd.component_properties": "Fizička svojstva komponente",
@@ -1191,6 +1203,7 @@
"cmd.sketch_spline_control_point_5": "Splajn kontrolnih tačaka (stepen 5)",
"cmd.sketch_spline_fit_point": "Splajn kroz tačke",
"cmd.sketch_spline_insert_point": "Dodaj tačku splajna",
"cmd.sketch_spline_remove_point": "Ukloni tačku splajna",
"cmd.sketch_spline_reverse": "Obrni smjer splajna",
"cmd.sketch_spun_profile": "Rotirani profil",
"cmd.sketch_toggle_diameter": "Prebaci poluprečnik / prečnik",
@@ -1244,6 +1257,7 @@
"cmd.view.render_browser": "Stablo renderovanja",
"cmd.view.render_dock": "Premjesti panel renderovanja",
"cmd.view.render_focus": "Prikaz fokusa renderovanja",
"cmd.view.status_details": "Detalji statusa prozora prikaza",
"cmd.view.status_items": "Stavke statusa prozora prikaza",
"cmd.view_ambient_occlusion": "Ambijentalna okluzija",
"cmd.view_angle_readout": "Uglovi prikaza",
@@ -1282,8 +1296,14 @@
"color.hex_hint": "#rrggbb",
"color.hue": "Nijansa",
"color.linear": "Prikaz vrijednosti boje u linearnom prostoru 0-1",
"color.recent": "Nedavne boje",
"color.recent_help": "Ovdje se pojavljuju boje koje izaberete u bilo kojem polju boje",
"color.saturation": "Zasićenost (procenat)",
"color.saturation_value": "Zasićenost i vrijednost",
"color.selected": "Izabrana boja",
"color.step_down": "Smanji za korak",
"color.step_up": "Povećaj za korak",
"color.value": "Vrijednost, svjetlina (procenat)",
"config.column_filter_empty": "Nema odgovarajućih kolona",
"contact.components_count": "Komponente: {count}",
"contact.enabled_label": "omogućeno",
@@ -1330,6 +1350,7 @@
"dialog.dimension_name": "Kota: {name}",
"dialog.edit_title": "UREDI {title}",
"dialog.no_shown_body": "Nema prikazanog tijela za izmjenu: prikažite jedno ili izaberite Novo tijelo",
"dialog.pattern_sketch_not_object": "Izaberite tijela ili operacije: skica nije ni jedno ni drugo. Ponovite njene krive pomoću alata Niz ili Preslikaj u samoj skici ili je prvo ekstrudirajte.",
"dialog.select": "↖ Izaberi",
"dialog.selected_count": "↖ Izabrano: {count}",
"dialog.selection_guidance": "Izaberite ulaz da ga promijenite. Kliknite izabrane objekte da ih uklonite; Ctrl/Cmd-klik ih također uključuje i isključuje. Pogledajte pregled, a zatim pritisnite U redu.",
@@ -1387,21 +1408,168 @@
"from the rule": "iz pravila",
"help.apache": "Apache licenca 2.0",
"help.appearance.assign": "Daje izabranim tijelima, licima ili komponentama boju ili izgled materijala, bez promjene njihove težine. Koristite ga da razlikujete dijelove ili pregledate završnu obradu.",
"help.assembly.bom": "Navodi dijelove dizajna ili komponente s njihovim količinama, po broju dijela, a popis može sačuvati kao CSV ili JSON. Koristite je kao popis dijelova za naručivanje i montažu.",
"help.attributions": "Atribucije (ATTRIBUTION.md)",
"help.build": "Verzija {version} · commit {commit} · izgrađeno {date}",
"help.canvas.decal": "Postavlja sliku na ravno lice modela, poput naljepnice. Koristite je da prikažete etiketu, logotip ili štampani uzorak na dijelu.",
"help.canvas.edit": "Mijenja platno: njegov položaj, veličinu, ugao, neprozirnost, preslikavanje, vidljivost ili naziv. Koristite ga da poravnate referentnu sliku sa skicom kojom je precrtavate.",
"help.canvas.insert": "Postavlja PNG ili JPEG sliku na ravan ili lice kao prozirnu referencu. Koristite je da u skici precrtate fotografiju ili crtež, uz sliku skaliranu na poznatu veličinu.",
"help.component.break_link": "Odvaja povezanu komponentu od njene datoteke dizajna, a njena tijela ostavlja kakva jesu. Koristite ga kada dio više ne treba pratiti izmjene izvorne datoteke.",
"help.component.capture_position": "Zadržava položaje dijelova koje ste ručno pomjerili, tako da to postaju njihovi stvarni položaji. Koristite ga nakon što ručno namjestite dijelove koje nijedan spoj ne drži.",
"help.component.create": "Dodaje novu, praznu komponentu u dizajn, unutar aktivne komponente osim ako izaberete drugog roditelja. Koristite je da novi dio sklopa dobije vlastito mjesto za tijela i skice.",
"help.component.finish_edit": "Čuva dio koji uređujete na mjestu, vraća se u njegov sklop i ažurira sklop prema njemu. Upotrijebite kada završite izmjene povezanog dijela.",
"help.component.from_bodies": "Pretvara svako izabrano tijelo u zasebnu komponentu, nazvanu po tijelu. Koristite ga kada dizajn izgrađen od odvojenih tijela treba postati sklop čiji se dijelovi mogu spajati i pomjerati.",
"help.component.insert_design": "Umeće drugi sačuvani dizajn kao komponentu povezanu s njegovom datotekom, s njegovim punim tijelima postavljenim onako kako su tamo. Koristite ga da ponovo upotrijebite dio u sklopu i kasnije izmjene preuzmete pomoću Ažuriraj veze.",
"help.component.properties": "Prikazuje zapreminu, masu, centar mase i momente inercije komponente, prema materijalima njenih tijela. Koristite ga da provjerite težinu i uravnoteženost sklopa.",
"help.component.revert_position": "Vraća dijelove koje ste ručno pomjerili tamo gdje su bili, odbacujući pomjeranja koja nisu zadržana. Koristite ga da poništite probna pomjeranja u sklopu.",
"help.component.update_links": "Ponovo čita povezane datoteke dizajna i zamjenjuje tijela tamo gdje su se promijenila. Koristite ga nakon uređivanja dijela koji ovaj sklop koristi.",
"help.config.configure": "Dodaje parametre, operacije, materijale ili izglede kao kolone tabele konfiguracija. Koristite ga da napravite varijante jednog dizajna, npr. veličine nekog dijela.",
"help.config.preview": "Provjerava može li se red tabele konfiguracija ponovo izgraditi, bez promjene dizajna ili njegove vremenske trake. Koristite ga prije prelaska na varijantu u koju niste sigurni.",
"help.config.rules": "Prikazuje pravila tabele konfiguracija, njene redove i koji je red aktivan. Koristite ga da vidite kako su postavljene varijante dizajna.",
"help.config.table": "Prikazuje tabelu konfiguracija: jedan red po varijanti, jednu kolonu po parametru ili operaciji i da li dizajn još odgovara aktivnom redu. Koristite je da pregledate varijante dizajna.",
"help.connect_note": "Ponovo pokrenite svaki asistent da učita SolidCraft server. Svaka datoteka je sigurnosno kopirana kao .bak prije promjene.",
"help.connect_title": "Poveži AI asistente",
"help.construct.axis.edge": "Pravi pomoćnu osu duž ravne ivice ili linije skice. Koristite je kao osu za rotaciju, kružni niz ili spoj.",
"help.construct.axis.normal_to_face": "Pravi pomoćnu osu kroz tačku, okomitu na lice. Koristite je kao osu koja stoji pravo iz površine.",
"help.construct.axis.through_cylinder": "Pravi pomoćnu osu kroz centar cilindričnog, konusnog ili torusnog lica, ili kružne ivice. Koristite je da operacije okrećete ili ih postavljate u niz oko okruglog dijela.",
"help.construct.axis.two_planes": "Pravi pomoćnu osu gdje se sastaju dvije ravni ili ravna lica. Koristite je kada je osa koja vam treba linija između dva lica.",
"help.construct.axis.two_points": "Pravi pomoćnu osu kroz dvije tačke, vrhove ili tačke skice. Koristite je za osu koja prolazi između dva poznata položaja.",
"help.construct.plane.along_path": "Pravi pomoćnu ravan okomitu na ivicu ili krivu, na nekom položaju duž nje. Koristite je da skicirate profil za povlačenje ili presjek putanje.",
"help.construct.plane.at_angle": "Pravi pomoćnu ravan zakrenutu za ugao u odnosu na ravan ili lice, oko ose ili ivice. Koristite je za nagnute skice, npr. kutni nosač.",
"help.construct.plane.midplane": "Pravi pomoćnu ravan na pola puta između dvije ravni ili ravna lica, ili koja ih raspolavlja tamo gdje se sastaju pod uglom. Koristite je kao ravan simetrije za preslikavanje.",
"help.construct.plane.offset": "Pravi pomoćnu ravan paralelnu s ravni ili ravnim licem, na određenoj udaljenosti ili kroz tačku. Koristite je da skicirate na zadatoj visini iznad lica.",
"help.construct.plane.perpendicular": "Pravi pomoćnu ravan koja sadrži liniju ili ivicu i okomita je na ravan ili lice. Koristite je da skicirate uspravno na modelu duž ivice.",
"help.construct.plane.tangent": "Pravi pomoćnu ravan koja u jednoj tački dodiruje cilindar, konus, sferu ili torus. Koristite je da skicirate na boku okruglog dijela.",
"help.construct.plane.three_points": "Pravi pomoćnu ravan kroz tri tačke. Koristite je za ravan određenu položajima na modelu, npr. s tri ugla.",
"help.construct.plane.two_edges": "Pravi pomoćnu ravan kroz dvije ravne ivice ili linije koje leže u jednoj ravni. Koristite je za ravan kroz dio, npr. kroz dvije suprotne ivice.",
"help.construct.point.along_path": "Pravi pomoćnu tačku na nekom položaju duž ivice ili krive. Koristite je kao referencu negdje duž putanje.",
"help.construct.point.center": "Pravi pomoćnu tačku u centru kružne ivice, kruga ili luka skice, sfere ili torusa. Koristite je kao referencu za rupe, ose i spojeve.",
"help.construct.point.edge_plane": "Pravi pomoćnu tačku gdje ivica ili linija prolazi kroz ravan ili ravno lice. Koristite je da označite gdje putanja siječe ravan.",
"help.construct.point.three_planes": "Pravi pomoćnu tačku gdje se sastaju tri ravni ili ravna lica. Koristite je kao referencu ugla, čak i tamo gdje model nema vrh.",
"help.construct.point.two_edges": "Pravi pomoćnu tačku gdje se dvije ivice ili linije sastaju ili su najbliže. Koristite je kao referencu u virtualnom uglu.",
"help.construct.point.vertex": "Pravi pomoćnu tačku na vrhu ili tački skice. Koristite je kao referencu koja ostaje kada se skica ili tijelo oko nje sakrije.",
"help.contact.check": "Navodi parove dijelova u skupovima kontakata koji se u trenutnom položaju međusobno presijecaju. Koristite ga da pronađete sudare prije nego što pokrenete spojeve ili studiju kretanja.",
"help.contact.create": "Grupiše dva ili više dijelova u skup kontakata čija se tijela sprečavaju da prolaze jedno kroz drugo dok se spojevi kreću. Koristite ga za dijelove koji treba da se zaustave kad se dodirnu, npr. poluga uz svoj graničnik.",
"help.contact.disable_all": "Isključuje kontakt, pa se pokretani spojevi i studije kretanja više ne zaustavljaju tamo gdje se dijelovi dodiruju. Koristite ga da ponovo slobodno pomjerate dijelove ili da veliki sklop ostane brz u radu.",
"help.contact.edit": "Mijenja skup kontakata: dijelove koje sadrži, njegov naziv ili da li je potisnut; može i izbrisati skup. Koristite ga da podesite koji dijelovi ne smiju prolaziti jedan kroz drugi.",
"help.contact.enable_all": "Stavlja svaki dio sklopa u jedan skup kontakata, pa nijedna dva dijela ne mogu prolaziti jedan kroz drugi dok se spojevi kreću. Koristite ga za brzu provjeru cijelog mehanizma.",
"help.contact.enable_sets": "Uključuje kontakt za skupove kontakata koje ste definisali, pa se pokretani spojevi i studije kretanja zaustavljaju tamo gdje bi njihovi dijelovi prošli jedan kroz drugi. Koristite ga da vratite svoje skupove nakon isključivanja kontakta.",
"help.contact.list": "Navodi skupove kontakata dizajna, dijelove u svakom od njih i da li je kontakt uključen. Koristite ga da provjerite kako je kontakt postavljen prije nego što pokrenete sklop.",
"help.document.inspect": "Prikazuje pregled dizajna: njegove komponente, tijela, skice, operacije i parametre. Koristite ga da se snađete u dizajnu koji niste sami napravili.",
"help.document.units": "Mijenja jedinice u kojima dizajn prikazuje dužine, npr. mm ili inče. Geometrija zadržava veličinu; mijenjaju se samo prikaz i brojevi bez jedinice.",
"help.edit.checkpoint": "Pamti dizajn, aktivnu skicu i historiju poništavanja onakve kakvi su sada. Koristite ga prije nego što isprobate nešto rizično od čega ćete se možda htjeti vratiti.",
"help.edit.restore_checkpoint": "Vraća se na kontrolnu tačku, uključujući historiju poništavanja. Koristite ga da jednim korakom odbacite sve urađeno od kontrolne tačke.",
"help.explode.create": "Pravi rastavljeni prikaz koji odguruje dijelove od centra sklopa ili prema pomjeranjima koja zadate. Koristite ga da pokažete kako se sklop sastavlja, za uputstva ili prezentacije.",
"help.face.delete": "Uklanja izabrana lica i pušta da susjedna lica zatvore otvor, ili ostavlja otvor otvorenim kao površ. Koristite ga da uklonite zaobljenu ivicu, rupu ili ispupčenje koje smeta.",
"help.file.insert_mesh": "Dodaje 3MF, STL, OBJ, PLY ili glTF datoteku u dizajn kao mrežna tijela u novoj komponenti. Koristite ga da pored svog dizajna kao referencu postavite preuzeti ili skenirani model.",
"help.file.insert_step": "Dodaje STEP, IGES, FreeCAD ili Rhino datoteku u dizajn kao puna tijela u novoj komponenti; dijelovi sklopa postaju ugniježđene komponente. Koristite ga da uvezete modele od dobavljača ili iz drugih CAD programa.",
"help.file.save_mesh": "Čuva tijela kao STL, 3MF ili OBJ mrežu, s glatkoćom zakrivljenih lica koju izaberete. Koristite ga da pripremite dijelove za 3D štampu ili za programe koji čitaju mreže.",
"help.file.send_to_slicer": "Čuva izabrana tijela kao 3MF datoteku i otvara je u slajseru koji izaberete. Koristite ga da od modela do štampe dođete jednim korakom.",
"help.font_details": "Interfejs koristi ugrađene fontove biblioteke egui (Ubuntu Light i Hack, pod licencama Ubuntu Font Licence i MIT/Bitstream Vera; Noto Emoji i font emoji ikona, pod licencama OFL i MIT). Tekst skice koristi Liberation Sans (SIL OFL 1.1). Neobavezni paket fontova Crafting Apps, craft-fonts (BIZ UDPGothic, Shippori Mincho, BIZ UDMincho, Noto Sans CJK SC, Noto Sans Arabic; SIL OFL 1.1), nije uključen u izdanja SolidCrafta.",
"help.fonts": "Fontovi",
"help.frame.member": "Postavlja profil, npr. cijev ili aluminijski ekstruzioni profil, duž linija skice konstrukcije, po jedan konstrukcioni profil na liniju. Koristite ga za izradu okvira, regala i zavarenih konstrukcija.",
"help.inspect.accessibility": "Boji lica do kojih alat može doći iz jednog smjera i ona do kojih ne može. Koristite ga da provjerite dio za obradu ili izradu u kalupu s te strane.",
"help.inspect.center_of_mass": "Prikazuje centar mase tijela, svakog posebno i svih zajedno, uz ujednačenu gustoću. Koristite ga da provjerite ravnotežu i na koju stranu će se dio prevrnuti.",
"help.inspect.colored_components": "Daje svakoj komponenti vlastitu privremenu boju, bez promjene izgleda. Koristite ga da na prvi pogled razlikujete dijelove sklopa.",
"help.inspect.compare": "Upoređuje dva tijela i pokazuje gdje jedno ima materijala kojeg drugo nema, uz zapreminu i odstupanje. Koristite ga da provjerite izmijenjen ili uvezen dio u odnosu na original.",
"help.inspect.continuity": "Provjerava koliko glatko se lica sastaju duž svojih ivica: otvorene krajeve, pregibe ili skokove zakrivljenosti, i boji spojeve. Koristite ga da pronađete gdje se površi ne spajaju čisto.",
"help.inspect.curvature_comb": "Crta češljeve duž kriva, ivica ili lica čiji zupci pokazuju koliko se jako savijaju. Koristite ga da uočite ravna mjesta, pregibe i neujednačenu zakrivljenost.",
"help.inspect.curvature_map": "Boji lica prema tome koliko su zakrivljena, crveno gdje je poluprečnik mali. Koristite ga da pronađete mjesta oštre zakrivljenosti i procijenite koliko je površ glatka.",
"help.inspect.draft": "Boji lica prema uglu nagiba u odnosu na smjer vađenja iz kalupa i označava ona s premalim nagibom. Koristite ga da provjerite dio prije brizganja ili livenja.",
"help.inspect.environment_map": "Prikazuje model sa sjajnom završnom obradom koja reflektuje poput ogledala. Koristite ga da procijenite tok površi prema načinu na koji se refleksije protežu preko njih.",
"help.inspect.interference": "Pronalazi tijela koja se preklapaju i prikazuje svako preklapanje s njegovom zapreminom. Koristite ga da u sklopu provjerite ima li dijelova koji se sudaraju.",
"help.inspect.isocurve": "Crta izokrive lica (izoparametarske krive), mrežu na kojoj je površ izgrađena. Koristite ga da vidite kako površ teče i gdje se zgušnjava.",
"help.inspect.measure": "Mjeri dužine, udaljenosti, uglove, površine i poluprečnike između onoga što izaberete, ili zapreminu i masu tijela. Koristite ga da provjerite veličine i zazore.",
"help.inspect.minimum_radius": "Pronalazi najmanji poluprečnik zakrivljenosti kriva, ivica ili lica i gdje se nalazi. Koristite ga da provjerite može li alat ili mlaznica pratiti oblik.",
"help.inspect.section": "Otvara prikaz presjekom duž ravni i šrafira presječena lica, bez promjene modela. Koristite ga da pogledate unutrašnjost dijelova i sklopova.",
"help.inspect.zebra": "Prikazuje crno-bijele pruge reflektovane na licima modela. Koristite ga da procijenite glatkoću: pruge koje se prekidaju ili lome na ivici pokazuju loš prelaz.",
"help.joint.as_built": "Spaja dva dijela tamo gdje već jesu, bez pomjeranja ijednog od njih, i određuje kako se još smiju kretati. Koristite ga za dijelove koje ste već postavili u konačni položaj.",
"help.joint.cam": "Povezuje brijeg koji se okreće s pratiocem, pa pratilac klizi ili se ljulja dok obris brijega prolazi ispod njega. Koristite ga za brijegove, ekscentre i pogone ventila.",
"help.joint.create": "Spaja dva dijela u ishodištima spoja koja izaberete i pomjera drugi dio na mjesto; vrsta spoja određuje kako se još smiju kretati. Koristite ga da napravite sklop čiji se dijelovi kreću kao pravi mehanizam.",
"help.joint.drive": "Zadaje ugao ili udaljenost spoja i s njim pomjera dijelove, u okviru njegovih granica; povezani spojevi i zatvorene petlje ga prate. Koristite ga da provjerite kreće li se mehanizam kako je zamišljeno.",
"help.joint.gear": "Povezuje dva rotaciona spoja prijenosnim omjerom, pa pokretanje jednog okreće drugi. Koristite ga za čeone i prstenaste zupčanike, s omjerom iz podionih poluprečnika ili broja zubaca.",
"help.joint.limits": "Zadaje koliko daleko se spoj smije okrenuti ili pomjeriti, kao minimum i maksimum, ili uklanja te granice. Koristite ga da šarku, klizač ili polugu zadržite unutar njihovog stvarnog raspona kretanja.",
"help.joint.motion_link": "Veže dva spoja omjerom i pomakom, pa pokretanje jednog pomjera drugi. Koristite ga za čvrst odnos između spojeva koji Zupčanik, Zupčasta letva i zupčanik ili Vijak ne pokrivaju.",
"help.joint.origin": "Postavlja imenovano ishodište spoja na dio: u centar lica ili okruglog kraja, sredinu ivice, ugao ili tačku. Koristite ga da pripremite gdje se spojevi vezuju; ishodište izabrano na licu prati ga kada dio promijeni veličinu.",
"help.joint.rack_pinion": "Povezuje mali zupčanik koji se okreće sa zupčastom letvom koja klizi, pa se letva pomjera za dužinu podione kružnice koju mali zupčanik prevali. Koristite ga za pogone sa zupčastom letvom, upravljanje i linearne stolove.",
"help.joint.reach": "Pomjera tačku na dijelu prema cilju mijenjajući spojeve u njegovom lancu, u okviru njihovih granica. Koristite ga da namjestite mehanizam prema tome gdje treba biti njegov kraj, npr. vrh robotske ruke.",
"help.joint.rigid_group": "Zaključava izabrane dijelove zajedno onakve kakvi jesu, pa se kreću kao jedan. Koristite ga za dijelove koji zajedno pripadaju i između kojih nema kretanja.",
"help.joint.screw": "Povezuje okretanje i klizanje korakom, pa se svakim okretajem napreduje za tu udaljenost. Koristite ga za navojna vretena, vijke i navojne osovine.",
"help.library.apply": "Primjenjuje materijal ili izgled iz lokalne datoteke biblioteke na tijela, lica ili komponente. Koristite ga da ponovo upotrijebite materijale koje ste sačuvali iz drugog dizajna.",
"help.library.export": "Čuva materijale i izglede dizajna u datoteku biblioteke. Koristite ga da ih dijelite ili ponovo koristite u drugim dizajnima.",
"help.library.inspect": "Provjerava datoteku biblioteke i navodi njene materijale i izglede, bez promjene dizajna. Koristite ga da vidite šta biblioteka sadrži prije nego što je primijenite.",
"help.licences": "Licence",
"help.material.assign": "Određuje od čega su izabrana tijela napravljena, npr. čelik, aluminij ili ABS. Koristite ga da masa i težina odgovaraju stvarnom dijelu.",
"help.material.properties.validate": "Provjerava karticu podataka materijala na usklađenost brojeva i vrijednosti koje nedostaju. Koristite ga prije nego što se oslonite na podatke za masu ili krutost.",
"help.mesh.convert": "Ponovo gradi mrežno tijelo, npr. STL, kao uredivo puno tijelo s ravnim i cilindričnim licima. Koristite ga da izmijenite uvezene mehaničke dijelove kao modelirano tijelo.",
"help.mit": "MIT licenca",
"help.motion.study": "Zadaje vrijednosti spojeva u koracima na vremenskoj traci i reprodukuje ih kao animaciju. Koristite ga da posmatrate kako se mehanizam kreće kroz niz pokreta i usput provjerite zazore.",
"help.motion.trace": "Prati putanju kojom ide tačka na dijelu dok se reprodukuje studija kretanja ili se pokreće spoj i, kada potvrdite, zadržava je kao krivu 3D skice. Koristite ga da vidite dokle mehanizam dosiže ili da nastavite graditi na njegovoj putanji.",
"help.notice": "NOTICE",
"help.occurrence.ground": "Učvršćuje dio na mjestu, ili ga ponovo oslobađa, tako da spojevi pomjeraju ostale dijelove oko njega. Koristite ga za okvir ili osnovu na kojoj je izgrađen ostatak sklopa.",
"help.occurrence.move": "Pomjera dio sklopa samo duž stepeni slobode koje dozvoljavaju njegovi spojevi. Izaberite lice dijela, a zatim prevucite dostupnu strelicu ili luk.",
"help.parameters.change": "Otvara tabelu imenovanih vrijednosti i izraza koji upravljaju kotama dizajna. Koristite je da promijenite mjeru na jednom mjestu, a sve operacije koje je koriste je slijede.",
"help.parameters.export": "Čuva parametre dizajna kao CSV ili JSON. Koristite ga da ih uredite u proračunskoj tabeli ili prenesete u drugi dizajn.",
"help.parameters.graph": "Prikazuje koji parametri i operacije koriste koje druge, te sve petlje ili greške među njima. Koristite ga da vidite šta sve zahvata promjena nekog parametra.",
"help.parameters.import": "Učitava parametre iz CSV ili JSON u dizajn, sve ili nijedan. Koristite ga da unesete vrijednosti iz proračunske tabele ili drugog dizajna.",
"help.parameters.move": "Pomjera korisnički parametar ispred ili iza drugog na popisu. Koristite ga da povezane parametre držite zajedno.",
"help.parts.fastener": "Dodaje standardni vijak, zavrtanj, maticu, podlošku, zatik ili ležaj u izabranoj veličini. Postavljen na rupu, naliježe u rupu pomoću spoja, pa spojne elemente ne morate sami modelirati.",
"help.parts.insert": "Umeće standardni dio u porodici, veličini i dužini koje izaberete. Postavljen na rub ili zid rupe, naliježe na rupu krutim spojem.",
"help.parts.library": "Otvara standardne dijelove: vijke, zavrtnjeve, matice, podloške, bezglave vijke, cilindrične zatike i ležajeve u standardnim veličinama. Koristite ga da dodate standardni dio umjesto da ga sami modelirate.",
"help.parts.resize": "Mijenja veličinu ili dužinu umetnutog standardnog dijela i ponovo ga gradi; njegovi spojevi ga drže na mjestu. Koristite ga kada se vijak pokaže predugim ili rupa traži drugu veličinu.",
"help.plastic.assign_rule": "Dodjeljuje pravilo za plastiku tijelima, pa njihove plastične operacije preuzimaju njegov nagib i zazor kao podrazumijevane vrijednosti. Koristite ga da jednom podesite brizgani dio za sve njegove operacije.",
"help.plastic.boss": "Dodaje ispust za vijak na licu: stub s neobaveznom rupom, nagibom, zaobljenjem u korijenu i potpornim rebrima. Koristite ga za tačke za vijke u brizganim ili štampanim kućištima.",
"help.plastic.lip": "Dodaje usnu ili odgovarajući utor duž ruba izdubljenog tijela. Koristite ga da se dvije polovine kućišta međusobno pozicioniraju i čvrsto zatvore.",
"help.plastic.manage_rules": "Pravi i uređuje pravila za plastiku: materijal, debljinu zida, poluprečnike, zazor i nagib. Koristite ih da operacije brizganog dijela ostanu usklađene.",
"help.plastic.rest": "Dodaje oslonac na licu: okruglu ili pravougaonu podlogu, punu ili šuplju, s nagibom. Koristite ga kao potporu ili odstojnik u brizganom kućištu.",
"help.plastic.snap_fit": "Dodaje kuku škljocajućeg spoja na licu, s njenom dužinom, debljinom i zapinjačem. Koristite ga da dijelove spojite zaklapanjem bez vijaka.",
"help.pointcloud.insert": "Umetnite PLY, XYZ ili PTS skeniranje kao oblak tačaka uz model. Koristite ga kao referencu pri izradi modela iz izmjerenih podataka.",
"help.sheet.convert": "Pretvara ploču ili izdubljeno tijelo ujednačene debljine u tijelo od lima, sa savijanjima na ivicama koje izaberete. Koristite ga da postojeći dio učinite razvijivim.",
"help.sheet.export_bend_table": "Čuva tabelu savijanja tijela od lima kao CSV ili JSON: uglove, poluprečnike i položaje savijanja u razvijenom obliku. Koristite ga za presu za savijanje ili radionicu.",
"help.sheet.export_dxf": "Čuva razvijeni oblik kao DXF, s obrisima, linijama savijanja i neobaveznim napomenama o savijanju. Koristite ga za rezanje laserom, plazmom ili vodenim mlazom.",
"help.sheet.flange": "Dodaje prirubnicu: osnovnu ploču iz skice, zid duž otvorene konture skice ili savijeni zid na ivicama lima. Koristite je za izgradnju dijelova od lima.",
"help.sheet.flat_pattern": "Pravi razvijeni oblik tijela od lima, s njegovom veličinom, izrezima i linijama savijanja. Koristite ga da provjerite pripremak prije rezanja.",
"help.sheet.fold": "Savija lim duž linije skice za zadati ugao i poluprečnik. Koristite ga da presavijete ravan lim nakon što u njemu izrežete operacije.",
"help.sheet.hem": "Presavija ivicu lima natrag preko sebe. Koristite ga za sigurne, krute ivice bez oštrih srha.",
"help.sheet.manage_rules": "Pravi i uređuje pravila za lim: debljinu, poluprečnik savijanja, K-faktor, rasterećenja i razmake. Koristite ih da se uskladite s materijalom i alatima svoje radionice.",
"help.sheet.path_flange": "Dodaje lanac prirubnica duž ivice lima, prateći otvoreni lanac linija skice. Koristite ga za profile poput U ili Z oblika u jednom koraku.",
"help.sheet.perforate": "Dodaje polje rupa preko cijelog ravnog lima, u izmaknutom ili kvadratnom rasporedu. Koristite ga za otvore za ventilaciju, rešetke i lakše ploče.",
"help.sheet.refold": "Ponovo presavija razvijeno tijelo od lima. Koristite ga nakon dodavanja operacija na ravan lim.",
"help.sheet.unfold": "Razvija sva savijanja tijela od lima. Koristite ga da dodate rupe ili rezove koji moraju prelaziti preko savijanja, a zatim ga ponovo presavijte.",
"help.sketch.arc.center_point": "Crta kružni luk oko tačke centra, od početne do završne tačke. Koristite ga kada je centar luka poznat, npr. poluprečnik oko rupe ili osovine.",
"help.sketch.arc.tangent": "Crta luk koji počinje na kraju linije ili luka i nastavlja se tangentno na njega. Koristite ga da lanac nastavite glatkim prelazom umjesto ugla.",
"help.sketch.arc.three_point": "Crta luk od početne do završne tačke kroz treću tačku. Koristite ga kada luk mora proći kroz zadate tačke, a ne oko poznatog centra.",
"help.sketch.arc3d": "Crta tačan kružni luk u prostoru kroz tri tačke, uz uključenu 3D skicu. Koristite ga za zavoje putanja i vodilica koji izlaze iz ravni skice.",
"help.sketch.auto_constrain": "Dodaje ograničenja koja skica već gotovo ima, npr. horizontalno, paralelno ili podudarno, a zatim je kotira dok ne bude potpuno definisana. Koristite ga da grubo nacrtanu skicu zaključate u jednom koraku.",
"help.sketch.auto_constrain_from_datum": "Radi kao Automatska ograničenja, ali položaje mjeri od referentne tačke koju izaberete umjesto od ishodišta. Koristite ga kada je dio raspoređen od jedne referentne tačke, npr. ugla ili rupe.",
"help.sketch.blend_curve": "Spaja krajeve dviju kriva glatkim splajnom koji je tangentan na obje, ili i kontinuiran po zakrivljenosti ako tako izaberete. Koristite ga da premostite razmak između kriva bez pregiba.",
"help.sketch.break": "Dijeli krivu na dijelove tamo gdje je presijecaju druge krive, ili na tačkama koje postavite na nju. Koristite ga kada dio krive treba vlastito ograničenje ili ga treba zasebno izbrisati.",
"help.sketch.cancel": "Napušta skicu i odbacuje sve što je promijenjeno otkako je napravljena ili otvorena za uređivanje. Pomoću Poništi možete vratiti promjene.",
"help.sketch.centerline": "Prebacuje linije između običnih linija i središnjih linija, osa koje profili izostavljaju. Središnju liniju koristite kao osu za rotaciju, preslikavanje ili ograničenje simetrije.",
"help.sketch.chamfer.distance_angle": "Skošava ugao između dvije linije, zadat udaljenošću duž prve linije i uglom. Koristite ga kada crtež daje skošenje kao dužinu i ugao, npr. 2 mm × 30°.",
"help.sketch.chamfer.equal_distance": "Skošava ugao između dvije linije za istu udaljenost unazad duž obje. Koristite ga za uobičajeno skošenje od 45° na obrisu.",
"help.sketch.chamfer.two_distance": "Skošava ugao između dvije linije, zadat posebnom udaljenošću duž svake linije. Koristite ga za skošenja koja nisu 45°, zadana kao dvije dužine.",
"help.sketch.circle.center": "Crta krug iz njegovog centra i prečnika. Koristite ga za rupe, ispuste i druge okrugle oblike čiji je centar poznat.",
"help.sketch.circle.three_point": "Crta krug kroz tri tačke. Koristite ga kada krug mora proći kroz zadate tačke, npr. postojeće geometrije.",
"help.sketch.circle.three_tangent": "Crta krug koji dodiruje tri elementa: linije, krugove ili lukove. Koristite ga da krug uklopite u prostor između triju kriva, npr. upisani krug trougla.",
"help.sketch.circle.two_point": "Crta krug iz dva kraja njegovog prečnika. Koristite ga kada su poznate tačke na rubu kruga, a ne njegov centar.",
"help.sketch.circle.two_tangent": "Crta krug zadate veličine koji dodiruje dva elementa: linije, krugove ili lukove. Koristite ga za zaobljenje stalnog poluprečnika između dvije krive.",
"help.sketch.conic": "Crta konusnu krivu između dvije krajnje tačke, oblikovanu tjemenom tačkom i vrijednošću rho. Koristite je za glatke prelaze čiju punoću želite podesiti, od ravnog do gotovo oštrog ugla.",
"help.sketch.constrainer": "Primjenjuje ograničenje koje jedna ili dvije izabrane krive već gotovo imaju, npr. horizontalno, paralelno, tangentno ili jednako. Koristite ga da uredite ručno nacrtanu skicu, jedan odnos po jedan.",
"help.sketch.constraint.coincident": "Čini da tačka leži na drugoj tački, krivoj ili osi skice. Koristite ga da zatvorite otvore u profilu ili da tačku postavite na liniju.",
"help.sketch.constraint.collinear": "Čini da dvije linije leže na jednoj pravoj. Koristite ga da poravnate prekinute ivice, npr. obje strane zareza.",
"help.sketch.constraint.concentric": "Daje dva kruga ili luka isti centar. Koristite ga za prstenove, cilindrična upuštenja i osovine s ramenima.",
"help.sketch.constraint.curvature": "Čini da dvije krive koje se sastaju u krajnjoj tački nastave istom zakrivljenošću (G2). Koristite ga tamo gdje tangentni spoj nije dovoljno gladak, npr. na vidljivim površima.",
"help.sketch.constraint.equal": "Izjednačava dužine linija, ili poluprečnike krugova i lukova. Koristite ga da jedna kota upravlja s više istovjetnih oblika.",
"help.sketch.constraint.fix": "Fiksira tačke ili krive tamo gdje jesu, ili ih ponovo oslobađa. Koristite ga za geometriju koja se ne smije pomjerati kada povlačite ili rješavate skicu.",
"help.sketch.constraint.horizontal_vertical": "Čini liniju, ili liniju između dvije tačke, horizontalnom ili vertikalnom, zavisno od toga što je bliže. Koristite ga da obris poravnate s osama skice.",
"help.sketch.constraint.midpoint": "Postavlja tačku na sredinu linije, ili spaja središnje tačke dviju linija. Koristite ga da geometriju centrirate na ivici.",
"help.sketch.constraint.parallel": "Čini dvije linije paralelnima. Koristite ga za stranice koje moraju ostati paralelne kada se promijene druge kote.",
"help.sketch.constraint.perpendicular": "Čini da se dvije linije sastaju pod pravim uglom. Koristite ga za prave uglove između linija koje nisu na osama skice.",
"help.sketch.constraint.polygon": "Čini zatvoreni lanac linija pravilnim poligonom: jednake stranice, a svaki ugao na jednom krugu. Koristite ga da ručno nacrtan poligon učinite pravilnim i takvim ga zadržite.",
"help.sketch.constraint.symmetry": "Čini da dvije tačke ili krive budu međusobno preslikane preko linije ili oko tačke. Koristite ga da profil ostane simetričan kada promijenite jednu stranu.",
"help.sketch.constraint.tangent": "Čini da se dvije krive dodiruju tangentno, npr. linija i luk. Koristite ga za glatke spojeve bez pregiba.",
"help.sketch.construction": "Prebacuje krive između obične geometrije i pomoćne geometrije, koju profili izostavljaju. Pomoćne krive koristite kao pomagala za raspored, reference i kote.",
"help.sketch.construction_line": "Napravite beskonačnu pomoćnu pravu kroz dvije tačke. Koristite je da rasporedite skicu bez razdvajanja profila.",
"help.sketch.construction_line.angle": "Napravite beskonačnu pomoćnu pravu pod uglom od ose X skice. Izaberite tačku i upišite ugao ili izaberite smjer.",
"help.sketch.construction_line.bisector": "Izaberite dvije prave linije skice koje se sijeku, pa jednu od dvije simetrale ugla. Rezultat prati izvorne linije.",
@@ -1412,11 +1580,71 @@
"help.sketch.construction_line.tangent_external": "Izaberite krug ili kružni luk, pa vanjsku tačku i rješenje tangente. Pregledi prikazuju samo dodirne tačke na nacrtanom luku.",
"help.sketch.construction_line.tangent_two": "Izaberite dva kruga ili kružna luka, pa u pregledu izaberite zajedničku tangentu. Dodirne tačke moraju ležati na nacrtanim krivama.",
"help.sketch.construction_line.vertical": "Napravite beskonačnu vertikalnu pomoćnu pravu kroz tačku. Njeno ograničenje vertikalnosti ostaje na snazi pri kasnijim izmjenama.",
"help.sketch.copy": "Kopira izabrane krive i tačke skice, zajedno s ograničenjima i kotama među njima. Zalijepite ih u ovu skicu ili u drugu.",
"help.sketch.create": "Počinje novu 2D skicu na ravni ili na ravnom licu modela. Svako ekstrudiranje, rotiranje i povlačenje počinje skicom.",
"help.sketch.cut": "Kopira izabranu geometriju skice i briše je iz skice, u jednom koraku poništavanja. Zalijepite je drugdje u ovoj skici ili u drugoj.",
"help.sketch.dimension": "Dodaje pogonsku kotu: dužinu, udaljenost, ugao, poluprečnik ili prečnik, zavisno od onoga što izaberete. Upišite vrijednost ili naziv parametra, a skica ih prati.",
"help.sketch.edit": "Otvara postojeću skicu za uređivanje. Operacije izgrađene na njoj se ažuriraju kada završite skicu.",
"help.sketch.ellipse": "Crta elipsu iz njenog centra, kraja velike ose i tačke na maloj strani. Koristite je za ovalne otvore, brijegove i druge izdužene okrugle oblike.",
"help.sketch.equation_curve": "Crta krivu iz formula: x(t) i y(t) ili y = f(x), u zadanom rasponu. Formule mogu koristiti parametre i kriva ih prati: koristite je za sinusoidu, spiralu ili evolventu zupca zupčanika.",
"help.sketch.extend": "Produžava liniju ili luk do najbliže krive na putu, ili izdužuje dvije krive dok se ne sastanu. Koristite ga da zatvorite otvore u profilu nakon odsijecanja ili uređivanja.",
"help.sketch.fillet": "Zaobljuje ugao gdje se dvije linije ili lukovi sastaju lukom zadatog poluprečnika. Više uglova zaobljenih zajedno dijeli jedan poluprečnik.",
"help.sketch.finish": "Napušta skicu i vraća se na model. Njeni zatvoreni profili tada su spremni za Ekstrudiraj, Rotiraj i druge operacije.",
"help.sketch.finish_auto_constrain": "Pokreće Automatska ograničenja na skici, a zatim je završava. Koristite ga da skicu ostavite potpuno definisanu u jednom koraku.",
"help.sketch.fit_curves_to_section": "Siječe mrežno ili puno tijelo ravni skice i uklapa linije i lukove u presjek. Koristite ga da skenirani ili uvezeni dio ponovo izgradite kao uredivu skicu.",
"help.sketch.include_3d": "Unosi ivice modela, vrhove i krive drugih skica u ovu skicu kao povezane reference, spljoštavajući one izvan njene ravni na nju. Koristite ga da gradite na geometriji koja ne leži u ravni skice.",
"help.sketch.infinite": "Prebacuje linije između običnih linija i beskonačnih pomoćnih pravih koje se protežu preko cijelog prikaza. Koristite ih kao reference za raspored koje nikada ne završe prekratko.",
"help.sketch.insert_dxf": "Učitava krive DXF crteža u skicu, skalirane, zakrenute i postavljene gdje zadate. Koristite ga da gradite na 2D crtežu iz drugog programa, npr. na obrisu za rezanje laserom.",
"help.sketch.insert_svg": "Učitava putanje SVG crteža u skicu, skalirane, zakrenute i postavljene gdje zadate. Koristite ga da logotip ili vektorski obris pretvorite u krive koje možete ekstrudirati.",
"help.sketch.inspect": "Otvara izvještaj o otvorenoj skici: koliko je stepeni slobode preostalo i je li potpuno ograničena. Koristite ga da saznate šta se još pomjera prije nego što završite skicu.",
"help.sketch.intersect": "Dodaje krive ili tačke gdje tijela, lica, ivice ili druge skice sijeku ravan skice. Ostaju povezane i prate model kada se promijeni.",
"help.sketch.intersection_curve": "Pravi 3D krive tamo gdje se dva tijela ili lica sastaju, povezane s njima. Koristite ih kao putanje ili vodilice koje prate model.",
"help.sketch.isoparametric_curve": "Pravi 3D krivu u smjeru U ili V lica kroz tačku koju izaberete, povezanu s licem. Koristite je kao putanju ili liniju razdvajanja koja prati površ.",
"help.sketch.line": "Crta povezane linije tačku po tačku, kao otvoreni lanac ili zatvoren obris. To je osnovni alat za većinu profila.",
"help.sketch.line.midpoint": "Crta liniju od njene središnje tačke do jednog kraja, a drugi kraj se preslikava. Koristite je za linije centrirane na tački, npr. simetričnu ivicu.",
"help.sketch.line3d": "Crta povezane prave linije između tačaka u prostoru, uz uključenu 3D skicu. Koristite ga za putanje i okvire koji izlaze iz ravni skice.",
"help.sketch.mirror": "Preslikava krive i tačke skice preko linije ili ose i dodaje ograničenja simetrije. Koristite ga da nacrtate pola simetričnog profila i dovršite ga.",
"help.sketch.move": "Pomjera ili rotira krive i tačke skice, ili njihovu kopiju. Koristite ga da promijenite položaj geometrije uz zadržavanje njenog oblika i ograničenja.",
"help.sketch.offset": "Pravi kopiju lanca kriva na zadatoj udaljenosti, s jedne strane ili s obje. Koristite ga za zidove, obrise i zazore; udaljenost ostaje kota koju možete uređivati.",
"help.sketch.paste": "Lijepi geometriju skice koju ste kopirali ili izrezali u aktivnu skicu. Postavite je na tačku ili je pomjerite za odmak.",
"help.sketch.pattern.circular": "Kopira geometriju skice oko tačke centra, preko punog kruga ili zadatog ugla. Koristite ga za kružne rasporede vijaka, paoke i zupce.",
"help.sketch.pattern.rectangular": "Kopira geometriju skice u redovima i kolonama na zadatim razmacima. Koristite ga za mreže rupa, žlijebova ili otvora za ventilaciju.",
"help.sketch.point": "Postavlja tačku skice. Koristite je kao referencu za kote, ograničenja, centre rupa ili kasnije operacije.",
"help.sketch.point3d": "Postavlja tačku u prostoru, uz uključenu 3D skicu. Koristite je kao referencu za 3D krive i putanje.",
"help.sketch.polygon.circumscribed": "Crta pravilan poligon oko kruga, zadat od centra do sredine stranice. Koristite ga kada je poznata širina ključa, npr. za šestougaonu maticu.",
"help.sketch.polygon.edge": "Crta pravilan poligon iz dva kraja jedne stranice. Koristite ga kada su poznate dužina i položaj stranice.",
"help.sketch.polygon.inscribed": "Crta pravilan poligon unutar kruga, zadat od centra do ugla. Koristite ga kada je poznata mjera preko uglova.",
"help.sketch.project": "Unosi ivice modela, lica, vrhove i krive drugih skica u ovu skicu, projektovane na njenu ravan. Ostaju povezani i prate model kada se promijeni.",
"help.sketch.project_to_surface": "Projektuje krive drugih skica duž normale ove skice na lice, kao povezane 3D krive. Koristite ga da logotip, liniju razdvajanja ili putanju postavite na zakrivljenu površ.",
"help.sketch.rectangle.center": "Crta pravougaonik iz njegovog centra i jednog ugla. Koristite ga za obrise centrirane na tački, npr. na ishodištu.",
"help.sketch.rectangle.rounded": "Crta pravougaonik sa sva četiri ugla zaobljena istim poluprečnikom. Koristite ga za ploče, poklopce i otvore sa zaobljenim uglovima.",
"help.sketch.rectangle.three_point": "Crta pravougaonik iz jedne ivice i tačke na suprotnoj strani. Koristite ga za pravougaonike pod uglom u odnosu na ose skice.",
"help.sketch.rectangle.two_point": "Crta pravougaonik iz dva suprotna ugla. Koristite ga za obrise ploča, blokova i džepova.",
"help.sketch.scale": "Skalira krive i tačke skice faktorom oko bazne tačke. Koristite ga da promijenite veličinu dijela skice bez ponovnog crtanja.",
"help.sketch.slot.arc_center": "Crta lučni žlijeb zadate širine duž luka određenog centrom, početkom i krajem. Koristite ga za žlijebove za podešavanje oko osovine.",
"help.sketch.slot.arc_three_point": "Crta lučni žlijeb zadate širine duž luka kroz tri tačke. Koristite ga kada putanja žlijeba mora proći kroz zadate tačke.",
"help.sketch.slot.center_point": "Crta ravni žlijeb zadate širine od njegovog centra do centra jednog krajnjeg luka. Koristite ga za žlijebove centrirane na tački.",
"help.sketch.slot.center_to_center": "Crta ravni žlijeb zadate širine između centara njegova dva krajnja luka. Koristite ga za žlijebove kotirane od centra do centra, npr. žlijebove za podešavanje vijaka.",
"help.sketch.slot.overall": "Crta ravni žlijeb zadate širine od jednog vanjskog kraja do drugog. Koristite ga kada je bitna ukupna dužina žlijeba.",
"help.sketch.spline.control_point": "Crta kubni splajn oblikovan kontrolnim tačkama kroz koje ne prolazi. Koristite ga za glatke, tečne krive koje oblikujete pomjeranjem tačaka.",
"help.sketch.spline.control_point_5": "Crta splajn petog stepena oblikovan kontrolnim tačkama. Koristite ga tamo gdje se krive moraju spajati glađom zakrivljenošću, npr. na vidljivim dizajnerskim površima.",
"help.sketch.spline.fit_point": "Crta glatki splajn koji prolazi kroz svaku tačku koju postavite, otvoren ili zatvoren. Koristite ga da oblik provučete kroz poznate tačke.",
"help.sketch.spline3d": "Crta glatku krivu u prostoru kroz tačke, uz uključenu 3D skicu. Koristite ga za putanje povlačenja i vođenje kablova koji izlaze iz ravni skice.",
"help.sketch.spun_profile": "Pravi u ravni skice obris koji tijelo opisuje kada se okreće oko ose. Koristite ga da dobijete siluetu tokarenog dijela za rotiranje ili crtež.",
"help.sketch.text": "Upisuje tekst u skicu izabranim fontom, visinom i uglom; njegove riječi mogu pratiti parametre. Ekstrudirajte ga ili ga napravite reljefom za etikete i natpise.",
"help.sketch.transform": "Skalira, okreće i pomjera geometriju skice oko tačke centra u jednom koraku. Koristite ga da istovremeno promijenite položaj i veličinu izbora.",
"help.sketch.trim": "Uklanja dio krive između najbližih presjeka oko mjesta na koje kliknete. Koristite ga da preklapajuće linije očistite u zatvoren profil.",
"help.solid.align": "Pomjera izabrana tijela tako da se tačka, lice ili ravan na njima poklopi s tačkom, licem ili ravni negdje drugdje. Koristite ga da postavite dio uz drugi bez mjerenja odmaka.",
"help.solid.boundary_fill": "Pravi puna tijela od područja zatvorenih preklapajućim alatnim tijelima, popunjavajući samo područja koja izaberete. Koristite ga da oblik izgradite iz prostora koji nekoliko tijela zajedno ograničava.",
"help.solid.bounding_solid": "Pravi kutiju koja obuhvata izabrana tijela, s neobaveznom marginom. Koristite ga da vidite ukupnu veličinu dijela ili kao pripremak iz kojeg se dio obrađuje.",
"help.solid.box": "Pravi kutiju iz dužine, širine i visine, iz tačke ugla ili centriranu na tački. Koristite je za brz blok, privremeni oblik ili tijelo u koje se urezuju operacije.",
"help.solid.chamfer": "Odsijeca izabrane ivice ravnim skošenjem zadate udaljenosti. Koristite ga da ublažite oštre ivice ili olakšate uvođenje zatika ili vijka.",
"help.solid.coil": "Pravi zavojno tijelo, npr. oprugu, iz prečnika, broja zavoja, visine ili koraka i okruglog ili kvadratnog presjeka. Koristite je za opruge, zavojnice i zavojne grebene.",
"help.solid.combine": "Spaja tijela, oduzima ih od ciljnog tijela ili zadržava samo zajedničku zapreminu, a može zadržati i alatna tijela. Koristite ga da spojite dijelove, da jednim oblikom odsiječete drugi ili da pronađete gdje se dva tijela preklapaju.",
"help.solid.cone": "Pravi konus iz kruga osnove i visine, ili zarubljeni konus kada i vrh ima poluprečnik. Koristite ga za suženja, lijevke, konusna upuštenja i šiljke.",
"help.solid.cylinder": "Pravi cilindar iz poluprečnika ili prečnika i visine, postavljen na tačku duž ose. Koristite ga za osovine, zatike, ispuste i okrugle pripremke.",
"help.solid.draft": "Naginje izabrana lica za ugao koji zadate, mjereno od neutralne ravni. Koristite ga na livenim ili brizganim dijelovima kako bi izašli iz kalupa.",
"help.solid.emboss": "Izdiže profile skice, npr. tekst ili logotip, iz lica, ili ih udubljuje u njega. Koristite ga za natpise, etikete i oznake na ravnim ili okruglim licima.",
"help.solid.extrude": "Izvlači profil skice u 3D duž zadate udaljenosti, dodajući ili uklanjajući materijal. Koristite ga da ravni obris pretvorite u blok, ispust ili džep.",
"help.solid.fillet": "Zaobljuje izabrane ivice glatkim kružnim prelazom zadatog poluprečnika. Koristite ga da omekšate oštre ivice radi čvrstoće, udobnosti ili izgleda.",
"help.solid.hole": "Buši okruglu rupu zadatog prečnika na izabranoj tački lica. Koristite je za prolaze vijaka, zatike i druge jednostavne okrugle otvore.",
@@ -1425,20 +1653,60 @@
"help.solid.move": "Pomjera ili rotira izabrana tijela, ili njihovu kopiju, za udaljenost i ugao koje zadate. Koristite ga da premjestite tijelo ili napravite drugo na drugom mjestu.",
"help.solid.offset_face": "Gura izabrana lica unutra ili van za udaljenost koju zadate, a okolna lica ih prate. Koristite ga da podebljate zid, produbite džep ili povisite ispupčenje bez uređivanja skice.",
"help.solid.pattern.circular": "Ponavlja izabrane objekte oko ose, za zadati broj i ukupni ugao. Koristite ga za krugove vijaka, žbice, rebra hladnjaka i zupce.",
"help.solid.pattern.path": "Kopira operacije ili tijela duž putanje skice, prema broju i razmaku. Koristite ga za rupe duž zakrivljene ivice ili dijelove duž vodilice.",
"help.solid.pattern.rectangular": "Ponavlja izabrane objekte u jednom ili dva smjera sa zadatim brojem i razmakom. Koristite ga za redove i mreže rupa, rebara, zatika ili nožica.",
"help.solid.pipe": "Pravi okruglu cijev duž putanje od kriva skice, punu ili šuplju sa zadatom debljinom zida. Koristite je za cijevi, žice, kablove i šine.",
"help.solid.press_pull": "Dodaje ili uklanja materijal dok povlačite lice, ili zaobljava ivice dok ih povlačite. Koristite ga za brze izmjene direktno na modelu.",
"help.solid.remove": "Uklanja izabrana tijela iz dizajna od ove tačke vremenske trake nadalje; raniji koraci ih zadržavaju. Koristite ga da odbacite pomoćno tijelo, npr. alat za rezanje koji vam više ne treba.",
"help.solid.replace_face": "Premješta izabrana ravna lica na ravan ili na paralelno lice, a tijelo raste ili se smanjuje da ga dosegne. Koristite ga da poravnate lice s drugim dijelom ili pomoćnom ravni.",
"help.solid.revolve": "Okreće profil skice oko ose i pravi okruglo tijelo. Koristite ga za vratila, dugmad, posude i svaki dio koji je okrugao oko središnje linije.",
"help.solid.rib": "Dodaje tanak zid duž otvorene krive skice, popunjen do sljedećih lica tijela. Koristite ga da ojačate zidove i uglove, npr. u brizganim ili štampanim dijelovima.",
"help.solid.scale": "Povećava ili smanjuje izabrana tijela za faktor, jednako u svim smjerovima ili posebno po osi. Koristite ga da promijenite veličinu uvezenog oblika ili uračunate skupljanje.",
"help.solid.shell": "Izdubljuje tijelo i ostavlja zidove zadate debljine, a može otvoriti lica koja izaberete. Koristite ga za kutije, poklopce i druge tankozidne dijelove.",
"help.solid.sphere": "Pravi sferu iz poluprečnika ili prečnika oko tačke centra. Koristite je za kugle, ručke i zaobljene krajeve.",
"help.solid.split_body": "Reže tijelo na zasebna tijela ravni, licem drugog tijela ili linijom skice. Koristite ga za dijelove koji se zasebno štampaju, obrađuju ili boje.",
"help.solid.split_face": "Dijeli izabrana lica po ravni, licu drugog tijela ili krivama skice, bez rezanja tijela. Koristite ga da dijelu lica date vlastiti nagib, boju ili odmak.",
"help.solid.sweep": "Povlači profil skice duž putanje i pravi tijelo. Koristite ga za cijevi, šine, ručke i svaki dio konstantnog presjeka koji prati krivu.",
"help.solid.thread": "Dodaje ISO metrički navoj na cilindrično lice, kao kozmetički navoj ili urezan u tijelo. Koristite ga za vijke, navojne rupe i štampane dijelove s navojem.",
"help.solid.torus": "Pravi prsten iz velikog poluprečnika oko njegove ose i malog poluprečnika za okrugli presjek. Koristite ga za O-prstenove, ručke i okrugle perle.",
"help.solid.web": "Dodaje tanak zid duž svake otvorene krive skice, svaki popunjen do sljedećih lica tijela. Koristite ga za mrežu potpornih zidova unutar kućišta i posuda.",
"help.surface.blend": "Pravi površ koja premošćuje ivice dvaju tijela, tangentnu ili kontinuiranu po zakrivljenosti s oba. Koristite je da dvije površi glatko spojite preko razmaka.",
"help.surface.boundary": "Pravi površ koja ispunjava petlju od dvije do četiri krive skice, ili mrežu kriva. Koristite je za slobodne panele određene svojim ivicama.",
"help.surface.extend": "Produžava površ preko njenih ivica, za neku udaljenost ili do ravni ili lica. Koristite ga da se površi preklope prije nego što ih odsiječete ili sašijete.",
"help.surface.extrude": "Izvlači krive ili profile skice na zadatu udaljenost u površ, samo zidove, bez poklopaca. Koristite ga za tanke zidove i za alate za rezanje ili razdvajanje.",
"help.surface.fair": "Izglađuje unutrašnjost slobodnih lica dok njihove ivice ostaju na mjestu. Koristite ga da izravnate izbočine i valovite refleksije u površi.",
"help.surface.loft": "Pravi površ koja redom prolazi kroz dva ili više presjeka, bez poklopaca. Koristite je za ljuske i prelaze između različitih oblika.",
"help.surface.match": "Ponovo gradi ivicu površi tako da se sastaje s ivicom drugog tijela, uz podudarnu tangentu ili zakrivljenost. Koristite ga da glatko zatvorite šav između dvije površi.",
"help.surface.offset": "Pravi kopiju lica na udaljenosti duž njihovih normala, kao novo tijelo površi. Koristite ga za omotače, zazore ili drugu stranu zida.",
"help.surface.patch": "Ispunjava područje skice ili zatvorenu petlju ivica licem, ravnim ili glatko zakrivljenim. Koristite ga da zatvorite rupe u tijelu površi.",
"help.surface.reverse_normal": "Okreće lica tijela površi, pa njihova vanjska strana gleda na drugu stranu. Koristite ga prije podebljanja ili šivenja kada lica gledaju prema unutra.",
"help.surface.revolve": "Okreće krive ili profile skice oko ose u površ, bez poklopaca. Koristite ga za okrugle ljuske poput abažura, zdjela i mlaznica.",
"help.surface.ruled": "Pravi traku pravih linija iz lanca ivica, duž normale lica, tangente ili pod uglom. Koristite ga za zidove s nagibom, odvodne površi i površi razdvajanja.",
"help.surface.stitch": "Šije tijela površi zajedno duž njihovih zajedničkih ivica, u puno tijelo kada se zatvore. Koristite ga da skup površi pretvorite u jedno tijelo.",
"help.surface.sweep": "Pomjera krive ili profile skice duž putanje u površ, bez poklopaca. Koristite ga za žljebove, lajsne i druge tanke oblike koji prate putanju.",
"help.surface.thicken": "Daje tijelu površi debljinu i pretvara ga u puno tijelo. Koristite ga da od površi napravite dijelove pogodne za štampu ili obradu.",
"help.surface.trim": "Siječe površ ravni, drugom površi ili krivama skice i zadržava stranu koju izaberete. Koristite ga da površi oblikujete prije šivenja.",
"help.surface.unstitch": "Razdvaja lica tijela u zasebna tijela površi; puno tijelo se raspada na površi. Koristite ga da preradite pojedinačna lica tijela.",
"help.surface.untrim": "Uklanja rupe iz lica, ili vraća njegovu vanjsku granicu na prirodne granice površi. Koristite ga da nakon odsijecanja vratite cijelu površ.",
"help.third_party": "Licence trećih strana",
"help.timeline.compute_all": "Ponovo gradi svaku operaciju na vremenskoj traci od početka. Koristite ga da osvježite model i vidite koje operacije ne uspijevaju.",
"help.timeline.delete": "Briše izabrane operacije s vremenske trake; brisanje skice briše i operacije napravljene iz nje. Koristite ga da uklonite korak koji više ne želite.",
"help.timeline.dependents": "Navodi operacije koje bi bile izbrisane zajedno s nekom operacijom i one koje bi bez nje otkazale. Koristite ga prije brisanja ili mijenjanja operacije.",
"help.timeline.play": "Reprodukuje preostale operacije jednu po jednu, s pauzom od pola sekunde nakon svake ponovne izgradnje. Pokrenite ovu komandu ponovo ili pritisnite Escape da zaustavite; Idi na kraj skače odmah.",
"help.view.apply": "Okreće prikaz u standardni smjer, npr. sprijeda, odozgo ili izometrijski, ili u sačuvani imenovani prikaz. Koristite ga da model posmatrate iz utvrđenog ugla.",
"help.view.delete": "Briše sačuvani imenovani prikaz. Model se ne mijenja.",
"help.view.fit": "Zumira i pomjera prikaz tako da cijeli model, ili izbor, ispuni prikaz. Koristite ga kada model nestane iz vidokruga.",
"help.view.grid": "Prikazuje ili sakriva mrežu u prozoru prikaza. Koristite je kao vodič za veličinu i orijentaciju tokom modeliranja.",
"help.view.ground_shadow": "Prikazuje ili sakriva sjenu modela na podlozi. Koristite je da lakše procijenite visinu i položaj.",
"help.view.home": "Vraća prikaz na početni smjer i uklapa model. Koristite ga da se brzo vratite na poznat prikaz.",
"help.view.list": "Navodi imenovane prikaze sačuvane u dizajnu. Koristite ga da pronađete prikaz koji ste ranije sačuvali.",
"help.view.navigate": "Okreće, pomjera ili zumira prikaz u koracima, npr. četvrtinu okreta ulijevo. Koristite ga da kameru pomjerate precizno umjesto povlačenjem.",
"help.view.navigation_bar": "Prikazuje ili sakriva navigacijsku traku na dnu prozora prikaza. Sakrijte je za više prostora, prikažite je da alatima prikaza pristupate mišem.",
"help.view.rename": "Daje sačuvanom imenovanom prikazu novi naziv. Sam prikaz ostaje isti.",
"help.view.save": "Čuva trenutni položaj kamere kao imenovani prikaz u dizajnu. Koristite ga da se kasnije vratite na isti ugao, npr. za snimke ekrana.",
"help.view.spin": "Neprekidno orbitira prikaz oko modela do sljedećeg klika ili tipke. Koristite ga da model predstavite sa svih strana.",
"help.view.tool": "Zaključava alat kamere, orbitiranje, pomjeranje ili zumiranje, tako da povlačenje lijevim dugmetom miša pomjera prikaz dok ga ne isključite. Koristite ga na touchpadu ili bez srednjeg dugmeta miša.",
"help.view.visual_style": "Mijenja način crtanja modela: osjenčeno sa ili bez ivica, žičani model ili sa skrivenim ivicama. Koristite žičani model da vidite unutra, a osjenčeno za čist izgled.",
"history.sketch_under_constrained": "Nedovoljno ograničeno (stepeni slobode: {count})",
"history.sketch_under_constrained_one": "Nedovoljno ograničeno ({count} stepen slobode)",
"hole_presets.confirm_delete": "Potvrdi brisanje",
@@ -1615,6 +1883,10 @@
"material.selection.mixed": "Različiti materijali",
"measure.at": "Na",
"measure.item": "Stavka {number}",
"measure.quick_copied": "Mjerenje kopirano",
"measure.quick_copy": "Kliknite da kopirate mjerenje",
"measure.quick_edges": "Ivice: {count}",
"measure.quick_faces": "Lica: {count}",
"messages.ago_h": "prije {n} h",
"messages.ago_min": "prije {n} min",
"messages.ago_s": "prije {n} s",
@@ -1648,6 +1920,7 @@
"nav.hfss.help": "Alt+lijevo povlačenje pomjera prikaz, Shift+Alt+lijevo zumira, Ctrl+lijevo povlačenje na praznom prostoru orbitira",
"nav.inventor.help": "Povlačenje srednjim dugmetom pomjera, Shift+srednje orbitira, Ctrl+srednje zumira, povlačenje desnim orbitira",
"nav.maya.help": "Alt+lijevo povlačenje orbitira, Alt+srednje pomjera, Alt+desno zumira; srednje povlačenje također pomjera",
"nav.nx.help": "Povlačenje srednjim dugmetom orbitira, Shift+srednje pomjera (u NX-u srednje + desno), Ctrl+srednje zumira (u NX-u srednje + lijevo); povlačenje desnim dugmetom ne dira kameru",
"nav.openscad.help": "Povlačenje lijevim dugmetom po praznom prostoru orbitira, Shift+povlačenje lijevim bira okvirom, povlačenje geometrije skice je uređuje; povlačenje desnim ili srednjim dugmetom pomjera, Shift+desno ili Shift+srednje zumira",
"nav.perspective.sketch": "Uređivanje skice koristi ortografski prikaz. Završite skicu da prebacite na perspektivu.",
"nav.right_drag_orbits.help": "Isključeno: povlačenje desnim dugmetom ne dira kameru, a desno dugme samo otvara kontekstni meni. Izbor mapiranja miša SolidWorks to isključuje.",
@@ -1767,6 +2040,11 @@
"not a move": "nije pomjeranje",
"not a number": "nije broj",
"open a sketch first": "prvo otvorite skicu",
"parameters.apply_live": "Primijeni svaku promjenu kad napustite njeno polje",
"parameters.apply_live_tip": "Isključeno: promjene čekaju na Primijeni ili U redu, a zatim se dizajn jednom ponovo gradi za sve njih. Otkaži ili Escape ih odbacuje.",
"parameters.held": "Promjene na čekanju za Primijeni: {count}",
"parameters.held_hint": "Uređujte izraze i jedinice. Promjene čekaju na Primijeni ili U redu.",
"parameters.held_one": "1 promjena na čekanju za Primijeni",
"parts.automatic_name": "automatski",
"parts.dimension.across_flats": "Širina ključa",
"parts.dimension.bore": "Provrt",
@@ -1789,6 +2067,8 @@
"parts.family.set_screw": "Bezglavi vijak s imbusom, ravni vrh",
"parts.family.socket_head_cap_screw": "Vijak s cilindričnom glavom i imbusom",
"parts.family.washer": "Obična podloška",
"parts.holes": "Rupe (neobavezno)",
"parts.placement_hint": "izaberite jednu ili više rupa da u svaku postavite dio, ili ga U redu postavlja u ishodište",
"pattern.alignment_2": "Poravnanje 2",
"pattern.alignment_hint": "Broj uključuje original. Centar ravnomjerno raspoređuje kopije; Obrni bira dodatnu stranu za parne ukupne brojeve.",
"pattern.direction_1": "Smjer 1",
@@ -1862,6 +2142,8 @@
"prefs.ctrl_cmd": "Ctrl / Cmd",
"prefs.curved_surfaces": "Zakrivljene površi",
"prefs.curves": "Zakrivljene površi",
"prefs.dark_parts_shading": "Zadrži oblik tamnih dijelova",
"prefs.dark_parts_shading_help": "Sjenči prikaz u linearnom svjetlu s mekim dopunskim svjetlom neba, tako da tamna lica zadrže gradijent umjesto da pocrne",
"prefs.dead_zone_note": "Šrafirana traka je mrtva zona: kretanje unutar nje se zanemaruje.",
"prefs.default": "podrazumijevano",
"prefs.design": "Podrazumijevane postavke dizajna",
@@ -1876,6 +2158,8 @@
"prefs.edges": "Ivice i sjenčenje",
"prefs.extend": "Produži",
"prefs.extra_navigation": "Ctrl + povlačenje lijevim dugmetom po praznom prostoru orbitira; držite razmaknicu za pomjeranje.",
"prefs.extrude_view_isometric": "Okreni prikaz u izometrijski kada se otvori Ekstrudiraj",
"prefs.extrude_view_return": "Vrati se na prethodni prikaz kada se Ekstrudiraj zatvori",
"prefs.follows_os": "Prati operativni sistem",
"prefs.font": "Font",
"prefs.font_fallback": "Znakovi koji nedostaju izabranom fontu prikazuju se ugrađenim fontom, tako da nijedna oznaka ne prikazuje prazan kvadrat.",
@@ -1891,6 +2175,7 @@
"prefs.graphics_card_auto": "Automatski",
"prefs.graphics_card_missing": "Sačuvana grafička kartica nije dostupna; koristi se Automatski.",
"prefs.graphics_card_restart": "Stupa na snagu nakon ponovnog pokretanja SolidCrafta. WGPU_ADAPTER_NAME ima prednost nad ovim izborom.",
"prefs.graphics_card_unused": "Sačuvana grafička kartica nije korištena za ovaj prozor; kartica koja se koristi prikazana je u Pomoć › O programu i u statusnoj traci. Pokušajte s opcijom Automatski ili postavite WGPU_ADAPTER_NAME na jedinstveni dio naziva kartice.",
"prefs.graphics_note": "Žrtvujte brzinu za glatkoću. Svaki izbor pokazuje svoj učinak na primjeru.",
"prefs.graphics_presets_note": "Unaprijed postavljene vrijednosti podešavaju sve izbore ispod odjednom.",
"prefs.hide_constraint_glyphs_zoomed_out": "Sakrij simbole ograničenja kada je prikaz umanjen",
@@ -1905,6 +2190,8 @@
"prefs.history_sketches_note": "Kada je Skice postavljeno na Ispod svoje operacije, vremenska traka lijevo prikazuje svaku skicu jedan nivo uvučeno, ispod prve operacije napravljene iz nje, kad god je dovoljno široka za nazive. Vremenska traka na dnu uvijek zadržava redoslijed nastanka.",
"prefs.history_sketches_under_feature": "Ispod svoje operacije",
"prefs.hold_stop_snapping": "Držite da isključite privlačenje",
"prefs.home_fit_size": "Veličina za Početni prikaz i Uklopi",
"prefs.home_fit_size_note": "Koliki dio prikaza model ispunjava kada ga uokviri Početni prikaz, Uklopi, otvaranje dizajna ili promjena prikaza u navigatoru, bez obzira na to je li postavka ispod uključena. 100 %: ispunjava prikaz između panela, kompasa i navigacijske trake.",
"prefs.icons_only": "Samo ikone",
"prefs.imported_file": "Uvezena datoteka",
"prefs.in_browser": "U stablu modela",
@@ -1913,13 +2200,20 @@
"prefs.interface_language": "Jezik interfejsa",
"prefs.interface_note": "Kako SolidCraft izgleda i gdje su njegovi dijelovi.",
"prefs.interval_minutes": "{n} min",
"prefs.invert_navigator_arrows": "Obrni strelice za rotaciju kocke prikaza",
"prefs.invert_navigator_arrows_note": "Strelice oko kocke orbitiraju kameru u smjeru u kojem pokazuju, kao u programima Fusion i Inventor: strelica s lijeve strane pokazuje udesno i zakreće kameru udesno. Isključeno: strelica okreće kocku prema strani na kojoj se nalazi, pa lijeva strelica zakreće kameru ulijevo. Postavka ne utiče na zakrivljene strelice za valjanje.",
"prefs.keep_work_on_tab_switch": "Zadrži dijaloge i alate otvorenima pri prebacivanju između dizajna",
"prefs.keep_work_on_tab_switch_note": "Svaka kartica dizajna zadržava svoj otvoreni dijalog ili alat, s onim što ste u njemu izabrali i upisali, te svoju karticu trake s alatima. Kada se vratite na dizajn, ponovo su tu. Isključeno: prebacivanje između dizajna otkazuje ih i prikazuje karticu Model.",
"prefs.labels": "Oznake",
"prefs.language_system": "Sistem",
"prefs.layout": "Raspored",
"prefs.layout_note": "Kompaktno pričvršćuje panele uz ivice prozora. Prozirnost stabla modela dostupna je u opciji Plutajuće. Stranu Asistenta promijenite na stranici Asistent.",
"prefs.left": "Lijevo",
"prefs.left_click": "Lijevi klik",
"prefs.line_drag_draws_one": "Pritisak i povlačenje crta jednu liniju",
"prefs.line_drag_draws_one_note": "U alatu Linija pritisak, povlačenje i puštanje crta jednu liniju od mjesta pritiska do mjesta puštanja i tu se završava. Klikovi i dalje crtaju lanac. Isključeno: povlačenje postavlja tačku tamo gdje se pusti, kao i klik.",
"prefs.line_hover_tangent_arc": "Zadržite pokazivač na posljednjoj tački linije da pređete na tangentni luk",
"prefs.line_hover_tangent_arc_note": "U alatu Linija, nakon što je nacrtan segment, odmaknite pokazivač od posljednje tačke lanca, vratite ga na nju i držite ga mirno: sljedeći klik završava tangentni luk, a isti pokret vraća na linije. Isključeno: zadržavanje na toj tački ne radi ništa.",
"prefs.linked_designs": "Povezani dizajni",
"prefs.live_input": "Ulaz uživo",
"prefs.live_preview": "Pregled uživo",
@@ -1943,6 +2237,8 @@
"prefs.mouse_mapping": "Mapiranje miša",
"prefs.navigation": "Navigacija",
"prefs.navigation_note": "Kako miš, trackpad i 3D miš pomjeraju prikaz.",
"prefs.navigator_fit": "Uklopi model nakon promjene prikaza u navigatoru",
"prefs.navigator_fit_note": "Lice, ugao ili strelica kocke prikaza, odnosno osa alata za orijentaciju, također usmjerava pogled na sredinu modela s jedne udaljenosti na kojoj se uklapa iz svakog smjera (njegova granična sfera). Početni prikaz koristi isti zum i centar dok je ova opcija uključena, pa se prikazi koje izaberete poslije njega samo okreću. Isključeno: prikaz se okreće na mjestu i zadržava svoj cilj i zum.",
"prefs.network_host_remove": "Ukloni",
"prefs.network_locations": "Dozvoli mrežne lokacije u dizajnima",
"prefs.network_locations_note": "Isključeno: povezane datoteke dizajna na drugom računaru (\\\\server\\share) otvaraju se samo sa servera navedenih ovdje ili nakon što ga dozvolite kada se to zatraži.",
@@ -1955,6 +2251,8 @@
"prefs.origin_plane_names": "Nazivi ravni ishodišta",
"prefs.origin_plane_names_note": "Nazivi prikazani u stablu modela, dijalozima i listama. {top} je XY, {front} je XZ, a {right} je YZ, sa Z prema gore. Komande, skripte i sačuvani dizajni zadržavaju XY, XZ i YZ.",
"prefs.overall_speed": "Ukupna brzina",
"prefs.parameter_list_rows": "Redovi popisa parametara",
"prefs.parameter_list_rows_tip": "Strelica prema dolje u praznom polju vrijednosti navodi parametre, favorite prvo, do ovog broja. Manji broj održava popis laganim u velikom dizajnu.",
"prefs.persistent_ribbon_pressed": "Istakni aktivne komande na traci",
"prefs.persistent_ribbon_pressed_help": "Ističe komande na traci dok su njihovi efekti uključeni. Isključite da biste zadržali prethodni neutralni izgled i pomoć za komande.",
"prefs.perspective_fov": "Vidno polje",
@@ -1984,9 +2282,13 @@
"prefs.quality_fastest": "najbrže",
"prefs.quality_slowest": "najsporije",
"prefs.quality_smoother": "glađe",
"prefs.quick_measure": "Brzo mjerenje u uglu prikaza",
"prefs.quick_measure_note": "Veličina izbora u donjem desnom uglu prikaza: dužina ivice, ili Ø i R za okruglu, površina lica, položaj tačke, udaljenost i ugao dviju stavki, ukupna vrijednost više ivica ili lica. Klik je kopira.",
"prefs.render_previous_geometry_budget": "Koristi prethodni budžet geometrije za pregled renderovanja",
"prefs.render_previous_geometry_budget_help": "Vraća prethodno fiksno ograničenje geometrije (512 MiB na 64-bitnim desktop računarima, 128 MiB drugdje) umjesto budžeta prema uređaju.",
"prefs.reports_saved": "Sačuvano: {n}",
"prefs.ribbon_click_ends_tool": "Klik na dugme aktivnog alata završava ga",
"prefs.ribbon_click_ends_tool_note": "Klik na istaknuto dugme na traci alata za skiciranje koji je u upotrebi završava taj alat, pa klikovi u prikazu ponovo služe za biranje. Isključeno: klik ponovo pokreće alat.",
"prefs.ribbon_reveal": "Prikaži rezultate pretrage na traci",
"prefs.ribbon_reveal_note": "Zadržavanje pokazivača iznad rezultata u Pretraži komande pokazuje gdje se komanda nalazi na traci: njenu karticu, njeno dugme ili njen red u padajućem meniju panela. Komanda pokrenuta iz pretrage tamo trepće, a pokrenuta komanda iz padajućeg menija označava svoj panel.",
"prefs.right_click": "Desni klik",
@@ -2016,6 +2318,8 @@
"prefs.sketch_exit_view.previous": "Vrati se na prethodni prikaz",
"prefs.sketch_exit_view.unless_rotated": "Vrati se osim ako je rotirano",
"prefs.sketch_exit_view_note": "Kuda prikaz ide nakon Završi skicu, Otkaži ili dvostrukog Esc.",
"prefs.sketch_face_activates_part": "Skiciranje na licu dijela čini taj dio aktivnim",
"prefs.sketch_face_activates_part_note": "Skica započeta na licu tijela druge komponente prvo aktivira tu komponentu, pa skica pripada njoj i u stablu modela ostaje uz taj dio. Taj dio nakon toga ostaje aktivan. Isključeno: skica pripada aktivnoj komponenti.",
"prefs.sketch_open_look_at": "Okreni kameru prema skici kad se otvori",
"prefs.sketch_open_look_at_note": "Isključeno: kad napravite ili uredite skicu, prikaz ostaje onakav kakav jest. Pogledaj okreće prikaz prema skici kad to želite.",
"prefs.sketch_recent_snap": "Automatski privlači na nedavne centre i središnje tačke",
@@ -2029,6 +2333,8 @@
"prefs.sketch_tab_always_note": "Kartica Skica ostaje na traci, odmah iza Modela, dok nijedna skica nije otvorena. Njeni alati za crtanje tada pokreću skicu na izabranoj ravni ili licu, ili na ravni koju sljedeću izaberete, s alatom spremnim u njoj.",
"prefs.sketch_tracking_guides": "Pomoćne linije poravnanja centra i središnje tačke",
"prefs.sketch_tracking_guides_note": "Zadržite pokazivač iznad centra kruga ili središnje tačke prave ivice, pa se pomjerite vodoravno ili okomito da se prikaže privremena tačkasta pomoćna linija.",
"prefs.sketch_tracking_points": "Pomoćne linije poravnanja iz krajnjih tačaka i uglova tokom crtanja",
"prefs.sketch_tracking_points_note": "Dok alat za crtanje čeka tačku, prelazak mišem preko kraja linije ili luka, ugla pravougaonika ili slobodne tačke prikazuje istu privremenu tačkastu pomoćnu liniju kao centar ili središnja tačka. Isključeno: samo centri i središnje tačke.",
"prefs.sketching": "Skiciranje",
"prefs.snap_drawing_note": "Tokom crtanja ili povlačenja tačke skice.",
"prefs.source": "Izvor",
@@ -2045,6 +2351,24 @@
"prefs.status_error": "Greška",
"prefs.status_selected": "Izabrano",
"prefs.status_warning": "Upozorenje",
"prefs.structure.appearance": "Izgled",
"prefs.structure.appearance_note": "Boje, tekst i pristupačnost.",
"prefs.structure.in_profile": "U profilu",
"prefs.structure.layout": "Raspored",
"prefs.structure.layout_note": "Gdje se nalaze dijelovi prozora.",
"prefs.structure.look": "Vizuelno",
"prefs.structure.measure_pointer": "Mjerenje i pokazivač",
"prefs.structure.mouse3d": "3D miš",
"prefs.structure.mouse3d_note": "SpaceMouse i SpaceNavigator.",
"prefs.structure.navigation_note": "Miš i trackpad. 3D miš ima vlastitu stranicu.",
"prefs.structure.profile": "Profil",
"prefs.structure.profile_edited": "Promijenjeno otkako je sačuvano",
"prefs.structure.profile_hover": "Sačuvano u profilima postavki",
"prefs.structure.scale_percent": "{percent}%",
"prefs.structure.sketch": "Skica",
"prefs.structure.tools": "Alati",
"prefs.structure.tools_note": "Kako se ponašaju alati za modeliranje.",
"prefs.structure.work": "Rad",
"prefs.supersampling_brief": "Iscrtava prikaz većim i smanjuje ga filtriranjem: vrlo oštro i zahtjevnije.",
"prefs.tab_accent_note": "Naglasna boja prati aktivnu karticu",
"prefs.theme_file": "datoteka teme",
@@ -2056,6 +2380,16 @@
"prefs.theme_follow_off": "Isključeno",
"prefs.theme_follow_stop": "Prestani pratiti",
"prefs.theme_import_hint": "Kliknite da izaberete datoteku teme, ispustite je ovdje ili pritisnite Ctrl+V (Cmd+V na Macu) kada je tema kopirana",
"prefs.theme_option_opacity": "Neprozirnost",
"prefs.theme_option_opacity_help": "Podesite neprozirnost plutajućih panela. Donja granica čitljivosti štiti tekst preko boja prozora prikaza.",
"prefs.theme_option_tab_colours": "Boje kartica",
"prefs.theme_option_tab_colours_help": "Koristi boje panela i prozora prikaza ove teme za svaku karticu trake.",
"prefs.theme_option_tab_fade_ms": "Prelaz kartica",
"prefs.theme_option_tab_fade_ms_help": "Boje panela i prozora prikaza postepeno se mijenjaju pri prelasku na drugu karticu. Nula mijenja odmah.",
"prefs.theme_options_badge": "Opcije",
"prefs.theme_options_more": "Više · {count}",
"prefs.theme_options_reset": "Resetuj",
"prefs.theme_options_unavailable": "Nedostupno na ovom uređaju",
"prefs.theme_paste": "Zalijepi temu",
"prefs.theme_paste_none": "Međuspremnik ne sadrži SolidCraft temu",
"prefs.timeline_half_hour": "−30 min",
@@ -2077,6 +2411,8 @@
"prefs.under_cursor": "Ispod pokazivača",
"prefs.units_precision": "Jedinice i preciznost",
"prefs.updates": "Ažuriranja",
"prefs.value_boxes_in_view": "Prikaži vrijednosti pored njihovih ručica u prikazu",
"prefs.value_boxes_in_view_tip": "Vrijednost komande (Udaljenost, Poluprečnik…) u polju pored njene ručice, preko modela. Isključeno: upisujete je u prozoru komande, koji preuzima tastaturu nakon izbora, i ništa ne prekriva model.",
"prefs.view": "Ponašanje prikaza",
"prefs.view_confirm_corner": "U redu i Otkaži u uglu prikaza",
"prefs.view_confirm_corner_note": "Dok je otvoren dijalog ili skica, kvačica i krstić gore desno u prikazu rade isto što i dugmad U redu i Otkaži u dijalogu, odnosno završavaju i otkazuju skicu. Navigator prikaza pomjera se ispod njih.",
@@ -2086,6 +2422,12 @@
"prefs.viewport_background": "Pozadina",
"prefs.viewport_background_colour": "Boja",
"prefs.viewport_background_theme": "Gradijent teme",
"prefs.viewport_section_status": "Prikaži status presjeka u prozoru prikaza",
"prefs.viewport_section_status_help": "Prikazuje postavku presjeka u prozoru prikaza. Escape i aktivno dugme na traci je isključuju. Isključite da zadržite prethodne kontrole presjeka.",
"prefs.viewport_status_details": "Detalji prozora prikaza uživo",
"prefs.viewport_status_details_help": "Uređujte postavke aktivne analize i presjeka u standardnim karticama s detaljima. Isključite da vratite legende analize samo za čitanje i dijalog Presjek.",
"prefs.viewport_status_summary": "Sažmi stavke statusa prozora prikaza",
"prefs.viewport_status_summary_help": "Sažima tri ili više stavki statusa prozora prikaza u jednu sažetu oznaku. Isključite da svaka stavka ostane u punom redu.",
"prefs.wheel": "Točkić",
"prefs.wheel_trackpad": "Točkić i trackpad",
"prefs.workspace": "Radni prostor",
@@ -2964,7 +3306,9 @@
"render.output_ready": "Spremno za renderovanje",
"render.output_run_check": "Pokreni provjeru",
"render.output_size_limit": "{method}: do {dimension} px po strani i {pixels} piksela. Najveća veličina koja staje: {width} × {height}.",
"render.output_size_method_profile": "Za renderovanje {width} × {height} izaberite {method} s CPU profilom resursa {profile} ili manju veličinu.",
"render.output_size_ok": "Veličina u redu · {width} × {height} px",
"render.output_size_profile": "Za renderovanje {width} × {height} izaberite CPU profil resursa {profile} ili manju veličinu.",
"render.output_swap_orientation": "Zamijeni širinu i visinu",
"render.output_tools_inspector": "Veličinu i format uredite u inspektoru Izlaz.",
"render.output_view_image": "Prikaži sliku",
@@ -3177,6 +3521,7 @@
"render.size_custom": "Prilagođeno…",
"render.size_full_hd": "Full HD",
"render.size_hd": "HD",
"render.size_needs_profile": "{size} · potrebno: {profile}",
"render.size_presets": "Predlošci veličine",
"render.size_presets_pending": "Stiže s uređivačem izlaza",
"render.size_preview": "Pregled",
@@ -3464,6 +3809,24 @@
"sheet.flange_type_contour": "Kontura",
"sheet.flange_type_edge": "Ivica",
"sheet.no_body": "nema limenog tijela: napravite ga pomoću Prirubnica > Osnova ili pretvorite ploču u lim pomoću Pretvori u lim (izaberite njeno veliko ravno lice)",
"sheet.personal_rules.confirm_delete": "Potvrdi brisanje",
"sheet.personal_rules.delete": "Izbriši",
"sheet.personal_rules.delete_prompt": "Izbrisati ovo lično pravilo? Pravila već u dizajnima ostaju nepromijenjena.",
"sheet.personal_rules.full": "Lična biblioteka već sadrži 64 pravila.",
"sheet.personal_rules.invalid_name": "Unesite kratak naziv bez prijeloma reda ili kontrolnih znakova.",
"sheet.personal_rules.invalid_values": "Dopunite vrijednosti pravila: svaka se mora izračunati u ovom dizajnu, s pozitivnom debljinom i K-faktorom od 0 do 1.",
"sheet.personal_rules.missing": "Izabrano lično pravilo više nije dostupno.",
"sheet.personal_rules.name": "Naziv pravila",
"sheet.personal_rules.name_exists": "Lično pravilo s ovim nazivom već postoji. Koristite drugi naziv.",
"sheet.personal_rules.name_hint": "Jedinstven naziv",
"sheet.personal_rules.overwrite": "Sačuvaj promjene u izabranom ličnom pravilu",
"sheet.personal_rules.rename": "Preimenuj",
"sheet.personal_rules.rule": "Lično pravilo",
"sheet.personal_rules.save": "Sačuvaj novo",
"sheet.personal_rules.scope": "Čuva se u vašem profilu za sve dizajne.",
"sheet.personal_rules.select": "Izaberite pravilo",
"sheet.personal_rules.title": "Lična pravila",
"sheet.personal_rules.unsupported": "Ovo pravilo ima vrijednosti koje ova verzija ne može koristiti.",
"shortcut.json_error": "parametri moraju biti JSON: {error}",
"shortcut.no_command": "nema komande `{id}`; tekst prije JSON-a mora biti id komande",
"shortcut.pin": "Prikači na vrh S okvira",
@@ -3500,8 +3863,10 @@
"sketch_text.align_right": "Desno",
"sketch_text.bold": "Podebljano",
"sketch_text.builtin_font": "{family} (ugrađeno)",
"sketch_text.formula": "Počnite znakom = da riječi složite iz parametara: ='W' + number(Width)",
"sketch_text.italic": "Kurziv",
"sketch_text.loading_fonts": "Traženje instaliranih fontova…",
"sketch_text.no_bold": "Ugrađeni font nema podebljanu varijantu: izaberite instalirani font",
"sketch_text.on_path": "Tekst prati svoju putanju: kriva ga postavlja",
"sketch_text.path_clear": "Skini tekst s njegove krive",
"sketch_text.path_hint": "Kriva skice koju tekst prati: kliknite ovdje, a zatim krivu",
@@ -3640,6 +4005,8 @@
"ui.3d_mouse_section": "3D miš",
"ui.3d_mouse_show_in_view": "Prikaži 3D miš u 3D prikazu",
"ui.3d_mouse_show_in_view_tip": "Slika vašeg 3D miša u donjem lijevom uglu, koja se kreće dok ga pomjerate.",
"ui.3d_mouse_sketch_orbit": "Okreći skice 3D mišem",
"ui.3d_mouse_sketch_orbit_tip": "3D miš okreće prikaz i dok je skica otvorena i gledana pod pravim uglom, kao što to može i miš. Isključeno: pomjera i zumira skicu dok ne nagnete prikaz.",
"ui.3d_mouse_skip": "Moj uređaj ovo ne može",
"ui.3d_mouse_skip_tip": "Preskače ovo kretanje u oba smjera, a kalibracija ga izostavlja.",
"ui.3d_mouse_speed": "Brzina 3D miša",
@@ -3708,6 +4075,7 @@
"ui.agent_chat_auth_terminal": "Pokrenite ovo u terminalu, a zatim pritisnite Poveži ponovo:",
"ui.agent_chat_auth_title": "Prijavi se kod agenta",
"ui.agent_chat_cancel": "Otkaži",
"ui.agent_chat_cannot_start": "Instalirano, ali se ne pokreće: {error}",
"ui.agent_chat_changes": "Promjene: {n}, jedan korak poništavanja",
"ui.agent_chat_changes_n": "Promjene: {n}",
"ui.agent_chat_changes_of": "Promjene: {n}/{limit}",
@@ -3800,9 +4168,12 @@
"ui.agent_chat_queued_stopped": "U redu čekanja (zaustavljeno, nije poslano)",
"ui.agent_chat_refresh": "Osvježi",
"ui.agent_chat_refused": "Nije dozvoljeno agentu: {reason}",
"ui.agent_chat_reinstall": "{agent} je instaliran ({program}), ali se nije pokrenuo kada ga je SolidCraft provjerio: {error}\nNjegova instalacija možda nije potpuna ili je napravljena za drugu vrstu računara. Instalirajte ga ponovo naredbom `{install}`, provjerite da li u terminalu ispisuje svoju verziju, a zatim pritisnite Osvježi.",
"ui.agent_chat_remove": "Ukloni iz reda",
"ui.agent_chat_remove_file": "Skini s ove poruke",
"ui.agent_chat_remove_imported": "Skini s ove poruke; dio ostaje u dizajnu (Poništi ga uklanja)",
"ui.agent_chat_reply_cut_off": "Odgovor je dostigao ograničenje dužine prije nego što je završen, pa može biti nepotpun. Zamolite agenta da nastavi ili da da kraći odgovor.",
"ui.agent_chat_reply_declined": "Model je odbio odgovoriti na ovu poruku.",
"ui.agent_chat_retry": "Pokušaj ponovo",
"ui.agent_chat_right": "Desno",
"ui.agent_chat_save": "Sačuvaj",
@@ -3861,12 +4232,17 @@
"ui.ai_copy_suffix": "kopiraj",
"ui.ai_custom_url": "Prilagođeni URL",
"ui.ai_default": "Podrazumijevano",
"ui.ai_edit": "Uredi",
"ui.ai_edit_agent_title": "Uredi agenta",
"ui.ai_edit_gone": "Ovaj agent je uklonjen, pa nema šta da se sačuva.",
"ui.ai_edit_tip": "Promijenite naziv, komandu ili krajnju tačku ovog agenta. Sačuvani ključ ostaje skriven.",
"ui.ai_http_busy": "krajnja tačka je zauzeta ili je preko ograničenja; pokušajte ponovo kasnije",
"ui.ai_http_key": "krajnja tačka je odbila ključ: provjerite ga u Postavke > AI",
"ui.ai_http_not_found": "nema takve krajnje tačke ili modela: provjerite osnovni URL i naziv modela",
"ui.ai_http_too_large": "razgovor je prevelik za ovu krajnju tačku; započnite novi razgovor",
"ui.ai_key": "API ključ",
"ui.ai_key_hint": "neobavezno; čuva se u sistemskom privjesku ključeva",
"ui.ai_key_keep_hint": "ostavite prazno da zadržite sačuvani ključ",
"ui.ai_key_needs_https": "Ključ se šalje samo preko HTTPS-a ili na ovaj računar.",
"ui.ai_key_note": "Čuva se u sistemskom privjesku ključeva, nikad u postavkama SolidCrafta. Za lokalni server ostavite prazno.",
"ui.ai_keychain_error": "Sistemski privjesak ključeva je odbio: {error}",
@@ -3893,11 +4269,15 @@
"ui.ai_permissions": "Dozvole",
"ui.ai_preset": "Unaprijed postavljeno",
"ui.ai_protocol": "Protokol",
"ui.ai_reasoning_effort": "Nivo zaključivanja",
"ui.ai_reasoning_effort_field_hint": "prazno = podrazumijevana vrijednost pružaoca",
"ui.ai_reasoning_effort_hint": "Neobavezno. Šalje se krajnjoj tački kao `reasoning_effort`; prihvaćene vrijednosti razlikuju se od pružaoca do pružaoca (na primjer `low`, `high` ili `max`). SolidCraft nikad ne mijenja vrijednost koju ovdje postavite. Ostavite prazno da se ništa ne šalje i da se zadrži podrazumijevana vrijednost pružaoca.",
"ui.ai_remove": "Ukloni",
"ui.ai_request_timed_out": "Model je trajao duže od {seconds} s. Vremensko ograničenje zahtjeva za ovu krajnju tačku možete povećati u Postavke › Asistent.",
"ui.ai_request_timeout": "Vremensko ograničenje zahtjeva",
"ui.ai_request_timeout_hint": "Koliko dugo jedan zahtjev modelu na ovoj krajnjoj tački smije trajati, od 30 s do jednog sata. Povećajte za spori lokalni model.",
"ui.ai_reset": "Resetuj",
"ui.ai_save": "Sačuvaj",
"ui.ai_settings": "AI postavke…",
"ui.ai_show_features": "Prikaži AI funkcije",
"ui.ai_show_features_note": "Razgovor s agentom: panel u kojem agent za kodiranje koji već koristite ili krajnja tačka modela koju izaberete radi na otvorenom dizajnu. Isključeno: nema AI dugmeta, prečice, stavke menija ni panela, i ništa se ne traži niti pokreće.",
@@ -4057,6 +4437,7 @@
"ui.dark": "Tamna",
"ui.default_modelling_orientation": "Podrazumijevana orijentacija modeliranja",
"ui.delete": "Izbriši",
"ui.delete_select_first": "Prvo izaberite šta želite izbrisati: operacije, tijela, komponente ili geometriju skice",
"ui.depth": "Dubina",
"ui.design": "Dizajn",
"ui.design_properties.author": "Autor",
@@ -4071,6 +4452,40 @@
"ui.design_properties.project": "Projekat",
"ui.design_properties.revision": "Revizija",
"ui.design_saved": "Sačuvano: {path}",
"ui.details_access_caption": "Lica pokazuju može li alat doći do njih iz izabranog smjera.",
"ui.details_angle": "Ugao",
"ui.details_continuity_caption": "Uredite izabrani šav. Ostali šavovi zadržavaju vlastite postavke.",
"ui.details_continuity_stale": "Ranija geometrija: ponovo pokrenite analizu da uredite ili uokvirite ovaj šav.",
"ui.details_copy_list": "Kopiraj popis",
"ui.details_curvature": "Tolerancija zakrivljenosti",
"ui.details_curvature_caption": "Lica su obojena prema svom lokalnom poluprečniku zakrivljenosti.",
"ui.details_direction": "Smjer alata",
"ui.details_draft_caption": "Lica su obojena prema svom uglu u odnosu na smjer vađenja iz kalupa.",
"ui.details_edit_seam": "Uredi šav",
"ui.details_fixture": "Uzorak komponente — samo probni podaci",
"ui.details_fixture_caption": "Uzorak komponente s ilustrativnim vrijednostima; ovo nije rezultat modela.",
"ui.details_fixture_problem": "Primjer nalaza s problemom",
"ui.details_fixture_readout": "Primjer izmjerene vrijednosti",
"ui.details_flip": "Obrni",
"ui.details_gap": "Otvoreni kraj",
"ui.details_hatch": "Šrafiraj presječena lica",
"ui.details_jump": "Skok zakrivljenosti",
"ui.details_key": "Legenda",
"ui.details_offset": "Odmak",
"ui.details_plane": "Ravan",
"ui.details_pull": "Smjer vađenja iz kalupa",
"ui.details_radius": "Poluprečnik",
"ui.details_readout": "Očitanje",
"ui.details_samples": "Uzorci",
"ui.details_seam": "{body} · Ivica {edge}",
"ui.details_settings": "Postavke",
"ui.details_sharp_gap": "Oštro ili otvoreno",
"ui.details_show_all": "Prikaži svih {count}",
"ui.details_smooth": "Glatko",
"ui.details_stripes": "Pruge",
"ui.details_target": "Uokviri geometriju",
"ui.details_worst_seams": "Najgori šavovi",
"ui.details_zebra_caption": "Reflektovane pruge pokazuju koliko se glatko lica spajaju.",
"ui.diameter": "Prečnik",
"ui.dimension": "Kota",
"ui.direct_interaction": "Direktna interakcija",
@@ -4115,6 +4530,7 @@
"ui.edit_in_place_saved_elsewhere": "Dio je sačuvan u drugu datoteku; sklop i dalje povezuje: {name}",
"ui.edit_in_place_wait": "Pričekajte da se završi ono što se izvršava u dizajnu",
"ui.edit_section_analysis": "Uredi analizu presjeka",
"ui.edit_sketch_empty": "Nema skica za uređivanje",
"ui.ellipse": "Elipsa",
"ui.emboss_wrap_note": "Ortogonalni linijski profili koji tangiraju jedan podržani cilindar obavijaju se automatski. Izaberite zid da izaberete cilj.",
"ui.end_radius": "Krajnji poluprečnik",
@@ -4125,12 +4541,15 @@
"ui.equation_explicit": "Eksplicitno",
"ui.equation_form": "Oblik",
"ui.equation_note": "Varijabla je običan broj: sin(t) je uzima u radijanima. Rezultat bez jedinice je u jedinici dizajna.",
"ui.equation_note_range": "Varijabla je dužina, kao i njen raspon: kombinujte je s parametrima dužine, a za sin() je podijelite dužinom. Rezultat bez jedinice je u jedinici dizajna.",
"ui.equation_parametric": "Parametarski",
"ui.equation_variable_unit": "Varijabla ima jedinicu raspona",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Ekvivalentni poluprečnik",
"ui.expand": "Proširi",
"ui.explode_needs_two_components": "Rastavljeni prikaz razdvaja komponente, pa dizajn treba imati dvije ili više njih (Nova komponenta, Umetni dizajn ili Napravi komponente iz tijela)",
"ui.exportDxf": "Izvezi DXF…",
"ui.export_ellipsis_keymap": "Izvezi…",
"ui.export_keymap_tip": "Tipke, favoriti okvira S i traka s alatima, kao datoteka",
@@ -4291,6 +4710,7 @@
"ui.insert_design.saved_file": "{name} ima nesačuvane promjene, pa je umetnuta njegova sačuvana datoteka. Sačuvajte ga, a zatim pokrenite Ažuriraj veze da unesete promjene.",
"ui.insert_design.unsaved": "Nesačuvane promjene",
"ui.inspect": "Pregledaj",
"ui.instances": "Instance",
"ui.intersect": "Presjek",
"ui.isolate": "Izoluj",
"ui.join": "Spoji",
@@ -4299,12 +4719,14 @@
"ui.joints": "Spojevi",
"ui.keyboard_shortcuts": "Prečice na tastaturi",
"ui.language": "Jezik",
"ui.lasso_select": "Laso (povucite petlju slobodnom rukom: uzima sve što je u cijelosti unutra)",
"ui.layout_compact": "Kompaktno",
"ui.layout_floating": "Plutajuće",
"ui.length": "Dužina",
"ui.length_decimals": "Decimale dužine",
"ui.light": "Svijetla",
"ui.line": "Linija",
"ui.line_arc_hint": "Tangentni luk: kliknite kraj luka. Ponovo se zadržite na posljednjoj tački za linije; desni klik ili Esc za završetak",
"ui.link_copies": "Poveži identične kopije",
"ui.link_copies_keep": "Zadrži",
"ui.link_copies_link": "Poveži",
@@ -4393,6 +4815,7 @@
"ui.part_size_shared": "Ponovo gradi dio, zamjenjujući sve dodane operacije. Svi primjerci ove komponente se ažuriraju.",
"ui.paste": "Zalijepi",
"ui.path": "Putanja",
"ui.pattern_object_type_tip": "Tijela: puni oblici, biraju se u prikazu ili u stablu modela; svako se kopira u cijelosti.\nOperacije: koraci vremenske trake, poput ekstruzije ili rupe, biraju se na vremenskoj traci ili na licu koje su napravili; korak se ponavlja.\nSkica nije ni jedno ni drugo: ponovite njene krive pomoću alata Niz ili Preslikaj u samoj skici ili je prvo ekstrudirajte.",
"ui.pattern_on_path": "Niz duž putanje",
"ui.perforate_margin_default": "iz prečnika",
"ui.perforate_pitch": "Korak",
@@ -4419,12 +4842,17 @@
"ui.plugins_skipped": "Foldere nije bilo moguće pročitati: {count}.",
"ui.plugins_version": "{version}",
"ui.point": "Tačka",
"ui.point_cloud_add_filter": "Dodaj filter…",
"ui.point_cloud_auto_range": "Automatski opseg",
"ui.point_cloud_color_by": "Boja prema",
"ui.point_cloud_file_colors": "Boje iz datoteke",
"ui.point_cloud_filter_by": "Filtriraj prema",
"ui.point_cloud_height_high": "Najviše",
"ui.point_cloud_height_low": "Najniže",
"ui.point_cloud_legend_filter": "Prikazano i skriveno u legendi iznad",
"ui.point_cloud_no_file_colors": "Datoteka nema boje",
"ui.point_cloud_pause": "Pauziraj",
"ui.point_cloud_play": "Reprodukuj",
"ui.point_cloud_single_color": "Jedna boja",
"ui.point_cloud_size": "Veličina tačke",
"ui.point_cloud_units": "Jedinice datoteke",
@@ -4433,9 +4861,9 @@
"ui.polygon": "Poligon",
"ui.preferences": "Postavke",
"ui.press_a_key": "pritisnite tipku…",
"ui.print_face_body_not_sent": "Tijelo te površine se ne šalje: prvo ga dodajte u Tijela",
"ui.print_face_cleared": "{body}: površina za štampu uklonjena",
"ui.print_face_input": "Površina za štampu",
"ui.print_face_one_body": "Površina za štampu pripada jednom tijelu: pošaljite to tijelo samo da biste je promijenili",
"ui.print_face_pick": "Odaberite ravnu površinu punog tijela da postane površina za štampu",
"ui.print_face_set": "{body}: površina za štampu postavljena; Pošalji u slajser polaže tijelo na nju",
"ui.profile": "Profil",
@@ -4453,6 +4881,7 @@
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Mjerenje…",
"ui.properties.measuring_bodies": "Mjerenje… {done} od {total} tijela",
"ui.properties.measuring_failed": "Mjerenje je zaustavljeno prije završetka.",
"ui.properties.principal_axis": "Glavna osa {number}",
"ui.properties.principal_moments": "Glavni momenti",
@@ -4520,6 +4949,7 @@
"ui.selectOther": "Izaberi drugo…",
"ui.selectTangentChain": "Izaberi tangentni lanac",
"ui.select_all": "Izaberi sve",
"ui.select_components_by_face": "Izaberi komponente (lice bira svoju komponentu)",
"ui.selection": "Izbor",
"ui.selection_modifiers": "Modifikatori izbora",
"ui.selection_shift_add_only": "Shift+klik dodaje bez uklanjanja",
@@ -4561,6 +4991,11 @@
"ui.sketch_intersect_selection_filter": "Filter izbora",
"ui.sketch_modifiers": "Modifikatori skice",
"ui.sketch_project_geometry": "Geometrija",
"ui.sketch_report.all_constrained": "Sve je potpuno ograničeno.",
"ui.sketch_report.dof": "Stepeni slobode",
"ui.sketch_report.loose": "Nije potpuno ograničeno",
"ui.sketch_report.status": "Status",
"ui.sketch_report.title": "Izvještaj o skici",
"ui.sketch_scale": "Skaliranje skice",
"ui.sketches": "Skice",
"ui.slice": "Presijeci",
@@ -4656,12 +5091,15 @@
"ui.view_angles": "Uglovi prikaza",
"ui.view_angles_convention": "Stepeni oko ose prema gore. Skretanje 0° je pogled sprijeda, 90° slijeva, −90° zdesna, 180° straga; nagib 90° je pogled odozgo; pozitivno valjanje okreće model u smjeru kazaljke na satu.",
"ui.view_angles_help": "Prikazuje nagib, skretanje i valjanje prikaza u stepenima i njegovu projekciju ispod alata za orijentaciju. Kliknite očitanje da upišete tačne uglove.",
"ui.view_angles_lock": "Zaključaj {axis}",
"ui.view_angles_ortho": "Ortogr.",
"ui.view_angles_persp": "Persp.",
"ui.view_angles_pitch": "Nagib",
"ui.view_angles_readout": "Nagib {pitch} · Skretanje {yaw} · Valjanje {roll}",
"ui.view_angles_roll": "Valjanje",
"ui.view_angles_unlock": "Otključaj {axis}",
"ui.view_angles_yaw": "Skretanje",
"ui.view_angles_zero": "Postavi {axis} na 0°",
"ui.view_centre": "Centar prikaza",
"ui.viewport_status_clear": "Isključi: {name}",
"ui.viewport_status_clear_hint": "Isključi: {name} · Esc",
@@ -4670,7 +5108,14 @@
"ui.viewport_status_key": "Prikaži legendu: {name}",
"ui.viewport_status_minimum_radius": "Minimalni poluprečnik",
"ui.viewport_status_pairs": "Parovi: {count}",
"ui.viewport_status_section_hatch": "{setting} · šrafura",
"ui.viewport_status_section_plane": "Trenutna ravan",
"ui.viewport_status_section_tilted": "nagnuto · {offset}",
"ui.viewport_status_stripes": "Pruge: {count}",
"ui.viewport_status_summary_clear": "Isključi sve",
"ui.viewport_status_summary_heading": "U ovom prikazu",
"ui.viewport_status_summary_label": "{name} i još stavki: {count}",
"ui.viewport_status_summary_more": "+{count}",
"ui.viewport_theme_follow": "Prati temu",
"ui.visual_shaded_hidden_edges": "Osjenčeno sa skrivenim ivicama",
"ui.visual_shaded_with_edges": "Osjenčeno s ivicama",
+446 -1
View File
@@ -60,6 +60,7 @@
"BLEND SURFACE": "PŘECHODOVÁ PLOCHA",
"BOUNDARY SURFACE": "PLOCHA Z HRANIC",
"BROWSER": "PROHLÍŽEČ",
"Back to the original order": "Zpět na původní pořadí",
"Ball": "Kulový",
"Bar": "Tyč",
"Base Center": "Střed základny",
@@ -595,6 +596,8 @@
"Snap to face and edge centres": "Přichytávat ke středům ploch a hran",
"SolidCraft cannot submit reports directly. Submit on GitHub; no token is needed in the app.": "SolidCraft nemůže odesílat hlášení přímo. Odešlete je na GitHubu; v aplikaci není potřeba žádný token.",
"SolidCraft closed before these designs were saved. Their last autosave can be opened.": "SolidCraft se zavřel dříve, než se tyto návrhy uložily. Lze otevřít jejich poslední automatické uložení.",
"Sort A to Z": "Seřadit od A do Z",
"Sort Z to A": "Seřadit od Z do A",
"Spacing 2 must be a non-zero number": "Rozteč 2 musí být nenulové číslo",
"Spacing must be a non-zero number": "Rozteč musí být nenulové číslo",
"Specialise": "Specializovat",
@@ -790,6 +793,13 @@
"browser.sketch_attachment_lost": "{name} (uchycení ztraceno)",
"browser.sketch_editing": "{name} (upravuje se)",
"browser.sketch_name": "Náčrt{number}",
"browser.sketches_to_parts_already_in_part": "už jsou ve svém dílu",
"browser.sketches_to_parts_design_body": "leží na tělese samotného návrhu",
"browser.sketches_to_parts_moved": "Přesunuto náčrtů do dílu, na kterém leží: {moved}",
"browser.sketches_to_parts_no_exact_attachment": "leží na ploše bez přesného připojení",
"browser.sketches_to_parts_not_on_face": "neleží na ploše dílu",
"browser.sketches_to_parts_part_missing": "jejich díl už neexistuje",
"browser.sketches_to_parts_result": "Přesunuto náčrtů do dílu, na kterém leží: {moved}; na místě zůstalo: {stayed} — {why}",
"browser.units": "Jednotky: {units}",
"cam.flat": "Ploché čelo",
"cam.follower": "Zdvihátko",
@@ -819,6 +829,7 @@
"cmd.appearance_pick_up": "Převzít vzhled",
"cmd.appearance_replace": "Nahradit vzhled",
"cmd.assembly_bom": "Kusovník",
"cmd.assembly_mass_properties": "Hmotnostní vlastnosti",
"cmd.body.print_face": "Tisková plocha",
"cmd.body_rename": "Přejmenovat těleso",
"cmd.browser_collapse_all": "Sbalit vše",
@@ -856,6 +867,7 @@
"cmd.component_move_bodies": "Přesunout tělesa do komponenty",
"cmd.component_move_features": "Přesunout prvky do komponenty",
"cmd.component_move_sketches": "Přesunout náčrty do komponenty",
"cmd.component_move_sketches_to_parts": "Přesunout náčrty do jejich dílů",
"cmd.component_paste_from_design": "Vložit z jiného návrhu",
"cmd.component_paste_new": "Vložit jako nové",
"cmd.component_properties": "Fyzikální vlastnosti komponenty",
@@ -1191,6 +1203,7 @@
"cmd.sketch_spline_control_point_5": "Splajn řídicími body (stupeň 5)",
"cmd.sketch_spline_fit_point": "Splajn procházející body",
"cmd.sketch_spline_insert_point": "Přidat bod splajnu",
"cmd.sketch_spline_remove_point": "Odebrat bod splajnu",
"cmd.sketch_spline_reverse": "Obrátit směr splajnu",
"cmd.sketch_spun_profile": "Rotační obrys",
"cmd.sketch_toggle_diameter": "Přepnout poloměr / průměr",
@@ -1244,6 +1257,7 @@
"cmd.view.render_browser": "Prohlížeč renderu",
"cmd.view.render_dock": "Přesunout panel renderu",
"cmd.view.render_focus": "Soustředěný pohled na render",
"cmd.view.status_details": "Podrobnosti stavu pohledu",
"cmd.view.status_items": "Stavové položky pohledu",
"cmd.view_ambient_occlusion": "Okolní zastínění",
"cmd.view_angle_readout": "Úhly pohledu",
@@ -1282,8 +1296,14 @@
"color.hex_hint": "#rrggbb",
"color.hue": "Odstín",
"color.linear": "Hodnoty barvy v lineárním prostoru 0–1",
"color.recent": "Nedávné barvy",
"color.recent_help": "Barvy, které vyberete v libovolném poli barvy, se zobrazí zde",
"color.saturation": "Sytost (v procentech)",
"color.saturation_value": "Sytost a jas",
"color.selected": "Vybraná barva",
"color.step_down": "Snížit o krok",
"color.step_up": "Zvýšit o krok",
"color.value": "Hodnota, tedy jas (v procentech)",
"config.column_filter_empty": "Žádné odpovídající sloupce",
"contact.components_count": "Počet komponent: {count}",
"contact.enabled_label": "povoleno",
@@ -1330,6 +1350,7 @@
"dialog.dimension_name": "Kóta: {name}",
"dialog.edit_title": "UPRAVIT {title}",
"dialog.no_shown_body": "Není zobrazeno žádné těleso ke změně: zobrazte nějaké nebo zvolte Nové těleso",
"dialog.pattern_sketch_not_object": "Vyberte tělesa nebo prvky: náčrt není ani jedno. Opakujte jeho křivky vlastním nástrojem Pole nebo Zrcadlit v náčrtu, nebo jej nejprve vysuňte.",
"dialog.select": "↖ Vybrat",
"dialog.selected_count": "↖ Vybráno: {count}",
"dialog.selection_guidance": "Vstup změníte jeho výběrem. Kliknutím na vybraný objekt jej odeberete; Ctrl/Cmd+klik výběr také přepíná. Zkontrolujte náhled a stiskněte OK.",
@@ -1387,21 +1408,168 @@
"from the rule": "z pravidla",
"help.apache": "Licence Apache 2.0",
"help.appearance.assign": "Přiřadí vybraným tělesům, plochám nebo komponentám barvu nebo vzhled materiálu, aniž by se změnila jejich hmotnost. Hodí se k rozlišení dílů nebo k náhledu povrchové úpravy.",
"help.assembly.bom": "Vypíše díly návrhu nebo komponenty s jejich počty podle čísla dílu a může seznam uložit jako CSV nebo JSON. Použijte ho jako soupis dílů pro objednávání a montáž.",
"help.attributions": "Uvedení autorství (ATTRIBUTION.md)",
"help.build": "Verze {version} · commit {commit} · sestaveno {date}",
"help.canvas.decal": "Umístí obrázek na rovinnou plochu modelu jako nálepku. Hodí se k zobrazení štítku, loga nebo potištěného vzoru na dílu.",
"help.canvas.edit": "Změní plátno: jeho polohu, velikost, úhel, neprůhlednost, zrcadlení, viditelnost nebo název. Hodí se k zarovnání referenčního obrázku s náčrtem, který podle něj obkreslujete.",
"help.canvas.insert": "Umístí obrázek PNG nebo JPEG na rovinu nebo plochu jako průhlednou referenci. Hodí se k obkreslení fotografie nebo výkresu v náčrtu, přičemž obrázek má zadanou známou velikost.",
"help.component.break_link": "Odpojí propojenou komponentu od souboru návrhu a ponechá její tělesa beze změny. Použijte to, když už má díl přestat sledovat změny původního souboru.",
"help.component.capture_position": "Zachová polohy dílů, které jste přesunuli ručně, takže se stanou jejich novými polohami. Použijte to po přetažení dílů na místa, kde je žádný kloub nedrží.",
"help.component.create": "Přidá do návrhu novou prázdnou komponentu, a to do aktivní komponenty, pokud nezvolíte jinou nadřazenou. Použijte to, aby nový díl sestavy měl vlastní místo pro tělesa a náčrty.",
"help.component.finish_edit": "Uloží díl upravovaný na místě, vrátí se do jeho sestavy a aktualizuje sestavu podle něj. Použijte ho, až jsou vaše změny propojeného dílu hotové.",
"help.component.from_bodies": "Změní každé vybrané těleso na samostatnou komponentu pojmenovanou podle tělesa. Použijte to, když se návrh vytvořený z volných těles má stát sestavou, jejíž díly lze spojovat a přesouvat.",
"help.component.insert_design": "Vloží jiný uložený návrh jako komponentu propojenou s jeho souborem, s tělesy umístěnými tak, jak jsou v něm. Použijte to k opětovnému použití dílu v sestavě a k převzetí pozdějších změn příkazem Aktualizovat odkazy.",
"help.component.properties": "Zobrazí objem, hmotnost, těžiště a momenty setrvačnosti komponenty podle materiálů jejích těles. Použijte to ke kontrole hmotnosti a vyvážení sestavy.",
"help.component.revert_position": "Vrátí ručně přesunuté díly na původní místo a zahodí přesuny, které nebyly zachyceny. Použijte to k vrácení zkušebních přesunů v sestavě.",
"help.component.update_links": "Znovu načte propojené soubory návrhů a nahradí tělesa, která se změnila. Použijte to po úpravě dílu, který tato sestava používá.",
"help.config.configure": "Přidá parametry, prvky, materiály nebo vzhledy jako sloupce tabulky konfigurací. Použijte to k vytvoření variant jednoho návrhu, například velikostí dílu.",
"help.config.preview": "Ověří, že se řádek tabulky konfigurací přestaví, aniž by změnil návrh nebo jeho historii. Použijte to před přepnutím na variantu, u které si nejste jisti.",
"help.config.rules": "Zobrazí pravidla tabulky konfigurací, její řádky a to, který řádek je aktivní. Použijte to, abyste viděli, jak jsou varianty návrhu nastaveny.",
"help.config.table": "Zobrazí tabulku konfigurací: jeden řádek na variantu, jeden sloupec na parametr nebo prvek a informaci, zda návrh stále odpovídá aktivnímu řádku. Použijte to ke kontrole variant návrhu.",
"help.connect_note": "Restartujte každého asistenta, aby se načetl server SolidCraft. Každý soubor byl před změnou zálohován jako .bak.",
"help.connect_title": "Připojit AI asistenty",
"help.construct.axis.edge": "Vytvoří konstrukční osu podél přímé hrany nebo úsečky náčrtu. Použijte ji jako osu pro rotaci, kruhové pole nebo kloub.",
"help.construct.axis.normal_to_face": "Vytvoří konstrukční osu procházející bodem a kolmou k ploše. Použijte ji jako osu, která vychází přímo z povrchu.",
"help.construct.axis.through_cylinder": "Vytvoří konstrukční osu středem válcové, kuželové nebo anuloidní plochy, nebo kruhové hrany. Použijte to k otáčení prvků nebo jejich rozmístění v poli kolem kulatého dílu.",
"help.construct.axis.two_planes": "Vytvoří konstrukční osu tam, kde se protínají dvě roviny nebo rovinné plochy. Použijte to, když je potřebná osa průsečnicí dvou ploch.",
"help.construct.axis.two_points": "Vytvoří konstrukční osu procházející dvěma body, vrcholy nebo body náčrtu. Použijte ji pro osu vedoucí mezi dvěma známými polohami.",
"help.construct.plane.along_path": "Vytvoří konstrukční rovinu kolmou k hraně nebo křivce v zadané poloze podél ní. Použijte to k náčrtu profilu pro tažení nebo příčného řezu podél cesty.",
"help.construct.plane.at_angle": "Vytvoří konstrukční rovinu natočenou o úhel od roviny nebo plochy kolem osy nebo hrany. Použijte ji pro šikmé náčrty, například u úhlového držáku.",
"help.construct.plane.midplane": "Vytvoří konstrukční rovinu uprostřed mezi dvěma rovinami nebo rovinnými plochami, nebo rovinu půlící jejich úhel, když se protínají pod úhlem. Použijte ji jako rovinu souměrnosti pro zrcadlení.",
"help.construct.plane.offset": "Vytvoří konstrukční rovinu rovnoběžnou s rovinou nebo rovinnou plochou ve zvolené vzdálenosti nebo procházející bodem. Použijte ji k náčrtu v dané výšce nad plochou.",
"help.construct.plane.perpendicular": "Vytvoří konstrukční rovinu, která obsahuje přímku nebo hranu a je kolmá k rovině nebo ploše. Použijte ji k náčrtu kolmo na model podél hrany.",
"help.construct.plane.tangent": "Vytvoří konstrukční rovinu, která se v bodě dotýká válce, kužele, koule nebo anuloidu. Použijte ji k náčrtu na boku kulatého dílu.",
"help.construct.plane.three_points": "Vytvoří konstrukční rovinu procházející třemi body. Použijte ji pro rovinu danou polohami na modelu, například třemi rohy.",
"help.construct.plane.two_edges": "Vytvoří konstrukční rovinu procházející dvěma přímými hranami nebo úsečkami, které leží v jedné rovině. Použijte ji pro rovinu napříč dílem, například vedenou dvěma protilehlými hranami.",
"help.construct.point.along_path": "Vytvoří konstrukční bod v zadané poloze podél hrany nebo křivky. Použijte ho jako referenci někde uprostřed cesty.",
"help.construct.point.center": "Vytvoří konstrukční bod ve středu kruhové hrany, kružnice nebo oblouku náčrtu, koule nebo anuloidu. Použijte ho jako referenci pro otvory, osy a klouby.",
"help.construct.point.edge_plane": "Vytvoří konstrukční bod tam, kde hrana nebo úsečka prochází rovinou nebo rovinnou plochou. Použijte ho k označení místa, kde cesta protíná rovinu.",
"help.construct.point.three_planes": "Vytvoří konstrukční bod tam, kde se protínají tři roviny nebo rovinné plochy. Použijte ho jako referenci rohu i tam, kde model žádný vrchol nemá.",
"help.construct.point.two_edges": "Vytvoří konstrukční bod tam, kde se dvě hrany nebo úsečky protínají nebo si jsou nejblíže. Použijte ho jako referenci ve virtuálním rohu.",
"help.construct.point.vertex": "Vytvoří konstrukční bod ve vrcholu nebo v bodě náčrtu. Použijte ho jako referenci, která zůstane, i když se náčrt nebo těleso kolem něj skryje.",
"help.contact.check": "Vypíše dvojice dílů v sadách kontaktů, které se v aktuální poloze navzájem prostupují. Použijte to k nalezení kolizí dříve, než začnete pohánět klouby nebo spustíte studii pohybu.",
"help.contact.create": "Seskupí dva nebo více dílů do sady kontaktů, jejíž tělesa se při pohybu kloubů nesmějí prostupovat. Použijte to pro díly, které se mají při dotyku zastavit, například páku o její zarážku.",
"help.contact.disable_all": "Vypne kontakt, takže poháněné klouby a studie pohybu se už nezastavují tam, kde se díly dotýkají. Použijte to, aby se díly zase mohly pohybovat volně, nebo aby velká sestava zůstala svižná.",
"help.contact.edit": "Změní sadu kontaktů: díly v ní, její název nebo zda je potlačená; sadu lze také smazat. Použijte to k úpravě toho, které díly se nesmějí prostupovat.",
"help.contact.enable_all": "Vloží všechny díly sestavy do jedné sady kontaktů, takže se žádné dva díly nemohou při pohybu kloubů prostupovat. Použijte to pro rychlou kontrolu celého mechanismu.",
"help.contact.enable_sets": "Zapne kontakt pro vámi definované sady kontaktů, takže poháněné klouby a studie pohybu se zastaví tam, kde by se jejich díly prostoupily. Použijte to k obnovení svých sad po vypnutí kontaktu.",
"help.contact.list": "Vypíše sady kontaktů návrhu, díly v každé z nich a informaci, zda je kontakt zapnutý. Použijte to ke kontrole nastavení kontaktu před poháněním sestavy.",
"help.document.inspect": "Zobrazí přehled návrhu: jeho komponenty, tělesa, náčrty, prvky a parametry. Použijte to, abyste se zorientovali v návrhu, který jste nevytvořili sami.",
"help.document.units": "Změní jednotky, ve kterých návrh zobrazuje délky, například mm nebo palce. Geometrie si zachová velikost; řídí se jimi jen zobrazení a holá čísla.",
"help.edit.checkpoint": "Zapamatuje si návrh, aktivní náčrt a historii vrácení zpět tak, jak jsou nyní. Použijte to před zkoušením něčeho riskantního, od čeho se možná budete chtít vrátit.",
"help.edit.restore_checkpoint": "Vrátí se ke kontrolnímu bodu, včetně historie vrácení zpět. Použijte to k zahození všeho, co se od kontrolního bodu udělalo, jedním krokem.",
"help.explode.create": "Vytvoří rozložený pohled, který odsune díly od středu sestavy nebo o zadané posuny. Použijte to k ukázce, jak se sestava skládá, pro návody nebo prezentace.",
"help.face.delete": "Odstraní vybrané plochy a nechá sousední plochy uzavřít mezeru, nebo mezeru ponechá otevřenou jako plochu. Hodí se k odstranění zaoblené hrany, otvoru nebo nálitku, které překážejí.",
"help.file.insert_mesh": "Přidá soubor 3MF, STL, OBJ, PLY nebo glTF do návrhu jako síťová tělesa v nové komponentě. Použijte to k umístění staženého nebo naskenovaného modelu vedle návrhu jako reference.",
"help.file.insert_step": "Přidá soubor STEP, IGES, FreeCAD nebo Rhino do návrhu jako plná tělesa v nové komponentě; díly sestavy se stanou vnořenými komponentami. Použijte to k převzetí modelů od dodavatelů nebo z jiných CAD programů.",
"help.file.save_mesh": "Uloží tělesa jako síť STL, 3MF nebo OBJ s vámi zvolenou hladkostí zakřivených ploch. Použijte to k přípravě dílů pro 3D tisk nebo pro programy, které čtou sítě.",
"help.file.send_to_slicer": "Uloží vybraná tělesa jako soubor 3MF a otevře jej ve zvoleném sliceru. Použijte to k přechodu od modelu k tisku jedním krokem.",
"help.font_details": "Rozhraní používá vestavěná písma egui (Ubuntu Light a Hack pod licencemi Ubuntu Font Licence a MIT/Bitstream Vera; Noto Emoji a písmo ikon emoji pod licencemi OFL a MIT). Text náčrtu používá Liberation Sans (SIL OFL 1.1). Volitelný balíček písem craft-fonts od The Crafting Apps (BIZ UDPGothic, Shippori Mincho, BIZ UDMincho, Noto Sans CJK SC, Noto Sans Arabic; SIL OFL 1.1) není součástí sestavení SolidCraft.",
"help.fonts": "Písma",
"help.frame.member": "Umístí profil, například trubku nebo hliníkový profil, podél úseček náčrtu rámu, jeden prvek na každou úsečku. Použijte to k vytváření rámů, regálů a svařovaných konstrukcí.",
"help.inspect.accessibility": "Obarví plochy, ke kterým se nástroj dostane z jednoho směru, a ty, ke kterým ne. Použijte to ke kontrole dílu pro obrábění nebo lisování z této strany.",
"help.inspect.center_of_mass": "Zobrazí těžiště těles, každého zvlášť i všech dohromady, při rovnoměrné hustotě. Použijte to ke kontrole vyvážení a místa, kde se díl převrátí.",
"help.inspect.colored_components": "Dá každé komponentě vlastní dočasnou barvu, aniž by změnil vzhledy. Použijte to k rychlému rozlišení dílů sestavy.",
"help.inspect.compare": "Porovná dvě tělesa a ukáže, kde jedno má materiál, který druhé nemá, s objemem a odchylkou. Použijte to ke kontrole změněného nebo importovaného dílu proti originálu.",
"help.inspect.continuity": "Zkontroluje, jak hladce plochy navazují podél hran: mezery, zlomy nebo skoky křivosti, a spoje obarví. Použijte to k nalezení míst, kde se povrchy nespojují čistě.",
"help.inspect.curvature_comb": "Nakreslí hřebeny podél křivek, hran nebo ploch, jejichž zuby ukazují, jak silně se ohýbají. Použijte to k odhalení plochých míst, zlomů a nerovnoměrné křivosti.",
"help.inspect.curvature_map": "Obarví plochy podle toho, jak silně jsou zakřivené, červeně tam, kde je poloměr malý. Použijte to k nalezení těsných míst a k posouzení hladkosti povrchu.",
"help.inspect.draft": "Obarví plochy podle jejich úhlu úkosu vůči směru vyjímání a označí ty s příliš malým úkosem. Použijte to ke kontrole dílu před lisováním nebo odléváním.",
"help.inspect.environment_map": "Zobrazí model s odrazivým, zrcadlovým povrchem. Použijte to k posouzení průběhu ploch podle toho, jak po nich probíhají odrazy.",
"help.inspect.interference": "Najde tělesa, která se překrývají, a ukáže každé překrytí s jeho objemem. Použijte to ke kontrole sestavy, zda v ní nejsou kolidující díly.",
"help.inspect.isocurve": "Nakreslí izoparametrické křivky ploch, tedy mřížku, na které je povrch postaven. Použijte to k zobrazení toho, jak povrch plyne a kde se zhušťuje.",
"help.inspect.measure": "Změří délky, vzdálenosti, úhly, obsahy a poloměry mezi vybranými objekty, nebo objem a hmotnost těles. Použijte to ke kontrole rozměrů a vůlí.",
"help.inspect.minimum_radius": "Najde nejmenší poloměr křivosti křivek, hran nebo ploch a místo, kde se nachází. Použijte to ke kontrole, zda tvar dokáže sledovat nástroj nebo tryska.",
"help.inspect.section": "Rozřízne pohled podél roviny a vyšrafuje řezné plochy, aniž by změnil model. Použijte to k nahlédnutí dovnitř dílů a sestav.",
"help.inspect.zebra": "Zobrazí na plochách modelu odražené černobílé pruhy. Použijte to k posouzení hladkosti: pruhy, které se na hraně přeruší nebo zlomí, ukazují špatný přechod.",
"help.joint.as_built": "Spojí dva díly tam, kde už jsou, aniž by některý přesunul, a nastaví, jak se mohou dál pohybovat. Použijte to pro díly, které jste už umístili do konečné polohy.",
"help.joint.cam": "Spojí otáčející se vačku se zdvihátkem, které se posouvá nebo kývá podle toho, jak pod ním prochází obrys vačky. Použijte to pro vačky, excentry a rozvody ventilů.",
"help.joint.create": "Spojí dva díly ve zvolených počátcích kloubu a přesune druhý díl na místo; typ kloubu určuje, jak se mohou dál pohybovat. Použijte to k sestavení sestavy, jejíž díly se pohybují jako skutečný mechanismus.",
"help.joint.drive": "Nastaví úhel nebo vzdálenost kloubu a pohne s ním díly v rámci jeho limitů; propojené klouby a uzavřené smyčky ho následují. Použijte to ke kontrole, zda se mechanismus pohybuje, jak má.",
"help.joint.gear": "Spojí dva otáčející se klouby převodovým poměrem, takže pohon jednoho otáčí druhým. Použijte to pro čelní a vnitřní ozubená kola; poměr se vezme z poloměrů roztečných kružnic nebo z počtu zubů.",
"help.joint.limits": "Nastaví, jak daleko se kloub smí otočit nebo posunout, jako minimum a maximum, nebo tyto limity zruší. Použijte to, aby závěs, posuvný člen nebo páka zůstaly ve svém skutečném rozsahu pohybu.",
"help.joint.motion_link": "Spojí dva klouby poměrem a posunutím, takže pohon jednoho pohne druhým. Použijte to pro pevný vztah mezi klouby, který nepokrývají Ozubený převod, Hřeben a pastorek ani Šroubový pohyb.",
"help.joint.origin": "Umístí na díl pojmenovaný počátek kloubu: do středu plochy nebo kulatého konce, do poloviny hrany, do rohu nebo do bodu. Použijte to k přípravě míst, kde se klouby upevní; počátek zvolený na ploše ji sleduje, když se díl změní co do velikosti.",
"help.joint.rack_pinion": "Spojí otáčející se pastorek s posuvným hřebenem tak, že se hřeben posune o délku roztečné kružnice, po které se pastorek odvalí. Použijte to pro hřebenové pohony, řízení a lineární stolky.",
"help.joint.reach": "Přesune bod na dílu k cíli změnou kloubů na jeho řetězci v rámci jejich limitů. Použijte to k nastavení polohy mechanismu podle toho, kde má být jeho konec, například hrot ramene robota.",
"help.joint.rigid_group": "Pevně spojí vybrané díly tak, jak jsou, takže se pohybují jako jeden. Použijte to pro díly, které k sobě patří a nemají mezi sebou žádný pohyb.",
"help.joint.screw": "Spojí otáčení a posuv stoupáním, takže každé otočení posune díl o tuto vzdálenost. Použijte to pro pohybové šrouby, šrouby a závitová vřetena.",
"help.library.apply": "Použije materiál nebo vzhled ze souboru místní knihovny na tělesa, plochy nebo komponenty. Použijte to k opětovnému použití materiálů uložených z jiného návrhu.",
"help.library.export": "Uloží materiály a vzhledy návrhu do souboru knihovny. Použijte to ke sdílení nebo k jejich opětovnému použití v jiných návrzích.",
"help.library.inspect": "Zkontroluje soubor knihovny a vypíše jeho materiály a vzhledy, aniž by změnil návrh. Použijte to, abyste před použitím viděli, co knihovna obsahuje.",
"help.licences": "Licence",
"help.material.assign": "Určí, z čeho jsou vybraná tělesa vyrobena, například z oceli, hliníku nebo ABS. Hodí se k tomu, aby hmotnost a tíha odpovídaly skutečnému dílu.",
"help.material.properties.validate": "Zkontroluje kartu dat materiálu na shodu čísel a chybějící hodnoty. Použijte to dříve, než se na data spolehnete při výpočtu hmotnosti nebo tuhosti.",
"help.mesh.convert": "Přestaví síťové těleso, například STL, na upravitelné plné těleso s rovinnými a válcovými plochami. Použijte to k úpravě importovaných strojních dílů jako modelovaného tělesa.",
"help.mit": "Licence MIT",
"help.motion.study": "Nastaví hodnoty kloubů v krocích na časové ose a přehraje je jako animaci. Použijte to ke sledování pohybu mechanismu v posloupnosti a ke kontrole vůlí po cestě.",
"help.motion.trace": "Sleduje dráhu, kterou opisuje bod na dílu při přehrávání studie pohybu nebo při poháněném kloubu, a po potvrzení ji uloží jako křivku 3D náčrtu. Použijte to k zobrazení dosahu mechanismu nebo k vytváření dalších prvků na jeho dráze.",
"help.notice": "NOTICE",
"help.occurrence.ground": "Ukotví díl na místě, nebo ho znovu uvolní, aby klouby pohybovaly ostatními díly kolem něj. Použijte to pro rám nebo základnu, na které je zbytek sestavy postaven.",
"help.occurrence.move": "Posouvá díl sestavy jen v těch stupních volnosti, které povolují jeho klouby. Vyberte plochu dílu a pak táhněte za dostupnou šipku nebo oblouk.",
"help.parameters.change": "Otevře tabulku pojmenovaných hodnot a výrazů, které řídí rozměry návrhu. Hodí se ke změně rozměru na jednom místě, kterou převezmou všechny prvky, jež jej používají.",
"help.parameters.export": "Uloží parametry návrhu jako CSV nebo JSON. Použijte to k jejich úpravě v tabulkovém procesoru nebo k přenosu do jiného návrhu.",
"help.parameters.graph": "Ukáže, které parametry a prvky používají které jiné, a případné smyčky nebo chyby mezi nimi. Použijte to, abyste viděli, co změna parametru ovlivní.",
"help.parameters.import": "Načte parametry z CSV nebo JSON do návrhu, buď všechny, nebo žádný z nich. Použijte to k převzetí hodnot z tabulky nebo jiného návrhu.",
"help.parameters.move": "Přesune uživatelský parametr před jiný nebo za jiný v seznamu. Použijte to, aby související parametry zůstaly pohromadě.",
"help.parts.fastener": "Přidá normalizovaný šroub, svorník, matici, podložku, kolík nebo ložisko ve zvolené velikosti. Po umístění na otvor se do něj pomocí kloubu usadí, takže spojovací prvky nemusíte modelovat sami.",
"help.parts.insert": "Vloží normalizovaný díl ve zvolené řadě, velikosti a délce. Po umístění na okraj nebo stěnu otvoru se na otvor usadí pevným kloubem.",
"help.parts.library": "Otevře normalizované díly: šrouby, svorníky, matice, podložky, stavěcí šrouby, kolíky a ložiska v normalizovaných velikostech. Použijte to k přidání normalizovaného dílu místo jeho vlastního modelování.",
"help.parts.resize": "Změní velikost nebo délku vloženého normalizovaného dílu a přestaví jej; jeho klouby ho drží usazený. Použijte to, když se ukáže, že je šroub příliš dlouhý nebo že otvor potřebuje jinou velikost.",
"help.plastic.assign_rule": "Přiřadí tělesům pravidlo pro plasty, takže jejich plastové prvky přebírají jeho úkos a vůli jako výchozí hodnoty. Použijte to k nastavení lisovaného dílu jednou pro všechny jeho prvky.",
"help.plastic.boss": "Přidá na plochu nálitek pro šroub: sloupek s volitelným otvorem, úkosem, zaoblením u paty a podpůrnými žebry. Použijte to pro šroubové body v lisovaných nebo tištěných krytech.",
"help.plastic.lip": "Přidá osazení nebo odpovídající drážku podél okraje tělesa vytvořeného skořepinou. Použijte to, aby se dvě poloviny krytu navzájem zaměřily a těsně se zavřely.",
"help.plastic.manage_rules": "Vytvoří a upraví pravidla pro plasty: materiál, tloušťku stěny, poloměry, vůli a úkos. Použijte je k tomu, aby prvky lisovaného dílu byly jednotné.",
"help.plastic.rest": "Přidá na plochu opěrku: kulatou nebo obdélníkovou podložku, plnou nebo dutou, s úkosem. Použijte ji jako podporu nebo distanční sloupek v lisovaném krytu.",
"help.plastic.snap_fit": "Přidá na plochu zacvakávací hák se zadanou délkou, tloušťkou a západkou. Použijte to k sepnutí dílů bez šroubů.",
"help.pointcloud.insert": "Vložte sken PLY, XYZ nebo PTS jako mračno bodů vedle modelu. Použijte ho jako referenci při tvorbě modelu z naměřených dat.",
"help.sheet.convert": "Změní desku nebo těleso se skořepinou stejné tloušťky na plechové těleso s ohyby na zvolených hranách. Použijte to, aby šel existující díl rozvinout.",
"help.sheet.export_bend_table": "Uloží tabulku ohybů plechového tělesa jako CSV nebo JSON: úhly, poloměry a polohy ohybů v rozvinu. Použijte to pro ohraňovací lis nebo dílnu.",
"help.sheet.export_dxf": "Uloží rozvin jako DXF s obrysy, čarami ohybů a volitelnými poznámkami k ohybům. Použijte to pro řezání laserem, plazmou nebo vodním paprskem.",
"help.sheet.flange": "Přidá přírubu: základní desku z náčrtu, stěnu podél otevřené kontury náčrtu nebo ohnutou stěnu na hranách plechu. Použijte to k vytváření plechových dílů.",
"help.sheet.flat_pattern": "Vytvoří rozvin plechového tělesa s jeho velikostí, výřezy a čárami ohybů. Použijte to ke kontrole polotovaru před řezáním.",
"help.sheet.fold": "Ohne plech podél úsečky náčrtu o zadaný úhel a poloměr. Použijte to k ohnutí plochého plechu poté, co do něj vyřežete prvky.",
"help.sheet.hem": "Přehne okraj plechu zpět na sebe. Použijte to pro bezpečné, tuhé okraje bez ostrých otřepů.",
"help.sheet.manage_rules": "Vytvoří a upraví pravidla pro plech: tloušťku, poloměr ohybu, K-faktor, odlehčení a mezery. Použijte je, aby odpovídala materiálu a nástrojům vaší dílny.",
"help.sheet.path_flange": "Přidá řetěz přírub podél hrany plechu podle otevřeného řetězce úseček náčrtu. Použijte to pro profily, například tvar U nebo Z, jedním krokem.",
"help.sheet.perforate": "Přidá pole otvorů přes celý plochý plech ve střídavém nebo čtvercovém rozložení. Použijte to pro větrací otvory, mřížky a odlehčené panely.",
"help.sheet.refold": "Znovu ohne rozvinuté plechové těleso zpět. Použijte to po přidání prvků do plochého plechu.",
"help.sheet.unfold": "Rozvine všechny ohyby plechového tělesa. Použijte to k přidání otvorů nebo výřezů, které musí překračovat ohyb, a pak plech znovu ohněte.",
"help.sketch.arc.center_point": "Nakreslí kruhový oblouk kolem středu, od počátečního bodu ke koncovému. Použijte to, když je střed oblouku známý, například poloměr kolem otvoru nebo čepu.",
"help.sketch.arc.tangent": "Nakreslí oblouk, který začíná na konci úsečky nebo oblouku a pokračuje tečně k němu. Použijte to k pokračování řetězce hladkým ohybem místo rohu.",
"help.sketch.arc.three_point": "Nakreslí oblouk od počátečního bodu ke koncovému přes třetí bod. Použijte to, když oblouk musí procházet zadanými body, a ne kolem známého středu.",
"help.sketch.arc3d": "Nakreslí přesný kruhový oblouk v prostoru třemi body, se zapnutým 3D náčrtem. Použijte to pro ohyby cest a vodicích drah, které opouštějí rovinu náčrtu.",
"help.sketch.auto_constrain": "Přidá vazby, které náčrt už skoro má, například vodorovnost, rovnoběžnost nebo totožnost, a pak jej okótuje, dokud není plně určen. Použijte to k zamknutí zhruba nakresleného náčrtu jedním krokem.",
"help.sketch.auto_constrain_from_datum": "Funguje jako Automatické vazby, ale polohy měří od zvoleného referenčního bodu místo počátku. Použijte to, když je díl rozvržen od jednoho referenčního bodu, například rohu nebo otvoru.",
"help.sketch.blend_curve": "Spojí konce dvou křivek hladkým splajnem, který je tečný k oběma, nebo na přání i spojitý v křivosti. Použijte to k překlenutí mezery mezi křivkami bez zlomu.",
"help.sketch.break": "Rozdělí křivku na části tam, kde ji kříží jiné křivky, nebo v bodech, které na ni umístíte. Použijte to, když část křivky potřebuje vlastní vazbu nebo se má smazat samostatně.",
"help.sketch.cancel": "Opustí náčrt a zahodí vše, co se změnilo od jeho vytvoření nebo otevření k úpravám. Zpět změny vrátí.",
"help.sketch.centerline": "Přepíná úsečky mezi běžnými úsečkami a osami, které profily vynechávají. Použijte osu jako osu rotace, zrcadlení nebo vazby symetrie.",
"help.sketch.chamfer.distance_angle": "Zkosí roh mezi dvěma úsečkami podle vzdálenosti podél první úsečky a úhlu. Použijte to, když výkres udává sražení jako délku a úhel, například 2 mm × 30°.",
"help.sketch.chamfer.equal_distance": "Zkosí roh mezi dvěma úsečkami ve stejné vzdálenosti zpět podél obou. Použijte to pro obvyklé sražení 45° na obrysu.",
"help.sketch.chamfer.two_distance": "Zkosí roh mezi dvěma úsečkami podle samostatné vzdálenosti podél každé úsečky. Použijte to pro sražení jiná než 45°, zadaná dvěma délkami.",
"help.sketch.circle.center": "Nakreslí kružnici ze středu a průměru. Použijte to pro otvory, nálitky a jiné kulaté prvky se známým středem.",
"help.sketch.circle.three_point": "Nakreslí kružnici procházející třemi body. Použijte to, když kružnice musí procházet zadanými body, například existující geometrie.",
"help.sketch.circle.three_tangent": "Nakreslí kružnici, která se dotýká tří úseček, kružnic nebo oblouků. Použijte to k vložení kružnice do prostoru mezi tři křivky, například jako vepsanou kružnici trojúhelníku.",
"help.sketch.circle.two_point": "Nakreslí kružnici ze dvou konců jejího průměru. Použijte to, když jsou známé body na okraji kružnice, a ne její střed.",
"help.sketch.circle.two_tangent": "Nakreslí kružnici zadané velikosti, která se dotýká dvou úseček, kružnic nebo oblouků. Použijte to pro zaoblení pevným poloměrem mezi dvěma křivkami.",
"help.sketch.conic": "Nakreslí kuželosečku mezi dvěma koncovými body, tvarovanou vrcholovým bodem a hodnotou rho. Použijte to pro hladké přechody, jejichž plnost chcete doladit, od ploché až po téměř ostrý roh.",
"help.sketch.constrainer": "Použije vazbu, kterou jedna nebo dvě vybrané křivky už skoro mají, například vodorovnost, rovnoběžnost, tečnost nebo rovnost. Použijte to k uspořádání ručně nakresleného náčrtu po jedné vazbě.",
"help.sketch.constraint.coincident": "Umístí bod na jiný bod, křivku nebo osu náčrtu. Použijte to k zavření mezer v profilu nebo k umístění bodu na úsečku.",
"help.sketch.constraint.collinear": "Umístí dvě úsečky na jednu přímku. Použijte to k zarovnání přerušených hran, například obou stran zářezu.",
"help.sketch.constraint.concentric": "Dá dvěma kružnicím nebo obloukům stejný střed. Použijte to pro kroužky, záhlubky a hřídele s osazením.",
"help.sketch.constraint.curvature": "Zajistí, aby dvě křivky, které se setkávají v koncovém bodě, pokračovaly se stejnou křivostí (G2). Použijte to tam, kde tečné napojení není dost hladké, například na viditelných plochách.",
"help.sketch.constraint.equal": "Vyrovná délky úseček, nebo poloměry kružnic a oblouků. Použijte to, aby jeden rozměr řídil několik shodných prvků.",
"help.sketch.constraint.fix": "Zafixuje body nebo křivky tam, kde jsou, nebo je znovu uvolní. Použijte to pro geometrii, která se nesmí pohnout při tažení nebo řešení náčrtu.",
"help.sketch.constraint.horizontal_vertical": "Učiní úsečku, nebo spojnici dvou bodů, vodorovnou nebo svislou, podle toho, co je blíže. Použijte to k zarovnání obrysu s osami náčrtu.",
"help.sketch.constraint.midpoint": "Umístí bod doprostřed úsečky, nebo spojí středy dvou úseček. Použijte to k vystředění geometrie na hraně.",
"help.sketch.constraint.parallel": "Učiní dvě úsečky rovnoběžnými. Použijte to pro strany, které mají zůstat rovnoběžné při změně jiných rozměrů.",
"help.sketch.constraint.perpendicular": "Zajistí, aby se dvě úsečky protínaly v pravém úhlu. Použijte to pro pravoúhlé rohy mezi úsečkami, které neleží na osách náčrtu.",
"help.sketch.constraint.polygon": "Změní uzavřený řetězec úseček na pravidelný mnohoúhelník: stejné strany, všechny rohy na jedné kružnici. Použijte to, aby se ručně nakreslený mnohoúhelník stal pravidelným a zůstal takový.",
"help.sketch.constraint.symmetry": "Zajistí, aby dva body nebo křivky byly symetrické podle přímky nebo podle bodu. Použijte to, aby profil zůstal symetrický při změně jedné strany.",
"help.sketch.constraint.tangent": "Zajistí, aby se dvě křivky dotýkaly tečně, například úsečka a oblouk. Použijte to pro hladká napojení bez zlomu.",
"help.sketch.construction": "Přepíná křivky mezi běžnou geometrií a konstrukční geometrií, kterou profily vynechávají. Použijte konstrukční křivky jako pomocné prvky pro rozvržení, reference a kóty.",
"help.sketch.construction_line": "Vytvoří nekonečnou konstrukční přímku procházející dvěma body. Použijte ji k rozvržení náčrtu bez rozdělování profilů.",
"help.sketch.construction_line.angle": "Vytvoří nekonečnou konstrukční přímku pod úhlem od osy X náčrtu. Vyberte bod a zadejte úhel, nebo vyberte jeho směr.",
"help.sketch.construction_line.bisector": "Vyberte dvě protínající se přímé úsečky náčrtu a pak jednu ze dvou os úhlu. Výsledek sleduje své zdrojové úsečky.",
@@ -1412,11 +1580,71 @@
"help.sketch.construction_line.tangent_external": "Vyberte kružnici nebo kruhový oblouk, pak vnější bod a řešení tečny. Náhledy ukazují jen body dotyku na nakresleném oblouku.",
"help.sketch.construction_line.tangent_two": "Vyberte dvě kružnice nebo kruhové oblouky a pak v náhledu zvolte společnou tečnu. Body dotyku musí ležet na nakreslených křivkách.",
"help.sketch.construction_line.vertical": "Vytvoří nekonečnou svislou konstrukční přímku procházející bodem. Její svislá vazba platí i při pozdějších úpravách.",
"help.sketch.copy": "Zkopíruje vybrané křivky a body náčrtu spolu s vazbami a kótami mezi nimi. Vložte je do tohoto náčrtu nebo do jiného.",
"help.sketch.create": "Zahájí nový 2D náčrt na rovině nebo na rovinné ploše modelu. Každé vysunutí, rotace a tažení začíná náčrtem.",
"help.sketch.cut": "Zkopíruje vybranou geometrii náčrtu a smaže ji z náčrtu, vše jedním krokem vrácení zpět. Vložte ji jinam v tomto náčrtu nebo do jiného.",
"help.sketch.dimension": "Přidá řídicí kótu: délku, vzdálenost, úhel, poloměr nebo průměr podle toho, co vyberete. Zadejte hodnotu nebo název parametru a náčrt ji následuje.",
"help.sketch.edit": "Otevře existující náčrt k úpravám. Prvky na něm postavené se aktualizují, když náčrt dokončíte.",
"help.sketch.ellipse": "Nakreslí elipsu ze středu, konce hlavní osy a bodu na vedlejší straně. Použijte to pro oválné otvory, vačky a jiné protáhlé oblé tvary.",
"help.sketch.equation_curve": "Nakreslí křivku podle vzorců: x(t) a y(t), nebo y = f(x), v zadaném rozsahu. Vzorce mohou používat parametry a křivka se podle nich mění: použijte ji pro sinusovku, spirálu nebo evolventu zubu ozubeného kola.",
"help.sketch.extend": "Prodlouží úsečku nebo oblouk až k nejbližší křivce v cestě, nebo prodlouží dvě křivky, dokud se nesetkají. Použijte to k zavření mezer v profilu po oříznutí nebo úpravách.",
"help.sketch.fillet": "Zaoblí roh, kde se setkávají dvě úsečky nebo oblouky, obloukem zadaného poloměru. Více rohů zaoblených společně sdílí jeden poloměr.",
"help.sketch.finish": "Opustí náčrt a vrátí se k modelu. Jeho uzavřené profily jsou pak připraveny pro Vysunutí, Rotaci a další prvky.",
"help.sketch.finish_auto_constrain": "Spustí Automatické vazby na náčrtu a pak jej dokončí. Použijte to k opuštění plně určeného náčrtu jedním krokem.",
"help.sketch.fit_curves_to_section": "Protne síťové nebo plné těleso rovinou náčrtu a proloží řez úsečkami a oblouky. Použijte to k přestavbě naskenovaného nebo importovaného dílu jako upravitelného náčrtu.",
"help.sketch.include_3d": "Přenese hrany modelu, vrcholy a křivky jiných náčrtů do tohoto náčrtu jako propojené reference, přičemž ty mimo jeho rovinu do ní zploští. Použijte to k tvorbě na geometrii, která neleží v rovině náčrtu.",
"help.sketch.infinite": "Přepíná úsečky mezi běžnými úsečkami a nekonečnými konstrukčními přímkami, které vedou přes celý pohled. Použijte je jako referenční čáry rozvržení, které nikdy nekončí příliš brzy.",
"help.sketch.insert_dxf": "Načte křivky výkresu DXF do náčrtu, ve zvoleném měřítku, natočení a poloze. Použijte to k navázání na 2D výkres z jiného programu, například obrys pro řezání laserem.",
"help.sketch.insert_svg": "Načte cesty výkresu SVG do náčrtu, ve zvoleném měřítku, natočení a poloze. Použijte to k přeměně loga nebo vektorového obrysu na křivky, které lze vysunout.",
"help.sketch.inspect": "Otevře zprávu o otevřeném náčrtu: kolik stupňů volnosti zbývá a zda je plně zavazbený. Použijte to ke zjištění, co se ještě hýbe, než náčrt dokončíte.",
"help.sketch.intersect": "Přidá křivky nebo body, kde tělesa, plochy, hrany nebo jiné náčrty protínají rovinu náčrtu. Zůstanou propojené a sledují model, když se změní.",
"help.sketch.intersection_curve": "Vytvoří 3D křivky tam, kde se setkávají dvě tělesa nebo plochy, propojené s nimi. Použijte je jako cesty nebo vodicí dráhy, které sledují model.",
"help.sketch.isoparametric_curve": "Vytvoří 3D křivku ve směru U nebo V plochy bodem, který vyberete, propojenou s plochou. Použijte ji jako cestu nebo dělicí čáru, která sleduje povrch.",
"help.sketch.line": "Kreslí spojené úsečky bod po bodu, jako otevřený řetězec nebo uzavřený obrys. Je to základní nástroj pro většinu profilů.",
"help.sketch.line.midpoint": "Nakreslí úsečku od jejího středu k jednomu konci, přičemž druhý konec se zrcadlí. Použijte to pro úsečky vystředěné na bod, například souměrnou hranu.",
"help.sketch.line3d": "Nakreslí spojené přímé úsečky mezi body v prostoru, se zapnutým 3D náčrtem. Použijte to pro cesty a rámy, které opouštějí rovinu náčrtu.",
"help.sketch.mirror": "Zrcadlí křivky a body náčrtu podle přímky nebo osy a přidá vazby symetrie. Použijte to k nakreslení poloviny symetrického profilu a jeho doplnění.",
"help.sketch.move": "Přesune nebo otočí křivky a body náčrtu, nebo jejich kopii. Použijte to k přemístění geometrie při zachování jejího tvaru a vazeb.",
"help.sketch.offset": "Vytvoří kopii řetězce křivek v zadané vzdálenosti, na jedné straně nebo na obou. Použijte to pro stěny, obrysy a vůle; vzdálenost zůstává upravitelnou kótou.",
"help.sketch.paste": "Vloží do aktivního náčrtu geometrii náčrtu, kterou jste zkopírovali nebo vyjmuli. Umístěte ji do bodu nebo ji posuňte o odsazení.",
"help.sketch.pattern.circular": "Zkopíruje geometrii náčrtu kolem středu, po celém kruhu nebo o zadaný úhel. Použijte to pro roztečné kružnice šroubů, paprsky a zuby.",
"help.sketch.pattern.rectangular": "Zkopíruje geometrii náčrtu v řádcích a sloupcích v zadaných roztečích. Použijte to pro mřížky otvorů, drážek nebo větracích otvorů.",
"help.sketch.point": "Umístí bod náčrtu. Použijte ho jako referenci pro kóty, vazby, středy otvorů nebo pozdější prvky.",
"help.sketch.point3d": "Umístí bod v prostoru, se zapnutým 3D náčrtem. Použijte ho jako referenci pro 3D křivky a cesty.",
"help.sketch.polygon.circumscribed": "Nakreslí pravidelný mnohoúhelník kolem kružnice, velikost se určuje od středu ke středu strany. Použijte to, když je známé rozevření klíče, například u šestihranné matice.",
"help.sketch.polygon.edge": "Nakreslí pravidelný mnohoúhelník ze dvou konců jedné strany. Použijte to, když je známá délka a poloha strany.",
"help.sketch.polygon.inscribed": "Nakreslí pravidelný mnohoúhelník do kružnice, velikost se určuje od středu k rohu. Použijte to, když je známá velikost přes rohy.",
"help.sketch.project": "Přenese hrany modelu, plochy, vrcholy a křivky jiných náčrtů do tohoto náčrtu, promítnuté do jeho roviny. Zůstanou propojené a sledují model, když se změní.",
"help.sketch.project_to_surface": "Promítne křivky jiných náčrtů ve směru normály tohoto náčrtu na plochu jako propojené 3D křivky. Použijte to k umístění loga, dělicí čáry nebo cesty na zakřivený povrch.",
"help.sketch.rectangle.center": "Nakreslí obdélník ze středu a jednoho rohu. Použijte to pro obrysy vystředěné na bod, například počátek.",
"help.sketch.rectangle.rounded": "Nakreslí obdélník se všemi čtyřmi rohy zaoblenými jedním poloměrem. Použijte to pro desky, víka a otvory se zaoblenými rohy.",
"help.sketch.rectangle.three_point": "Nakreslí obdélník z jedné hrany a bodu na protější straně. Použijte to pro obdélníky pootočené vůči osám náčrtu.",
"help.sketch.rectangle.two_point": "Nakreslí obdélník ze dvou protilehlých rohů. Použijte to pro obrysy desek, bloků a kapes.",
"help.sketch.scale": "Změní měřítko křivek a bodů náčrtu zadaným činitelem kolem základního bodu. Použijte to ke změně velikosti části náčrtu bez nového kreslení.",
"help.sketch.slot.arc_center": "Nakreslí zakřivenou drážku zadané šířky podél oblouku daného středem, začátkem a koncem. Použijte to pro stavěcí drážky kolem čepu.",
"help.sketch.slot.arc_three_point": "Nakreslí zakřivenou drážku zadané šířky podél oblouku procházejícího třemi body. Použijte to, když dráha drážky musí procházet zadanými body.",
"help.sketch.slot.center_point": "Nakreslí přímou drážku zadané šířky od jejího středu ke středu oblouku jednoho konce. Použijte to pro drážky vystředěné na bod.",
"help.sketch.slot.center_to_center": "Nakreslí přímou drážku zadané šířky mezi středy jejích dvou koncových oblouků. Použijte to pro drážky kótované střed–střed, například stavěcí drážky pro šrouby.",
"help.sketch.slot.overall": "Nakreslí přímou drážku zadané šířky od jednoho vnějšího konce k druhému. Použijte to, když záleží na celkové délce drážky.",
"help.sketch.spline.control_point": "Nakreslí kubický splajn tvarovaný řídicími body, kterými neprochází. Použijte to pro hladké, plynulé křivky, které tvarujete přesouváním bodů.",
"help.sketch.spline.control_point_5": "Nakreslí splajn stupně 5 tvarovaný řídicími body. Použijte to tam, kde se křivky musí napojit s hladší křivostí, například na viditelných tvarových plochách.",
"help.sketch.spline.fit_point": "Nakreslí hladký splajn, který prochází každým bodem, který umístíte, otevřený nebo uzavřený. Použijte to k obkreslení tvaru přes známé body.",
"help.sketch.spline3d": "Nakreslí hladkou křivku v prostoru body, se zapnutým 3D náčrtem. Použijte to pro cesty tažení a vedení kabelů, které opouštějí rovinu náčrtu.",
"help.sketch.spun_profile": "Vytvoří v rovině náčrtu obrys, který těleso opíše při otáčení kolem osy. Použijte to k získání siluety soustruženého dílu pro rotaci nebo výkres.",
"help.sketch.text": "Napíše do náčrtu text zvoleným písmem, výškou a úhlem; jeho slova mohou sledovat parametry. Vysuňte jej nebo z něj vytvořte reliéf pro štítky a nápisy.",
"help.sketch.transform": "Změní měřítko, otočí a přesune geometrii náčrtu kolem středu jedním krokem. Použijte to k přemístění a změně velikosti výběru najednou.",
"help.sketch.trim": "Odstraní část křivky mezi nejbližšími průsečíky kolem místa, kam kliknete. Použijte to k vyčištění překrývajících se úseček do uzavřeného profilu.",
"help.solid.align": "Posune vybraná tělesa tak, aby se bod, plocha nebo rovina na nich setkala s bodem, plochou nebo rovinou jinde. Hodí se k přiložení dílu k jinému bez měření odsazení.",
"help.solid.boundary_fill": "Vytvoří tělesa z oblastí uzavřených překrývajícími se nástrojovými tělesy, přičemž vyplní jen oblasti, které vyberete. Použijte to k vytvoření tvaru z prostoru, který společně ohraničuje několik těles.",
"help.solid.bounding_solid": "Vytvoří kvádr, který obklopuje vybraná tělesa, s volitelným okrajem. Použijte to k zobrazení celkové velikosti dílu nebo jako polotovar, ze kterého se obrábí.",
"help.solid.box": "Vytvoří kvádr z délky, šířky a výšky, z rohového bodu nebo vystředěný na bod. Použijte to pro rychlý blok, zástupný díl nebo těleso, do kterého se řežou prvky.",
"help.solid.chamfer": "Zkosí vybrané hrany plochým sražením o zadanou vzdálenost. Hodí se k otupení ostrých hran nebo ke snadnějšímu zasunutí kolíku či šroubu.",
"help.solid.coil": "Vytvoří šroubovicové těleso, například pružinu, z průměru, počtu závitů, výšky nebo stoupání a kulatého či čtvercového průřezu. Použijte to pro pružiny, cívky a šroubovicové výstupky.",
"help.solid.combine": "Sjednotí tělesa, vyjme je z cílového tělesa nebo ponechá jen společný objem; nástrojová tělesa lze ponechat. Hodí se ke slučování dílů, k vyříznutí jednoho tvaru druhým nebo k nalezení místa, kde se dvě tělesa překrývají.",
"help.solid.cone": "Vytvoří kužel z kruhové základny a výšky, nebo komolý kužel, pokud má poloměr i horní strana. Použijte to pro zúžení, nálevky, kuželové záhlubky a hroty.",
"help.solid.cylinder": "Vytvoří válec z poloměru nebo průměru a výšky, stojící na bodě podél osy. Použijte to pro hřídele, kolíky, nálitky a kulaté polotovary.",
"help.solid.draft": "Nakloní vybrané plochy o zadaný úhel měřený od neutrální roviny. Hodí se u lisovaných či odlévaných dílů, aby šly snadno vyjmout z formy.",
"help.solid.emboss": "Vytáhne profily náčrtu, například text nebo logo, z plochy ven, nebo je do ní zahloubí. Použijte to pro nápisy, štítky a značení na rovných nebo kulatých plochách.",
"help.solid.extrude": "Vysune profil náčrtu do 3D o zadanou vzdálenost a přidá nebo odebere materiál. Hodí se k přeměně plochého obrysu na kvádr, nálitek nebo vybrání.",
"help.solid.fillet": "Zaoblí vybrané hrany hladkým kruhovým přechodem o zadaném poloměru. Hodí se ke zjemnění ostrých hran kvůli pevnosti, pohodlí nebo vzhledu.",
"help.solid.hole": "Vyvrtá kruhový otvor zadaného průměru ve zvoleném bodě plochy. Hodí se pro průchozí otvory pro šrouby, kolíky a další jednoduché kruhové otvory.",
@@ -1425,20 +1653,60 @@
"help.solid.move": "Posune nebo otočí vybraná tělesa, případně jejich kopii, o zadanou vzdálenost a úhel. Hodí se ke změně polohy tělesa nebo k vytvoření dalšího tělesa na jiném místě.",
"help.solid.offset_face": "Posune vybrané plochy dovnitř nebo ven o zadanou vzdálenost a okolní plochy je následují. Hodí se k zesílení stěny, prohloubení vybrání nebo zvýšení nálitku bez úprav náčrtu.",
"help.solid.pattern.circular": "Opakuje vybrané objekty kolem osy v zadaném počtu a celkovém úhlu. Hodí se pro roztečné kružnice šroubů, paprsky, žebra a zuby.",
"help.solid.pattern.path": "Zkopíruje prvky nebo tělesa podél cesty náčrtu podle počtu a rozteče. Použijte to pro otvory podél zakřivené hrany nebo díly podél kolejnice.",
"help.solid.pattern.rectangular": "Zopakuje vybrané objekty v jednom nebo dvou směrech podle zadaného počtu a rozteče. Použijte to pro řady a mřížky otvorů, žeber, kolíků nebo patek.",
"help.solid.pipe": "Vytvoří kulatou trubku podél cesty z křivek náčrtu, plnou nebo dutou se zadanou tloušťkou stěny. Použijte to pro trubky, dráty, kabely a kolejnice.",
"help.solid.press_pull": "Přidá nebo odebere materiál při tažení plochy, případně zaoblí hrany při jejich tažení. Použijte to pro rychlé úpravy přímo na modelu.",
"help.solid.remove": "Odebere vybraná tělesa z návrhu od tohoto místa na časové ose; dřívější kroky je zachovají. Použijte to k odstranění pomocného tělesa, například řezného nástroje, který už nepotřebujete.",
"help.solid.replace_face": "Přesune vybrané rovinné plochy do roviny nebo na rovnoběžnou plochu a těleso se natáhne či zmenší, aby na ni dosáhlo. Použijte to, aby plocha lícovala s jiným dílem nebo konstrukční rovinou.",
"help.solid.revolve": "Otočí profil náčrtu kolem osy a vytvoří rotační těleso. Použijte to pro hřídele, knoflíky, misky a každý díl, který je souměrný kolem osy.",
"help.solid.rib": "Přidá tenkou stěnu podél otevřené křivky náčrtu, vyplněnou až k nejbližším plochám tělesa. Použijte to k vyztužení stěn a rohů, například u lisovaných nebo tištěných dílů.",
"help.solid.scale": "Zvětší nebo zmenší vybraná tělesa o zadaný činitel, stejný ve všech směrech nebo zvlášť pro každou osu. Použijte to ke změně velikosti importovaného tvaru nebo k započtení smrštění.",
"help.solid.shell": "Vytvoří z tělesa skořepinu se stěnami zadané tloušťky a může otevřít vybrané plochy. Použijte to pro krabice, kryty a jiné tenkostěnné díly.",
"help.solid.sphere": "Vytvoří kouli z poloměru nebo průměru kolem středu. Použijte to pro kuličky, knoflíky a zaoblené konce.",
"help.solid.split_body": "Rozdělí těleso na samostatná tělesa rovinou, plochou jiného tělesa nebo úsečkou náčrtu. Použijte to pro díly, které se tisknou, obrábějí nebo barví zvlášť.",
"help.solid.split_face": "Rozdělí vybrané plochy podél roviny, plochy jiného tělesa nebo křivek náčrtu, aniž by těleso rozřízlo. Použijte to, aby část plochy měla vlastní úkos, barvu nebo odsazení.",
"help.solid.sweep": "Protáhne profil náčrtu po cestě a vytvoří těleso. Použijte to pro trubky, lišty, rukojeti a každý díl s konstantním průřezem, který sleduje křivku.",
"help.solid.thread": "Přidá metrický závit ISO na válcovou plochu, buď jako kosmetický závit, nebo vyříznutý do tělesa. Použijte to pro šrouby, závitové otvory a tištěné šroubové díly.",
"help.solid.torus": "Vytvoří anuloid, tedy prstenec, z hlavního poloměru kolem jeho osy a vedlejšího poloměru jeho kulatého průřezu. Použijte to pro O-kroužky, držadla a kulaté korálky.",
"help.solid.web": "Přidá tenkou stěnu podél každé otevřené křivky náčrtu, každou vyplněnou až k nejbližším plochám tělesa. Použijte to pro mřížku podpůrných stěn uvnitř krytů a táců.",
"help.surface.blend": "Vytvoří plochu, která překlenuje hrany dvou těles, tečně nebo spojitě v křivosti k oběma. Použijte to k hladkému spojení dvou ploch přes mezeru.",
"help.surface.boundary": "Vytvoří plochu vyplňující smyčku dvou až čtyř křivek náčrtu, nebo síť křivek. Použijte to pro volné panely dané svými hranami.",
"help.surface.extend": "Prodlouží plochu za její hrany o vzdálenost nebo až k rovině či ploše. Použijte to, aby se plochy před oříznutím nebo sešitím překrývaly.",
"help.surface.extrude": "Vysune křivky nebo profily náčrtu o vzdálenost do plochy, jen stěny, bez čel. Použijte to pro tenké stěny a pro řezné či dělicí nástroje.",
"help.surface.fair": "Vyhladí vnitřek volných ploch, zatímco jejich hrany zůstanou na místě. Použijte to k vyrovnání nerovností a vlnitých odrazů na ploše.",
"help.surface.loft": "Vytvoří plochu, která prochází dvěma nebo více průřezy v pořadí, bez čel. Použijte to pro skořepiny a přechody mezi různými tvary.",
"help.surface.match": "Přestaví hranu plochy tak, aby se setkala s hranou jiného tělesa, se shodnou tečností nebo křivostí. Použijte to k hladkému uzavření spoje mezi dvěma plochami.",
"help.surface.offset": "Vytvoří kopii ploch ve vzdálenosti podél jejich normál jako nové plošné těleso. Použijte to pro povlaky, vůle nebo druhou stranu stěny.",
"help.surface.patch": "Vyplní oblast náčrtu nebo uzavřenou smyčku hran plochou, rovnou nebo hladce zakřivenou. Použijte to k uzavření děr v plošném tělese.",
"help.surface.reverse_normal": "Obrátí plochy plošného tělesa, takže jejich vnější strana směřuje na druhou stranu. Použijte to před zesílením nebo sešitím, když plochy míří dovnitř.",
"help.surface.revolve": "Otočí křivky nebo profily náčrtu kolem osy do plochy, bez čel. Použijte to pro kulaté skořepiny, například stínidla, mísy a trysky.",
"help.surface.ruled": "Vytvoří pás přímek vycházejících z řetězce hran, podél normály plochy, tečně nebo pod úhlem. Použijte to pro úkosové stěny, náběhy a dělicí plochy.",
"help.surface.stitch": "Sešije plošná tělesa podél sdílených hran a pokud se uzavřou, vznikne těleso. Použijte to k přeměně množiny ploch na jedno těleso.",
"help.surface.sweep": "Posune křivky nebo profily náčrtu po cestě do plochy, bez čel. Použijte to pro žlaby, lišty a jiné tenké tvary, které sledují cestu.",
"help.surface.thicken": "Dá plošnému tělesu tloušťku a změní je na těleso. Použijte to k vytvoření tisknutelných nebo obrobitelných dílů z ploch.",
"help.surface.trim": "Řízne plochu rovinou, jinou plochou nebo křivkami náčrtu a ponechá stranu, kterou vyberete. Použijte to k oříznutí ploch do tvaru před sešitím.",
"help.surface.unstitch": "Odděluje plochy tělesa do samostatných plošných těles; těleso se rozpadne na plochy. Použijte to k úpravě jednotlivých ploch tělesa.",
"help.surface.untrim": "Odstraní z plochy otvory, nebo obnoví její vnější hranici na přirozené meze povrchu. Použijte to k získání celé plochy zpět po oříznutí.",
"help.third_party": "Licence třetích stran",
"help.timeline.compute_all": "Přepočítá všechny prvky na časové ose od začátku. Použijte to k obnovení modelu a ke zjištění, které prvky selhávají.",
"help.timeline.delete": "Smaže vybrané prvky z časové osy; smazáním náčrtu se smažou i prvky z něj vytvořené. Použijte to k odstranění kroku, který už nechcete.",
"help.timeline.dependents": "Vypíše prvky, které by se smazaly spolu s prvkem, a ty, které by bez něj selhaly. Použijte to před smazáním nebo změnou prvku.",
"help.timeline.play": "Přehraje zbývající prvky jeden po druhém s půlsekundovou pauzou po každém přestavění. Spuštěním tohoto příkazu znovu nebo stisknutím Escape přehrávání zastavíte; Přejít na konec skočí okamžitě.",
"help.view.apply": "Natočí pohled do standardního směru, například zepředu, shora nebo izometricky, nebo do uloženého pojmenovaného pohledu. Použijte to k prohlížení modelu z pevného úhlu.",
"help.view.delete": "Smaže uložený pojmenovaný pohled. Model se nezmění.",
"help.view.fit": "Přiblíží a posune pohled tak, aby celý model nebo výběr vyplnil pohled. Použijte to, když model zmizel z dohledu.",
"help.view.grid": "Zobrazí nebo skryje mřížku v pohledu. Použijte ji jako vodítko velikosti a orientace při modelování.",
"help.view.ground_shadow": "Zobrazí nebo skryje stín modelu na podložce. Použijte to k snazšímu posouzení výšky a polohy.",
"help.view.home": "Vrátí pohled do výchozího směru a přizpůsobí model. Použijte to k rychlému návratu do známého pohledu.",
"help.view.list": "Vypíše pojmenované pohledy uložené v návrhu. Použijte to k nalezení dříve uloženého pohledu.",
"help.view.navigate": "Natočí, posune nebo přiblíží pohled po krocích, například o čtvrt otáčky doleva. Použijte to k přesnému pohybu kamery místo tažení.",
"help.view.navigation_bar": "Zobrazí nebo skryje navigační lištu ve spodní části pohledu. Skryjte ji pro více místa, zobrazte ji pro přístup k nástrojům pohledu myší.",
"help.view.rename": "Dá uloženému pojmenovanému pohledu nový název. Samotný pohled zůstane stejný.",
"help.view.save": "Uloží aktuální polohu kamery jako pojmenovaný pohled v návrhu. Použijte to k pozdějšímu návratu ke stejnému úhlu, například pro snímky obrazovky.",
"help.view.spin": "Otáčí pohled kolem modelu nepřetržitě až do dalšího kliknutí nebo stisku klávesy. Použijte to k prezentaci modelu ze všech stran.",
"help.view.tool": "Zapne nástroj kamery, otáčení, posun nebo přiblížení, takže tažení levým tlačítkem myši pohybuje pohledem, dokud jej nevypnete. Použijte to na trackpadu nebo bez prostředního tlačítka myši.",
"help.view.visual_style": "Přepne způsob zobrazení modelu: stínovaný s hranami nebo bez nich, drátový model, nebo se skrytými hranami. Použijte drátový model pro pohled dovnitř, stínovaný pro čistý vzhled.",
"history.sketch_under_constrained": "Nedourčeno (stupňů volnosti: {count})",
"history.sketch_under_constrained_one": "Nedourčeno ({count} stupeň volnosti)",
"hole_presets.confirm_delete": "Potvrdit smazání",
@@ -1615,6 +1883,10 @@
"material.selection.mixed": "Různé materiály",
"measure.at": "V bodě",
"measure.item": "Položka {number}",
"measure.quick_copied": "Měření zkopírováno",
"measure.quick_copy": "Kliknutím zkopírujete měření",
"measure.quick_edges": "Hrany: {count}",
"measure.quick_faces": "Plochy: {count}",
"messages.ago_h": "před {n} h",
"messages.ago_min": "před {n} min",
"messages.ago_s": "před {n} s",
@@ -1648,6 +1920,7 @@
"nav.hfss.help": "Alt+tažení levým tlačítkem posouvá, Shift+Alt+levé tlačítko přibližuje, Ctrl+tažení levým tlačítkem na prázdném místě otáčí",
"nav.inventor.help": "Tažení prostředním tlačítkem posouvá, Shift+prostřední otáčí, Ctrl+prostřední přibližuje, tažení pravým tlačítkem otáčí",
"nav.maya.help": "Alt+tažení levým tlačítkem otáčí, Alt+prostřední tlačítko posouvá, Alt+pravé tlačítko přibližuje; tažení prostředním tlačítkem také posouvá",
"nav.nx.help": "Tažení prostředním tlačítkem otáčí, Shift+prostřední posouvá (v NX prostřední + pravé), Ctrl+prostřední přibližuje (v NX prostřední + levé); tažení pravým tlačítkem kameru nemění",
"nav.openscad.help": "Tažení levým tlačítkem na prázdném místě otáčí, Shift+tažení levým vybírá obdélníkem, tažení geometrie náčrtu ji upravuje; tažení pravým nebo prostředním tlačítkem posouvá, Shift+tažení pravým nebo prostředním přibližuje",
"nav.perspective.sketch": "Úpravy náčrtu používají ortografický pohled. Dokončením náčrtu přepnete na perspektivu.",
"nav.right_drag_orbits.help": "Vypnuto: tažení pravým tlačítkem kameru nemění a pravé tlačítko jen otevírá kontextovou nabídku. Volba přiřazení myši SolidWorks tuto možnost vypne.",
@@ -1767,6 +2040,11 @@
"not a move": "nejde o posun",
"not a number": "není číslo",
"open a sketch first": "nejprve otevřete náčrt",
"parameters.apply_live": "Použít každou změnu po opuštění jejího pole",
"parameters.apply_live_tip": "Vypnuto: změny čekají na Použít nebo OK, pak se návrh přestaví jednou pro všechny. Zrušit nebo Escape je zahodí.",
"parameters.held": "Změny čekající na Použít: {count}",
"parameters.held_hint": "Upravte výrazy a jednotky. Změny čekají na Použít nebo OK.",
"parameters.held_one": "1 změna čeká na Použít",
"parts.automatic_name": "automaticky",
"parts.dimension.across_flats": "Rozevření klíče",
"parts.dimension.bore": "Otvor",
@@ -1789,6 +2067,8 @@
"parts.family.set_screw": "Stavěcí šroub s vnitřním šestihranem, s plochým koncem",
"parts.family.socket_head_cap_screw": "Šroub s válcovou hlavou a vnitřním šestihranem",
"parts.family.washer": "Plochá podložka",
"parts.holes": "Otvory (volitelné)",
"parts.placement_hint": "vyberte jeden nebo více otvorů, aby se do každého usadil díl, nebo OK umístí díl do počátku",
"pattern.alignment_2": "Zarovnání 2",
"pattern.alignment_hint": "Počty zahrnují originál. Na střed rozloží kopie rovnoměrně; Převrátit volí stranu navíc u sudých počtů.",
"pattern.direction_1": "Směr 1",
@@ -1862,6 +2142,8 @@
"prefs.ctrl_cmd": "Ctrl / Cmd",
"prefs.curved_surfaces": "Zakřivené plochy",
"prefs.curves": "Zakřivené plochy",
"prefs.dark_parts_shading": "Zachovat tvar tmavých dílů",
"prefs.dark_parts_shading_help": "Stínuje pohled v lineárním světle s jemným světlem oblohy, takže tmavé plochy zachovají přechod a nezčernají",
"prefs.dead_zone_note": "Šrafované pásmo je mrtvá zóna: pohyb uvnitř něj se ignoruje.",
"prefs.default": "výchozí",
"prefs.design": "Výchozí nastavení návrhu",
@@ -1876,6 +2158,8 @@
"prefs.edges": "Hrany a stínování",
"prefs.extend": "Prodloužit",
"prefs.extra_navigation": "Ctrl+tažení levým tlačítkem v prázdném prostoru otáčí pohled; podržením mezerníku pohled posunete.",
"prefs.extrude_view_isometric": "Při otevření Vysunutí otočit pohled do izometrického",
"prefs.extrude_view_return": "Po zavření Vysunutí vrátit dřívější pohled",
"prefs.follows_os": "Podle systému",
"prefs.font": "Písmo",
"prefs.font_fallback": "Znaky, které vybrané písmo neobsahuje, se nahradí vestavěným písmem, takže žádný popisek nezobrazí prázdný čtverec.",
@@ -1891,6 +2175,7 @@
"prefs.graphics_card_auto": "Automaticky",
"prefs.graphics_card_missing": "Uložená grafická karta není k dispozici; použije se možnost Automaticky.",
"prefs.graphics_card_restart": "Projeví se po restartování aplikace SolidCraft. Tuto volbu přepíše WGPU_ADAPTER_NAME.",
"prefs.graphics_card_unused": "Uložená grafická karta se pro toto okno nepoužila; použitá karta je uvedena v nabídce Nápověda › O aplikaci SolidCraft a ve stavovém řádku. Zkuste možnost Automaticky, nebo nastavte WGPU_ADAPTER_NAME na jedinečnou část názvu karty.",
"prefs.graphics_note": "Rychlost, nebo hladkost obrazu: každá volba ukazuje svůj účinek na ukázce.",
"prefs.graphics_presets_note": "Předvolby nastaví níže uvedené volby najednou.",
"prefs.hide_constraint_glyphs_zoomed_out": "Skrýt symboly vazeb při oddálení",
@@ -1905,6 +2190,8 @@
"prefs.history_sketches_note": "Při nastavení Náčrty na Pod svým prvkem zobrazuje Historie vlevo každý náčrt o úroveň níž, pod prvním prvkem, který z něj vychází, pokud je dost široká pro názvy. Časová osa dole vždy zachovává pořadí vytvoření.",
"prefs.history_sketches_under_feature": "Pod svým prvkem",
"prefs.hold_stop_snapping": "Podržením vypnout přichytávání",
"prefs.home_fit_size": "Velikost pro Domů a Přizpůsobit",
"prefs.home_fit_size_note": "Kolik pohledu model vyplní, když jej zarámuje Domů, Přizpůsobit, otevřený návrh nebo změna pohledu v navigátoru, ať je nastavení níže zapnuté, nebo ne. 100 %: vyplní pohled mezi panely, kompasem a navigační lištou.",
"prefs.icons_only": "Pouze ikony",
"prefs.imported_file": "Importovaný soubor",
"prefs.in_browser": "V prohlížeči",
@@ -1913,13 +2200,20 @@
"prefs.interface_language": "Jazyk rozhraní",
"prefs.interface_note": "Vzhled aplikace SolidCraft a rozmístění jejích částí.",
"prefs.interval_minutes": "{n} min",
"prefs.invert_navigator_arrows": "Obrátit šipky otáčení krychle pohledu",
"prefs.invert_navigator_arrows_note": "Šipky kolem krychle otáčejí kameru tím směrem, kam míří, jako ve Fusion a Inventor: šipka vlevo míří doprava a stáčí kameru doprava. Vypnuto: šipka otáčí krychli na stranu, na které leží, takže šipka vlevo stáčí kameru doleva. Zakřivené šipky natočení tím nejsou dotčeny.",
"prefs.keep_work_on_tab_switch": "Ponechat dialogy a nástroje otevřené při přepínání návrhů",
"prefs.keep_work_on_tab_switch_note": "Každá karta návrhu si ponechá otevřený dialog nebo nástroj s tím, co jste v něm vybrali a zadali, i svou kartu panelu nástrojů. Po návratu k návrhu jsou zase tam. Vypnuto: přepnutí návrhu je zruší a zobrazí kartu Model.",
"prefs.labels": "Popisky",
"prefs.language_system": "Systém",
"prefs.layout": "Rozvržení",
"prefs.layout_note": "Kompaktní ukotví panely k okrajům okna. Průsvitnost prohlížeče je k dispozici v režimu Plovoucí. Stranu asistenta změníte na stránce Asistent.",
"prefs.left": "Vlevo",
"prefs.left_click": "Levé kliknutí",
"prefs.line_drag_draws_one": "Stisknutí a tažení nakreslí jednu úsečku",
"prefs.line_drag_draws_one_note": "V nástroji Úsečka nakreslí stisknutí, tažení a puštění jednu úsečku od místa stisknutí po místo puštění a tím kreslení skončí. Kliknutí stále kreslí řetězec. Vypnuto: tažení umístí bod tam, kde tlačítko pustíte, stejně jako kliknutí.",
"prefs.line_hover_tangent_arc": "Setrvání na posledním bodu úsečky přepne na tečný oblouk",
"prefs.line_hover_tangent_arc_note": "V nástroji Úsečka po nakreslení úseku odsuňte ukazatel od posledního bodu řetězce, vraťte se a podržte jej na něm v klidu: další kliknutí ukončí tečný oblouk a stejné gesto se vrací k úsečkám. Vypnuto: setrvání tam nic nedělá.",
"prefs.linked_designs": "Propojené návrhy",
"prefs.live_input": "Živý vstup",
"prefs.live_preview": "Živý náhled",
@@ -1943,6 +2237,8 @@
"prefs.mouse_mapping": "Přiřazení myši",
"prefs.navigation": "Navigace",
"prefs.navigation_note": "Jak myš, trackpad a 3D myš pohybují pohledem.",
"prefs.navigator_fit": "Přizpůsobit model po změně pohledu v navigátoru",
"prefs.navigator_fit_note": "Plocha, roh nebo šipka krychle pohledu, případně osa orientačního ovladače, také zaměří pohled na střed modelu z jediné vzdálenosti, ze které je celý vidět ze všech stran (jeho ohraničující koule). Domů při zapnutí používá stejné přiblížení a střed, takže pohledy zvolené po něm se jen otáčejí. Vypnuto: pohled se otáčí na místě a zachovává svůj cíl a přiblížení.",
"prefs.network_host_remove": "Odebrat",
"prefs.network_locations": "Povolit síťová umístění v návrzích",
"prefs.network_locations_note": "Vypnuto: propojené soubory návrhu na jiném počítači (\\\\server\\share) se otevírají jen ze zde uvedených serverů nebo poté, co jeden povolíte na výzvu.",
@@ -1955,6 +2251,8 @@
"prefs.origin_plane_names": "Názvy rovin počátku",
"prefs.origin_plane_names_note": "Názvy zobrazené v prohlížeči, dialozích a seznamech. {top} je XY, {front} je XZ a {right} je YZ, osa Z směřuje nahoru. Příkazy, skripty a uložené návrhy zachovávají XY, XZ a YZ.",
"prefs.overall_speed": "Celková rychlost",
"prefs.parameter_list_rows": "Řádky seznamu parametrů",
"prefs.parameter_list_rows_tip": "Šipka dolů v prázdném poli hodnoty zobrazí seznam parametrů, nejprve oblíbené, nejvýše v tomto počtu. Menší počet udrží seznam přehledný ve velkém návrhu.",
"prefs.persistent_ribbon_pressed": "Zvýrazňovat aktivní příkazy na pásu karet",
"prefs.persistent_ribbon_pressed_help": "Zvýrazní příkazy na pásu karet, dokud jsou jejich účinky zapnuté. Vypnutím zachováte dřívější neutrální vzhled a nápovědu k příkazům.",
"prefs.perspective_fov": "Zorný úhel",
@@ -1984,9 +2282,13 @@
"prefs.quality_fastest": "nejrychlejší",
"prefs.quality_slowest": "nejpomalejší",
"prefs.quality_smoother": "hladší",
"prefs.quick_measure": "Rychlé měření v rohu pohledu",
"prefs.quick_measure_note": "Velikost výběru v pravém dolním rohu pohledu: délka hrany, nebo Ø a R u kulaté hrany, obsah plochy, poloha bodu, vzdálenost a úhel dvou položek, celkový součet u několika hran nebo ploch. Kliknutím ji zkopírujete.",
"prefs.render_previous_geometry_budget": "Použít předchozí rozpočet geometrie náhledu renderu",
"prefs.render_previous_geometry_budget_help": "Obnoví předchozí pevný limit geometrie (512 MiB na 64bitovém desktopu, 128 MiB jinde) místo rozpočtu podle zařízení.",
"prefs.reports_saved": "{n} uloženo",
"prefs.ribbon_click_ends_tool": "Kliknutím na tlačítko spuštěného nástroje jej ukončíte",
"prefs.ribbon_click_ends_tool_note": "Kliknutí na zvýrazněné tlačítko právě používaného nástroje náčrtu na pásu karet nástroj ukončí, takže kliknutí v pohledu opět vybírají. Vypnuto: kliknutí nástroj spustí znovu.",
"prefs.ribbon_reveal": "Ukazovat výsledky hledání na pásu karet",
"prefs.ribbon_reveal_note": "Najetí na výsledek v Hledat příkazy ukáže, kde se příkaz na pásu karet nachází: jeho kartu, tlačítko nebo řádek v rozbalovací nabídce panelu. Příkaz spuštěný z hledání tam zabliká a běžící příkaz z rozbalovací nabídky označí svůj panel.",
"prefs.right_click": "Pravé kliknutí",
@@ -2016,6 +2318,8 @@
"prefs.sketch_exit_view.previous": "Vrátit se k předchozímu pohledu",
"prefs.sketch_exit_view.unless_rotated": "Vrátit, pokud nebyl pohled otočen",
"prefs.sketch_exit_view_note": "Kam se pohled přesune po příkazu Dokončit náčrt, Zrušit nebo dvojitém Esc.",
"prefs.sketch_face_activates_part": "Náčrt na ploše dílu tento díl aktivuje",
"prefs.sketch_face_activates_part_note": "Náčrt zahájený na ploše tělesa jiné komponenty nejprve aktivuje tuto komponentu, takže jí náčrt patří a v prohlížeči zůstává u tohoto dílu. Díl zůstane aktivní i poté. Vypnuto: náčrt patří aktivní komponentě.",
"prefs.sketch_open_look_at": "Při otevření náčrtu natočit pohled k němu",
"prefs.sketch_open_look_at_note": "Vypnuto: vytvoření nebo úprava náčrtu ponechá pohled beze změny. Pohled kolmo natočí pohled k náčrtu, kdykoli ho chcete.",
"prefs.sketch_recent_snap": "Automaticky přichytávat k nedávným středům a středním bodům",
@@ -2029,6 +2333,8 @@
"prefs.sketch_tab_always_note": "Karta Náčrt zůstává na pásu karet hned za kartou Model, i když není otevřený žádný náčrt. Její kreslicí nástroje pak zahájí náčrt na vybrané rovině nebo ploše, nebo na rovině, kterou vyberete jako další, a nástroj je v něm rovnou připraven.",
"prefs.sketch_tracking_guides": "Vodítka zarovnání ke středům a středním bodům",
"prefs.sketch_tracking_guides_note": "Najeďte na střed kružnice nebo střed rovné hrany a poté se pohybujte vodorovně nebo svisle, aby se zobrazilo dočasné tečkované vodítko.",
"prefs.sketch_tracking_points": "Vodítka zarovnání z koncových bodů a rohů při kreslení",
"prefs.sketch_tracking_points_note": "Když nástroj kreslení čeká na bod, najetí na konec úsečky nebo oblouku, roh obdélníku nebo volný bod ukáže stejné dočasné tečkované vodítko jako střed nebo střední bod. Vypnuto: jen středy a střední body.",
"prefs.sketching": "Kreslení",
"prefs.snap_drawing_note": "Při kreslení nebo přetahování bodu náčrtu.",
"prefs.source": "Zdroj",
@@ -2045,6 +2351,24 @@
"prefs.status_error": "Chyba",
"prefs.status_selected": "Vybráno",
"prefs.status_warning": "Varování",
"prefs.structure.appearance": "Vzhled",
"prefs.structure.appearance_note": "Barvy, text a usnadnění přístupu.",
"prefs.structure.in_profile": "V profilu",
"prefs.structure.layout": "Rozvržení",
"prefs.structure.layout_note": "Kde jsou umístěné části okna.",
"prefs.structure.look": "Zobrazení",
"prefs.structure.measure_pointer": "Měření a ukazatel",
"prefs.structure.mouse3d": "3D myš",
"prefs.structure.mouse3d_note": "SpaceMouse a SpaceNavigator.",
"prefs.structure.navigation_note": "Myš a touchpad. 3D myš má vlastní stránku.",
"prefs.structure.profile": "Profil",
"prefs.structure.profile_edited": "Změněno od uložení",
"prefs.structure.profile_hover": "Uloženo v profilech nastavení",
"prefs.structure.scale_percent": "{percent}%",
"prefs.structure.sketch": "Náčrt",
"prefs.structure.tools": "Nástroje",
"prefs.structure.tools_note": "Jak se chovají nástroje pro modelování.",
"prefs.structure.work": "Práce",
"prefs.supersampling_brief": "Vykreslí pohled větší a pak jej zmenší s filtrováním: velmi ostré, ale náročnější.",
"prefs.tab_accent_note": "Zvýrazňovací barva se řídí aktivní kartou",
"prefs.theme_file": "soubor motivu",
@@ -2056,6 +2380,16 @@
"prefs.theme_follow_off": "Vypnuto",
"prefs.theme_follow_stop": "Ukončit sledování",
"prefs.theme_import_hint": "Kliknutím vyberte soubor motivu, přetáhněte ho sem, nebo stiskněte Ctrl+V (na Macu Cmd+V) se zkopírovaným motivem",
"prefs.theme_option_opacity": "Neprůhlednost",
"prefs.theme_option_opacity_help": "Upravte neprůhlednost plovoucích panelů. Minimální čitelnost chrání text nad barvami pohledu.",
"prefs.theme_option_tab_colours": "Barvy karet",
"prefs.theme_option_tab_colours_help": "Použít pro každou kartu pásu karet barvy panelů a pohledu tohoto motivu.",
"prefs.theme_option_tab_fade_ms": "Přechod karet",
"prefs.theme_option_tab_fade_ms_help": "Prolnout barvy panelů a pohledu při přepínání karet. Nula přepíná okamžitě.",
"prefs.theme_options_badge": "Možnosti",
"prefs.theme_options_more": "Více · {count}",
"prefs.theme_options_reset": "Obnovit",
"prefs.theme_options_unavailable": "Na tomto zařízení nedostupné",
"prefs.theme_paste": "Vložit motiv",
"prefs.theme_paste_none": "Schránka neobsahuje žádný motiv SolidCraft",
"prefs.timeline_half_hour": "−30 min",
@@ -2077,6 +2411,8 @@
"prefs.under_cursor": "Pod kurzorem",
"prefs.units_precision": "Jednotky a přesnost",
"prefs.updates": "Aktualizace",
"prefs.value_boxes_in_view": "Zobrazovat hodnoty vedle jejich úchytů v pohledu",
"prefs.value_boxes_in_view_tip": "Hodnota příkazu (Vzdálenost, Poloměr…) v rámečku vedle jeho úchytu nad modelem. Vypnuto: zadáváte ji v okně příkazu, které po výběru převezme klávesnici, a nic nezakrývá model.",
"prefs.view": "Chování pohledu",
"prefs.view_confirm_corner": "OK a Zrušit v rohu pohledu",
"prefs.view_confirm_corner_note": "Když je otevřen dialog nebo náčrt, zaškrtnutí a křížek vpravo nahoře v pohledu provedou totéž co OK a Zrušit v dialogu, nebo náčrt dokončí a zruší. Navigátor pohledu se posune pod ně.",
@@ -2086,6 +2422,12 @@
"prefs.viewport_background": "Pozadí",
"prefs.viewport_background_colour": "Barva",
"prefs.viewport_background_theme": "Přechod motivu",
"prefs.viewport_section_status": "Zobrazovat stav řezu v pohledu",
"prefs.viewport_section_status_help": "Zobrazí nastavení řezu v pohledu. Escape a aktivní tlačítko na pásu karet ho vypnou. Vypnutím zůstanou dosavadní ovládací prvky řezu.",
"prefs.viewport_status_details": "Živé podrobnosti pohledu",
"prefs.viewport_status_details_help": "Upravujte nastavení aktivní analýzy a řezu ve standardních kartách podrobností. Vypnutím obnovíte klávesy analýzy jen pro čtení a dialog Řez.",
"prefs.viewport_status_summary": "Sbalit stavové položky pohledu",
"prefs.viewport_status_summary_help": "Sbalí tři nebo více stavových položek pohledu do jednoho souhrnného štítku. Vypnutím zůstanou všechny položky v plné řadě.",
"prefs.wheel": "Kolečko",
"prefs.wheel_trackpad": "Kolečko a trackpad",
"prefs.workspace": "Pracovní prostředí",
@@ -2964,7 +3306,9 @@
"render.output_ready": "Připraveno k vykreslení",
"render.output_run_check": "Spustit kontrolu",
"render.output_size_limit": "{method}: nejvýše {dimension} px na stranu a {pixels} pixelů. Největší vyhovující velikost: {width} × {height}.",
"render.output_size_method_profile": "Pro vykreslení {width} × {height} zvolte {method} s profilem prostředků CPU {profile}, nebo menší velikost.",
"render.output_size_ok": "Velikost je v pořádku · {width} × {height} px",
"render.output_size_profile": "Pro vykreslení {width} × {height} zvolte profil prostředků CPU {profile}, nebo menší velikost.",
"render.output_swap_orientation": "Prohodit šířku a výšku",
"render.output_tools_inspector": "Velikost a formát upravte v inspektoru Výstup.",
"render.output_view_image": "Zobrazit obrázek",
@@ -3177,6 +3521,7 @@
"render.size_custom": "Vlastní…",
"render.size_full_hd": "Full HD",
"render.size_hd": "HD",
"render.size_needs_profile": "{size} · vyžaduje {profile}",
"render.size_presets": "Předvolby velikosti",
"render.size_presets_pending": "Přijde s editorem Výstup",
"render.size_preview": "Náhled",
@@ -3464,6 +3809,24 @@
"sheet.flange_type_contour": "Kontura",
"sheet.flange_type_edge": "Hrana",
"sheet.no_body": "není žádné plechové těleso: začněte příkazem Příruba > Základ, nebo změňte desku na plech příkazem Převést na plech (vyberte její velkou rovnou plochu)",
"sheet.personal_rules.confirm_delete": "Potvrdit smazání",
"sheet.personal_rules.delete": "Smazat",
"sheet.personal_rules.delete_prompt": "Smazat toto osobní pravidlo? Pravidla, která už jsou v návrzích, se nezmění.",
"sheet.personal_rules.full": "Osobní knihovna už obsahuje 64 pravidel.",
"sheet.personal_rules.invalid_name": "Zadejte krátký název bez zalomení řádků a řídicích znaků.",
"sheet.personal_rules.invalid_values": "Doplňte hodnoty pravidla: všechny se musí v tomto návrhu dát vypočítat, tloušťka musí být kladná a K-faktor od 0 do 1.",
"sheet.personal_rules.missing": "Vybrané osobní pravidlo už není k dispozici.",
"sheet.personal_rules.name": "Název pravidla",
"sheet.personal_rules.name_exists": "Osobní pravidlo s tímto názvem už existuje. Použijte jiný název.",
"sheet.personal_rules.name_hint": "Jedinečný název",
"sheet.personal_rules.overwrite": "Uložit změny do vybraného osobního pravidla",
"sheet.personal_rules.rename": "Přejmenovat",
"sheet.personal_rules.rule": "Osobní pravidlo",
"sheet.personal_rules.save": "Uložit jako nové",
"sheet.personal_rules.scope": "Uloženo ve vašem profilu pro všechny návrhy.",
"sheet.personal_rules.select": "Vyberte pravidlo",
"sheet.personal_rules.title": "Osobní pravidla",
"sheet.personal_rules.unsupported": "Toto pravidlo má hodnoty, které tato verze nedokáže použít.",
"shortcut.json_error": "parametry musí být ve formátu JSON: {error}",
"shortcut.no_command": "příkaz `{id}` neexistuje; text před JSON musí být ID příkazu",
"shortcut.pin": "Připnout nahoru do pole S",
@@ -3500,8 +3863,10 @@
"sketch_text.align_right": "Vpravo",
"sketch_text.bold": "Tučné",
"sketch_text.builtin_font": "{family} (vestavěné)",
"sketch_text.formula": "Začněte znakem = a sestavte slova z parametrů: ='W' + number(Width)",
"sketch_text.italic": "Kurzíva",
"sketch_text.loading_fonts": "Hledání nainstalovaných písem…",
"sketch_text.no_bold": "Vestavěné písmo nemá tučný řez: zvolte nainstalované písmo",
"sketch_text.on_path": "Text sleduje svou cestu: umístění určuje křivka",
"sketch_text.path_clear": "Odpojit text od křivky",
"sketch_text.path_hint": "Křivka náčrtu, kterou text sleduje: klikněte sem a poté na křivku",
@@ -3640,6 +4005,8 @@
"ui.3d_mouse_section": "3D myš",
"ui.3d_mouse_show_in_view": "Zobrazit 3D myš ve 3D pohledu",
"ui.3d_mouse_show_in_view_tip": "Obrázek vaší 3D myši v levém dolním rohu, který se hýbe s ní.",
"ui.3d_mouse_sketch_orbit": "Otáčet náčrty 3D myší",
"ui.3d_mouse_sketch_orbit_tip": "3D myš otáčí pohled i při otevřeném náčrtu, na který se díváte zpříma, stejně jako to umí myš. Vypnuto: náčrt posouvá a přibližuje, dokud pohled nenakloníte.",
"ui.3d_mouse_skip": "Moje zařízení to neumí",
"ui.3d_mouse_skip_tip": "Přeskočí tento pohyb v obou směrech a kalibrace ho vynechá.",
"ui.3d_mouse_speed": "Rychlost 3D myši",
@@ -3708,6 +4075,7 @@
"ui.agent_chat_auth_terminal": "Spusťte toto v terminálu a pak znovu stiskněte Připojit:",
"ui.agent_chat_auth_title": "Přihlásit se k agentovi",
"ui.agent_chat_cancel": "Zrušit",
"ui.agent_chat_cannot_start": "Nainstalováno, ale nespouští se: {error}",
"ui.agent_chat_changes": "Změny: {n}, jeden krok zpět",
"ui.agent_chat_changes_n": "Změn: {n}",
"ui.agent_chat_changes_of": "Změny: {n}/{limit}",
@@ -3800,9 +4168,12 @@
"ui.agent_chat_queued_stopped": "Ve frontě (zastaveno, neodesláno)",
"ui.agent_chat_refresh": "Obnovit",
"ui.agent_chat_refused": "Pro agenta nepovoleno: {reason}",
"ui.agent_chat_reinstall": "{agent} je nainstalován ({program}), ale při kontrole SolidCraftu se nespustil: {error}\nJeho instalace může být neúplná nebo vytvořená pro jiný typ počítače. Nainstalujte jej znovu příkazem `{install}`, ověřte v terminálu, že vypíše svou verzi, a pak stiskněte Obnovit.",
"ui.agent_chat_remove": "Odebrat z fronty",
"ui.agent_chat_remove_file": "Odebrat z této zprávy",
"ui.agent_chat_remove_imported": "Odebrat z této zprávy; díl zůstane v návrhu (Zpět jej odstraní)",
"ui.agent_chat_reply_cut_off": "Odpověď dosáhla limitu délky dříve, než skončila, takže může být neúplná. Požádejte agenta, aby pokračoval, nebo o kratší odpověď.",
"ui.agent_chat_reply_declined": "Model odmítl na tuto zprávu odpovědět.",
"ui.agent_chat_retry": "Zkusit znovu",
"ui.agent_chat_right": "Vpravo",
"ui.agent_chat_save": "Uložit",
@@ -3861,12 +4232,17 @@
"ui.ai_copy_suffix": "kopie",
"ui.ai_custom_url": "Vlastní URL",
"ui.ai_default": "Výchozí",
"ui.ai_edit": "Upravit",
"ui.ai_edit_agent_title": "Upravit agenta",
"ui.ai_edit_gone": "Tento agent byl odebrán, takže není co ukládat.",
"ui.ai_edit_tip": "Změní název, příkaz nebo endpoint tohoto agenta. Uložený klíč zůstane skrytý.",
"ui.ai_http_busy": "endpoint je zaneprázdněný nebo překročil limit; zkuste to později",
"ui.ai_http_key": "endpoint odmítl klíč: zkontrolujte jej v Předvolby > AI",
"ui.ai_http_not_found": "takový endpoint nebo model neexistuje: zkontrolujte základní URL a název modelu",
"ui.ai_http_too_large": "konverzace je pro tento endpoint příliš velká; začněte nový chat",
"ui.ai_key": "API klíč",
"ui.ai_key_hint": "volitelné; uloženo v systémové klíčence",
"ui.ai_key_keep_hint": "nechte prázdné, aby se zachoval uložený klíč",
"ui.ai_key_needs_https": "Klíč se odesílá pouze přes HTTPS nebo na tento počítač.",
"ui.ai_key_note": "Ukládá se v systémové klíčence, nikdy v nastavení SolidCraftu. Pro místní server nechte prázdné.",
"ui.ai_keychain_error": "Systémová klíčenka odmítla: {error}",
@@ -3893,11 +4269,15 @@
"ui.ai_permissions": "Oprávnění",
"ui.ai_preset": "Předvolba",
"ui.ai_protocol": "Protokol",
"ui.ai_reasoning_effort": "Úroveň uvažování",
"ui.ai_reasoning_effort_field_hint": "prázdné = výchozí hodnota poskytovatele",
"ui.ai_reasoning_effort_hint": "Volitelné. Odesílá se na endpoint jako `reasoning_effort`; přípustné hodnoty se u jednotlivých poskytovatelů liší (například `low`, `high` nebo `max`). Hodnotu, kterou zde nastavíte, SolidCraft nikdy nenahradí. Ponechte prázdné, aby se nic neodeslalo a zůstala výchozí hodnota poskytovatele.",
"ui.ai_remove": "Odebrat",
"ui.ai_request_timed_out": "Model odpovídal déle než {seconds} s. Časový limit požadavku pro tento endpoint můžete zvýšit v Předvolbách › Asistent.",
"ui.ai_request_timeout": "Časový limit požadavku",
"ui.ai_request_timeout_hint": "Jak dlouho smí trvat jeden požadavek na model tohoto endpointu, od 30 s do hodiny. U pomalého místního modelu jej zvyšte.",
"ui.ai_reset": "Obnovit",
"ui.ai_save": "Uložit",
"ui.ai_settings": "Nastavení AI…",
"ui.ai_show_features": "Zobrazit funkce AI",
"ui.ai_show_features_note": "Chat s agentem: panel, ve kterém na otevřeném návrhu pracuje kódovací agent, kterého již používáte, nebo model na zvoleném endpointu. Vypnuto: žádné tlačítko AI, zkratka, položka nabídky ani panel a nic se nehledá ani nespouští.",
@@ -4057,6 +4437,7 @@
"ui.dark": "Tmavý",
"ui.default_modelling_orientation": "Výchozí orientace modelování",
"ui.delete": "Smazat",
"ui.delete_select_first": "Nejprve vyberte, co smazat: prvky, tělesa, komponenty nebo geometrii náčrtu",
"ui.depth": "Hloubka",
"ui.design": "Návrh",
"ui.design_properties.author": "Autor",
@@ -4071,6 +4452,40 @@
"ui.design_properties.project": "Projekt",
"ui.design_properties.revision": "Revize",
"ui.design_saved": "Uloženo do {path}",
"ui.details_access_caption": "Plochy ukazují, zda se k nim nástroj dostane ze zvoleného směru.",
"ui.details_angle": "Úhel",
"ui.details_continuity_caption": "Upravte vybraný spoj. Ostatní spoje si ponechají svá nastavení.",
"ui.details_continuity_stale": "Dřívější geometrie: spusťte analýzu znovu, abyste mohli tento spoj upravit nebo zarámovat.",
"ui.details_copy_list": "Kopírovat seznam",
"ui.details_curvature": "Tolerance křivosti",
"ui.details_curvature_caption": "Plochy se barví podle místního poloměru křivosti.",
"ui.details_direction": "Směr nástroje",
"ui.details_draft_caption": "Plochy se barví podle úhlu ke směru vyjímání.",
"ui.details_edit_seam": "Upravit spoj",
"ui.details_fixture": "Ukázková komponenta — pouze vzorová data",
"ui.details_fixture_caption": "Ukázková komponenta s ilustračními hodnotami; nejde o výsledek modelu.",
"ui.details_fixture_problem": "Příklad nálezu s problémem",
"ui.details_fixture_readout": "Příklad naměřené hodnoty",
"ui.details_flip": "Převrátit",
"ui.details_gap": "Mezera",
"ui.details_hatch": "Šrafovat řezné plochy",
"ui.details_jump": "Skok křivosti",
"ui.details_key": "Legenda",
"ui.details_offset": "Odsazení",
"ui.details_plane": "Rovina",
"ui.details_pull": "Směr vyjímání",
"ui.details_radius": "Poloměr",
"ui.details_readout": "Odečet",
"ui.details_samples": "Vzorky",
"ui.details_seam": "{body} · Hrana {edge}",
"ui.details_settings": "Nastavení",
"ui.details_sharp_gap": "Zlom nebo mezera",
"ui.details_show_all": "Zobrazit všechny ({count})",
"ui.details_smooth": "Hladký",
"ui.details_stripes": "Pruhy",
"ui.details_target": "Zarámovat geometrii",
"ui.details_worst_seams": "Nejhorší spoje",
"ui.details_zebra_caption": "Odražené pruhy ukazují, jak hladce plochy navazují.",
"ui.diameter": "Průměr",
"ui.dimension": "Kóta",
"ui.direct_interaction": "Přímá interakce",
@@ -4115,6 +4530,7 @@
"ui.edit_in_place_saved_elsewhere": "Díl byl uložen do jiného souboru; sestava stále odkazuje na {name}",
"ui.edit_in_place_wait": "Počkejte, až skončí to, co v návrhu běží",
"ui.edit_section_analysis": "Upravit analýzu řezu",
"ui.edit_sketch_empty": "Žádné náčrty k úpravě",
"ui.ellipse": "Elipsa",
"ui.emboss_wrap_note": "Profily z navzájem kolmých úseček, tečné k jednomu podporovanému válci, se obalí automaticky. Cíl zvolíte výběrem stěny.",
"ui.end_radius": "Koncový poloměr",
@@ -4125,12 +4541,15 @@
"ui.equation_explicit": "Explicitní",
"ui.equation_form": "Tvar",
"ui.equation_note": "Proměnná je prosté číslo: sin(t) ji bere v radiánech. Výsledek bez jednotky je v jednotce návrhu.",
"ui.equation_note_range": "Proměnná je délka, stejně jako její rozsah: kombinujte ji s parametry délky a pro sin() ji vydělte délkou. Výsledek bez jednotky je v jednotce návrhu.",
"ui.equation_parametric": "Parametrický",
"ui.equation_variable_unit": "Proměnná má jednotku rozsahu",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Ekvivalentní poloměr",
"ui.expand": "Rozbalit",
"ui.explode_needs_two_components": "Rozložený pohled odtahuje komponenty od sebe, takže návrh potřebuje dvě nebo více komponent (Nová komponenta, Vložit návrh nebo Vytvořit komponenty z těles)",
"ui.exportDxf": "Exportovat DXF…",
"ui.export_ellipsis_keymap": "Exportovat…",
"ui.export_keymap_tip": "Klávesy, oblíbené z vyhledávání S a panel nástrojů jako soubor",
@@ -4291,6 +4710,7 @@
"ui.insert_design.saved_file": "{name} obsahuje neuložené změny, proto byl vložen jeho uložený soubor. Uložte jej a pak použijte Aktualizovat odkazy, aby se změny převzaly.",
"ui.insert_design.unsaved": "Neuložené změny",
"ui.inspect": "Analýza",
"ui.instances": "Instance",
"ui.intersect": "Průnik",
"ui.isolate": "Izolovat",
"ui.join": "Sjednotit",
@@ -4299,12 +4719,14 @@
"ui.joints": "Klouby",
"ui.keyboard_shortcuts": "Klávesové zkratky",
"ui.language": "Jazyk",
"ui.lasso_select": "Laso (tažením nakreslete volnou smyčku: vybere vše, co leží celé uvnitř)",
"ui.layout_compact": "Kompaktní",
"ui.layout_floating": "Plovoucí",
"ui.length": "Délka",
"ui.length_decimals": "Desetinná místa délky",
"ui.light": "Světlý",
"ui.line": "Úsečka",
"ui.line_arc_hint": "Tečný oblouk: klikněte na konec oblouku. Znovu setrvejte na posledním bodu pro úsečky; dokončíte pravým kliknutím nebo klávesou Esc",
"ui.link_copies": "Propojit shodné kopie",
"ui.link_copies_keep": "Ponechat",
"ui.link_copies_link": "Propojit",
@@ -4393,6 +4815,7 @@
"ui.part_size_shared": "Přestaví díl a nahradí všechny přidané prvky. Aktualizují se všechny výskyty této komponenty.",
"ui.paste": "Vložit",
"ui.path": "Cesta",
"ui.pattern_object_type_tip": "Tělesa: pevné tvary vybrané v pohledu nebo v prohlížeči; každé se zkopíruje celé.\nPrvky: kroky Historie, například vysunutí nebo otvor, vybrané v Historii nebo na ploše, kterou vytvořily; krok se zopakuje.\nNáčrt není ani jedno: opakujte jeho křivky vlastním nástrojem Pole nebo Zrcadlit v náčrtu, nebo jej nejprve vysuňte.",
"ui.pattern_on_path": "Pole po cestě",
"ui.perforate_margin_default": "z průměru",
"ui.perforate_pitch": "Rozteč",
@@ -4419,12 +4842,17 @@
"ui.plugins_skipped": "Složek, které nešlo přečíst: {count}.",
"ui.plugins_version": "{version}",
"ui.point": "Bod",
"ui.point_cloud_add_filter": "Přidat filtr…",
"ui.point_cloud_auto_range": "Automatický rozsah",
"ui.point_cloud_color_by": "Barva podle",
"ui.point_cloud_file_colors": "Barvy ze souboru",
"ui.point_cloud_filter_by": "Filtrovat podle",
"ui.point_cloud_height_high": "Nejvyšší",
"ui.point_cloud_height_low": "Nejnižší",
"ui.point_cloud_legend_filter": "Zobrazeno a skryto v legendě výše",
"ui.point_cloud_no_file_colors": "Soubor neobsahuje žádné barvy",
"ui.point_cloud_pause": "Pozastavit",
"ui.point_cloud_play": "Přehrát",
"ui.point_cloud_single_color": "Jedna barva",
"ui.point_cloud_size": "Velikost bodů",
"ui.point_cloud_units": "Jednotky souboru",
@@ -4433,9 +4861,9 @@
"ui.polygon": "Mnohoúhelník",
"ui.preferences": "Předvolby",
"ui.press_a_key": "stiskněte klávesu…",
"ui.print_face_body_not_sent": "Těleso této plochy se neodesílá: nejprve ho přidejte do Tělesa",
"ui.print_face_cleared": "{body}: tisková plocha zrušena",
"ui.print_face_input": "Tisková plocha",
"ui.print_face_one_body": "Tisková plocha patří jednomu tělesu: odešlete toto těleso samostatně, abyste ji změnili",
"ui.print_face_pick": "Vyberte rovinnou plochu objemového tělesa, aby se stala tiskovou plochou",
"ui.print_face_set": "{body}: tisková plocha nastavena; Odeslat do sliceru položí těleso na ni",
"ui.profile": "Profil",
@@ -4453,6 +4881,7 @@
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Měření…",
"ui.properties.measuring_bodies": "Měření… {done} z {total} těles",
"ui.properties.measuring_failed": "Měření se zastavilo před dokončením.",
"ui.properties.principal_axis": "Hlavní osa {number}",
"ui.properties.principal_moments": "Hlavní momenty setrvačnosti",
@@ -4520,6 +4949,7 @@
"ui.selectOther": "Vybrat jiné…",
"ui.selectTangentChain": "Vybrat tečný řetězec",
"ui.select_all": "Vybrat vše",
"ui.select_components_by_face": "Vybírat komponenty (plocha vybere svou komponentu)",
"ui.selection": "Výběr",
"ui.selection_modifiers": "Modifikátory výběru",
"ui.selection_shift_add_only": "Shift+klik pouze přidává",
@@ -4561,6 +4991,11 @@
"ui.sketch_intersect_selection_filter": "Filtr výběru",
"ui.sketch_modifiers": "Modifikátory náčrtu",
"ui.sketch_project_geometry": "Geometrie",
"ui.sketch_report.all_constrained": "Vše je plně zavazbeno.",
"ui.sketch_report.dof": "Stupně volnosti",
"ui.sketch_report.loose": "Není plně zavazbeno",
"ui.sketch_report.status": "Stav",
"ui.sketch_report.title": "Zpráva o náčrtu",
"ui.sketch_scale": "Měřítko náčrtu",
"ui.sketches": "Náčrty",
"ui.slice": "Řez",
@@ -4656,12 +5091,15 @@
"ui.view_angles": "Úhly pohledu",
"ui.view_angles_convention": "Úhly ve stupních kolem svislé osy. Stáčení 0° je pohled zepředu, 90° zleva, −90° zprava, 180° zezadu; náklon 90° je pohled shora; kladné natočení otáčí model ve směru hodinových ručiček.",
"ui.view_angles_help": "Zobrazuje náklon, stáčení a natočení pohledu ve stupních a jeho projekci pod orientačním ovladačem. Kliknutím na údaj zadáte přesné úhly.",
"ui.view_angles_lock": "Zamknout {axis}",
"ui.view_angles_ortho": "Orto",
"ui.view_angles_persp": "Persp.",
"ui.view_angles_pitch": "Náklon",
"ui.view_angles_readout": "Náklon {pitch} · Stáčení {yaw} · Natočení {roll}",
"ui.view_angles_roll": "Natočení",
"ui.view_angles_unlock": "Odemknout {axis}",
"ui.view_angles_yaw": "Stáčení",
"ui.view_angles_zero": "Nastavit {axis} na 0°",
"ui.view_centre": "Střed pohledu",
"ui.viewport_status_clear": "Vypnout {name}",
"ui.viewport_status_clear_hint": "Vypnout {name} · Esc",
@@ -4670,7 +5108,14 @@
"ui.viewport_status_key": "Zobrazit legendu pro {name}",
"ui.viewport_status_minimum_radius": "Minimální poloměr",
"ui.viewport_status_pairs": "Dvojice: {count}",
"ui.viewport_status_section_hatch": "{setting} · šrafování",
"ui.viewport_status_section_plane": "Aktuální rovina",
"ui.viewport_status_section_tilted": "nakloněno · {offset}",
"ui.viewport_status_stripes": "Pruhy: {count}",
"ui.viewport_status_summary_clear": "Vypnout vše",
"ui.viewport_status_summary_heading": "V tomto pohledu",
"ui.viewport_status_summary_label": "{name} a další položky: {count}",
"ui.viewport_status_summary_more": "+{count}",
"ui.viewport_theme_follow": "Podle motivu",
"ui.visual_shaded_hidden_edges": "Stínovaný se skrytými hranami",
"ui.visual_shaded_with_edges": "Stínovaný s hranami",
+422 -1
View File
@@ -60,6 +60,7 @@
"BLEND SURFACE": "OVERGANGSFLADE",
"BOUNDARY SURFACE": "AFGRÆNSET OVERFLADE",
"BROWSER": "MODELTRÆ",
"Back to the original order": "Tilbage til den oprindelige rækkefølge",
"Ball": "Kugleled",
"Bar": "Stang",
"Base Center": "Bundens centrum",
@@ -595,6 +596,8 @@
"Snap to face and edge centres": "Snap til flade- og kantcentre",
"SolidCraft cannot submit reports directly. Submit on GitHub; no token is needed in the app.": "SolidCraft kan ikke indsende rapporter direkte. Indsend dem på GitHub; der skal ikke bruges noget token i appen.",
"SolidCraft closed before these designs were saved. Their last autosave can be opened.": "SolidCraft lukkede, før disse designs blev gemt. Den seneste automatiske lagring kan åbnes.",
"Sort A to Z": "Sortér A til Å",
"Sort Z to A": "Sortér Å til A",
"Spacing 2 must be a non-zero number": "Afstand 2 skal være et tal forskelligt fra nul",
"Spacing must be a non-zero number": "Afstand skal være et tal forskelligt fra nul",
"Specialise": "Specialisér",
@@ -790,6 +793,13 @@
"browser.sketch_attachment_lost": "{name} (tilknytning mistet)",
"browser.sketch_editing": "{name} (redigeres)",
"browser.sketch_name": "Skitse{number}",
"browser.sketches_to_parts_already_in_part": "allerede i deres del",
"browser.sketches_to_parts_design_body": "på et emne i selve designet",
"browser.sketches_to_parts_moved": "Flyttede {moved} skitser til den del, de ligger på",
"browser.sketches_to_parts_no_exact_attachment": "på en flade uden nøjagtig tilknytning",
"browser.sketches_to_parts_not_on_face": "ikke på en dels flade",
"browser.sketches_to_parts_part_missing": "deres del findes ikke længere",
"browser.sketches_to_parts_result": "Flyttede {moved} skitser til den del, de ligger på; {stayed} blev, hvor de var: {why}",
"browser.units": "Enheder: {units}",
"cam.flat": "Flad kontaktflade",
"cam.follower": "Følger",
@@ -819,6 +829,7 @@
"cmd.appearance_pick_up": "Optag udseende",
"cmd.appearance_replace": "Erstat udseende",
"cmd.assembly_bom": "Stykliste",
"cmd.assembly_mass_properties": "Masseegenskaber",
"cmd.body.print_face": "Printflade",
"cmd.body_rename": "Omdøb emne",
"cmd.browser_collapse_all": "Fold alle sammen",
@@ -856,6 +867,7 @@
"cmd.component_move_bodies": "Flyt emner til komponent",
"cmd.component_move_features": "Flyt features til komponent",
"cmd.component_move_sketches": "Flyt skitser til komponent",
"cmd.component_move_sketches_to_parts": "Flyt skitser til deres dele",
"cmd.component_paste_from_design": "Indsæt fra et andet design",
"cmd.component_paste_new": "Indsæt som ny",
"cmd.component_properties": "Komponentens fysiske egenskaber",
@@ -1191,6 +1203,7 @@
"cmd.sketch_spline_control_point_5": "Spline med kontrolpunkter (grad 5)",
"cmd.sketch_spline_fit_point": "Spline gennem punkter",
"cmd.sketch_spline_insert_point": "Tilføj splinepunkt",
"cmd.sketch_spline_remove_point": "Fjern splinepunkt",
"cmd.sketch_spline_reverse": "Vend splinens retning",
"cmd.sketch_spun_profile": "Omdrejningsprofil",
"cmd.sketch_toggle_diameter": "Skift mellem radius og diameter",
@@ -1244,6 +1257,7 @@
"cmd.view.render_browser": "Renderingsbrowser",
"cmd.view.render_dock": "Flyt renderingsdock",
"cmd.view.render_focus": "Fokusvisning af rendering",
"cmd.view.status_details": "Detaljer om visningsområdets status",
"cmd.view.status_items": "Statuselementer i visningsområdet",
"cmd.view_ambient_occlusion": "Ambient occlusion",
"cmd.view_angle_readout": "Visningsvinkler",
@@ -1282,8 +1296,14 @@
"color.hex_hint": "#rrggbb",
"color.hue": "Farvetone",
"color.linear": "Viser farveværdier i 0-1 lineært rum",
"color.recent": "Seneste farver",
"color.recent_help": "Farver, du vælger i et farvefelt, vises her",
"color.saturation": "Mætning (procent)",
"color.saturation_value": "Mætning og værdi",
"color.selected": "Valgt farve",
"color.step_down": "Ét trin ned",
"color.step_up": "Ét trin op",
"color.value": "Værdi, lysstyrken (procent)",
"config.column_filter_empty": "Ingen matchende kolonner",
"contact.components_count": "{count} komponenter",
"contact.enabled_label": "aktiveret",
@@ -1330,6 +1350,7 @@
"dialog.dimension_name": "Mål: {name}",
"dialog.edit_title": "REDIGÉR {title}",
"dialog.no_shown_body": "Intet vist emne at ændre: Vis et, eller vælg Nyt emne",
"dialog.pattern_sketch_not_object": "Vælg emner eller features: En skitse er ingen af delene. Gentag dens kurver med skitsens eget Mønster eller Spejling, eller ekstruder den først.",
"dialog.select": "↖ Vælg",
"dialog.selected_count": "↖ Valgte: {count}",
"dialog.selection_guidance": "Vælg et input for at ændre det. Klik på valgte objekter for at fjerne dem; Ctrl/Cmd-klik skifter også deres valgstatus. Gennemgå forhåndsvisningen, og tryk derefter på OK.",
@@ -1387,21 +1408,168 @@
"from the rule": "fra reglen",
"help.apache": "Apache-licens 2.0",
"help.appearance.assign": "Udseende giver de valgte emner, flader eller komponenter en farve eller et materialeudseende uden at ændre deres vægt. Brug det til at skelne dele fra hinanden eller til at se en overflade på forhånd.",
"help.assembly.bom": "Viser delene i designet eller en komponent med deres antal efter varenummer og kan gemme listen som CSV eller JSON. Brug den som stykliste til indkøb og montage.",
"help.attributions": "Tilskrivninger (ATTRIBUTION.md)",
"help.build": "Version {version} · commit {commit} · bygget {date}",
"help.canvas.decal": "Placerer et billede på en plan flade af modellen som en dekal. Brug den til at vise en etiket, et logo eller et trykt mønster på en del.",
"help.canvas.edit": "Ændrer et referencebillede: dets position, størrelse, vinkel, opacitet, spejling, synlighed eller navn. Brug den til at lægge et referencebillede op ad den skitse, du tegner efter.",
"help.canvas.insert": "Placerer et PNG- eller JPEG-billede på et plan eller en flade som gennemsigtig reference. Brug den til at tegne efter et foto eller en tegning i en skitse, hvor billedet er skaleret til en kendt størrelse.",
"help.component.break_link": "Løsriver en linket komponent fra dens designfil, så emnerne beholdes, som de er. Brug den, når delen ikke længere skal følge ændringer i originalfilen.",
"help.component.capture_position": "Registrerer positionerne af dele, du har flyttet i hånden, så de bliver delenes placering. Brug den, når du har trukket dele på plads, som intet led holder fast.",
"help.component.create": "Tilføjer en ny, tom komponent til designet inde i den aktive komponent, medmindre du vælger en anden overordnet komponent. Brug den til at give en ny del af en samling sin egen plads til emner og skitser.",
"help.component.finish_edit": "Afslut redigering gemmer den del, du redigerer på stedet, vender tilbage til dens samling og opdaterer samlingen ud fra den. Brug den, når dine ændringer af den tilknyttede del er færdige.",
"help.component.from_bodies": "Gør hvert valgt emne til sin egen komponent opkaldt efter emnet. Brug den, når et design bygget af løse emner skal blive en samling, hvis dele kan forbindes og flyttes.",
"help.component.insert_design": "Indsætter et andet gemt design som en komponent, der er linket til dets fil, med dets massive emner placeret som i originalen. Brug den til at genbruge en del i en samling og hente senere ændringer med Opdatér forbindelser.",
"help.component.properties": "Viser volumen, masse, massecentrum og inertimomenter for en komponent ud fra emnernes materialer. Brug den til at kontrollere vægt og balance for en samling.",
"help.component.revert_position": "Sætter dele, du har flyttet i hånden, tilbage, hvor de var, og kasserer flytninger, der ikke er registreret. Brug den til at fortryde prøveflytninger i en samling.",
"help.component.update_links": "Læser de linkede designfiler igen og erstatter emner, der er ændret. Brug den, når du har redigeret en del, som samlingen bruger.",
"help.config.configure": "Tilføjer parametre, features, materialer eller udseender som kolonner i konfigurationstabellen. Brug den til at lave varianter af ét design, f.eks. størrelser af en del.",
"help.config.preview": "Kontrollerer, at en række i konfigurationstabellen kan genopbygges, uden at designet eller dets historik ændres. Brug den, før du skifter til en variant, du er i tvivl om.",
"help.config.rules": "Viser konfigurationstabellens regler, dens rækker og hvilken række der er aktiv. Brug den til at se, hvordan et designs varianter er sat op.",
"help.config.table": "Viser konfigurationstabellen: én række pr. variant, én kolonne pr. parameter eller feature og om designet stadig svarer til den aktive række. Brug den til at gennemgå et designs varianter.",
"help.connect_note": "Genstart hver assistent for at indlæse SolidCraft-serveren. Hver fil blev sikkerhedskopieret som .bak, før den blev ændret.",
"help.connect_title": "Forbind AI-assistenter",
"help.construct.axis.edge": "Opretter en konstruktionsakse langs en ret kant eller skitselinje. Brug den som akse til en omdrejning, et cirkulært mønster eller et led.",
"help.construct.axis.normal_to_face": "Opretter en konstruktionsakse gennem et punkt, vinkelret på en flade. Brug den som en akse, der står lige ud fra en overflade.",
"help.construct.axis.through_cylinder": "Opretter en konstruktionsakse gennem midten af en cylinder-, kegle- eller torusflade eller en cirkulær kant. Brug den til at dreje eller gentage features omkring en rund del.",
"help.construct.axis.two_planes": "Opretter en konstruktionsakse, hvor to planer eller plane flader mødes. Brug den, når den ønskede akse er linjen mellem to flader.",
"help.construct.axis.two_points": "Opretter en konstruktionsakse gennem to punkter, hjørnepunkter eller skitsepunkter. Brug den til en akse mellem to kendte positioner.",
"help.construct.plane.along_path": "Opretter et konstruktionsplan vinkelret på en kant eller kurve i en given position langs den. Brug det til at skitsere en profil til et sweep eller et snit af en bane.",
"help.construct.plane.at_angle": "Opretter et konstruktionsplan, der er drejet med en vinkel fra et plan eller en flade omkring en akse eller kant. Brug det til skrå skitser, f.eks. et vinklet beslag.",
"help.construct.plane.midplane": "Opretter et konstruktionsplan midt mellem to planer eller plane flader eller halverende dem, hvor de mødes i en vinkel. Brug det som symmetriplan til spejling.",
"help.construct.plane.offset": "Opretter et konstruktionsplan parallelt med et plan eller en plan flade i en afstand eller gennem et punkt. Brug det til at skitsere i en bestemt højde over en flade.",
"help.construct.plane.perpendicular": "Opretter et konstruktionsplan, der indeholder en linje eller kant og står vinkelret på et plan eller en flade. Brug det til at skitsere opretstående på en model langs en kant.",
"help.construct.plane.tangent": "Opretter et konstruktionsplan, der berører en cylinder, kegle, kugle eller torus i et punkt. Brug det til at skitsere på siden af en rund del.",
"help.construct.plane.three_points": "Opretter et konstruktionsplan gennem tre punkter. Brug det til et plan, der er givet ved positioner på modellen, f.eks. tre hjørner.",
"help.construct.plane.two_edges": "Opretter et konstruktionsplan gennem to rette kanter eller linjer, der ligger i samme plan. Brug det til et plan på tværs af en del, f.eks. gennem to modstående kanter.",
"help.construct.point.along_path": "Opretter et konstruktionspunkt i en position langs en kant eller kurve. Brug det som reference et stykke henne ad en bane.",
"help.construct.point.center": "Opretter et konstruktionspunkt i midten af en cirkulær kant, en skitsecirkel eller -bue, en kugle eller en torus. Brug det som reference til huller, akser og led.",
"help.construct.point.edge_plane": "Opretter et konstruktionspunkt, hvor en kant eller linje skærer et plan eller en plan flade. Brug det til at markere, hvor en bane krydser et plan.",
"help.construct.point.three_planes": "Opretter et konstruktionspunkt, hvor tre planer eller plane flader mødes. Brug det som hjørnereference, også hvor modellen ikke har noget hjørnepunkt.",
"help.construct.point.two_edges": "Opretter et konstruktionspunkt, hvor to kanter eller linjer mødes eller kommer tættest på hinanden. Brug det som reference i et virtuelt hjørne.",
"help.construct.point.vertex": "Opretter et konstruktionspunkt på et hjørnepunkt eller skitsepunkt. Brug det som reference, der bliver stående, selv om skitsen eller emnet omkring det skjules.",
"help.contact.check": "Viser de par af dele i kontaktsæt, der går gennem hinanden i deres nuværende position. Brug den til at finde kollisioner, før du bevæger led eller kører en bevægelsesanalyse.",
"help.contact.create": "Samler to eller flere dele i et kontaktsæt, hvis emner holdes fra at gå gennem hinanden, mens led bevæger sig. Brug den til dele, der skal stoppe, når de rører hinanden, f.eks. et håndtag mod sit anslag.",
"help.contact.disable_all": "Slår kontakt fra, så ledbevægelser og bevægelsesanalyser ikke længere stopper, hvor dele rører hinanden. Brug den til at flytte dele frit igen eller til at holde en stor samling responsiv.",
"help.contact.edit": "Ændrer et kontaktsæt: de dele, det indeholder, dets navn eller om det er undertrykt; det kan også slette sættet. Brug den til at justere, hvilke dele der holdes fra at gå gennem hinanden.",
"help.contact.enable_all": "Lægger alle samlingens dele i ét kontaktsæt, så ingen to dele kan gå gennem hinanden, mens led bevæger sig. Brug den til et hurtigt tjek af en hel mekanisme.",
"help.contact.enable_sets": "Slår kontakt til for de kontaktsæt, du har defineret, så ledbevægelser og bevægelsesanalyser stopper, hvor deres dele ville gå gennem hinanden. Brug den til at få dine sæt tilbage, efter at du har slået kontakt fra.",
"help.contact.list": "Viser designets kontaktsæt, delene i hvert af dem og om kontakt er slået til. Brug den til at se, hvordan kontakt er sat op, før du bevæger samlingen.",
"help.document.inspect": "Viser et overblik over designet: dets komponenter, emner, skitser, features og parametre. Brug den til at finde rundt i et design, du ikke selv har bygget.",
"help.document.units": "Ændrer de enheder, designet viser længder i, f.eks. mm eller tommer. Geometrien beholder sin størrelse; kun visningen og almindelige tal følger med.",
"help.edit.checkpoint": "Husker designet, den aktive skitse og fortrydelseshistorikken, som de er nu. Brug den, før du prøver noget risikabelt, som du måske vil gå tilbage fra.",
"help.edit.restore_checkpoint": "Går tilbage til et kontrolpunkt, inklusive fortrydelseshistorikken. Brug den til at kassere alt, der er gjort siden kontrolpunktet, i ét trin.",
"help.explode.create": "Opretter en eksploderet visning, der skubber delene væk fra samlingens midte eller med de flytninger, du angiver. Brug den til at vise, hvordan en samling sættes sammen, til vejledninger eller præsentationer.",
"help.face.delete": "Slet flade fjerner de valgte flader og lader de omkringliggende flader lukke åbningen, eller lader åbningen stå åben som en overflade. Brug den til at fjerne en afrundet kant, et hul eller en forhøjning, der er i vejen.",
"help.file.insert_mesh": "Tilføjer en 3MF-, STL-, OBJ-, PLY- eller glTF-fil til designet som meshlegemer i en ny komponent. Brug den til at placere en hentet eller scannet model ved siden af dit design som reference.",
"help.file.insert_step": "Tilføjer en STEP-, IGES-, FreeCAD- eller Rhino-fil til designet som massive emner i en ny komponent; en samlings dele bliver til indlejrede komponenter. Brug den til at hente modeller fra leverandører eller andre CAD-programmer.",
"help.file.save_mesh": "Gemmer emner som et STL-, 3MF- eller OBJ-mesh med den glathed af buede flader, du vælger. Brug den til at klargøre dele til 3D-print eller til programmer, der læser mesh.",
"help.file.send_to_slicer": "Gemmer de valgte emner som en 3MF-fil og åbner den i den slicer, du vælger. Brug den til at gå fra modellen til print i ét trin.",
"help.font_details": "Brugerfladen bruger egui's indbyggede skrifttyper (Ubuntu Light og Hack, under Ubuntu Font Licence og MIT/Bitstream Vera-licensen; Noto Emoji og emoji-ikonskrifttypen, under OFL og MIT). Skitsetekst bruger Liberation Sans (SIL OFL 1.1). Crafting Apps' valgfrie skrifttypepakke, craft-fonts (BIZ UDPGothic, Shippori Mincho, BIZ UDMincho, Noto Sans CJK SC, Noto Sans Arabic; SIL OFL 1.1), er ikke inkluderet i SolidCraft-builds.",
"help.fonts": "Skrifttyper",
"help.frame.member": "Placerer en profil, f.eks. et rør eller en aluminiumsprofil, langs linjerne i en rammeskitse, ét element pr. linje. Brug den til at bygge rammer, stativer og svejste konstruktioner.",
"help.inspect.accessibility": "Farver de flader, et værktøj kan nå fra én retning, og dem, det ikke kan. Brug den til at kontrollere en del for bearbejdning eller støbning fra den side.",
"help.inspect.center_of_mass": "Viser massecentrum for emner, hvert for sig og alle samlet, ved ensartet massefylde. Brug den til at kontrollere balance og hvor en del vil vælte.",
"help.inspect.colored_components": "Giver hver komponent sin egen midlertidige farve uden at ændre udseender. Brug den til at kende delene i en samling fra hinanden med et enkelt blik.",
"help.inspect.compare": "Sammenligner to emner og viser, hvor det ene har materiale, som det andet ikke har, med volumen og afvigelse. Brug den til at kontrollere en ændret eller importeret del mod originalen.",
"help.inspect.continuity": "Kontrollerer, hvor glat flader mødes langs deres kanter: åbninger, knæk eller spring i krumning, og farver overgangene. Brug den til at finde steder, hvor overflader ikke går rent sammen.",
"help.inspect.curvature_comb": "Tegner kamme langs kurver, kanter eller flader, hvis tænder viser, hvor kraftigt de krummer. Brug den til at spotte flade steder, knæk og ujævn krumning.",
"help.inspect.curvature_map": "Farver flader efter, hvor kraftigt de krummer, rødt hvor radius er lille. Brug den til at finde snævre steder og vurdere, hvor glat en overflade er.",
"help.inspect.draft": "Farver flader efter deres slipvinkel i forhold til en udtræksretning og markerer dem med for lidt. Brug den til at kontrollere en del før sprøjtestøbning eller støbning.",
"help.inspect.environment_map": "Viser modellen med en reflekterende, spejlagtig finish. Brug den til at vurdere overfladernes forløb ud fra, hvordan refleksionerne løber hen over dem.",
"help.inspect.interference": "Finder emner, der overlapper, og viser hvert overlap med dets volumen. Brug den til at kontrollere en samling for dele, der støder sammen.",
"help.inspect.isocurve": "Tegner isoparametriske kurver på flader, det gitter overfladen er bygget på. Brug den til at se, hvordan en overflade forløber, og hvor kurverne samler sig.",
"help.inspect.measure": "Måler længder, afstande, vinkler, arealer og radier mellem det, du vælger, eller volumen og masse af emner. Brug den til at kontrollere størrelser og frigang.",
"help.inspect.minimum_radius": "Finder den mindste krumningsradius på kurver, kanter eller flader og hvor den er. Brug den til at kontrollere, at et værktøj eller en dyse kan følge formen.",
"help.inspect.section": "Skærer visningen op langs et plan og skraverer de snittede flader uden at ændre modellen. Brug den til at kigge ind i dele og samlinger.",
"help.inspect.zebra": "Viser sorte og hvide striber reflekteret på modellens flader. Brug den til at vurdere glathed: Striber, der knækker eller brydes ved en kant, viser en dårlig overgang.",
"help.joint.as_built": "Forbinder to dele, hvor de allerede er, uden at flytte nogen af dem, og angiver, hvordan de stadig må bevæge sig. Brug den til dele, du allerede har placeret i deres endelige position.",
"help.joint.cam": "Forbinder en roterende knast med en følger, så følgeren glider eller svinger, når knastens kontur passerer under den. Brug den til knaster, excentre og ventildrev.",
"help.joint.create": "Forbinder to dele ved de lednulpunkter, du vælger, og flytter den anden del på plads; ledtypen bestemmer, hvordan de stadig må bevæge sig. Brug den til at bygge en samling, hvis dele bevæger sig som den virkelige mekanisme.",
"help.joint.drive": "Sætter et leds vinkel eller afstand og bevæger delene med, inden for dets grænser; forbundne led og lukkede sløjfer følger med. Brug den til at kontrollere, at en mekanisme bevæger sig som tilsigtet.",
"help.joint.gear": "Forbinder to roterende led med et tandhjulsforhold, så drejning af det ene drejer det andet. Brug den til ligetandede tandhjul og ringhjul, med forholdet ud fra delecirkelradier eller tandantal.",
"help.joint.limits": "Angiver, hvor langt et led må dreje eller glide, som minimum og maksimum, eller fjerner grænserne. Brug den til at holde et hængsel, et glideled eller et håndtag inden for dets virkelige bevægelsesområde.",
"help.joint.motion_link": "Kobler to led med et forhold og en forskydning, så bevægelse af det ene flytter det andet. Brug den til en fast sammenhæng mellem led, som Tandhjul, Tandstang og tandhjul eller Skrue ikke dækker.",
"help.joint.origin": "Placerer et navngivet lednulpunkt på en del: i midten af en flade eller rund ende, midt på en kant, i et hjørne eller i et punkt. Brug den til at forberede, hvor led sættes fast; et nulpunkt valgt på en flade følger den, når delen ændrer størrelse.",
"help.joint.rack_pinion": "Forbinder et roterende tandhjul med en glidende tandstang, så tandstangen flytter sig lige så langt, som tandhjulets delecirkel ruller. Brug den til tandstangsdrev, styretøj og lineære slæder.",
"help.joint.reach": "Flytter et punkt på en del mod et mål ved at ændre leddene i dets kæde inden for deres grænser. Brug den til at stille en mekanisme ind efter, hvor dens ende skal være, f.eks. spidsen af en robotarm.",
"help.joint.rigid_group": "Låser de valgte dele sammen, som de er, så de bevæger sig som én. Brug den til dele, der hører sammen og ikke skal have nogen bevægelse mellem sig.",
"help.joint.screw": "Forbinder drejning og glidning ved hjælp af en stigning, så hver omdrejning flytter delen så langt. Brug den til ledeskruer, bolte og gevindspindler.",
"help.library.apply": "Anvender et materiale eller udseende fra en lokal biblioteksfil på emner, flader eller komponenter. Brug den til at genbruge materialer, du har gemt fra et andet design.",
"help.library.export": "Gemmer designets materialer og udseender i en biblioteksfil. Brug den til at dele dem eller genbruge dem i andre designs.",
"help.library.inspect": "Kontrollerer en biblioteksfil og viser dens materialer og udseender uden at ændre designet. Brug den til at se, hvad et bibliotek indeholder, før du anvender det.",
"help.licences": "Licenser",
"help.material.assign": "Fysisk materiale angiver, hvad de valgte emner er lavet af, f.eks. stål, aluminium eller ABS. Brug det, så masse og vægt svarer til den virkelige del.",
"help.material.properties.validate": "Kontrollerer et materialedatakort for konsistente tal og manglende værdier. Brug den, før du støtter dig til dataene for masse eller stivhed.",
"help.mesh.convert": "Genopbygger et meshlegeme, f.eks. en STL, som et redigerbart massivt emne med plane og cylindriske flader. Brug den til at ændre importerede mekaniske dele som et modelleret emne.",
"help.mit": "MIT-licens",
"help.motion.study": "Sætter ledværdier i trin langs en tidslinje og afspiller dem som en animation. Brug den til at se en mekanisme bevæge sig gennem en sekvens og kontrollere frigang undervejs.",
"help.motion.trace": "Sporer den bane, et punkt på en del følger, mens en bevægelsesanalyse afspilles, eller et led bevæges, og beholder den som en 3D-skitsekurve, når du bekræfter. Brug den til at se, hvor en mekanisme når hen, eller til at bygge videre på dens bane.",
"help.notice": "NOTICE",
"help.occurrence.ground": "Fastgør en del på plads eller frigør den igen, så led flytter de andre dele rundt om den. Brug den til stellet eller basen, som resten af samlingen er bygget på.",
"help.occurrence.move": "Flyt komponentforekomst flytter en del i samlingen kun langs de frihedsgrader, som dens led tillader. Vælg en flade på delen, og træk derefter i en tilgængelig pil eller bue.",
"help.parameters.change": "Redigér parametre åbner tabellen med navngivne værdier og udtryk, der styrer designets mål. Brug den til at ændre en størrelse ét sted, så alle features, der bruger den, følger med.",
"help.parameters.export": "Gemmer designets parametre som CSV eller JSON. Brug den til at redigere dem i et regneark eller flytte dem til et andet design.",
"help.parameters.graph": "Viser, hvilke parametre og features der bruger hvilke andre, og eventuelle sløjfer eller fejl imellem dem. Brug den til at se, hvad en ændring af en parameter vil påvirke.",
"help.parameters.import": "Læser parametre fra CSV eller JSON ind i designet, enten alle eller ingen. Brug den til at hente værdier fra et regneark eller et andet design.",
"help.parameters.move": "Flytter en brugerparameter før eller efter en anden på listen. Brug den til at holde beslægtede parametre samlet.",
"help.parts.fastener": "Tilføjer en standardskrue, bolt, møtrik, skive, stift eller leje i den størrelse, du vælger. Placeret på et hul sidder den fast i hullet med et led, så du ikke selv skal modellere befæstelseselementer.",
"help.parts.insert": "Indsætter en standarddel i den familie, størrelse og længde, du vælger. Placeret på kanten eller væggen af et hul sidder den fast på hullet med et stivt led.",
"help.parts.library": "Åbner standarddelene: skruer, bolte, møtrikker, skiver, stilleskruer, dyvler og lejer i standardstørrelser. Brug den til at tilføje en standarddel i stedet for selv at modellere den.",
"help.parts.resize": "Ændrer størrelsen eller længden af en indsat standarddel og genopbygger den; dens led holder den på plads. Brug den, når en skrue viser sig at være for lang, eller et hul skal have en anden størrelse.",
"help.plastic.assign_rule": "Tildeler en plastregel til emner, så deres plastfeatures bruger dens slipvinkel og frigang som standard. Brug den til at sætte en sprøjtestøbt del op én gang for alle dens features.",
"help.plastic.boss": "Tilføjer en skruebøsning på en flade: en søjle med valgfrit hul, slipvinkel, afrunding i foden og understøttende ribber. Brug den til skruepunkter i sprøjtestøbte eller printede kabinetter.",
"help.plastic.lip": "Tilføjer en læbe eller en tilhørende not langs kanten af et udhulet emne. Brug den, så to kabinethalvdele passer ind i hinanden og lukker tæt.",
"help.plastic.manage_rules": "Opretter og redigerer plastregler: materiale, vægtykkelse, radier, frigang og slipvinkel. Brug dem til at holde features på en sprøjtestøbt del ensartede.",
"help.plastic.rest": "Tilføjer en understøtning på en flade: en rund eller rektangulær pude, massiv eller hul, med slipvinkel. Brug den som støtte eller afstandsstykke i et sprøjtestøbt kabinet.",
"help.plastic.snap_fit": "Tilføjer en snapkrog på en flade med dens længde, tykkelse og hage. Brug den til at klikke dele sammen uden skruer.",
"help.pointcloud.insert": "Indsæt en PLY-, XYZ- eller PTS-scanning som en punktsky ved siden af modellen. Brug den som reference, når du bygger en model ud fra målte data.",
"help.sheet.convert": "Gør en flad plade eller et udhulet emne med ensartet tykkelse til et pladelegeme med bukninger ved de kanter, du vælger. Brug den til at gøre en eksisterende del udfoldelig.",
"help.sheet.export_bend_table": "Gemmer bukketabellen for et pladelegeme som CSV eller JSON: vinkler, radier og bukkepositioner i udfoldningen. Brug den til kantpressen eller værkstedet.",
"help.sheet.export_dxf": "Gemmer udfoldningen som DXF med konturer, bukkelinjer og valgfrie bukkenoter. Brug den til laser-, plasma- eller vandskæring.",
"help.sheet.flange": "Tilføjer en flange: en basisplade ud fra en skitse, en væg langs en åben skitsekontur eller en bukket væg på pladens kanter. Brug den til at opbygge pladedele.",
"help.sheet.flat_pattern": "Opretter udfoldningen af et pladelegeme med dets størrelse, udskæringer og bukkelinjer. Brug den til at kontrollere tilskæringen, før du skærer den ud.",
"help.sheet.fold": "Bukker en plade langs en skitselinje med en vinkel og radius. Brug den til at folde en flad plade, efter at du har skåret features i den.",
"help.sheet.hem": "Ombukker en pladekant over sig selv. Brug den til sikre, stive kanter uden skarpe grater.",
"help.sheet.manage_rules": "Opretter og redigerer pladeregler: tykkelse, bukkeradius, K-faktor, aflastninger og mellemrum. Brug dem til at tilpasse materialet og værktøjerne på dit værksted.",
"help.sheet.path_flange": "Tilføjer en kæde af flanger langs en pladekant efter en åben kæde af skitselinjer. Brug den til profiler som en U- eller Z-form i ét trin.",
"help.sheet.perforate": "Tilføjer et felt af huller over hele den flade plade i et forskudt eller kvadratisk mønster. Brug den til ventilationsåbninger, riste og lettere paneler.",
"help.sheet.refold": "Bukker et udfoldet pladelegeme sammen igen. Brug den, når du har tilføjet features til den flade plade.",
"help.sheet.unfold": "Folder alle bukninger i et pladelegeme ud. Brug den til at tilføje huller eller udskæringer, der skal krydse en bukning, og buk derefter tilbage.",
"help.sketch.arc.center_point": "Tegner en cirkelbue omkring et centrumpunkt fra et startpunkt til et slutpunkt. Brug den, når buens centrum er kendt, f.eks. en radius omkring et hul eller en omdrejningstap.",
"help.sketch.arc.tangent": "Tegner en bue, der starter ved enden af en linje eller bue og fortsætter tangentielt til den. Brug den til at føre en kæde videre med en blød bøjning i stedet for et hjørne.",
"help.sketch.arc.three_point": "Tegner en bue fra et startpunkt til et slutpunkt gennem et tredje punkt. Brug den, når buen skal gå gennem givne punkter i stedet for omkring et kendt centrum.",
"help.sketch.arc3d": "Tegner en nøjagtig cirkelbue i rummet gennem tre punkter, med 3D-skitse slået til. Brug den til bøjninger i baner og styrekurver, der forlader skitseplanet.",
"help.sketch.auto_constrain": "Tilføjer de bindinger, skitsen næsten allerede har, f.eks. vandret, parallel eller sammenfaldende, og målsætter den derefter, til den er fuldt bundet. Brug den til at låse en groft tegnet skitse i ét trin.",
"help.sketch.auto_constrain_from_datum": "Virker som Automatisk binding, men måler positionerne fra et referencepunkt, du vælger, i stedet for nulpunktet. Brug den, når delen er tegnet ud fra ét referencepunkt, f.eks. et hjørne eller et hul.",
"help.sketch.blend_curve": "Forbinder enderne af to kurver med en glat spline, der er tangent til begge, eller også krumningskontinuert, hvis du vælger det. Brug den til at bygge bro over et mellemrum mellem kurver uden knæk.",
"help.sketch.break": "Deler en kurve i stykker, hvor andre kurver krydser den, eller i punkter, du placerer på den. Brug den, når en del af en kurve skal have sin egen binding eller slettes for sig.",
"help.sketch.cancel": "Forlader skitsen og kasserer alt, der er ændret, siden den blev oprettet eller åbnet til redigering. Fortryd bringer ændringerne tilbage.",
"help.sketch.centerline": "Skifter linjer mellem normale linjer og centerlinjer, akser som profiler ikke tager med. Brug en centerlinje som akse til en omdrejning, en spejling eller en symmetribinding.",
"help.sketch.chamfer.distance_angle": "Affaser hjørnet mellem to linjer, angivet ved en afstand langs den første linje og en vinkel. Brug den, når en tegning angiver affasningen som en længde og en vinkel, f.eks. 2 mm × 30°.",
"help.sketch.chamfer.equal_distance": "Affaser hjørnet mellem to linjer med samme afstand tilbage langs begge. Brug den til den sædvanlige 45°-affasning på en kontur.",
"help.sketch.chamfer.two_distance": "Affaser hjørnet mellem to linjer, angivet ved en separat afstand langs hver linje. Brug den til affasninger, der ikke er 45°, angivet som to længder.",
"help.sketch.circle.center": "Tegner en cirkel ud fra dens centrum og diameter. Brug den til huller, bøsninger og andre runde features, hvor centrum er kendt.",
"help.sketch.circle.three_point": "Tegner en cirkel gennem tre punkter. Brug den, når cirklen skal gå gennem givne punkter, f.eks. på eksisterende geometri.",
"help.sketch.circle.three_tangent": "Tegner en cirkel, der berører tre linjer, cirkler eller buer. Brug den til at passe en cirkel ind i rummet mellem tre kurver, f.eks. den indskrevne cirkel i en trekant.",
"help.sketch.circle.two_point": "Tegner en cirkel ud fra de to ender af dens diameter. Brug den, når cirklens kantpunkter er kendt frem for dens centrum.",
"help.sketch.circle.two_tangent": "Tegner en cirkel af en given størrelse, der berører to linjer, cirkler eller buer. Brug den til en afrunding med fast radius mellem to kurver.",
"help.sketch.conic": "Tegner en keglesnitskurve mellem to endepunkter, formet af et toppunkt og en rho-værdi. Brug den til bløde overgange, hvor du vil justere fylden, fra flad til næsten et skarpt hjørne.",
"help.sketch.constrainer": "Anvender den binding, som en eller to valgte kurver næsten allerede har, f.eks. vandret, parallel, tangent eller ens. Brug den til at rydde op i en håndtegnet skitse, én relation ad gangen.",
"help.sketch.constraint.coincident": "Får et punkt til at ligge på et andet punkt, en kurve eller en skitseakse. Brug den til at lukke åbninger i en profil eller til at lægge et punkt på en linje.",
"help.sketch.constraint.collinear": "Får to linjer til at ligge på samme rette linje. Brug den til at stille afbrudte kanter op, f.eks. begge sider af en udskæring.",
"help.sketch.constraint.concentric": "Giver to cirkler eller buer samme centrum. Brug den til ringe, forsænkninger og aksler med skuldre.",
"help.sketch.constraint.curvature": "Får to kurver, der mødes i et endepunkt, til at fortsætte med samme krumning (G2). Brug den, hvor en tangentforbindelse ikke er glat nok, f.eks. på synlige overflader.",
"help.sketch.constraint.equal": "Gør linjer lige lange eller cirkler og buer ens i radius. Brug den, så ét mål styrer flere tilsvarende features.",
"help.sketch.constraint.fix": "Låser punkter eller kurver fast, hvor de er, eller frigør dem igen. Brug den til geometri, der ikke må flytte sig, når du trækker i eller løser skitsen.",
"help.sketch.constraint.horizontal_vertical": "Gør en linje eller linjen mellem to punkter vandret eller lodret, alt efter hvad der er tættest på. Brug den til at rette en kontur ind efter skitsens akser.",
"help.sketch.constraint.midpoint": "Placerer et punkt midt på en linje eller får midtpunkterne af to linjer til at mødes. Brug den til at centrere geometri på en kant.",
"help.sketch.constraint.parallel": "Gør to linjer parallelle. Brug den til sider, der skal forblive parallelle, når andre mål ændres.",
"help.sketch.constraint.perpendicular": "Får to linjer til at mødes i en ret vinkel. Brug den til retvinklede hjørner mellem linjer, der ikke ligger på skitsens akser.",
"help.sketch.constraint.polygon": "Gør en lukket kæde af linjer til en regulær polygon: lige lange sider og alle hjørner på én cirkel. Brug den til at gøre en håndtegnet polygon regulær og holde den sådan.",
"help.sketch.constraint.symmetry": "Får to punkter eller kurver til at spejle hinanden over en linje eller omkring et punkt. Brug den til at holde en profil symmetrisk, når du ændrer den ene side.",
"help.sketch.constraint.tangent": "Får to kurver til at berøre hinanden tangentielt, f.eks. en linje og en bue. Brug den til bløde forbindelser uden knæk.",
"help.sketch.construction": "Skifter kurver mellem normal geometri og konstruktionsgeometri, som profiler ikke tager med. Brug konstruktionskurver som hjælp til layout, referencer og mål.",
"help.sketch.construction_line": "Opret en uendelig hjælpelinje gennem to punkter. Brug den til at lægge en skitse ud uden at dele profiler.",
"help.sketch.construction_line.angle": "Opret en uendelig hjælpelinje i en vinkel fra skitsens X-akse. Vælg punktet, og skriv vinklen, eller vælg dens retning.",
"help.sketch.construction_line.bisector": "Vælg to skærende rette skitselinjer, og vælg derefter en af vinkelhalveringslinjerne. Resultatet følger sine kildelinjer.",
@@ -1412,12 +1580,71 @@
"help.sketch.construction_line.tangent_external": "Vælg en cirkel eller cirkelbue, derefter et eksternt punkt og en tangentløsning. Forhåndsvisningerne viser kun berøringspunkter på den tegnede bue.",
"help.sketch.construction_line.tangent_two": "Vælg to cirkler eller cirkelbuer, og vælg derefter en fælles tangent i forhåndsvisningen. Berøringspunkterne skal ligge på de tegnede kurver.",
"help.sketch.construction_line.vertical": "Opret en uendelig lodret hjælpelinje gennem et punkt. Dens lodrette binding følger senere ændringer.",
"help.sketch.copy": "Kopierer de valgte skitsekurver og -punkter sammen med bindingerne og målene imellem dem. Indsæt dem i denne skitse eller i en anden.",
"help.sketch.create": "Starter en ny 2D-skitse på et plan eller en plan flade på modellen. Enhver ekstrudering, omdrejning og sweep begynder med en skitse.",
"help.sketch.cut": "Kopierer den valgte skitsegeometri og sletter den fra skitsen i ét fortrydelsestrin. Indsæt den et andet sted i denne skitse eller i en anden.",
"help.sketch.dimension": "Tilføjer et styrende mål: en længde, afstand, vinkel, radius eller diameter, alt efter hvad du vælger. Skriv en værdi eller et parameternavn, og skitsen følger det.",
"help.sketch.edit": "Åbner en eksisterende skitse til redigering. De features, der er bygget på den, opdateres, når du afslutter skitsen.",
"help.sketch.ellipse": "Tegner en ellipse ud fra dens centrum, enden af dens storakse og et punkt på dens korte side. Brug den til ovale åbninger, knaster og andre aflange runde former.",
"help.sketch.equation_curve": "Ligningskurve tegner en kurve ud fra formler: x(t) og y(t) eller y = f(x) over et interval. Formlerne kan bruge parametre, og kurven følger dem. Brug den til en sinusbølge, en spiral eller evolventen på en tandhjulstand.",
"help.sketch.extend": "Forlænger en linje eller bue op til den nærmeste kurve i vejen eller lader to kurver vokse, til de mødes. Brug den til at lukke åbninger i en profil efter trimning eller redigering.",
"help.sketch.fillet": "Runder hjørnet, hvor to linjer eller buer mødes, af med en bue med en given radius. Flere hjørner, der afrundes sammen, deler én radius.",
"help.sketch.finish": "Forlader skitsen og vender tilbage til modellen. Dens lukkede profiler er derefter klar til Ekstrudering, Omdrejning og andre features.",
"help.sketch.finish_auto_constrain": "Kører Automatisk binding på skitsen og afslutter den derefter. Brug den til at efterlade en skitse fuldt bundet i ét trin.",
"help.sketch.fit_curves_to_section": "Skærer et mesh eller massivt emne med skitseplanet og tilpasser linjer og buer til snittet. Brug den til at genopbygge en scannet eller importeret del som en redigerbar skitse.",
"help.sketch.include_3d": "Henter modelkanter, hjørnepunkter og kurver fra andre skitser ind i denne skitse som linkede referencer og projicerer dem, der ligger uden for dens plan, ned på det. Brug den til at bygge videre på geometri, der ikke ligger i skitseplanet.",
"help.sketch.infinite": "Skifter linjer mellem normale linjer og uendelige hjælpelinjer, der løber hen over hele visningen. Brug dem som layoutreferencer, der aldrig ender for kort.",
"help.sketch.insert_dxf": "Læser kurverne i en DXF-tegning ind i en skitse, skaleret, drejet og placeret, som du angiver. Brug den til at bygge videre på en 2D-tegning fra et andet program, f.eks. en laserskåret kontur.",
"help.sketch.insert_svg": "Læser stierne i en SVG-tegning ind i en skitse, skaleret, drejet og placeret, som du angiver. Brug den til at gøre et logo eller en vektorkontur til kurver, du kan ekstrudere.",
"help.sketch.inspect": "Åbner en rapport om den åbne skitse: hvor mange frihedsgrader der er tilbage, og om den er fuldt bundet. Brug den til at finde ud af, hvad der stadig kan bevæge sig, før du afslutter skitsen.",
"help.sketch.intersect": "Tilføjer de kurver eller punkter, hvor emner, flader, kanter eller andre skitser krydser skitseplanet. De forbliver linkede og følger modellen, når den ændres.",
"help.sketch.intersection_curve": "Opretter 3D-kurver, hvor to emner eller flader mødes, linket til dem. Brug dem som baner eller styrekurver, der følger modellen.",
"help.sketch.isoparametric_curve": "Opretter en 3D-kurve langs en flades U- eller V-retning gennem et punkt, du vælger, linket til fladen. Brug den som bane eller delelinje, der følger overfladen.",
"help.sketch.line": "Tegner forbundne linjer punkt for punkt som en åben kæde eller en lukket kontur. Det er det grundlæggende værktøj til de fleste profiler.",
"help.sketch.line.midpoint": "Tegner en linje fra dens midtpunkt ud til den ene ende, og den anden ende spejles. Brug den til linjer centreret om et punkt, f.eks. en symmetrisk kant.",
"help.sketch.line3d": "Tegner forbundne rette linjer mellem punkter i rummet, med 3D-skitse slået til. Brug den til baner og rammer, der forlader skitseplanet.",
"help.sketch.mirror": "Spejler skitsekurver og -punkter over en linje eller akse og tilføjer symmetribindinger. Brug den til at tegne halvdelen af en symmetrisk profil og fuldende den.",
"help.sketch.move": "Flytter eller roterer skitsekurver og -punkter eller en kopi af dem. Brug den til at flytte geometri og bevare dens form og bindinger.",
"help.sketch.offset": "Opretter en kopi af en kæde af kurver i en given afstand, på den ene side eller begge. Brug den til vægge, konturer og frigang; afstanden forbliver et redigerbart mål.",
"help.sketch.paste": "Indsætter skitsegeometri, du har kopieret eller klippet, i den aktive skitse. Placér den i et punkt, eller forskyd den med en afstand.",
"help.sketch.pattern.circular": "Kopierer skitsegeometri omkring et centrumpunkt over en hel cirkel eller en given vinkel. Brug den til boltcirkler, eger og tænder.",
"help.sketch.pattern.rectangular": "Kopierer skitsegeometri i rækker og kolonner med givne afstande. Brug den til gitre af huller, slidser eller ventilationsåbninger.",
"help.sketch.point": "Placerer et skitsepunkt. Brug det som reference til mål, bindinger, hulcentre eller senere features.",
"help.sketch.point3d": "Placerer et punkt i rummet, med 3D-skitse slået til. Brug det som reference til 3D-kurver og baner.",
"help.sketch.polygon.circumscribed": "Tegner en regulær polygon omkring en cirkel med størrelsen målt fra centrum til midten af en side. Brug den, når nøglevidden er kendt, f.eks. til en sekskantmøtrik.",
"help.sketch.polygon.edge": "Tegner en regulær polygon ud fra de to ender af én side. Brug den, når længden og positionen af en side er kendt.",
"help.sketch.polygon.inscribed": "Tegner en regulær polygon inden i en cirkel med størrelsen målt fra centrum til et hjørne. Brug den, når målet over hjørnerne er kendt.",
"help.sketch.project": "Henter modelkanter, flader, hjørnepunkter og kurver fra andre skitser ind i denne skitse, projiceret ned på dens plan. De forbliver linkede og følger modellen, når den ændres.",
"help.sketch.project_to_surface": "Projicerer kurver fra andre skitser langs denne skitses normal ned på en flade som linkede 3D-kurver. Brug den til at lægge et logo, en delelinje eller en bane på en buet overflade.",
"help.sketch.rectangle.center": "Tegner et rektangel ud fra dets centrum og ét hjørne. Brug det til konturer centreret om et punkt, f.eks. nulpunktet.",
"help.sketch.rectangle.rounded": "Tegner et rektangel med alle fire hjørner afrundet med samme radius. Brug det til plader, låg og åbninger med afrundede hjørner.",
"help.sketch.rectangle.three_point": "Tegner et rektangel ud fra én kant og et punkt på den modsatte side. Brug det til rektangler, der er vinklet i forhold til skitsens akser.",
"help.sketch.rectangle.two_point": "Tegner et rektangel ud fra to modstående hjørner. Brug det til konturer af plader, blokke og lommer.",
"help.sketch.scale": "Skalerer skitsekurver og -punkter med en faktor omkring et basispunkt. Brug den til at ændre størrelsen på en del af en skitse uden at tegne den igen.",
"help.sketch.slot.arc_center": "Tegner en buet slids med en given bredde langs en bue, der er angivet ved dens centrum, start og slut. Brug den til justeringsslidser omkring en omdrejningstap.",
"help.sketch.slot.arc_three_point": "Tegner en buet slids med en given bredde langs en bue gennem tre punkter. Brug den, når slidsens bane skal gå gennem givne punkter.",
"help.sketch.slot.center_point": "Tegner en lige slids med en given bredde fra dens centrum til centrum af den ene endebue. Brug den til slidser centreret om et punkt.",
"help.sketch.slot.center_to_center": "Tegner en lige slids med en given bredde mellem centrene af dens to endebuer. Brug den til slidser, der er målsat fra centrum til centrum, f.eks. justeringsslidser til skruer.",
"help.sketch.slot.overall": "Tegner en lige slids med en given bredde fra den ene ydre ende til den anden. Brug den, når slidsens samlede længde er det vigtige.",
"help.sketch.spline.control_point": "Tegner en kubisk spline formet af kontrolpunkter, som den ikke går igennem. Brug den til bløde, flydende kurver, som du former ved at flytte punkterne.",
"help.sketch.spline.control_point_5": "Tegner en spline af grad 5 formet af kontrolpunkter. Brug den, hvor kurver skal mødes med blødere krumning, f.eks. på synlige formgivne overflader.",
"help.sketch.spline.fit_point": "Tegner en glat spline, der går gennem hvert punkt, du placerer, åben eller lukket. Brug den til at følge en form gennem kendte punkter.",
"help.sketch.spline3d": "Tegner en glat kurve i rummet gennem punkter, med 3D-skitse slået til. Brug den til sweep-baner og kabelføringer, der forlader skitseplanet.",
"help.sketch.spun_profile": "Opretter i skitseplanet den kontur, et emne beskriver, når det drejer om en akse. Brug den til at få silhuetten af en drejet del til en omdrejning eller en tegning.",
"help.sketch.text": "Skriver tekst i skitsen i en valgt skrifttype, højde og vinkel; dens ord kan følge parametre. Ekstrudér eller præg den til etiketter og skrift.",
"help.sketch.transform": "Skalerer, drejer og flytter skitsegeometri omkring et centrumpunkt i ét trin. Brug den til at flytte og ændre størrelsen på en markering på én gang.",
"help.sketch.trim": "Fjerner stykket af en kurve mellem de nærmeste skæringer omkring det sted, du klikker. Brug den til at rydde op i overlappende linjer til en lukket profil.",
"help.solid.align": "Justér flytter de valgte emner, så et punkt, en flade eller et plan på dem møder et punkt, en flade eller et plan et andet sted. Brug den til at placere en del op mod en anden uden at måle forskydningen.",
"help.solid.boundary_fill": "Danner massive emner ud fra de områder, der er indesluttet af overlappende værktøjsemner, og fylder kun de områder, du vælger. Brug den til at bygge en form ud fra det rum, som flere emner tilsammen afgrænser.",
"help.solid.bounding_solid": "Opretter en boks, der omslutter de valgte emner, med en valgfri margin. Brug den til at se en dels samlede størrelse eller som råemnet, den bearbejdes ud af.",
"help.solid.box": "Opretter en boks ud fra længde, bredde og højde, fra et hjørne eller centreret om et punkt. Brug den til en hurtig blok, en pladsholder eller et emne at skære features i.",
"help.solid.chamfer": "Affasning skærer de valgte kanter skråt med den angivne afstand. Brug den til at fjerne skarpe kanter eller lette indføringen af en tap eller skrue.",
"help.solid.coil": "Opretter et skruelinjeformet emne, f.eks. en fjeder, ud fra en diameter, vindinger, højde eller stigning og et rundt eller firkantet tværsnit. Brug den til fjedre, spiraler og skruelinjeformede ribber.",
"help.solid.combine": "Kombinér forener emner, skærer dem ud af et målemne eller beholder kun det fælles volumen og kan beholde værktøjsemnerne. Brug den til at samle dele, til at skære en form med en anden eller til at finde ud af, hvor to emner overlapper.",
"help.solid.cone": "Opretter en kegle ud fra en grundcirkel og en højde eller en keglestub, når toppen også har en radius. Brug den til tilspidsninger, tragte, koniske forsænkninger og spidser.",
"help.solid.cylinder": "Opretter en cylinder ud fra en radius eller diameter og en højde, stående på et punkt langs en akse. Brug den til aksler, stifter, bøsninger og runde råemner.",
"help.solid.draft": "Slipvinkel hælder de valgte flader med den angivne vinkel, målt fra et neutralt plan. Brug den på støbte eller formsprøjtede dele, så de kan løsnes fra formen.",
"help.solid.emboss": "Hæver skitseprofiler, f.eks. tekst eller et logo, ud af en flade eller sænker dem ned i den. Brug den til skrift, etiketter og mærkning på plane eller runde flader.",
"help.solid.extrude": "Ekstrudering giver en skitseprofil dybde ved at tilføje eller fjerne materiale langs en retning. Angiv afstanden for at danne en klods, en forhøjning eller en lomme. Brug Udhulning, hvis en massiv model i stedet skal gøres hul med en bestemt vægtykkelse.",
"help.solid.fillet": "Afrunding erstatter de valgte kanter med en glat, cirkulær overgang med den angivne radius. Den kan blødgøre skarpe kanter af hensyn til styrke, komfort eller udseende.",
"help.solid.hole": "Hul opretter et rundt hul ved et valgt punkt på en flade. Angiv diameteren, og vælg eventuelt konisk forsænkning, cylindrisk forsænkning eller gevind. Ved gevind vælges en gevindbetegnelse, f.eks. M6.",
@@ -1426,20 +1653,60 @@
"help.solid.move": "Flyt flytter eller roterer de valgte emner eller en kopi af dem med den afstand og vinkel, du angiver. Brug den til at flytte et emne eller til at lave en kopi på et andet sted.",
"help.solid.offset_face": "Forskyd flade skubber de valgte flader ind eller ud med den afstand, du angiver, og de omkringliggende flader følger med. Brug den til at gøre en væg tykkere, en lomme dybere eller en forhøjning højere uden at redigere skitsen.",
"help.solid.pattern.circular": "Cirkulært mønster gentager de valgte objekter omkring en akse med det antal og den samlede vinkel, du angiver. Brug det til boltcirkler, eger, ribber og tænder.",
"help.solid.pattern.path": "Kopierer features eller emner langs en skitsebane efter antal og afstand. Brug den til huller langs en buet kant eller dele langs en skinne.",
"help.solid.pattern.rectangular": "Rektangulært mønster gentager de valgte objekter i en eller to retninger med det antal og den afstand, du angiver. Brug det til rækker og gitre af huller, ribber, stifter eller fødder.",
"help.solid.pipe": "Opretter et rundt rør langs en bane af skitsekurver, massivt eller hult med en vægtykkelse. Brug den til rør, ledninger, kabler og skinner.",
"help.solid.press_pull": "Tryk/træk tilføjer eller fjerner materiale, når du trækker i en flade, eller afrunder kanter, når du trækker i dem. Brug den til hurtige ændringer direkte på modellen.",
"help.solid.remove": "Fjern tager de valgte emner ud af designet fra dette punkt i tidslinjen; tidligere trin beholder dem. Brug den til at fjerne et hjælpeemne, f.eks. et skærende værktøj, du ikke længere har brug for.",
"help.solid.replace_face": "Erstat flade flytter de valgte plane flader hen på et plan eller en parallel flade, og emnet vokser eller skrumper, så det mødes med den. Brug den til at få en flade i flugt med en anden del eller et konstruktionsplan.",
"help.solid.revolve": "Omdrejning drejer en skitseprofil omkring en valgt akse og danner et omdrejningslegeme. Brug den f.eks. til aksler, knopper og skåle, der er runde omkring en centerlinje.",
"help.solid.rib": "Tilføjer en tynd væg langs en åben skitsekurve, fyldt ud til emnets næste flader. Brug den til at afstive vægge og hjørner, f.eks. i sprøjtestøbte eller printede dele.",
"help.solid.scale": "Skalering gør de valgte emner større eller mindre med en faktor, ens i alle retninger eller én pr. akse. Brug den til at ændre størrelsen på en importeret form eller til at tage højde for krympning.",
"help.solid.shell": "Udhulning gør et massivt legeme hult med den angivne vægtykkelse. Vælg de flader, der skal åbnes. Indvendig udhulning bevarer de udvendige mål, mens udvendig udhulning bevarer de indvendige mål. Brug den f.eks. til kasser, dæksler og andre tyndvæggede dele.",
"help.solid.sphere": "Opretter en kugle ud fra en radius eller diameter omkring et centrumpunkt. Brug den til kugler, knopper og afrundede ender.",
"help.solid.split_body": "Opdel emne skærer et emne i separate emner med et plan, en flade på et andet emne eller en skitselinje. Brug den til at lave dele, der skal printes, bearbejdes eller farves hver for sig.",
"help.solid.split_face": "Opdel flade deler de valgte flader langs et plan, en flade på et andet emne eller skitsekurver uden at skære i emnet. Brug den til at give en del af en flade sin egen slipvinkel, farve eller forskydning.",
"help.solid.sweep": "Sweep trækker en skitseprofil langs en bane for at danne et massivt legeme. Brug den til rør, skinner, håndtag og alle dele med konstant tværsnit, der følger en kurve.",
"help.solid.thread": "Tilføjer et metrisk ISO-gevind på en cylindrisk flade, enten som kosmetisk gevind eller skåret ind i emnet. Brug det til bolte, gevindhuller og printede skruedele.",
"help.solid.torus": "Opretter en ring ud fra en hovedradius omkring dens akse og en mindre radius til dens runde tværsnit. Brug den til O-ringe, håndtag og runde perler.",
"help.solid.web": "Tilføjer en tynd væg langs hver åben skitsekurve, hver især fyldt ud til emnets næste flader. Brug den til et gitter af understøttende vægge inde i kabinetter og bakker.",
"help.surface.blend": "Opretter en flade, der bygger bro mellem to emners kanter, tangent eller krumningskontinuert til begge. Brug den til at forbinde to overflader glat hen over et mellemrum.",
"help.surface.boundary": "Opretter en flade, der udfylder en sløjfe af to til fire skitsekurver, eller et net af kurver. Brug den til frit formede paneler, som kanterne definerer.",
"help.surface.extend": "Forlænger en overflade ud over dens kanter med en afstand eller op til et plan eller en flade. Brug den, så overflader overlapper, før du trimmer eller syr dem sammen.",
"help.surface.extrude": "Trækker skitsekurver eller profiler en afstand ud til en overflade, kun vægge uden endeflader. Brug den til tynde vægge og til skære- eller deleværktøjer.",
"help.surface.fair": "Udjævner indersiden af frit formede flader, mens deres kanter bliver, hvor de er. Brug den til at udjævne bump og bølgede refleksioner i en overflade.",
"help.surface.loft": "Opretter en overflade, der går gennem to eller flere tværsnit i rækkefølge, uden endeflader. Brug den til skaller og overgange mellem forskellige former.",
"help.surface.match": "Genopbygger en overflades kant, så den mødes med et andet emnes kant med tilsvarende tangent eller krumning. Brug den til at lukke en overgang glat mellem to overflader.",
"help.surface.offset": "Opretter en kopi af flader i en afstand langs deres normaler som et nyt overfladelegeme. Brug den til skind, frigang eller den anden side af en væg.",
"help.surface.patch": "Fylder et skitseområde eller en lukket sløjfe af kanter ud med en flade, plan eller blødt buet. Brug den til at lukke huller i et overfladelegeme.",
"help.surface.reverse_normal": "Vender flader på et overfladelegeme om, så deres yderside vender den anden vej. Brug den, før du giver tykkelse eller syr sammen, når fladerne peger indad.",
"help.surface.revolve": "Drejer skitsekurver eller profiler om en akse til en overflade uden endeflader. Brug den til runde skaller som lampeskærme, skåle og dyser.",
"help.surface.ruled": "Opretter en strimmel af rette linjer ud fra en kæde af kanter langs fladens normal, tangent eller i en vinkel. Brug den til vægge med slipvinkel, udløb og delingsflader.",
"help.surface.stitch": "Syr overfladelegemer sammen langs deres fælles kanter, til et massivt emne, når de lukker sig. Brug den til at gøre et sæt overflader til ét emne.",
"help.surface.sweep": "Fører skitsekurver eller profiler langs en bane til en overflade uden endeflader. Brug den til render, lister og andre tynde former, der følger en bane.",
"help.surface.thicken": "Giver et overfladelegeme en tykkelse og gør det til et massivt emne. Brug den til at lave printbare eller bearbejdelige dele af overflader.",
"help.surface.trim": "Skærer en overflade med et plan, en anden overflade eller skitsekurver og beholder den side, du vælger. Brug den til at skære overflader til form, før du syr dem sammen.",
"help.surface.unstitch": "Adskiller flader på et emne til selvstændige overfladelegemer; et massivt emne falder fra hinanden til overflader. Brug den til at omarbejde enkelte flader på et emne.",
"help.surface.untrim": "Fjerner huller fra en flade eller gendanner dens ydre afgrænsning til overfladens naturlige grænser. Brug den til at få den fulde overflade tilbage efter en trimning.",
"help.third_party": "Tredjepartslicenser",
"help.timeline.compute_all": "Beregn alle genopbygger alle features i tidslinjen fra starten. Brug den til at opdatere modellen og se, hvilke features der fejler.",
"help.timeline.delete": "Sletter de valgte features fra tidslinjen; sletning af en skitse sletter også de features, der er bygget på den. Brug den til at fjerne et trin, som ikke længere er ønsket.",
"help.timeline.dependents": "Viser de features, der ville blive slettet sammen med en feature, og dem, der ville fejle uden den. Brug den, før du sletter eller ændrer en feature.",
"help.timeline.play": "Afspil de resterende features én ad gangen med en pause på et halvt sekund efter hver genopbygning. Kør kommandoen igen, eller tryk på Escape for at stoppe; Gå til slutningen hopper med det samme.",
"help.view.apply": "Drejer visningen til en standardretning som forfra, oppefra eller iso eller til en gemt navngiven visning. Brug den til at se på modellen fra en fast vinkel.",
"help.view.delete": "Sletter en gemt navngiven visning. Modellen ændres ikke.",
"help.view.fit": "Zoomer og panorerer, så hele modellen eller markeringen fylder visningen. Brug den, når modellen er røget ud af syne.",
"help.view.grid": "Viser eller skjuler gitteret i visningsområdet. Brug det som hjælp til størrelse og orientering under modellering.",
"help.view.ground_shadow": "Viser eller skjuler modellens skygge på grundplanet. Brug den til lettere at vurdere højde og position.",
"help.view.home": "Drejer visningen tilbage til hjemmeretningen og tilpasser modellen. Brug den til hurtigt at komme tilbage til en kendt visning.",
"help.view.list": "Viser de navngivne visninger, der er gemt i designet. Brug den til at finde en visning, du har gemt tidligere.",
"help.view.navigate": "Drejer, panorerer eller zoomer visningen i trin, f.eks. en kvart omdrejning til venstre. Brug den til at flytte kameraet præcist i stedet for at trække.",
"help.view.navigation_bar": "Viser eller skjuler navigationslinjen nederst i visningsområdet. Skjul den for mere plads, vis den for at nå visningsværktøjerne med musen.",
"help.view.rename": "Giver en gemt navngiven visning et nyt navn. Selve visningen forbliver den samme.",
"help.view.save": "Gemmer den aktuelle kameraposition som en navngiven visning i designet. Brug den til at vende tilbage til samme vinkel senere, f.eks. til skærmbilleder.",
"help.view.spin": "Kører rundt om modellen i visningen kontinuerligt, til næste klik eller tastetryk. Brug den til at præsentere en model fra alle sider.",
"help.view.tool": "Låser et kameraværktøj, rotation, panorering eller zoom, så træk med venstre museknap flytter visningen, til du slår det fra. Brug det på en touchplade eller uden en midterste museknap.",
"help.view.visual_style": "Skifter, hvordan modellen tegnes: skyggelagt med eller uden kanter, trådmodel eller med skjulte kanter. Brug trådmodel til at se ind i modellen, skyggelagt til et rent udseende.",
"history.sketch_under_constrained": "Ikke fuldt bundet ({count} frihedsgrader)",
"history.sketch_under_constrained_one": "Ikke fuldt bundet ({count} frihedsgrad)",
"hole_presets.confirm_delete": "Bekræft sletning",
@@ -1653,6 +1920,7 @@
"nav.hfss.help": "Alt+træk med venstre museknap panorerer, Shift+Alt+venstre zoomer, Ctrl+træk med venstre fra et tomt område roterer visningen",
"nav.inventor.help": "Træk med midterste museknap panorerer, Shift+midterste roterer visningen, Ctrl+midterste zoomer, træk med højre roterer visningen",
"nav.maya.help": "Alt+træk med venstre museknap roterer visningen, Alt+midterste panorerer, Alt+højre zoomer; træk med midterste museknap panorerer også",
"nav.nx.help": "Træk med midterste museknap roterer visningen, Shift+midterste panorerer (NX's midterste + højre), Ctrl+midterste zoomer (NX's midterste + venstre); træk med højre museknap påvirker ikke kameraet",
"nav.openscad.help": "Træk med venstre museknap i et tomt område roterer visningen, Shift+venstre markerer med en ramme, træk i skitsegeometri redigerer den; træk med højre eller midterste museknap panorerer, Shift+højre eller Shift+midterste zoomer",
"nav.perspective.sketch": "Skitseredigering bruger ortografisk visning. Afslut skitsen for at skifte til perspektiv.",
"nav.right_drag_orbits.help": "Slået fra: Træk med højre museknap påvirker ikke kameraet, og højre knap åbner kun genvejsmenuen. Hvis du vælger SolidWorks-musetildelingen, slås dette fra.",
@@ -1772,6 +2040,11 @@
"not a move": "ikke en flytning",
"not a number": "ikke et tal",
"open a sketch first": "åbn en skitse først",
"parameters.apply_live": "Anvend hver ændring, når du forlader dens felt",
"parameters.apply_live_tip": "Slået fra: Ændringer venter, til du vælger Anvend eller OK, og så genopbygges designet én gang for dem alle. Annullér eller Escape kasserer dem.",
"parameters.held": "{count} ændringer venter på Anvend",
"parameters.held_hint": "Redigér udtryk og enheder. Ændringer venter på Anvend eller OK.",
"parameters.held_one": "1 ændring venter på Anvend",
"parts.automatic_name": "automatisk",
"parts.dimension.across_flats": "Nøglevidde",
"parts.dimension.bore": "Boring",
@@ -1869,6 +2142,8 @@
"prefs.ctrl_cmd": "Ctrl / Cmd",
"prefs.curved_surfaces": "Krumme overflader",
"prefs.curves": "Krumme overflader",
"prefs.dark_parts_shading": "Bevar formen på mørke dele",
"prefs.dark_parts_shading_help": "Skygger visningen i lineært lys med en blød himmelfyld, så mørke flader beholder et farveforløb i stedet for at blive sorte",
"prefs.dead_zone_note": "Det skraverede bånd er dødzonen: Bevægelser inden for det ignoreres.",
"prefs.default": "standard",
"prefs.design": "Standardindstillinger for design",
@@ -1883,6 +2158,8 @@
"prefs.edges": "Kanter og skygning",
"prefs.extend": "Udvid",
"prefs.extra_navigation": "Ctrl+træk med venstre museknap i et tomt område roterer visningen; hold mellemrumstasten nede for at panorere.",
"prefs.extrude_view_isometric": "Drej visningen til isometrisk, når Ekstrudering åbnes",
"prefs.extrude_view_return": "Gå tilbage til den tidligere visning, når Ekstrudering lukkes",
"prefs.follows_os": "Følger operativsystemet",
"prefs.font": "Skrifttype",
"prefs.font_fallback": "Tegn, som den valgte skrifttype mangler, vises med den indbyggede skrifttype, så ingen tekst viser en tom firkant.",
@@ -1898,6 +2175,7 @@
"prefs.graphics_card_auto": "Automatisk",
"prefs.graphics_card_missing": "Det gemte grafikkort er ikke tilgængeligt. Automatisk bruges i stedet.",
"prefs.graphics_card_restart": "Træder i kraft efter genstart af SolidCraft. WGPU_ADAPTER_NAME tilsidesætter dette valg.",
"prefs.graphics_card_unused": "Det gemte grafikkort blev ikke brugt til dette vindue. Kortet i brug vises i Hjælp › Om og i statuslinjen. Prøv Automatisk, eller sæt WGPU_ADAPTER_NAME til en entydig del af kortets navn.",
"prefs.graphics_note": "Afvej hastighed mod udjævning. Hvert valg viser sin virkning på et eksempel.",
"prefs.graphics_presets_note": "Forudindstillinger angiver de nedenstående valg samlet.",
"prefs.hide_constraint_glyphs_zoomed_out": "Skjul bindingssymboler, når der zoomes ud",
@@ -1912,6 +2190,8 @@
"prefs.history_sketches_note": "Når Skitser er sat til Under deres feature, viser historikken til venstre hver skitse ét niveau inde under den første feature, der er bygget på den, så snart den er bred nok til navne. Tidslinjen nederst bevarer altid oprettelsesrækkefølgen.",
"prefs.history_sketches_under_feature": "Under deres feature",
"prefs.hold_stop_snapping": "Hold nede for at slå snapping fra",
"prefs.home_fit_size": "Størrelse ved Hjem og Tilpas",
"prefs.home_fit_size_note": "Hvor meget af visningen modellen fylder, når Hjem, Tilpas, et åbnet design eller et skift af visning i navigatoren rammer den ind, uanset om indstillingen nedenfor er slået til. 100 %: Fylder visningen mellem panelerne, kompasset og navigationslinjen.",
"prefs.icons_only": "Kun ikoner",
"prefs.imported_file": "Importeret fil",
"prefs.in_browser": "I modeltræet",
@@ -1920,13 +2200,20 @@
"prefs.interface_language": "Sprog i brugergrænsefladen",
"prefs.interface_note": "SolidCrafts udseende og placeringen af dets dele.",
"prefs.interval_minutes": "{n} min",
"prefs.invert_navigator_arrows": "Vend visningskubens rotationspile om",
"prefs.invert_navigator_arrows_note": "Pilene rundt om kuben roterer kameraet i den retning, de peger, som i Fusion og Inventor: Pilen til venstre peger mod højre og svinger kameraet til højre. Slået fra: En pil drejer kuben mod den side, den sidder på, så venstre pil svinger kameraet til venstre. De buede rulningspile påvirkes ikke.",
"prefs.keep_work_on_tab_switch": "Behold dialoger og værktøjer åbne, når du skifter design",
"prefs.keep_work_on_tab_switch_note": "Hver designfane beholder sin åbne dialog eller sit åbne værktøj med det, du har valgt og skrevet i den, og sin fane på båndet. De er der igen, når du vender tilbage til designet. Slået fra: Skift af design annullerer dem og viser fanen Model.",
"prefs.labels": "Etiketter",
"prefs.language_system": "System",
"prefs.layout": "Layout",
"prefs.layout_note": "Kompakt fastgør panelerne til vinduets kanter. Gennemsigtighed i modelbrowseren er tilgængelig i Flydende. Skift assistentens side på siden Assistent.",
"prefs.left": "Venstre",
"prefs.left_click": "Venstreklik",
"prefs.line_drag_draws_one": "Tryk og træk tegner én linje",
"prefs.line_drag_draws_one_note": "I værktøjet Linje tegner tryk, træk og slip én linje fra trykket til slippet, og linjen slutter dér. Klik tegner stadig en kæde. Slået fra: Et træk placerer et punkt, hvor det slippes, ligesom et klik gør.",
"prefs.line_hover_tangent_arc": "Hvil markøren på en linjes sidste punkt for at skifte til en tangentbue",
"prefs.line_hover_tangent_arc_note": "Når et segment er tegnet i værktøjet Linje, så flyt markøren væk fra kædens sidste punkt, kom tilbage, og hold den stille på punktet: Næste klik afslutter en tangentbue, og samme bevægelse går tilbage til linjer. Slået fra: Det gør ingenting at hvile markøren der.",
"prefs.linked_designs": "Linkede designs",
"prefs.live_input": "Løbende input",
"prefs.live_preview": "Løbende forhåndsvisning",
@@ -1950,6 +2237,8 @@
"prefs.mouse_mapping": "Musetildeling",
"prefs.navigation": "Navigation",
"prefs.navigation_note": "Hvordan musen, pegefeltet og 3D-musen styrer visningen.",
"prefs.navigator_fit": "Tilpas modellen efter et skift af visning i navigatoren",
"prefs.navigator_fit_note": "En flade, et hjørne eller en pil på visningskuben eller en akse på orienteringsgizmoen ser også mod modellens midte fra den ene afstand, der får den til at passe fra alle sider (dens omsluttende kugle). Hjem bruger samme zoom og centrum, mens dette er slået til, så visninger, der vælges bagefter, kun drejer. Slået fra: Visningen drejer på stedet og beholder sit mål og sin zoom.",
"prefs.network_host_remove": "Fjern",
"prefs.network_locations": "Tillad netværksplaceringer i designs",
"prefs.network_locations_note": "Slået fra: Et designs linkede filer på en anden computer (\\\\server\\share) åbnes kun fra de servere, der er angivet her, eller efter at du har tilladt en, når du bliver spurgt.",
@@ -1962,6 +2251,8 @@
"prefs.origin_plane_names": "Navne på nulpunktets planer",
"prefs.origin_plane_names_note": "Navne vist i modeltræet, dialoger og lister. {top} er XY, {front} er XZ og {right} er YZ med Z opad. Kommandoer, scripts og gemte designs beholder XY, XZ og YZ.",
"prefs.overall_speed": "Samlet hastighed",
"prefs.parameter_list_rows": "Rækker i parameterlisten",
"prefs.parameter_list_rows_tip": "Pil ned i et tomt værdifelt viser parametrene, favoritter først, op til så mange. Færre holder listen let i et stort design.",
"prefs.persistent_ribbon_pressed": "Fremhæv aktive kommandoer på båndet",
"prefs.persistent_ribbon_pressed_help": "Fremhæver kommandoer på båndet, mens deres virkning er slået til. Slå fra for at beholde det tidligere neutrale udseende og den tidligere kommandohjælp.",
"prefs.perspective_fov": "Synsfelt",
@@ -1996,6 +2287,8 @@
"prefs.render_previous_geometry_budget": "Brug det tidligere geometribudget til forhåndsvisning af rendering",
"prefs.render_previous_geometry_budget_help": "Gendan den tidligere faste geometrigrænse (512 MiB på 64-bit-computere, 128 MiB andre steder) i stedet for det enhedsbaserede budget.",
"prefs.reports_saved": "{n} gemt",
"prefs.ribbon_click_ends_tool": "Et klik på det kørende værktøjs knap afslutter det",
"prefs.ribbon_click_ends_tool_note": "Et klik på den lysende knap på båndet for det skitseværktøj, der er i brug, afslutter værktøjet, så klik i visningen markerer igen. Slået fra: Klikket starter værktøjet igen.",
"prefs.ribbon_reveal": "Vis søgeresultater på båndet",
"prefs.ribbon_reveal_note": "Når du holder musen over et resultat i Søg efter kommandoer, vises det, hvor kommandoen sidder på båndet: dens fane, dens knap eller dens række i et panels rullemenu. En kommando, der startes fra søgningen, blinker dér, og en kørende kommando fra en rullemenu markerer sit panel.",
"prefs.right_click": "Højreklik",
@@ -2025,6 +2318,8 @@
"prefs.sketch_exit_view.previous": "Vend tilbage til den forrige visning",
"prefs.sketch_exit_view.unless_rotated": "Vend tilbage, medmindre visningen er roteret",
"prefs.sketch_exit_view_note": "Hvor visningen går hen efter Afslut skitse, Annullér eller et dobbelt tryk på Esc.",
"prefs.sketch_face_activates_part": "Når du skitserer på en dels flade, bliver delen aktiv",
"prefs.sketch_face_activates_part_note": "En skitse, der startes på en flade af en anden komponents emne, aktiverer først den komponent, så skitsen hører til den og bliver hos den del i modeltræet. Delen forbliver aktiv bagefter. Slået fra: Skitsen hører til den aktive komponent.",
"prefs.sketch_open_look_at": "Vend visningen mod en skitse, når den åbnes",
"prefs.sketch_open_look_at_note": "Slået fra: Når en skitse oprettes eller redigeres, forbliver visningen, som den er. Se på vender visningen mod skitsen, når du ønsker det.",
"prefs.sketch_recent_snap": "Automatisk snap til nylige centre og midtpunkter",
@@ -2038,6 +2333,8 @@
"prefs.sketch_tab_always_note": "Fanen Skitse bliver på båndet lige efter Model, mens ingen skitse er åben. Dens tegneværktøjer starter så en skitse på det valgte plan eller den valgte flade eller på det plan, du vælger næste gang, med værktøjet klar i den.",
"prefs.sketch_tracking_guides": "Hjælpelinjer til justering efter centre og midtpunkter",
"prefs.sketch_tracking_guides_note": "Hold musen over et cirkelcentrum eller midtpunktet på en ret kant, og bevæg den derefter vandret eller lodret for at vise en midlertidig punkteret hjælpelinje.",
"prefs.sketch_tracking_points": "Hjælpelinjer til justering efter endepunkter og hjørner under tegning",
"prefs.sketch_tracking_points_note": "Mens et tegneværktøj venter på et punkt, viser det samme midlertidige punkterede hjælpelinje som ved et centrum eller midtpunkt, når du holder musen over enden af en linje eller bue, et rektangelhjørne eller et frit punkt. Slået fra: kun centre og midtpunkter.",
"prefs.sketching": "Skitsering",
"prefs.snap_drawing_note": "Mens du tegner eller trækker et skitsepunkt.",
"prefs.source": "Kilde",
@@ -2054,6 +2351,24 @@
"prefs.status_error": "Fejl",
"prefs.status_selected": "Valgt",
"prefs.status_warning": "Advarsel",
"prefs.structure.appearance": "Udseende",
"prefs.structure.appearance_note": "Farver, tekst og tilgængelighed.",
"prefs.structure.in_profile": "I profil",
"prefs.structure.layout": "Layout",
"prefs.structure.layout_note": "Hvor vinduets dele sidder.",
"prefs.structure.look": "Look",
"prefs.structure.measure_pointer": "Mål og markør",
"prefs.structure.mouse3d": "3D-mus",
"prefs.structure.mouse3d_note": "SpaceMouse og SpaceNavigator.",
"prefs.structure.navigation_note": "Mus og pegefelt. 3D-musen har sin egen side.",
"prefs.structure.profile": "Profil",
"prefs.structure.profile_edited": "Ændret, siden den blev gemt",
"prefs.structure.profile_hover": "Gemt i indstillingsprofiler",
"prefs.structure.scale_percent": "{percent}%",
"prefs.structure.sketch": "Skitse",
"prefs.structure.tools": "Værktøjer",
"prefs.structure.tools_note": "Hvordan modelleringsværktøjerne opfører sig.",
"prefs.structure.work": "Arbejde",
"prefs.supersampling_brief": "Tegner visningen i større størrelse og nedskalerer den med filtrering: meget skarpt og mere krævende.",
"prefs.tab_accent_note": "Accentfarven følger den aktive fane",
"prefs.theme_file": "temafil",
@@ -2065,6 +2380,16 @@
"prefs.theme_follow_off": "Fra",
"prefs.theme_follow_stop": "Stop med at følge",
"prefs.theme_import_hint": "Klik for at vælge en temafil, slip en her, eller tryk på Ctrl+V (Cmd+V på en Mac), mens et tema er kopieret",
"prefs.theme_option_opacity": "Opacitet",
"prefs.theme_option_opacity_help": "Juster opaciteten af flydende paneler. En nedre grænse for læsbarhed beskytter tekst oven på visningsområdets farver.",
"prefs.theme_option_tab_colours": "Fanefarver",
"prefs.theme_option_tab_colours_help": "Brug dette temas panel- og visningsområdefarver for hver fane på båndet.",
"prefs.theme_option_tab_fade_ms": "Faneovergang",
"prefs.theme_option_tab_fade_ms_help": "Tone panel- og visningsområdefarverne over, når du skifter fane. Nul skifter med det samme.",
"prefs.theme_options_badge": "Muligheder",
"prefs.theme_options_more": "Flere · {count}",
"prefs.theme_options_reset": "Nulstil",
"prefs.theme_options_unavailable": "Ikke tilgængelig på denne enhed",
"prefs.theme_paste": "Indsæt tema",
"prefs.theme_paste_none": "Udklipsholderen indeholder intet SolidCraft-tema",
"prefs.timeline_half_hour": "−30 min",
@@ -2086,6 +2411,8 @@
"prefs.under_cursor": "Under markøren",
"prefs.units_precision": "Enheder og præcision",
"prefs.updates": "Opdateringer",
"prefs.value_boxes_in_view": "Vis værdier ved siden af deres håndtag i visningen",
"prefs.value_boxes_in_view_tip": "En kommandos værdi (Afstand, Radius…) i en boks ved siden af dens håndtag oven på modellen. Slået fra: Du skriver den i kommandovinduet, som overtager tastaturet efter et valg, og intet dækker modellen.",
"prefs.view": "Visningens adfærd",
"prefs.view_confirm_corner": "OK og Annullér i visningens hjørne",
"prefs.view_confirm_corner_note": "Mens en dialog eller en skitse er åben, gør et flueben og et kryds øverst til højre i visningen det samme som dialogens OK og Annullér, eller afslutter og annullerer skitsen. Visningsnavigatoren flyttes ned under dem.",
@@ -2097,6 +2424,10 @@
"prefs.viewport_background_theme": "Temaets farveforløb",
"prefs.viewport_section_status": "Vis status for snit i visningsområdet",
"prefs.viewport_section_status_help": "Vis snitindstillingen i visningsområdet. Escape og den aktive knap på båndet slår den fra. Slå fra for at beholde de tidligere snitkontroller.",
"prefs.viewport_status_details": "Live-detaljer i visningsområdet",
"prefs.viewport_status_details_help": "Redigér aktive analyse- og snitindstillinger i standarddetaljekort. Slå fra for at gendanne skrivebeskyttede signaturforklaringer til analyser og dialogen Snit.",
"prefs.viewport_status_summary": "Fold statuselementer i visningsområdet sammen",
"prefs.viewport_status_summary_help": "Fold tre eller flere statuselementer i visningsområdet sammen i ét oversigtsmærke. Slå fra for at beholde alle elementer i den fulde række.",
"prefs.wheel": "Musehjul",
"prefs.wheel_trackpad": "Musehjul og pegefelt",
"prefs.workspace": "Arbejdsområde",
@@ -2975,7 +3306,9 @@
"render.output_ready": "Klar til rendering",
"render.output_run_check": "Kør kontrol",
"render.output_size_limit": "{method}: op til {dimension} px pr. side og {pixels} pixels. Største passende størrelse: {width} × {height}.",
"render.output_size_method_profile": "For at rendere {width} × {height} skal du vælge {method} med CPU-ressourceprofilen {profile} eller en mindre størrelse.",
"render.output_size_ok": "Størrelse OK · {width} × {height} px",
"render.output_size_profile": "For at rendere {width} × {height} skal du vælge CPU-ressourceprofilen {profile} eller en mindre størrelse.",
"render.output_swap_orientation": "Byt om på bredde og højde",
"render.output_tools_inspector": "Redigér størrelse og format i output-inspektøren.",
"render.output_view_image": "Vis billede",
@@ -3188,6 +3521,7 @@
"render.size_custom": "Brugerdefineret…",
"render.size_full_hd": "Full HD",
"render.size_hd": "HD",
"render.size_needs_profile": "{size} · kræver {profile}",
"render.size_presets": "Forudindstillinger for størrelse",
"render.size_presets_pending": "Kommer med Output-editoren",
"render.size_preview": "Forhåndsvisning",
@@ -3475,6 +3809,24 @@
"sheet.flange_type_contour": "Kontur",
"sheet.flange_type_edge": "Kant",
"sheet.no_body": "der er intet pladelegeme: Start et med Flange > Basis, eller omdan en plade til et pladelegeme med Konvertér til plade (vælg dens store plane flade)",
"sheet.personal_rules.confirm_delete": "Bekræft sletning",
"sheet.personal_rules.delete": "Slet",
"sheet.personal_rules.delete_prompt": "Slet denne personlige regel? Regler, der allerede bruges i designs, ændres ikke.",
"sheet.personal_rules.full": "Det personlige bibliotek indeholder allerede 64 regler.",
"sheet.personal_rules.invalid_name": "Angiv et kort navn uden linjeskift eller kontroltegn.",
"sheet.personal_rules.invalid_values": "Udfyld reglens værdier: Hver af dem skal kunne udregnes i dette design, med en positiv tykkelse og en K-faktor fra 0 til 1.",
"sheet.personal_rules.missing": "Den valgte personlige regel er ikke længere tilgængelig.",
"sheet.personal_rules.name": "Navn på regel",
"sheet.personal_rules.name_exists": "Der findes allerede en personlig regel med dette navn. Brug et andet navn.",
"sheet.personal_rules.name_hint": "Et entydigt navn",
"sheet.personal_rules.overwrite": "Gem ændringer i den valgte personlige regel",
"sheet.personal_rules.rename": "Omdøb",
"sheet.personal_rules.rule": "Personlig regel",
"sheet.personal_rules.save": "Gem som ny",
"sheet.personal_rules.scope": "Gemt i din profil og tilgængelig i alle designs.",
"sheet.personal_rules.select": "Vælg en regel",
"sheet.personal_rules.title": "Personlige regler",
"sheet.personal_rules.unsupported": "Denne regel har værdier, som denne version ikke kan bruge.",
"shortcut.json_error": "parametre skal være JSON: {error}",
"shortcut.no_command": "ingen kommando `{id}`; teksten før JSON skal være et kommando-id",
"shortcut.pin": "Fastgør øverst i S-boksen",
@@ -3511,8 +3863,10 @@
"sketch_text.align_right": "Højre",
"sketch_text.bold": "Fed",
"sketch_text.builtin_font": "{family} (indbygget)",
"sketch_text.formula": "Start med = for at bygge ordene ud fra parametre: ='W' + number(Width)",
"sketch_text.italic": "Kursiv",
"sketch_text.loading_fonts": "Søger efter installerede skrifttyper…",
"sketch_text.no_bold": "Den indbyggede skrifttype har ingen fed udgave: Vælg en installeret skrifttype",
"sketch_text.on_path": "Teksten følger sin bane: Kurven bestemmer placeringen",
"sketch_text.path_clear": "Frigør teksten fra dens kurve",
"sketch_text.path_hint": "En kurve i skitsen, som teksten følger: Klik her og derefter på kurven",
@@ -3651,6 +4005,8 @@
"ui.3d_mouse_section": "3D-mus",
"ui.3d_mouse_show_in_view": "Vis 3D-musen i 3D-visningen",
"ui.3d_mouse_show_in_view_tip": "Et billede af din 3D-mus i nederste venstre hjørne, der bevæger sig, når du bevæger den.",
"ui.3d_mouse_sketch_orbit": "Drej skitser med 3D-musen",
"ui.3d_mouse_sketch_orbit_tip": "3D-musen drejer også visningen, mens en skitse er åben og set lige forfra, ligesom musen kan. Slået fra: Den panorerer og zoomer skitsen, indtil du vipper visningen.",
"ui.3d_mouse_skip": "Min enhed kan ikke det",
"ui.3d_mouse_skip_tip": "Springer bevægelsen over begge veje, og kalibreringen udelader den.",
"ui.3d_mouse_speed": "3D-musens hastighed",
@@ -3719,6 +4075,7 @@
"ui.agent_chat_auth_terminal": "Kør dette i en terminal, og tryk derefter på Forbind igen:",
"ui.agent_chat_auth_title": "Log ind hos agenten",
"ui.agent_chat_cancel": "Annullér",
"ui.agent_chat_cannot_start": "Installeret, men den starter ikke: {error}",
"ui.agent_chat_changes": "Ændringer: {n}, ét fortrydelsestrin",
"ui.agent_chat_changes_n": "{n} ændringer",
"ui.agent_chat_changes_of": "{n}/{limit} ændringer",
@@ -3811,9 +4168,12 @@
"ui.agent_chat_queued_stopped": "I kø (stoppet, ikke sendt)",
"ui.agent_chat_refresh": "Opdatér",
"ui.agent_chat_refused": "Ikke tilladt for agenten: {reason}",
"ui.agent_chat_reinstall": "{agent} er installeret ({program}), men den startede ikke, da SolidCraft kontrollerede den: {error}\nInstallationen kan være ufuldstændig eller lavet til en anden type computer. Installér den igen med `{install}`, kontrollér i en terminal, at den udskriver sin version, og tryk derefter på Opdatér.",
"ui.agent_chat_remove": "Fjern fra køen",
"ui.agent_chat_remove_file": "Fjern fra denne besked",
"ui.agent_chat_remove_imported": "Fjern fra denne besked; emnet bliver i designet (Fortryd fjerner det)",
"ui.agent_chat_reply_cut_off": "Svaret nåede sin længdegrænse, før det var færdigt, så det kan være ufuldstændigt. Bed agenten om at fortsætte eller om et kortere svar.",
"ui.agent_chat_reply_declined": "Modellen afviste at svare på denne besked.",
"ui.agent_chat_retry": "Prøv igen",
"ui.agent_chat_right": "Højre",
"ui.agent_chat_save": "Gem",
@@ -3872,12 +4232,17 @@
"ui.ai_copy_suffix": "kopi",
"ui.ai_custom_url": "Brugerdefineret URL",
"ui.ai_default": "Standard",
"ui.ai_edit": "Redigér",
"ui.ai_edit_agent_title": "Redigér agent",
"ui.ai_edit_gone": "Denne agent er fjernet, så der er intet at gemme.",
"ui.ai_edit_tip": "Ændr denne agents navn, kommando eller endepunkt. En gemt nøgle forbliver skjult.",
"ui.ai_http_busy": "endepunktet er optaget eller har nået sin grænse; prøv igen senere",
"ui.ai_http_key": "endepunktet afviste nøglen: Kontrollér den i Indstillinger > AI",
"ui.ai_http_not_found": "endepunktet eller modellen findes ikke: Kontrollér basis-URL og modelnavn",
"ui.ai_http_too_large": "samtalen er for stor til dette endpoint; start en ny chat",
"ui.ai_key": "API-nøgle",
"ui.ai_key_hint": "valgfri; gemmes i systemets nøglering",
"ui.ai_key_keep_hint": "lad feltet stå tomt for at beholde den gemte nøgle",
"ui.ai_key_needs_https": "En nøgle sendes kun via HTTPS eller til denne computer.",
"ui.ai_key_note": "Gemmes i systemets nøglering, aldrig i SolidCrafts indstillinger. Lad feltet være tomt ved en lokal server.",
"ui.ai_keychain_error": "Systemets nøglering afviste anmodningen: {error}",
@@ -3904,11 +4269,15 @@
"ui.ai_permissions": "Tilladelser",
"ui.ai_preset": "Forudindstilling",
"ui.ai_protocol": "Protokol",
"ui.ai_reasoning_effort": "Ræsonnementsindsats",
"ui.ai_reasoning_effort_field_hint": "tom = udbyderens standard",
"ui.ai_reasoning_effort_hint": "Valgfrit. Sendes til slutpunktet som `reasoning_effort`; accepterede værdier varierer fra udbyder til udbyder (for eksempel `low`, `high` eller `max`). En værdi, du angiver her, erstattes aldrig af SolidCraft. Lad feltet stå tomt for ikke at sende noget og beholde udbyderens standard.",
"ui.ai_remove": "Fjern",
"ui.ai_request_timed_out": "Modellen brugte mere end {seconds} s. Du kan hæve tidsgrænsen for anmodninger til dette endepunkt under Indstillinger › Assistent.",
"ui.ai_request_timeout": "Tidsgrænse for anmodning",
"ui.ai_request_timeout_hint": "Hvor lang tid en modelanmodning til dette endepunkt må tage, fra 30 s til en time. Hæv den for en langsom lokal model.",
"ui.ai_reset": "Nulstil",
"ui.ai_save": "Gem",
"ui.ai_settings": "AI-indstillinger…",
"ui.ai_show_features": "Vis AI-funktioner",
"ui.ai_show_features_note": "Agentchatten: Et panel, hvor en kodeagent, du allerede bruger, eller en modeltjeneste, du vælger, arbejder på det åbne design. Slået fra: Ingen AI-knap, genvej, menupunkt eller panel, og der søges ikke efter eller startes noget.",
@@ -4068,6 +4437,7 @@
"ui.dark": "Mørk",
"ui.default_modelling_orientation": "Standardorientering for modellering",
"ui.delete": "Slet",
"ui.delete_select_first": "Vælg først, hvad der skal slettes: features, emner, komponenter eller skitsegeometri",
"ui.depth": "Dybde",
"ui.design": "Design",
"ui.design_properties.author": "Forfatter",
@@ -4082,6 +4452,40 @@
"ui.design_properties.project": "Projekt",
"ui.design_properties.revision": "Revision",
"ui.design_saved": "Gemte {path}",
"ui.details_access_caption": "Flader viser, om et værktøj kan nå dem fra den valgte retning.",
"ui.details_angle": "Vinkel",
"ui.details_continuity_caption": "Redigér den valgte overgang. Andre overgange beholder deres egne indstillinger.",
"ui.details_continuity_stale": "Tidligere geometri: Kør analysen igen for at redigere eller indramme denne overgang.",
"ui.details_copy_list": "Kopiér liste",
"ui.details_curvature": "Krumningstolerance",
"ui.details_curvature_caption": "Flader farves efter deres lokale krumningsradius.",
"ui.details_direction": "Værktøjsretning",
"ui.details_draft_caption": "Flader farves efter deres vinkel til udtræksretningen.",
"ui.details_edit_seam": "Redigér overgang",
"ui.details_fixture": "Komponenteksempel — kun eksempeldata",
"ui.details_fixture_caption": "Komponenteksempel med illustrative værdier; dette er ikke et resultat fra modellen.",
"ui.details_fixture_problem": "Eksempel på fund med et problem",
"ui.details_fixture_readout": "Eksempel på målt værdi",
"ui.details_flip": "Vend",
"ui.details_gap": "Åbning",
"ui.details_hatch": "Skraver snitflader",
"ui.details_jump": "Krumningsspring",
"ui.details_key": "Forklaring",
"ui.details_offset": "Forskydning",
"ui.details_plane": "Plan",
"ui.details_pull": "Udtræksretning",
"ui.details_radius": "Radius",
"ui.details_readout": "Aflæsning",
"ui.details_samples": "Prøvepunkter",
"ui.details_seam": "{body} · Kant {edge}",
"ui.details_settings": "Indstillinger",
"ui.details_sharp_gap": "Skarp eller åbning",
"ui.details_show_all": "Vis alle {count}",
"ui.details_smooth": "Glat",
"ui.details_stripes": "Striber",
"ui.details_target": "Indram geometri",
"ui.details_worst_seams": "Dårligste overgange",
"ui.details_zebra_caption": "Reflekterede striber viser, hvor glat flader går sammen.",
"ui.diameter": "Diameter",
"ui.dimension": "Målsætning",
"ui.direct_interaction": "Direkte interaktion",
@@ -4126,6 +4530,7 @@
"ui.edit_in_place_saved_elsewhere": "Delen blev gemt i en anden fil; samlingen linker stadig til {name}",
"ui.edit_in_place_wait": "Vent, til det, der kører i designet, er færdigt",
"ui.edit_section_analysis": "Redigér snitanalyse",
"ui.edit_sketch_empty": "Ingen skitser at redigere",
"ui.ellipse": "Ellipse",
"ui.emboss_wrap_note": "Ortogonale linjeprofiler, der tangerer én understøttet cylinder, vikles automatisk om. Vælg en væg for at vælge et mål.",
"ui.end_radius": "Slutradius",
@@ -4136,12 +4541,15 @@
"ui.equation_explicit": "Eksplicit",
"ui.equation_form": "Form",
"ui.equation_note": "Variablen er et almindeligt tal: sin(t) tager den i radianer. Et resultat uden enhed er i designets enhed.",
"ui.equation_note_range": "Variablen er en længde, ligesom dens interval er det: Kombinér den med længdeparametre, og divider den med en længde for sin(). Et resultat uden enhed er i designets enhed.",
"ui.equation_parametric": "Parametrisk",
"ui.equation_variable_unit": "Variablen har intervallets enhed",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Ækvivalent radius",
"ui.expand": "Fold ud",
"ui.explode_needs_two_components": "Eksploderet visning trækker komponenter fra hinanden, så designet skal have to eller flere af dem (Ny komponent, Indsæt design eller Opret komponenter fra emner)",
"ui.exportDxf": "Eksportér DXF…",
"ui.export_ellipsis_keymap": "Eksportér…",
"ui.export_keymap_tip": "Gem tastaturgenveje, favoritter i S-menuen og værktøjslinjen i en fil",
@@ -4302,6 +4710,7 @@
"ui.insert_design.saved_file": "{name} har ændringer, der ikke er gemt, så dens gemte fil blev indsat. Gem den, og kør derefter Opdatér forbindelser for at hente ændringerne.",
"ui.insert_design.unsaved": "Ikke-gemte ændringer",
"ui.inspect": "Inspicér",
"ui.instances": "Forekomster",
"ui.intersect": "Fællesvolumen",
"ui.isolate": "Isolér",
"ui.join": "Foren",
@@ -4310,12 +4719,14 @@
"ui.joints": "Led",
"ui.keyboard_shortcuts": "Tastaturgenveje",
"ui.language": "Sprog",
"ui.lasso_select": "Lasso (træk en frihåndsløkke: Markerer det, der ligger helt indeni)",
"ui.layout_compact": "Kompakt",
"ui.layout_floating": "Flydende",
"ui.length": "Længde",
"ui.length_decimals": "Længdedecimaler",
"ui.light": "Lys",
"ui.line": "Linje",
"ui.line_arc_hint": "Tangentbue: Klik på buens slutpunkt. Hvil markøren på det sidste punkt igen for linjer; højreklik eller Esc for at afslutte",
"ui.link_copies": "Link identiske kopier",
"ui.link_copies_keep": "Behold",
"ui.link_copies_link": "Link",
@@ -4404,6 +4815,7 @@
"ui.part_size_shared": "Genopbygger delen og erstatter alle tilføjede features. Alle forekomster af komponenten opdateres.",
"ui.paste": "Indsæt",
"ui.path": "Bane",
"ui.pattern_object_type_tip": "Emner: massive former, der vælges i visningen eller modeltræet; hvert kopieres helt.\nFeatures: trin i historikken, f.eks. en ekstrudering eller et hul, der vælges i historikken eller på en flade, de har lavet; trinnet gentages.\nEn skitse er ingen af delene: Gentag dens kurver med skitsens eget Mønster eller Spejling, eller ekstruder den først.",
"ui.pattern_on_path": "Mønster langs bane",
"ui.perforate_margin_default": "ud fra diameteren",
"ui.perforate_pitch": "Deling",
@@ -4449,9 +4861,9 @@
"ui.polygon": "Polygon",
"ui.preferences": "Indstillinger",
"ui.press_a_key": "tryk på en tast…",
"ui.print_face_body_not_sent": "Den flades emne sendes ikke: føj det først til Emner",
"ui.print_face_cleared": "{body}: printflade ryddet",
"ui.print_face_input": "Printflade",
"ui.print_face_one_body": "En printflade hører til ét legeme: send det legeme alene for at ændre den",
"ui.print_face_pick": "Vælg en plan flade på et massivt legeme for at gøre den til printfladen",
"ui.print_face_set": "{body}: printflade sat; Send til slicer lægger legemet på den",
"ui.profile": "Profil",
@@ -4469,6 +4881,7 @@
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Måler…",
"ui.properties.measuring_bodies": "Måler… {done} af {total} emner",
"ui.properties.measuring_failed": "Målingen blev stoppet, før den var færdig.",
"ui.properties.principal_axis": "Hovedakse {number}",
"ui.properties.principal_moments": "Hovedmomenter",
@@ -4536,6 +4949,7 @@
"ui.selectOther": "Vælg andet…",
"ui.selectTangentChain": "Vælg tangentkæde",
"ui.select_all": "Vælg alle",
"ui.select_components_by_face": "Vælg komponenter (en flade vælger dens komponent)",
"ui.selection": "Markering",
"ui.selection_modifiers": "Taster ved markering",
"ui.selection_shift_add_only": "Shift+klik tilføjer uden at fjerne",
@@ -4677,12 +5091,15 @@
"ui.view_angles": "Visningsvinkler",
"ui.view_angles_convention": "Grader om den opadgående akse. Krøjning 0° er visningen Forfra, 90° Fra venstre, −90° Fra højre, 180° Bagfra; stampning 90° er visningen Ovenfra; en positiv rulning drejer modellen med uret.",
"ui.view_angles_help": "Viser visningens stampning, krøjning og rulning i grader samt dens projektion under orienteringsgizmoen. Klik på visningen for at skrive eksakte vinkler.",
"ui.view_angles_lock": "Lås {axis}",
"ui.view_angles_ortho": "Orto",
"ui.view_angles_persp": "Persp",
"ui.view_angles_pitch": "Stampning",
"ui.view_angles_readout": "Stampning {pitch} · Krøjning {yaw} · Rulning {roll}",
"ui.view_angles_roll": "Rulning",
"ui.view_angles_unlock": "Lås {axis} op",
"ui.view_angles_yaw": "Krøjning",
"ui.view_angles_zero": "Sæt {axis} til 0°",
"ui.view_centre": "Visningens centrum",
"ui.viewport_status_clear": "Slå {name} fra",
"ui.viewport_status_clear_hint": "Slå {name} fra · Esc",
@@ -4695,6 +5112,10 @@
"ui.viewport_status_section_plane": "Aktuelt plan",
"ui.viewport_status_section_tilted": "vippet · {offset}",
"ui.viewport_status_stripes": "{count} striber",
"ui.viewport_status_summary_clear": "Slå alt fra",
"ui.viewport_status_summary_heading": "I denne visning",
"ui.viewport_status_summary_label": "{name} og {count} flere elementer",
"ui.viewport_status_summary_more": "+{count}",
"ui.viewport_theme_follow": "Følg tema",
"ui.visual_shaded_hidden_edges": "Skyggelagt med skjulte kanter",
"ui.visual_shaded_with_edges": "Skyggelagt med kanter",
+809 -10
View File
File diff suppressed because it is too large Load Diff
+16 -2
View File
@@ -47,7 +47,13 @@
"color.edit": "Click to edit colour",
"color.gamma": "Showing colour values in 0-255 gamma space",
"color.linear": "Showing colour values in 0-1 linear space",
"color.recent": "Recent colours",
"color.recent_help": "Colours you pick in any colour field appear here",
"color.saturation": "Saturation (per cent)",
"color.selected": "Selected colour",
"color.step_down": "Step down",
"color.step_up": "Step up",
"color.value": "Value, the brightness (per cent)",
"dxf.cancelled": "DXF export cancelled",
"dxf.cancelling": "Cancelling DXF export",
"help.apache": "Apache licence 2.0",
@@ -70,12 +76,11 @@
"prefs.bottom_centre": "Bottom centre",
"prefs.logo_theme": "Theme's colours",
"prefs.max_file_size": "Largest file to open",
"prefs.max_file_size_design": "Design files",
"prefs.max_file_size_flag": "This run started with --max-file-size {size}, which applies until SolidCraft closes. These settings apply when it starts without it.",
"prefs.max_file_size_note": "Defaults: 512 MB and 256 MB; at most 16 GB. Opening a file takes several times its size in memory. A design that keeps a large import may need a higher design file limit to save and reopen.",
"prefs.max_file_size_step": "STEP and import files",
"prefs.max_file_size_web": "The web app opens STEP and import files up to 512 MB and designs up to 256 MB: a browser tab can't hold larger files. The desktop app can raise these limits.",
"prefs.megabytes": "MB",
"prefs.network_locations_note": "For organisations that keep designs on file servers. Off: only servers you allow.",
"prefs.sketch_conflict_colour": "Conflicting geometry in the conflict colour",
"prefs.sketch_conflict_colour_note": "While a sketch's constraints conflict, the curves and points a failing constraint holds are drawn in the conflict colour too, not only its glyph or dimension. Off: they keep their usual colours.",
"prefs.sketch_construction_lines": "Extended construction line tools",
@@ -86,12 +91,18 @@
"prefs.sketch_tracking_guides": "Centre and midpoint alignment guides",
"prefs.sketch_tracking_guides_note": "Hover over a circle centre or straight-edge midpoint, then move horizontally or vertically to show a temporary dotted guide.",
"prefs.status_bar_note": "A thin bar along the window's bottom edge shows what is being edited, the open sketch's state in its colour and the design's units; a click on the units changes them. The sketch's state then no longer shows in the view's corner.",
"prefs.structure.appearance_note": "Colours, text and accessibility.",
"prefs.structure.tools_note": "How modelling tools behave.",
"prefs.theme_follow": "Follow a theme file",
"prefs.theme_follow_error": "Not applied: {error}. The last good theme stays on.",
"prefs.theme_follow_launch": "Followed for this run only (--theme-file); reloaded whenever another tool rewrites it.",
"prefs.theme_follow_note": "Reloaded whenever another tool rewrites it. Choosing a theme stops following it.",
"prefs.theme_follow_off": "Off",
"prefs.theme_follow_stop": "Stop following",
"prefs.theme_option_opacity_help": "Adjust floating panel opacity. A readability floor protects text over viewport colours.",
"prefs.theme_option_tab_colours": "Tab colours",
"prefs.theme_option_tab_colours_help": "Use this theme’s panel and viewport colours for each ribbon tab.",
"prefs.theme_option_tab_fade_ms_help": "Fade panel and viewport colours when switching tabs. Zero switches instantly.",
"prefs.trackpad_zoom_modifier.help": "Hold only this key to zoom at the pointer with vertical scroll. Off keeps the existing scroll behaviour.",
"prefs.view": "View behaviour",
"prefs.viewport_background_colour": "Colour",
@@ -234,7 +245,10 @@
"ui.default_modelling_orientation": "Default modelling orientation",
"ui.design_properties.license": "Licence",
"ui.design_properties.organization": "Organisation",
"ui.details_curvature_caption": "Faces are coloured by their local radius of curvature.",
"ui.details_draft_caption": "Faces are coloured by their angle to the pull direction.",
"ui.export_keymap_tip": "Keys, S box favourites and the toolbar, as a file",
"ui.instances": "Instances",
"ui.layout_compact": "Compact",
"ui.layout_floating": "Floating",
"ui.material_review.claims": "Sources and licences are unverified claims. Missing values remain unknown.",
+480 -11
View File
File diff suppressed because it is too large Load Diff
+73 -1
View File
@@ -822,6 +822,7 @@
"cmd.appearance_pick_up": "Tomar apariencia",
"cmd.appearance_replace": "Reemplazar apariencia",
"cmd.assembly_bom": "Lista de materiales",
"cmd.assembly_mass_properties": "Propiedades de masa",
"cmd.body.print_face": "Cara de impresión",
"cmd.body_rename": "Cambiar nombre del cuerpo",
"cmd.browser_collapse_all": "Contraer todo",
@@ -1194,6 +1195,7 @@
"cmd.sketch_spline_control_point_5": "Spline por puntos de control (grado 5)",
"cmd.sketch_spline_fit_point": "Spline por puntos de ajuste",
"cmd.sketch_spline_insert_point": "Añadir punto de spline",
"cmd.sketch_spline_remove_point": "Eliminar punto de spline",
"cmd.sketch_spline_reverse": "Invertir dirección del spline",
"cmd.sketch_spun_profile": "Perfil de revolución",
"cmd.sketch_toggle_diameter": "Alternar radio / diámetro",
@@ -1285,8 +1287,14 @@
"color.hex_hint": "#rrggbb",
"color.hue": "Tono",
"color.linear": "Mostrando los valores de color en espacio lineal 0-1",
"color.recent": "Colores recientes",
"color.recent_help": "Los colores que elija en cualquier campo de color aparecen aquí",
"color.saturation": "Saturación (porcentaje)",
"color.saturation_value": "Saturación y valor",
"color.selected": "Color seleccionado",
"color.step_down": "Bajar un paso",
"color.step_up": "Subir un paso",
"color.value": "Valor, el brillo (porcentaje)",
"config.column_filter_empty": "Sin columnas coincidentes",
"contact.components_count": "{count} componentes",
"contact.enabled_label": "activado",
@@ -1775,6 +1783,11 @@
"not a move": "no es un movimiento",
"not a number": "no es un número",
"open a sketch first": "abre primero un boceto",
"parameters.apply_live": "Aplicar en vivo",
"parameters.apply_live_tip": "Aplica los cambios de parámetros mientras los editas",
"parameters.held": "Mantenidos ({count})",
"parameters.held_hint": "Parámetros mantenidos durante la edición",
"parameters.held_one": "Uno mantenido",
"parts.automatic_name": "automático",
"parts.dimension.across_flats": "Entrecaras",
"parts.dimension.bore": "Diámetro interior",
@@ -1793,12 +1806,19 @@
"parts.family.button_head_cap_screw": "Tornillo cabeza botón",
"parts.family.dowel_pin": "Pasador cilíndrico",
"parts.family.hex_bolt": "Tornillo de cabeza hexagonal",
"parts.family.hex_cap_screw_inch": "Tornillo de cabeza hexagonal (pulgadas)",
"parts.family.hex_nut": "Tuerca hexagonal",
"parts.family.hex_nut_inch": "Tuerca hexagonal (pulgadas)",
"parts.family.set_screw": "Prisionero con hexágono interior, punta plana",
"parts.family.socket_head_cap_screw": "Tornillo cilíndrico con hexágono interior",
"parts.family.washer": "Arandela plana",
"parts.family.washer_sae": "Arandela plana, SAE (estrecha)",
"parts.family.washer_uss": "Arandela plana, USS (ancha)",
"parts.holes": "Agujeros (opcional)",
"parts.placement_hint": "elige uno o más agujeros para colocar una pieza en cada uno, o Aceptar la coloca en el origen",
"parts.system": "Sistema de unidades",
"parts.system.inch": "Pulgadas",
"parts.system.metric": "Métrico",
"pattern.alignment_2": "Alineación 2",
"pattern.alignment_hint": "Los recuentos incluyen el original. Centrar equilibra las copias; Invertir elige el lado adicional cuando el total es par.",
"pattern.direction_1": "Dirección 1",
@@ -1965,6 +1985,8 @@
"prefs.origin_plane_names": "Nombres de los planos de origen",
"prefs.origin_plane_names_note": "Nombres que se muestran en el explorador, diálogos y listas. {top} es XY, {front} es XZ y {right} es YZ",
"prefs.overall_speed": "Velocidad general",
"prefs.parameter_list_rows": "Filas de la lista de parámetros",
"prefs.parameter_list_rows_tip": "Número de filas visibles en la lista de parámetros",
"prefs.persistent_ribbon_pressed": "Resaltar comandos activos de la cinta",
"prefs.persistent_ribbon_pressed_help": "Resaltar comandos de la cinta mientras sus efectos están activos. Desactivar para mantener el comportamiento anterior.",
"prefs.perspective_fov": "Campo de visión",
@@ -2041,6 +2063,8 @@
"prefs.sketch_tab_always_note": "La pestaña Boceto permanece en la cinta, tras Modelo, mientras no haya ningún boceto abierto. Sus herramientas de dibujo inician un boceto en el plano o cara seleccionados, o en el que elijas a continuación, con la herramienta lista.",
"prefs.sketch_tracking_guides": "Guías de alineación a centro y punto medio",
"prefs.sketch_tracking_guides_note": "Al pasar el ratón por el centro de un círculo o el punto medio de un borde recto, muévete horizontal o verticalmente para mostrar una guía punteada temporal.",
"prefs.sketch_tracking_points": "Guías de alineación desde extremos y esquinas al dibujar",
"prefs.sketch_tracking_points_note": "Mientras una herramienta de dibujo espera un punto, al pasar el ratón por el extremo de una línea o un arco, la esquina de un rectángulo o un punto libre se muestra la misma guía punteada temporal que en un centro o punto medio. Desactivado: solo centros y puntos medios.",
"prefs.sketching": "Bocetos",
"prefs.snap_drawing_note": "Mientras dibujas o arrastras un punto del boceto.",
"prefs.source": "Origen",
@@ -2089,6 +2113,8 @@
"prefs.under_cursor": "Bajo el cursor",
"prefs.units_precision": "Unidades y precisión",
"prefs.updates": "Actualizaciones",
"prefs.value_boxes_in_view": "Cuadros de valor en la vista",
"prefs.value_boxes_in_view_tip": "Muestra los cuadros de valor de los parámetros en la vista 3D",
"prefs.view": "Comportamiento de la vista",
"prefs.view_confirm_corner": "Aceptar y Cancelar en la esquina de la vista",
"prefs.view_confirm_corner_note": "Mientras un diálogo o un boceto está abierto, una marca y una equis en la esquina superior derecha de la vista hacen lo que el Aceptar y el Cancelar del diálogo, o terminan y cancelan el boceto. El navegador de vistas se mueve debajo.",
@@ -2098,6 +2124,10 @@
"prefs.viewport_background": "Fondo",
"prefs.viewport_background_colour": "Color",
"prefs.viewport_background_theme": "Degradado del tema",
"prefs.viewport_section_status": "Estado de la sección del visor",
"prefs.viewport_section_status_help": "Muestra el estado de la sección activa en la barra de estado",
"prefs.viewport_status_summary": "Resumen del estado del visor",
"prefs.viewport_status_summary_help": "Muestra un resumen del estado en la barra de estado del visor",
"prefs.wheel": "Rueda",
"prefs.wheel_trackpad": "Rueda y panel táctil",
"prefs.workspace": "Espacio de trabajo",
@@ -2976,7 +3006,9 @@
"render.output_ready": "Listo para renderizar",
"render.output_run_check": "Ejecutar comprobación",
"render.output_size_limit": "{method}: hasta {dimension} px por lado y {pixels} píxeles. Tamaño máximo que cabe: {width} × {height}.",
"render.output_size_method_profile": "Método: {method}, perfil: {profile}, {width}x{height}",
"render.output_size_ok": "Tamaño OK · {width} × {height} px",
"render.output_size_profile": "Perfil: {profile}, {width}x{height}",
"render.output_swap_orientation": "Intercambiar ancho y alto",
"render.output_tools_inspector": "Edita el tamaño y el formato en el inspector de Salida.",
"render.output_view_image": "Ver imagen",
@@ -3189,6 +3221,7 @@
"render.size_custom": "Personalizado…",
"render.size_full_hd": "Full HD",
"render.size_hd": "HD",
"render.size_needs_profile": "El tamaño {size} necesita el perfil {profile}",
"render.size_presets": "Preestablecidos de tamaño",
"render.size_presets_pending": "Llega con el editor de Salida",
"render.size_preview": "Previsualización",
@@ -3476,6 +3509,24 @@
"sheet.flange_type_contour": "Contorno",
"sheet.flange_type_edge": "Arista",
"sheet.no_body": "no hay ningún cuerpo de chapa: crea uno con Pestaña > Base o convierte una placa en chapa con Convertir a chapa (elige su cara plana grande)",
"sheet.personal_rules.confirm_delete": "Confirmar eliminación",
"sheet.personal_rules.delete": "Eliminar",
"sheet.personal_rules.delete_prompt": "¿Eliminar esta regla personal?",
"sheet.personal_rules.full": "Completa",
"sheet.personal_rules.invalid_name": "Nombre no válido",
"sheet.personal_rules.invalid_values": "Valores no válidos",
"sheet.personal_rules.missing": "Falta",
"sheet.personal_rules.name": "Nombre",
"sheet.personal_rules.name_exists": "El nombre ya existe",
"sheet.personal_rules.name_hint": "Nombre de la regla personal",
"sheet.personal_rules.overwrite": "Sobrescribir",
"sheet.personal_rules.rename": "Cambiar nombre",
"sheet.personal_rules.rule": "Regla",
"sheet.personal_rules.save": "Guardar",
"sheet.personal_rules.scope": "Ámbito",
"sheet.personal_rules.select": "Seleccionar",
"sheet.personal_rules.title": "Título",
"sheet.personal_rules.unsupported": "No compatible",
"shortcut.json_error": "los parámetros deben estar en formato JSON: {error}",
"shortcut.no_command": "no existe el comando `{id}`; el texto anterior al JSON debe ser un ID de comando",
"shortcut.pin": "Fijar en la parte superior del cuadro S",
@@ -3512,6 +3563,7 @@
"sketch_text.align_right": "Alinear a la derecha",
"sketch_text.bold": "Negrita",
"sketch_text.builtin_font": "{family} (integrada)",
"sketch_text.formula": "Fórmula",
"sketch_text.italic": "Cursiva",
"sketch_text.loading_fonts": "Buscando fuentes instaladas…",
"sketch_text.on_path": "El texto sigue su trayectoria: la curva determina su posición",
@@ -3652,6 +3704,8 @@
"ui.3d_mouse_section": "Ratón 3D",
"ui.3d_mouse_show_in_view": "Mostrar el ratón 3D en la vista 3D",
"ui.3d_mouse_show_in_view_tip": "Una imagen de tu ratón 3D en la esquina inferior izquierda que se mueve cuando lo mueves.",
"ui.3d_mouse_sketch_orbit": "Órbita de boceto con ratón 3D",
"ui.3d_mouse_sketch_orbit_tip": "Usa el ratón 3D para orbitar en el boceto",
"ui.3d_mouse_skip": "Mi dispositivo no puede hacer esto",
"ui.3d_mouse_skip_tip": "Omite este movimiento en ambos sentidos; la calibración lo deja fuera.",
"ui.3d_mouse_speed": "Velocidad del ratón 3D",
@@ -3815,6 +3869,8 @@
"ui.agent_chat_remove": "Quitar de la cola",
"ui.agent_chat_remove_file": "Quitar de este mensaje",
"ui.agent_chat_remove_imported": "Quitar de este mensaje; la pieza permanece en el diseño (Deshacer la elimina)",
"ui.agent_chat_reply_cut_off": "Respuesta del agente cortada",
"ui.agent_chat_reply_declined": "Respuesta del agente rechazada",
"ui.agent_chat_retry": "Reintentar",
"ui.agent_chat_right": "Derecha",
"ui.agent_chat_save": "Guardar",
@@ -3873,12 +3929,17 @@
"ui.ai_copy_suffix": "copia",
"ui.ai_custom_url": "URL personalizada",
"ui.ai_default": "Predeterminado",
"ui.ai_edit": "Editar",
"ui.ai_edit_agent_title": "Editar agente",
"ui.ai_edit_gone": "Este agente se eliminó, así que no hay nada que guardar.",
"ui.ai_edit_tip": "Cambia el nombre, el comando o el endpoint de este agente. La clave guardada sigue oculta.",
"ui.ai_http_busy": "el servicio está ocupado o ha superado su límite; inténtalo más tarde",
"ui.ai_http_key": "el servicio ha rechazado la clave: compruébala en Preferencias > IA",
"ui.ai_http_not_found": "no existe ese servicio o modelo: comprueba la URL base y el nombre del modelo",
"ui.ai_http_too_large": "la conversación es demasiado grande para este endpoint; empieza un chat nuevo",
"ui.ai_key": "Clave de API",
"ui.ai_key_hint": "opcional; se guarda en el llavero del sistema",
"ui.ai_key_keep_hint": "déjalo vacío para conservar la clave guardada",
"ui.ai_key_needs_https": "La clave solo se envía mediante HTTPS o a este ordenador.",
"ui.ai_key_note": "Se guarda en el llavero del sistema, nunca en los ajustes de SolidCraft. Déjalo vacío para un servidor local.",
"ui.ai_keychain_error": "El llavero del sistema ha rechazado la operación: {error}",
@@ -3910,6 +3971,7 @@
"ui.ai_request_timeout": "Tiempo de espera de las peticiones",
"ui.ai_request_timeout_hint": "Cuánto puede tardar una petición al modelo en esta API: de 30 s a una hora. Auméntalo para un modelo local lento.",
"ui.ai_reset": "Restablecer",
"ui.ai_save": "Guardar",
"ui.ai_settings": "Ajustes de IA…",
"ui.ai_show_features": "Mostrar funciones de IA",
"ui.ai_show_features_note": "Chat del agente: panel en el que un agente de programación que ya utilices, o un servicio de modelos que elijas, trabaja sobre el diseño abierto. Desactivado: no hay botón, atajo, entrada de menú ni panel de IA, y no se busca ni inicia nada.",
@@ -4303,6 +4365,7 @@
"ui.insert_design.saved_file": "{name} tiene cambios sin guardar, así que se insertó su archivo guardado. Guárdalo y luego Actualizar vínculos para traer los cambios.",
"ui.insert_design.unsaved": "Cambios sin guardar",
"ui.inspect": "Inspeccionar",
"ui.instances": "Instancias",
"ui.intersect": "Intersecar",
"ui.isolate": "Aislar",
"ui.join": "Unir",
@@ -4450,9 +4513,9 @@
"ui.polygon": "Polígono",
"ui.preferences": "Preferencias",
"ui.press_a_key": "pulsa una tecla…",
"ui.print_face_body_not_sent": "El cuerpo de esa cara no se envía: añádelo primero a Cuerpos",
"ui.print_face_cleared": "{body}: cara de impresión limpiada",
"ui.print_face_input": "Cara de impresión",
"ui.print_face_one_body": "Se ha elegido una cara de impresión para un cuerpo: envía ese cuerpo solo para cambiarla",
"ui.print_face_pick": "Selecciona una cara plana de un cuerpo sólido para hacerla la cara de impresión",
"ui.print_face_set": "{body}: cara de impresión establecida; Enviar a Laminador coloca el cuerpo sobre ella",
"ui.profile": "Perfil",
@@ -4470,6 +4533,7 @@
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Midiendo…",
"ui.properties.measuring_bodies": "Midiendo… {done} de {total} cuerpos",
"ui.properties.measuring_failed": "La medición se detuvo antes de terminar.",
"ui.properties.principal_axis": "Eje principal {number}",
"ui.properties.principal_moments": "Momentos principales",
@@ -4537,6 +4601,7 @@
"ui.selectOther": "Seleccionar otro…",
"ui.selectTangentChain": "Seleccionar cadena tangente",
"ui.select_all": "Seleccionar todo",
"ui.select_components_by_face": "Seleccionar componentes por cara",
"ui.selection": "Selección",
"ui.selection_modifiers": "Modificadores de selección",
"ui.selection_shift_add_only": "Mayús+clic añade sin quitar",
@@ -4692,7 +4757,14 @@
"ui.viewport_status_key": "Mostrar tecla para {name}",
"ui.viewport_status_minimum_radius": "Radio mínimo",
"ui.viewport_status_pairs": "{count} pares",
"ui.viewport_status_section_hatch": "Sombreado de sección: {setting}",
"ui.viewport_status_section_plane": "Plano de sección",
"ui.viewport_status_section_tilted": "Sección inclinada ({offset})",
"ui.viewport_status_stripes": "{count} franjas",
"ui.viewport_status_summary_clear": "Limpiar resumen",
"ui.viewport_status_summary_heading": "Encabezado del resumen",
"ui.viewport_status_summary_label": "Etiqueta del resumen: {name} ({count})",
"ui.viewport_status_summary_more": "Más del resumen ({count})",
"ui.viewport_theme_follow": "Seguir tema",
"ui.visual_shaded_hidden_edges": "Sombreado con aristas ocultas",
"ui.visual_shaded_with_edges": "Sombreado con aristas",
+4 -1
View File
@@ -1191,6 +1191,7 @@
"cmd.sketch_spline_control_point_5": "Ohjauspistesplini (aste 5)",
"cmd.sketch_spline_fit_point": "Sovituspistesplini",
"cmd.sketch_spline_insert_point": "Lisää splinipiste",
"cmd.sketch_spline_remove_point": "Poista splinipiste",
"cmd.sketch_spline_reverse": "Käännä splinin suunta",
"cmd.sketch_spun_profile": "Pyöräytysprofiili",
"cmd.sketch_toggle_diameter": "Vaihda säde / halkaisija",
@@ -2054,6 +2055,7 @@
"prefs.status_error": "Virhe",
"prefs.status_selected": "Valittu",
"prefs.status_warning": "Varoitus",
"prefs.structure.scale_percent": "{percent} %",
"prefs.supersampling_brief": "Piirtää näkymän suurempana ja suodattaa sen pienemmäksi: erittäin terävä ja raskaampi.",
"prefs.tab_accent_note": "Korostusväri seuraa aktiivista välilehteä",
"prefs.theme_file": "teematiedosto",
@@ -4320,6 +4322,7 @@
"ui.insert_design.saved_file": "Mallissa {name} on tallentamattomia muutoksia, joten sen tallennettu tiedosto lisättiin. Tallenna se ja tuo muutokset valitsemalla Päivitä linkit.",
"ui.insert_design.unsaved": "Tallentamattomia muutoksia",
"ui.inspect": "Tarkastele",
"ui.instances": "Esiintymät",
"ui.intersect": "Leikkaus",
"ui.isolate": "Eristä",
"ui.join": "Yhdistä",
@@ -4467,9 +4470,9 @@
"ui.polygon": "Monikulmio",
"ui.preferences": "Asetukset",
"ui.press_a_key": "paina näppäintä…",
"ui.print_face_body_not_sent": "Tämän pinnan kappaletta ei lähetetä: lisää se ensin kohtaan Kappaleet",
"ui.print_face_cleared": "{body}: tulostuspinta poistettu",
"ui.print_face_input": "Tulostuspinta",
"ui.print_face_one_body": "Tulostuspinta on valittu yhdelle kappaleelle: lähetä kappale yksinään muuttaaksesi sitä",
"ui.print_face_pick": "Valitse kiinteän kappaleen yksi tasainen pinta tulostuspinnaksi",
"ui.print_face_set": "{body}: tulostuspinta asetettu; Lähetä viipalointiohjelmaan asettaa kappaleen sen varaan",
"ui.profile": "Profiili",
+376 -1
View File
@@ -822,6 +822,7 @@
"cmd.appearance_pick_up": "Prélever l'apparence",
"cmd.appearance_replace": "Remplacer l'apparence",
"cmd.assembly_bom": "Nomenclature",
"cmd.assembly_mass_properties": "Propriétés de masse",
"cmd.body.print_face": "Face d’impression",
"cmd.body_rename": "Renommer le corps",
"cmd.browser_collapse_all": "Tout réduire",
@@ -1194,6 +1195,7 @@
"cmd.sketch_spline_control_point_5": "Spline par points de contrôle (degré 5)",
"cmd.sketch_spline_fit_point": "Spline par points",
"cmd.sketch_spline_insert_point": "Ajouter un point de spline",
"cmd.sketch_spline_remove_point": "Supprimer un point de spline",
"cmd.sketch_spline_reverse": "Inverser le sens de la spline",
"cmd.sketch_spun_profile": "Profil de révolution",
"cmd.sketch_toggle_diameter": "Basculer rayon / diamètre",
@@ -1247,6 +1249,7 @@
"cmd.view.render_browser": "Navigateur de rendu",
"cmd.view.render_dock": "Déplacer le panneau de rendu",
"cmd.view.render_focus": "Vue de rendu ciblée",
"cmd.view.status_details": "Détails d'état de la vue 3D",
"cmd.view.status_items": "Éléments d'état de la vue 3D",
"cmd.view_ambient_occlusion": "Occlusion ambiante",
"cmd.view_angle_readout": "Angles de vue",
@@ -1285,8 +1288,14 @@
"color.hex_hint": "#rrggbb",
"color.hue": "Teinte",
"color.linear": "Valeurs de couleur affichées en espace linéaire 0-1",
"color.recent": "Couleurs récentes",
"color.recent_help": "Les couleurs choisies dans n'importe quel champ de couleur apparaissent ici",
"color.saturation": "Saturation (pour cent)",
"color.saturation_value": "Saturation et valeur",
"color.selected": "Couleur sélectionnée",
"color.step_down": "Diminuer d'un pas",
"color.step_up": "Augmenter d'un pas",
"color.value": "Valeur, la luminosité (pour cent)",
"config.column_filter_empty": "Aucune colonne correspondante",
"contact.components_count": "{count} composants",
"contact.enabled_label": "activé",
@@ -1333,6 +1342,7 @@
"dialog.dimension_name": "Cote : {name}",
"dialog.edit_title": "MODIFIER {title}",
"dialog.no_shown_body": "Aucun corps affiché à modifier : affichez-en un ou choisissez Nouveau corps",
"dialog.pattern_sketch_not_object": "Choisissez des corps ou des fonctions : une esquisse n'est ni l'un ni l'autre. Répétez ses courbes avec la Répétition ou la Symétrie de l'esquisse, ou extrudez-la d'abord.",
"dialog.select": "↖ Sélectionner",
"dialog.selected_count": "↖ {count} sélectionné(s)",
"dialog.selection_guidance": "Sélectionner une entrée pour la modifier. Cliquer sur un objet sélectionné pour le retirer ; Ctrl/Cmd-clic le bascule aussi. Vérifier l'aperçu, puis appuyer sur OK.",
@@ -1390,21 +1400,168 @@
"from the rule": "selon la règle",
"help.apache": "Licence Apache 2.0",
"help.appearance.assign": "Donne aux corps, faces ou composants sélectionnés une couleur ou l'apparence d'un matériau, sans changer leur poids. À utiliser pour distinguer des pièces ou prévisualiser une finition.",
"help.assembly.bom": "Liste les pièces de la conception ou d'un composant avec leurs quantités, par référence, et peut enregistrer la liste en CSV ou JSON. À utiliser comme nomenclature pour la commande et l'assemblage.",
"help.attributions": "Attributions (ATTRIBUTION.md)",
"help.build": "Version {version} · commit {commit} · compilée le {date}",
"help.canvas.decal": "Place une image sur une face plane du modèle, comme un autocollant. À utiliser pour afficher une étiquette, un logo ou un motif imprimé sur une pièce.",
"help.canvas.edit": "Modifie un canevas : sa position, sa taille, son angle, son opacité, sa symétrie, sa visibilité ou son nom. À utiliser pour aligner une image de référence sur l'esquisse que vous décalquez.",
"help.canvas.insert": "Place une image PNG ou JPEG sur un plan ou une face comme référence translucide. À utiliser pour décalquer une photo ou un dessin dans une esquisse, l'image étant mise à une échelle connue.",
"help.component.break_link": "Détache un composant lié de son fichier de conception en conservant ses corps tels quels. À utiliser lorsque la pièce ne doit plus suivre les modifications du fichier d'origine.",
"help.component.capture_position": "Conserve les positions des pièces que vous avez déplacées à la main, qui deviennent leur nouvelle position. À utiliser après avoir fait glisser en place des pièces qu'aucune liaison ne maintient.",
"help.component.create": "Ajoute un composant vide à la conception, dans le composant actif sauf si vous choisissez un autre parent. À utiliser pour donner à une nouvelle pièce d'un assemblage son propre espace pour les corps et les esquisses.",
"help.component.finish_edit": "Enregistre la pièce que vous modifiez sur place, revient à son assemblage et met à jour l'assemblage à partir d'elle. À utiliser lorsque vos modifications de la pièce liée sont terminées.",
"help.component.from_bodies": "Transforme chaque corps sélectionné en composant à part entière, portant le nom du corps. À utiliser lorsqu'une conception faite de corps isolés doit devenir un assemblage dont les pièces peuvent être reliées et déplacées.",
"help.component.insert_design": "Insère une autre conception enregistrée comme composant lié à son fichier, avec ses corps solides placés comme dans ce fichier. À utiliser pour réutiliser une pièce dans un assemblage et récupérer les modifications ultérieures avec Mettre à jour les liens.",
"help.component.properties": "Affiche le volume, la masse, le centre de gravité et les moments d'inertie d'un composant, d'après les matériaux de ses corps. À utiliser pour vérifier le poids et l'équilibre d'un assemblage.",
"help.component.revert_position": "Remet à leur place les pièces que vous avez déplacées à la main, en abandonnant les déplacements non capturés. À utiliser pour annuler des essais de déplacement dans un assemblage.",
"help.component.update_links": "Relit les fichiers de conception liés et remplace les corps qui ont changé. À utiliser après avoir modifié une pièce utilisée par cet assemblage.",
"help.config.configure": "Ajoute des paramètres, des fonctions, des matériaux ou des apparences comme colonnes de la table des configurations. À utiliser pour créer des variantes d'une conception, par exemple les tailles d'une pièce.",
"help.config.preview": "Vérifie qu'une ligne de la table des configurations se reconstruit, sans modifier la conception ni son historique. À utiliser avant de basculer vers une variante incertaine.",
"help.config.rules": "Affiche les règles de la table des configurations, ses lignes et la ligne active. À utiliser pour voir comment les variantes d'une conception sont définies.",
"help.config.table": "Affiche la table des configurations : une ligne par variante, une colonne par paramètre ou fonction, et si la conception correspond toujours à la ligne active. À utiliser pour passer en revue les variantes d'une conception.",
"help.connect_note": "Redémarrez chaque assistant pour charger le serveur SolidCraft. Chaque fichier a été sauvegardé en .bak avant d'être modifié.",
"help.connect_title": "Connecter les assistants IA",
"help.construct.axis.edge": "Crée un axe de construction le long d'une arête droite ou d'une ligne d'esquisse. À utiliser comme axe pour une révolution, une répétition circulaire ou une liaison.",
"help.construct.axis.normal_to_face": "Crée un axe de construction passant par un point, perpendiculaire à une face. À utiliser comme axe qui sort droit d'une surface.",
"help.construct.axis.through_cylinder": "Crée un axe de construction passant par le centre d'une face cylindrique, conique ou torique, ou d'une arête circulaire. À utiliser pour faire tourner ou répéter des fonctions autour d'une pièce ronde.",
"help.construct.axis.two_planes": "Crée un axe de construction là où deux plans ou faces planes se rencontrent. À utiliser lorsque l'axe voulu est la droite entre deux faces.",
"help.construct.axis.two_points": "Crée un axe de construction passant par deux points, sommets ou points d'esquisse. À utiliser pour un axe qui relie deux positions connues.",
"help.construct.plane.along_path": "Crée un plan de construction perpendiculaire à une arête ou une courbe, à une position choisie le long de celle-ci. À utiliser pour esquisser le profil d'un balayage ou une coupe d'une trajectoire.",
"help.construct.plane.at_angle": "Crée un plan de construction tourné d'un angle par rapport à un plan ou une face, autour d'un axe ou d'une arête. À utiliser pour des esquisses inclinées, par exemple une équerre à angle.",
"help.construct.plane.midplane": "Crée un plan de construction à mi-distance entre deux plans ou faces planes, ou bissecteur lorsqu'ils se rencontrent en formant un angle. À utiliser comme plan de symétrie.",
"help.construct.plane.offset": "Crée un plan de construction parallèle à un plan ou une face plane, à une distance donnée ou passant par un point. À utiliser pour esquisser à une hauteur précise au-dessus d'une face.",
"help.construct.plane.perpendicular": "Crée un plan de construction qui contient une droite ou une arête et qui est perpendiculaire à un plan ou une face. À utiliser pour esquisser à la verticale sur un modèle, le long d'une arête.",
"help.construct.plane.tangent": "Crée un plan de construction qui touche un cylindre, un cône, une sphère ou un tore en un point. À utiliser pour esquisser sur le flanc d'une pièce ronde.",
"help.construct.plane.three_points": "Crée un plan de construction passant par trois points. À utiliser pour un plan défini par des positions du modèle, comme trois coins.",
"help.construct.plane.two_edges": "Crée un plan de construction passant par deux arêtes droites ou lignes situées dans un même plan. À utiliser pour un plan à travers une pièce, par exemple par deux arêtes opposées.",
"help.construct.point.along_path": "Crée un point de construction à une position donnée le long d'une arête ou d'une courbe. À utiliser comme référence à mi-chemin sur une trajectoire.",
"help.construct.point.center": "Crée un point de construction au centre d'une arête circulaire, d'un cercle ou arc d'esquisse, d'une sphère ou d'un tore. À utiliser comme référence pour des perçages, des axes et des liaisons.",
"help.construct.point.edge_plane": "Crée un point de construction là où une arête ou une ligne traverse un plan ou une face plane. À utiliser pour repérer où une trajectoire coupe un plan.",
"help.construct.point.three_planes": "Crée un point de construction là où trois plans ou faces planes se rencontrent. À utiliser comme référence de coin, même lorsque le modèle n'a pas de sommet à cet endroit.",
"help.construct.point.two_edges": "Crée un point de construction là où deux arêtes ou lignes se rencontrent, ou se rapprochent le plus. À utiliser comme référence à un coin virtuel.",
"help.construct.point.vertex": "Crée un point de construction sur un sommet ou un point d'esquisse. À utiliser comme référence qui subsiste lorsque l'esquisse ou le corps qui l'entoure est masqué.",
"help.contact.check": "Liste les paires de pièces des jeux de contact qui se traversent dans leur position actuelle. À utiliser pour trouver les collisions avant de piloter les liaisons ou de lancer une étude de mouvement.",
"help.contact.create": "Regroupe deux pièces ou plus dans un jeu de contact, dont les corps ne peuvent pas se traverser pendant le mouvement des liaisons. À utiliser pour des pièces qui doivent s'arrêter au contact, comme un levier contre sa butée.",
"help.contact.disable_all": "Désactive le contact : les liaisons pilotées et les études de mouvement ne s'arrêtent plus là où les pièces se touchent. À utiliser pour déplacer à nouveau les pièces librement, ou pour garder un grand assemblage réactif.",
"help.contact.edit": "Modifie un jeu de contact : les pièces qu'il contient, son nom, ou s'il est désactivé ; peut aussi supprimer le jeu. À utiliser pour ajuster les pièces qui ne doivent pas se traverser.",
"help.contact.enable_all": "Place toutes les pièces de l'assemblage dans un seul jeu de contact, de sorte qu'aucune paire de pièces ne puisse se traverser pendant le mouvement des liaisons. À utiliser pour une vérification rapide d'un mécanisme entier.",
"help.contact.enable_sets": "Active le contact pour les jeux de contact que vous avez définis, de sorte que les liaisons pilotées et les études de mouvement s'arrêtent là où leurs pièces se traverseraient. À utiliser pour retrouver vos jeux après avoir désactivé le contact.",
"help.contact.list": "Liste les jeux de contact de la conception, les pièces de chacun et si le contact est activé. À utiliser pour vérifier la configuration du contact avant de piloter l'assemblage.",
"help.document.inspect": "Affiche une vue d'ensemble de la conception : ses composants, corps, esquisses, fonctions et paramètres. À utiliser pour se repérer dans une conception que vous n'avez pas créée vous-même.",
"help.document.units": "Change les unités dans lesquelles la conception affiche les longueurs, par exemple mm ou pouces. La géométrie garde sa taille ; seuls l'affichage et les nombres bruts suivent.",
"help.edit.checkpoint": "Mémorise la conception, l'esquisse active et l'historique d'annulation dans leur état actuel. À utiliser avant un essai risqué dont vous voudrez peut-être revenir.",
"help.edit.restore_checkpoint": "Revient à un point de restauration, historique d'annulation compris. À utiliser pour abandonner en une seule étape tout ce qui a été fait depuis ce point.",
"help.explode.create": "Crée une vue éclatée qui écarte les pièces du centre de l'assemblage, ou selon les déplacements que vous définissez. À utiliser pour montrer comment un assemblage se monte, pour des notices ou des présentations.",
"help.face.delete": "Supprime les faces sélectionnées et laisse les faces voisines refermer le vide, ou laisse le trou ouvert. À utiliser pour retirer un arrondi, un trou ou un bossage qui gêne.",
"help.file.insert_mesh": "Ajoute un fichier 3MF, STL, OBJ, PLY ou glTF à la conception sous forme de corps maillés dans un nouveau composant. À utiliser pour placer à côté de votre conception un modèle téléchargé ou numérisé comme référence.",
"help.file.insert_step": "Ajoute un fichier STEP, IGES, FreeCAD ou Rhino à la conception sous forme de corps solides dans un nouveau composant ; les pièces d'un assemblage deviennent des composants imbriqués. À utiliser pour importer des modèles de fournisseurs ou d'autres logiciels de CAO.",
"help.file.save_mesh": "Enregistre des corps en maillage STL, 3MF ou OBJ, avec la finesse des faces courbes que vous choisissez. À utiliser pour préparer des pièces à l'impression 3D ou pour des logiciels qui lisent des maillages.",
"help.file.send_to_slicer": "Enregistre les corps sélectionnés en fichier 3MF et l'ouvre dans le slicer de votre choix. À utiliser pour passer du modèle à l'impression en une seule étape.",
"help.font_details": "L’interface utilise les polices intégrées d’egui (Ubuntu Light et Hack, sous les licences Ubuntu Font Licence et MIT/Bitstream Vera ; Noto Emoji et la police d’icônes emoji, sous OFL et MIT). Le texte des esquisses utilise Liberation Sans (SIL OFL 1.1). Le pack de polices facultatif de The Crafting Apps, craft-fonts (BIZ UDPGothic, Shippori Mincho, BIZ UDMincho, Noto Sans CJK SC, Noto Sans Arabic ; SIL OFL 1.1), n’est pas inclus dans les versions de SolidCraft.",
"help.fonts": "Polices",
"help.frame.member": "Place un profilé, tel qu'un tube ou un profilé d'aluminium, le long des lignes d'une esquisse de structure, un élément par ligne. À utiliser pour construire des châssis, des racks et des structures soudées.",
"help.inspect.accessibility": "Colore les faces qu'un outil peut atteindre depuis une direction, et celles qu'il ne peut pas atteindre. À utiliser pour vérifier l'usinabilité ou le moulage d'une pièce depuis ce côté.",
"help.inspect.center_of_mass": "Affiche le centre de gravité des corps, de chacun séparément et de l'ensemble, à densité uniforme. À utiliser pour vérifier l'équilibre et l'endroit où une pièce basculera.",
"help.inspect.colored_components": "Donne à chaque composant sa propre couleur temporaire, sans modifier les apparences. À utiliser pour distinguer d'un coup d'œil les pièces d'un assemblage.",
"help.inspect.compare": "Compare deux corps et montre où l'un a de la matière que l'autre n'a pas, avec le volume et l'écart. À utiliser pour comparer une pièce modifiée ou importée à l'original.",
"help.inspect.continuity": "Vérifie la douceur de raccord des faces le long de leurs arêtes : jeux, cassures ou sauts de courbure, et colore les raccords. À utiliser pour trouver où des surfaces ne se raccordent pas proprement.",
"help.inspect.curvature_comb": "Trace des peignes le long de courbes, d'arêtes ou de faces, dont les dents montrent l'intensité de la courbure. À utiliser pour repérer les méplats, les cassures et les courbures irrégulières.",
"help.inspect.curvature_map": "Colore les faces selon l'intensité de leur courbure, en rouge là où le rayon est petit. À utiliser pour trouver les zones serrées et juger la douceur d'une surface.",
"help.inspect.draft": "Colore les faces selon leur angle de dépouille par rapport à une direction de démoulage, et signale celles qui en manquent. À utiliser pour vérifier une pièce avant moulage ou coulée.",
"help.inspect.environment_map": "Affiche le modèle avec une finition réfléchissante, de type miroir. À utiliser pour juger la fluidité des surfaces d'après la façon dont les reflets les parcourent.",
"help.inspect.interference": "Trouve les corps qui se chevauchent et montre chaque chevauchement avec son volume. À utiliser pour vérifier qu'aucune pièce d'un assemblage n'entre en collision.",
"help.inspect.isocurve": "Trace les courbes isoparamétriques des faces, c'est-à-dire la grille sur laquelle la surface est construite. À utiliser pour voir comment une surface s'écoule et où elle se resserre.",
"help.inspect.measure": "Mesure des longueurs, distances, angles, aires et rayons entre les éléments choisis, ou le volume et la masse de corps. À utiliser pour vérifier des dimensions et des jeux.",
"help.inspect.minimum_radius": "Trouve le plus petit rayon de courbure de courbes, d'arêtes ou de faces, et son emplacement. À utiliser pour vérifier qu'un outil ou une buse peut suivre la forme.",
"help.inspect.section": "Ouvre la vue selon un plan de coupe et hachure les faces coupées, sans modifier le modèle. À utiliser pour regarder à l'intérieur des pièces et des assemblages.",
"help.inspect.zebra": "Affiche des bandes noires et blanches réfléchies sur les faces du modèle. À utiliser pour juger la douceur : des bandes qui se cassent ou se brisent sur une arête révèlent une mauvaise transition.",
"help.joint.as_built": "Relie deux pièces là où elles se trouvent déjà, sans déplacer aucune des deux, et définit comment elles peuvent encore bouger. À utiliser pour des pièces déjà placées dans leur position finale.",
"help.joint.cam": "Relie une came tournante à un suiveur, qui glisse ou pivote lorsque le contour de la came passe dessous. À utiliser pour des cames, des excentriques et des commandes de soupapes.",
"help.joint.create": "Relie deux pièces aux origines de liaison que vous choisissez et déplace la seconde pièce en place ; le type de liaison définit comment elles peuvent encore bouger. À utiliser pour construire un assemblage dont les pièces se déplacent comme le vrai mécanisme.",
"help.joint.drive": "Définit l'angle ou la distance d'une liaison et déplace les pièces en conséquence, dans ses limites ; les liaisons couplées et les boucles fermées suivent. À utiliser pour vérifier qu'un mécanisme se déplace comme prévu.",
"help.joint.gear": "Couple deux liaisons rotatives avec un rapport d'engrenage, de sorte que piloter l'une fait tourner l'autre. À utiliser pour des engrenages droits et des couronnes, avec le rapport tiré des rayons primitifs ou des nombres de dents.",
"help.joint.limits": "Définit jusqu'où une liaison peut tourner ou coulisser, par un minimum et un maximum, ou supprime ces limites. À utiliser pour garder une charnière, une glissière ou un levier dans sa course réelle.",
"help.joint.motion_link": "Couple deux liaisons avec un rapport et un décalage, de sorte que piloter l'une déplace l'autre. À utiliser pour une relation fixe entre liaisons que Engrenage, Pignon et crémaillère ou Vis ne couvrent pas.",
"help.joint.origin": "Place sur une pièce une origine de liaison nommée : au centre d'une face ou d'une extrémité ronde, au milieu d'une arête, à un coin ou en un point. À utiliser pour préparer l'emplacement des liaisons ; une origine choisie sur une face la suit lorsque la pièce change de taille.",
"help.joint.rack_pinion": "Relie un pignon tournant à une crémaillère coulissante, de sorte que la crémaillère avance de la longueur de cercle primitif que le pignon parcourt en roulant. À utiliser pour des commandes à crémaillère, des directions et des axes linéaires.",
"help.joint.reach": "Déplace un point d'une pièce vers une cible en modifiant les liaisons de sa chaîne, dans leurs limites. À utiliser pour positionner un mécanisme selon l'endroit où doit se trouver son extrémité, comme le bout d'un bras de robot.",
"help.joint.rigid_group": "Verrouille ensemble les pièces sélectionnées telles qu'elles sont, pour qu'elles se déplacent d'un seul bloc. À utiliser pour des pièces qui vont ensemble et qui n'ont aucun mouvement entre elles.",
"help.joint.screw": "Couple rotation et translation par un pas, de sorte que chaque tour avance de cette distance. À utiliser pour des vis mères, des boulons et des broches filetées.",
"help.library.apply": "Applique un matériau ou une apparence d'un fichier de bibliothèque local à des corps, des faces ou des composants. À utiliser pour réutiliser des matériaux enregistrés depuis une autre conception.",
"help.library.export": "Enregistre les matériaux et apparences de la conception dans un fichier de bibliothèque. À utiliser pour les partager ou les réutiliser dans d'autres conceptions.",
"help.library.inspect": "Vérifie un fichier de bibliothèque et liste ses matériaux et apparences, sans modifier la conception. À utiliser pour voir ce que contient une bibliothèque avant de l'appliquer.",
"help.licences": "Licences",
"help.material.assign": "Applique le matériau choisi aux corps sélectionnés, par exemple acier, aluminium ou ABS. À utiliser pour que la masse et le poids correspondent à la pièce réelle.",
"help.material.properties.validate": "Vérifie qu'une fiche de données de matériau a des valeurs cohérentes et qu'aucune n'est manquante. À utiliser avant de se fier aux données pour la masse ou la rigidité.",
"help.mesh.convert": "Reconstruit un corps maillé, tel qu'un STL, en solide modifiable avec des faces planes et cylindriques. À utiliser pour modifier une pièce mécanique importée comme un corps modélisé.",
"help.mit": "Licence MIT",
"help.motion.study": "Définit des valeurs de liaison à des étapes le long d'une chronologie et les rejoue sous forme d'animation. À utiliser pour voir un mécanisme se déplacer selon une séquence et vérifier les jeux en chemin.",
"help.motion.trace": "Trace le chemin que suit un point d'une pièce pendant la lecture d'une étude de mouvement ou le pilotage d'une liaison, et le conserve comme courbe d'esquisse 3D lorsque vous confirmez. À utiliser pour voir où arrive un mécanisme, ou pour construire à partir de sa trajectoire.",
"help.notice": "NOTICE",
"help.occurrence.ground": "Fixe une pièce en place, ou la libère, de sorte que les liaisons déplacent les autres pièces autour d'elle. À utiliser pour le châssis ou la base sur laquelle le reste de l'assemblage est construit.",
"help.occurrence.move": "Déplace une pièce d’assemblage selon les seules libertés permises par ses liaisons. Sélectionnez une face de la pièce, puis faites glisser une flèche ou un arc disponible.",
"help.parameters.change": "Ouvre le tableau des valeurs nommées et des expressions qui pilotent les cotes de la conception. À utiliser pour changer une dimension à un seul endroit et faire suivre toutes les fonctions qui l'utilisent.",
"help.parameters.export": "Enregistre les paramètres de la conception en CSV ou JSON. À utiliser pour les modifier dans un tableur ou les transférer vers une autre conception.",
"help.parameters.graph": "Montre quels paramètres et fonctions en utilisent quels autres, ainsi que les boucles ou erreurs entre eux. À utiliser pour voir ce que la modification d'un paramètre va affecter.",
"help.parameters.import": "Lit des paramètres depuis un CSV ou un JSON dans la conception, tous ou aucun. À utiliser pour importer des valeurs d'un tableur ou d'une autre conception.",
"help.parameters.move": "Déplace un paramètre utilisateur avant ou après un autre dans la liste. À utiliser pour garder ensemble les paramètres liés.",
"help.parts.fastener": "Ajoute une vis, un boulon, un écrou, une rondelle, une goupille ou un roulement standard à la taille choisie. Placé sur un perçage, il s'y loge avec une liaison, ce qui évite de modéliser soi-même les fixations.",
"help.parts.insert": "Insère une pièce standard de la famille, de la taille et de la longueur choisies. Placée sur le bord ou la paroi d'un perçage, elle s'y loge avec une liaison rigide.",
"help.parts.library": "Ouvre les pièces standard : vis, boulons, écrous, rondelles, vis sans tête, goupilles cylindriques et roulements en tailles normalisées. À utiliser pour ajouter une pièce standard plutôt que de la modéliser soi-même.",
"help.parts.resize": "Change la taille ou la longueur d'une pièce standard insérée et la reconstruit ; ses liaisons la maintiennent en place. À utiliser lorsqu'une vis se révèle trop longue ou qu'un perçage demande une autre taille.",
"help.plastic.assign_rule": "Affecte une règle plastique à des corps, de sorte que leurs fonctions plastique prennent sa dépouille et son jeu par défaut. À utiliser pour configurer une pièce moulée une fois pour toutes ses fonctions.",
"help.plastic.boss": "Ajoute un bossage de vis sur une face : un plot avec perçage, dépouille, congé de pied et nervures de soutien facultatifs. À utiliser pour les points de vissage des boîtiers moulés ou imprimés.",
"help.plastic.lip": "Ajoute une lèvre ou une rainure correspondante le long du bord d'un corps évidé. À utiliser pour que deux moitiés de boîtier se positionnent l'une sur l'autre et se ferment hermétiquement.",
"help.plastic.manage_rules": "Crée et modifie des règles plastique : matériau, épaisseur de paroi, rayons, jeu et dépouille. À utiliser pour garder cohérentes les fonctions d'une pièce moulée.",
"help.plastic.rest": "Ajoute un appui sur une face : un plot rond ou rectangulaire, plein ou creux, avec dépouille. À utiliser comme support ou entretoise dans un boîtier moulé.",
"help.plastic.snap_fit": "Ajoute un crochet de clip sur une face, avec sa longueur, son épaisseur et son ergot. À utiliser pour assembler des pièces par encliquetage sans vis.",
"help.pointcloud.insert": "Insère un scan PLY, XYZ ou PTS sous forme de nuage de points à côté du modèle. Utilisez-le comme référence pour construire un modèle à partir de données mesurées.",
"help.sheet.convert": "Transforme une plaque ou un corps évidé d'épaisseur uniforme en corps de tôlerie, avec des plis aux arêtes choisies. À utiliser pour rendre une pièce existante dépliable.",
"help.sheet.export_bend_table": "Enregistre la table des plis d'un corps de tôlerie en CSV ou JSON : angles, rayons et positions des plis à plat. À utiliser pour la plieuse ou l'atelier.",
"help.sheet.export_dxf": "Enregistre la mise à plat en DXF, avec contours, lignes de pli et annotations de pli facultatives. À utiliser pour la découpe laser, plasma ou jet d'eau.",
"help.sheet.flange": "Ajoute un bord tombé : une plaque de base à partir d'une esquisse, une paroi le long d'un contour d'esquisse ouvert, ou une paroi pliée sur des arêtes de tôle. À utiliser pour construire des pièces de tôlerie.",
"help.sheet.flat_pattern": "Crée la mise à plat d'un corps de tôlerie, avec sa taille, ses découpes et ses lignes de pli. À utiliser pour vérifier le flan avant de le découper.",
"help.sheet.fold": "Plie une tôle le long d'une ligne d'esquisse selon un angle et un rayon. À utiliser pour plier une tôle plate après y avoir découpé des fonctions.",
"help.sheet.hem": "Replie un bord de tôle sur lui-même. À utiliser pour obtenir des bords sûrs et rigides, sans bavures coupantes.",
"help.sheet.manage_rules": "Crée et modifie des règles de tôlerie : épaisseur, rayon de pli, facteur K, dégagements et jeux. À utiliser pour s'adapter au matériau et aux outils de votre atelier.",
"help.sheet.path_flange": "Ajoute une chaîne de bords tombés le long d'une arête de tôle, en suivant une chaîne ouverte de lignes d'esquisse. À utiliser pour des profils en U ou en Z en une seule étape.",
"help.sheet.perforate": "Ajoute un champ de trous sur toute la tôle à plat, en motif décalé ou carré. À utiliser pour des aérations, des grilles et des panneaux allégés.",
"help.sheet.refold": "Replie un corps de tôlerie déplié. À utiliser après avoir ajouté des fonctions à la tôle à plat.",
"help.sheet.unfold": "Déplie tous les plis d'un corps de tôlerie. À utiliser pour ajouter des trous ou des découpes qui doivent traverser un pli, puis replier.",
"help.sketch.arc.center_point": "Dessine un arc de cercle autour d'un centre, d'un point de départ à un point d'arrivée. À utiliser lorsque le centre de l'arc est connu, comme un rayon autour d'un perçage ou d'un pivot.",
"help.sketch.arc.tangent": "Dessine un arc qui part de l'extrémité d'une ligne ou d'un arc et continue en tangence avec lui. À utiliser pour poursuivre une chaîne avec une courbe douce plutôt qu'un angle.",
"help.sketch.arc.three_point": "Dessine un arc d'un point de départ à un point d'arrivée en passant par un troisième point. À utiliser lorsque l'arc doit passer par des points donnés plutôt qu'autour d'un centre connu.",
"help.sketch.arc3d": "Dessine un arc de cercle exact dans l'espace par trois points, avec Esquisse 3D activée. À utiliser pour des courbes de trajectoires et de rails guides qui sortent du plan d'esquisse.",
"help.sketch.auto_constrain": "Ajoute les contraintes que l'esquisse a presque déjà, comme horizontale, parallèle ou coïncidente, puis la cote jusqu'à ce qu'elle soit entièrement définie. À utiliser pour verrouiller en une étape une esquisse dessinée approximativement.",
"help.sketch.auto_constrain_from_datum": "Fonctionne comme Contraintes automatiques, mais mesure les positions depuis un point de référence que vous choisissez plutôt que depuis l'origine. À utiliser lorsque la pièce est tracée à partir d'un point de référence, comme un coin ou un perçage.",
"help.sketch.blend_curve": "Relie les extrémités de deux courbes par une spline douce, tangente aux deux, ou aussi continue en courbure si vous le choisissez. À utiliser pour combler un écart entre des courbes sans cassure.",
"help.sketch.break": "Scinde une courbe en morceaux là où d'autres courbes la croisent, ou en des points que vous placez dessus. À utiliser lorsqu'une partie d'une courbe a besoin de sa propre contrainte ou doit être supprimée seule.",
"help.sketch.cancel": "Quitte l'esquisse et abandonne tout ce qui a été modifié depuis sa création ou son ouverture pour modification. Annuler rétablit les modifications.",
"help.sketch.centerline": "Bascule des lignes entre lignes normales et lignes d'axe, des axes que les profils ignorent. Utilisez une ligne d'axe comme axe pour une révolution, une symétrie ou une contrainte de symétrie.",
"help.sketch.chamfer.distance_angle": "Biseaute le coin entre deux lignes, défini par une distance le long de la première ligne et un angle. À utiliser lorsqu'un dessin donne le chanfrein sous forme de longueur et d'angle, comme 2 mm × 30°.",
"help.sketch.chamfer.equal_distance": "Biseaute le coin entre deux lignes sur la même distance le long des deux. À utiliser pour le chanfrein habituel à 45° sur un contour.",
"help.sketch.chamfer.two_distance": "Biseaute le coin entre deux lignes, défini par une distance distincte le long de chaque ligne. À utiliser pour des chanfreins qui ne sont pas à 45°, donnés sous forme de deux longueurs.",
"help.sketch.circle.center": "Dessine un cercle à partir de son centre et de son diamètre. À utiliser pour des perçages, des bossages et d'autres formes rondes dont le centre est connu.",
"help.sketch.circle.three_point": "Dessine un cercle passant par trois points. À utiliser lorsque le cercle doit passer par des points donnés, par exemple de la géométrie existante.",
"help.sketch.circle.three_tangent": "Dessine un cercle qui touche trois lignes, cercles ou arcs. À utiliser pour inscrire un cercle dans l'espace entre trois courbes, comme le cercle inscrit d'un triangle.",
"help.sketch.circle.two_point": "Dessine un cercle à partir des deux extrémités de son diamètre. À utiliser lorsque les points du bord du cercle sont connus plutôt que son centre.",
"help.sketch.circle.two_tangent": "Dessine un cercle de taille donnée qui touche deux lignes, cercles ou arcs. À utiliser pour un arrondi de rayon fixe entre deux courbes.",
"help.sketch.conic": "Dessine une courbe conique entre deux extrémités, façonnée par un point sommet et une valeur rho. À utiliser pour des transitions douces dont vous voulez ajuster la tension, de presque plate à presque anguleuse.",
"help.sketch.constrainer": "Applique la contrainte qu'une ou deux courbes choisies ont presque déjà, comme horizontale, parallèle, tangente ou égale. À utiliser pour mettre au propre une esquisse à main levée, une relation à la fois.",
"help.sketch.constraint.coincident": "Place un point sur un autre point, une courbe ou un axe d'esquisse. À utiliser pour fermer les écarts d'un profil ou pour poser un point sur une ligne.",
"help.sketch.constraint.collinear": "Place deux lignes sur une même droite. À utiliser pour aligner des arêtes interrompues, comme les deux côtés d'une encoche.",
"help.sketch.constraint.concentric": "Donne le même centre à deux cercles ou arcs. À utiliser pour des bagues, des lamages et des arbres à épaulements.",
"help.sketch.constraint.curvature": "Fait que deux courbes qui se rejoignent en une extrémité continuent avec la même courbure (G2). À utiliser lorsqu'un raccord tangent n'est pas assez doux, par exemple sur des surfaces visibles.",
"help.sketch.constraint.equal": "Donne la même longueur à des lignes, ou le même rayon à des cercles et arcs. À utiliser pour qu'une seule cote pilote plusieurs formes identiques.",
"help.sketch.constraint.fix": "Fixe des points ou des courbes là où ils sont, ou les libère. À utiliser pour la géométrie qui ne doit pas bouger lorsque vous faites glisser ou résolvez l'esquisse.",
"help.sketch.constraint.horizontal_vertical": "Rend une ligne, ou la ligne entre deux points, horizontale ou verticale, selon la plus proche. À utiliser pour redresser un contour sur les axes de l'esquisse.",
"help.sketch.constraint.midpoint": "Place un point au milieu d'une ligne, ou fait coïncider les milieux de deux lignes. À utiliser pour centrer de la géométrie sur une arête.",
"help.sketch.constraint.parallel": "Rend deux lignes parallèles. À utiliser pour des côtés qui doivent rester parallèles lorsque d'autres cotes changent.",
"help.sketch.constraint.perpendicular": "Fait se rencontrer deux lignes à angle droit. À utiliser pour des coins d'équerre entre des lignes qui ne sont pas sur les axes de l'esquisse.",
"help.sketch.constraint.polygon": "Transforme une chaîne fermée de lignes en polygone régulier : côtés égaux, avec tous les coins sur un même cercle. À utiliser pour rendre régulier un polygone dessiné à main levée et le garder ainsi.",
"help.sketch.constraint.symmetry": "Fait que deux points ou courbes sont symétriques par rapport à une ligne ou à un point. À utiliser pour garder un profil symétrique lorsque vous modifiez un côté.",
"help.sketch.constraint.tangent": "Fait que deux courbes se touchent en tangence, comme une ligne et un arc. À utiliser pour des raccords doux sans cassure.",
"help.sketch.construction": "Bascule des courbes entre géométrie normale et géométrie de construction, que les profils ignorent. Utilisez les courbes de construction comme aides pour l'implantation, les références et les cotes.",
"help.sketch.construction_line": "Crée une droite de construction infinie passant par deux points. À utiliser pour structurer une esquisse sans diviser les profils.",
"help.sketch.construction_line.angle": "Crée une droite de construction infinie inclinée d'un angle par rapport à l'axe X de l'esquisse. Choisissez le point puis saisissez l'angle, ou choisissez sa direction.",
"help.sketch.construction_line.bisector": "Sélectionnez deux lignes droites sécantes de l'esquisse, puis choisissez l'une des deux bissectrices. Le résultat suit les lignes dont il provient.",
@@ -1415,11 +1572,71 @@
"help.sketch.construction_line.tangent_external": "Sélectionnez un cercle ou un arc de cercle, puis un point extérieur et une solution de tangente. Les aperçus n'affichent que les points de contact situés sur l'arc dessiné.",
"help.sketch.construction_line.tangent_two": "Sélectionnez deux cercles ou arcs de cercle, puis choisissez une tangente commune dans l'aperçu. Les points de contact doivent se trouver sur les courbes dessinées.",
"help.sketch.construction_line.vertical": "Crée une droite de construction verticale infinie passant par un point. Sa contrainte verticale est conservée lors des modifications ultérieures.",
"help.sketch.copy": "Copie les courbes et points d'esquisse sélectionnés, avec les contraintes et cotes qui les relient. Collez-les dans cette esquisse ou dans une autre.",
"help.sketch.create": "Démarre une nouvelle esquisse 2D sur un plan ou sur une face plane du modèle. Toute extrusion, révolution et balayage commence par une esquisse.",
"help.sketch.cut": "Copie la géométrie d'esquisse sélectionnée et la supprime de l'esquisse, en une seule étape d'annulation. Collez-la ailleurs dans cette esquisse ou dans une autre.",
"help.sketch.dimension": "Ajoute une cote pilotante : une longueur, une distance, un angle, un rayon ou un diamètre, selon ce que vous choisissez. Saisissez une valeur ou un nom de paramètre, et l'esquisse la suit.",
"help.sketch.edit": "Ouvre une esquisse existante pour la modifier. Les fonctions construites dessus se mettent à jour lorsque vous terminez l'esquisse.",
"help.sketch.ellipse": "Dessine une ellipse à partir de son centre, de l'extrémité de son grand axe et d'un point côté petit axe. À utiliser pour des ouvertures ovales, des cames et d'autres formes rondes allongées.",
"help.sketch.equation_curve": "Dessine une courbe à partir de formules : x(t) et y(t), ou y = f(x), sur un intervalle. Les formules peuvent utiliser des paramètres et la courbe les suit : à utiliser pour une sinusoïde, une spirale ou la développante d'une dent d'engrenage.",
"help.sketch.extend": "Prolonge une ligne ou un arc jusqu'à la courbe la plus proche sur son chemin, ou fait croître deux courbes jusqu'à ce qu'elles se rejoignent. À utiliser pour fermer des jeux dans un profil après ajustement ou modification.",
"help.sketch.fillet": "Arrondit le coin où deux lignes ou arcs se rejoignent par un arc de rayon donné. Plusieurs coins arrondis ensemble partagent un même rayon.",
"help.sketch.finish": "Quitte l'esquisse et revient au modèle. Ses profils fermés sont alors prêts pour Extrusion, Révolution et d'autres fonctions.",
"help.sketch.finish_auto_constrain": "Lance Contraintes automatiques sur l'esquisse, puis la termine. À utiliser pour laisser une esquisse entièrement définie en une seule étape.",
"help.sketch.fit_curves_to_section": "Coupe un corps maillé ou solide avec le plan d'esquisse et ajuste des lignes et des arcs à la section. À utiliser pour reconstruire une pièce numérisée ou importée sous forme d'esquisse modifiable.",
"help.sketch.include_3d": "Amène des arêtes du modèle, des sommets et des courbes d'autres esquisses dans cette esquisse comme références liées, en aplatissant sur son plan celles qui en sont hors. À utiliser pour construire à partir d'une géométrie qui n'est pas dans le plan d'esquisse.",
"help.sketch.infinite": "Bascule des lignes entre lignes normales et lignes de construction infinies qui traversent toute la vue. À utiliser comme références d'implantation qui ne s'arrêtent jamais trop court.",
"help.sketch.insert_dxf": "Lit les courbes d'un dessin DXF dans une esquisse, mises à l'échelle, tournées et placées comme vous le définissez. À utiliser pour construire à partir d'un dessin 2D d'un autre logiciel, comme un contour de découpe laser.",
"help.sketch.insert_svg": "Lit les tracés d'un dessin SVG dans une esquisse, mis à l'échelle, tournés et placés comme vous le définissez. À utiliser pour transformer un logo ou un contour vectoriel en courbes que vous pouvez extruder.",
"help.sketch.inspect": "Ouvre un rapport sur l'esquisse ouverte : combien de degrés de liberté il reste et si elle est entièrement contrainte. À utiliser pour savoir ce qui bouge encore avant de terminer l'esquisse.",
"help.sketch.intersect": "Ajoute les courbes ou points où des corps, faces, arêtes ou d'autres esquisses traversent le plan d'esquisse. Ils restent liés et suivent le modèle lorsqu'il change.",
"help.sketch.intersection_curve": "Crée des courbes 3D là où deux corps ou faces se rencontrent, liées à eux. À utiliser comme trajectoires ou rails guides qui suivent le modèle.",
"help.sketch.isoparametric_curve": "Crée une courbe 3D le long de la direction U ou V d'une face, par un point que vous choisissez, liée à la face. À utiliser comme trajectoire ou ligne de partage qui suit la surface.",
"help.sketch.line": "Dessine des lignes connectées point par point, en chaîne ouverte ou en contour fermé. C'est l'outil de base de la plupart des profils.",
"help.sketch.line.midpoint": "Dessine une ligne de son milieu vers une extrémité, l'autre extrémité étant son symétrique. À utiliser pour des lignes centrées sur un point, comme une arête symétrique.",
"help.sketch.line3d": "Dessine des lignes droites connectées entre des points de l'espace, avec Esquisse 3D activée. À utiliser pour des trajectoires et des structures qui sortent du plan d'esquisse.",
"help.sketch.mirror": "Symétrise des courbes et points d'esquisse par rapport à une ligne ou un axe et ajoute des contraintes de symétrie. À utiliser pour dessiner la moitié d'un profil symétrique et le compléter.",
"help.sketch.move": "Déplace ou fait tourner des courbes et points d'esquisse, ou une copie. À utiliser pour repositionner de la géométrie en gardant sa forme et ses contraintes.",
"help.sketch.offset": "Crée une copie d'une chaîne de courbes à une distance donnée, d'un côté ou des deux. À utiliser pour des parois, des contours et des jeux ; la distance reste une cote modifiable.",
"help.sketch.paste": "Colle dans l'esquisse active la géométrie d'esquisse copiée ou coupée. Placez-la en un point ou décalez-la d'une valeur.",
"help.sketch.pattern.circular": "Copie la géométrie d'esquisse autour d'un centre, sur un cercle complet ou un angle donné. À utiliser pour des cercles de perçages, des rayons et des dents.",
"help.sketch.pattern.rectangular": "Copie la géométrie d'esquisse en lignes et colonnes à des espacements donnés. À utiliser pour des grilles de trous, de rainures ou d'aérations.",
"help.sketch.point": "Place un point d'esquisse. À utiliser comme référence pour des cotes, des contraintes, des centres de perçage ou des fonctions ultérieures.",
"help.sketch.point3d": "Place un point dans l'espace, avec Esquisse 3D activée. À utiliser comme référence pour des courbes et trajectoires 3D.",
"help.sketch.polygon.circumscribed": "Dessine un polygone régulier autour d'un cercle, dimensionné du centre au milieu d'un côté. À utiliser lorsque la largeur sur plats est connue, comme pour un écrou hexagonal.",
"help.sketch.polygon.edge": "Dessine un polygone régulier à partir des deux extrémités d'un côté. À utiliser lorsque la longueur et la position d'un côté sont connues.",
"help.sketch.polygon.inscribed": "Dessine un polygone régulier à l'intérieur d'un cercle, dimensionné du centre à un coin. À utiliser lorsque la dimension sur coins est connue.",
"help.sketch.project": "Amène des arêtes du modèle, des faces, des sommets et des courbes d'autres esquisses dans cette esquisse, projetés sur son plan. Ils restent liés et suivent le modèle lorsqu'il change.",
"help.sketch.project_to_surface": "Projette des courbes d'autres esquisses selon la normale de cette esquisse sur une face, sous forme de courbes 3D liées. À utiliser pour poser un logo, une ligne de partage ou une trajectoire sur une surface courbe.",
"help.sketch.rectangle.center": "Dessine un rectangle à partir de son centre et d'un coin. À utiliser pour des contours centrés sur un point, comme l'origine.",
"help.sketch.rectangle.rounded": "Dessine un rectangle dont les quatre coins sont arrondis au même rayon. À utiliser pour des plaques, des couvercles et des ouvertures à coins arrondis.",
"help.sketch.rectangle.three_point": "Dessine un rectangle à partir d'un côté et d'un point du côté opposé. À utiliser pour des rectangles inclinés par rapport aux axes de l'esquisse.",
"help.sketch.rectangle.two_point": "Dessine un rectangle à partir de deux coins opposés. À utiliser pour les contours de plaques, de blocs et de poches.",
"help.sketch.scale": "Met à l'échelle des courbes et points d'esquisse selon un facteur autour d'un point de base. À utiliser pour redimensionner une partie d'une esquisse sans la redessiner.",
"help.sketch.slot.arc_center": "Dessine une rainure courbe de largeur donnée le long d'un arc défini par son centre, son début et sa fin. À utiliser pour des rainures de réglage autour d'un pivot.",
"help.sketch.slot.arc_three_point": "Dessine une rainure courbe de largeur donnée le long d'un arc passant par trois points. À utiliser lorsque le tracé de la rainure doit passer par des points donnés.",
"help.sketch.slot.center_point": "Dessine une rainure droite de largeur donnée de son centre au centre d'un arc d'extrémité. À utiliser pour des rainures centrées sur un point.",
"help.sketch.slot.center_to_center": "Dessine une rainure droite de largeur donnée entre les centres de ses deux arcs d'extrémité. À utiliser pour des rainures cotées de centre à centre, comme les rainures de réglage de vis.",
"help.sketch.slot.overall": "Dessine une rainure droite de largeur donnée d'une extrémité extérieure à l'autre. À utiliser lorsque c'est la longueur hors tout de la rainure qui compte.",
"help.sketch.spline.control_point": "Dessine une spline cubique façonnée par des points de contrôle qu'elle ne traverse pas. À utiliser pour des courbes douces et fluides que vous façonnez en déplaçant les points.",
"help.sketch.spline.control_point_5": "Dessine une spline de degré 5 façonnée par des points de contrôle. À utiliser lorsque des courbes doivent se raccorder avec une courbure plus douce, par exemple sur des surfaces de style visibles.",
"help.sketch.spline.fit_point": "Dessine une spline douce qui passe par chaque point que vous placez, ouverte ou fermée. À utiliser pour décalquer une forme à travers des points connus.",
"help.sketch.spline3d": "Dessine une courbe douce dans l'espace par des points, avec Esquisse 3D activée. À utiliser pour des trajectoires de balayage et des cheminements de câbles qui sortent du plan d'esquisse.",
"help.sketch.spun_profile": "Crée dans le plan d'esquisse le contour qu'un corps balaie en tournant autour d'un axe. À utiliser pour obtenir la silhouette d'une pièce tournée pour une révolution ou un dessin.",
"help.sketch.text": "Écrit du texte dans l'esquisse avec une police, une hauteur et un angle au choix ; ses mots peuvent suivre des paramètres. À extruder ou embosser pour des étiquettes et des lettrages.",
"help.sketch.transform": "Met à l'échelle, fait tourner et déplace de la géométrie d'esquisse autour d'un centre en une seule étape. À utiliser pour repositionner et redimensionner une sélection d'un coup.",
"help.sketch.trim": "Supprime le morceau d'une courbe entre les croisements les plus proches autour de l'endroit où vous cliquez. À utiliser pour nettoyer des lignes qui se chevauchent et obtenir un profil fermé.",
"help.solid.align": "Déplace les corps sélectionnés pour qu'un de leurs points, faces ou plans rejoigne un point, une face ou un plan ailleurs. À utiliser pour poser une pièce contre une autre sans mesurer le décalage.",
"help.solid.boundary_fill": "Crée des solides à partir des régions délimitées par des corps outils qui se chevauchent, en ne remplissant que les régions que vous choisissez. À utiliser pour construire une forme à partir de l'espace que plusieurs corps délimitent ensemble.",
"help.solid.bounding_solid": "Crée un parallélépipède qui englobe les corps sélectionnés, avec une marge facultative. À utiliser pour voir l'encombrement d'une pièce, ou comme brut dans lequel elle est usinée.",
"help.solid.box": "Crée un parallélépipède à partir d'une longueur, d'une largeur et d'une hauteur, depuis un coin ou centré sur un point. À utiliser pour un bloc rapide, un volume provisoire ou un corps dans lequel tailler des fonctions.",
"help.solid.chamfer": "Coupe les arêtes sélectionnées par un biseau plat de la distance indiquée. À utiliser pour casser des arêtes vives ou faciliter l'entrée d'une goupille ou d'une vis.",
"help.solid.coil": "Crée un corps hélicoïdal, comme un ressort, à partir d'un diamètre, d'un nombre de tours, d'une hauteur ou d'un pas et d'une section ronde ou carrée. À utiliser pour des ressorts, des spires et des nervures hélicoïdales.",
"help.solid.combine": "Joint des corps, les retire d'un corps cible ou ne garde que le volume qu'ils ont en commun, et peut conserver les corps outils. À utiliser pour fusionner des pièces, tailler une forme avec une autre ou repérer où deux corps se recouvrent.",
"help.solid.cone": "Crée un cône à partir d'un cercle de base et d'une hauteur, ou un tronc de cône lorsque le sommet a aussi un rayon. À utiliser pour des conicités, des entonnoirs, des fraisages et des pointes.",
"help.solid.cylinder": "Crée un cylindre à partir d'un rayon ou d'un diamètre et d'une hauteur, posé sur un point selon un axe. À utiliser pour des arbres, des goupilles, des bossages et des bruts ronds.",
"help.solid.draft": "Incline les faces sélectionnées de l'angle indiqué, mesuré depuis un plan neutre. À utiliser sur les pièces moulées ou coulées pour qu'elles sortent du moule.",
"help.solid.emboss": "Fait saillir des profils d'esquisse, comme du texte ou un logo, hors d'une face, ou les enfonce dedans. À utiliser pour des lettrages, des étiquettes et des marquages sur des faces planes ou rondes.",
"help.solid.extrude": "Pousse le profil d'une esquisse en 3D sur une distance, en ajoutant ou en retirant de la matière. À utiliser pour transformer un contour plat en bloc, en bossage ou en poche.",
"help.solid.fillet": "Arrondit les arêtes sélectionnées par un raccord circulaire lisse du rayon indiqué. À utiliser pour adoucir des arêtes vives par souci de solidité, de confort ou d'aspect.",
"help.solid.hole": "Perce un trou rond du diamètre indiqué en un point choisi d'une face. À utiliser pour les passages de vis, les goupilles et autres ouvertures rondes simples.",
@@ -1428,20 +1645,60 @@
"help.solid.move": "Déplace ou fait tourner les corps sélectionnés, ou une copie, selon la distance et l'angle indiqués. À utiliser pour repositionner un corps ou en créer un second ailleurs.",
"help.solid.offset_face": "Pousse les faces sélectionnées vers l'intérieur ou l'extérieur de la distance indiquée, et les faces voisines suivent. À utiliser pour épaissir une paroi, creuser une poche ou rehausser un bossage sans modifier l'esquisse.",
"help.solid.pattern.circular": "Répète les objets sélectionnés autour d'un axe, selon le nombre et l'angle total indiqués. À utiliser pour les cercles de perçages, rayons, ailettes et dents.",
"help.solid.pattern.path": "Copie des fonctions ou des corps le long d'une trajectoire d'esquisse, selon un nombre et un espacement. À utiliser pour des trous le long d'une arête courbe ou des pièces le long d'un rail.",
"help.solid.pattern.rectangular": "Répète les objets sélectionnés dans une ou deux directions, selon le nombre et l'espacement indiqués. À utiliser pour les rangées et grilles de trous, nervures, goupilles ou pieds.",
"help.solid.pipe": "Crée un tube rond le long d'une trajectoire de courbes d'esquisse, plein ou creux avec une épaisseur de paroi. À utiliser pour des tubes, des fils, des câbles et des rails.",
"help.solid.press_pull": "Ajoute ou retire de la matière quand on fait glisser une face, ou arrondit des arêtes quand on les fait glisser. À utiliser pour des modifications rapides directement sur le modèle.",
"help.solid.remove": "Retire les corps sélectionnés de la conception à partir de ce point de la chronologie ; les étapes précédentes les gardent. À utiliser pour écarter un corps d'aide, comme un outil de découpe devenu inutile.",
"help.solid.replace_face": "Amène les faces planes sélectionnées sur un plan ou une face parallèle, et le corps s'allonge ou se raccourcit pour la rejoindre. À utiliser pour mettre une face au ras d'une autre pièce ou d'un plan de construction.",
"help.solid.revolve": "Fait tourner le profil d'une esquisse autour d'un axe pour obtenir un solide de révolution. À utiliser pour les arbres, boutons, bols et toute pièce ronde autour d'une ligne centrale.",
"help.solid.rib": "Ajoute une paroi mince le long d'une courbe d'esquisse ouverte, prolongée jusqu'aux faces suivantes du corps. À utiliser pour rigidifier des parois et des coins, par exemple dans des pièces moulées ou imprimées.",
"help.solid.scale": "Agrandit ou réduit les corps sélectionnés d'un facteur, identique dans toutes les directions ou propre à chaque axe. À utiliser pour redimensionner une forme importée ou compenser un retrait.",
"help.solid.shell": "Évide un solide en laissant des parois de l'épaisseur indiquée, et peut ouvrir les faces choisies. À utiliser pour les boîtes, couvercles et autres pièces à parois minces.",
"help.solid.sphere": "Crée une sphère à partir d'un rayon ou d'un diamètre autour d'un centre. À utiliser pour des billes, des boutons et des extrémités arrondies.",
"help.solid.split_body": "Scinde un corps en corps séparés avec un plan, la face d'un autre corps ou une ligne d'esquisse. À utiliser pour obtenir des pièces imprimées, usinées ou colorées séparément.",
"help.solid.split_face": "Scinde les faces sélectionnées le long d'un plan, de la face d'un autre corps ou de courbes d'esquisse, sans scinder le corps. À utiliser pour donner à une partie de face sa propre dépouille, couleur ou décalage.",
"help.solid.sweep": "Entraîne le profil d'une esquisse le long d'une trajectoire pour obtenir un solide. À utiliser pour les tuyaux, rails, poignées et toute pièce de section constante qui suit une courbe.",
"help.solid.thread": "Ajoute un filetage métrique ISO sur une face cylindrique, soit sous forme de filetage cosmétique, soit taillé dans le corps. À utiliser pour des boulons, des trous taraudés et des pièces vissées imprimées.",
"help.solid.torus": "Crée un anneau à partir d'un grand rayon autour de son axe et d'un petit rayon pour sa section ronde. À utiliser pour des joints toriques, des poignées et des perles rondes.",
"help.solid.web": "Ajoute une paroi mince le long de chaque courbe d'esquisse ouverte, chacune prolongée jusqu'aux faces suivantes du corps. À utiliser pour une grille de parois de soutien à l'intérieur de boîtiers et de plateaux.",
"help.surface.blend": "Crée une surface qui relie les arêtes de deux corps, en tangence ou en continuité de courbure avec les deux. À utiliser pour joindre en douceur deux surfaces à travers un écart.",
"help.surface.boundary": "Crée une surface remplissant une boucle de deux à quatre courbes d'esquisse, ou un réseau de courbes. À utiliser pour des panneaux de forme libre définis par leurs bords.",
"help.surface.extend": "Prolonge une surface au-delà de ses bords, d'une distance ou jusqu'à un plan ou une face. À utiliser pour que des surfaces se chevauchent avant de les ajuster ou de les coudre.",
"help.surface.extrude": "Pousse des courbes ou profils d'esquisse sur une distance pour former une surface, parois seulement, sans fonds. À utiliser pour des parois minces et pour des outils de coupe ou de partage.",
"help.surface.fair": "Lisse l'intérieur de faces de forme libre tandis que leurs bords restent en place. À utiliser pour atténuer les bosses et les reflets ondulés d'une surface.",
"help.surface.loft": "Crée une surface qui passe par deux sections ou plus dans l'ordre, sans fonds. À utiliser pour des coques et des transitions entre des formes différentes.",
"help.surface.match": "Reconstruit le bord d'une surface pour qu'il rejoigne le bord d'un autre corps, avec une tangence ou une courbure concordante. À utiliser pour fermer en douceur un raccord entre deux surfaces.",
"help.surface.offset": "Crée une copie de faces à une distance le long de leurs normales, sous forme de nouveau corps surfacique. À utiliser pour des peaux, des jeux ou l'autre côté d'une paroi.",
"help.surface.patch": "Remplit une région d'esquisse ou une boucle fermée d'arêtes par une face, plane ou courbe et douce. À utiliser pour boucher des trous dans un corps surfacique.",
"help.surface.reverse_normal": "Retourne des faces d'un corps surfacique, de sorte que leur côté extérieur soit orienté dans l'autre sens. À utiliser avant d'épaissir ou de coudre lorsque les faces pointent vers l'intérieur.",
"help.surface.revolve": "Fait tourner des courbes ou profils d'esquisse autour d'un axe pour former une surface, sans fonds. À utiliser pour des coques rondes comme des abat-jour, des bols et des buses.",
"help.surface.ruled": "Crée une bande de droites à partir d'une chaîne d'arêtes, selon la normale de la face, la tangente ou un angle. À utiliser pour des parois de dépouille, des dégagements et des surfaces de joint.",
"help.surface.stitch": "Coud des corps surfaciques le long de leurs arêtes communes, en un solide lorsqu'ils se referment. À utiliser pour transformer un ensemble de surfaces en un seul corps.",
"help.surface.sweep": "Déplace des courbes ou profils d'esquisse le long d'une trajectoire pour former une surface, sans fonds. À utiliser pour des gouttières, des moulures et d'autres formes minces qui suivent une trajectoire.",
"help.surface.thicken": "Donne une épaisseur à un corps surfacique et le transforme en solide. À utiliser pour fabriquer des pièces imprimables ou usinables à partir de surfaces.",
"help.surface.trim": "Coupe une surface avec un plan, une autre surface ou des courbes d'esquisse, et garde le côté que vous choisissez. À utiliser pour ajuster des surfaces à leur forme avant de les coudre.",
"help.surface.unstitch": "Sépare des faces d'un corps en corps surfaciques distincts ; un solide se décompose en surfaces. À utiliser pour retravailler des faces isolées d'un corps.",
"help.surface.untrim": "Supprime des trous d'une face, ou rétablit son contour extérieur aux limites naturelles de la surface. À utiliser pour retrouver la surface complète après un ajustement.",
"help.third_party": "Licences tierces",
"help.timeline.compute_all": "Recalcule toutes les fonctions de la chronologie depuis le début. À utiliser pour rafraîchir le modèle et voir quelles fonctions échouent.",
"help.timeline.delete": "Supprime les fonctions sélectionnées de la chronologie ; supprimer une esquisse supprime aussi les fonctions construites à partir d'elle. À utiliser pour retirer une étape devenue inutile.",
"help.timeline.dependents": "Liste les fonctions qui seraient supprimées avec une fonction, et celles qui échoueraient sans elle. À utiliser avant de supprimer ou de modifier une fonction.",
"help.timeline.play": "Rejoue les fonctions restantes une par une, avec une pause d'une demi-seconde après chaque reconstruction. Relancez cette commande ou appuyez sur Échap pour arrêter ; Aller à la fin saute immédiatement.",
"help.view.apply": "Oriente la vue selon une direction standard comme face, dessus ou iso, ou selon une vue nommée enregistrée. À utiliser pour regarder le modèle sous un angle fixe.",
"help.view.delete": "Supprime une vue nommée enregistrée. Le modèle n'est pas modifié.",
"help.view.fit": "Zoome et déplace la vue pour que tout le modèle, ou la sélection, remplisse la vue. À utiliser lorsque le modèle est sorti du champ.",
"help.view.grid": "Affiche ou masque la grille dans la vue 3D. À utiliser comme repère de taille et d'orientation pendant la modélisation.",
"help.view.ground_shadow": "Affiche ou masque l'ombre du modèle sur le sol. À utiliser pour juger plus facilement la hauteur et la position.",
"help.view.home": "Remet la vue dans la direction d'accueil et ajuste le modèle. À utiliser pour revenir rapidement à une vue connue.",
"help.view.list": "Liste les vues nommées enregistrées dans la conception. À utiliser pour retrouver une vue enregistrée plus tôt.",
"help.view.navigate": "Fait tourner, déplace ou zoome la vue par étapes, comme un quart de tour à gauche. À utiliser pour déplacer la caméra avec précision plutôt qu'en faisant glisser.",
"help.view.navigation_bar": "Affiche ou masque la barre de navigation en bas de la vue 3D. Masquez-la pour gagner de la place, affichez-la pour accéder aux outils de vue à la souris.",
"help.view.rename": "Donne un nouveau nom à une vue nommée enregistrée. La vue elle-même reste inchangée.",
"help.view.save": "Enregistre la position actuelle de la caméra comme vue nommée dans la conception. À utiliser pour revenir plus tard au même angle, par exemple pour des captures d'écran.",
"help.view.spin": "Fait orbiter la vue autour du modèle en continu jusqu'au prochain clic ou à la prochaine touche. À utiliser pour présenter un modèle sous tous les angles.",
"help.view.tool": "Verrouille un outil de caméra, orbite, déplacement ou zoom, de sorte que faire glisser avec le bouton gauche de la souris déplace la vue jusqu'à ce que vous le désactiviez. À utiliser sur un trackpad ou sans bouton central de souris.",
"help.view.visual_style": "Change le mode d'affichage du modèle : ombré avec ou sans arêtes, filaire, ou avec arêtes cachées. Utilisez le filaire pour voir à l'intérieur, l'ombré pour un rendu net.",
"history.sketch_under_constrained": "Sous-contraint ({count} degrés de liberté)",
"history.sketch_under_constrained_one": "Sous-contraint ({count} degré de liberté)",
"hole_presets.confirm_delete": "Confirmer la suppression",
@@ -1618,6 +1875,10 @@
"material.selection.mixed": "Matériaux différents",
"measure.at": "À",
"measure.item": "Élément {number}",
"measure.quick_copied": "Mesure copiée",
"measure.quick_copy": "Cliquer pour copier la mesure",
"measure.quick_edges": "{count} arêtes",
"measure.quick_faces": "{count} faces",
"messages.ago_h": "il y a {n} h",
"messages.ago_min": "il y a {n} min",
"messages.ago_s": "il y a {n} s",
@@ -1793,12 +2054,19 @@
"parts.family.button_head_cap_screw": "Vis à tête bombée à six pans creux",
"parts.family.dowel_pin": "Goupille cylindrique",
"parts.family.hex_bolt": "Vis à tête hexagonale",
"parts.family.hex_cap_screw_inch": "Vis à tête hexagonale (pouces)",
"parts.family.hex_nut": "Écrou hexagonal",
"parts.family.hex_nut_inch": "Écrou hexagonal (pouces)",
"parts.family.set_screw": "Vis sans tête à six pans creux, bout plat",
"parts.family.socket_head_cap_screw": "Vis à tête cylindrique à six pans creux",
"parts.family.washer": "Rondelle plate",
"parts.family.washer_sae": "Rondelle plate, SAE (étroite)",
"parts.family.washer_uss": "Rondelle plate, USS (large)",
"parts.holes": "Trous (facultatif)",
"parts.placement_hint": "choisissez un ou plusieurs trous pour y loger une pièce chacun, ou OK la place à l'origine",
"parts.system": "Système d'unités",
"parts.system.inch": "Pouces",
"parts.system.metric": "Métrique",
"pattern.alignment_2": "Alignement 2",
"pattern.alignment_hint": "La quantité inclut l’original. Le centrage répartit les copies de chaque côté ; si la quantité est paire, l’inversion choisit le côté qui reçoit la copie supplémentaire.",
"pattern.direction_1": "Direction 1",
@@ -1923,6 +2191,8 @@
"prefs.interface_language": "Langue de l'interface",
"prefs.interface_note": "L'apparence de SolidCraft et la place de ses éléments.",
"prefs.interval_minutes": "{n} min",
"prefs.keep_work_on_tab_switch": "Garder dialogues et outils ouverts en changeant de conception",
"prefs.keep_work_on_tab_switch_note": "Chaque onglet de conception garde son dialogue ou son outil ouvert, avec ce que vous y avez sélectionné et saisi, ainsi que son onglet de barre d'outils. Vous les retrouvez en revenant à la conception. Désactivé : changer de conception les annule et affiche l'onglet Modèle.",
"prefs.labels": "Libellés",
"prefs.layout": "Disposition",
"prefs.layout_note": "Compacte : ancre les panneaux aux bords de la fenêtre. La transparence du navigateur est disponible en mode Flottante. Changez le côté de l'assistant dans la page Assistant.",
@@ -1996,6 +2266,8 @@
"prefs.quality_fastest": "le plus rapide",
"prefs.quality_slowest": "le plus lent",
"prefs.quality_smoother": "plus fluide",
"prefs.quick_measure": "Mesure rapide dans le coin de la vue",
"prefs.quick_measure_note": "La taille de la sélection, dans le coin inférieur droit de la vue : la longueur d'une arête, ou Ø et R pour une arête ronde, l'aire d'une face, la position d'un point, la distance et l'angle entre deux éléments, le total de plusieurs arêtes ou faces. Un clic la copie.",
"prefs.render_previous_geometry_budget": "Utiliser l'ancien budget de géométrie de l'aperçu Rendu",
"prefs.render_previous_geometry_budget_help": "Rétablir l'ancienne limite fixe de géométrie (512 Mio sur un ordinateur 64 bits, 128 Mio ailleurs) au lieu du budget basé sur l'appareil.",
"prefs.reports_saved": "Enregistrés : {n}",
@@ -2041,6 +2313,8 @@
"prefs.sketch_tab_always_note": "L'onglet Esquisse reste dans le ruban, juste après Modèle, tant qu'aucune esquisse n'est ouverte. Ses outils de dessin démarrent alors une esquisse sur le plan ou la face sélectionnés, ou sur le plan que vous choisissez ensuite, avec l'outil prêt à l'emploi.",
"prefs.sketch_tracking_guides": "Guides d'alignement sur le centre et le point milieu",
"prefs.sketch_tracking_guides_note": "Survolez le centre d'un cercle ou le point milieu d'un segment droit, puis déplacez le pointeur horizontalement ou verticalement pour afficher un guide pointillé temporaire.",
"prefs.sketch_tracking_points": "Guides d'alignement depuis les extrémités et les coins pendant le dessin",
"prefs.sketch_tracking_points_note": "Quand un outil de dessin attend un point, survoler l'extrémité d'une ligne ou d'un arc, le coin d'un rectangle ou un point libre affiche le même guide pointillé temporaire qu'un centre ou un point milieu. Désactivé : seulement les centres et les points milieux.",
"prefs.sketching": "Esquisse",
"prefs.snap_drawing_note": "Pendant le dessin ou le déplacement d'un point d'esquisse.",
"prefs.source": "Source",
@@ -2057,6 +2331,7 @@
"prefs.status_error": "Erreur",
"prefs.status_selected": "Sélectionné",
"prefs.status_warning": "Avertissement",
"prefs.structure.scale_percent": "{percent} %",
"prefs.supersampling_brief": "Dessine la vue en plus grand puis la réduit par filtrage : très net, mais plus lourd.",
"prefs.tab_accent_note": "La couleur d'accent suit l'onglet actif",
"prefs.theme_file": "fichier de thème",
@@ -2068,6 +2343,16 @@
"prefs.theme_follow_off": "Désactivé",
"prefs.theme_follow_stop": "Arrêter le suivi",
"prefs.theme_import_hint": "Cliquez pour choisir un fichier de thème, déposez-en un ici, ou appuyez sur Ctrl+V (Cmd+V sur Mac) avec un thème copié",
"prefs.theme_option_opacity": "Opacité",
"prefs.theme_option_opacity_help": "Règle l'opacité des panneaux flottants. Un seuil de lisibilité protège le texte placé sur les couleurs de la vue 3D.",
"prefs.theme_option_tab_colours": "Couleurs des onglets",
"prefs.theme_option_tab_colours_help": "Utilise les couleurs de panneau et de vue 3D de ce thème pour chaque onglet du ruban.",
"prefs.theme_option_tab_fade_ms": "Transition des onglets",
"prefs.theme_option_tab_fade_ms_help": "Fait passer progressivement les couleurs du panneau et de la vue 3D au changement d'onglet. Zéro bascule instantanément.",
"prefs.theme_options_badge": "Options",
"prefs.theme_options_more": "Plus · {count}",
"prefs.theme_options_reset": "Réinitialiser",
"prefs.theme_options_unavailable": "Indisponible sur cet appareil",
"prefs.theme_paste": "Coller le thème",
"prefs.theme_paste_none": "Le presse-papiers ne contient aucun thème SolidCraft",
"prefs.timeline_half_hour": "−30 min",
@@ -2089,6 +2374,8 @@
"prefs.under_cursor": "Sous le curseur",
"prefs.units_precision": "Unités et précision",
"prefs.updates": "Mises à jour",
"prefs.value_boxes_in_view": "Afficher les valeurs à côté de leurs poignées dans la vue",
"prefs.value_boxes_in_view_tip": "La valeur d'une commande (distance, rayon…) dans une case à côté de sa poignée, par-dessus le modèle. Désactivé : vous la saisissez dans la fenêtre de la commande, qui prend le clavier après une sélection, et rien ne masque le modèle.",
"prefs.view": "Comportement de la vue",
"prefs.view_confirm_corner": "OK et Annuler dans le coin de la vue",
"prefs.view_confirm_corner_note": "Lorsqu'une boîte de dialogue ou une esquisse est ouverte, une coche et une croix en haut à droite de la vue font la même chose que OK et Annuler, ou terminent et annulent l'esquisse. Le repère de navigation se place en dessous.",
@@ -2098,6 +2385,12 @@
"prefs.viewport_background": "Fond",
"prefs.viewport_background_colour": "Couleur",
"prefs.viewport_background_theme": "Dégradé du thème",
"prefs.viewport_section_status": "Afficher l'état de la coupe dans la vue 3D",
"prefs.viewport_section_status_help": "Affiche le réglage de coupe dans la vue 3D. Échap et le bouton actif du ruban le désactivent. Désactivez cette option pour conserver les contrôles de coupe précédents.",
"prefs.viewport_status_details": "Détails de la vue 3D modifiables",
"prefs.viewport_status_details_help": "Modifie les réglages de l'analyse et de la coupe actives dans des fiches de détails standard. Désactivez cette option pour retrouver les légendes d'analyse en lecture seule et la boîte de dialogue Coupe.",
"prefs.viewport_status_summary": "Regrouper les éléments d'état de la vue 3D",
"prefs.viewport_status_summary_help": "Regroupe trois éléments d'état de la vue 3D ou plus dans un seul badge de synthèse. Désactivez cette option pour garder tous les éléments sur la ligne complète.",
"prefs.wheel": "Molette",
"prefs.wheel_trackpad": "Molette et pavé tactile",
"prefs.workspace": "Espace de travail",
@@ -2976,7 +3269,9 @@
"render.output_ready": "Prêt à lancer le rendu",
"render.output_run_check": "Lancer la vérification",
"render.output_size_limit": "{method} : jusqu'à {dimension} px par côté et {pixels} pixels. Plus grande taille possible : {width} × {height}.",
"render.output_size_method_profile": "Pour un rendu en {width} × {height}, choisissez {method} avec le profil de ressources CPU {profile}, ou une taille plus petite.",
"render.output_size_ok": "Taille correcte · {width} × {height} px",
"render.output_size_profile": "Pour un rendu en {width} × {height}, choisissez le profil de ressources CPU {profile}, ou une taille plus petite.",
"render.output_swap_orientation": "Permuter largeur et hauteur",
"render.output_tools_inspector": "Modifier la taille et le format dans l'inspecteur Sortie.",
"render.output_view_image": "Afficher l'image",
@@ -3189,6 +3484,7 @@
"render.size_custom": "Personnalisé…",
"render.size_full_hd": "Full HD",
"render.size_hd": "HD",
"render.size_needs_profile": "{size} · nécessite {profile}",
"render.size_presets": "Préréglages de taille",
"render.size_presets_pending": "Arrive avec l'éditeur Sortie",
"render.size_preview": "Aperçu",
@@ -3476,6 +3772,24 @@
"sheet.flange_type_contour": "Contour",
"sheet.flange_type_edge": "Arête",
"sheet.no_body": "il n'y a pas de corps de tôlerie : commencez-en un avec Bord tombé > Base, ou transformez une plaque en tôlerie avec Convertir en tôlerie (choisissez sa grande face plane)",
"sheet.personal_rules.confirm_delete": "Confirmer la suppression",
"sheet.personal_rules.delete": "Supprimer",
"sheet.personal_rules.delete_prompt": "Supprimer cette règle personnelle ? Les règles déjà présentes dans les conceptions ne changent pas.",
"sheet.personal_rules.full": "La bibliothèque personnelle contient déjà 64 règles.",
"sheet.personal_rules.invalid_name": "Saisissez un nom court, sans saut de ligne ni caractère de contrôle.",
"sheet.personal_rules.invalid_values": "Complétez les valeurs de la règle : chacune doit pouvoir être calculée dans cette conception, avec une épaisseur positive et un facteur K compris entre 0 et 1.",
"sheet.personal_rules.missing": "La règle personnelle sélectionnée n'est plus disponible.",
"sheet.personal_rules.name": "Nom de la règle",
"sheet.personal_rules.name_exists": "Une règle personnelle porte déjà ce nom. Choisissez-en un autre.",
"sheet.personal_rules.name_hint": "Un nom unique",
"sheet.personal_rules.overwrite": "Enregistrer les modifications de la règle personnelle sélectionnée",
"sheet.personal_rules.rename": "Renommer",
"sheet.personal_rules.rule": "Règle personnelle",
"sheet.personal_rules.save": "Enregistrer comme nouvelle",
"sheet.personal_rules.scope": "Enregistrée dans votre profil, pour toutes les conceptions.",
"sheet.personal_rules.select": "Choisir une règle",
"sheet.personal_rules.title": "Règles personnelles",
"sheet.personal_rules.unsupported": "Cette règle contient des valeurs que cette version ne peut pas utiliser.",
"shortcut.json_error": "les paramètres doivent être au format JSON : {error}",
"shortcut.no_command": "la commande `{id}` n’existe pas ; le texte avant le JSON doit être un ID de commande",
"shortcut.pin": "Épingler en haut de la boîte S",
@@ -3723,6 +4037,7 @@
"ui.agent_chat_auth_terminal": "Exécuter ceci dans un terminal, puis appuyer de nouveau sur Connecter :",
"ui.agent_chat_auth_title": "Authentification auprès de l'agent",
"ui.agent_chat_cancel": "Annuler",
"ui.agent_chat_cannot_start": "Installé, mais ne démarre pas : {error}",
"ui.agent_chat_changes": "Modifications : {n}, en une seule étape d'annulation",
"ui.agent_chat_changes_n": "Modifications : {n}",
"ui.agent_chat_changes_of": "{n}/{limit} modifications",
@@ -3815,9 +4130,12 @@
"ui.agent_chat_queued_stopped": "En file d'attente (arrêté, non envoyé)",
"ui.agent_chat_refresh": "Actualiser",
"ui.agent_chat_refused": "Interdit à l'agent : {reason}",
"ui.agent_chat_reinstall": "{agent} est installé ({program}), mais n'a pas démarré quand SolidCraft l'a vérifié : {error}\nSon installation est peut-être incomplète, ou prévue pour un autre type d'ordinateur. Réinstallez-le avec `{install}`, vérifiez qu'il affiche sa version dans un terminal, puis cliquez sur Actualiser.",
"ui.agent_chat_remove": "Retirer de la file d'attente",
"ui.agent_chat_remove_file": "Retirer de ce message",
"ui.agent_chat_remove_imported": "Retirer de ce message ; la pièce reste dans la conception (Annuler la retire)",
"ui.agent_chat_reply_cut_off": "La réponse a atteint sa longueur maximale avant la fin : elle est peut-être incomplète. Demandez à l'agent de continuer, ou une réponse plus courte.",
"ui.agent_chat_reply_declined": "Le modèle a refusé de répondre à ce message.",
"ui.agent_chat_retry": "Réessayer",
"ui.agent_chat_right": "Droite",
"ui.agent_chat_save": "Enregistrer",
@@ -3876,12 +4194,17 @@
"ui.ai_copy_suffix": "copie",
"ui.ai_custom_url": "URL personnalisée",
"ui.ai_default": "Par défaut",
"ui.ai_edit": "Modifier",
"ui.ai_edit_agent_title": "Modifier l'agent",
"ui.ai_edit_gone": "Cet agent a été retiré : il n'y a rien à enregistrer.",
"ui.ai_edit_tip": "Modifier le nom, la commande ou le point d'accès de cet agent. La clé enregistrée reste masquée.",
"ui.ai_http_busy": "le point d'accès est occupé ou a dépassé sa limite ; réessayez plus tard",
"ui.ai_http_key": "le point d'accès a refusé la clé : vérifiez-la dans Préférences › IA",
"ui.ai_http_not_found": "point d'accès ou modèle introuvable : vérifiez l'URL de base et le nom du modèle",
"ui.ai_http_too_large": "la conversation est trop volumineuse pour ce point d'accès ; commencez une nouvelle discussion",
"ui.ai_key": "Clé d'API",
"ui.ai_key_hint": "facultative ; conservée dans le trousseau de clés du système",
"ui.ai_key_keep_hint": "laisser vide pour garder la clé enregistrée",
"ui.ai_key_needs_https": "Une clé n'est envoyée qu'en HTTPS, ou vers cet ordinateur.",
"ui.ai_key_note": "Stockée dans le trousseau de clés du système, jamais dans les réglages de SolidCraft. Laisser vide pour un serveur local.",
"ui.ai_keychain_error": "Le trousseau de clés du système a refusé : {error}",
@@ -3913,6 +4236,7 @@
"ui.ai_request_timeout": "Délai d'expiration des requêtes",
"ui.ai_request_timeout_hint": "Durée maximale d'une requête au modèle de ce point d'accès, de 30 s à une heure. Augmentez-la pour un modèle local lent.",
"ui.ai_reset": "Réinitialiser",
"ui.ai_save": "Enregistrer",
"ui.ai_settings": "Réglages IA…",
"ui.ai_show_features": "Afficher les fonctionnalités IA",
"ui.ai_show_features_note": "Le chat de l'agent : un panneau où un agent de programmation que vous utilisez déjà, ou un point d'accès de modèle de votre choix, travaille sur la conception ouverte. Désactivé : ni bouton IA, ni raccourci, ni entrée de menu, ni panneau, et rien n'est recherché ni lancé.",
@@ -4086,6 +4410,40 @@
"ui.design_properties.project": "Projet",
"ui.design_properties.revision": "Indice",
"ui.design_saved": "Enregistré dans {path}",
"ui.details_access_caption": "Les faces indiquent si un outil peut les atteindre depuis la direction choisie.",
"ui.details_angle": "Angle",
"ui.details_continuity_caption": "Modifie la jonction sélectionnée. Les autres jonctions gardent leurs propres réglages.",
"ui.details_continuity_stale": "Géométrie antérieure : relancez l'analyse pour modifier ou cadrer cette jonction.",
"ui.details_copy_list": "Copier la liste",
"ui.details_curvature": "Tolérance de courbure",
"ui.details_curvature_caption": "Les faces sont colorées selon leur rayon de courbure local.",
"ui.details_direction": "Direction de l'outil",
"ui.details_draft_caption": "Les faces sont colorées selon leur angle avec la direction de démoulage.",
"ui.details_edit_seam": "Modifier la jonction",
"ui.details_fixture": "Spécimen de composant — données d'exemple uniquement",
"ui.details_fixture_caption": "Spécimen de composant avec des valeurs d'illustration ; ce n'est pas un résultat du modèle.",
"ui.details_fixture_problem": "Exemple de constat signalant un problème",
"ui.details_fixture_readout": "Exemple de valeur mesurée",
"ui.details_flip": "Inverser",
"ui.details_gap": "Écart",
"ui.details_hatch": "Hachurer les faces coupées",
"ui.details_jump": "Saut de courbure",
"ui.details_key": "Légende",
"ui.details_offset": "Décalage",
"ui.details_plane": "Plan",
"ui.details_pull": "Direction de démoulage",
"ui.details_radius": "Rayon",
"ui.details_readout": "Valeur affichée",
"ui.details_samples": "Échantillons",
"ui.details_seam": "{body} · Arête {edge}",
"ui.details_settings": "Réglages",
"ui.details_sharp_gap": "Vive ou ouverte",
"ui.details_show_all": "Tout afficher ({count})",
"ui.details_smooth": "Lisse",
"ui.details_stripes": "Bandes",
"ui.details_target": "Cadrer la géométrie",
"ui.details_worst_seams": "Pires jonctions",
"ui.details_zebra_caption": "Les bandes réfléchies montrent la régularité du raccord entre les faces.",
"ui.diameter": "Diamètre",
"ui.dimension": "Cote",
"ui.direct_interaction": "Interaction directe",
@@ -4146,6 +4504,7 @@
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Rayon équivalent",
"ui.expand": "Développer",
"ui.explode_needs_two_components": "La vue éclatée écarte les composants les uns des autres : la conception doit en contenir au moins deux (Nouveau composant, Insérer une conception ou Créer des composants à partir des corps)",
"ui.exportDxf": "Exporter en DXF…",
"ui.export_ellipsis_keymap": "Exporter…",
"ui.export_keymap_tip": "Raccourcis, favoris de la boîte S et barre d'outils, dans un fichier",
@@ -4306,6 +4665,7 @@
"ui.insert_design.saved_file": "{name} contient des modifications non enregistrées ; c'est donc son fichier enregistré qui a été inséré. Enregistrez-le, puis utilisez Mettre à jour les liens pour intégrer les modifications.",
"ui.insert_design.unsaved": "Modifications non enregistrées",
"ui.inspect": "Inspecter",
"ui.instances": "Instances",
"ui.intersect": "Intersection",
"ui.isolate": "Isoler",
"ui.join": "Joindre",
@@ -4408,6 +4768,7 @@
"ui.part_size_shared": "Reconstruit la pièce en remplaçant les entités ajoutées. Toutes les occurrences de ce composant sont mises à jour.",
"ui.paste": "Coller",
"ui.path": "Trajectoire",
"ui.pattern_object_type_tip": "Corps : formes pleines, choisies dans la vue ou le Navigateur ; chacun est copié en entier.\nFonctions : étapes de l'Historique, comme une extrusion ou un perçage, choisies dans l'Historique ou sur une face qu'elles ont créée ; l'étape est répétée.\nUne esquisse n'est ni l'un ni l'autre : répétez ses courbes avec la Répétition ou la Symétrie de l'esquisse, ou extrudez-la d'abord.",
"ui.pattern_on_path": "Répétition sur trajectoire",
"ui.perforate_margin_default": "depuis le diamètre",
"ui.perforate_pitch": "Pas",
@@ -4453,9 +4814,9 @@
"ui.polygon": "Polygone",
"ui.preferences": "Préférences",
"ui.press_a_key": "appuyez sur une touche…",
"ui.print_face_body_not_sent": "Le corps de cette face n’est pas envoyé : ajoutez-le d’abord à Corps",
"ui.print_face_cleared": "{body} : face d’impression effacée",
"ui.print_face_input": "Face d’impression",
"ui.print_face_one_body": "Une face d’impression appartient à un seul corps : envoyez ce corps seul pour la modifier",
"ui.print_face_pick": "Sélectionnez une face plane d’un corps solide pour en faire la face d’impression",
"ui.print_face_set": "{body} : face d’impression définie ; Envoyer au slicer pose le corps sur cette face",
"ui.profile": "Profil",
@@ -4473,6 +4834,7 @@
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Mesure en cours…",
"ui.properties.measuring_bodies": "Mesure en cours… {done} corps sur {total}",
"ui.properties.measuring_failed": "La mesure s'est arrêtée avant la fin.",
"ui.properties.principal_axis": "Axe principal {number}",
"ui.properties.principal_moments": "Moments principaux",
@@ -4540,6 +4902,7 @@
"ui.selectOther": "Sélectionner un autre…",
"ui.selectTangentChain": "Sélectionner la chaîne tangente",
"ui.select_all": "Tout sélectionner",
"ui.select_components_by_face": "Sélectionner des composants (une face sélectionne son composant)",
"ui.selection": "Sélection",
"ui.selection_modifiers": "Modificateurs de sélection",
"ui.selection_shift_add_only": "Maj+clic ajoute sans retirer",
@@ -4581,6 +4944,11 @@
"ui.sketch_intersect_selection_filter": "Filtre de sélection",
"ui.sketch_modifiers": "Modificateurs d’esquisse",
"ui.sketch_project_geometry": "Géométrie",
"ui.sketch_report.all_constrained": "Tout est entièrement contraint.",
"ui.sketch_report.dof": "Degrés de liberté",
"ui.sketch_report.loose": "Pas entièrement contrainte",
"ui.sketch_report.status": "État",
"ui.sketch_report.title": "Rapport d'esquisse",
"ui.sketch_scale": "Échelle d'esquisse",
"ui.sketches": "Esquisses",
"ui.slice": "Trancher",
@@ -4690,7 +5058,14 @@
"ui.viewport_status_key": "Afficher la légende de {name}",
"ui.viewport_status_minimum_radius": "Rayon minimum",
"ui.viewport_status_pairs": "{count} paires",
"ui.viewport_status_section_hatch": "{setting} · hachures",
"ui.viewport_status_section_plane": "Plan actuel",
"ui.viewport_status_section_tilted": "inclinée · {offset}",
"ui.viewport_status_stripes": "{count} bandes",
"ui.viewport_status_summary_clear": "Tout désactiver",
"ui.viewport_status_summary_heading": "Dans cette vue",
"ui.viewport_status_summary_label": "{name} et {count} autres éléments",
"ui.viewport_status_summary_more": "+{count}",
"ui.viewport_theme_follow": "Suivre le thème",
"ui.visual_shaded_hidden_edges": "Ombré avec arêtes cachées",
"ui.visual_shaded_with_edges": "Ombré avec arêtes",
+445 -1
View File
@@ -60,6 +60,7 @@
"BLEND SURFACE": "SUPERFICIE DE UNIÓN",
"BOUNDARY SURFACE": "SUPERFICIE DE CONTORNO",
"BROWSER": "NAVEGADOR",
"Back to the original order": "Volver á orde orixinal",
"Ball": "Esférica",
"Bar": "Barra",
"Base Center": "Centro da base",
@@ -595,6 +596,8 @@
"Snap to face and edge centres": "Axustar aos centros de caras e arestas",
"SolidCraft cannot submit reports directly. Submit on GitHub; no token is needed in the app.": "SolidCraft non pode enviar informes directamente. Envía o informe en GitHub; non se necesita ningún token na aplicación.",
"SolidCraft closed before these designs were saved. Their last autosave can be opened.": "SolidCraft pechouse antes de gardar estes deseños. Pódese abrir a súa última gravación automática.",
"Sort A to Z": "Ordenar de A a Z",
"Sort Z to A": "Ordenar de Z a A",
"Spacing 2 must be a non-zero number": "O espazado 2 debe ser un número distinto de cero",
"Spacing must be a non-zero number": "O espazado debe ser un número distinto de cero",
"Specialise": "Especializar",
@@ -790,6 +793,13 @@
"browser.sketch_attachment_lost": "{name} (ancoraxe perdida)",
"browser.sketch_editing": "{name} (en edición)",
"browser.sketch_name": "Bosquexo{number}",
"browser.sketches_to_parts_already_in_part": "xa na súa peza",
"browser.sketches_to_parts_design_body": "nun corpo do propio deseño",
"browser.sketches_to_parts_moved": "Movéronse {moved} bosquexos á peza na que están",
"browser.sketches_to_parts_no_exact_attachment": "nunha cara sen unha ancoraxe exacta",
"browser.sketches_to_parts_not_on_face": "non na cara dunha peza",
"browser.sketches_to_parts_part_missing": "a súa peza desapareceu",
"browser.sketches_to_parts_result": "Movéronse {moved} bosquexos á peza na que están; {stayed} non se moveron: {why}",
"browser.units": "Unidades: {units}",
"cam.flat": "Cara plana",
"cam.follower": "Seguidor",
@@ -819,6 +829,7 @@
"cmd.appearance_pick_up": "Tomar aparencia",
"cmd.appearance_replace": "Substituír aparencia",
"cmd.assembly_bom": "Lista de materiais",
"cmd.assembly_mass_properties": "Propiedades de masa",
"cmd.body.print_face": "Cara de impresión",
"cmd.body_rename": "Renomear o corpo",
"cmd.browser_collapse_all": "Contraer todo",
@@ -856,6 +867,7 @@
"cmd.component_move_bodies": "Mover corpos ao compoñente",
"cmd.component_move_features": "Mover operacións ao compoñente",
"cmd.component_move_sketches": "Mover bosquexos ao compoñente",
"cmd.component_move_sketches_to_parts": "Mover os bosquexos ás súas pezas",
"cmd.component_paste_from_design": "Pegar desde outro deseño",
"cmd.component_paste_new": "Pegar como novo",
"cmd.component_properties": "Propiedades físicas do compoñente",
@@ -1191,6 +1203,7 @@
"cmd.sketch_spline_control_point_5": "Spline por puntos de control (grao 5)",
"cmd.sketch_spline_fit_point": "Spline por puntos de paso",
"cmd.sketch_spline_insert_point": "Engadir punto ao spline",
"cmd.sketch_spline_remove_point": "Eliminar punto do spline",
"cmd.sketch_spline_reverse": "Inverter a dirección do spline",
"cmd.sketch_spun_profile": "Perfil de revolución",
"cmd.sketch_toggle_diameter": "Alternar raio / diámetro",
@@ -1244,6 +1257,7 @@
"cmd.view.render_browser": "Navegador de render",
"cmd.view.render_dock": "Mover o panel de render",
"cmd.view.render_focus": "Vista de foco do render",
"cmd.view.status_details": "Detalles de estado da ventá gráfica",
"cmd.view.status_items": "Elementos de estado da ventá gráfica",
"cmd.view_ambient_occlusion": "Oclusión ambiental",
"cmd.view_angle_readout": "Ángulos da vista",
@@ -1282,8 +1296,14 @@
"color.hex_hint": "#rrggbb",
"color.hue": "Ton",
"color.linear": "Mostrando os valores da cor no espazo lineal 0-1",
"color.recent": "Cores recentes",
"color.recent_help": "As cores que escolles en calquera campo de cor aparecen aquí",
"color.saturation": "Saturación (porcentaxe)",
"color.saturation_value": "Saturación e valor",
"color.selected": "Cor seleccionada",
"color.step_down": "Diminuír un paso",
"color.step_up": "Aumentar un paso",
"color.value": "Valor, a luminosidade (porcentaxe)",
"config.column_filter_empty": "Non hai columnas que coincidan",
"contact.components_count": "{count} compoñentes",
"contact.enabled_label": "activado",
@@ -1330,6 +1350,7 @@
"dialog.dimension_name": "Cota: {name}",
"dialog.edit_title": "EDITAR {title}",
"dialog.no_shown_body": "Non hai ningún corpo visible para modificar: mostra un ou escolle Corpo novo",
"dialog.pattern_sketch_not_object": "Escolle corpos ou operacións: un bosquexo non é ningunha das dúas cousas. Repite as súas curvas co Patrón ou a Simetría do propio bosquexo, ou extrúeo primeiro.",
"dialog.select": "↖ Seleccionar",
"dialog.selected_count": "↖ {count} seleccionados",
"dialog.selection_guidance": "Selecciona unha entrada para cambiala. Fai clic nos obxectos seleccionados para quitalos; Ctrl/Cmd-clic tamén os alterna. Revisa a previsualización e preme Aceptar.",
@@ -1387,21 +1408,168 @@
"from the rule": "da regra",
"help.apache": "Licenza Apache 2.0",
"help.appearance.assign": "Dá aos corpos, caras ou compoñentes seleccionados unha cor ou un aspecto de material, sen cambiar o seu peso. Úsao para distinguir pezas ou para previsualizar un acabado.",
"help.assembly.bom": "Lista as pezas do deseño ou dun compoñente coas súas cantidades, por número de peza, e pode gardar a lista como CSV ou JSON. Úsaa como lista de pezas para encargar e montar.",
"help.attributions": "Atribucións (ATTRIBUTION.md)",
"help.build": "Versión {version} · commit {commit} · compilada o {date}",
"help.canvas.decal": "Coloca unha imaxe nunha cara plana do modelo, como unha pegatina. Úsaa para mostrar unha etiqueta, un logotipo ou un debuxo impreso nunha peza.",
"help.canvas.edit": "Cambia un lenzo: a súa posición, tamaño, ángulo, opacidade, simetría, visibilidade ou nome. Úsao para aliñar unha imaxe de referencia co bosquexo que calcas sobre ela.",
"help.canvas.insert": "Coloca unha imaxe PNG ou JPEG nun plano ou nunha cara como referencia transparente. Úsao para calcar unha foto ou un debuxo nun bosquexo, coa imaxe a un tamaño coñecido.",
"help.component.break_link": "Separa un compoñente ligado do seu ficheiro de deseño e conserva os seus corpos tal como están. Úsao cando a peza xa non deba seguir os cambios do ficheiro orixinal.",
"help.component.capture_position": "Conserva as posicións das pezas que moveches a man, para que esas sexan as súas posicións. Úsao despois de arrastrar ata o seu sitio pezas que ningunha unión sostén.",
"help.component.create": "Engade un compoñente novo e baleiro ao deseño, dentro do compoñente activo salvo que escollas outro compoñente superior. Úsao para dar a unha peza nova da ensamblaxe o seu propio lugar para corpos e bosquexos.",
"help.component.finish_edit": "Garda a peza que estás editando in situ, volve á súa ensamblaxe e actualiza a ensamblaxe a partir dela. Úsao cando remates os cambios na peza ligada.",
"help.component.from_bodies": "Converte cada corpo seleccionado nun compoñente propio, co nome do corpo. Úsao cando un deseño feito con corpos soltos deba pasar a ser unha ensamblaxe cuxas pezas se poidan unir e mover.",
"help.component.insert_design": "Insire outro deseño gardado como un compoñente ligado ao seu ficheiro, cos seus corpos sólidos colocados tal como están alí. Úsao para reutilizar unha peza nunha ensamblaxe e recibir os cambios posteriores con Actualizar as ligazóns.",
"help.component.properties": "Mostra o volume, a masa, o centro de masas e os momentos de inercia dun compoñente, segundo os materiais dos seus corpos. Úsao para comprobar o peso e o equilibrio dunha ensamblaxe.",
"help.component.revert_position": "Devolve ao seu sitio as pezas que moveches a man e descarta os movementos que non se capturaron. Úsao para desfacer movementos de proba nunha ensamblaxe.",
"help.component.update_links": "Le de novo os ficheiros de deseño ligados e substitúe os corpos que cambiaron. Úsao despois de editar unha peza que usa esta ensamblaxe.",
"help.config.configure": "Engade parámetros, operacións, materiais ou aparencias como columnas da táboa de configuracións. Úsao para crear variantes dun deseño, como tamaños dunha peza.",
"help.config.preview": "Comproba que unha fila da táboa de configuracións se reconstrúe, sen cambiar o deseño nin o seu historial. Úsao antes de cambiar a unha variante da que non estás seguro.",
"help.config.rules": "Mostra as regras da táboa de configuracións, as súas filas e cal é a fila activa. Úsao para ver como están definidas as variantes dun deseño.",
"help.config.table": "Mostra a táboa de configuracións: unha fila por variante, unha columna por parámetro ou operación, e se o deseño aínda coincide coa fila activa. Úsao para revisar as variantes dun deseño.",
"help.connect_note": "Reinicia cada asistente para cargar o servidor de SolidCraft. De cada ficheiro fíxose unha copia de seguranza como .bak antes de cambialo.",
"help.connect_title": "Conectar asistentes de IA",
"help.construct.axis.edge": "Crea un eixe de construción ao longo dunha aresta recta ou dunha liña do bosquexo. Úsao como eixe para unha revolución, un patrón circular ou unha unión.",
"help.construct.axis.normal_to_face": "Crea un eixe de construción por un punto, perpendicular a unha cara. Úsao como un eixe que sae directamente dunha superficie.",
"help.construct.axis.through_cylinder": "Crea un eixe de construción polo centro dunha cara de cilindro, cono ou toro, ou dunha aresta circular. Úsao para xirar operacións ou repetilas arredor dunha peza redonda.",
"help.construct.axis.two_planes": "Crea un eixe de construción onde se atopan dous planos ou caras planas. Úsao cando o eixe que precisas é a liña entre dúas caras.",
"help.construct.axis.two_points": "Crea un eixe de construción por dous puntos, vértices ou puntos do bosquexo. Úsao para un eixe que vai entre dúas posicións coñecidas.",
"help.construct.plane.along_path": "Crea un plano de construción perpendicular a unha aresta ou curva, nunha posición ao longo dela. Úsao para debuxar o perfil dun varrido ou unha sección dunha traxectoria.",
"help.construct.plane.at_angle": "Crea un plano de construción xirado un ángulo a partir dun plano ou dunha cara, arredor dun eixe ou dunha aresta. Úsao para bosquexos inclinados, como unha escuadra en ángulo.",
"help.construct.plane.midplane": "Crea un plano de construción a medio camiño entre dous planos ou caras planas, ou que os bisecta onde se atopan formando un ángulo. Úsao como plano de simetría.",
"help.construct.plane.offset": "Crea un plano de construción paralelo a un plano ou a unha cara plana, a unha distancia ou por un punto. Úsao para debuxar a unha altura fixa sobre unha cara.",
"help.construct.plane.perpendicular": "Crea un plano de construción que contén unha liña ou aresta e é perpendicular a un plano ou a unha cara. Úsao para debuxar en vertical sobre un modelo ao longo dunha aresta.",
"help.construct.plane.tangent": "Crea un plano de construción que toca un cilindro, cono, esfera ou toro nun punto. Úsao para debuxar no lado dunha peza redonda.",
"help.construct.plane.three_points": "Crea un plano de construción por tres puntos. Úsao para un plano definido por posicións do modelo, como tres esquinas.",
"help.construct.plane.two_edges": "Crea un plano de construción por dúas arestas ou liñas rectas que están nun mesmo plano. Úsao para un plano que atravesa unha peza, como por dúas arestas opostas.",
"help.construct.point.along_path": "Crea un punto de construción nunha posición ao longo dunha aresta ou curva. Úsao como referencia a medio camiño dunha traxectoria.",
"help.construct.point.center": "Crea un punto de construción no centro dunha aresta circular, dun círculo ou arco do bosquexo, dunha esfera ou dun toro. Úsao como referencia para furados, eixes e unións.",
"help.construct.point.edge_plane": "Crea un punto de construción onde unha aresta ou liña atravesa un plano ou unha cara plana. Úsao para marcar onde unha traxectoria cruza un plano.",
"help.construct.point.three_planes": "Crea un punto de construción onde se atopan tres planos ou caras planas. Úsao como referencia de esquina, mesmo onde o modelo non ten vértice.",
"help.construct.point.two_edges": "Crea un punto de construción onde se atopan dúas arestas ou liñas, ou onde están máis preto. Úsao como referencia nunha esquina virtual.",
"help.construct.point.vertex": "Crea un punto de construción nun vértice ou punto do bosquexo. Úsao como referencia que se mantén cando se oculta o bosquexo ou o corpo ao seu redor.",
"help.contact.check": "Lista os pares de pezas dos conxuntos de contacto que se atravesan na súa posición actual. Úsao para atopar colisións antes de accionar as unións ou executar un estudo de movemento.",
"help.contact.create": "Agrupa dúas ou máis pezas nun conxunto de contacto, cuxos corpos non se poden atravesar mentres as unións se moven. Úsao para pezas que deben parar ao tocarse, como unha panca contra o seu tope.",
"help.contact.disable_all": "Desactiva o contacto, de modo que as unións accionadas e os estudos de movemento xa non paran onde as pezas se tocan. Úsao para volver mover as pezas con liberdade, ou para manter áxil unha ensamblaxe grande.",
"help.contact.edit": "Cambia un conxunto de contacto: as pezas que contén, o seu nome ou se está suprimido; tamén pode eliminar o conxunto. Úsao para axustar que pezas non se poden atravesar.",
"help.contact.enable_all": "Mete todas as pezas da ensamblaxe nun só conxunto de contacto, de modo que ningunhas dúas pezas se poden atravesar mentres as unións se moven. Úsao para unha comprobación rápida de todo un mecanismo.",
"help.contact.enable_sets": "Activa o contacto para os conxuntos de contacto que definiches, de modo que as unións accionadas e os estudos de movemento paran onde as súas pezas se atravesarían. Úsao para recuperar os teus conxuntos despois de desactivar o contacto.",
"help.contact.list": "Lista os conxuntos de contacto do deseño, as pezas de cada un e se o contacto está activado. Úsao para comprobar como está configurado o contacto antes de accionar a ensamblaxe.",
"help.document.inspect": "Mostra unha visión xeral do deseño: os seus compoñentes, corpos, bosquexos, operacións e parámetros. Úsao para orientarte nun deseño que non fixeches ti.",
"help.document.units": "Cambia as unidades nas que o deseño mostra as lonxitudes, como mm ou polgadas. A xeometría mantén o seu tamaño; só seguen o cambio a visualización e os números simples.",
"help.edit.checkpoint": "Recorda o deseño, o bosquexo activo e o historial de desfacer tal como están agora. Úsao antes de probar algo arriscado do que quizais queiras volver atrás.",
"help.edit.restore_checkpoint": "Volve a un punto de control, historial de desfacer incluído. Úsao para descartar de golpe todo o feito desde o punto de control.",
"help.explode.create": "Crea unha vista explosionada que separa as pezas do centro da ensamblaxe, ou segundo os movementos que fixes. Úsao para mostrar como se monta unha ensamblaxe, en instrucións ou presentacións.",
"help.face.delete": "Elimina as caras seleccionadas e deixa que as caras veciñas pechen o oco, ou deixa o oco aberto como unha superficie. Úsao para quitar unha aresta arredondada, un furado ou un saínte que estorba.",
"help.file.insert_mesh": "Engade un ficheiro 3MF, STL, OBJ, PLY ou glTF ao deseño como corpos de malla nun compoñente novo. Úsao para colocar un modelo descargado ou dixitalizado xunto ao teu deseño como referencia.",
"help.file.insert_step": "Engade un ficheiro STEP, IGES, FreeCAD ou Rhino ao deseño como corpos sólidos nun compoñente novo; as pezas dunha ensamblaxe pasan a ser compoñentes aniñados. Úsao para traer modelos de provedores ou doutros programas CAD.",
"help.file.save_mesh": "Garda corpos como malla STL, 3MF ou OBJ, coa suavidade das caras curvas que escollas. Úsao para preparar pezas para a impresión 3D ou para programas que len mallas.",
"help.file.send_to_slicer": "Garda os corpos seleccionados como ficheiro 3MF e ábreo no laminador que escollas. Úsao para ir do modelo á impresión nun só paso.",
"help.font_details": "A interface usa as fontes integradas de egui (Ubuntu Light e Hack, baixo as licenzas Ubuntu Font Licence e MIT/Bitstream Vera; Noto Emoji e a fonte de iconas emoji, baixo OFL e MIT). O texto dos bosquexos usa Liberation Sans (SIL OFL 1.1). O paquete opcional de fontes de The Crafting Apps, craft-fonts (BIZ UDPGothic, Shippori Mincho, BIZ UDMincho, Noto Sans CJK SC, Noto Sans Arabic; SIL OFL 1.1), non se inclúe nas compilacións de SolidCraft.",
"help.fonts": "Fontes",
"help.frame.member": "Coloca un perfil, como un tubo ou un perfil de aluminio extruído, ao longo das liñas dun bosquexo de estrutura, un membro por liña. Úsao para construír estruturas, bastidores e conxuntos soldados.",
"help.inspect.accessibility": "Colorea as caras ás que unha ferramenta pode chegar desde unha dirección, e aquelas ás que non. Úsao para comprobar unha peza para mecanizado ou moldeo desde ese lado.",
"help.inspect.center_of_mass": "Mostra o centro de masas dos corpos, cada un por separado e todos xuntos, con densidade uniforme. Úsao para comprobar o equilibrio e onde vai envorcar unha peza.",
"help.inspect.colored_components": "Dá a cada compoñente a súa propia cor temporal, sen cambiar as aparencias. Úsao para distinguir dunha ollada as pezas dunha ensamblaxe.",
"help.inspect.compare": "Compara dous corpos e mostra onde un ten material que o outro non, con volume e desviación. Úsao para comprobar unha peza modificada ou importada contra a orixinal.",
"help.inspect.continuity": "Comproba con que suavidade se unen as caras ao longo das súas arestas: separacións, quebras ou saltos de curvatura, e colorea as xuntas. Úsao para atopar onde as superficies non se unen limpamente.",
"help.inspect.curvature_comb": "Debuxa pentes ao longo de curvas, arestas ou caras, cuxos dentes mostran canto se curvan. Úsao para detectar zonas planas, quebras e curvatura irregular.",
"help.inspect.curvature_map": "Colorea as caras segundo canto se curvan, en vermello onde o raio é pequeno. Úsao para atopar zonas axustadas e xulgar a suavidade dunha superficie.",
"help.inspect.draft": "Colorea as caras segundo o seu ángulo de desmoldaxe respecto dunha dirección de extracción e marca as que teñen demasiado pouco. Úsao para comprobar unha peza antes do moldeo ou da fundición.",
"help.inspect.environment_map": "Mostra o modelo cun acabado reflectante, como de espello. Úsao para xulgar o fluxo das superficies polo xeito en que os reflexos as percorren.",
"help.inspect.interference": "Atopa corpos que se solapan e mostra cada solapamento co seu volume. Úsao para comprobar se hai pezas que chocan nunha ensamblaxe.",
"help.inspect.isocurve": "Debuxa as curvas isoparamétricas das caras, a grella sobre a que se constrúe a superficie. Úsao para ver como flúe unha superficie e onde se amorea.",
"help.inspect.measure": "Mide lonxitudes, distancias, ángulos, áreas e raios entre o que escollas, ou o volume e a masa dos corpos. Úsao para comprobar tamaños e folgas.",
"help.inspect.minimum_radius": "Atopa o raio de curvatura máis pequeno de curvas, arestas ou caras, e onde está. Úsao para comprobar que unha ferramenta ou unha boquilla pode seguir a forma.",
"help.inspect.section": "Corta a vista ao longo dun plano e raia as caras cortadas, sen cambiar o modelo. Úsao para mirar dentro de pezas e ensamblaxes.",
"help.inspect.zebra": "Mostra raias brancas e negras reflectidas nas caras do modelo. Úsao para xulgar a suavidade: as raias que se rompen ou fan unha quebra nunha aresta indican unha transición deficiente.",
"help.joint.as_built": "Une dúas pezas onde xa están, sen mover ningunha, e define como poden seguir movéndose. Úsao para pezas que xa colocaches na súa posición final.",
"help.joint.cam": "Liga unha leva que xira cun seguidor, de modo que o seguidor se desliza ou oscila segundo lle pasa por baixo o contorno da leva. Úsao para levas, excéntricas e accionamentos de válvulas.",
"help.joint.create": "Une dúas pezas nas orixes de unión que escollas e move a segunda peza ao seu sitio; o tipo de unión define como poden seguir movéndose. Úsao para construír unha ensamblaxe cuxas pezas se moven como o mecanismo real.",
"help.joint.drive": "Define o ángulo ou a distancia dunha unión e move as pezas con ela, dentro dos seus límites; as unións ligadas e os bucles pechados seguen o movemento. Úsao para comprobar que un mecanismo se move como se pretende.",
"help.joint.gear": "Liga dúas unións xiratorias cunha relación de engrenaxe, de modo que accionar unha fai xirar a outra. Úsao para engrenaxes rectas e coroas dentadas, coa relación calculada a partir dos raios primitivos ou do número de dentes.",
"help.joint.limits": "Define canto pode xirar ou deslizar unha unión, cun mínimo e un máximo, ou borra eses límites. Úsao para manter unha charnela, unha corredoira ou unha panca dentro do seu rango real de percorrido.",
"help.joint.motion_link": "Acopla dúas unións cunha relación e un desfase, de modo que accionar unha move a outra. Úsao para unha relación fixa entre unións que Engrenaxe, Cremalleira e piñón ou Parafuso non cobren.",
"help.joint.origin": "Coloca unha orixe de unión con nome nunha peza: no centro dunha cara ou dun extremo redondo, no medio dunha aresta, nunha esquina ou nun punto. Úsao para preparar onde se fixan as unións; a orixe escollida nunha cara segue a cara cando a peza cambia de tamaño.",
"help.joint.rack_pinion": "Liga un piñón que xira cunha cremalleira que se desliza, de modo que a cremalleira se move tanto como a lonxitude de circunferencia primitiva que percorre o piñón. Úsao para accionamentos de cremalleira, dirección e eixes lineais.",
"help.joint.reach": "Move un punto dunha peza cara a un obxectivo cambiando as unións da súa cadea, dentro dos seus límites. Úsao para poñer un mecanismo en postura segundo onde debe acabar a súa punta, como a dun brazo robótico.",
"help.joint.rigid_group": "Bloquea xuntas as pezas seleccionadas tal como están, para que se movan como unha soa. Úsao para pezas que van xuntas e non teñen movemento entre elas.",
"help.joint.screw": "Liga o xiro e o deslizamento mediante un paso, de modo que cada volta avance esa distancia. Úsao para fusos de avance, parafusos e fusos roscados.",
"help.library.apply": "Aplica un material ou unha aparencia dun ficheiro de biblioteca local a corpos, caras ou compoñentes. Úsao para reutilizar materiais que gardaches doutro deseño.",
"help.library.export": "Garda os materiais e as aparencias do deseño nun ficheiro de biblioteca. Úsao para compartilos ou reutilizalos noutros deseños.",
"help.library.inspect": "Comproba un ficheiro de biblioteca e lista os seus materiais e aparencias, sen cambiar o deseño. Úsao para ver o que contén unha biblioteca antes de aplicala.",
"help.licences": "Licenzas",
"help.material.assign": "Define de que material están feitos os corpos seleccionados, como aceiro, aluminio ou ABS. Úsao para que a masa e o peso coincidan coa peza real.",
"help.material.properties.validate": "Comproba que unha ficha de datos de material teña números coherentes e non lle falten valores. Úsao antes de fiarte dos datos para a masa ou a rixidez.",
"help.mesh.convert": "Reconstrúe un corpo de malla, como un STL, como un sólido editable con caras planas e cilíndricas. Úsao para modificar pezas mecánicas importadas como se fosen un corpo modelado.",
"help.mit": "Licenza MIT",
"help.motion.study": "Define valores das unións en pasos ao longo dunha liña de tempo e reprodúceos como animación. Úsao para ver como se move un mecanismo nunha secuencia e comprobar as folgas durante o percorrido.",
"help.motion.trace": "Traza o camiño que segue un punto dunha peza mentres se reproduce un estudo de movemento ou se acciona unha unión, e consérvao como curva de bosquexo 3D cando o confirmas. Úsao para ver ata onde chega un mecanismo, ou para construír sobre a súa traxectoria.",
"help.notice": "NOTICE",
"help.occurrence.ground": "Fixa unha peza no seu sitio, ou volve liberala, para que as unións movan arredor dela as outras pezas. Úsao para o bastidor ou a base sobre a que se constrúe o resto da ensamblaxe.",
"help.occurrence.move": "Move unha peza da ensamblaxe só segundo os graos de liberdade que permiten as súas unións. Selecciona unha cara da peza e despois arrastra unha frecha ou un arco dispoñible.",
"help.parameters.change": "Abre a táboa de valores con nome e expresións que controlan as cotas do deseño. Úsao para cambiar un tamaño nun só lugar e que o sigan todas as operacións que o usan.",
"help.parameters.export": "Garda os parámetros do deseño como CSV ou JSON. Úsao para editalos nunha folla de cálculo ou levalos a outro deseño.",
"help.parameters.graph": "Mostra que parámetros e operacións usan cales outros, e os bucles ou erros que haxa entre eles. Úsao para ver a que afectará un cambio nun parámetro.",
"help.parameters.import": "Le parámetros dun CSV ou JSON no deseño, todos ou ningún. Úsao para traer valores dunha folla de cálculo ou doutro deseño.",
"help.parameters.move": "Move un parámetro de usuario antes ou despois doutro na lista. Úsao para manter xuntos os parámetros relacionados.",
"help.parts.fastener": "Engade un parafuso, perno, porca, arandela, pasador ou rodamento estándar no tamaño que escollas. Colocado nun furado, asenta nel cunha unión, así que non precisas modelar eses elementos de fixación ti mesmo.",
"help.parts.insert": "Insire unha peza estándar na familia, tamaño e lonxitude que escollas. Colocada no bordo ou na parede dun furado, asenta nel cunha unión ríxida.",
"help.parts.library": "Abre as pezas normalizadas: parafusos, pernos, porcas, arandelas, parafusos sen cabeza, pasadores de espiga e rodamentos en tamaños normalizados. Úsao para engadir unha peza normalizada en vez de modelala ti.",
"help.parts.resize": "Cambia o tamaño ou a lonxitude dunha peza normalizada inserida e reconstrúea; as súas unións mantérana asentada. Úsao cando un parafuso resulta longo de máis ou un furado precisa outro tamaño.",
"help.plastic.assign_rule": "Asigna unha regra de plástico a corpos, para que as súas operacións de plástico tomen o seu desmoldaxe e a súa folga como valores predeterminados. Úsao para configurar unha peza moldeada unha soa vez para todas as súas operacións.",
"help.plastic.boss": "Engade un saínte para parafuso nunha cara: un poste cun furado opcional, desmoldaxe, arredondamento da raíz e nervios de apoio. Úsao para puntos de parafuso en carcasas moldeadas ou impresas.",
"help.plastic.lip": "Engade un beizo ou unha ranura correspondente ao longo do bordo dun corpo baleirado. Úsao para que dúas metades dunha carcasa se aliñen entre si e pechen ben.",
"help.plastic.manage_rules": "Crea e edita regras de plástico: material, espesor de parede, raios, folga e desmoldaxe. Úsao para manter coherentes as operacións dunha peza moldeada.",
"help.plastic.rest": "Engade un apoio nunha cara: unha base redonda ou rectangular, maciza ou oca, con desmoldaxe. Úsao como soporte ou separador nunha carcasa moldeada.",
"help.plastic.snap_fit": "Engade un gancho de encaixe a presión nunha cara, coa súa lonxitude, espesor e retén. Úsao para suxeitar pezas sen parafusos.",
"help.pointcloud.insert": "Insire unha dixitalización PLY, XYZ ou PTS como nube de puntos xunto ao modelo. Úsaa como referencia ao construír un modelo a partir de datos medidos.",
"help.sheet.convert": "Converte unha placa ou un corpo baleirado de espesor uniforme nun corpo de chapa, con dobras nas arestas que escollas. Úsao para poder despregar unha peza existente.",
"help.sheet.export_bend_table": "Garda a táboa de dobras dun corpo de chapa como CSV ou JSON: ángulos, raios e posicións das dobras no desenvolvemento. Úsao para a prensa plegadora ou o taller.",
"help.sheet.export_dxf": "Garda o desenvolvemento como DXF, con contornos, liñas de dobra e notas de dobra opcionais. Úsao para o corte por láser, plasma ou chorro de auga.",
"help.sheet.flange": "Engade unha pestana: unha placa base a partir dun bosquexo, unha parede ao longo dun contorno aberto do bosquexo ou unha parede dobrada nas arestas da chapa. Úsao para construír pezas de chapa.",
"help.sheet.flat_pattern": "Crea o desenvolvemento dun corpo de chapa, co seu tamaño, recortes e liñas de dobra. Úsao para comprobar a peza en bruto antes de cortala.",
"help.sheet.fold": "Dobra unha chapa ao longo dunha liña do bosquexo cun ángulo e un raio. Úsao para dobrar unha chapa plana despois de facerlle os cortes.",
"help.sheet.hem": "Dobra o bordo dunha chapa sobre si mesmo. Úsao para bordos seguros e ríxidos sen rebabas afiadas.",
"help.sheet.manage_rules": "Crea e edita regras de chapa: espesor, raio de dobra, factor K, desafogos e separacións. Úsao para axustalas ao material e ás ferramentas do teu taller.",
"help.sheet.path_flange": "Engade unha cadea de pestanas ao longo do bordo dunha chapa, seguindo unha cadea aberta de liñas do bosquexo. Úsao para perfís como unha forma de U ou de Z nun só paso.",
"help.sheet.perforate": "Engade un campo de furados por toda a chapa plana, nun patrón ao tresbolillo ou cadrado. Úsao para ventilacións, reixas e paneis máis lixeiros.",
"help.sheet.refold": "Volve dobrar un corpo de chapa despregado. Úsao despois de engadir operacións á chapa plana.",
"help.sheet.unfold": "Desprega todas as dobras dun corpo de chapa. Úsao para engadir furados ou cortes que teñen que cruzar unha dobra e despois volver dobrar.",
"help.sketch.arc.center_point": "Debuxa un arco circular arredor dun punto central, desde un punto inicial ata un punto final. Úsao cando se coñece o centro do arco, como un raio arredor dun furado ou dun pivote.",
"help.sketch.arc.tangent": "Debuxa un arco que comeza no extremo dunha liña ou dun arco e continúa tanxente a ela. Úsao para seguir unha cadea cunha curva suave en vez dunha esquina.",
"help.sketch.arc.three_point": "Debuxa un arco desde un punto inicial ata un punto final pasando por un terceiro punto. Úsao cando o arco ten que pasar por puntos dados en vez de arredor dun centro coñecido.",
"help.sketch.arc3d": "Debuxa un arco circular exacto no espazo por tres puntos, co Bosquexo 3D activado. Úsao para curvas en traxectorias e guías que saen do plano do bosquexo.",
"help.sketch.auto_constrain": "Engade as restricións que o bosquexo case ten xa, como horizontal, paralela ou coincidente, e despois acótao ata que quede totalmente definido. Úsao para fixar nun paso un bosquexo debuxado a man alzada.",
"help.sketch.auto_constrain_from_datum": "Funciona como Restrición automática, pero mide as posicións desde un punto de referencia que escollas en vez da orixe. Úsao cando a peza se dispón a partir dun só punto de referencia, como unha esquina ou un furado.",
"help.sketch.blend_curve": "Une os extremos de dúas curvas cunha spline suave tanxente a ambas, ou tamén continua en curvatura se o escolles. Úsao para salvar un oco entre curvas sen quebra.",
"help.sketch.break": "Divide unha curva en anacos onde a cruzan outras curvas, ou en puntos que coloques nela. Úsao cando unha parte dunha curva precisa a súa propia restrición ou debe eliminarse por separado.",
"help.sketch.cancel": "Sae do bosquexo e descarta todo o que cambiou desde que se creou ou se abriu para editalo. Desfacer recupera os cambios.",
"help.sketch.centerline": "Cambia as liñas entre liñas normais e liñas centrais, eixes que os perfís deixan fóra. Usa unha liña central como eixe para unha revolución, unha simetría ou unha restrición de simetría.",
"help.sketch.chamfer.distance_angle": "Biséla a esquina entre dúas liñas, definida por unha distancia ao longo da primeira liña e un ángulo. Úsao cando un debuxo dá o chafrán como lonxitude e ángulo, como 2 mm × 30°.",
"help.sketch.chamfer.equal_distance": "Biséla a esquina entre dúas liñas á mesma distancia ao longo de ambas. Úsao para o chafrán habitual de 45° nun contorno.",
"help.sketch.chamfer.two_distance": "Biséla a esquina entre dúas liñas, definida por unha distancia distinta ao longo de cada liña. Úsao para chafráns que non son de 45°, dados como dúas lonxitudes.",
"help.sketch.circle.center": "Debuxa un círculo a partir do seu centro e do seu diámetro. Úsao para furados, saíntes e outros elementos redondos cuxo centro se coñece.",
"help.sketch.circle.three_point": "Debuxa un círculo por tres puntos. Úsao cando o círculo ten que pasar por puntos dados, por exemplo dunha xeometría existente.",
"help.sketch.circle.three_tangent": "Debuxa un círculo que toca tres liñas, círculos ou arcos. Úsao para encaixar un círculo no espazo entre tres curvas, como o círculo inscrito dun triángulo.",
"help.sketch.circle.two_point": "Debuxa un círculo a partir dos dous extremos do seu diámetro. Úsao cando se coñecen os puntos do bordo do círculo en vez do seu centro.",
"help.sketch.circle.two_tangent": "Debuxa un círculo dun tamaño dado que toca dúas liñas, círculos ou arcos. Úsao para un arredondamento de raio fixo entre dúas curvas.",
"help.sketch.conic": "Debuxa unha curva cónica entre dous puntos extremos, definida por un punto ápice e un valor rho. Úsao para transicións suaves cuxa convexidade queres axustar, desde plana ata case unha esquina viva.",
"help.sketch.constrainer": "Aplica a restrición que unha ou dúas curvas escollidas case teñen xa, como horizontal, paralela, tanxente ou igual. Úsao para ordenar un bosquexo debuxado a man, unha relación cada vez.",
"help.sketch.constraint.coincident": "Fai que un punto estea sobre outro punto, unha curva ou un eixe do bosquexo. Úsao para pechar ocos nun perfil ou para pór un punto sobre unha liña.",
"help.sketch.constraint.collinear": "Fai que dúas liñas estean sobre unha mesma recta. Úsao para aliñar arestas interrompidas, como os dous lados dunha entalla.",
"help.sketch.constraint.concentric": "Dá a dous círculos ou arcos o mesmo centro. Úsao para aneis, avellanados cilíndricos e eixes con ombreiras.",
"help.sketch.constraint.curvature": "Fai que dúas curvas que se atopan nun punto extremo continúen coa mesma curvatura (G2). Úsao onde unha unión tanxente non é abondo de suave, por exemplo en superficies visibles.",
"help.sketch.constraint.equal": "Fai que as liñas teñan a mesma lonxitude, ou os círculos e arcos o mesmo raio. Úsao para que unha cota controle varios elementos iguais.",
"help.sketch.constraint.fix": "Fixa puntos ou curvas onde están, ou volve liberalos. Úsao para xeometría que non debe moverse cando arrastras ou resolves o bosquexo.",
"help.sketch.constraint.horizontal_vertical": "Fai horizontal ou vertical, o que estea máis preto, unha liña ou a liña entre dous puntos. Úsao para aliñar un contorno cos eixes do bosquexo.",
"help.sketch.constraint.midpoint": "Pon un punto no medio dunha liña, ou fai que coincidan os puntos medios de dúas liñas. Úsao para centrar xeometría nunha aresta.",
"help.sketch.constraint.parallel": "Fai paralelas dúas liñas. Úsao para lados que deben seguir paralelos cando cambian outras cotas.",
"help.sketch.constraint.perpendicular": "Fai que dúas liñas se atopen en ángulo recto. Úsao para esquinas en escuadra entre liñas que non están sobre os eixes do bosquexo.",
"help.sketch.constraint.polygon": "Converte unha cadea pechada de liñas nun polígono regular: lados iguais, con todas as esquinas nun mesmo círculo. Úsao para facer regular un polígono debuxado a man e mantelo así.",
"help.sketch.constraint.symmetry": "Fai que dous puntos ou curvas sexan simétricos respecto dunha liña ou dun punto. Úsao para manter simétrico un perfil cando cambias un lado.",
"help.sketch.constraint.tangent": "Fai que dúas curvas se toquen tanxencialmente, como unha liña e un arco. Úsao para unións suaves sen quebra.",
"help.sketch.construction": "Cambia as curvas entre xeometría normal e xeometría de construción, que os perfís deixan fóra. Usa curvas de construción como axudas para a disposición, referencias e cotas.",
"help.sketch.construction_line": "Crea unha recta de construción infinita por dous puntos. Úsaa para organizar un bosquexo sen dividir os perfís.",
"help.sketch.construction_line.angle": "Crea unha recta de construción infinita cun ángulo respecto do eixe X do bosquexo. Escolle o punto e escribe o ángulo, ou escolle a súa dirección.",
"help.sketch.construction_line.bisector": "Escolle dúas rectas do bosquexo que se crucen e despois unha das dúas bisectrices. O resultado segue as súas rectas de orixe.",
@@ -1412,11 +1580,71 @@
"help.sketch.construction_line.tangent_external": "Escolle un círculo ou un arco circular e despois un punto exterior e unha solución de tanxente. As vistas previas só mostran os puntos de tanxencia sobre o arco debuxado.",
"help.sketch.construction_line.tangent_two": "Escolle dous círculos ou arcos circulares e despois unha tanxente común na vista previa. Os puntos de tanxencia deben estar sobre as curvas debuxadas.",
"help.sketch.construction_line.vertical": "Crea unha recta de construción vertical infinita por un punto. A súa restrición vertical mantense nas edicións posteriores.",
"help.sketch.copy": "Copia as curvas e os puntos do bosquexo seleccionados, xunto coas restricións e cotas que hai entre eles. Pégaos neste bosquexo ou noutro.",
"help.sketch.create": "Inicia un bosquexo 2D novo nun plano ou nunha cara plana do modelo. Toda extrusión, revolución e varrido comeza cun bosquexo.",
"help.sketch.cut": "Copia a xeometría do bosquexo seleccionada e bórraa do bosquexo, nun só paso de desfacer. Pégaa noutro lugar deste bosquexo ou noutro.",
"help.sketch.dimension": "Engade unha cota de control: unha lonxitude, distancia, ángulo, raio ou diámetro, segundo o que escollas. Escribe un valor ou o nome dun parámetro e o bosquexo séguea.",
"help.sketch.edit": "Abre un bosquexo existente para editalo. As operacións construídas sobre el actualízanse cando remates o bosquexo.",
"help.sketch.ellipse": "Debuxa unha elipse a partir do seu centro, do extremo do seu eixe maior e dun punto do seu lado menor. Úsao para aberturas ovaladas, levas e outras formas redondas alongadas.",
"help.sketch.equation_curve": "Debuxa unha curva a partir de fórmulas: x(t) e y(t), ou y = f(x), nun intervalo. As fórmulas poden usar parámetros e a curva segue os seus cambios: úsaa para unha onda senoidal, unha espiral ou a evolvente do dente dunha engrenaxe.",
"help.sketch.extend": "Alonga unha liña ou un arco ata a curva máis próxima que lle sae ao paso, ou fai crecer dúas curvas ata que se atopan. Úsao para pechar ocos nun perfil despois de recortar ou editar.",
"help.sketch.fillet": "Arredonda a esquina onde se atopan dúas liñas ou arcos cun arco dun raio dado. Varias esquinas arredondadas xuntas comparten un só raio.",
"help.sketch.finish": "Sae do bosquexo e volve ao modelo. Os seus perfís pechados quedan listos para Extruír, Revolución e outras operacións.",
"help.sketch.finish_auto_constrain": "Executa Restrición automática no bosquexo e despois remátao. Úsao para deixar un bosquexo totalmente definido nun só paso.",
"help.sketch.fit_curves_to_section": "Corta un corpo de malla ou un sólido co plano do bosquexo e axusta liñas e arcos á sección. Úsao para reconstruír como bosquexo editable unha peza dixitalizada ou importada.",
"help.sketch.include_3d": "Trae arestas do modelo, vértices e curvas doutros bosquexos a este bosquexo como referencias ligadas, aplanando sobre o seu plano as que están fóra del. Úsao para construír sobre xeometría que non está no plano do bosquexo.",
"help.sketch.infinite": "Cambia as liñas entre liñas normais e liñas de construción infinitas que cruzan toda a vista. Úsaas como referencias de disposición que nunca quedan curtas.",
"help.sketch.insert_dxf": "Le as curvas dun debuxo DXF nun bosquexo, escaladas, xiradas e colocadas onde indiques. Úsao para construír sobre un debuxo 2D doutro programa, como un contorno de corte por láser.",
"help.sketch.insert_svg": "Le os trazados dun debuxo SVG nun bosquexo, escalados, xirados e colocados onde indiques. Úsao para converter un logotipo ou un contorno vectorial en curvas que podes extruír.",
"help.sketch.inspect": "Abre un informe do bosquexo aberto: cantos graos de liberdade quedan e se está totalmente restrinxido. Úsao para saber o que aínda se move antes de rematar o bosquexo.",
"help.sketch.intersect": "Engade as curvas ou os puntos onde corpos, caras, arestas ou outros bosquexos cruzan o plano do bosquexo. Quedan ligados e seguen o modelo cando cambia.",
"help.sketch.intersection_curve": "Crea curvas 3D onde se atopan dous corpos ou caras, ligadas a eles. Úsaas como traxectorias ou guías que seguen o modelo.",
"help.sketch.isoparametric_curve": "Crea unha curva 3D na dirección U ou V dunha cara por un punto que escollas, ligada á cara. Úsaa como traxectoria ou liña de división que segue a superficie.",
"help.sketch.line": "Debuxa liñas conectadas punto a punto, como cadea aberta ou como contorno pechado. É a ferramenta básica para a maioría dos perfís.",
"help.sketch.line.midpoint": "Debuxa unha liña desde o seu punto medio ata un extremo, co outro extremo reflectido. Úsao para liñas centradas nun punto, como unha aresta simétrica.",
"help.sketch.line3d": "Debuxa liñas rectas conectadas entre puntos do espazo, co Bosquexo 3D activado. Úsao para traxectorias e estruturas que saen do plano do bosquexo.",
"help.sketch.mirror": "Reflicte curvas e puntos do bosquexo respecto dunha liña ou dun eixe e engade restricións de simetría. Úsao para debuxar a metade dun perfil simétrico e completalo.",
"help.sketch.move": "Move ou xira curvas e puntos do bosquexo, ou unha copia deles. Úsao para recolocar xeometría mantendo a súa forma e as súas restricións.",
"help.sketch.offset": "Crea unha copia dunha cadea de curvas a unha distancia dada, nun lado ou en ambos. Úsao para paredes, contornos e folgas; a distancia segue sendo unha cota editable.",
"help.sketch.paste": "Pega no bosquexo activo a xeometría de bosquexo que copiaches ou cortaches. Colócaa nun punto ou despráxaa unha distancia.",
"help.sketch.pattern.circular": "Copia xeometría do bosquexo arredor dun punto central, nun círculo completo ou nun ángulo dado. Úsao para círculos de parafusos, radios e dentes.",
"help.sketch.pattern.rectangular": "Copia xeometría do bosquexo en filas e columnas con separacións dadas. Úsao para grellas de furados, ranuras ou ventilacións.",
"help.sketch.point": "Coloca un punto de bosquexo. Úsao como referencia para cotas, restricións, centros de furados ou operacións posteriores.",
"help.sketch.point3d": "Coloca un punto no espazo, co Bosquexo 3D activado. Úsao como referencia para curvas e traxectorias 3D.",
"help.sketch.polygon.circumscribed": "Debuxa un polígono regular arredor dun círculo, de tamaño medido desde o seu centro ata o medio dun lado. Úsao cando se coñece a anchura entre planos, como nunha porca hexagonal.",
"help.sketch.polygon.edge": "Debuxa un polígono regular a partir dos dous extremos dun lado. Úsao cando se coñecen a lonxitude e a posición dun lado.",
"help.sketch.polygon.inscribed": "Debuxa un polígono regular dentro dun círculo, de tamaño medido desde o seu centro ata unha esquina. Úsao cando se coñece o tamaño entre esquinas.",
"help.sketch.project": "Trae arestas do modelo, caras, vértices e curvas doutros bosquexos a este bosquexo, proxectadas sobre o seu plano. Quedan ligadas e seguen o modelo cando cambia.",
"help.sketch.project_to_surface": "Proxecta curvas doutros bosquexos ao longo da normal deste bosquexo sobre unha cara, como curvas 3D ligadas. Úsao para poñer un logotipo, unha liña de división ou unha traxectoria sobre unha superficie curva.",
"help.sketch.rectangle.center": "Debuxa un rectángulo a partir do seu centro e dunha esquina. Úsao para contornos centrados nun punto, como a orixe.",
"help.sketch.rectangle.rounded": "Debuxa un rectángulo coas catro esquinas arredondadas a un mesmo raio. Úsao para placas, tapas e aberturas con esquinas arredondadas.",
"help.sketch.rectangle.three_point": "Debuxa un rectángulo a partir dun lado e dun punto do lado oposto. Úsao para rectángulos en ángulo cos eixes do bosquexo.",
"help.sketch.rectangle.two_point": "Debuxa un rectángulo a partir de dúas esquinas opostas. Úsao para os contornos de placas, bloques e rebaixes.",
"help.sketch.scale": "Escala curvas e puntos do bosquexo por un factor respecto dun punto base. Úsao para cambiar o tamaño dunha parte do bosquexo sen volver debuxala.",
"help.sketch.slot.arc_center": "Debuxa unha ranura curva dun ancho dado ao longo dun arco definido polo seu centro, inicio e fin. Úsao para ranuras de axuste arredor dun pivote.",
"help.sketch.slot.arc_three_point": "Debuxa unha ranura curva dun ancho dado ao longo dun arco por tres puntos. Úsao cando a traxectoria da ranura ten que pasar por puntos dados.",
"help.sketch.slot.center_point": "Debuxa unha ranura recta dun ancho dado desde o seu centro ata o centro dun arco extremo. Úsao para ranuras centradas nun punto.",
"help.sketch.slot.center_to_center": "Debuxa unha ranura recta dun ancho dado entre os centros dos seus dous arcos extremos. Úsao para ranuras acotadas de centro a centro, como as ranuras de axuste para parafusos.",
"help.sketch.slot.overall": "Debuxa unha ranura recta dun ancho dado desde un extremo exterior ata o outro. Úsao cando importa a lonxitude total da ranura.",
"help.sketch.spline.control_point": "Debuxa unha spline cúbica definida por puntos de control polos que non pasa. Úsao para curvas suaves e fluídas que moldeas movendo os puntos.",
"help.sketch.spline.control_point_5": "Debuxa unha spline de grao 5 definida por puntos de control. Úsao onde as curvas deben unirse cunha curvatura máis suave, por exemplo en superficies estilizadas visibles.",
"help.sketch.spline.fit_point": "Debuxa unha spline suave que pasa por cada punto que coloques, aberta ou pechada. Úsao para calcar unha forma a través de puntos coñecidos.",
"help.sketch.spline3d": "Debuxa unha curva suave no espazo a través de puntos, co Bosquexo 3D activado. Úsao para traxectorias de varrido e tendidos de cable que saen do plano do bosquexo.",
"help.sketch.spun_profile": "Crea no plano do bosquexo o contorno que describe un corpo ao xirar arredor dun eixe. Úsao para obter a silueta dunha peza torneada para unha revolución ou un debuxo.",
"help.sketch.text": "Escribe texto no bosquexo cunha fonte, altura e ángulo escollidos; as súas palabras poden seguir parámetros. Extrúeo ou grávao en relevo para etiquetas e letreiros.",
"help.sketch.transform": "Escala, xira e move xeometría do bosquexo arredor dun punto central nun só paso. Úsao para recolocar e redimensionar unha selección á vez.",
"help.sketch.trim": "Elimina a parte dunha curva entre os cruzamentos máis próximos ao redor de onde fas clic. Úsao para limpar liñas solapadas ata obter un perfil pechado.",
"help.solid.align": "Move os corpos seleccionados para que un punto, cara ou plano deles coincida cun punto, cara ou plano doutro lugar. Úsao para colocar unha peza contra outra sen medir o desprazamento.",
"help.solid.boundary_fill": "Crea sólidos a partir das rexións delimitadas por corpos ferramenta solapados, enchendo só as rexións que escollas. Úsao para construír unha forma a partir do espazo que varios corpos limitan xuntos.",
"help.solid.bounding_solid": "Crea unha caixa que envolve os corpos seleccionados, cunha marxe opcional. Úsao para ver o tamaño total dunha peza, ou como bloque en bruto do que se mecaniza.",
"help.solid.box": "Crea unha caixa a partir dunha lonxitude, largura e altura, desde un punto de esquina ou centrada nun punto. Úsao para un bloque rápido, un marcador de posición ou un corpo no que cortar operacións.",
"help.solid.chamfer": "Corta as arestas seleccionadas cun bisel plano da distancia que indiques. Úsao para romper arestas vivas ou para facilitar a entrada dun pasador ou dun parafuso.",
"help.solid.coil": "Crea un corpo helicoidal, como unha mola, a partir dun diámetro, voltas, altura ou paso e unha sección redonda ou cadrada. Úsao para molas, bobinas e cristas helicoidais.",
"help.solid.combine": "Une corpos, córtaos dun corpo de destino ou conserva só o volume que comparten, e pode manter os corpos ferramenta. Úsao para fusionar pezas, para cortar unha forma con outra ou para atopar onde se solapan dous corpos.",
"help.solid.cone": "Crea un cono a partir dun círculo de base e unha altura, ou un tronco de cono cando a parte superior tamén ten raio. Úsao para conicidades, funís, avellanados cónicos e puntas.",
"help.solid.cylinder": "Crea un cilindro a partir dun raio ou diámetro e unha altura, apoiado nun punto ao longo dun eixe. Úsao para eixes, pasadores, saíntes e pezas redondas en bruto.",
"help.solid.draft": "Inclina as caras seleccionadas segundo o ángulo que indiques, medido desde un plano neutro. Úsao en pezas moldeadas ou fundidas para que saian do molde.",
"help.solid.emboss": "Levanta perfís do bosquexo, como texto ou un logotipo, fóra dunha cara, ou húndeos nela. Úsao para letreiros, etiquetas e marcas en caras planas ou redondas.",
"help.solid.extrude": "Empurra un perfil de bosquexo cara ao 3D ao longo dunha distancia, engadindo ou quitando material. Úsao para converter un contorno plano nun bloque, un saínte ou unha cavidade.",
"help.solid.fillet": "Arredonda as arestas seleccionadas cunha transición circular suave do raio que indiques. Úsao para suavizar arestas vivas por resistencia, comodidade ou estética.",
"help.solid.hole": "Fai un furado redondo do diámetro que indiques nun punto escollido dunha cara. Úsao para folgas de parafusos, pasadores e outras aberturas redondas sinxelas.",
@@ -1425,20 +1653,60 @@
"help.solid.move": "Move ou xira os corpos seleccionados, ou unha copia deles, segundo a distancia e o ángulo que indiques. Úsao para recolocar un corpo ou para crear un segundo noutro lugar.",
"help.solid.offset_face": "Empurra as caras seleccionadas cara a dentro ou cara a fóra segundo a distancia que indiques, e as caras que as rodean seguen o movemento. Úsao para engrosar unha parede, afondar un rebaixe ou alzar un saínte sen editar o bosquexo.",
"help.solid.pattern.circular": "Repite os obxectos seleccionados arredor dun eixe, co número de copias e o ángulo total que indiques. Úsao para circunferencias de parafusos, radios, aletas e dentes.",
"help.solid.pattern.path": "Copia operacións ou corpos ao longo dunha traxectoria de bosquexo, por cantidade e separación. Úsao para furados ao longo dunha aresta curva ou pezas ao longo dun carril.",
"help.solid.pattern.rectangular": "Repite os obxectos seleccionados nunha ou en dúas direccións co número de copias e o espazado que indiques. Úsao para filas e grellas de furados, nervios, pasadores ou pés.",
"help.solid.pipe": "Crea un tubo redondo ao longo dunha traxectoria de curvas de bosquexo, macizo ou oco cun espesor de parede. Úsao para tubos, fíos, cables e carrís.",
"help.solid.press_pull": "Engade ou retira material ao arrastrar unha cara, ou arredonda as arestas ao arrastralas. Úsao para facer cambios rápidos directamente sobre o modelo.",
"help.solid.remove": "Quita os corpos seleccionados do deseño desde este punto da liña de tempo; os pasos anteriores seguen conservándoos. Úsao para descartar un corpo auxiliar, como unha ferramenta de corte que xa non fai falta.",
"help.solid.replace_face": "Move as caras planas seleccionadas a un plano ou a unha cara paralela, e o corpo medra ou encolle para chegar a el. Úsao para deixar unha cara a ras doutra peza ou dun plano de construción.",
"help.solid.revolve": "Fai xirar un perfil de bosquexo arredor dun eixe para crear un sólido redondo. Úsao para eixes de transmisión, pomos, cuncas e calquera peza redonda arredor dunha liña central.",
"help.solid.rib": "Engade unha parede delgada ao longo dunha curva de bosquexo aberta, chea ata as seguintes caras do corpo. Úsao para reforzar paredes e esquinas, por exemplo en pezas moldeadas ou impresas.",
"help.solid.scale": "Fai os corpos seleccionados máis grandes ou máis pequenos segundo un factor, igual en todas as direccións ou un por eixe. Úsao para cambiar o tamaño dunha forma importada ou para compensar a contracción.",
"help.solid.shell": "Baleira un sólido deixando paredes co espesor que indiques, e pode abrir as caras que escollas. Úsao para caixas, tapas e outras pezas de parede fina.",
"help.solid.sphere": "Crea unha esfera a partir dun raio ou diámetro arredor dun punto central. Úsao para bólas, pomos e extremos arredondados.",
"help.solid.split_body": "Corta un corpo en varios corpos cun plano, a cara doutro corpo ou unha liña de bosquexo. Úsao para facer pezas que se imprimen, mecanizan ou colorean por separado.",
"help.solid.split_face": "Divide as caras seleccionadas segundo un plano, a cara doutro corpo ou curvas de bosquexo, sen cortar o corpo. Úsao para dar a unha parte dunha cara o seu propio ángulo de desmoldaxe, cor ou desprazamento.",
"help.solid.sweep": "Arrastra un perfil de bosquexo ao longo dunha traxectoria para crear un sólido. Úsao para tubos, carrís, asas e calquera peza de sección constante que siga unha curva.",
"help.solid.thread": "Engade unha rosca métrica ISO a unha cara cilíndrica, como rosca cosmética ou cortada no corpo. Úsao para parafusos, furados roscados e pezas impresas con rosca.",
"help.solid.torus": "Crea un anel a partir dun raio maior arredor do seu eixe e un raio menor para a súa sección redonda. Úsao para xuntas tóricas, asas e contas redondas.",
"help.solid.web": "Engade unha parede delgada ao longo de cada curva de bosquexo aberta, cada unha chea ata as seguintes caras do corpo. Úsao para unha grella de paredes de apoio dentro de carcasas e bandexas.",
"help.surface.blend": "Crea unha superficie que une as arestas de dous corpos, tanxente ou continua en curvatura con ambos. Úsao para unir suavemente dúas superficies a través dun oco.",
"help.surface.boundary": "Crea unha superficie que enche un bucle de dúas a catro curvas de bosquexo, ou unha rede de curvas. Úsao para paneis de forma libre definidos polas súas arestas.",
"help.surface.extend": "Alonga unha superficie máis alá das súas arestas, nunha distancia ou ata un plano ou unha cara. Úsao para que as superficies se solapen antes de recortalas ou coselas.",
"help.surface.extrude": "Empurra curvas ou perfís do bosquexo ao longo dunha distancia ata formar unha superficie, só paredes, sen tapas. Úsao para paredes delgadas e para ferramentas de corte ou división.",
"help.surface.fair": "Suaviza o interior de caras de forma libre mentres as súas arestas quedan onde están. Úsao para igualar bultos e reflexos ondulados nunha superficie.",
"help.surface.loft": "Crea unha superficie que pasa por dúas ou máis seccións en orde, sen tapas. Úsao para carcasas e transicións entre formas diferentes.",
"help.surface.match": "Reconstrúe a aresta dunha superficie para que coincida coa aresta doutro corpo, con tanxencia ou curvatura coincidentes. Úsao para pechar suavemente unha xunta entre dúas superficies.",
"help.surface.offset": "Crea unha copia de caras a unha distancia ao longo das súas normais, como un corpo de superficie novo. Úsao para coberturas, folgas ou o outro lado dunha parede.",
"help.surface.patch": "Enche unha rexión do bosquexo ou un bucle pechado de arestas cunha cara, plana ou suavemente curva. Úsao para pechar furados nun corpo de superficie.",
"help.surface.reverse_normal": "Dá a volta ás caras dun corpo de superficie, de modo que o seu exterior mire ao outro lado. Úsao antes de engrosar ou coser cando as caras apuntan cara a dentro.",
"help.surface.revolve": "Xira curvas ou perfís do bosquexo arredor dun eixe ata formar unha superficie, sen tapas. Úsao para carcasas redondas como pantallas de lámpada, cuncas e boquillas.",
"help.surface.ruled": "Crea unha tira de rectas a partir dunha cadea de arestas, ao longo da normal da cara, da tanxente ou nun ángulo. Úsao para paredes de desmoldaxe, zonas de saída e superficies de partición.",
"help.surface.stitch": "Cose corpos de superficie ao longo das súas arestas compartidas, ata formar un sólido cando se pechan. Úsao para converter un conxunto de superficies nun só corpo.",
"help.surface.sweep": "Move curvas ou perfís do bosquexo ao longo dunha traxectoria ata formar unha superficie, sen tapas. Úsao para canaletas, molduras e outras formas delgadas que seguen unha traxectoria.",
"help.surface.thicken": "Dá espesor a un corpo de superficie e convérteo nun sólido. Úsao para facer pezas imprimibles ou mecanizables a partir de superficies.",
"help.surface.trim": "Corta unha superficie cun plano, outra superficie ou curvas de bosquexo, e conserva o lado que escollas. Úsao para cortar superficies á súa forma antes de coser.",
"help.surface.unstitch": "Separa caras dun corpo en corpos de superficie propios; un sólido desfaise en superficies. Úsao para retocar caras soas dun corpo.",
"help.surface.untrim": "Elimina furados dunha cara, ou restaura o seu contorno exterior aos límites naturais da superficie. Úsao para recuperar a superficie completa despois dun recorte.",
"help.third_party": "Licenzas de terceiros",
"help.timeline.compute_all": "Reconstrúe todas as operacións da liña de tempo desde o principio. Úsao para actualizar o modelo e ver que operacións fallan.",
"help.timeline.delete": "Elimina as operacións seleccionadas da liña de tempo; ao eliminar un bosquexo tamén se eliminan as operacións construídas a partir del. Úsao para quitar un paso que xa non se quere.",
"help.timeline.dependents": "Lista as operacións que se eliminarían con unha operación, e as que fallarían sen ela. Úsao antes de eliminar ou cambiar unha operación.",
"help.timeline.play": "Reproduce as operacións restantes unha a unha, cunha pausa de medio segundo despois de cada reconstrución. Executa este comando de novo ou preme Escape para deter a reprodución; Ir ao final salta de inmediato.",
"help.view.apply": "Xira a vista a unha dirección estándar como frontal, superior ou isométrica, ou a unha vista con nome gardada. Úsao para mirar o modelo desde un ángulo fixo.",
"help.view.delete": "Elimina unha vista con nome gardada. O modelo non cambia.",
"help.view.fit": "Fai zoom e desprázase para que todo o modelo, ou a selección, encha a vista. Úsao cando o modelo saíu da vista.",
"help.view.grid": "Mostra ou oculta a grella na ventá gráfica. Úsao como guía de tamaño e orientación ao modelar.",
"help.view.ground_shadow": "Mostra ou oculta a sombra do modelo no chan. Úsao para xulgar máis facilmente a altura e a posición.",
"help.view.home": "Devolve a vista á dirección de inicio e axusta o modelo. Úsao para volver rapidamente a unha vista coñecida.",
"help.view.list": "Lista as vistas con nome gardadas no deseño. Úsao para atopar unha vista que gardaches antes.",
"help.view.navigate": "Xira, despraza ou aplica zoom á vista por pasos, como un cuarto de volta á esquerda. Úsao para mover a cámara con precisión en vez de arrastrar.",
"help.view.navigation_bar": "Mostra ou oculta a barra de navegación na parte inferior da ventá gráfica. Ocúltaa para ter máis espazo e móstraa para acceder co rato ás ferramentas da vista.",
"help.view.rename": "Dálle un nome novo a unha vista con nome gardada. A vista en si non cambia.",
"help.view.save": "Garda a posición actual da cámara como unha vista con nome no deseño. Úsao para volver máis tarde ao mesmo ángulo, por exemplo para capturas de pantalla.",
"help.view.spin": "Orbita a vista arredor do modelo de forma continua ata o seguinte clic ou tecla. Úsao para presentar un modelo desde todos os lados.",
"help.view.tool": "Fixa unha ferramenta de cámara, órbita, desprazamento ou zoom, de modo que arrastrar co botón esquerdo do rato move a vista ata que a desactives. Úsao nun panel táctil ou sen botón central do rato.",
"help.view.visual_style": "Cambia como se debuxa o modelo: sombreado con ou sen arestas, arames ou con arestas ocultas. Usa arames para ver o interior e sombreado para un aspecto limpo.",
"history.sketch_under_constrained": "Subrestrinxido ({count} graos de liberdade)",
"history.sketch_under_constrained_one": "Subrestrinxido ({count} grao de liberdade)",
"hole_presets.confirm_delete": "Confirmar a eliminación",
@@ -1615,6 +1883,10 @@
"material.selection.mixed": "Materiais diferentes",
"measure.at": "En",
"measure.item": "Elemento {number}",
"measure.quick_copied": "Medición copiada",
"measure.quick_copy": "Fai clic para copiar a medición",
"measure.quick_edges": "{count} arestas",
"measure.quick_faces": "{count} caras",
"messages.ago_h": "hai {n} h",
"messages.ago_min": "hai {n} min",
"messages.ago_s": "hai {n} s",
@@ -1648,6 +1920,7 @@
"nav.hfss.help": "Alt+arrastrar co botón esquerdo desprázase, Shift+Alt+botón esquerdo fai zoom, Ctrl+arrastrar co botón esquerdo sobre un espazo baleiro orbita",
"nav.inventor.help": "Arrastrar co botón central desprázase, Shift+botón central orbita, Ctrl+botón central fai zoom, arrastrar co botón dereito orbita",
"nav.maya.help": "Alt+arrastrar co botón esquerdo orbita, Alt+botón central desprázase, Alt+botón dereito fai zoom; arrastrar co botón central tamén desprázase",
"nav.nx.help": "Arrastrar co botón central orbita, Shift+botón central desprázase (botón central + dereito de NX), Ctrl+botón central fai zoom (botón central + esquerdo de NX); arrastrar co botón dereito non move a cámara",
"nav.openscad.help": "Arrastrar co botón esquerdo sobre un espazo baleiro orbita, Shift+arrastrar co botón esquerdo selecciona por caixa, arrastrar a xeometría do bosquexo edítaa; arrastrar co botón dereito ou central desprázase, Shift+arrastrar co botón dereito ou central fai zoom",
"nav.perspective.sketch": "A edición de bosquexos usa a vista ortogonal. Remata o bosquexo para cambiar á perspectiva.",
"nav.right_drag_orbits.help": "Desactivado: arrastrar co botón dereito non move a cámara e o botón dereito só abre o menú contextual. Escoller a asignación do rato de SolidWorks desactívao.",
@@ -1767,6 +2040,11 @@
"not a move": "non é un movemento",
"not a number": "non é un número",
"open a sketch first": "abre primeiro un bosquexo",
"parameters.apply_live": "Aplicar cada cambio ao saír do seu campo",
"parameters.apply_live_tip": "Desactivado: os cambios agardan a Aplicar ou Aceptar, e entón o deseño reconstrúese unha soa vez para todos. Cancelar ou Esc descártaos.",
"parameters.held": "{count} cambios pendentes de Aplicar",
"parameters.held_hint": "Edita expresións e unidades. Os cambios agardan a Aplicar ou Aceptar.",
"parameters.held_one": "1 cambio pendente de Aplicar",
"parts.automatic_name": "automático",
"parts.dimension.across_flats": "Ancho entre planos",
"parts.dimension.bore": "Diámetro do furado",
@@ -1789,6 +2067,8 @@
"parts.family.set_screw": "Parafuso sen cabeza de hexágono interior, punta plana",
"parts.family.socket_head_cap_screw": "Parafuso de cabeza cilíndrica con hexágono interior",
"parts.family.washer": "Arandela plana",
"parts.holes": "Furados (opcional)",
"parts.placement_hint": "escolle un ou máis furados para asentar unha peza en cada un, ou Aceptar colócaa na orixe",
"pattern.alignment_2": "Aliñamento 2",
"pattern.alignment_hint": "O número inclúe o orixinal. Centrar equilibra as copias; Inverter escolle o lado da copia extra cando o total é par.",
"pattern.direction_1": "Dirección 1",
@@ -1862,6 +2142,8 @@
"prefs.ctrl_cmd": "Ctrl / Cmd",
"prefs.curved_surfaces": "Superficies curvas",
"prefs.curves": "Superficies curvas",
"prefs.dark_parts_shading": "Conservar a forma das pezas escuras",
"prefs.dark_parts_shading_help": "Sombrea a vista en luz lineal cunha luz de recheo suave do ceo, para que as caras escuras manteñan un degradado en vez de volverse negras",
"prefs.dead_zone_note": "A banda raiada é a zona morta: o movemento dentro dela ignórase.",
"prefs.default": "predeterminado",
"prefs.design": "Valores predeterminados do deseño",
@@ -1876,6 +2158,8 @@
"prefs.edges": "Arestas e sombreado",
"prefs.extend": "Estender",
"prefs.extra_navigation": "Ctrl+arrastrar co botón esquerdo no espazo baleiro orbita; mantén premida a barra espaciadora para desprazar.",
"prefs.extrude_view_isometric": "Cambiar a vista a isométrica ao abrir Extruír",
"prefs.extrude_view_return": "Volver á vista anterior ao pechar Extruír",
"prefs.follows_os": "Segue o sistema operativo",
"prefs.font": "Tipo de letra",
"prefs.font_fallback": "Os glifos que lle faltan ao tipo de letra escollido substitúense polos do tipo de letra integrado, así que ningunha etiqueta mostra unha caixa baleira.",
@@ -1891,6 +2175,7 @@
"prefs.graphics_card_auto": "Automático",
"prefs.graphics_card_missing": "A tarxeta gráfica gardada non está dispoñible; úsase Automático.",
"prefs.graphics_card_restart": "Aplícase despois de reiniciar SolidCraft. WGPU_ADAPTER_NAME anula esta opción.",
"prefs.graphics_card_unused": "A tarxeta gráfica gardada non se usou para esta xanela; a tarxeta en uso móstrase en Axuda › Acerca de e na barra de estado. Proba Automático ou define WGPU_ADAPTER_NAME cunha parte única do nome da tarxeta.",
"prefs.graphics_note": "Troca velocidade por suavidade. Cada opción mostra o seu efecto nunha mostra.",
"prefs.graphics_presets_note": "Os axustes predefinidos configuran xuntas as opcións de abaixo.",
"prefs.hide_constraint_glyphs_zoomed_out": "Ocultar as iconas de restricións ao reducir o zoom",
@@ -1905,6 +2190,8 @@
"prefs.history_sketches_note": "Con Bosquexos configurado en Baixo a súa operación, o Historial da esquerda lista cada bosquexo un nivel máis adentro, baixo a primeira operación construída a partir del, sempre que sexa o bastante ancho para mostrar os nomes. A liña de tempo da parte inferior mantén sempre a orde de creación.",
"prefs.history_sketches_under_feature": "Baixo a súa operación",
"prefs.hold_stop_snapping": "Manter premido para deixar de axustar",
"prefs.home_fit_size": "Tamaño de Inicio e Axustar",
"prefs.home_fit_size_note": "Canto da vista ocupa o modelo cando Inicio, Axustar, un deseño aberto ou un cambio de vista do navegador de vistas o encadran, estea ou non activado o axuste de abaixo. 100 %: ocupa a vista entre os paneis, a brúxula e a barra de navegación.",
"prefs.icons_only": "Só iconas",
"prefs.imported_file": "Ficheiro importado",
"prefs.in_browser": "No navegador",
@@ -1913,13 +2200,20 @@
"prefs.interface_language": "Idioma da interface",
"prefs.interface_note": "Como se ve SolidCraft e onde están as súas partes.",
"prefs.interval_minutes": "{n} min",
"prefs.invert_navigator_arrows": "Invertir as frechas de rotación do cubo de vistas",
"prefs.invert_navigator_arrows_note": "As frechas arredor do cubo fan orbitar a cámara na dirección na que apuntan, como en Fusion e Inventor: a frecha da esquerda apunta á dereita e move a cámara cara á dereita. Desactivado: unha frecha xira o cubo cara ao lado no que está, así que a frecha da esquerda move a cámara cara á esquerda. As frechas curvas de balanceo non se ven afectadas.",
"prefs.keep_work_on_tab_switch": "Manter abertos os diálogos e as ferramentas ao cambiar de deseño",
"prefs.keep_work_on_tab_switch_note": "Cada lapela de deseño conserva o seu diálogo ou ferramenta aberto, co que escolliches e escribiches nel, e a súa lapela da barra de ferramentas. Volven estar aí cando regresas ao deseño. Desactivado: cambiar de deseño cancélaos e mostra a lapela Modelo.",
"prefs.labels": "Etiquetas",
"prefs.language_system": "Sistema",
"prefs.layout": "Disposición",
"prefs.layout_note": "Compacta acopla os paneis aos bordos da xanela. A translucidez do navegador está dispoñible en Flotante. Cambia o lado do Asistente na páxina do Asistente.",
"prefs.left": "Esquerda",
"prefs.left_click": "Clic esquerdo",
"prefs.line_drag_draws_one": "Premer e arrastrar debuxa unha liña",
"prefs.line_drag_draws_one_note": "Na ferramenta Liña, premer, arrastrar e soltar debuxa unha liña desde onde se preme ata onde se solta, e remata alí. Os clics seguen debuxando unha cadea. Desactivado: un arrastre coloca un punto onde se solta, como fai un clic.",
"prefs.line_hover_tangent_arc": "Manter o punteiro quieto no último punto dunha liña para cambiar a un arco tanxente",
"prefs.line_hover_tangent_arc_note": "Na ferramenta Liña, unha vez debuxado un segmento, afástate do último punto da cadea, volve e mantén o punteiro quieto nel: o seguinte clic remata un arco tanxente, e o mesmo xesto volve ás liñas. Desactivado: manter o punteiro aí non fai nada.",
"prefs.linked_designs": "Deseños ligados",
"prefs.live_input": "Entrada en directo",
"prefs.live_preview": "Vista previa en directo",
@@ -1943,6 +2237,8 @@
"prefs.mouse_mapping": "Asignación do rato",
"prefs.navigation": "Navegación",
"prefs.navigation_note": "Como moven a vista o rato, o panel táctil e o rato 3D.",
"prefs.navigator_fit": "Axustar o modelo despois dun cambio de vista do navegador",
"prefs.navigator_fit_note": "Unha cara, esquina ou frecha do cubo de vistas, ou un eixe do gizmo, tamén mira ao centro do modelo desde a única distancia que o abarca por todos os lados (a súa esfera delimitadora). Inicio usa o mesmo zoom e centro mentres isto está activado, así que as vistas escollidas despois só xiran. Desactivado: a vista xira no sitio, conservando o seu punto de mira e o seu zoom.",
"prefs.network_host_remove": "Quitar",
"prefs.network_locations": "Permitir ubicacións de rede nos deseños",
"prefs.network_locations_note": "Desactivado: os ficheiros ligados dun deseño que están noutro ordenador (\\\\server\\share) só se abren desde os servidores listados aquí, ou despois de que permitas un cando se che pregunte.",
@@ -1955,6 +2251,8 @@
"prefs.origin_plane_names": "Nomes dos planos de orixe",
"prefs.origin_plane_names_note": "Nomes que se mostran no navegador, nos diálogos e nas listas. {top} é XY, {front} é XZ e {right} é YZ, co eixe Z cara arriba. Os comandos, os scripts e os deseños gardados manteñen XY, XZ e YZ.",
"prefs.overall_speed": "Velocidade xeral",
"prefs.parameter_list_rows": "Filas da lista de parámetros",
"prefs.parameter_list_rows_tip": "A frecha cara abaixo nun campo de valor baleiro lista os parámetros, primeiro os favoritos, ata este número. Un número menor mantén áxil a lista nun deseño grande.",
"prefs.persistent_ribbon_pressed": "Resaltar as ordes activas da cinta",
"prefs.persistent_ribbon_pressed_help": "Resalta as ordes da cinta mentres os seus efectos están activados. Desactívao para manter o aspecto neutro e a axuda das ordes anteriores.",
"prefs.perspective_fov": "Campo de visión",
@@ -1984,9 +2282,13 @@
"prefs.quality_fastest": "máis rápido",
"prefs.quality_slowest": "máis lento",
"prefs.quality_smoother": "máis suave",
"prefs.quick_measure": "Medición rápida na esquina da vista",
"prefs.quick_measure_note": "O tamaño da selección na esquina inferior dereita da vista: a lonxitude dunha aresta, ou Ø e R se é redonda, a área dunha cara, a posición dun punto, a distancia e o ángulo entre dous elementos, o total de varias arestas ou caras. Un clic cópiao.",
"prefs.render_previous_geometry_budget": "Usar o orzamento de xeometría anterior da vista previa de Render",
"prefs.render_previous_geometry_budget_help": "Restaura o límite fixo de xeometría anterior (512 MiB en escritorio de 64 bits, 128 MiB noutros casos) en lugar do orzamento baseado no dispositivo.",
"prefs.reports_saved": "{n} gardados",
"prefs.ribbon_click_ends_tool": "Facer clic no botón da ferramenta en uso remata a ferramenta",
"prefs.ribbon_click_ends_tool_note": "Un clic no botón resaltado da cinta da ferramenta de bosquexo en uso remata a ferramenta, e así os clics na vista volven seleccionar. Desactivado: o clic inicia a ferramenta de novo.",
"prefs.ribbon_reveal": "Mostrar os resultados da busca na cinta",
"prefs.ribbon_reveal_note": "Ao pasar o punteiro sobre un resultado en Buscar ordes, móstrase onde está a orde na cinta: a súa lapela, o seu botón ou a súa fila no despregable dun panel. Unha orde iniciada desde a busca escintila alí, e unha orde en execución desde un despregable marca o seu panel.",
"prefs.right_click": "Clic dereito",
@@ -2016,6 +2318,8 @@
"prefs.sketch_exit_view.previous": "Volver á vista anterior",
"prefs.sketch_exit_view.unless_rotated": "Volver, salvo que se xirase",
"prefs.sketch_exit_view_note": "A onde vai a vista despois de Finalizar o bosquexo, Cancelar ou un dobre Esc.",
"prefs.sketch_face_activates_part": "Crear un bosquexo na cara dunha peza activa esa peza",
"prefs.sketch_face_activates_part_note": "Un bosquexo iniciado na cara dun corpo doutro compoñente activa primeiro ese compoñente, de modo que o bosquexo lle pertence e queda con esa peza no navegador. Despois a peza segue activa. Desactivado: o bosquexo pertence ao compoñente activo.",
"prefs.sketch_open_look_at": "Xirar para mirar cara ao bosquexo cando se abre",
"prefs.sketch_open_look_at_note": "Desactivado: crear ou editar un bosquexo deixa a vista tal e como está. Mirar cara a orienta a vista cara ao bosquexo cando o queres.",
"prefs.sketch_recent_snap": "Axustar automaticamente aos centros e puntos medios recentes",
@@ -2029,6 +2333,8 @@
"prefs.sketch_tab_always_note": "A lapela Bosquexo permanece na cinta de opcións, xusto despois de Modelo, mentres non haxa ningún bosquexo aberto. As súas ferramentas de debuxo inician entón un bosquexo no plano ou na cara seleccionados, ou no plano que escollas a continuación, coa ferramenta lista nel.",
"prefs.sketch_tracking_guides": "Guías de aliñamento de centro e punto medio",
"prefs.sketch_tracking_guides_note": "Pasa o rato sobre o centro dun círculo ou o punto medio dunha liña recta e despois móvete en horizontal ou en vertical para mostrar unha guía punteada temporal.",
"prefs.sketch_tracking_points": "Guías de aliñamento desde extremos e esquinas ao debuxar",
"prefs.sketch_tracking_points_note": "Mentres unha ferramenta de debuxo agarda un punto, ao pasar o cursor sobre o extremo dunha liña ou dun arco, unha esquina de rectángulo ou un punto libre aparece a mesma guía de puntos temporal que para un centro ou un punto medio. Desactivado: só centros e puntos medios.",
"prefs.sketching": "Creación de bosquexos",
"prefs.snap_drawing_note": "Ao debuxar ou arrastrar un punto de bosquexo.",
"prefs.source": "Fonte",
@@ -2045,6 +2351,24 @@
"prefs.status_error": "Erro",
"prefs.status_selected": "Seleccionado",
"prefs.status_warning": "Aviso",
"prefs.structure.appearance": "Aparencia",
"prefs.structure.appearance_note": "Cores, texto e accesibilidade.",
"prefs.structure.in_profile": "No perfil",
"prefs.structure.layout": "Disposición",
"prefs.structure.layout_note": "Onde se colocan as partes da xanela.",
"prefs.structure.look": "Estilo",
"prefs.structure.measure_pointer": "Medición e punteiro",
"prefs.structure.mouse3d": "Rato 3D",
"prefs.structure.mouse3d_note": "SpaceMouse e SpaceNavigator.",
"prefs.structure.navigation_note": "Rato e panel táctil. O rato 3D ten a súa propia páxina.",
"prefs.structure.profile": "Perfil",
"prefs.structure.profile_edited": "Cambiado desde que se gardou",
"prefs.structure.profile_hover": "Gardado nos perfís de axustes",
"prefs.structure.scale_percent": "{percent}%",
"prefs.structure.sketch": "Bosquexo",
"prefs.structure.tools": "Ferramentas",
"prefs.structure.tools_note": "Como se comportan as ferramentas de modelado.",
"prefs.structure.work": "Traballo",
"prefs.supersampling_brief": "Debuxa a vista máis grande e redúcea con filtrado: moi nítida, pero máis pesada.",
"prefs.tab_accent_note": "O realce segue a pestana activa",
"prefs.theme_file": "ficheiro de tema",
@@ -2056,6 +2380,16 @@
"prefs.theme_follow_off": "Desactivado",
"prefs.theme_follow_stop": "Deixar de seguir",
"prefs.theme_import_hint": "Fai clic para escoller un ficheiro de tema, solta un aquí ou preme Ctrl+V (Cmd+V nun Mac) con un tema copiado",
"prefs.theme_option_opacity": "Opacidade",
"prefs.theme_option_opacity_help": "Axusta a opacidade dos paneis flotantes. Un mínimo de lexibilidade protexe o texto sobre as cores da ventá gráfica.",
"prefs.theme_option_tab_colours": "Cores das lapelas",
"prefs.theme_option_tab_colours_help": "Usa as cores de panel e de ventá gráfica deste tema para cada lapela da cinta.",
"prefs.theme_option_tab_fade_ms": "Transición entre lapelas",
"prefs.theme_option_tab_fade_ms_help": "Funde as cores do panel e da ventá gráfica ao cambiar de lapela. Cero cambia ao instante.",
"prefs.theme_options_badge": "Opcións",
"prefs.theme_options_more": "Máis · {count}",
"prefs.theme_options_reset": "Restablecer",
"prefs.theme_options_unavailable": "Non dispoñible neste dispositivo",
"prefs.theme_paste": "Pegar tema",
"prefs.theme_paste_none": "O portapapeis non contén ningún tema de SolidCraft",
"prefs.timeline_half_hour": "−30 min",
@@ -2077,6 +2411,8 @@
"prefs.under_cursor": "Baixo o cursor",
"prefs.units_precision": "Unidades e precisión",
"prefs.updates": "Actualizacións",
"prefs.value_boxes_in_view": "Mostrar os valores xunto ás súas asas na vista",
"prefs.value_boxes_in_view_tip": "O valor dunha orde (Distancia, Raio…) nunha caixa xunto á súa asa, sobre o modelo. Desactivado: escríbese na xanela da orde, que toma o teclado despois de escoller, e nada cobre o modelo.",
"prefs.view": "Comportamento da vista",
"prefs.view_confirm_corner": "Aceptar e Cancelar na esquina da vista",
"prefs.view_confirm_corner_note": "Mentres hai un diálogo ou un bosquexo aberto, unha marca de verificación e unha cruz na parte superior dereita da vista fan o mesmo que Aceptar e Cancelar do diálogo, ou finalizan e cancelan o bosquexo. O navegador da vista desprázase cara abaixo, debaixo delas.",
@@ -2086,6 +2422,12 @@
"prefs.viewport_background": "Fondo",
"prefs.viewport_background_colour": "Cor",
"prefs.viewport_background_theme": "Degradado do tema",
"prefs.viewport_section_status": "Mostrar o estado da sección na ventá gráfica",
"prefs.viewport_section_status_help": "Mostra o axuste da sección na ventá gráfica. Esc e o botón activo da cinta desactívano. Desactiva para manter os controis de sección anteriores.",
"prefs.viewport_status_details": "Detalles da ventá gráfica en directo",
"prefs.viewport_status_details_help": "Edita os axustes activos de análise e de sección en tarxetas de detalles estándar. Desactiva para restaurar as lendas de análise de só lectura e o diálogo Sección.",
"prefs.viewport_status_summary": "Agrupar os elementos de estado da ventá gráfica",
"prefs.viewport_status_summary_help": "Agrupa tres ou máis elementos de estado da ventá gráfica nun só distintivo de resumo. Desactiva para manter todos os elementos na fila completa.",
"prefs.wheel": "Roda",
"prefs.wheel_trackpad": "Roda e panel táctil",
"prefs.workspace": "Espazo de traballo",
@@ -2964,7 +3306,9 @@
"render.output_ready": "Listo para renderizar",
"render.output_run_check": "Executar a comprobación",
"render.output_size_limit": "{method}: ata {dimension} px por lado e {pixels} píxeles. Tamaño máximo que cabe: {width} × {height}.",
"render.output_size_method_profile": "Para renderizar {width} × {height}, escolle {method} co perfil de recursos de CPU {profile}, ou un tamaño menor.",
"render.output_size_ok": "Tamaño correcto · {width} × {height} px",
"render.output_size_profile": "Para renderizar {width} × {height}, escolle o perfil de recursos de CPU {profile}, ou un tamaño menor.",
"render.output_swap_orientation": "Intercambiar largura e altura",
"render.output_tools_inspector": "Edita o tamaño e o formato no inspector de Saída.",
"render.output_view_image": "Ver a imaxe",
@@ -3177,6 +3521,7 @@
"render.size_custom": "Personalizado…",
"render.size_full_hd": "Full HD",
"render.size_hd": "HD",
"render.size_needs_profile": "{size} · necesita {profile}",
"render.size_presets": "Axustes predefinidos de tamaño",
"render.size_presets_pending": "Chegará co editor de Saída",
"render.size_preview": "Vista previa",
@@ -3464,6 +3809,24 @@
"sheet.flange_type_contour": "Contorno",
"sheet.flange_type_edge": "Aresta",
"sheet.no_body": "non hai ningún corpo de chapa: crea un con Pestana > Base, ou converte unha placa en chapa con Converter en chapa (escolle a súa cara plana grande)",
"sheet.personal_rules.confirm_delete": "Confirmar a eliminación",
"sheet.personal_rules.delete": "Eliminar",
"sheet.personal_rules.delete_prompt": "Eliminar esta regra persoal? As regras que xa están en deseños non cambian.",
"sheet.personal_rules.full": "A biblioteca persoal xa contén 64 regras.",
"sheet.personal_rules.invalid_name": "Introduce un nome curto sen saltos de liña nin caracteres de control.",
"sheet.personal_rules.invalid_values": "Completa os valores da regra: cada un debe poder calcularse neste deseño, cun espesor positivo e un factor K de 0 a 1.",
"sheet.personal_rules.missing": "A regra persoal seleccionada xa non está dispoñible.",
"sheet.personal_rules.name": "Nome da regra",
"sheet.personal_rules.name_exists": "Xa existe unha regra persoal con este nome. Usa un nome diferente.",
"sheet.personal_rules.name_hint": "Un nome único",
"sheet.personal_rules.overwrite": "Gardar os cambios na regra persoal seleccionada",
"sheet.personal_rules.rename": "Renomear",
"sheet.personal_rules.rule": "Regra persoal",
"sheet.personal_rules.save": "Gardar como nova",
"sheet.personal_rules.scope": "Gárdase no teu perfil para todos os deseños.",
"sheet.personal_rules.select": "Selecciona unha regra",
"sheet.personal_rules.title": "Regras persoais",
"sheet.personal_rules.unsupported": "Esta regra ten valores que esta versión non pode usar.",
"shortcut.json_error": "os parámetros deben estar en formato JSON: {error}",
"shortcut.no_command": "non existe o comando `{id}`; o texto anterior ao JSON debe ser un ID de comando",
"shortcut.pin": "Fixar na parte superior da caixa S",
@@ -3500,8 +3863,10 @@
"sketch_text.align_right": "Dereita",
"sketch_text.bold": "Negra",
"sketch_text.builtin_font": "{family} (integrado)",
"sketch_text.formula": "Comeza con = para construír as palabras a partir de parámetros: ='W' + number(Width)",
"sketch_text.italic": "Cursiva",
"sketch_text.loading_fonts": "Buscando os tipos de letra instalados…",
"sketch_text.no_bold": "O tipo de letra integrado non ten versión en negra: escolle un tipo de letra instalado",
"sketch_text.on_path": "O texto segue a súa traxectoria: a curva colócao",
"sketch_text.path_clear": "Separar o texto da súa curva",
"sketch_text.path_hint": "Unha curva do bosquexo que segue o texto: fai clic aquí e despois na curva",
@@ -3640,6 +4005,8 @@
"ui.3d_mouse_section": "Rato 3D",
"ui.3d_mouse_show_in_view": "Mostrar o rato 3D na vista 3D",
"ui.3d_mouse_show_in_view_tip": "Unha imaxe do teu rato 3D na esquina inferior esquerda que se move cando o moves.",
"ui.3d_mouse_sketch_orbit": "Xirar os bosquexos co rato 3D",
"ui.3d_mouse_sketch_orbit_tip": "O rato 3D tamén xira a vista mentres hai un bosquexo aberto e visto de fronte, como pode facelo o rato. Desactivado: despraza o bosquexo e aplícalle zoom ata que inclines a vista.",
"ui.3d_mouse_skip": "O meu dispositivo non fai isto",
"ui.3d_mouse_skip_tip": "Omite este movemento nos dous sentidos; a calibración déixao fóra.",
"ui.3d_mouse_speed": "Velocidade do rato 3D",
@@ -3708,6 +4075,7 @@
"ui.agent_chat_auth_terminal": "Executa isto nun terminal e despois preme Conectar de novo:",
"ui.agent_chat_auth_title": "Iniciar sesión no axente",
"ui.agent_chat_cancel": "Cancelar",
"ui.agent_chat_cannot_start": "Instalado, pero non se inicia: {error}",
"ui.agent_chat_changes": "Cambios: {n}, un só paso de desfacer",
"ui.agent_chat_changes_n": "{n} cambios",
"ui.agent_chat_changes_of": "{n}/{limit} cambios",
@@ -3800,9 +4168,12 @@
"ui.agent_chat_queued_stopped": "Na cola (detido, sen enviar)",
"ui.agent_chat_refresh": "Actualizar",
"ui.agent_chat_refused": "Non permitido ao axente: {reason}",
"ui.agent_chat_reinstall": "{agent} está instalado ({program}), pero non se iniciou cando SolidCraft o comprobou: {error}\nPode que a instalación estea incompleta ou feita para outro tipo de ordenador. Instálao de novo con `{install}`, comproba que mostra a súa versión nun terminal e preme Actualizar.",
"ui.agent_chat_remove": "Quitar da cola",
"ui.agent_chat_remove_file": "Quitar desta mensaxe",
"ui.agent_chat_remove_imported": "Quitar desta mensaxe; a peza queda no deseño (Desfacer quítaa)",
"ui.agent_chat_reply_cut_off": "A resposta chegou ao seu límite de lonxitude antes de acabar, así que pode estar incompleta. Pídelle ao axente que continúe, ou que dea unha resposta máis curta.",
"ui.agent_chat_reply_declined": "O modelo rexeitou responder a esta mensaxe.",
"ui.agent_chat_retry": "Reintentar",
"ui.agent_chat_right": "Dereita",
"ui.agent_chat_save": "Gardar",
@@ -3861,12 +4232,17 @@
"ui.ai_copy_suffix": "copia",
"ui.ai_custom_url": "URL personalizado",
"ui.ai_default": "Predeterminado",
"ui.ai_edit": "Editar",
"ui.ai_edit_agent_title": "Editar axente",
"ui.ai_edit_gone": "Este axente quitouse, así que non hai nada que gardar.",
"ui.ai_edit_tip": "Cambia o nome, a orde ou o punto de acceso deste axente. A clave gardada segue oculta.",
"ui.ai_http_busy": "o punto de acceso está ocupado ou superou o seu límite; téntao de novo máis tarde",
"ui.ai_http_key": "o punto de acceso rexeitou a clave: compróbaa en Preferencias > IA",
"ui.ai_http_not_found": "non existe ese punto de acceso ou modelo: comproba o URL base e o nome do modelo",
"ui.ai_http_too_large": "a conversa é demasiado grande para este punto de acceso; comeza un chat novo",
"ui.ai_key": "Clave da API",
"ui.ai_key_hint": "opcional; gárdase no chaveiro do sistema",
"ui.ai_key_keep_hint": "déixao baleiro para manter a clave gardada",
"ui.ai_key_needs_https": "A clave só se envía por HTTPS ou a este ordenador.",
"ui.ai_key_note": "Gárdase no chaveiro do sistema, nunca nos axustes de SolidCraft. Déixaa baleira para un servidor local.",
"ui.ai_keychain_error": "O chaveiro do sistema rexeitouno: {error}",
@@ -3893,11 +4269,15 @@
"ui.ai_permissions": "Permisos",
"ui.ai_preset": "Axuste predefinido",
"ui.ai_protocol": "Protocolo",
"ui.ai_reasoning_effort": "Esforzo de razoamento",
"ui.ai_reasoning_effort_field_hint": "baleiro = valor predeterminado do provedor",
"ui.ai_reasoning_effort_hint": "Opcional. Envíase ao punto de acceso como `reasoning_effort`; os valores aceptados difiren segundo o provedor (por exemplo `low`, `high` ou `max`). SolidCraft nunca substitúe un valor que definas aquí. Déixao baleiro para non enviar nada e manter o valor predeterminado do provedor.",
"ui.ai_remove": "Quitar",
"ui.ai_request_timed_out": "O modelo tardou máis de {seconds} s. Podes aumentar o tempo límite da solicitude deste punto de acceso en Preferencias › Asistente.",
"ui.ai_request_timeout": "Tempo límite da solicitude",
"ui.ai_request_timeout_hint": "Canto pode tardar unha solicitude ao modelo neste punto de acceso, de 30 s a unha hora. Aumenta o valor para un modelo local lento.",
"ui.ai_reset": "Restablecer",
"ui.ai_save": "Gardar",
"ui.ai_settings": "Axustes de IA…",
"ui.ai_show_features": "Mostrar as funcións de IA",
"ui.ai_show_features_note": "O chat co axente: un panel onde un axente de programación que xa usas, ou un punto de acceso de modelo que escollas, traballa no deseño aberto. Desactivado: sen botón de IA, atallo, entrada de menú nin panel, e non se busca nin se inicia nada.",
@@ -4057,6 +4437,7 @@
"ui.dark": "Escuro",
"ui.default_modelling_orientation": "Orientación de modelado predeterminada",
"ui.delete": "Eliminar",
"ui.delete_select_first": "Selecciona primeiro o que queres eliminar: operacións, corpos, compoñentes ou xeometría do bosquexo",
"ui.depth": "Profundidade",
"ui.design": "Deseño",
"ui.design_properties.author": "Autor",
@@ -4071,6 +4452,40 @@
"ui.design_properties.project": "Proxecto",
"ui.design_properties.revision": "Revisión",
"ui.design_saved": "Gardado en {path}",
"ui.details_access_caption": "As caras mostran se unha ferramenta pode chegar a elas desde a dirección escollida.",
"ui.details_angle": "Ángulo",
"ui.details_continuity_caption": "Edita a xunta seleccionada. As outras xuntas manteñen os seus propios axustes.",
"ui.details_continuity_stale": "Xeometría anterior: volve executar a análise para editar ou encadrar esta xunta.",
"ui.details_copy_list": "Copiar a lista",
"ui.details_curvature": "Tolerancia de curvatura",
"ui.details_curvature_caption": "As caras coloréanse segundo o seu raio de curvatura local.",
"ui.details_direction": "Dirección da ferramenta",
"ui.details_draft_caption": "As caras coloréanse segundo o seu ángulo coa dirección de extracción.",
"ui.details_edit_seam": "Editar a xunta",
"ui.details_fixture": "Mostra de compoñente — só datos de exemplo",
"ui.details_fixture_caption": "Mostra de compoñente con valores ilustrativos; non é un resultado do modelo.",
"ui.details_fixture_problem": "Exemplo de resultado cun problema",
"ui.details_fixture_readout": "Exemplo de valor medido",
"ui.details_flip": "Inverter",
"ui.details_gap": "Separación",
"ui.details_hatch": "Raiar as caras cortadas",
"ui.details_jump": "Salto de curvatura",
"ui.details_key": "Lenda",
"ui.details_offset": "Desprazamento",
"ui.details_plane": "Plano",
"ui.details_pull": "Dirección de extracción",
"ui.details_radius": "Raio",
"ui.details_readout": "Lectura",
"ui.details_samples": "Mostras",
"ui.details_seam": "{body} · Aresta {edge}",
"ui.details_settings": "Axustes",
"ui.details_sharp_gap": "Quebra ou separación",
"ui.details_show_all": "Mostrar todos ({count})",
"ui.details_smooth": "Suave",
"ui.details_stripes": "Raias",
"ui.details_target": "Encadrar a xeometría",
"ui.details_worst_seams": "Peores xuntas",
"ui.details_zebra_caption": "As raias reflectidas mostran con que suavidade se unen as caras.",
"ui.diameter": "Diámetro",
"ui.dimension": "Cota",
"ui.direct_interaction": "Interacción directa",
@@ -4115,6 +4530,7 @@
"ui.edit_in_place_saved_elsewhere": "A peza gardouse noutro ficheiro; a ensamblaxe segue ligando {name}",
"ui.edit_in_place_wait": "Agarda a que remate o que se está a executar no deseño",
"ui.edit_section_analysis": "Editar a análise de sección",
"ui.edit_sketch_empty": "Non hai bosquexos para editar",
"ui.ellipse": "Elipse",
"ui.emboss_wrap_note": "Os perfís de liñas ortogonais tanxentes a un cilindro compatible envólvense automaticamente. Escolle unha parede para elixir un destino.",
"ui.end_radius": "Raio final",
@@ -4125,12 +4541,15 @@
"ui.equation_explicit": "Explícita",
"ui.equation_form": "Forma",
"ui.equation_note": "A variable é un número sen unidade: sin(t) tómaa en radiáns. Un resultado sen unidade está na unidade do deseño.",
"ui.equation_note_range": "A variable é unha lonxitude, igual que o seu intervalo: combínaa con parámetros de lonxitude e divídea entre unha lonxitude para sin(). Un resultado sen unidade está na unidade do deseño.",
"ui.equation_parametric": "Paramétrica",
"ui.equation_variable_unit": "A variable ten a unidade do intervalo",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Raio equivalente",
"ui.expand": "Expandir",
"ui.explode_needs_two_components": "A vista explosionada separa compoñentes, así que o deseño necesita dous ou máis (Compoñente novo, Inserir deseño ou Crear compoñentes a partir de corpos)",
"ui.exportDxf": "Exportar DXF…",
"ui.export_ellipsis_keymap": "Exportar…",
"ui.export_keymap_tip": "Teclas, favoritos da caixa S e a barra de ferramentas, como un ficheiro",
@@ -4299,12 +4718,14 @@
"ui.joints": "Unións",
"ui.keyboard_shortcuts": "Atallos de teclado",
"ui.language": "Idioma",
"ui.lasso_select": "Lazo (arrastra un bucle a man alzada: colle o que queda totalmente dentro)",
"ui.layout_compact": "Compacta",
"ui.layout_floating": "Flotante",
"ui.length": "Lonxitude",
"ui.length_decimals": "Decimais das lonxitudes",
"ui.light": "Claro",
"ui.line": "Liña",
"ui.line_arc_hint": "Arco tanxente: fai clic no final do arco. Mantén o punteiro quieto de novo no último punto para volver ás liñas; clic dereito ou Esc para finalizar",
"ui.link_copies": "Ligar copias idénticas",
"ui.link_copies_keep": "Manter",
"ui.link_copies_link": "Ligar",
@@ -4393,6 +4814,7 @@
"ui.part_size_shared": "Reconstrúe a peza, substituíndo as operacións engadidas. Actualízanse todas as ocorrencias deste compoñente.",
"ui.paste": "Pegar",
"ui.path": "Traxectoria",
"ui.pattern_object_type_tip": "Corpos: formas sólidas, escollidas na vista ou no Navegador; cada un cópiase enteiro.\nOperacións: pasos do Historial, como unha extrusión ou un furado, escollidos no Historial ou nunha cara que crearon; repítese o paso.\nUn bosquexo non é ningunha das dúas cousas: repite as súas curvas co Patrón ou a Simetría do propio bosquexo, ou extrúeo primeiro.",
"ui.pattern_on_path": "Patrón nunha traxectoria",
"ui.perforate_margin_default": "a partir do diámetro",
"ui.perforate_pitch": "Paso",
@@ -4419,12 +4841,17 @@
"ui.plugins_skipped": "Non se puido ler {count} cartafol(es).",
"ui.plugins_version": "{version}",
"ui.point": "Punto",
"ui.point_cloud_add_filter": "Engadir filtro…",
"ui.point_cloud_auto_range": "Intervalo automático",
"ui.point_cloud_color_by": "Colorear por",
"ui.point_cloud_file_colors": "Cores do ficheiro",
"ui.point_cloud_filter_by": "Filtrar por",
"ui.point_cloud_height_high": "Máis alto",
"ui.point_cloud_height_low": "Máis baixo",
"ui.point_cloud_legend_filter": "Mostrado e oculto na lenda de arriba",
"ui.point_cloud_no_file_colors": "O ficheiro non ten cores",
"ui.point_cloud_pause": "Pausa",
"ui.point_cloud_play": "Reproducir",
"ui.point_cloud_single_color": "Cor única",
"ui.point_cloud_size": "Tamaño do punto",
"ui.point_cloud_units": "Unidades do ficheiro",
@@ -4433,9 +4860,9 @@
"ui.polygon": "Polígono",
"ui.preferences": "Preferencias",
"ui.press_a_key": "preme unha tecla…",
"ui.print_face_body_not_sent": "O corpo desa cara non se envía: engádeo primeiro a Corpos",
"ui.print_face_cleared": "{body}: cara de impresión quitada",
"ui.print_face_input": "Cara de impresión",
"ui.print_face_one_body": "Unha cara de impresión pertence a un só corpo: envía ese corpo só para cambiala",
"ui.print_face_pick": "Selecciona unha cara plana dun corpo sólido para facela a cara de impresión",
"ui.print_face_set": "{body}: cara de impresión definida; Enviar ao laminador apoia o corpo sobre ela",
"ui.profile": "Perfil",
@@ -4453,6 +4880,7 @@
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Medindo…",
"ui.properties.measuring_bodies": "Medindo… {done} de {total} corpos",
"ui.properties.measuring_failed": "A medición detívose antes de rematar.",
"ui.properties.principal_axis": "Eixe principal {number}",
"ui.properties.principal_moments": "Momentos principais",
@@ -4520,6 +4948,7 @@
"ui.selectOther": "Seleccionar outro…",
"ui.selectTangentChain": "Seleccionar cadea tanxente",
"ui.select_all": "Seleccionar todo",
"ui.select_components_by_face": "Seleccionar compoñentes (unha cara escolle o seu compoñente)",
"ui.selection": "Selección",
"ui.selection_modifiers": "Modificadores de selección",
"ui.selection_shift_add_only": "Maiús+clic engade sen quitar",
@@ -4561,6 +4990,11 @@
"ui.sketch_intersect_selection_filter": "Filtro de selección",
"ui.sketch_modifiers": "Modificadores de bosquexo",
"ui.sketch_project_geometry": "Xeometría",
"ui.sketch_report.all_constrained": "Todo está totalmente restrinxido.",
"ui.sketch_report.dof": "Graos de liberdade",
"ui.sketch_report.loose": "Non totalmente restrinxido",
"ui.sketch_report.status": "Estado",
"ui.sketch_report.title": "Informe do bosquexo",
"ui.sketch_scale": "Escala do bosquexo",
"ui.sketches": "Bosquexos",
"ui.slice": "Laminar",
@@ -4656,12 +5090,15 @@
"ui.view_angles": "Ángulos da vista",
"ui.view_angles_convention": "Graos arredor do eixe cara arriba. A guiñada 0° é a vista frontal, 90° a esquerda, −90° a dereita, 180° a posterior; un cabeceo de 90° é a vista superior; un balanceo positivo fai xirar o modelo en sentido horario.",
"ui.view_angles_help": "Mostra o cabeceo, a guiñada e o balanceo da vista en graos e a súa proxección baixo o indicador de orientación. Fai clic na lectura para escribir ángulos exactos.",
"ui.view_angles_lock": "Bloquear {axis}",
"ui.view_angles_ortho": "Orto",
"ui.view_angles_persp": "Persp.",
"ui.view_angles_pitch": "Cabeceo",
"ui.view_angles_readout": "Cabeceo {pitch} · Guiñada {yaw} · Balanceo {roll}",
"ui.view_angles_roll": "Balanceo",
"ui.view_angles_unlock": "Desbloquear {axis}",
"ui.view_angles_yaw": "Guiñada",
"ui.view_angles_zero": "Poñer {axis} a 0°",
"ui.view_centre": "Centro da vista",
"ui.viewport_status_clear": "Desactivar {name}",
"ui.viewport_status_clear_hint": "Desactivar {name} · Esc",
@@ -4670,7 +5107,14 @@
"ui.viewport_status_key": "Mostrar a lenda de {name}",
"ui.viewport_status_minimum_radius": "Raio mínimo",
"ui.viewport_status_pairs": "{count} pares",
"ui.viewport_status_section_hatch": "{setting} · raiado",
"ui.viewport_status_section_plane": "Plano actual",
"ui.viewport_status_section_tilted": "inclinado · {offset}",
"ui.viewport_status_stripes": "{count} raias",
"ui.viewport_status_summary_clear": "Desactivar todo",
"ui.viewport_status_summary_heading": "Nesta vista",
"ui.viewport_status_summary_label": "{name} e {count} elementos máis",
"ui.viewport_status_summary_more": "+{count}",
"ui.viewport_theme_follow": "Seguir o tema",
"ui.visual_shaded_hidden_edges": "Sombreado con arestas ocultas",
"ui.visual_shaded_with_edges": "Sombreado con arestas",
+480 -11
View File
File diff suppressed because it is too large Load Diff
+446 -1
View File
@@ -60,6 +60,7 @@
"BLEND SURFACE": "PRIJELAZNA PLOHA",
"BOUNDARY SURFACE": "GRANIČNA PLOHA",
"BROWSER": "STABLO MODELA",
"Back to the original order": "Natrag na izvorni redoslijed",
"Ball": "Kuglasti",
"Bar": "Šipka",
"Base Center": "Središte osnove",
@@ -595,6 +596,8 @@
"Snap to face and edge centres": "Privlači na središta lica i bridova",
"SolidCraft cannot submit reports directly. Submit on GitHub; no token is needed in the app.": "SolidCraft ne može izravno slati izvješća. Pošaljite ih na GitHubu; u aplikaciji nije potreban token.",
"SolidCraft closed before these designs were saved. Their last autosave can be opened.": "SolidCraft se zatvorio prije nego što su ovi dizajni spremljeni. Može se otvoriti njihovo posljednje automatsko spremanje.",
"Sort A to Z": "Poredaj od A do Ž",
"Sort Z to A": "Poredaj od Ž do A",
"Spacing 2 must be a non-zero number": "Razmak 2 mora biti broj različit od nule",
"Spacing must be a non-zero number": "Razmak mora biti broj različit od nule",
"Specialise": "Specijaliziraj",
@@ -790,6 +793,13 @@
"browser.sketch_attachment_lost": "{name} (pričvršćenje izgubljeno)",
"browser.sketch_editing": "{name} (uređuje se)",
"browser.sketch_name": "Skica{number}",
"browser.sketches_to_parts_already_in_part": "već u svojem dijelu",
"browser.sketches_to_parts_design_body": "na tijelu samog dizajna",
"browser.sketches_to_parts_moved": "Skice premještene u dio na kojem se nalaze: {moved}",
"browser.sketches_to_parts_no_exact_attachment": "na licu bez točnog pričvršćenja",
"browser.sketches_to_parts_not_on_face": "ne na licu dijela",
"browser.sketches_to_parts_part_missing": "njihov dio više ne postoji",
"browser.sketches_to_parts_result": "Skice premještene u dio na kojem se nalaze: {moved}; ostale na mjestu: {stayed} ({why})",
"browser.units": "Jedinice: {units}",
"cam.flat": "Ravno lice",
"cam.follower": "Pratitelj",
@@ -819,6 +829,7 @@
"cmd.appearance_pick_up": "Preuzmi izgled",
"cmd.appearance_replace": "Zamijeni izgled",
"cmd.assembly_bom": "Sastavnica",
"cmd.assembly_mass_properties": "Svojstva mase",
"cmd.body.print_face": "Ploha ispisa",
"cmd.body_rename": "Preimenuj tijelo",
"cmd.browser_collapse_all": "Sažmi sve",
@@ -856,6 +867,7 @@
"cmd.component_move_bodies": "Premjesti tijela u komponentu",
"cmd.component_move_features": "Premjesti značajke u komponentu",
"cmd.component_move_sketches": "Premjesti skice u komponentu",
"cmd.component_move_sketches_to_parts": "Premjesti skice u njihove dijelove",
"cmd.component_paste_from_design": "Zalijepi iz drugog dizajna",
"cmd.component_paste_new": "Zalijepi kao novo",
"cmd.component_properties": "Fizička svojstva komponente",
@@ -1191,6 +1203,7 @@
"cmd.sketch_spline_control_point_5": "Spline kontrolnih točaka (stupanj 5)",
"cmd.sketch_spline_fit_point": "Spline kroz točke",
"cmd.sketch_spline_insert_point": "Dodaj točku splinea",
"cmd.sketch_spline_remove_point": "Ukloni točku splinea",
"cmd.sketch_spline_reverse": "Obrni smjer splinea",
"cmd.sketch_spun_profile": "Rotirani profil",
"cmd.sketch_toggle_diameter": "Prebaci polumjer / promjer",
@@ -1244,6 +1257,7 @@
"cmd.view.render_browser": "Stablo renderiranja",
"cmd.view.render_dock": "Premjesti panel renderiranja",
"cmd.view.render_focus": "Fokusni prikaz renderiranja",
"cmd.view.status_details": "Detalji statusa prozora prikaza",
"cmd.view.status_items": "Statusne stavke prozora prikaza",
"cmd.view_ambient_occlusion": "Ambijentalna okluzija",
"cmd.view_angle_readout": "Kutovi prikaza",
@@ -1282,8 +1296,14 @@
"color.hex_hint": "#rrggbb",
"color.hue": "Nijansa",
"color.linear": "Prikaz vrijednosti boje u linearnom prostoru 0-1",
"color.recent": "Nedavne boje",
"color.recent_help": "Ovdje se pojavljuju boje koje odaberete u bilo kojem polju za boju",
"color.saturation": "Zasićenost (postotak)",
"color.saturation_value": "Zasićenost i vrijednost",
"color.selected": "Odabrana boja",
"color.step_down": "Smanji za korak",
"color.step_up": "Povećaj za korak",
"color.value": "Vrijednost, svjetlina (postotak)",
"config.column_filter_empty": "Nema odgovarajućih stupaca",
"contact.components_count": "Komponente: {count}",
"contact.enabled_label": "omogućeno",
@@ -1330,6 +1350,7 @@
"dialog.dimension_name": "Kota: {name}",
"dialog.edit_title": "UREDI {title}",
"dialog.no_shown_body": "Nema prikazanog tijela za promjenu: prikažite jedno ili odaberite Novo tijelo",
"dialog.pattern_sketch_not_object": "Odaberite tijela ili značajke: skica nije ni jedno ni drugo. Ponovite njezine krivulje pomoću alata Niz ili Zrcali u samoj skici ili je najprije ekstrudirajte.",
"dialog.select": "↖ Odaberi",
"dialog.selected_count": "↖ Odabrano: {count}",
"dialog.selection_guidance": "Odaberite ulaz kako biste ga promijenili. Kliknite odabrane objekte kako biste ih uklonili; Ctrl/Cmd-klik ih također uključuje i isključuje. Pogledajte pretpregled, a zatim pritisnite U redu.",
@@ -1387,21 +1408,168 @@
"from the rule": "iz pravila",
"help.apache": "Apache licenca 2.0",
"help.appearance.assign": "Daje odabranim tijelima, licima ili komponentama boju ili izgled materijala, bez promjene njihove težine. Upotrijebite ga kako biste razlikovali dijelove ili pregledali završnu obradu.",
"help.assembly.bom": "Navodi dijelove dizajna ili komponente s količinama, po broju dijela, a popis može spremiti kao CSV ili JSON. Upotrijebite ga kao popis dijelova za narudžbu i montažu.",
"help.attributions": "Atribucije (ATTRIBUTION.md)",
"help.build": "Verzija {version} · commit {commit} · izgrađeno {date}",
"help.canvas.decal": "Postavlja sliku na ravno lice modela, poput naljepnice. Upotrijebite ga kako biste na dijelu prikazali oznaku, logotip ili otisnuti uzorak.",
"help.canvas.edit": "Mijenja platno: njegov položaj, veličinu, kut, neprozirnost, zrcaljenje, vidljivost ili naziv. Upotrijebite ga kako biste referentnu sliku poravnali sa skicom koju po njoj ocrtavate.",
"help.canvas.insert": "Postavlja PNG ili JPEG sliku na ravninu ili lice kao prozirnu referencu. Upotrijebite ga kako biste u skici ocrtali fotografiju ili crtež, sa slikom skaliranom na poznatu veličinu.",
"help.component.break_link": "Odvaja povezanu komponentu od njezine datoteke dizajna, a njezina tijela ostaju onakva kakva jesu. Upotrijebite ga kad dio više ne treba pratiti promjene u izvornoj datoteci.",
"help.component.capture_position": "Zadržava položaje dijelova koje ste ručno pomaknuli, tako da ti dijelovi ostaju na tim mjestima. Upotrijebite ga nakon povlačenja dijelova na mjesto koje nijedan spoj ne drži.",
"help.component.create": "Dodaje novu, praznu komponentu u dizajn, unutar aktivne komponente osim ako odaberete drugu nadređenu komponentu. Upotrijebite ga kako biste novom dijelu sklopa dali vlastito mjesto za tijela i skice.",
"help.component.finish_edit": "Sprema dio koji uređujete na mjestu, vraća se u njegov sklop i ažurira sklop prema njemu. Upotrijebite je kad završite izmjene povezanog dijela.",
"help.component.from_bodies": "Pretvara svako odabrano tijelo u zasebnu komponentu, nazvanu po tijelu. Upotrijebite ga kad dizajn izgrađen od samostalnih tijela treba postati sklop čije se dijelove može spajati i pomicati.",
"help.component.insert_design": "Umeće drugi spremljeni dizajn kao komponentu povezanu s njegovom datotekom, a njegova puna tijela postavlja onako kako su u njemu. Upotrijebite ga kako biste dio ponovno upotrijebili u sklopu i preuzeli kasnije promjene naredbom Ažuriraj veze.",
"help.component.properties": "Prikazuje volumen, masu, središte mase i momente tromosti komponente, prema materijalima njezinih tijela. Upotrijebite ga kako biste provjerili težinu i ravnotežu sklopa.",
"help.component.revert_position": "Vraća ručno pomaknute dijelove na mjesto na kojem su bili, odbacujući pomake koji nisu zabilježeni. Upotrijebite ga kako biste poništili probne pomake u sklopu.",
"help.component.update_links": "Ponovno čita povezane datoteke dizajna i zamjenjuje tijela koja su se promijenila. Upotrijebite ga nakon uređivanja dijela koji ovaj sklop koristi.",
"help.config.configure": "Dodaje parametre, značajke, materijale ili izglede kao stupce tablice konfiguracija. Upotrijebite ga kako biste izradili inačice jednog dizajna, primjerice veličine nekog dijela.",
"help.config.preview": "Provjerava može li se redak tablice konfiguracija ponovno izgraditi, bez promjene dizajna ili njegove vremenske trake. Upotrijebite ga prije prebacivanja na inačicu u čiju ispravnost niste sigurni.",
"help.config.rules": "Prikazuje pravila tablice konfiguracija, njezine retke i koji je redak aktivan. Upotrijebite ga kako biste vidjeli kako su postavljene inačice dizajna.",
"help.config.table": "Prikazuje tablicu konfiguracija: jedan redak po inačici, jedan stupac po parametru ili značajki, te podudara li se dizajn još s aktivnim retkom. Upotrijebite ga za pregled inačica dizajna.",
"help.connect_note": "Ponovno pokrenite svakog asistenta kako bi učitao SolidCraft poslužitelj. Svaka datoteka sigurnosno je kopirana kao .bak prije promjene.",
"help.connect_title": "Poveži AI asistente",
"help.construct.axis.edge": "Izrađuje pomoćnu os duž ravnog brida ili linije skice. Upotrijebite je kao os za rotaciju, kružni niz ili spoj.",
"help.construct.axis.normal_to_face": "Izrađuje pomoćnu os kroz točku, okomito na lice. Upotrijebite je kao os koja stoji ravno iz površine.",
"help.construct.axis.through_cylinder": "Izrađuje pomoćnu os kroz središte lica valjka, stošca ili torusa ili kružnog brida. Upotrijebite je za okretanje ili umnožavanje značajki oko okruglog dijela.",
"help.construct.axis.two_planes": "Izrađuje pomoćnu os na mjestu gdje se dvije ravnine ili ravna lica sijeku. Upotrijebite je kad je potrebna os pravac između dvaju lica.",
"help.construct.axis.two_points": "Izrađuje pomoćnu os kroz dvije točke, vrhove ili točke skice. Upotrijebite je za os koja prolazi između dvaju poznatih položaja.",
"help.construct.plane.along_path": "Izrađuje pomoćnu ravninu okomitu na brid ili krivulju, na položaju duž njih. Upotrijebite je za skiciranje profila za povlačenje ili presjeka putanje.",
"help.construct.plane.at_angle": "Izrađuje pomoćnu ravninu zakrenutu za kut u odnosu na ravninu ili lice, oko osi ili brida. Upotrijebite je za nagnute skice, primjerice kutnog nosača.",
"help.construct.plane.midplane": "Izrađuje pomoćnu ravninu na pola puta između dviju ravnina ili ravnih lica, ili ravninu koja raspolavlja kut kad se one sijeku pod kutom. Upotrijebite je kao ravninu simetrije za zrcaljenje.",
"help.construct.plane.offset": "Izrađuje pomoćnu ravninu paralelnu s ravninom ili ravnim licem, na određenoj udaljenosti ili kroz točku. Upotrijebite je za skiciranje na zadanoj visini iznad lica.",
"help.construct.plane.perpendicular": "Izrađuje pomoćnu ravninu koja sadrži liniju ili brid i okomita je na ravninu ili lice. Upotrijebite je za skiciranje uspravno na modelu duž brida.",
"help.construct.plane.tangent": "Izrađuje pomoćnu ravninu koja u jednoj točki dodiruje valjak, stožac, kuglu ili torus. Upotrijebite je za skiciranje na boku okruglog dijela.",
"help.construct.plane.three_points": "Izrađuje pomoćnu ravninu kroz tri točke. Upotrijebite je za ravninu određenu položajima na modelu, primjerice trima kutovima.",
"help.construct.plane.two_edges": "Izrađuje pomoćnu ravninu kroz dva ravna brida ili linije koji leže u istoj ravnini. Upotrijebite je za ravninu kroz dio, primjerice kroz dva nasuprotna brida.",
"help.construct.point.along_path": "Izrađuje pomoćnu točku na položaju duž brida ili krivulje. Upotrijebite je kao referencu negdje na putanji.",
"help.construct.point.center": "Izrađuje pomoćnu točku u središtu kružnog brida, kružnice ili luka skice, kugle ili torusa. Upotrijebite je kao referencu za provrte, osi i spojeve.",
"help.construct.point.edge_plane": "Izrađuje pomoćnu točku na mjestu gdje brid ili linija prolazi kroz ravninu ili ravno lice. Upotrijebite je za označavanje mjesta gdje putanja siječe ravninu.",
"help.construct.point.three_planes": "Izrađuje pomoćnu točku na mjestu gdje se sijeku tri ravnine ili ravna lica. Upotrijebite je kao referencu kuta, čak i tamo gdje model nema vrh.",
"help.construct.point.two_edges": "Izrađuje pomoćnu točku na mjestu gdje se dva brida ili linije sijeku ili si najviše približe. Upotrijebite je kao referencu u virtualnom kutu.",
"help.construct.point.vertex": "Izrađuje pomoćnu točku na vrhu ili točki skice. Upotrijebite je kao referencu koja ostaje kad se skica ili tijelo oko nje sakriju.",
"help.contact.check": "Navodi parove dijelova u skupovima kontakata koji u svojem trenutnom položaju prolaze jedan kroz drugi. Upotrijebite ga za pronalaženje sudara prije pokretanja spojeva ili studije kretanja.",
"help.contact.create": "Grupira dva ili više dijelova u skup kontakata čija se tijela tijekom pomicanja spojeva sprječavaju da prolaze jedno kroz drugo. Upotrijebite ga za dijelove koji se trebaju zaustaviti kad se dodirnu, primjerice polugu uz njezin graničnik.",
"help.contact.disable_all": "Isključuje kontakt, pa se pokretani spojevi i studije kretanja više ne zaustavljaju tamo gdje se dijelovi dodiruju. Upotrijebite ga za ponovno slobodno pomicanje dijelova ili za bolji odziv velikog sklopa.",
"help.contact.edit": "Mijenja skup kontakata: dijelove koje sadrži, njegov naziv ili je li potisnut; može i izbrisati skup. Upotrijebite ga kako biste prilagodili koji se dijelovi sprječavaju da prolaze jedan kroz drugi.",
"help.contact.enable_all": "Stavlja svaki dio sklopa u jedan skup kontakata, pa nijedna dva dijela ne mogu proći jedan kroz drugi tijekom pomicanja spojeva. Upotrijebite ga za brzu provjeru cijelog mehanizma.",
"help.contact.enable_sets": "Uključuje kontakt za skupove kontakata koje ste definirali, pa se pokretani spojevi i studije kretanja zaustavljaju tamo gdje bi njihovi dijelovi prošli jedan kroz drugi. Upotrijebite ga kako biste vratili svoje skupove nakon isključivanja kontakta.",
"help.contact.list": "Navodi skupove kontakata dizajna, dijelove u svakome od njih i je li kontakt uključen. Upotrijebite ga za provjeru kako je kontakt postavljen prije pokretanja sklopa.",
"help.document.inspect": "Prikazuje pregled dizajna: njegove komponente, tijela, skice, značajke i parametre. Upotrijebite ga kako biste se snašli u dizajnu koji niste sami izradili.",
"help.document.units": "Mijenja jedinice u kojima dizajn prikazuje duljine, primjerice mm ili inče. Geometrija zadržava svoju veličinu; mijenjaju se samo prikaz i obični brojevi.",
"help.edit.checkpoint": "Pamti dizajn, aktivnu skicu i povijest poništavanja onakve kakvi su sada. Upotrijebite ga prije isprobavanja nečeg rizičnog od čega ćete se možda htjeti vratiti.",
"help.edit.restore_checkpoint": "Vraća se na kontrolnu točku, uključujući povijest poništavanja. Upotrijebite ga kako biste jednim korakom odbacili sve učinjeno od kontrolne točke.",
"help.explode.create": "Izrađuje rastavljeni prikaz koji dijelove odmiče od središta sklopa ili prema pomacima koje zadate. Upotrijebite ga za prikaz sastavljanja sklopa, za upute ili prezentacije.",
"help.face.delete": "Uklanja odabrana lica i pušta da susjedna lica zatvore otvor, ili ostavlja otvor otvorenim kao plohu. Upotrijebite ga kako biste uklonili zaobljeni brid, provrt ili ispupčenje koje smeta.",
"help.file.insert_mesh": "Dodaje 3MF, STL, OBJ, PLY ili glTF datoteku u dizajn kao mrežna tijela u novoj komponenti. Upotrijebite ga kako biste preuzeti ili skenirani model postavili uz svoj dizajn kao referencu.",
"help.file.insert_step": "Dodaje STEP, IGES, FreeCAD ili Rhino datoteku u dizajn kao puna tijela u novoj komponenti; dijelovi sklopa postaju ugniježđene komponente. Upotrijebite ga za unos modela od dobavljača ili iz drugih CAD programa.",
"help.file.save_mesh": "Sprema tijela kao STL, 3MF ili OBJ mrežu, s glatkoćom zakrivljenih lica po vašem izboru. Upotrijebite ga za pripremu dijelova za 3D ispis ili za programe koji čitaju mreže.",
"help.file.send_to_slicer": "Sprema odabrana tijela kao 3MF datoteku i otvara je u slicer programu koji odaberete. Upotrijebite ga za prijelaz s modela na ispis u jednom koraku.",
"help.font_details": "Sučelje koristi ugrađene fontove biblioteke egui (Ubuntu Light i Hack, pod licencama Ubuntu Font Licence i MIT/Bitstream Vera; Noto Emoji i font emoji ikona, pod licencama OFL i MIT). Tekst skice koristi Liberation Sans (SIL OFL 1.1). Neobavezni paket fontova Crafting Apps, craft-fonts (BIZ UDPGothic, Shippori Mincho, BIZ UDMincho, Noto Sans CJK SC, Noto Sans Arabic; SIL OFL 1.1), nije uključen u izdanja SolidCrafta.",
"help.fonts": "Fontovi",
"help.frame.member": "Postavlja profil, primjerice cijev ili aluminijski ekstrudirani profil, duž linija skice okvira, jedan element po liniji. Upotrijebite ga za izradu okvira, regala i zavarenih konstrukcija.",
"help.inspect.accessibility": "Boji lica do kojih alat može doći iz jednog smjera i ona do kojih ne može. Upotrijebite ga za provjeru dijela za strojnu obradu ili kalupljenje s te strane.",
"help.inspect.center_of_mass": "Prikazuje središte mase tijela, svakog zasebno i svih zajedno, pri jednolikoj gustoći. Upotrijebite ga za provjeru ravnoteže i mjesta na kojem će se dio prevrnuti.",
"help.inspect.colored_components": "Daje svakoj komponenti vlastitu privremenu boju, bez promjene izgleda. Upotrijebite ga kako biste na prvi pogled razlikovali dijelove sklopa.",
"help.inspect.compare": "Uspoređuje dva tijela i prikazuje gdje jedno ima materijala kojeg drugo nema, s volumenom i odstupanjem. Upotrijebite ga za provjeru izmijenjenog ili uvezenog dijela u odnosu na izvornik.",
"help.inspect.continuity": "Provjerava koliko glatko se lica spajaju duž svojih bridova (razmake, lomove ili skokove zakrivljenosti) i sjenčanjem označava šavove. Upotrijebite ga za pronalaženje mjesta na kojima se plohe ne spajaju čisto.",
"help.inspect.curvature_comb": "Crta češljeve duž krivulja, bridova ili lica čiji zupci pokazuju koliko se snažno savijaju. Upotrijebite ga za uočavanje ravnih mjesta, lomova i neujednačene zakrivljenosti.",
"help.inspect.curvature_map": "Boji lica prema jakosti zakrivljenosti, crveno tamo gdje je polumjer malen. Upotrijebite ga za pronalaženje uskih mjesta i procjenu glatkoće plohe.",
"help.inspect.draft": "Boji lica prema kutu nagiba u odnosu na smjer vađenja iz kalupa i označava ona s premalo nagiba. Upotrijebite ga za provjeru dijela prije kalupljenja ili lijevanja.",
"help.inspect.environment_map": "Prikazuje model s reflektirajućom završnom obradom nalik zrcalu. Upotrijebite ga za procjenu toka ploha prema načinu na koji se odrazi pružaju preko njih.",
"help.inspect.interference": "Pronalazi tijela koja se preklapaju i prikazuje svako preklapanje s njegovim volumenom. Upotrijebite ga za provjeru sudaraju li se dijelovi u sklopu.",
"help.inspect.isocurve": "Crta izoparametarske krivulje lica, mrežu na kojoj je ploha izgrađena. Upotrijebite ga kako biste vidjeli kako ploha teče i gdje se zgušnjava.",
"help.inspect.measure": "Mjeri duljine, udaljenosti, kutove, površine i polumjere među elementima koje odaberete, ili volumen i masu tijela. Upotrijebite ga za provjeru mjera i zazora.",
"help.inspect.minimum_radius": "Pronalazi najmanji polumjer zakrivljenosti krivulja, bridova ili lica i mjesto na kojem se nalazi. Upotrijebite ga kako biste provjerili može li alat ili mlaznica pratiti oblik.",
"help.inspect.section": "Presijeca prikaz duž ravnine i šrafira presječena lica, bez promjene modela. Upotrijebite ga za pogled u unutrašnjost dijelova i sklopova.",
"help.inspect.zebra": "Prikazuje crne i bijele pruge odražene na licima modela. Upotrijebite ga za procjenu glatkoće: pruge koje se prekidaju ili lome na bridu upućuju na loš prijelaz.",
"help.joint.as_built": "Spaja dva dijela tamo gdje već jesu, bez pomicanja ijednog od njih, i određuje kako se još smiju kretati. Upotrijebite ga za dijelove koje ste već postavili u konačni položaj.",
"help.joint.cam": "Povezuje rotirajući brijeg sa sljedbenikom, pa sljedbenik klizi ili se njiše dok ispod njega prolazi obris brijega. Upotrijebite ga za brijegove, ekscentre i pogone ventila.",
"help.joint.create": "Spaja dva dijela na ishodištima spojeva koja odaberete i pomiče drugi dio na mjesto; vrsta spoja određuje kako se još smiju kretati. Upotrijebite ga za izradu sklopa čiji se dijelovi kreću poput stvarnog mehanizma.",
"help.joint.drive": "Postavlja kut ili udaljenost spoja i s njim pomiče dijelove, unutar njegovih granica; povezani spojevi i zatvorene petlje slijede ga. Upotrijebite ga za provjeru kreće li se mehanizam kako je zamišljeno.",
"help.joint.gear": "Povezuje dva rotirajuća spoja prijenosnim omjerom, pa pokretanje jednog okreće drugi. Upotrijebite ga za čelne zupčanike i zupčanike s unutarnjim ozubljenjem, s omjerom iz polumjera diobenih kružnica ili broja zubaca.",
"help.joint.limits": "Određuje koliko se spoj smije zakrenuti ili pomaknuti, kao najmanju i najveću vrijednost, ili briše te granice. Upotrijebite ga kako bi šarka, klizač ili poluga ostali unutar svojeg stvarnog raspona kretanja.",
"help.joint.motion_link": "Povezuje dva spoja omjerom i odmakom, pa pokretanje jednog pomiče drugi. Upotrijebite ga za čvrst odnos među spojevima koji nije pokriven naredbama Zupčanik, Zupčasta letva i zupčanik ili Vijak.",
"help.joint.origin": "Postavlja imenovano ishodište spoja na dio: u središte lica ili okruglog kraja, sredinu brida, kut ili točku. Upotrijebite ga za pripremu mjesta na kojima se spojevi vežu; ishodište odabrano na licu prati ga kad dio promijeni veličinu.",
"help.joint.rack_pinion": "Povezuje rotirajući mali zupčanik s kliznom zupčastom letvom, pa se letva pomiče za duljinu diobene kružnice koju mali zupčanik prevali. Upotrijebite ga za pogone s letvom, upravljanje i linearne stolove.",
"help.joint.reach": "Pomiče točku na dijelu prema cilju mijenjajući spojeve na njezinu lancu, unutar njihovih granica. Upotrijebite ga za namještanje mehanizma prema tome gdje mu treba biti kraj, primjerice vrh ruke robota.",
"help.joint.rigid_group": "Zaključava odabrane dijelove zajedno onakve kakvi jesu, pa se pomiču kao jedan. Upotrijebite ga za dijelove koji pripadaju zajedno i među kojima nema kretanja.",
"help.joint.screw": "Povezuje okretanje i klizanje korakom, pa svaki okretaj pomiče za tu udaljenost. Upotrijebite ga za vodeće vijke, vijke i navojna vretena.",
"help.library.apply": "Primjenjuje materijal ili izgled iz lokalne datoteke biblioteke na tijela, lica ili komponente. Upotrijebite ga za ponovnu upotrebu materijala koje ste spremili iz drugog dizajna.",
"help.library.export": "Sprema materijale i izglede dizajna u datoteku biblioteke. Upotrijebite ga za njihovo dijeljenje ili ponovnu upotrebu u drugim dizajnima.",
"help.library.inspect": "Provjerava datoteku biblioteke i navodi njezine materijale i izglede, bez promjene dizajna. Upotrijebite ga kako biste prije primjene vidjeli što biblioteka sadrži.",
"help.licences": "Licence",
"help.material.assign": "Određuje od čega su odabrana tijela izrađena, npr. čelik, aluminij ili ABS. Upotrijebite ga kako bi masa i težina odgovarale stvarnom dijelu.",
"help.material.properties.validate": "Provjerava karticu podataka o materijalu radi dosljednosti brojeva i vrijednosti koje nedostaju. Upotrijebite ga prije nego se na podatke oslonite za masu ili krutost.",
"help.mesh.convert": "Ponovno izrađuje mrežno tijelo, primjerice STL, kao uredivo puno tijelo s ravnim i cilindričnim licima. Upotrijebite ga za izmjenu uvezenih strojnih dijelova kao da su modelirano tijelo.",
"help.mit": "MIT licenca",
"help.motion.study": "Postavlja vrijednosti spojeva u koracima duž vremenske trake i reproducira ih kao animaciju. Upotrijebite ga za praćenje kretanja mehanizma kroz slijed i provjeru zazora usput.",
"help.motion.trace": "Prati putanju kojom ide točka na dijelu dok se reproducira studija kretanja ili pokreće spoj i, nakon potvrde, zadržava je kao krivulju 3D skice. Upotrijebite ga kako biste vidjeli dokle mehanizam doseže ili kako biste gradili na njegovoj putanji.",
"help.notice": "NOTICE",
"help.occurrence.ground": "Učvršćuje dio na mjestu ili ga ponovno oslobađa, pa spojevi pomiču ostale dijelove oko njega. Upotrijebite ga za okvir ili podnožje na kojem je izgrađen ostatak sklopa.",
"help.occurrence.move": "Pomiče dio sklopa samo u stupnjevima slobode koje dopuštaju njegovi spojevi. Odaberite lice dijela, a zatim povucite dostupnu strelicu ili luk.",
"help.parameters.change": "Otvara tablicu imenovanih vrijednosti i izraza koji upravljaju kotama dizajna. Upotrijebite je kako biste promijenili mjeru na jednom mjestu, a sve značajke koje je koriste je slijede.",
"help.parameters.export": "Sprema parametre dizajna kao CSV ili JSON. Upotrijebite ga za uređivanje u proračunskoj tablici ili prijenos u drugi dizajn.",
"help.parameters.graph": "Prikazuje koji parametri i značajke koriste koje druge, te petlje ili pogreške među njima. Upotrijebite ga kako biste vidjeli na što će utjecati promjena parametra.",
"help.parameters.import": "Čita parametre iz CSV ili JSON datoteke u dizajn, i to sve ili nijedan. Upotrijebite ga za unos vrijednosti iz proračunske tablice ili drugog dizajna.",
"help.parameters.move": "Premješta korisnički parametar ispred ili iza drugog na popisu. Upotrijebite ga za držanje povezanih parametara zajedno.",
"help.parts.fastener": "Dodaje standardni vijak, svornjak, maticu, podlošku, zatik ili ležaj u odabranoj veličini. Postavljen na provrt, smješta se u njega spojem, pa spojne elemente ne morate modelirati sami.",
"help.parts.insert": "Umeće standardni dio u odabranoj obitelji, veličini i duljini. Postavljen na rub ili stijenku provrta, smješta se na provrt krutim spojem.",
"help.parts.library": "Otvara standardne dijelove: vijke, svornjake, matice, podloške, bezglave vijke, cilindrične zatike i ležajeve u standardnim veličinama. Upotrijebite ga za dodavanje standardnog dijela umjesto da ga sami modelirate.",
"help.parts.resize": "Mijenja veličinu ili duljinu umetnutog standardnog dijela i ponovno ga izgrađuje; njegovi spojevi ga drže na mjestu. Upotrijebite ga kad se vijak pokaže predugim ili provrtu treba druga veličina.",
"help.plastic.assign_rule": "Dodjeljuje pravilo za plastiku tijelima, pa njihove značajke za plastiku preuzimaju njegov nagib i zazor kao zadane vrijednosti. Upotrijebite ga za jednokratno postavljanje oblikovanog dijela za sve njegove značajke.",
"help.plastic.boss": "Dodaje ispust za vijak na licu: stup s neobaveznim provrtom, nagibom, zaobljenjem korijena i potpornim rebrima. Upotrijebite ga za točke vijaka u kalupljenim ili ispisanim kućištima.",
"help.plastic.lip": "Dodaje usnu ili odgovarajući utor uz rub tijela s ljuskom. Upotrijebite ga kako bi se dvije polovice kućišta naslanjale jedna na drugu i čvrsto zatvarale.",
"help.plastic.manage_rules": "Izrađuje i uređuje pravila za plastiku: materijal, debljinu stijenke, polumjere, zazor i nagib. Upotrijebite ih kako bi značajke oblikovanog dijela ostale dosljedne.",
"help.plastic.rest": "Dodaje oslonac na licu: okruglu ili pravokutnu podlogu, punu ili šuplju, s nagibom. Upotrijebite ga kao potporu ili distancu u oblikovanom kućištu.",
"help.plastic.snap_fit": "Dodaje kuku za škljocajući spoj na licu, s njezinom duljinom, debljinom i zapinjačem. Upotrijebite ga za spajanje dijelova kopčanjem, bez vijaka.",
"help.pointcloud.insert": "Umetnite PLY, XYZ ili PTS skeniranje kao oblak točaka uz model. Koristite ga kao referencu pri izradi modela iz izmjerenih podataka.",
"help.sheet.convert": "Pretvara ploču ili tijelo s ljuskom ujednačene debljine u tijelo od lima, sa savijanjima na bridovima koje odaberete. Upotrijebite ga kako biste postojeći dio učinili razvijivim.",
"help.sheet.export_bend_table": "Sprema tablicu savijanja tijela od lima kao CSV ili JSON: kutove, polumjere i položaje savijanja u razvijenom obliku. Upotrijebite ga za stroj za savijanje ili radionicu.",
"help.sheet.export_dxf": "Sprema razvijeni oblik kao DXF, s obrisima, linijama savijanja i neobaveznim bilješkama o savijanju. Upotrijebite ga za lasersko, plazma ili vodenim mlazom rezanje.",
"help.sheet.flange": "Dodaje prirubnicu: osnovnu ploču iz skice, stijenku duž otvorene konture skice ili savijenu stijenku na bridovima lima. Upotrijebite je za izgradnju dijelova od lima.",
"help.sheet.flat_pattern": "Izrađuje razvijeni oblik tijela od lima, s njegovom veličinom, izrezima i linijama savijanja. Upotrijebite ga za provjeru pripremka prije rezanja.",
"help.sheet.fold": "Presavija lim duž linije skice za zadani kut i polumjer. Upotrijebite ga za savijanje ravnog lima nakon što ste u njega urezali značajke.",
"help.sheet.hem": "Preklapa rub lima sam na sebe. Upotrijebite ga za sigurne, krute rubove bez oštrih srha.",
"help.sheet.manage_rules": "Izrađuje i uređuje pravila za lim: debljinu, polumjer savijanja, K-faktor, rasterećenja i razmake. Upotrijebite ih za usklađivanje s materijalom i alatima vaše radionice.",
"help.sheet.path_flange": "Dodaje lanac prirubnica duž ruba lima, prateći otvoreni lanac linija skice. Upotrijebite je za profile poput U ili Z oblika u jednom koraku.",
"help.sheet.perforate": "Dodaje polje provrta po cijelom ravnom limu, u pomaknutom ili kvadratnom rasporedu. Upotrijebite ga za ventilacijske otvore, rešetke i lakše ploče.",
"help.sheet.refold": "Ponovno savija razvijeno tijelo od lima. Upotrijebite ga nakon dodavanja značajki ravnom limu.",
"help.sheet.unfold": "Razvija sva savijanja tijela od lima. Upotrijebite ga za dodavanje provrta ili izreza koji moraju prelaziti preko savijanja, a zatim ponovno presavijte.",
"help.sketch.arc.center_point": "Crta kružni luk oko središnje točke, od početne do završne točke. Upotrijebite ga kad je središte luka poznato, primjerice za polumjer oko provrta ili okretišta.",
"help.sketch.arc.tangent": "Crta luk koji počinje na kraju linije ili luka i nastavlja se tangentno na njega. Upotrijebite ga za nastavak lanca glatkim zavojem umjesto kutom.",
"help.sketch.arc.three_point": "Crta luk od početne do završne točke kroz treću točku. Upotrijebite ga kad luk mora prolaziti kroz zadane točke, a ne oko poznatog središta.",
"help.sketch.arc3d": "Crta točan kružni luk u prostoru kroz tri točke, uz uključenu 3D skicu. Upotrijebite ga za zavoje u putanjama i vodilicama koji izlaze iz ravnine skice.",
"help.sketch.auto_constrain": "Dodaje ograničenja koja skica već gotovo ima, primjerice vodoravnost, paralelnost ili podudarnost, a zatim je kotira dok nije potpuno ograničena. Upotrijebite ga za učvršćivanje grubo nacrtane skice u jednom koraku.",
"help.sketch.auto_constrain_from_datum": "Radi kao Automatska ograničenja, ali položaje mjeri od referentne točke koju odaberete umjesto od ishodišta. Upotrijebite ga kad je dio raspoređen od jedne referentne točke, primjerice kuta ili provrta.",
"help.sketch.blend_curve": "Spaja krajeve dviju krivulja glatkim splineom koji je tangentan na obje, ili i kontinuiran po zakrivljenosti ako tako odaberete. Upotrijebite ga za premošćivanje razmaka među krivuljama bez loma.",
"help.sketch.break": "Dijeli krivulju na dijelove tamo gdje je sijeku druge krivulje ili u točkama koje na nju postavite. Upotrijebite ga kad dio krivulje treba vlastito ograničenje ili ga treba zasebno izbrisati.",
"help.sketch.cancel": "Napušta skicu i odbacuje sve promjene učinjene od njezina stvaranja ili otvaranja za uređivanje. Naredba Poništi vraća promjene.",
"help.sketch.centerline": "Prebacuje linije između običnih linija i središnjih linija, osi koje profili izostavljaju. Središnju liniju upotrijebite kao os za rotaciju, zrcaljenje ili ograničenje simetrije.",
"help.sketch.chamfer.distance_angle": "Skošuje kut između dviju linija, zadan udaljenošću duž prve linije i kutom. Upotrijebite ga kad crtež daje skošenje kao duljinu i kut, primjerice 2 mm × 30°.",
"help.sketch.chamfer.equal_distance": "Skošuje kut između dviju linija jednakom udaljenošću unatrag duž obiju. Upotrijebite ga za uobičajeno skošenje od 45° na obrisu.",
"help.sketch.chamfer.two_distance": "Skošuje kut između dviju linija, zadan zasebnom udaljenošću duž svake linije. Upotrijebite ga za skošenja koja nisu 45°, zadana kao dvije duljine.",
"help.sketch.circle.center": "Crta kružnicu iz njezina središta i promjera. Upotrijebite ga za provrte, ispuste i druge okrugle značajke čije je središte poznato.",
"help.sketch.circle.three_point": "Crta kružnicu kroz tri točke. Upotrijebite ga kad kružnica mora prolaziti kroz zadane točke, primjerice postojeće geometrije.",
"help.sketch.circle.three_tangent": "Crta kružnicu koja dodiruje tri elementa (linije, kružnice ili lukove). Upotrijebite ga za uklapanje kružnice u prostor među tri krivulje, primjerice upisane kružnice trokuta.",
"help.sketch.circle.two_point": "Crta kružnicu iz dvaju krajeva njezina promjera. Upotrijebite ga kad su poznate rubne točke kružnice, a ne njezino središte.",
"help.sketch.circle.two_tangent": "Crta kružnicu zadane veličine koja dodiruje dva elementa (linije, kružnice ili lukove). Upotrijebite ga za zaobljenje stalnog polumjera između dviju krivulja.",
"help.sketch.conic": "Crta koniku između dviju krajnjih točaka, oblikovanu vršnom točkom i vrijednošću rho. Upotrijebite ga za glatke prijelaze čiju punoću želite podesiti, od ravnog do gotovo oštrog kuta.",
"help.sketch.constrainer": "Primjenjuje ograničenje koje jedna ili dvije odabrane krivulje već gotovo imaju, primjerice vodoravnost, paralelnost, tangentnost ili jednakost. Upotrijebite ga za sređivanje ručno nacrtane skice jedan po jedan odnos.",
"help.sketch.constraint.coincident": "Čini da točka leži na drugoj točki, krivulji ili osi skice. Upotrijebite ga za zatvaranje razmaka u profilu ili za postavljanje točke na liniju.",
"help.sketch.constraint.collinear": "Čini da dvije linije leže na istom pravcu. Upotrijebite ga za poravnanje prekinutih rubova, primjerice obiju strana zareza.",
"help.sketch.constraint.concentric": "Daje dvjema kružnicama ili lukovima isto središte. Upotrijebite ga za prstenove, cilindrična upuštenja i stepenaste osovine.",
"help.sketch.constraint.curvature": "Čini da dvije krivulje koje se susreću u krajnjoj točki nastave s istom zakrivljenošću (G2). Upotrijebite ga tamo gdje tangentni prijelaz nije dovoljno gladak, primjerice na vidljivim plohama.",
"help.sketch.constraint.equal": "Izjednačuje duljine linija ili polumjere kružnica i lukova. Upotrijebite ga kako bi jedna kota upravljala s više istovjetnih elemenata.",
"help.sketch.constraint.fix": "Fiksira točke ili krivulje tamo gdje jesu ili ih ponovno oslobađa. Upotrijebite ga za geometriju koja se ne smije pomaknuti kad povlačite ili rješavate skicu.",
"help.sketch.constraint.horizontal_vertical": "Čini liniju, ili liniju između dviju točaka, vodoravnom ili okomitom, što god je bliže. Upotrijebite ga za poravnanje obrisa s osima skice.",
"help.sketch.constraint.midpoint": "Postavlja točku na sredinu linije ili spaja središnje točke dviju linija. Upotrijebite ga za centriranje geometrije na bridu.",
"help.sketch.constraint.parallel": "Čini dvije linije paralelnima. Upotrijebite ga za stranice koje moraju ostati paralelne kad se druge kote promijene.",
"help.sketch.constraint.perpendicular": "Čini da se dvije linije susreću pod pravim kutom. Upotrijebite ga za pravokutne kutove između linija koje nisu na osima skice.",
"help.sketch.constraint.polygon": "Pretvara zatvoreni lanac linija u pravilni mnogokut: jednake stranice, a svaki vrh na istoj kružnici. Upotrijebite ga kako biste ručno nacrtani mnogokut učinili pravilnim i takvim ga zadržali.",
"help.sketch.constraint.symmetry": "Čini da dvije točke ili krivulje budu zrcalne jedna drugoj preko linije ili oko točke. Upotrijebite ga za održavanje simetričnosti profila kad mijenjate jednu stranu.",
"help.sketch.constraint.tangent": "Čini da se dvije krivulje, primjerice linija i luk, dodiruju tangentno. Upotrijebite ga za glatke prijelaze bez loma.",
"help.sketch.construction": "Prebacuje krivulje između obične i pomoćne geometrije, koju profili izostavljaju. Pomoćne krivulje upotrijebite kao pomagala za raspored, reference i kote.",
"help.sketch.construction_line": "Izradite beskonačni pomoćni pravac kroz dvije točke. Upotrijebite ga kako biste rasporedili skicu bez razdvajanja profila.",
"help.sketch.construction_line.angle": "Izradite beskonačni pomoćni pravac pod kutom od osi X skice. Odaberite točku i upišite kut ili odaberite smjer.",
"help.sketch.construction_line.bisector": "Odaberite dvije ravne linije skice koje se sijeku, pa jednu od dviju simetrala kuta. Rezultat prati izvorne linije.",
@@ -1412,11 +1580,71 @@
"help.sketch.construction_line.tangent_external": "Odaberite kružnicu ili kružni luk, pa vanjsku točku i rješenje tangente. Pregledi prikazuju samo dodirne točke na nacrtanom luku.",
"help.sketch.construction_line.tangent_two": "Odaberite dvije kružnice ili kružna luka, pa u pregledu odaberite zajedničku tangentu. Dodirne točke moraju ležati na nacrtanim krivuljama.",
"help.sketch.construction_line.vertical": "Izradite beskonačni okomiti pomoćni pravac kroz točku. Njegovo ograničenje okomitosti ostaje na snazi pri kasnijim promjenama.",
"help.sketch.copy": "Kopira odabrane krivulje i točke skice zajedno s ograničenjima i kotama među njima. Zalijepite ih u ovu ili u drugu skicu.",
"help.sketch.create": "Započinje novu 2D skicu na ravnini ili ravnom licu modela. Svaka naredba Ekstrudiraj, Rotiraj i Povlačenje počinje skicom.",
"help.sketch.cut": "Kopira odabranu geometriju skice i briše je iz skice, u jednom koraku poništavanja. Zalijepite je drugdje u ovoj skici ili u drugu skicu.",
"help.sketch.dimension": "Dodaje upravljačku kotu: duljinu, udaljenost, kut, polumjer ili promjer, ovisno o tome što odaberete. Upišite vrijednost ili naziv parametra, a skica će je slijediti.",
"help.sketch.edit": "Otvara postojeću skicu za uređivanje. Značajke izgrađene na njoj ažuriraju se kad dovršite skicu.",
"help.sketch.ellipse": "Crta elipsu iz njezina središta, kraja velike osi i točke na maloj strani. Upotrijebite ga za ovalne otvore, brijegove i druge izdužene okrugle oblike.",
"help.sketch.equation_curve": "Crta krivulju prema formulama: x(t) i y(t) ili y = f(x), u zadanom rasponu. Formule mogu koristiti parametre i krivulja ih prati: upotrijebite je za sinusoidu, spiralu ili evolventu zuba zupčanika.",
"help.sketch.extend": "Produljuje liniju ili luk do najbliže krivulje na njegovu putu ili produljuje dvije krivulje dok se ne susretnu. Upotrijebite ga za zatvaranje razmaka u profilu nakon odsijecanja ili uređivanja.",
"help.sketch.fillet": "Zaobljuje kut na kojem se susreću dvije linije ili dva luka lukom zadanog polumjera. Više kutova zaobljenih zajedno dijeli jedan polumjer.",
"help.sketch.finish": "Napušta skicu i vraća se na model. Njezini zatvoreni profili tada su spremni za Ekstrudiraj, Rotiraj i druge značajke.",
"help.sketch.finish_auto_constrain": "Pokreće Automatska ograničenja na skici, a zatim je dovršava. Upotrijebite ga kako biste skicu ostavili potpuno ograničenom u jednom koraku.",
"help.sketch.fit_curves_to_section": "Presijeca mrežno ili puno tijelo ravninom skice i uklapa linije i lukove u presjek. Upotrijebite ga za ponovnu izradu skeniranog ili uvezenog dijela kao uredive skice.",
"help.sketch.include_3d": "Unosi bridove modela, vrhove i krivulje drugih skica u ovu skicu kao povezane reference, spljoštavajući one izvan njezine ravnine na nju. Upotrijebite ga za gradnju na geometriji koja ne leži u ravnini skice.",
"help.sketch.infinite": "Prebacuje linije između običnih linija i beskonačnih pomoćnih linija koje prolaze cijelim prikazom. Upotrijebite ih kao reference rasporeda koje nikad nisu prekratke.",
"help.sketch.insert_dxf": "Čita krivulje DXF crteža u skicu, skalirane, zakrenute i postavljene kako zadate. Upotrijebite ga za gradnju na 2D crtežu iz drugog programa, primjerice na obrisu za lasersko rezanje.",
"help.sketch.insert_svg": "Čita putanje SVG crteža u skicu, skalirane, zakrenute i postavljene kako zadate. Upotrijebite ga za pretvaranje logotipa ili vektorskog obrisa u krivulje koje možete ekstrudirati.",
"help.sketch.inspect": "Otvara izvješće o otvorenoj skici: koliko je stupnjeva slobode preostalo i je li potpuno ograničena. Upotrijebite ga kako biste saznali što se još pomiče prije dovršetka skice.",
"help.sketch.intersect": "Dodaje krivulje ili točke u kojima tijela, lica, bridovi ili druge skice presijecaju ravninu skice. Ostaju povezane i prate model kad se promijeni.",
"help.sketch.intersection_curve": "Izrađuje 3D krivulje na mjestu gdje se dva tijela ili lica susreću, povezane s njima. Upotrijebite ih kao putanje ili vodilice koje prate model.",
"help.sketch.isoparametric_curve": "Izrađuje 3D krivulju u smjeru U ili V lica kroz točku koju odaberete, povezanu s licem. Upotrijebite je kao putanju ili liniju razdvajanja koja prati plohu.",
"help.sketch.line": "Crta povezane linije točku po točku, kao otvoreni lanac ili zatvoreni obris. To je osnovni alat za većinu profila.",
"help.sketch.line.midpoint": "Crta liniju od njezine središnje točke do jednog kraja, a drugi kraj zrcali. Upotrijebite ga za linije centrirane na točku, primjerice simetričan brid.",
"help.sketch.line3d": "Crta povezane ravne linije između točaka u prostoru, uz uključenu 3D skicu. Upotrijebite ga za putanje i okvire koji izlaze iz ravnine skice.",
"help.sketch.mirror": "Zrcali krivulje i točke skice preko linije ili osi i dodaje ograničenja simetrije. Upotrijebite ga za crtanje polovice simetričnog profila i njegovo dovršavanje.",
"help.sketch.move": "Pomiče ili zakreće krivulje i točke skice, ili njihovu kopiju. Upotrijebite ga za premještanje geometrije uz zadržavanje njezina oblika i ograničenja.",
"help.sketch.offset": "Izrađuje kopiju lanca krivulja na zadanoj udaljenosti, s jedne ili obje strane. Upotrijebite ga za stijenke, obrise i zazore; udaljenost ostaje uređiva kota.",
"help.sketch.paste": "Lijepi geometriju skice koju ste kopirali ili izrezali u aktivnu skicu. Postavite je u točku ili je pomaknite za odmak.",
"help.sketch.pattern.circular": "Kopira geometriju skice oko središnje točke, po punom krugu ili zadanom kutu. Upotrijebite ga za kružne rasporede vijaka, žbice i zube.",
"help.sketch.pattern.rectangular": "Kopira geometriju skice u retke i stupce na zadanim razmacima. Upotrijebite ga za mreže provrta, utora ili otvora za ventilaciju.",
"help.sketch.point": "Postavlja točku skice. Upotrijebite je kao referencu za kote, ograničenja, središta provrta ili kasnije značajke.",
"help.sketch.point3d": "Postavlja točku u prostoru, uz uključenu 3D skicu. Upotrijebite je kao referencu za 3D krivulje i putanje.",
"help.sketch.polygon.circumscribed": "Crta pravilni mnogokut oko kružnice, veličine određene od središta do sredine stranice. Upotrijebite ga kad je poznata širina ključa, kao kod šesterokutne matice.",
"help.sketch.polygon.edge": "Crta pravilni mnogokut iz dvaju krajeva jedne stranice. Upotrijebite ga kad su poznate duljina i položaj stranice.",
"help.sketch.polygon.inscribed": "Crta pravilni mnogokut unutar kružnice, veličine određene od središta do vrha. Upotrijebite ga kad je poznata mjera preko vrhova.",
"help.sketch.project": "Unosi bridove modela, lica, vrhove i krivulje drugih skica u ovu skicu, projicirane na njezinu ravninu. Ostaju povezani i prate model kad se promijeni.",
"help.sketch.project_to_surface": "Projicira krivulje drugih skica duž normale ove skice na lice, kao povezane 3D krivulje. Upotrijebite ga za nanošenje logotipa, linije razdvajanja ili putanje na zakrivljenu plohu.",
"help.sketch.rectangle.center": "Crta pravokutnik iz njegova središta i jednog kuta. Upotrijebite ga za obrise centrirane na točku, primjerice ishodište.",
"help.sketch.rectangle.rounded": "Crta pravokutnik sa sva četiri kuta zaobljena istim polumjerom. Upotrijebite ga za ploče, poklopce i otvore sa zaobljenim kutovima.",
"help.sketch.rectangle.three_point": "Crta pravokutnik iz jednog brida i točke na suprotnoj strani. Upotrijebite ga za pravokutnike pod kutom u odnosu na osi skice.",
"help.sketch.rectangle.two_point": "Crta pravokutnik iz dvaju nasuprotnih kutova. Upotrijebite ga za obrise ploča, blokova i džepova.",
"help.sketch.scale": "Skalira krivulje i točke skice faktorom oko osnovne točke. Upotrijebite ga za promjenu veličine dijela skice bez ponovnog crtanja.",
"help.sketch.slot.arc_center": "Crta zakrivljeni utor zadane širine duž luka određenog njegovim središtem, početkom i krajem. Upotrijebite ga za utore za podešavanje oko okretišta.",
"help.sketch.slot.arc_three_point": "Crta zakrivljeni utor zadane širine duž luka kroz tri točke. Upotrijebite ga kad putanja utora mora prolaziti kroz zadane točke.",
"help.sketch.slot.center_point": "Crta ravni utor zadane širine od njegova središta do središta jednog završnog luka. Upotrijebite ga za utore centrirane na točku.",
"help.sketch.slot.center_to_center": "Crta ravni utor zadane širine između središta njegovih dvaju završnih lukova. Upotrijebite ga za utore kotirane od središta do središta, primjerice za utore za podešavanje vijaka.",
"help.sketch.slot.overall": "Crta ravni utor zadane širine od jednog vanjskog kraja do drugog. Upotrijebite ga kad je važna ukupna duljina utora.",
"help.sketch.spline.control_point": "Crta kubični spline oblikovan kontrolnim točkama kroz koje ne prolazi. Upotrijebite ga za glatke, tekuće krivulje koje oblikujete pomicanjem točaka.",
"help.sketch.spline.control_point_5": "Crta spline stupnja 5 oblikovan kontrolnim točkama. Upotrijebite ga tamo gdje se krivulje moraju spajati s glađom zakrivljenošću, primjerice na vidljivim oblikovanim plohama.",
"help.sketch.spline.fit_point": "Crta glatki spline koji prolazi kroz svaku točku koju postavite, otvoren ili zatvoren. Upotrijebite ga za ocrtavanje oblika kroz poznate točke.",
"help.sketch.spline3d": "Crta glatku krivulju u prostoru kroz točke, uz uključenu 3D skicu. Upotrijebite ga za putanje povlačenja i trase kabela koje izlaze iz ravnine skice.",
"help.sketch.spun_profile": "Izrađuje u ravnini skice obris koji tijelo opiše okretanjem oko osi. Upotrijebite ga za dobivanje siluete tokarenog dijela za Rotiraj ili za crtež.",
"help.sketch.text": "Piše tekst u skici odabranim fontom, visinom i kutom; njegove riječi mogu pratiti parametre. Ekstrudirajte ga ili primijenite Reljef za oznake i natpise.",
"help.sketch.transform": "Skalira, zakreće i pomiče geometriju skice oko središnje točke u jednom koraku. Upotrijebite ga za istodobno premještanje i promjenu veličine odabira.",
"help.sketch.trim": "Uklanja dio krivulje između najbližih sjecišta oko mjesta na koje kliknete. Upotrijebite ga za čišćenje linija koje se preklapaju u zatvoreni profil.",
"help.solid.align": "Pomiče odabrana tijela tako da se točka, lice ili ravnina na njima poklopi s točkom, licem ili ravninom negdje drugdje. Upotrijebite ga kako biste postavili dio uz drugi bez mjerenja odmaka.",
"help.solid.boundary_fill": "Izrađuje puna tijela iz područja zatvorenih preklapajućim alatnim tijelima, ispunjavajući samo područja koja odaberete. Upotrijebite ga za izradu oblika iz prostora koji zajedno omeđuje više tijela.",
"help.solid.bounding_solid": "Izrađuje kutiju koja obuhvaća odabrana tijela, s neobaveznom marginom. Upotrijebite ga za uvid u ukupnu veličinu dijela ili kao sirovac iz kojeg se obrađuje.",
"help.solid.box": "Izrađuje kutiju iz duljine, širine i visine, iz kutne točke ili centriranu na točku. Upotrijebite ga za brzi blok, privremeni oblik ili tijelo u koje urezujete značajke.",
"help.solid.chamfer": "Odsijeca odabrane bridove ravnim skošenjem zadane udaljenosti. Koristite ga kako biste ublažili oštre bridove ili olakšali uvođenje zatika ili vijka.",
"help.solid.coil": "Izrađuje zavojito tijelo, primjerice oprugu, iz promjera, broja zavoja, visine ili koraka te okruglog ili kvadratnog presjeka. Upotrijebite ga za opruge, zavojnice i zavojne grebene.",
"help.solid.combine": "Spaja tijela, oduzima ih od ciljnog tijela ili zadržava samo zajednički volumen, a može zadržati i alatna tijela. Koristite ga kako biste spojili dijelove, jednim oblikom odrezali drugi ili pronašli gdje se dva tijela preklapaju.",
"help.solid.cone": "Izrađuje stožac iz osnovne kružnice i visine, ili krnji stožac kad i vrh ima polumjer. Upotrijebite ga za suženja, lijevke, upuštenja i šiljke.",
"help.solid.cylinder": "Izrađuje valjak iz polumjera ili promjera i visine, koji stoji na točki duž osi. Upotrijebite ga za osovine, zatike, ispuste i okrugle pripremke.",
"help.solid.draft": "Naginje odabrana lica za kut koji zadate, mjereno od neutralne ravnine. Upotrijebite ga na lijevanim ili brizganim dijelovima kako bi izašli iz kalupa.",
"help.solid.emboss": "Izdiže profile skice, primjerice tekst ili logotip, iz lica ili ih utiskuje u njega. Upotrijebite ga za natpise, oznake i markiranje na ravnim ili okruglim licima.",
"help.solid.extrude": "Izvlači profil skice u 3D duž zadane udaljenosti, dodajući ili uklanjajući materijal. Koristite ga kako biste ravni obris pretvorili u blok, ispust ili džep.",
"help.solid.fillet": "Zaobljuje odabrane bridove glatkim kružnim prijelazom zadanog polumjera. Koristite ga kako biste omekšali oštre bridove radi čvrstoće, udobnosti ili izgleda.",
"help.solid.hole": "Buši okrugli provrt zadanog promjera na odabranoj točki lica. Koristite ga za prolaze vijaka, zatike i druge jednostavne okrugle otvore.",
@@ -1425,20 +1653,60 @@
"help.solid.move": "Pomiče ili rotira odabrana tijela, ili njihovu kopiju, za udaljenost i kut koje zadate. Upotrijebite ga kako biste premjestili tijelo ili izradili drugo na drugom mjestu.",
"help.solid.offset_face": "Gura odabrana lica unutra ili van za udaljenost koju zadate, a okolna lica ih prate. Upotrijebite ga kako biste podebljali stijenku, produbili džep ili povisili ispupčenje bez uređivanja skice.",
"help.solid.pattern.circular": "Ponavlja odabrane objekte oko osi, za zadani broj i ukupni kut. Koristite ga za kružne rasporede vijaka, žbice, rebra hladnjaka i zupce.",
"help.solid.pattern.path": "Kopira značajke ili tijela duž putanje skice, prema broju i razmaku. Upotrijebite ga za provrte duž zakrivljenog brida ili dijelove duž vodilice.",
"help.solid.pattern.rectangular": "Ponavlja odabrane objekte u jednom ili dva smjera sa zadanim brojem i razmakom. Koristite ga za redove i mreže provrta, rebara, zatika ili nožica.",
"help.solid.pipe": "Izrađuje okruglu cijev duž putanje krivulja skice, punu ili šuplju s debljinom stijenke. Upotrijebite ga za cijevi, žice, kabele i vodilice.",
"help.solid.press_pull": "Dodaje ili uklanja materijal dok povlačite lice, ili zaobljuje bridove dok ih povlačite. Upotrijebite ga za brze izmjene izravno na modelu.",
"help.solid.remove": "Uklanja odabrana tijela iz dizajna od ove točke vremenske trake nadalje; raniji koraci ih zadržavaju. Upotrijebite ga kako biste odbacili pomoćno tijelo, npr. alat za rezanje koji vam više ne treba.",
"help.solid.replace_face": "Premješta odabrana ravna lica na ravninu ili na paralelno lice, a tijelo raste ili se smanjuje da ga dosegne. Upotrijebite ga kako biste poravnali lice s drugim dijelom ili pomoćnom ravninom.",
"help.solid.revolve": "Okreće profil skice oko osi i izrađuje okruglo tijelo. Koristite ga za vratila, gumbe, posude i svaki dio koji je okrugao oko središnje linije.",
"help.solid.rib": "Dodaje tanku stijenku duž otvorene krivulje skice, produljenu do sljedećih lica tijela. Upotrijebite ga za ukrućivanje stijenki i kutova, primjerice u kalupljenim ili ispisanim dijelovima.",
"help.solid.scale": "Povećava ili smanjuje odabrana tijela za faktor, jednako u svim smjerovima ili posebno po osi. Upotrijebite ga kako biste promijenili veličinu uvezenog oblika ili uračunali skupljanje.",
"help.solid.shell": "Izdubljuje tijelo i ostavlja stijenke zadane debljine, a može otvoriti lica koja odaberete. Koristite ga za kutije, poklopce i druge tankostijene dijelove.",
"help.solid.sphere": "Izrađuje kuglu iz polumjera ili promjera oko središnje točke. Upotrijebite ga za kugle, gumbe i zaobljene krajeve.",
"help.solid.split_body": "Reže tijelo na zasebna tijela ravninom, licem drugog tijela ili linijom skice. Upotrijebite ga za dijelove koji se zasebno ispisuju, obrađuju ili boje.",
"help.solid.split_face": "Dijeli odabrana lica po ravnini, licu drugog tijela ili krivuljama skice, bez rezanja tijela. Upotrijebite ga kako biste dijelu lica dali vlastiti nagib, boju ili odmak.",
"help.solid.sweep": "Povlači profil skice duž putanje i izrađuje tijelo. Koristite ga za cijevi, tračnice, ručke i svaki dio konstantnog presjeka koji prati krivulju.",
"help.solid.thread": "Dodaje ISO metrički navoj na cilindrično lice, kao kozmetički navoj ili urezan u tijelo. Upotrijebite ga za vijke, navojne provrte i ispisane dijelove s vijkom.",
"help.solid.torus": "Izrađuje prsten iz velikog polumjera oko njegove osi i malog polumjera za njegov okrugli presjek. Upotrijebite ga za O-prstenove, ručke i okrugle perle.",
"help.solid.web": "Dodaje tanku stijenku duž svake otvorene krivulje skice, svaku produljenu do sljedećih lica tijela. Upotrijebite ga za mrežu potpornih stijenki unutar kućišta i posuda.",
"help.surface.blend": "Izrađuje plohu koja premošćuje bridove dvaju tijela, tangentnu ili kontinuiranu po zakrivljenosti s oba. Upotrijebite ga za glatko spajanje dviju ploha preko razmaka.",
"help.surface.boundary": "Izrađuje plohu koja ispunjava petlju od dvije do četiri krivulje skice ili mrežu krivulja. Upotrijebite ga za ploče slobodnog oblika određene svojim bridovima.",
"help.surface.extend": "Produljuje plohu preko njezinih bridova, za zadanu udaljenost ili do ravnine ili lica. Upotrijebite ga kako bi se plohe preklapale prije odsijecanja ili sašivanja.",
"help.surface.extrude": "Potiskuje krivulje ili profile skice na zadanu udaljenost u plohu, samo stijenke, bez zatvaranja krajeva. Upotrijebite ga za tanke stijenke te alate za rezanje ili razdvajanje.",
"help.surface.fair": "Zaglađuje unutrašnjost ploha slobodnog oblika dok njihovi bridovi ostaju na mjestu. Upotrijebite ga za izravnavanje izbočina i valovitih odraza na plohi.",
"help.surface.loft": "Izrađuje plohu koja redom prolazi kroz dva ili više presjeka, bez zatvaranja krajeva. Upotrijebite ga za ljuske i prijelaze između različitih oblika.",
"help.surface.match": "Ponovno izrađuje brid plohe tako da se susreće s bridom drugog tijela, uz usklađenu tangentnost ili zakrivljenost. Upotrijebite ga za glatko zatvaranje šava između dviju ploha.",
"help.surface.offset": "Izrađuje kopiju lica na udaljenosti duž njihovih normala, kao novo plošno tijelo. Upotrijebite ga za oplate, zazore ili drugu stranu stijenke.",
"help.surface.patch": "Ispunjava područje skice ili zatvorenu petlju bridova licem, ravnim ili glatko zakrivljenim. Upotrijebite ga za zatvaranje otvora u plošnom tijelu.",
"help.surface.reverse_normal": "Okreće lica plošnog tijela, pa im se vanjska strana okrene na drugu stranu. Upotrijebite ga prije podebljavanja ili sašivanja kad lica gledaju prema unutra.",
"help.surface.revolve": "Okreće krivulje ili profile skice oko osi u plohu, bez zatvaranja krajeva. Upotrijebite ga za okrugle ljuske poput sjenila svjetiljki, zdjela i mlaznica.",
"help.surface.ruled": "Izrađuje traku ravnih linija koje izlaze iz lanca bridova, duž normale lica, tangente ili pod kutom. Upotrijebite ga za stijenke s nagibom, izlazne plohe i plohe razdvajanja.",
"help.surface.stitch": "Sašiva plošna tijela duž njihovih zajedničkih bridova, u puno tijelo kad se zatvore. Upotrijebite ga za pretvaranje skupa ploha u jedno tijelo.",
"help.surface.sweep": "Pomiče krivulje ili profile skice duž putanje u plohu, bez zatvaranja krajeva. Upotrijebite ga za oluke, obrube i druge tanke oblike koji prate putanju.",
"help.surface.thicken": "Daje plošnom tijelu debljinu i pretvara ga u puno tijelo. Upotrijebite ga za izradu dijelova za ispis ili obradu iz ploha.",
"help.surface.trim": "Odsijeca plohu ravninom, drugom plohom ili krivuljama skice i zadržava stranu koju odaberete. Upotrijebite ga za rezanje ploha na oblik prije sašivanja.",
"help.surface.unstitch": "Odvaja lica tijela u zasebna plošna tijela; puno tijelo se raspada na plohe. Upotrijebite ga za preradu pojedinačnih lica tijela.",
"help.surface.untrim": "Uklanja otvore iz lica ili vraća njegovu vanjsku granicu na prirodne granice plohe. Upotrijebite ga za povrat cijele plohe nakon odsijecanja.",
"help.third_party": "Licence trećih strana",
"help.timeline.compute_all": "Ponovno gradi svaku značajku na vremenskoj traci od početka. Upotrijebite ga kako biste osvježili model i vidjeli koje značajke ne uspijevaju.",
"help.timeline.delete": "Briše odabrane značajke s vremenske trake; brisanje skice briše i značajke izrađene iz nje. Upotrijebite ga kako biste uklonili korak koji više ne želite.",
"help.timeline.dependents": "Navodi značajke koje bi se izbrisale zajedno s nekom značajkom i one koje bi bez nje zakazale. Upotrijebite ga prije brisanja ili promjene značajke.",
"help.timeline.play": "Ponavlja preostale značajke jednu po jednu, s pauzom od pola sekunde nakon svake ponovne izgradnje. Ponovno pokrenite ovu naredbu ili pritisnite Escape za zaustavljanje; Idi na kraj skače odmah.",
"help.view.apply": "Okreće prikaz u standardni smjer, primjerice pogled sprijeda, odozgo ili izometrijski, ili u spremljeni imenovani prikaz. Upotrijebite ga za gledanje modela iz stalnog kuta.",
"help.view.delete": "Briše spremljeni imenovani prikaz. Model se ne mijenja.",
"help.view.fit": "Zumira i pomiče prikaz tako da cijeli model, ili odabir, ispuni prikaz. Upotrijebite ga kad je model izašao iz vidnog polja.",
"help.view.grid": "Prikazuje ili skriva mrežu u prozoru prikaza. Upotrijebite je kao vodič za veličinu i orijentaciju pri modeliranju.",
"help.view.ground_shadow": "Prikazuje ili skriva sjenu modela na podlozi. Upotrijebite je kako biste lakše procijenili visinu i položaj.",
"help.view.home": "Vraća prikaz u početni smjer i uklapa model. Upotrijebite ga za brz povratak na poznat prikaz.",
"help.view.list": "Navodi imenovane prikaze spremljene u dizajnu. Upotrijebite ga za pronalaženje prikaza koji ste ranije spremili.",
"help.view.navigate": "Okreće, pomiče ili zumira prikaz u koracima, primjerice za četvrtinu okreta ulijevo. Upotrijebite ga za precizno pomicanje kamere umjesto povlačenja.",
"help.view.navigation_bar": "Prikazuje ili skriva navigacijsku traku na dnu prozora prikaza. Sakrijte je za više prostora, prikažite je za pristup alatima prikaza mišem.",
"help.view.rename": "Daje spremljenom imenovanom prikazu novi naziv. Sam se prikaz ne mijenja.",
"help.view.save": "Sprema trenutni položaj kamere kao imenovani prikaz u dizajnu. Upotrijebite ga za kasniji povratak na isti kut, primjerice za snimke zaslona.",
"help.view.spin": "Neprekidno orbitira prikaz oko modela do sljedećeg klika ili tipke. Upotrijebite ga za predstavljanje modela sa svih strana.",
"help.view.tool": "Uključuje alat kamere, orbitiranje, pomicanje ili zumiranje, pa povlačenje lijevom tipkom miša pomiče prikaz dok ga ne isključite. Upotrijebite ga na dodirnoj pločici ili bez srednje tipke miša.",
"help.view.visual_style": "Mijenja način crtanja modela: osjenčano sa ili bez bridova, žičani model ili sa skrivenim bridovima. Žičani model upotrijebite za pogled unutra, osjenčano za čist izgled.",
"history.sketch_under_constrained": "Nedovoljno ograničeno (stupnjevi slobode: {count})",
"history.sketch_under_constrained_one": "Nedovoljno ograničeno (stupanj slobode: {count})",
"hole_presets.confirm_delete": "Potvrdi brisanje",
@@ -1615,6 +1883,10 @@
"material.selection.mixed": "Različiti materijali",
"measure.at": "Na",
"measure.item": "Stavka {number}",
"measure.quick_copied": "Mjerenje kopirano",
"measure.quick_copy": "Kliknite za kopiranje mjerenja",
"measure.quick_edges": "Bridovi: {count}",
"measure.quick_faces": "Lica: {count}",
"messages.ago_h": "prije {n} h",
"messages.ago_min": "prije {n} min",
"messages.ago_s": "prije {n} s",
@@ -1648,6 +1920,7 @@
"nav.hfss.help": "Alt+povlačenje lijevom tipkom pomiče, Shift+Alt+lijeva tipka zumira, Ctrl+povlačenje lijevom tipkom na praznom prostoru orbitira",
"nav.inventor.help": "Povlačenje srednjom tipkom pomiče, Shift+srednja orbitira, Ctrl+srednja zumira, povlačenje desnom orbitira",
"nav.maya.help": "Alt+povlačenje lijevom tipkom orbitira, Alt+srednja tipka pomiče, Alt+desna tipka zumira; povlačenje srednjom tipkom također pomiče",
"nav.nx.help": "Povlačenje srednjom tipkom orbitira, Shift+srednja pomiče (u NX-u srednja + desna), Ctrl+srednja zumira (u NX-u srednja + lijeva); povlačenje desnom tipkom ne dira kameru",
"nav.openscad.help": "Povlačenje lijevom tipkom po praznom prostoru orbitira, Shift+povlačenje lijevom odabire okvirom, povlačenje geometrije skice uređuje je; povlačenje desnom ili srednjom tipkom pomiče, Shift+desna ili Shift+srednja zumira",
"nav.perspective.sketch": "Uređivanje skice koristi ortografski prikaz. Završite skicu kako biste prešli na perspektivu.",
"nav.right_drag_orbits.help": "Isključeno: povlačenje desnom tipkom ne dira kameru, a desna tipka samo otvara kontekstni izbornik. Odabir mapiranja miša SolidWorks isključuje ovu opciju.",
@@ -1767,6 +2040,11 @@
"not a move": "nije pomak",
"not a number": "nije broj",
"open a sketch first": "najprije otvorite skicu",
"parameters.apply_live": "Primijeni svaku promjenu čim napustite njezino polje",
"parameters.apply_live_tip": "Isključeno: promjene čekaju Primijeni ili U redu, a zatim se dizajn jednom ponovno izgradi za sve njih. Odustani ili Escape ih odbacuje.",
"parameters.held": "Promjene koje čekaju Primijeni: {count}",
"parameters.held_hint": "Uređujte izraze i jedinice. Promjene čekaju Primijeni ili U redu.",
"parameters.held_one": "1 promjena čeka Primijeni",
"parts.automatic_name": "automatski",
"parts.dimension.across_flats": "Mjera ključa",
"parts.dimension.bore": "Provrt",
@@ -1789,6 +2067,8 @@
"parts.family.set_screw": "Bezglavi vijak s unutarnjim šesterokutom, ravni vrh",
"parts.family.socket_head_cap_screw": "Vijak s cilindričnom glavom i unutarnjim šesterokutom",
"parts.family.washer": "Obična podloška",
"parts.holes": "Provrti (neobavezno)",
"parts.placement_hint": "odaberite jedan ili više provrta kako biste u svaki smjestili dio, ili U redu postavlja dio u ishodište",
"pattern.alignment_2": "Poravnanje 2",
"pattern.alignment_hint": "Broj uključuje izvornik. Središte ravnomjerno raspoređuje kopije; Obrni bira dodatnu stranu za parne ukupne brojeve.",
"pattern.direction_1": "Smjer 1",
@@ -1862,6 +2142,8 @@
"prefs.ctrl_cmd": "Ctrl / Cmd",
"prefs.curved_surfaces": "Zakrivljene plohe",
"prefs.curves": "Zakrivljene plohe",
"prefs.dark_parts_shading": "Zadrži oblik tamnih dijelova",
"prefs.dark_parts_shading_help": "Sjenča prikaz u linearnom svjetlu uz meko dopunsko svjetlo neba, tako da tamna lica zadrže gradijent umjesto da pocrne",
"prefs.dead_zone_note": "Šrafirana traka je mrtva zona: kretanje unutar nje se zanemaruje.",
"prefs.default": "zadano",
"prefs.design": "Zadane postavke dizajna",
@@ -1876,6 +2158,8 @@
"prefs.edges": "Bridovi i sjenčanje",
"prefs.extend": "Produži",
"prefs.extra_navigation": "Ctrl + povlačenje lijevom tipkom po praznom prostoru orbitira; držite razmaknicu za pomicanje.",
"prefs.extrude_view_isometric": "Okreni prikaz u izometrijski kad se otvori Ekstrudiraj",
"prefs.extrude_view_return": "Vrati se na prethodni prikaz kad se Ekstrudiraj zatvori",
"prefs.follows_os": "Prati operacijski sustav",
"prefs.font": "Font",
"prefs.font_fallback": "Znakovi koji nedostaju odabranom fontu prikazuju se ugrađenim fontom, tako da nijedna oznaka ne prikazuje prazan kvadrat.",
@@ -1891,6 +2175,7 @@
"prefs.graphics_card_auto": "Automatski",
"prefs.graphics_card_missing": "Spremljena grafička kartica nije dostupna; koristi se Automatski.",
"prefs.graphics_card_restart": "Stupa na snagu nakon ponovnog pokretanja SolidCrafta. WGPU_ADAPTER_NAME ima prednost nad ovim odabirom.",
"prefs.graphics_card_unused": "Spremljena grafička kartica nije korištena za ovaj prozor; kartica koja se koristi prikazana je u Pomoć › O programu i u statusnoj traci. Pokušajte s opcijom Automatski ili postavite WGPU_ADAPTER_NAME na jedinstveni dio naziva kartice.",
"prefs.graphics_note": "Žrtvujte brzinu za glatkoću. Svaki odabir pokazuje svoj učinak na primjeru.",
"prefs.graphics_presets_note": "Unaprijed zadane vrijednosti postavljaju sve odabire ispod odjednom.",
"prefs.hide_constraint_glyphs_zoomed_out": "Sakrij simbole ograničenja kada je prikaz umanjen",
@@ -1905,6 +2190,8 @@
"prefs.history_sketches_note": "Kad je Skice postavljeno na Ispod svoje značajke, vremenska traka lijevo prikazuje svaku skicu jednu razinu uvučeno, ispod prve značajke izrađene iz nje, kad god je dovoljno široka za nazive. Vremenska traka na dnu uvijek zadržava redoslijed nastanka.",
"prefs.history_sketches_under_feature": "Ispod svoje značajke",
"prefs.hold_stop_snapping": "Držite kako biste isključili privlačenje",
"prefs.home_fit_size": "Veličina za Početni prikaz i Uklopi",
"prefs.home_fit_size_note": "Koliki dio prikaza model ispunjava kad ga uokviri Početni prikaz, Uklopi, otvaranje dizajna ili promjena prikaza u navigatoru, bez obzira na to je li postavka ispod uključena. 100 %: ispunjava prikaz između panela, kompasa i navigacijske trake.",
"prefs.icons_only": "Samo ikone",
"prefs.imported_file": "Uvezena datoteka",
"prefs.in_browser": "U stablu modela",
@@ -1913,13 +2200,20 @@
"prefs.interface_language": "Jezik sučelja",
"prefs.interface_note": "Kako SolidCraft izgleda i gdje su njegovi dijelovi.",
"prefs.interval_minutes": "{n} min",
"prefs.invert_navigator_arrows": "Obrni strelice za rotaciju kocke prikaza",
"prefs.invert_navigator_arrows_note": "Strelice oko kocke orbitiraju kameru u smjeru u kojem pokazuju, kao u programima Fusion i Inventor: strelica s lijeve strane pokazuje udesno i zakreće kameru udesno. Isključeno: strelica okreće kocku prema strani na kojoj se nalazi, pa lijeva strelica zakreće kameru ulijevo. Postavka ne utječe na zakrivljene strelice za valjanje.",
"prefs.keep_work_on_tab_switch": "Zadrži dijaloge i alate otvorenima pri prebacivanju između dizajna",
"prefs.keep_work_on_tab_switch_note": "Svaka kartica dizajna zadržava svoj otvoreni dijalog ili alat, s onim što ste u njemu odabrali i upisali, te svoju karticu alatne trake. Kad se vratite na dizajn, ponovno su tu. Isključeno: prebacivanje između dizajna poništava ih i prikazuje karticu Model.",
"prefs.labels": "Oznake",
"prefs.language_system": "Sustav",
"prefs.layout": "Raspored",
"prefs.layout_note": "Kompaktno pričvršćuje panele uz rubove prozora. Prozirnost stabla modela dostupna je u opciji Plutajuće. Stranu Asistenta promijenite na stranici Asistent.",
"prefs.left": "Lijevo",
"prefs.left_click": "Lijevi klik",
"prefs.line_drag_draws_one": "Pritisak i povlačenje crta jednu liniju",
"prefs.line_drag_draws_one_note": "U alatu Linija pritisak, povlačenje i otpuštanje crta jednu liniju od mjesta pritiska do mjesta otpuštanja i ondje završava. Klikovi i dalje crtaju lanac. Isključeno: povlačenje postavlja točku ondje gdje se otpusti, kao i klik.",
"prefs.line_hover_tangent_arc": "Zadržite pokazivač na posljednjoj točki linije kako biste prešli na tangentni luk",
"prefs.line_hover_tangent_arc_note": "U alatu Linija, nakon što je nacrtan segment, odmaknite pokazivač od posljednje točke lanca, vratite ga na nju i držite ga mirno: sljedeći klik završava tangentni luk, a isti pokret vraća na linije. Isključeno: zadržavanje na toj točki ne radi ništa.",
"prefs.linked_designs": "Povezani dizajni",
"prefs.live_input": "Ulaz uživo",
"prefs.live_preview": "Pregled uživo",
@@ -1943,6 +2237,8 @@
"prefs.mouse_mapping": "Mapiranje miša",
"prefs.navigation": "Navigacija",
"prefs.navigation_note": "Kako miš, dodirna pločica i 3D miš pomiču prikaz.",
"prefs.navigator_fit": "Uklopi model nakon promjene prikaza u navigatoru",
"prefs.navigator_fit_note": "Lice, kut ili strelica kocke prikaza, odnosno os orijentacijskog gizma, također usmjerava pogled na sredinu modela s jedne udaljenosti na kojoj se uklapa iz svakog smjera (njegova granična sfera). Početni prikaz koristi isti zum i središte dok je ova opcija uključena, pa se prikazi koje odaberete poslije njega samo okreću. Isključeno: prikaz se okreće na mjestu i zadržava svoj cilj i zum.",
"prefs.network_host_remove": "Ukloni",
"prefs.network_locations": "Dopusti mrežne lokacije u dizajnima",
"prefs.network_locations_note": "Isključeno: povezane datoteke dizajna na drugom računalu (\\\\server\\share) otvaraju se samo s poslužitelja navedenih ovdje ili nakon što ga dopustite kad se to zatraži.",
@@ -1955,6 +2251,8 @@
"prefs.origin_plane_names": "Nazivi ravnina ishodišta",
"prefs.origin_plane_names_note": "Nazivi prikazani u stablu modela, dijalozima i popisima. {top} je XY, {front} je XZ, a {right} je YZ, sa Z prema gore. Naredbe, skripte i spremljeni dizajni zadržavaju XY, XZ i YZ.",
"prefs.overall_speed": "Ukupna brzina",
"prefs.parameter_list_rows": "Retci popisa parametara",
"prefs.parameter_list_rows_tip": "Strelica prema dolje u praznom polju vrijednosti prikazuje popis parametara, prvo favorite, do ovoliko njih. Manje održava popis laganim u velikom dizajnu.",
"prefs.persistent_ribbon_pressed": "Istakni aktivne naredbe na vrpci",
"prefs.persistent_ribbon_pressed_help": "Ističe naredbe na vrpci dok su njihovi efekti uključeni. Isključite kako biste zadržali prethodni neutralni izgled i pomoć za naredbe.",
"prefs.perspective_fov": "Vidno polje",
@@ -1984,9 +2282,13 @@
"prefs.quality_fastest": "najbrže",
"prefs.quality_slowest": "najsporije",
"prefs.quality_smoother": "glađe",
"prefs.quick_measure": "Brzo mjerenje u kutu prikaza",
"prefs.quick_measure_note": "Veličina odabira u donjem desnom kutu prikaza: duljina brida, ili Ø i R za okrugli, površina lica, položaj točke, udaljenost i kut dviju stavki, zbroj više bridova ili lica. Klik ga kopira.",
"prefs.render_previous_geometry_budget": "Koristi prethodni proračun geometrije za pregled renderiranja",
"prefs.render_previous_geometry_budget_help": "Vrati prethodnu fiksnu granicu geometrije (512 MiB na 64-bitnom desktopu, 128 MiB drugdje) umjesto proračuna prema uređaju.",
"prefs.reports_saved": "Spremljeno: {n}",
"prefs.ribbon_click_ends_tool": "Klik na gumb aktivnog alata završava ga",
"prefs.ribbon_click_ends_tool_note": "Klik na istaknuti gumb na vrpci alata za skiciranje koji je u uporabi završava taj alat, pa klikovi u prikazu ponovno služe za odabir. Isključeno: klik ponovno pokreće alat.",
"prefs.ribbon_reveal": "Prikaži rezultate pretraživanja na vrpci",
"prefs.ribbon_reveal_note": "Zadržavanje pokazivača iznad rezultata u Pretraži naredbe pokazuje gdje se naredba nalazi na vrpci: njezinu karticu, gumb ili redak u padajućem izborniku panela. Naredba pokrenuta iz pretraživanja ondje zatreperi, a pokrenuta naredba iz padajućeg izbornika označava svoj panel.",
"prefs.right_click": "Desni klik",
@@ -2016,6 +2318,8 @@
"prefs.sketch_exit_view.previous": "Vrati se na prethodni prikaz",
"prefs.sketch_exit_view.unless_rotated": "Vrati se osim ako je rotirano",
"prefs.sketch_exit_view_note": "Kamo prikaz ide nakon Završi skicu, Odustani ili dvostrukog Esc.",
"prefs.sketch_face_activates_part": "Skiciranje na licu dijela čini taj dio aktivnim",
"prefs.sketch_face_activates_part_note": "Skica započeta na licu tijela druge komponente najprije aktivira tu komponentu, pa skica pripada njoj i u stablu modela ostaje uz taj dio. Taj dio nakon toga ostaje aktivan. Isključeno: skica pripada aktivnoj komponenti.",
"prefs.sketch_open_look_at": "Okreni kameru prema skici pri otvaranju",
"prefs.sketch_open_look_at_note": "Isključeno: kad izradite ili uredite skicu, prikaz ostaje onakav kakav jest. Pogledaj okreće prikaz prema skici kad to želite.",
"prefs.sketch_recent_snap": "Automatski privlači na nedavna središta i središnje točke",
@@ -2029,6 +2333,8 @@
"prefs.sketch_tab_always_note": "Kartica Skica ostaje na vrpci, odmah iza kartice Model, dok nijedna skica nije otvorena. Njezini alati za crtanje tada pokreću skicu na odabranoj ravnini ili licu, ili na ravnini koju sljedeću odaberete, s alatom spremnim u njoj.",
"prefs.sketch_tracking_guides": "Vodilice poravnanja središta i središnje točke",
"prefs.sketch_tracking_guides_note": "Zadržite pokazivač iznad središta kružnice ili središnje točke ravnog brida, zatim se pomaknite vodoravno ili okomito da se prikaže privremena točkasta vodilica.",
"prefs.sketch_tracking_points": "Vodilice poravnanja iz krajnjih točaka i kutova tijekom crtanja",
"prefs.sketch_tracking_points_note": "Dok alat za crtanje čeka točku, zadržavanje pokazivača iznad kraja linije ili luka, kuta pravokutnika ili slobodne točke prikazuje istu privremenu točkastu vodilicu kao i za središte ili središnju točku. Isključeno: samo središta i središnje točke.",
"prefs.sketching": "Skiciranje",
"prefs.snap_drawing_note": "Tijekom crtanja ili povlačenja točke skice.",
"prefs.source": "Izvor",
@@ -2045,6 +2351,24 @@
"prefs.status_error": "Pogreška",
"prefs.status_selected": "Odabrano",
"prefs.status_warning": "Upozorenje",
"prefs.structure.appearance": "Izgled",
"prefs.structure.appearance_note": "Boje, tekst i pristupačnost.",
"prefs.structure.in_profile": "U profilu",
"prefs.structure.layout": "Raspored",
"prefs.structure.layout_note": "Gdje se nalaze dijelovi prozora.",
"prefs.structure.look": "Vizualno",
"prefs.structure.measure_pointer": "Mjerenje i pokazivač",
"prefs.structure.mouse3d": "3D miš",
"prefs.structure.mouse3d_note": "SpaceMouse i SpaceNavigator.",
"prefs.structure.navigation_note": "Miš i dodirna pločica. 3D miš ima vlastitu stranicu.",
"prefs.structure.profile": "Profil",
"prefs.structure.profile_edited": "Promijenjeno otkako je spremljeno",
"prefs.structure.profile_hover": "Spremljeno u profilima postavki",
"prefs.structure.scale_percent": "{percent}%",
"prefs.structure.sketch": "Skica",
"prefs.structure.tools": "Alati",
"prefs.structure.tools_note": "Kako se ponašaju alati za modeliranje.",
"prefs.structure.work": "Rad",
"prefs.supersampling_brief": "Iscrtava prikaz većim i smanjuje ga filtriranjem: vrlo oštro i zahtjevnije.",
"prefs.tab_accent_note": "Naglasna boja prati aktivnu karticu",
"prefs.theme_file": "datoteka teme",
@@ -2056,6 +2380,16 @@
"prefs.theme_follow_off": "Isključeno",
"prefs.theme_follow_stop": "Prestani pratiti",
"prefs.theme_import_hint": "Kliknite za odabir datoteke teme, ispustite je ovdje ili pritisnite Ctrl+V (Cmd+V na Macu) s kopiranom temom",
"prefs.theme_option_opacity": "Neprozirnost",
"prefs.theme_option_opacity_help": "Podešava neprozirnost plutajućih panela. Donja granica čitljivosti štiti tekst preko boja prozora prikaza.",
"prefs.theme_option_tab_colours": "Boje kartica",
"prefs.theme_option_tab_colours_help": "Koristi boje panela i prozora prikaza ove teme za svaku karticu vrpce.",
"prefs.theme_option_tab_fade_ms": "Prijelaz kartica",
"prefs.theme_option_tab_fade_ms_help": "Postupno prelijeva boje panela i prozora prikaza pri promjeni kartice. Nula mijenja trenutno.",
"prefs.theme_options_badge": "Opcije",
"prefs.theme_options_more": "Više · {count}",
"prefs.theme_options_reset": "Vrati zadano",
"prefs.theme_options_unavailable": "Nedostupno na ovom uređaju",
"prefs.theme_paste": "Zalijepi temu",
"prefs.theme_paste_none": "Međuspremnik ne sadrži SolidCraft temu",
"prefs.timeline_half_hour": "−30 min",
@@ -2077,6 +2411,8 @@
"prefs.under_cursor": "Ispod pokazivača",
"prefs.units_precision": "Jedinice i preciznost",
"prefs.updates": "Ažuriranja",
"prefs.value_boxes_in_view": "Prikaži vrijednosti pokraj njihovih ručica u prikazu",
"prefs.value_boxes_in_view_tip": "Vrijednost naredbe (Udaljenost, Polumjer…) u okviru pokraj njezine ručice, preko modela. Isključeno: upisujete je u prozor naredbe, koji preuzima tipkovnicu nakon odabira, i ništa ne prekriva model.",
"prefs.view": "Ponašanje prikaza",
"prefs.view_confirm_corner": "U redu i Odustani u kutu prikaza",
"prefs.view_confirm_corner_note": "Dok je otvoren dijalog ili skica, kvačica i križić gore desno u prikazu rade isto što i gumbi U redu i Odustani u dijalogu, odnosno završavaju i poništavaju skicu. Navigator prikaza pomiče se ispod njih.",
@@ -2086,6 +2422,12 @@
"prefs.viewport_background": "Pozadina",
"prefs.viewport_background_colour": "Boja",
"prefs.viewport_background_theme": "Gradijent teme",
"prefs.viewport_section_status": "Prikaži status presjeka u prozoru prikaza",
"prefs.viewport_section_status_help": "Prikazuje postavku presjeka u prozoru prikaza. Escape i aktivni gumb na vrpci isključuju je. Isključite kako biste zadržali prethodne kontrole presjeka.",
"prefs.viewport_status_details": "Detalji prozora prikaza uživo",
"prefs.viewport_status_details_help": "Uređuje postavke aktivne analize i presjeka u standardnim karticama detalja. Isključite kako biste vratili legende analize samo za čitanje i dijaloški prozor Presjek.",
"prefs.viewport_status_summary": "Sažmi statusne stavke prozora prikaza",
"prefs.viewport_status_summary_help": "Sažima tri ili više statusnih stavki prozora prikaza u jednu zbirnu oznaku. Isključite kako bi svaka stavka ostala u punom retku.",
"prefs.wheel": "Kotačić",
"prefs.wheel_trackpad": "Kotačić i dodirna pločica",
"prefs.workspace": "Radni prostor",
@@ -2964,7 +3306,9 @@
"render.output_ready": "Spremno za renderiranje",
"render.output_run_check": "Pokreni provjeru",
"render.output_size_limit": "{method}: do {dimension} px po strani i {pixels} piksela. Najveća veličina koja stane: {width} × {height}.",
"render.output_size_method_profile": "Za renderiranje {width} × {height} odaberite {method} s CPU profilom resursa {profile} ili manju veličinu.",
"render.output_size_ok": "Veličina u redu · {width} × {height} px",
"render.output_size_profile": "Za renderiranje {width} × {height} odaberite CPU profil resursa {profile} ili manju veličinu.",
"render.output_swap_orientation": "Zamijeni širinu i visinu",
"render.output_tools_inspector": "Veličinu i format uredite u inspektoru Izlaz.",
"render.output_view_image": "Prikaži sliku",
@@ -3177,6 +3521,7 @@
"render.size_custom": "Prilagođeno…",
"render.size_full_hd": "Full HD",
"render.size_hd": "HD",
"render.size_needs_profile": "{size} · treba {profile}",
"render.size_presets": "Unaprijed zadane veličine",
"render.size_presets_pending": "Stiže s uređivačem Izlaz",
"render.size_preview": "Pregled",
@@ -3464,6 +3809,24 @@
"sheet.flange_type_contour": "Kontura",
"sheet.flange_type_edge": "Brid",
"sheet.no_body": "nema limenog tijela: izradite ga pomoću Prirubnica > Osnova ili pretvorite ploču u lim pomoću Pretvori u lim (odaberite njezino veliko ravno lice)",
"sheet.personal_rules.confirm_delete": "Potvrdi brisanje",
"sheet.personal_rules.delete": "Izbriši",
"sheet.personal_rules.delete_prompt": "Izbrisati ovo osobno pravilo? Pravila koja su već u dizajnima ostaju nepromijenjena.",
"sheet.personal_rules.full": "Osobna biblioteka već sadrži 64 pravila.",
"sheet.personal_rules.invalid_name": "Unesite kratak naziv bez prijeloma redaka ili kontrolnih znakova.",
"sheet.personal_rules.invalid_values": "Dovršite vrijednosti pravila: svaka se mora moći izračunati u ovom dizajnu, uz pozitivnu debljinu i K-faktor od 0 do 1.",
"sheet.personal_rules.missing": "Odabrano osobno pravilo više nije dostupno.",
"sheet.personal_rules.name": "Naziv pravila",
"sheet.personal_rules.name_exists": "Osobno pravilo s ovim nazivom već postoji. Upotrijebite drugi naziv.",
"sheet.personal_rules.name_hint": "Jedinstven naziv",
"sheet.personal_rules.overwrite": "Spremi promjene u odabrano osobno pravilo",
"sheet.personal_rules.rename": "Preimenuj",
"sheet.personal_rules.rule": "Osobno pravilo",
"sheet.personal_rules.save": "Spremi novo",
"sheet.personal_rules.scope": "Spremljeno u vašem profilu za sve dizajne.",
"sheet.personal_rules.select": "Odaberite pravilo",
"sheet.personal_rules.title": "Osobna pravila",
"sheet.personal_rules.unsupported": "Ovo pravilo ima vrijednosti koje ova verzija ne može upotrijebiti.",
"shortcut.json_error": "parametri moraju biti JSON: {error}",
"shortcut.no_command": "nema naredbe `{id}`; tekst prije JSON-a mora biti id naredbe",
"shortcut.pin": "Prikvači na vrh okvira S",
@@ -3500,8 +3863,10 @@
"sketch_text.align_right": "Desno",
"sketch_text.bold": "Podebljano",
"sketch_text.builtin_font": "{family} (ugrađeno)",
"sketch_text.formula": "Počnite znakom = kako biste riječi izgradili iz parametara: ='W' + number(Width)",
"sketch_text.italic": "Kurziv",
"sketch_text.loading_fonts": "Traženje instaliranih fontova…",
"sketch_text.no_bold": "Ugrađeni font nema podebljanu varijantu: odaberite instalirani font",
"sketch_text.on_path": "Tekst prati svoju putanju: krivulja ga postavlja",
"sketch_text.path_clear": "Skini tekst s njegove krivulje",
"sketch_text.path_hint": "Krivulja skice koju tekst prati: kliknite ovdje, a zatim krivulju",
@@ -3640,6 +4005,8 @@
"ui.3d_mouse_section": "3D miš",
"ui.3d_mouse_show_in_view": "Prikaži 3D miš u 3D prikazu",
"ui.3d_mouse_show_in_view_tip": "Slika vašeg 3D miša u donjem lijevom kutu, koja se kreće dok ga pomičete.",
"ui.3d_mouse_sketch_orbit": "Okreći skice 3D mišem",
"ui.3d_mouse_sketch_orbit_tip": "3D miš okreće prikaz i dok je skica otvorena i gleda se okomito, kao što to može i miš. Isključeno: pomiče i zumira skicu dok ne nagnete prikaz.",
"ui.3d_mouse_skip": "Moj uređaj ovo ne može",
"ui.3d_mouse_skip_tip": "Preskače ovo kretanje u oba smjera, a kalibracija ga izostavlja.",
"ui.3d_mouse_speed": "Brzina 3D miša",
@@ -3708,6 +4075,7 @@
"ui.agent_chat_auth_terminal": "Pokrenite ovo u terminalu, a zatim pritisnite Poveži ponovno:",
"ui.agent_chat_auth_title": "Prijavi se kod agenta",
"ui.agent_chat_cancel": "Odustani",
"ui.agent_chat_cannot_start": "Instalirano, ali se ne pokreće: {error}",
"ui.agent_chat_changes": "Promjene: {n}, jedan korak poništavanja",
"ui.agent_chat_changes_n": "Promjene: {n}",
"ui.agent_chat_changes_of": "Promjene: {n}/{limit}",
@@ -3800,9 +4168,12 @@
"ui.agent_chat_queued_stopped": "U redu čekanja (zaustavljeno, nije poslano)",
"ui.agent_chat_refresh": "Osvježi",
"ui.agent_chat_refused": "Nije dopušteno agentu: {reason}",
"ui.agent_chat_reinstall": "{agent} je instaliran ({program}), ali se nije pokrenuo kad ga je SolidCraft provjerio: {error}\nInstalacija je možda nepotpuna ili izrađena za drugu vrstu računala. Ponovno ga instalirajte naredbom `{install}`, provjerite ispisuje li u terminalu svoju verziju, a zatim pritisnite Osvježi.",
"ui.agent_chat_remove": "Ukloni iz reda",
"ui.agent_chat_remove_file": "Skini s ove poruke",
"ui.agent_chat_remove_imported": "Skini s ove poruke; dio ostaje u dizajnu (Poništi ga uklanja)",
"ui.agent_chat_reply_cut_off": "Odgovor je dosegnuo ograničenje duljine prije nego što je završio pa je možda nepotpun. Zamolite agenta da nastavi ili da odgovori kraće.",
"ui.agent_chat_reply_declined": "Model je odbio odgovoriti na ovu poruku.",
"ui.agent_chat_retry": "Pokušaj ponovno",
"ui.agent_chat_right": "Desno",
"ui.agent_chat_save": "Spremi",
@@ -3861,12 +4232,17 @@
"ui.ai_copy_suffix": "kopiraj",
"ui.ai_custom_url": "Prilagođeni URL",
"ui.ai_default": "Zadano",
"ui.ai_edit": "Uredi",
"ui.ai_edit_agent_title": "Uredi agenta",
"ui.ai_edit_gone": "Ovaj agent je uklonjen pa nema što spremiti.",
"ui.ai_edit_tip": "Promijenite naziv, naredbu ili krajnju točku ovog agenta. Spremljeni ključ ostaje skriven.",
"ui.ai_http_busy": "krajnja točka je zauzeta ili je preko ograničenja; pokušajte ponovno kasnije",
"ui.ai_http_key": "krajnja točka odbila je ključ: provjerite ga u Postavke > AI",
"ui.ai_http_not_found": "nema takve krajnje točke ili modela: provjerite osnovni URL i naziv modela",
"ui.ai_http_too_large": "razgovor je prevelik za ovu krajnju točku; započnite novi razgovor",
"ui.ai_key": "API ključ",
"ui.ai_key_hint": "neobavezno; čuva se u sustavskom privjesku ključeva",
"ui.ai_key_keep_hint": "ostavite prazno kako biste zadržali spremljeni ključ",
"ui.ai_key_needs_https": "Ključ se šalje samo preko HTTPS-a ili na ovo računalo.",
"ui.ai_key_note": "Čuva se u sustavskom privjesku ključeva, nikad u postavkama SolidCrafta. Za lokalni poslužitelj ostavite prazno.",
"ui.ai_keychain_error": "Sustavski privjesak ključeva odbio je: {error}",
@@ -3893,11 +4269,15 @@
"ui.ai_permissions": "Dopuštenja",
"ui.ai_preset": "Unaprijed zadano",
"ui.ai_protocol": "Protokol",
"ui.ai_reasoning_effort": "Razina zaključivanja",
"ui.ai_reasoning_effort_field_hint": "prazno = zadana vrijednost pružatelja",
"ui.ai_reasoning_effort_hint": "Neobavezno. Šalje se krajnjoj točki kao `reasoning_effort`; prihvaćene vrijednosti razlikuju se od pružatelja do pružatelja (na primjer `low`, `high` ili `max`). SolidCraft nikad ne mijenja vrijednost koju ovdje postavite. Ostavite prazno da se ništa ne šalje i da se zadrži zadana vrijednost pružatelja.",
"ui.ai_remove": "Ukloni",
"ui.ai_request_timed_out": "Model je trajao dulje od {seconds} s. Vremensko ograničenje zahtjeva za ovu krajnju točku možete povećati u Postavke › Asistent.",
"ui.ai_request_timeout": "Vremensko ograničenje zahtjeva",
"ui.ai_request_timeout_hint": "Koliko dugo jedan zahtjev modelu na ovoj krajnjoj točki smije trajati, od 30 s do jednog sata. Povećajte za spori lokalni model.",
"ui.ai_reset": "Vrati zadano",
"ui.ai_save": "Spremi",
"ui.ai_settings": "AI postavke…",
"ui.ai_show_features": "Prikaži AI funkcije",
"ui.ai_show_features_note": "Razgovor s agentom: ploča u kojoj agent za kodiranje koji već koristite ili krajnja točka modela koju odaberete radi na otvorenom dizajnu. Isključeno: nema AI gumba, prečaca, stavke izbornika ni ploče, i ništa se ne traži niti pokreće.",
@@ -4057,6 +4437,7 @@
"ui.dark": "Tamna",
"ui.default_modelling_orientation": "Zadana orijentacija modeliranja",
"ui.delete": "Izbriši",
"ui.delete_select_first": "Najprije odaberite što želite izbrisati: značajke, tijela, komponente ili geometriju skice",
"ui.depth": "Dubina",
"ui.design": "Dizajn",
"ui.design_properties.author": "Autor",
@@ -4071,6 +4452,40 @@
"ui.design_properties.project": "Projekt",
"ui.design_properties.revision": "Revizija",
"ui.design_saved": "Spremljeno: {path}",
"ui.details_access_caption": "Lica pokazuju može li alat doći do njih iz odabranog smjera.",
"ui.details_angle": "Kut",
"ui.details_continuity_caption": "Uredite odabrani šav. Ostali šavovi zadržavaju vlastite postavke.",
"ui.details_continuity_stale": "Ranija geometrija: ponovno pokrenite analizu kako biste uredili ili uokvirili ovaj šav.",
"ui.details_copy_list": "Kopiraj popis",
"ui.details_curvature": "Tolerancija zakrivljenosti",
"ui.details_curvature_caption": "Lica su obojena prema svojem lokalnom polumjeru zakrivljenosti.",
"ui.details_direction": "Smjer alata",
"ui.details_draft_caption": "Lica su obojena prema kutu u odnosu na smjer vađenja iz kalupa.",
"ui.details_edit_seam": "Uredi šav",
"ui.details_fixture": "Uzorak komponente — samo primjer podataka",
"ui.details_fixture_caption": "Uzorak komponente s ilustrativnim vrijednostima; ovo nije rezultat modela.",
"ui.details_fixture_problem": "Primjer nalaza s problemom",
"ui.details_fixture_readout": "Primjer izmjerene vrijednosti",
"ui.details_flip": "Obrni",
"ui.details_gap": "Otvoreni kraj",
"ui.details_hatch": "Šrafiraj presječena lica",
"ui.details_jump": "Skok zakrivljenosti",
"ui.details_key": "Legenda",
"ui.details_offset": "Odmak",
"ui.details_plane": "Ravnina",
"ui.details_pull": "Smjer vađenja iz kalupa",
"ui.details_radius": "Polumjer",
"ui.details_readout": "Očitanje",
"ui.details_samples": "Uzorci",
"ui.details_seam": "{body} · Brid {edge}",
"ui.details_settings": "Postavke",
"ui.details_sharp_gap": "Oštro ili otvoreno",
"ui.details_show_all": "Prikaži sve ({count})",
"ui.details_smooth": "Glatko",
"ui.details_stripes": "Pruge",
"ui.details_target": "Uokviri geometriju",
"ui.details_worst_seams": "Najgori šavovi",
"ui.details_zebra_caption": "Odražene pruge pokazuju koliko se glatko lica spajaju.",
"ui.diameter": "Promjer",
"ui.dimension": "Kota",
"ui.direct_interaction": "Izravna interakcija",
@@ -4115,6 +4530,7 @@
"ui.edit_in_place_saved_elsewhere": "Dio je spremljen u drugu datoteku; sklop i dalje povezuje {name}",
"ui.edit_in_place_wait": "Pričekajte da završi ono što se izvodi u dizajnu",
"ui.edit_section_analysis": "Uredi analizu presjeka",
"ui.edit_sketch_empty": "Nema skica za uređivanje",
"ui.ellipse": "Elipsa",
"ui.emboss_wrap_note": "Ortogonalni linijski profili tangentni na jedan podržani valjak automatski se omataju. Odaberite stijenku kako biste odabrali cilj.",
"ui.end_radius": "Krajnji polumjer",
@@ -4125,12 +4541,15 @@
"ui.equation_explicit": "Eksplicitni",
"ui.equation_form": "Oblik",
"ui.equation_note": "Varijabla je običan broj: sin(t) je uzima u radijanima. Rezultat bez jedinice izražen je u jedinici dizajna.",
"ui.equation_note_range": "Varijabla je duljina, kao i njezin raspon: kombinirajte je s parametrima duljine, a za sin() je podijelite duljinom. Rezultat bez jedinice izražen je u jedinici dizajna.",
"ui.equation_parametric": "Parametarski",
"ui.equation_variable_unit": "Varijabla ima jedinicu raspona",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Ekvivalentni polumjer",
"ui.expand": "Proširi",
"ui.explode_needs_two_components": "Rastavljeni prikaz razmiče komponente, pa dizajn treba imati dvije ili više njih (Nova komponenta, Umetni dizajn ili Izradi komponente iz tijela)",
"ui.exportDxf": "Izvezi DXF…",
"ui.export_ellipsis_keymap": "Izvezi…",
"ui.export_keymap_tip": "Tipke, favoriti okvira S i alatna traka, kao datoteka",
@@ -4291,6 +4710,7 @@
"ui.insert_design.saved_file": "{name} ima nespremljene promjene, pa je umetnuta njegova spremljena datoteka. Spremite ga, a zatim pokrenite Ažuriraj veze kako biste unijeli promjene.",
"ui.insert_design.unsaved": "Nespremljene promjene",
"ui.inspect": "Pregledaj",
"ui.instances": "Instance",
"ui.intersect": "Presjek",
"ui.isolate": "Izoliraj",
"ui.join": "Spoji",
@@ -4299,12 +4719,14 @@
"ui.joints": "Spojevi",
"ui.keyboard_shortcuts": "Tipkovnički prečaci",
"ui.language": "Jezik",
"ui.lasso_select": "Laso (povucite petlju slobodnom rukom: obuhvaća sve što je u cijelosti unutra)",
"ui.layout_compact": "Kompaktno",
"ui.layout_floating": "Plutajuće",
"ui.length": "Duljina",
"ui.length_decimals": "Decimale duljine",
"ui.light": "Svijetla",
"ui.line": "Linija",
"ui.line_arc_hint": "Tangentni luk: kliknite kraj luka. Ponovno se zadržite na posljednjoj točki za linije; desni klik ili Esc za završetak",
"ui.link_copies": "Poveži identične kopije",
"ui.link_copies_keep": "Zadrži",
"ui.link_copies_link": "Poveži",
@@ -4393,6 +4815,7 @@
"ui.part_size_shared": "Ponovno gradi dio, zamjenjujući sve dodane značajke. Svi primjerci ove komponente ažuriraju se.",
"ui.paste": "Zalijepi",
"ui.path": "Putanja",
"ui.pattern_object_type_tip": "Tijela: puni oblici, odabiru se u prikazu ili u stablu modela; svako se kopira u cijelosti.\nZnačajke: koraci vremenske trake, poput ekstruzije ili provrta, odabiru se na vremenskoj traci ili na licu koje su izradili; korak se ponavlja.\nSkica nije ni jedno ni drugo: ponovite njezine krivulje pomoću alata Niz ili Zrcali u samoj skici ili je najprije ekstrudirajte.",
"ui.pattern_on_path": "Niz duž putanje",
"ui.perforate_margin_default": "iz promjera",
"ui.perforate_pitch": "Korak",
@@ -4419,12 +4842,17 @@
"ui.plugins_skipped": "Mape nije bilo moguće pročitati: {count}.",
"ui.plugins_version": "{version}",
"ui.point": "Točka",
"ui.point_cloud_add_filter": "Dodaj filter…",
"ui.point_cloud_auto_range": "Automatski raspon",
"ui.point_cloud_color_by": "Boja prema",
"ui.point_cloud_file_colors": "Boje iz datoteke",
"ui.point_cloud_filter_by": "Filtriraj prema",
"ui.point_cloud_height_high": "Najviše",
"ui.point_cloud_height_low": "Najniže",
"ui.point_cloud_legend_filter": "Prikazano i skriveno u legendi iznad",
"ui.point_cloud_no_file_colors": "Datoteka nema boja",
"ui.point_cloud_pause": "Pauziraj",
"ui.point_cloud_play": "Reproduciraj",
"ui.point_cloud_single_color": "Jedna boja",
"ui.point_cloud_size": "Veličina točke",
"ui.point_cloud_units": "Jedinice datoteke",
@@ -4433,9 +4861,9 @@
"ui.polygon": "Mnogokut",
"ui.preferences": "Postavke",
"ui.press_a_key": "pritisnite tipku…",
"ui.print_face_body_not_sent": "Tijelo te plohe ne šalje se: najprije ga dodajte u Tijela",
"ui.print_face_cleared": "{body}: ploha ispisa uklonjena",
"ui.print_face_input": "Ploha ispisa",
"ui.print_face_one_body": "Ploha ispisa pripada jednom tijelu: pošaljite to tijelo samo da biste je promijenili",
"ui.print_face_pick": "Odaberite ravnu plohu punog tijela da postane ploha ispisa",
"ui.print_face_set": "{body}: ploha ispisa postavljena; Pošalji u slicer polaže tijelo na nju",
"ui.profile": "Profil",
@@ -4453,6 +4881,7 @@
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Mjerenje…",
"ui.properties.measuring_bodies": "Mjerenje… {done} od {total} tijela",
"ui.properties.measuring_failed": "Mjerenje je zaustavljeno prije završetka.",
"ui.properties.principal_axis": "Glavna os {number}",
"ui.properties.principal_moments": "Glavni momenti tromosti",
@@ -4520,6 +4949,7 @@
"ui.selectOther": "Odaberi drugo…",
"ui.selectTangentChain": "Odaberi tangentni lanac",
"ui.select_all": "Odaberi sve",
"ui.select_components_by_face": "Odaberi komponente (lice bira svoju komponentu)",
"ui.selection": "Odabir",
"ui.selection_modifiers": "Modifikatori odabira",
"ui.selection_shift_add_only": "Shift+klik dodaje bez uklanjanja",
@@ -4561,6 +4991,11 @@
"ui.sketch_intersect_selection_filter": "Filtar odabira",
"ui.sketch_modifiers": "Modifikatori skice",
"ui.sketch_project_geometry": "Geometrija",
"ui.sketch_report.all_constrained": "Sve je potpuno ograničeno.",
"ui.sketch_report.dof": "Stupnjevi slobode",
"ui.sketch_report.loose": "Nije potpuno ograničeno",
"ui.sketch_report.status": "Status",
"ui.sketch_report.title": "Izvješće o skici",
"ui.sketch_scale": "Skaliranje skice",
"ui.sketches": "Skice",
"ui.slice": "Presijeci",
@@ -4656,12 +5091,15 @@
"ui.view_angles": "Kutovi prikaza",
"ui.view_angles_convention": "Stupnjevi oko osi prema gore. Skretanje 0° je Pogled sprijeda, 90° Pogled slijeva, −90° Pogled zdesna, 180° Pogled straga; nagib 90° je Pogled odozgo; pozitivno valjanje okreće model u smjeru kazaljke na satu.",
"ui.view_angles_help": "Prikazuje nagib, skretanje i valjanje prikaza u stupnjevima te njegovu projekciju ispod orijentacijskog gizma. Kliknite očitanje kako biste upisali točne kutove.",
"ui.view_angles_lock": "Zaključaj {axis}",
"ui.view_angles_ortho": "Ortogr.",
"ui.view_angles_persp": "Persp.",
"ui.view_angles_pitch": "Nagib",
"ui.view_angles_readout": "Nagib {pitch} · Skretanje {yaw} · Valjanje {roll}",
"ui.view_angles_roll": "Valjanje",
"ui.view_angles_unlock": "Otključaj {axis}",
"ui.view_angles_yaw": "Skretanje",
"ui.view_angles_zero": "Postavi {axis} na 0°",
"ui.view_centre": "Središte prikaza",
"ui.viewport_status_clear": "Isključi {name}",
"ui.viewport_status_clear_hint": "Isključi {name} · Esc",
@@ -4670,7 +5108,14 @@
"ui.viewport_status_key": "Prikaži legendu za {name}",
"ui.viewport_status_minimum_radius": "Minimalni polumjer",
"ui.viewport_status_pairs": "Parovi: {count}",
"ui.viewport_status_section_hatch": "{setting} · šrafura",
"ui.viewport_status_section_plane": "Trenutna ravnina",
"ui.viewport_status_section_tilted": "nagnuto · {offset}",
"ui.viewport_status_stripes": "Pruge: {count}",
"ui.viewport_status_summary_clear": "Isključi sve",
"ui.viewport_status_summary_heading": "U ovom prikazu",
"ui.viewport_status_summary_label": "{name} i još stavki: {count}",
"ui.viewport_status_summary_more": "+{count}",
"ui.viewport_theme_follow": "Prati temu",
"ui.visual_shaded_hidden_edges": "Osjenčano sa skrivenim bridovima",
"ui.visual_shaded_with_edges": "Osjenčano s bridovima",
+445 -1
View File
@@ -60,6 +60,7 @@
"BLEND SURFACE": "ÁTMENETI FELÜLET",
"BOUNDARY SURFACE": "HATÁRFELÜLET",
"BROWSER": "BÖNGÉSZŐ",
"Back to the original order": "Vissza az eredeti sorrendhez",
"Ball": "Gömbcsukló",
"Bar": "Rúd",
"Base Center": "Alap középpontja",
@@ -595,6 +596,8 @@
"Snap to face and edge centres": "Illesztés a lapok és élek középpontjához",
"SolidCraft cannot submit reports directly. Submit on GitHub; no token is needed in the app.": "A SolidCraft nem tud közvetlenül jelentést beküldeni. Küldje be a GitHubon; az alkalmazásban nincs szükség tokenre.",
"SolidCraft closed before these designs were saved. Their last autosave can be opened.": "A SolidCraft bezárult, mielőtt ezek a tervek mentve lettek volna. Az utolsó automatikus mentésük megnyitható.",
"Sort A to Z": "Rendezés A-tól Z-ig",
"Sort Z to A": "Rendezés Z-től A-ig",
"Spacing 2 must be a non-zero number": "A 2. térköznek nullától eltérő számnak kell lennie",
"Spacing must be a non-zero number": "A térköznek nullától eltérő számnak kell lennie",
"Specialise": "Specializálás",
@@ -790,6 +793,13 @@
"browser.sketch_attachment_lost": "{name} (rögzítés elveszett)",
"browser.sketch_editing": "{name} (szerkesztés alatt)",
"browser.sketch_name": "Vázlat{number}",
"browser.sketches_to_parts_already_in_part": "már az alkatrészükben vannak",
"browser.sketches_to_parts_design_body": "magának a tervnek egy testén vannak",
"browser.sketches_to_parts_moved": "{moved} vázlat áthelyezve abba az alkatrészbe, amelyen van",
"browser.sketches_to_parts_no_exact_attachment": "pontos rögzítés nélküli lapon vannak",
"browser.sketches_to_parts_not_on_face": "nem egy alkatrész lapján vannak",
"browser.sketches_to_parts_part_missing": "az alkatrészük már nincs meg",
"browser.sketches_to_parts_result": "{moved} vázlat áthelyezve abba az alkatrészbe, amelyen van; {stayed} a helyén maradt: {why}",
"browser.units": "Egységek: {units}",
"cam.flat": "Sík lap",
"cam.follower": "Követő",
@@ -819,6 +829,7 @@
"cmd.appearance_pick_up": "Megjelenés felvétele",
"cmd.appearance_replace": "Megjelenés cseréje",
"cmd.assembly_bom": "Anyagjegyzék",
"cmd.assembly_mass_properties": "Tömegjellemzők",
"cmd.body.print_face": "Nyomtatási lap",
"cmd.body_rename": "Test átnevezése",
"cmd.browser_collapse_all": "Összes összecsukása",
@@ -856,6 +867,7 @@
"cmd.component_move_bodies": "Testek áthelyezése komponensbe",
"cmd.component_move_features": "Elemek áthelyezése komponensbe",
"cmd.component_move_sketches": "Vázlatok áthelyezése komponensbe",
"cmd.component_move_sketches_to_parts": "Vázlatok áthelyezése az alkatrészükbe",
"cmd.component_paste_from_design": "Beillesztés másik tervből",
"cmd.component_paste_new": "Beillesztés újként",
"cmd.component_properties": "Komponens fizikai tulajdonságai",
@@ -1191,6 +1203,7 @@
"cmd.sketch_spline_control_point_5": "Vezérlőpontos spline (5. fokú)",
"cmd.sketch_spline_fit_point": "Illesztőpontos spline",
"cmd.sketch_spline_insert_point": "Splinepont hozzáadása",
"cmd.sketch_spline_remove_point": "Splinepont eltávolítása",
"cmd.sketch_spline_reverse": "Spline irányának megfordítása",
"cmd.sketch_spun_profile": "Forgatott profil",
"cmd.sketch_toggle_diameter": "Sugár / átmérő váltása",
@@ -1244,6 +1257,7 @@
"cmd.view.render_browser": "Renderböngésző",
"cmd.view.render_dock": "Renderpanel áthelyezése",
"cmd.view.render_focus": "Renderfókusz nézet",
"cmd.view.status_details": "Nézetablak állapotának részletei",
"cmd.view.status_items": "Nézetablak állapotelemei",
"cmd.view_ambient_occlusion": "Környezeti takarás",
"cmd.view_angle_readout": "Nézetszögek",
@@ -1282,8 +1296,14 @@
"color.hex_hint": "#rrggbb",
"color.hue": "Árnyalat",
"color.linear": "Színértékek megjelenítése 0–1 lineáris térben",
"color.recent": "Legutóbbi színek",
"color.recent_help": "A bármelyik színmezőben kiválasztott színek itt jelennek meg",
"color.saturation": "Telítettség (százalék)",
"color.saturation_value": "Telítettség és érték",
"color.selected": "Kijelölt szín",
"color.step_down": "Lépés lefelé",
"color.step_up": "Lépés felfelé",
"color.value": "Érték, a fényerő (százalék)",
"config.column_filter_empty": "Nincs egyező oszlop",
"contact.components_count": "{count} komponens",
"contact.enabled_label": "engedélyezve",
@@ -1330,6 +1350,7 @@
"dialog.dimension_name": "Méret: {name}",
"dialog.edit_title": "{title} SZERKESZTÉSE",
"dialog.no_shown_body": "Nincs módosítható megjelenített test: jelenítsen meg egyet, vagy válassza az Új test lehetőséget",
"dialog.pattern_sketch_not_object": "Válasszon testeket vagy elemeket: a vázlat egyik sem. Ismételje a görbéit a vázlat saját Minta vagy Tükrözés parancsával, vagy húzza ki előbb.",
"dialog.select": "↖ Kijelölés",
"dialog.selected_count": "↖ {count} kijelölve",
"dialog.selection_guidance": "Válasszon ki egy bemenetet a módosításhoz. A kijelölt objektumokra kattintva eltávolíthatja őket; a Ctrl/Cmd-kattintás is váltja a kijelölést. Tekintse át az előnézetet, majd nyomja meg az OK gombot.",
@@ -1387,21 +1408,168 @@
"from the rule": "a szabályból",
"help.apache": "Apache 2.0 licenc",
"help.appearance.assign": "A kijelölt testeknek, lapoknak vagy komponenseknek színt vagy anyagjellegű megjelenést ad, a tömegük megváltoztatása nélkül. Használja az alkatrészek megkülönböztetésére vagy egy felület előnézetéhez.",
"help.assembly.bom": "Felsorolja a terv vagy egy komponens alkatrészeit darabszámukkal, cikkszám szerint, és a listát CSV- vagy JSON-fájlba mentheti. Használja rendelési és összeszerelési alkatrészlistaként.",
"help.attributions": "Forrásmegjelölések (ATTRIBUTION.md)",
"help.build": "{version} verzió · commit: {commit} · készült: {date}",
"help.canvas.decal": "Képet helyez a modell egy sík lapjára, mint egy matricát. Használja címke, logó vagy nyomtatott minta megjelenítésére egy alkatrészen.",
"help.canvas.edit": "Módosít egy vásznat: a helyzetét, méretét, szögét, átlátszatlanságát, tükrözését, láthatóságát vagy nevét. A referenciakép és a fölé rajzolt vázlat egymáshoz igazítására használja.",
"help.canvas.insert": "PNG- vagy JPEG-képet helyez egy síkra vagy lapra átlátszó referenciaként. Használja fénykép vagy rajz átrajzolására egy vázlatban, a képet ismert méretre skálázva.",
"help.component.break_link": "Leválaszt egy kapcsolt komponenst a tervfájljáról, a testeit változatlanul meghagyva. Akkor használja, ha az alkatrésznek már nem kell követnie az eredeti fájl módosításait.",
"help.component.capture_position": "Megtartja a kézzel mozgatott alkatrészek helyzetét, így az lesz az alkatrészek új helye. Akkor használja, ha olyan alkatrészeket húzott a helyükre, amelyeket egyetlen csukló sem tart.",
"help.component.create": "Új, üres komponenst ad a tervhez az aktív komponensen belül, hacsak nem választ másik szülőt. Használja, hogy az összeállítás új alkatrésze saját helyet kapjon a testei és vázlatai számára.",
"help.component.finish_edit": "Elmenti a helyben szerkesztett alkatrészt, visszatér az összeállításhoz, és frissíti azt az alkatrész alapján. Akkor használja, ha végzett a kapcsolt alkatrész módosításaival.",
"help.component.from_bodies": "Minden kijelölt testből külön komponenst készít, a test nevén. Használja, ha egy különálló testekből épített tervből olyan összeállítást szeretne, amelynek alkatrészei összekapcsolhatók és mozgathatók.",
"help.component.insert_design": "Beszúr egy másik mentett tervet a fájljához kapcsolt komponensként, a szilárd testeivel úgy, ahogy ott el vannak helyezve. Használja egy alkatrész újrafelhasználására egy összeállításban; a későbbi módosításokat a Kapcsolatok frissítése veszi át.",
"help.component.properties": "Megmutatja egy komponens térfogatát, tömegét, tömegközéppontját és tehetetlenségi nyomatékait a testei anyagai alapján. Használja egy összeállítás súlyának és egyensúlyának ellenőrzésére.",
"help.component.revert_position": "Visszateszi a kézzel mozgatott alkatrészeket oda, ahol voltak, elvetve a nem rögzített mozgatásokat. Használja egy összeállításban végzett próbamozgatások visszavonására.",
"help.component.update_links": "Újra beolvassa a kapcsolt tervfájlokat, és lecseréli a testeket, ahol megváltoztak. Használja, miután szerkesztett egy olyan alkatrészt, amelyet ez az összeállítás használ.",
"help.config.configure": "Paramétereket, elemeket, anyagokat vagy megjelenéseket ad a konfigurációs táblázathoz oszlopként. Használja egy terv változatainak elkészítésére, például egy alkatrész méretváltozataihoz.",
"help.config.preview": "Ellenőrzi, hogy a konfigurációs táblázat egy sora újraépíthető-e, a terv és az előzmények módosítása nélkül. Használja, mielőtt olyan változatra vált, amelyben nem biztos.",
"help.config.rules": "Megmutatja a konfigurációs táblázat szabályait, sorait és azt, hogy melyik sor az aktív. Használja annak megtekintésére, hogyan vannak beállítva egy terv változatai.",
"help.config.table": "Megjeleníti a konfigurációs táblázatot: változatonként egy sort, paraméterenként vagy elemenként egy oszlopot, és azt, hogy a terv még egyezik-e az aktív sorral. Használja egy terv változatainak áttekintésére.",
"help.connect_note": "Indítsa újra az egyes asszisztenseket a SolidCraft szerver betöltéséhez. Minden fájlról .bak biztonsági másolat készült a módosítás előtt.",
"help.connect_title": "AI-asszisztensek csatlakoztatása",
"help.construct.axis.edge": "Szerkesztőtengelyt hoz létre egy egyenes él vagy vázlatvonal mentén. Használja forgatás, körminta vagy csukló tengelyeként.",
"help.construct.axis.normal_to_face": "Szerkesztőtengelyt hoz létre egy ponton át, a laphoz merőlegesen. Használja olyan tengelyként, amely egyenesen kiáll egy felületből.",
"help.construct.axis.through_cylinder": "Szerkesztőtengelyt hoz létre egy henger-, kúp- vagy tóruszlap, illetve egy kör alakú él középpontján át. Használja elemek forgatására vagy mintázására egy kerek alkatrész körül.",
"help.construct.axis.two_planes": "Szerkesztőtengelyt hoz létre ott, ahol két sík vagy sík lap találkozik. Használja, ha a szükséges tengely a két lap közötti vonal.",
"help.construct.axis.two_points": "Szerkesztőtengelyt hoz létre két ponton, csúcson vagy vázlatponton át. Használja két ismert helyzet között húzódó tengelyhez.",
"help.construct.plane.along_path": "Szerkesztősíkot hoz létre egy élre vagy görbére merőlegesen, annak egy adott helyén. Használja söpréshez való profil vagy egy útvonal keresztmetszetének megrajzolására.",
"help.construct.plane.at_angle": "Szerkesztősíkot hoz létre, amely egy síktól vagy laptól egy tengely vagy él körül adott szöggel van elforgatva. Használja ferde vázlatokhoz, például szögben álló konzolhoz.",
"help.construct.plane.midplane": "Szerkesztősíkot hoz létre két sík vagy sík lap között félúton, vagy, ha szögben találkoznak, felezve őket. Használja tükrözés szimmetriasíkjaként.",
"help.construct.plane.offset": "Szerkesztősíkot hoz létre egy síkkal vagy sík lappal párhuzamosan, adott távolságra vagy egy ponton át. Használja, hogy egy lap fölött meghatározott magasságban rajzoljon vázlatot.",
"help.construct.plane.perpendicular": "Szerkesztősíkot hoz létre, amely tartalmaz egy egyenest vagy élt, és merőleges egy síkra vagy lapra. Használja, hogy egy modellen egy él mentén függőlegesen álló vázlatot rajzoljon.",
"help.construct.plane.tangent": "Szerkesztősíkot hoz létre, amely egy pontban érint egy hengert, kúpot, gömböt vagy tórust. Használja egy kerek alkatrész oldalán való vázlatrajzoláshoz.",
"help.construct.plane.three_points": "Szerkesztősíkot hoz létre három ponton át. Használja olyan síkhoz, amelyet a modell pontjai határoznak meg, például három sarok.",
"help.construct.plane.two_edges": "Szerkesztősíkot hoz létre két olyan egyenes élen vagy vonalon át, amelyek egy síkban fekszenek. Használja egy alkatrészen átmenő síkhoz, például két szemközti élen át.",
"help.construct.point.along_path": "Szerkesztőpontot hoz létre egy él vagy görbe egy adott helyén. Használja referenciaként egy útvonal valamely pontján.",
"help.construct.point.center": "Szerkesztőpontot hoz létre egy kör alakú él, vázlatkör vagy -ív, gömb vagy tórusz középpontjában. Használja referenciaként furatokhoz, tengelyekhez és csuklókhoz.",
"help.construct.point.edge_plane": "Szerkesztőpontot hoz létre ott, ahol egy él vagy vonal áthalad egy síkon vagy sík lapon. Használja annak megjelölésére, hogy egy útvonal hol metsz egy síkot.",
"help.construct.point.three_planes": "Szerkesztőpontot hoz létre ott, ahol három sík vagy sík lap találkozik. Használja sarokreferenciaként akkor is, ha a modellnek ott nincs csúcsa.",
"help.construct.point.two_edges": "Szerkesztőpontot hoz létre ott, ahol két él vagy vonal találkozik, illetve ahol a legközelebb kerülnek egymáshoz. Használja referenciaként egy virtuális sarokban.",
"help.construct.point.vertex": "Szerkesztőpontot hoz létre egy csúcson vagy vázlatponton. Használja olyan referenciaként, amely megmarad akkor is, ha a körülötte lévő vázlat vagy test el van rejtve.",
"help.contact.check": "Felsorolja az érintkezési készletekben azokat az alkatrészpárokat, amelyek a jelenlegi helyzetükben áthatják egymást. Használja az ütközések megkeresésére, mielőtt csuklókat hajtana meg vagy mozgásvizsgálatot futtatna.",
"help.contact.create": "Két vagy több alkatrészt érintkezési készletbe csoportosít; a testeik nem hatolhatnak egymásba, miközben a csuklók mozognak. Használja olyan alkatrészekhez, amelyeknek érintkezéskor meg kell állniuk, például egy kar és az ütközője.",
"help.contact.disable_all": "Kikapcsolja az érintkezést, így a meghajtott csuklók és a mozgásvizsgálatok már nem állnak meg ott, ahol az alkatrészek érintkeznek. Használja az alkatrészek újbóli szabad mozgatásához, vagy egy nagy összeállítás gyors válaszkészségének megtartásához.",
"help.contact.edit": "Módosít egy érintkezési készletet: a benne lévő alkatrészeket, a nevét, vagy azt, hogy el van-e nyomva; a készletet törölni is tudja. Használja annak beállítására, mely alkatrészek ne hatolhassanak egymásba.",
"help.contact.enable_all": "Az összeállítás minden alkatrészét egyetlen érintkezési készletbe teszi, így a csuklók mozgása közben két alkatrész sem hatolhat egymásba. Használja egy egész mechanizmus gyors ellenőrzésére.",
"help.contact.enable_sets": "Bekapcsolja az érintkezést az Ön által megadott érintkezési készletekre, így a meghajtott csuklók és a mozgásvizsgálatok megállnak ott, ahol az alkatrészeik egymásba hatolnának. Használja a készletek visszakapcsolására az érintkezés kikapcsolása után.",
"help.contact.list": "Felsorolja a terv érintkezési készleteit, a bennük lévő alkatrészeket és azt, hogy be van-e kapcsolva az érintkezés. Használja annak ellenőrzésére, hogyan van beállítva az érintkezés, mielőtt az összeállítást meghajtja.",
"help.document.inspect": "Áttekintést ad a tervről: a komponenseiről, testeiről, vázlatairól, elemeiről és paramétereiről. Használja, hogy eligazodjon egy olyan tervben, amelyet nem Ön épített.",
"help.document.units": "Megváltoztatja azt a mértékegységet, amelyben a terv a hosszakat mutatja, például mm vagy hüvelyk. A geometria mérete nem változik; csak a megjelenítés és a mértékegység nélküli számok követik.",
"help.edit.checkpoint": "Megjegyzi a tervet, az aktív vázlatot és a visszavonási előzményeket a jelenlegi állapotukban. Használja, mielőtt valami kockázatosat próbál ki, amelyből később vissza szeretne térni.",
"help.edit.restore_checkpoint": "Visszatér egy ellenőrzőponthoz, a visszavonási előzményekkel együtt. Használja az ellenőrzőpont óta végzett összes művelet egyetlen lépésben való elvetésére.",
"help.explode.create": "Robbantott nézetet hoz létre, amely az alkatrészeket eltolja az összeállítás középpontjától, vagy az Ön által megadott mozgatásokkal. Használja annak bemutatására, hogyan áll össze egy összeállítás, útmutatókhoz vagy prezentációkhoz.",
"help.face.delete": "Eltávolítja a kijelölt lapokat, és hagyja, hogy a szomszédos lapok bezárják a rést, vagy felületként nyitva hagyja a rést. Használja egy útban lévő lekerekített él, furat vagy dudor eltávolítására.",
"help.file.insert_mesh": "3MF-, STL-, OBJ-, PLY- vagy glTF-fájlt ad a tervhez hálótestekként egy új komponensben. Használja egy letöltött vagy szkennelt modell referenciaként a terv mellé helyezésére.",
"help.file.insert_step": "STEP-, IGES-, FreeCAD- vagy Rhino-fájlt ad a tervhez szilárd testekként egy új komponensben; egy összeállítás alkatrészei beágyazott komponensek lesznek. Használja beszállítók vagy más CAD-programok modelljeinek behozatalára.",
"help.file.save_mesh": "A testeket STL-, 3MF- vagy OBJ-hálóként menti, a görbült lapok Ön által választott simaságával. Használja alkatrészek 3D nyomtatásra vagy hálót olvasó programokhoz való előkészítésére.",
"help.file.send_to_slicer": "A kijelölt testeket 3MF-fájlként menti, és megnyitja a kiválasztott szeletelőben. Használja, hogy egyetlen lépésben jusson el a modelltől a nyomtatásig.",
"help.font_details": "A felület az egui beépített betűtípusait használja (Ubuntu Light és Hack, az Ubuntu Font Licence és az MIT/Bitstream Vera licenc alatt; Noto Emoji és az emoji ikonbetűtípus, OFL és MIT alatt). A vázlatszöveg a Liberation Sans betűtípust használja (SIL OFL 1.1). A Crafting Apps opcionális betűtípuscsomagja, a craft-fonts (BIZ UDPGothic, Shippori Mincho, BIZ UDMincho, Noto Sans CJK SC, Noto Sans Arabic; SIL OFL 1.1) nincs a SolidCraft-buildekbe csomagolva.",
"help.fonts": "Betűtípusok",
"help.frame.member": "Profilt, például csövet vagy alumínium extrudált profilt helyez egy keretvázlat vonalai mentén, vonalanként egy szerkezeti elemet. Használja keretek, állványok és hegesztett szerkezetek építésére.",
"help.inspect.accessibility": "Megszínezi azokat a lapokat, amelyeket egy szerszám egy irányból elér, és azokat, amelyeket nem. Használja annak ellenőrzésére, hogy az alkatrész megmunkálható vagy önthető-e arról az oldalról.",
"help.inspect.center_of_mass": "Megmutatja a testek tömegközéppontját külön-külön és együtt, egyenletes sűrűség mellett. Használja az egyensúly ellenőrzésére és annak megállapítására, hol borul fel egy alkatrész.",
"help.inspect.colored_components": "Minden komponensnek külön ideiglenes színt ad, a megjelenések módosítása nélkül. Használja egy összeállítás alkatrészeinek első pillantásra való megkülönböztetésére.",
"help.inspect.compare": "Összehasonlít két testet, és megmutatja, hol van az egyiken olyan anyag, amely a másikon nincs, a térfogattal és az eltéréssel együtt. Használja egy módosított vagy importált alkatrész eredetivel való összevetésére.",
"help.inspect.continuity": "Ellenőrzi, milyen simán találkoznak a lapok az éleik mentén: réseket, töréseket vagy görbületugrásokat keres, és a varratokat beszínezi. Használja annak megkeresésére, hol nem csatlakoznak tisztán a felületek.",
"help.inspect.curvature_comb": "Fésűket rajzol görbék, élek vagy lapok mentén; a fogaik azt mutatják, mennyire hajlanak. Használja a lapos részek, törések és az egyenetlen görbület felismerésére.",
"help.inspect.curvature_map": "A lapokat aszerint színezi, mennyire görbülnek, pirossal ott, ahol kicsi a sugár. Használja a szűk helyek megkeresésére és egy felület simaságának megítélésére.",
"help.inspect.draft": "A lapokat a húzási irányhoz mért dőlésszögük szerint színezi, és megjelöli azokat, amelyeknek túl kicsi. Használja egy alkatrész ellenőrzésére öntés vagy fröccsöntés előtt.",
"help.inspect.environment_map": "Tükröző, tükörszerű felülettel jeleníti meg a modellt. Használja a felületek lefutásának megítélésére abból, ahogyan a tükröződések végigfutnak rajtuk.",
"help.inspect.interference": "Megkeresi az átfedő testeket, és minden átfedést a térfogatával együtt megmutat. Használja egy összeállítás ütköző alkatrészeinek ellenőrzésére.",
"help.inspect.isocurve": "Megrajzolja a lapok izoparametrikus görbéit, vagyis azt a rácsot, amelyre a felület épül. Használja annak megtekintésére, hogyan fut egy felület, és hol sűrűsödik össze.",
"help.inspect.measure": "Hosszakat, távolságokat, szögeket, területeket és sugarakat mér a kiválasztott elemek között, vagy testek térfogatát és tömegét. Használja méretek és hézagok ellenőrzésére.",
"help.inspect.minimum_radius": "Megkeresi a görbék, élek vagy lapok legkisebb görbületi sugarát, és azt, hogy hol van. Használja annak ellenőrzésére, hogy egy szerszám vagy fúvóka követni tudja-e az alakot.",
"help.inspect.section": "Egy sík mentén felvágja a nézetet, és sraffozza a vágott lapokat, a modell módosítása nélkül. Használja alkatrészek és összeállítások belsejének megtekintésére.",
"help.inspect.zebra": "Fekete-fehér csíkokat tükröz a modell lapjain. Használja a simaság megítélésére: az élnél megszakadó vagy megtörő csíkok rossz átmenetet jeleznek.",
"help.joint.as_built": "Összekapcsol két alkatrészt ott, ahol már vannak, egyiket sem mozgatva, és beállítja, hogyan mozoghatnak még. Használja olyan alkatrészekhez, amelyeket már a végleges helyükre tett.",
"help.joint.cam": "Egy forgó bütyköt kapcsol a követőhöz, így a követő elcsúszik vagy kileng, ahogy a bütyök körvonala elhalad alatta. Használja bütykökhöz, excenterekhez és szelephajtásokhoz.",
"help.joint.create": "Összekapcsol két alkatrészt a kiválasztott csuklóeredeteknél, és a másodikat a helyére mozgatja; a csukló típusa határozza meg, hogyan mozoghatnak még. Használja olyan összeállítás építésére, amelynek alkatrészei úgy mozognak, mint a valódi mechanizmus.",
"help.joint.drive": "Beállítja egy csukló szögét vagy távolságát, és vele együtt mozgatja az alkatrészeket a korlátain belül; a kapcsolt csuklók és a zárt hurkok követik. Használja annak ellenőrzésére, hogy a mechanizmus a tervezett módon mozog-e.",
"help.joint.gear": "Két forgó csuklót kapcsol egy áttétellel, így az egyik meghajtása elforgatja a másikat. Használja homlokfogaskerekekhez és belső fogazású kerekekhez; az áttétel az osztókör sugarából vagy a fogszámból adódik.",
"help.joint.limits": "Beállítja, meddig foroghat vagy csúszhat egy csukló, minimum- és maximumértékkel, vagy törli ezeket a korlátokat. Használja, hogy egy zsanér, csúszka vagy kar a valódi mozgástartományán belül maradjon.",
"help.joint.motion_link": "Két csuklót kapcsol össze egy aránnyal és egy eltolással, így az egyik meghajtása mozgatja a másikat. Használja olyan állandó összefüggéshez a csuklók között, amelyet a Fogaskerék, a Fogasléc és fogaskerék vagy a Csavar nem fed le.",
"help.joint.origin": "Elnevezett csuklóeredetet helyez egy alkatrészre: egy lap vagy kerek vég középpontjában, egy él közepén, egy sarokban vagy egy pontban. Használja annak előkészítésére, hol kapcsolódjanak a csuklók; a lapon kijelölt eredet követi a lapot, ha az alkatrész mérete változik.",
"help.joint.rack_pinion": "Egy forgó fogaskereket kapcsol egy csúszó fogaslécre, így a fogasléc annyit mozdul, amekkora osztókör-hosszon a fogaskerék legördül. Használja fogaslécmeghajtásokhoz, kormányzáshoz és lineáris szánokhoz.",
"help.joint.reach": "Egy alkatrész egy pontját a cél felé mozgatja a láncán lévő csuklók módosításával, a korlátaikon belül. Használja egy mechanizmus beállítására aszerint, hová kell érnie a végének, például egy robotkar hegyének.",
"help.joint.rigid_group": "A kijelölt alkatrészeket úgy, ahogy vannak, összezárja, így egyként mozognak. Használja olyan alkatrészekhez, amelyek összetartoznak, és nincs köztük mozgás.",
"help.joint.screw": "Összekapcsolja a forgást és a csúszást egy menetemelkedéssel, így minden fordulat ennyivel halad előre. Használja vezetőorsókhoz, csavarokhoz és menetes orsókhoz.",
"help.library.apply": "Anyagot vagy megjelenést alkalmaz egy helyi könyvtárfájlból testekre, lapokra vagy komponensekre. Használja egy másik tervből elmentett anyagok újrafelhasználására.",
"help.library.export": "Elmenti a terv anyagait és megjelenéseit egy könyvtárfájlba. Használja a megosztásukra vagy más tervekben való újrafelhasználásukra.",
"help.library.inspect": "Ellenőriz egy könyvtárfájlt, és felsorolja az anyagait és megjelenéseit, a terv módosítása nélkül. Használja annak megtekintésére, mit tartalmaz egy könyvtár, mielőtt alkalmazza.",
"help.licences": "Licencek",
"help.material.assign": "Megadja, miből készültek a kijelölt testek, például acélból, alumíniumból vagy ABS-ből. Használja, hogy a tömeg és a súly megegyezzen a valódi alkatrészével.",
"help.material.properties.validate": "Ellenőrzi egy anyagadatlap számainak következetességét és a hiányzó értékeket. Használja, mielőtt az adatokra támaszkodik a tömeg vagy a merevség számításánál.",
"help.mesh.convert": "Egy hálótestet, például egy STL-t szerkeszthető szilárd testként épít újra, sík és hengeres lapokkal. Használja importált gépalkatrészek módosítására úgy, mintha modellezett testek lennének.",
"help.mit": "MIT licenc",
"help.motion.study": "Csuklóértékeket állít be egy idővonal lépésein, és animációként lejátssza őket. Használja egy mechanizmus mozgásának végignézésére egy sorozaton át, és közben a hézagok ellenőrzésére.",
"help.motion.trace": "Követi azt az utat, amelyet egy alkatrész egy pontja bejár, miközben a mozgásvizsgálat lejátszódik vagy egy csuklót meghajtanak, és a megerősítéskor 3D vázlatgörbeként megtartja. Használja annak megtekintésére, hová ér el egy mechanizmus, vagy az útvonalára építeni.",
"help.notice": "NOTICE",
"help.occurrence.ground": "Egy alkatrészt a helyén rögzít, vagy újra felold, így a csuklók a többi alkatrészt mozgatják körülötte. Használja a vázhoz vagy alaphoz, amelyre az összeállítás többi része épül.",
"help.occurrence.move": "Az összeállítás egy alkatrészét csak a csuklói által megengedett szabadságfokok mentén mozgatja. Jelölje ki az alkatrész egy lapját, majd húzza az egyik elérhető nyilat vagy ívet.",
"help.parameters.change": "Megnyitja a terv méreteit vezérlő elnevezett értékek és kifejezések táblázatát. Használja egy méret egy helyen való módosítására, hogy az azt használó összes elem kövesse.",
"help.parameters.export": "A terv paramétereit CSV- vagy JSON-fájlba menti. Használja táblázatkezelőben való szerkesztésükre, vagy másik tervbe való átvitelükre.",
"help.parameters.graph": "Megmutatja, mely paraméterek és elemek mely másokat használják, valamint a köztük lévő hurkokat vagy hibákat. Használja annak megtekintésére, mit érint egy paraméter módosítása.",
"help.parameters.import": "CSV- vagy JSON-fájlból olvas be paramétereket a tervbe, vagy mindet, vagy egyet sem. Használja értékek táblázatkezelőből vagy másik tervből való behozatalára.",
"help.parameters.move": "Egy felhasználói paramétert a listában egy másik elé vagy mögé helyez. Használja az összetartozó paraméterek együtt tartására.",
"help.parts.fastener": "Szabványos csavart, anyát, alátétet, csapot vagy csapágyat ad hozzá a kiválasztott méretben. Furatra helyezve csuklóval illeszkedik a furatba, így nem kell magának modelleznie a kötőelemeket.",
"help.parts.insert": "Szabványos alkatrészt szúr be a kiválasztott családban, méretben és hosszban. Egy furat peremére vagy falára helyezve merev csuklóval illeszkedik a furathoz.",
"help.parts.library": "Megnyitja a szabványos alkatrészeket: csavarokat, anyákat, alátéteket, szárnélküli csavarokat, illesztőcsapokat és csapágyakat szabványos méretekben. Használja szabványos alkatrész hozzáadására ahelyett, hogy maga modellezné.",
"help.parts.resize": "Megváltoztatja egy beszúrt szabványos alkatrész méretét vagy hosszát, és újraépíti; a csuklói a helyén tartják. Használja, ha egy csavar túl hosszúnak bizonyul, vagy egy furathoz másik méret kell.",
"help.plastic.assign_rule": "Műanyag szabályt rendel testekhez, így a műanyag elemeik ennek dőlését és hézagát veszik alapértelmezettnek. Használja egy öntött alkatrész egyszeri beállítására az összes elemére.",
"help.plastic.boss": "Csavardudort ad egy lapra: oszlopot opcionális furattal, dőléssel, tövi lekerekítéssel és támasztó bordákkal. Használja csavarpontokhoz öntött vagy nyomtatott házakban.",
"help.plastic.lip": "Peremet vagy hozzá illő hornyot ad egy héjazott test pereme mentén. Használja, hogy két házfél egymáson pozicionálódjon, és szorosan záródjon.",
"help.plastic.manage_rules": "Műanyag szabályokat hoz létre és szerkeszt: anyag, falvastagság, sugarak, hézag és dőlés. Használja őket egy öntött alkatrész elemeinek egységesen tartására.",
"help.plastic.rest": "Támaszt ad egy lapra: kerek vagy téglalap alakú, tömör vagy üreges párnát dőléssel. Használja alátámasztásként vagy távtartóként egy öntött házban.",
"help.plastic.snap_fit": "Pattintós illesztésű kampót ad egy lapra, megadott hosszal, vastagsággal és reteszeléssel. Használja alkatrészek csavar nélküli összepattintására.",
"help.pointcloud.insert": "PLY, XYZ vagy PTS szkennelést szúr be pontfelhőként a modell mellé. Használja referenciaként, amikor mért adatokból épít modellt.",
"help.sheet.convert": "Egyenletes vastagságú lemezt vagy héjazott testet lemeztestté alakít, a kiválasztott éleken hajlításokkal. Használja egy meglévő alkatrész kiteríthetővé tételére.",
"help.sheet.export_bend_table": "Egy lemeztest hajlítási táblázatát CSV- vagy JSON-fájlba menti: szögeket, sugarakat és a hajlítások helyzetét a kiterített állapotban. Használja a lemezhajlító géphez vagy a műhelynek.",
"help.sheet.export_dxf": "A lapmintát DXF-fájlba menti, körvonalakkal, hajlítási vonalakkal és opcionális hajlítási megjegyzésekkel. Használja lézeres, plazma- vagy vízsugaras vágáshoz.",
"help.sheet.flange": "Peremet ad hozzá: alaplemezt egy vázlatból, falat egy nyitott vázlatkontúr mentén, vagy hajlított falat a lemez élein. Használja lemezalkatrészek felépítésére.",
"help.sheet.flat_pattern": "Létrehozza egy lemeztest lapmintáját a méretével, kivágásaival és hajlítási vonalaival. Használja a kiterített darab ellenőrzésére a kivágás előtt.",
"help.sheet.fold": "Meghajlít egy lemezt egy vázlatvonal mentén adott szöggel és sugárral. Használja egy sík lemez behajtására, miután kivágásokat készített rajta.",
"help.sheet.hem": "Egy lemezélt visszahajt önmagára. Használja biztonságos, merev élekhez, éles sorják nélkül.",
"help.sheet.manage_rules": "Lemezszabályokat hoz létre és szerkeszt: vastagság, hajlítási sugár, K-tényező, kiengedések és rések. Használja őket a műhelye anyagaihoz és szerszámaihoz igazítására.",
"help.sheet.path_flange": "Peremek láncát adja egy lemezél mentén, egy nyitott vázlatvonal-lánc nyomán. Használja U vagy Z alakú profilokhoz egyetlen lépésben.",
"help.sheet.perforate": "Furatmezőt ad a teljes sík lemezre, eltolt vagy négyzetes mintában. Használja szellőzőnyílásokhoz, rácsokhoz és könnyebb panelekhez.",
"help.sheet.refold": "Egy kiterített lemeztestet visszahajt. Használja, miután elemeket adott a sík lemezhez.",
"help.sheet.unfold": "Kiterít egy lemeztest összes hajlítását. Használja olyan furatok vagy vágások hozzáadásához, amelyeknek át kell menniük egy hajlításon, majd az Újrahajlítással hajtsa vissza.",
"help.sketch.arc.center_point": "Körívet rajzol egy középpont körül, egy kezdőponttól egy végpontig. Használja, ha az ív középpontja ismert, például egy furat vagy egy forgáspont körüli sugárhoz.",
"help.sketch.arc.tangent": "Olyan ívet rajzol, amely egy vonal vagy ív végén indul, és érintőlegesen folytatódik. Használja a lánc folytatására sima hajlattal sarok helyett.",
"help.sketch.arc.three_point": "Ívet rajzol egy kezdőponttól egy végpontig egy harmadik ponton át. Használja, ha az ívnek adott pontokon kell áthaladnia, nem pedig egy ismert középpont körül futnia.",
"help.sketch.arc3d": "Pontos körívet rajzol a térben három ponton át, bekapcsolt 3D vázlattal. Használja útvonalak és vezérgörbék hajlataihoz, amelyek elhagyják a vázlatsíkot.",
"help.sketch.auto_constrain": "Hozzáadja azokat a kényszereket, amelyek a vázlatban már majdnem megvannak, például vízszintest, párhuzamost vagy egybeesőt, majd addig méretezi, amíg teljesen kényszerezett nem lesz. Használja egy hozzávetőlegesen megrajzolt vázlat egy lépésben való rögzítésére.",
"help.sketch.auto_constrain_from_datum": "Úgy működik, mint az Automatikus kényszerezés, de a helyzeteket az origó helyett egy Ön által kiválasztott viszonyítási pontból méri. Használja, ha az alkatrész egyetlen referenciapontból van kiosztva, például egy sarokból vagy egy furatból.",
"help.sketch.blend_curve": "Két görbe végét egy sima spline-nal köti össze, amely mindkettőt érinti, kívánság szerint görbületfolytonosan is. Használja görbék közötti rés áthidalására törés nélkül.",
"help.sketch.break": "Darabokra vágja a görbét ott, ahol más görbék keresztezik, vagy a rajta elhelyezett pontoknál. Használja, ha a görbe egy részének saját kényszerre van szüksége, vagy külön kell törölni.",
"help.sketch.cancel": "Elhagyja a vázlatot, és elvet mindent, ami a létrehozása vagy szerkesztésre való megnyitása óta megváltozott. A Visszavonás visszahozza a módosításokat.",
"help.sketch.centerline": "Vonalakat vált normál vonal és középvonal között; a középvonalak olyan tengelyek, amelyeket a profilok kihagynak. Használja a középvonalat forgatás, tükrözés vagy szimmetriakényszer tengelyeként.",
"help.sketch.chamfer.distance_angle": "Letöri a két vonal közötti sarkot, az első vonal menti távolsággal és egy szöggel megadva. Használja, ha a rajz a letörést hosszal és szöggel adja meg, például 2 mm × 30°.",
"help.sketch.chamfer.equal_distance": "Letöri a két vonal közötti sarkot úgy, hogy mindkét vonal mentén ugyanannyit vesz vissza. Használja a körvonalak szokásos 45°-os letöréséhez.",
"help.sketch.chamfer.two_distance": "Letöri a két vonal közötti sarkot, mindkét vonal mentén külön távolsággal megadva. Használja a nem 45°-os, két hosszal megadott letörésekhez.",
"help.sketch.circle.center": "Kört rajzol a középpontjából és az átmérőjéből. Használja furatokhoz, dudorokhoz és más kerek elemekhez, amelyeknek ismert a középpontja.",
"help.sketch.circle.three_point": "Kört rajzol három ponton át. Használja, ha a körnek adott pontokon kell áthaladnia, például meglévő geometria pontjain.",
"help.sketch.circle.three_tangent": "Olyan kört rajzol, amely három vonalat, kört vagy ívet érint. Használja, hogy egy kört három görbe közötti térbe illesszen, például egy háromszög beírt körét.",
"help.sketch.circle.two_point": "Kört rajzol az átmérője két végpontjából. Használja, ha a kör szélének pontjai ismertek, nem a középpontja.",
"help.sketch.circle.two_tangent": "Adott méretű kört rajzol, amely két vonalat, kört vagy ívet érint. Használja két görbe közötti állandó sugarú lekerekítéshez.",
"help.sketch.conic": "Kúpgörbét rajzol két végpont között, amelyet egy csúcspont és egy ró (ρ) érték alakít. Használja olyan sima átmenetekhez, amelyek teltségét hangolni szeretné, a lapostól a csaknem éles sarokig.",
"help.sketch.constrainer": "Alkalmazza azt a kényszert, amely egy vagy két kijelölt görbénél már majdnem fennáll, például vízszintes, párhuzamos, érintő vagy egyenlő. Használja egy kézzel rajzolt vázlat rendbetételére, egyszerre egy összefüggéssel.",
"help.sketch.constraint.coincident": "Egy pontot egy másik pontra, görbére vagy vázlattengelyre illeszt. Használja egy profil réseinek lezárására, vagy egy pont vonalra helyezésére.",
"help.sketch.constraint.collinear": "Két vonalat egy egyenesre illeszt. Használja megszakított élek egy vonalba hozására, például egy bevágás két oldalán.",
"help.sketch.constraint.concentric": "Két körnek vagy ívnek ugyanazt a középpontot adja. Használja gyűrűkhöz, süllyesztett furatokhoz és vállas tengelyekhez.",
"help.sketch.constraint.curvature": "Azt éri el, hogy a végpontban találkozó két görbe ugyanazzal a görbülettel folytatódjon (G2). Használja ott, ahol az érintős csatlakozás nem elég sima, például látható felületeken.",
"help.sketch.constraint.equal": "A vonalakat azonos hosszúságúvá, a köröket és íveket azonos sugarúvá teszi. Használja, hogy egy méret több egyező elemet vezéreljen.",
"help.sketch.constraint.fix": "Pontokat vagy görbéket rögzít a helyükön, vagy újra felold. Használja olyan geometriához, amelynek nem szabad elmozdulnia a vázlat húzásakor vagy megoldásakor.",
"help.sketch.constraint.horizontal_vertical": "Egy vonalat, vagy két pont közötti vonalat vízszintessé vagy függőlegessé tesz, amelyikhez közelebb áll. Használja egy körvonal vázlattengelyekhez igazítására.",
"help.sketch.constraint.midpoint": "Egy pontot egy vonal közepére helyez, vagy két vonal felezőpontját egybeejti. Használja geometria egy élre való középre igazítására.",
"help.sketch.constraint.parallel": "Két vonalat párhuzamossá tesz. Használja olyan oldalakhoz, amelyeknek párhuzamosnak kell maradniuk, amikor más méretek változnak.",
"help.sketch.constraint.perpendicular": "Két vonalat derékszögben találkoztat. Használja derékszögű sarkokhoz olyan vonalak között, amelyek nem a vázlattengelyeken vannak.",
"help.sketch.constraint.polygon": "Egy zárt vonalláncot szabályos sokszöggé tesz: egyenlő oldalak, minden sarok egy körön. Használja egy kézzel rajzolt sokszög szabályossá tételére és olyannak megtartására.",
"help.sketch.constraint.symmetry": "Két pontot vagy görbét egymás tükörképévé tesz egy vonalra vagy egy pontra nézve. Használja, hogy egy profil szimmetrikus maradjon, amikor az egyik oldalát módosítja.",
"help.sketch.constraint.tangent": "Két görbét érintőlegesen illeszt egymáshoz, például egy vonalat és egy ívet. Használja sima csatlakozásokhoz törés nélkül.",
"help.sketch.construction": "A görbéket normál geometria és szerkesztőgeometria között váltja; a profilok a szerkesztőgeometriát kihagyják. Használja a szerkesztőgörbéket segédvonalként a kiosztáshoz, referenciákhoz és méretekhez.",
"help.sketch.construction_line": "Végtelen szerkesztőegyenest hoz létre két ponton át. Használja a vázlat megtervezéséhez a profilok szétvágása nélkül.",
"help.sketch.construction_line.angle": "Végtelen szerkesztőegyenest hoz létre a vázlat X tengelyéhez képest adott szögben. Válassza ki a pontot, és adja meg a szöget, vagy válassza ki az irányát.",
"help.sketch.construction_line.bisector": "Válasszon ki két egymást metsző egyenes vázlatvonalat, majd bármelyik szögfelezőt. Az eredmény követi a forrásvonalait.",
@@ -1412,11 +1580,71 @@
"help.sketch.construction_line.tangent_external": "Válasszon ki egy kört vagy körívet, majd egy külső pontot és egy érintőmegoldást. Az előnézetek csak a megrajzolt íven lévő érintési pontokat mutatják.",
"help.sketch.construction_line.tangent_two": "Válasszon ki két kört vagy körívet, majd az előnézetben válasszon közös érintőt. Az érintési pontoknak a megrajzolt görbéken kell lenniük.",
"help.sketch.construction_line.vertical": "Végtelen függőleges szerkesztőegyenest hoz létre egy ponton át. Függőleges kényszere a későbbi módosítások után is megmarad.",
"help.sketch.copy": "Másolja a kijelölt vázlatgörbéket és -pontokat a közöttük lévő kényszerekkel és méretekkel együtt. Illessze be őket ebbe a vázlatba vagy egy másikba.",
"help.sketch.create": "Új 2D vázlatot kezd egy síkon vagy a modell egy sík lapján. Minden kihúzás, forgatás és söprés vázlattal kezdődik.",
"help.sketch.cut": "Másolja a kijelölt vázlatgeometriát, és törli a vázlatból, egyetlen visszavonási lépésben. Illessze be máshová ebben a vázlatban vagy egy másikba.",
"help.sketch.dimension": "Vezérlő méretet ad hozzá: hosszt, távolságot, szöget, sugarat vagy átmérőt, attól függően, mit jelöl ki. Írjon be egy értéket vagy egy paraméternevet, és a vázlat követi.",
"help.sketch.edit": "Megnyit egy meglévő vázlatot szerkesztésre. A rá épülő elemek frissülnek, amikor befejezi a vázlatot.",
"help.sketch.ellipse": "Ellipszist rajzol a középpontjából, a nagytengelye végpontjából és a kistengelye felőli egy pontból. Használja ovális nyílásokhoz, bütykökhöz és más elnyújtott kerek alakzatokhoz.",
"help.sketch.equation_curve": "Görbét rajzol képletekből: x(t) és y(t), vagy y = f(x) alapján, egy tartományon. A képletek paramétereket is használhatnak, és a görbe követi őket: használja szinuszhullámhoz, spirálhoz vagy fogaskerékfog evolvenséhez.",
"help.sketch.extend": "Meghosszabbít egy vonalat vagy ívet a legközelebbi, útjába eső görbéig, vagy két görbét addig növeszt, amíg találkoznak. Használja egy profil réseinek lezárására vágás vagy szerkesztés után.",
"help.sketch.fillet": "Lekerekíti a két vonal vagy ív találkozásánál lévő sarkot egy adott sugarú ívvel. Az együtt lekerekített több sarok egy sugáron osztozik.",
"help.sketch.finish": "Elhagyja a vázlatot, és visszatér a modellhez. A zárt profiljai ezután készen állnak a Kihúzásra, a Forgatásra és más elemekre.",
"help.sketch.finish_auto_constrain": "Lefuttatja az Automatikus kényszerezést a vázlaton, majd befejezi. Használja, hogy a vázlat egyetlen lépésben teljesen kényszerezett állapotban maradjon.",
"help.sketch.fit_curves_to_section": "Elvág egy háló- vagy szilárd testet a vázlatsíkkal, és vonalakat és íveket illeszt a metszethez. Használja egy szkennelt vagy importált alkatrész szerkeszthető vázlatként való újjáépítésére.",
"help.sketch.include_3d": "A modell éleit, csúcsait és más vázlatok görbéit hozza be ebbe a vázlatba kapcsolt referenciaként, a síkján kívül esőket arra lelapítva. Használja olyan geometriára való építéshez, amely nem a vázlatsíkban fekszik.",
"help.sketch.infinite": "A vonalakat normál vonal és végtelen szerkesztőegyenes között váltja, amely az egész nézeten átfut. Használja őket kiosztási referenciaként, amely sosem ér véget túl korán.",
"help.sketch.insert_dxf": "Beolvassa egy DXF-rajz görbéit egy vázlatba, az Ön által megadott léptékkel, elforgatással és helyen. Használja egy másik programból származó 2D rajzra való építéshez, például lézerrel vágott körvonalhoz.",
"help.sketch.insert_svg": "Beolvassa egy SVG-rajz útvonalait egy vázlatba, az Ön által megadott léptékkel, elforgatással és helyen. Használja egy logó vagy vektoros körvonal kihúzható görbékké alakítására.",
"help.sketch.inspect": "Jelentést nyit a megnyitott vázlatról: hány szabadságfok maradt, és teljesen kényszerezett-e. Használja annak kiderítésére, mi mozdul még, mielőtt befejezi a vázlatot.",
"help.sketch.intersect": "Hozzáadja azokat a görbéket vagy pontokat, ahol testek, lapok, élek vagy más vázlatok metszik a vázlatsíkot. Kapcsoltak maradnak, és követik a modellt, ha az megváltozik.",
"help.sketch.intersection_curve": "3D görbéket hoz létre ott, ahol két test vagy lap találkozik, hozzájuk kapcsolva. Használja őket útvonalként vagy vezérgörbeként, amely követi a modellt.",
"help.sketch.isoparametric_curve": "3D görbét hoz létre egy lap U vagy V iránya mentén egy kiválasztott ponton át, a laphoz kapcsolva. Használja útvonalként vagy osztóvonalként, amely követi a felületet.",
"help.sketch.line": "Összefüggő vonalakat rajzol pontról pontra, nyitott láncként vagy zárt körvonalként. Ez a legtöbb profil alapeszköze.",
"help.sketch.line.midpoint": "Vonalat rajzol a felezőpontjától az egyik végéig, a másik véget tükrözve. Használja egy pontra középen álló vonalakhoz, például szimmetrikus élhez.",
"help.sketch.line3d": "Összefüggő egyeneseket rajzol a térben lévő pontok között, bekapcsolt 3D vázlattal. Használja útvonalakhoz és keretekhez, amelyek elhagyják a vázlatsíkot.",
"help.sketch.mirror": "Tükrözi a vázlatgörbéket és -pontokat egy vonalra vagy tengelyre, és szimmetriakényszereket ad hozzá. Használja egy szimmetrikus profil felének megrajzolására és kiegészítésére.",
"help.sketch.move": "Mozgatja vagy forgatja a vázlatgörbéket és -pontokat, vagy azok másolatát. Használja a geometria áthelyezésére, miközben az megtartja az alakját és a kényszereit.",
"help.sketch.offset": "Másolatot készít egy görbelánc adott távolságban, az egyik vagy mindkét oldalon. Használja falakhoz, körvonalakhoz és hézagokhoz; a távolság szerkeszthető méret marad.",
"help.sketch.paste": "Beilleszti a másolt vagy kivágott vázlatgeometriát az aktív vázlatba. Helyezze el egy pontban, vagy tolja el egy eltolással.",
"help.sketch.pattern.circular": "Másolja a vázlatgeometriát egy középpont körül, teljes körön vagy adott szögön át. Használja csavarkörökhöz, küllőkhöz és fogakhoz.",
"help.sketch.pattern.rectangular": "Másolja a vázlatgeometriát sorokban és oszlopokban, megadott térközökkel. Használja furatok, hornyok vagy szellőzőnyílások rácsaihoz.",
"help.sketch.point": "Vázlatpontot helyez el. Használja referenciaként méretekhez, kényszerekhez, furatközéppontokhoz vagy későbbi elemekhez.",
"help.sketch.point3d": "Pontot helyez el a térben, bekapcsolt 3D vázlattal. Használja referenciaként 3D görbékhez és útvonalakhoz.",
"help.sketch.polygon.circumscribed": "Szabályos sokszöget rajzol egy kör köré, a középponttól egy oldal közepéig mérve. Használja, ha a kulcsnyílás ismert, például egy hatlapú anyánál.",
"help.sketch.polygon.edge": "Szabályos sokszöget rajzol egy oldal két végpontjából. Használja, ha egy oldal hossza és helyzete ismert.",
"help.sketch.polygon.inscribed": "Szabályos sokszöget rajzol egy körbe, a középponttól egy sarokig mérve. Használja, ha a sarkok közötti méret ismert.",
"help.sketch.project": "A modell éleit, lapjait, csúcsait és más vázlatok görbéit hozza be ebbe a vázlatba, a síkjára vetítve. Kapcsoltak maradnak, és követik a modellt, ha az megváltozik.",
"help.sketch.project_to_surface": "Más vázlatok görbéit ennek a vázlatnak a normálisa mentén egy lapra vetíti, kapcsolt 3D görbékként. Használja logó, osztóvonal vagy útvonal görbült felületre helyezésére.",
"help.sketch.rectangle.center": "Téglalapot rajzol a középpontjából és egy sarkából. Használja egy pontra, például az origóra középen álló körvonalakhoz.",
"help.sketch.rectangle.rounded": "Téglalapot rajzol, amelynek mind a négy sarka egy sugárral le van kerekítve. Használja lemezekhez, fedelekhez és lekerekített sarkú nyílásokhoz.",
"help.sketch.rectangle.three_point": "Téglalapot rajzol egy élből és a szemközti oldal egy pontjából. Használja a vázlattengelyekhez képest szögben álló téglalapokhoz.",
"help.sketch.rectangle.two_point": "Téglalapot rajzol két szemközti sarokból. Használja lemezek, tömbök és zsebek körvonalaihoz.",
"help.sketch.scale": "Átléptékezi a vázlatgörbéket és -pontokat egy tényezővel egy alappont körül. Használja egy vázlat egy részének átméretezésére újrarajzolás nélkül.",
"help.sketch.slot.arc_center": "Adott szélességű íves hornyot rajzol egy ív mentén, amelyet a középpontja, a kezdő- és a végpontja határoz meg. Használja forgáspont körüli állítóhornyokhoz.",
"help.sketch.slot.arc_three_point": "Adott szélességű íves hornyot rajzol egy három ponton átmenő ív mentén. Használja, ha a horony pályájának adott pontokon kell áthaladnia.",
"help.sketch.slot.center_point": "Adott szélességű egyenes hornyot rajzol a középpontjától az egyik végív középpontjáig. Használja egy pontra középen álló hornyokhoz.",
"help.sketch.slot.center_to_center": "Adott szélességű egyenes hornyot rajzol a két végívének középpontja között. Használja a középponttól középpontig méretezett hornyokhoz, például csavarok állítóhornyaihoz.",
"help.sketch.slot.overall": "Adott szélességű egyenes hornyot rajzol az egyik külső végétől a másikig. Használja, ha a horony teljes hossza a lényeg.",
"help.sketch.spline.control_point": "Harmadfokú spline-t rajzol, amelyet olyan vezérlőpontok alakítanak, amelyeken nem halad át. Használja sima, folyó görbékhez, amelyeket a pontok mozgatásával alakít.",
"help.sketch.spline.control_point_5": "5. fokú spline-t rajzol, amelyet vezérlőpontok alakítanak. Használja ott, ahol a görbéknek simább görbülettel kell csatlakozniuk, például látható, formatervezett felületeken.",
"help.sketch.spline.fit_point": "Sima spline-t rajzol, amely áthalad minden elhelyezett ponton, nyitottat vagy zártat. Használja egy alak ismert pontokon át való követésére.",
"help.sketch.spline3d": "Sima görbét rajzol a térben pontokon át, bekapcsolt 3D vázlattal. Használja söprési útvonalakhoz és kábelvezetésekhez, amelyek elhagyják a vázlatsíkot.",
"help.sketch.spun_profile": "A vázlatsíkban létrehozza azt a körvonalat, amelyet egy test súrol, amikor egy tengely körül forog. Használja egy esztergált alkatrész körvonalának megszerzésére forgatáshoz vagy rajzhoz.",
"help.sketch.text": "Szöveget ír a vázlatba a választott betűtípussal, magassággal és szöggel; a szavai követhetik a paramétereket. Húzza ki vagy domborítsa címkékhez és feliratokhoz.",
"help.sketch.transform": "Egy lépésben átméretezi, elforgatja és mozgatja a vázlatgeometriát egy középpont körül. Használja egy kijelölés egyszerre történő áthelyezésére és átméretezésére.",
"help.sketch.trim": "Eltávolítja a görbének a kattintás helye körüli legközelebbi keresztezések közötti darabját. Használja az átfedő vonalak zárt profillá tisztítására.",
"help.solid.align": "Úgy mozgatja a kijelölt testeket, hogy egy rajtuk lévő pont, lap vagy sík találkozzon máshol lévő ponttal, lappal vagy síkkal. Használja egy alkatrész másikhoz illesztésére az eltolás lemérése nélkül.",
"help.solid.boundary_fill": "Szilárd testeket készít az egymást átfedő szerszámtestek által bezárt tartományokból, csak a kijelölt tartományokat kitöltve. Használja olyan alak építésére, amelyet több test együtt határol.",
"help.solid.bounding_solid": "Dobozt hoz létre, amely körbeveszi a kijelölt testeket, opcionális ráhagyással. Használja egy alkatrész teljes méretének megtekintésére, vagy alapanyagként, amelyből megmunkálják.",
"help.solid.box": "Dobozt hoz létre hosszból, szélességből és magasságból, egy sarokpontból vagy egy pontra középre. Használja gyors tömbhöz, helyőrzőhöz vagy olyan testhez, amelybe elemeket vág.",
"help.solid.chamfer": "A kijelölt éleket lapos letöréssel vágja le a megadott távolságban. Használja éles élek tompítására, illetve egy csap vagy csavar bevezetésének megkönnyítésére.",
"help.solid.coil": "Csavarvonalú testet, például rugót hoz létre átmérőből, menetszámból, magasságból vagy emelkedésből, valamint kerek vagy négyzetes keresztmetszetből. Használja rugókhoz, tekercsekhez és csavarvonalú bordákhoz.",
"help.solid.combine": "Egyesíti a testeket, kivágja őket egy céltestből, vagy csak a közös térfogatukat tartja meg, és megtarthatja a szerszámtesteket. Használja alkatrészek összeolvasztására, egy alak másikkal való kivágására, vagy két test átfedésének megkeresésére.",
"help.solid.cone": "Kúpot hoz létre egy alapkörből és egy magasságból, vagy csonkakúpot, ha a tetejének is van sugara. Használja kúpos szűkületekhez, tölcsérekhez, süllyesztésekhez és hegyekhez.",
"help.solid.cylinder": "Hengert hoz létre sugárból vagy átmérőből és magasságból, egy ponton állva egy tengely mentén. Használja tengelyekhez, csapokhoz, dudorokhoz és kerek előgyártmányokhoz.",
"help.solid.draft": "A kijelölt lapokat a megadott szöggel megdönti, a semleges síktól mérve. Használja fröccsöntött vagy öntött alkatrészeken, hogy kicsússzanak a formából.",
"help.solid.emboss": "A vázlatprofilokat, például szöveget vagy logót kiemel egy lapból, vagy belesüllyeszt. Használja feliratokhoz, címkékhez és jelölésekhez sík vagy kerek lapokon.",
"help.solid.extrude": "Egy vázlatprofilt a megadott távolságon át 3D-ssé húz, anyagot adva hozzá vagy eltávolítva. Használja egy lapos körvonal tömbbé, dudorrá vagy mélyedéssé alakítására.",
"help.solid.fillet": "A kijelölt éleket a megadott sugarú, sima körív alakú átmenettel lekerekíti. Használja az éles élek lágyítására szilárdság, kényelem vagy megjelenés érdekében.",
"help.solid.hole": "A megadott átmérőjű kerek furatot fúr egy lap kiválasztott pontján. Használja csavarok átbújtatására, csapokhoz és más egyszerű kerek nyílásokhoz.",
@@ -1425,20 +1653,60 @@
"help.solid.move": "A kijelölt testeket vagy azok másolatát mozgatja vagy forgatja a megadott távolsággal és szöggel. Egy test áthelyezésére vagy egy második példány más helyen való elkészítésére használja.",
"help.solid.offset_face": "A kijelölt lapokat a megadott távolsággal befelé vagy kifelé tolja, a környező lapok követik. Fal vastagabbá, zseb mélyebbé vagy dudor magasabbá tételére használja a vázlat szerkesztése nélkül.",
"help.solid.pattern.circular": "A kijelölt objektumokat egy tengely körül ismétli a megadott darabszámmal és teljes szöggel. Csavarkörökhöz, küllőkhöz, bordákhoz és fogakhoz használja.",
"help.solid.pattern.path": "Elemeket vagy testeket másol egy vázlatútvonal mentén, darabszám és térköz szerint. Használja görbült él menti furatokhoz vagy sín menti alkatrészekhez.",
"help.solid.pattern.rectangular": "A kijelölt objektumokat egy vagy két irányban ismétli a megadott darabszámmal és térközzel. Furatok, bordák, csapok vagy lábak soraihoz és rácsaihoz használja.",
"help.solid.pipe": "Kerek csövet hoz létre vázlatgörbékből álló útvonal mentén, tömören vagy falvastagsággal üregesen. Használja csövekhez, huzalokhoz, kábelekhez és sínekhez.",
"help.solid.press_pull": "Anyagot ad hozzá vagy távolít el egy lap húzásakor, illetve lekerekíti az éleket, ha húzza őket. Közvetlenül a modellen végzett gyors módosításokhoz használja.",
"help.solid.remove": "A kijelölt testeket az idővonal ezen pontjától kezdve kiveszi a tervből; a korábbi lépések megtartják őket. Segédtest, például egy már nem szükséges vágószerszám elhagyására használja.",
"help.solid.replace_face": "A kijelölt sík lapokat egy síkra vagy egy párhuzamos lapra mozgatja, és a test annak megfelelően nő vagy zsugorodik. Egy lap másik alkatrésszel vagy szerkesztő síkkal egy vonalba hozására használja.",
"help.solid.revolve": "Egy vázlatprofilt egy tengely körül forgat el, hogy kerek szilárd testet hozzon létre. Tengelyekhez, gombokhoz, tálakhoz és minden olyan alkatrészhez használja, amely egy középvonal körül kerek.",
"help.solid.rib": "Vékony falat ad egy nyitott vázlatgörbe mentén, kitöltve a test következő lapjaiig. Használja falak és sarkok merevítésére, például öntött vagy nyomtatott alkatrészekben.",
"help.solid.scale": "A kijelölt testeket egy tényezővel nagyítja vagy kicsinyíti, minden irányban egyformán vagy tengelyenként külön-külön. Importált alak átméretezésére vagy a zsugorodás figyelembevételére használja.",
"help.solid.shell": "Kiüregez egy szilárd testet, a megadott vastagságú falakat meghagyva, és a kiválasztott lapokat megnyithatja. Dobozokhoz, fedelekhez és más vékony falú alkatrészekhez használja.",
"help.solid.sphere": "Gömböt hoz létre sugárból vagy átmérőből egy középpont körül. Használja golyókhoz, gombokhoz és lekerekített végekhez.",
"help.solid.split_body": "Egy testet külön testekre vág egy síkkal, egy másik test lapjával vagy egy vázlatvonallal. Önállóan nyomtatott, megmunkált vagy színezett alkatrészek készítéséhez használja.",
"help.solid.split_face": "A kijelölt lapokat egy sík, egy másik test lapja vagy vázlatgörbék mentén osztja fel, a test elvágása nélkül. Egy lap egy részének saját dőlés, szín vagy eltolás adásához használja.",
"help.solid.sweep": "Egy vázlatprofilt egy útvonal mentén húz végig, hogy szilárd testet hozzon létre. Csövekhez, sínekhez, fogantyúkhoz és minden olyan alkatrészhez használja, amelynek állandó a keresztmetszete, és egy görbét követ.",
"help.solid.thread": "ISO metrikus menetet ad egy hengeres laphoz, kozmetikus menetként vagy a testbe vágva. Használja csavarokhoz, menetes furatokhoz és nyomtatott csavaralkatrészekhez.",
"help.solid.torus": "Gyűrűt hoz létre a tengelye körüli nagy sugárból és a kerek keresztmetszetének kis sugarából. Használja O-gyűrűkhöz, fogantyúkhoz és kerek gyöngyökhöz.",
"help.solid.web": "Vékony falat ad minden nyitott vázlatgörbe mentén, mindegyiket a test következő lapjaiig kitöltve. Használja házakban és tálcákban támasztó falak rácsához.",
"help.surface.blend": "Olyan felületet hoz létre, amely áthidalja két test éleit, mindkettőhöz érintő vagy görbületfolytonos módon. Használja két felület sima összekötésére egy résen át.",
"help.surface.boundary": "Felületet hoz létre, amely kitölt két-négy vázlatgörbéből álló hurkot vagy egy görbehálót. Használja szabadformájú panelekhez, amelyeket az éleik határoznak meg.",
"help.surface.extend": "Meghosszabbít egy felületet az élein túl, adott távolsággal vagy egy síkig vagy lapig. Használja, hogy a felületek átfedjék egymást, mielőtt levágja vagy összevarrja őket.",
"help.surface.extrude": "Vázlatgörbéket vagy profilokat tol egy távolságon át felületté, csak falakkal, fedőlapok nélkül. Használja vékony falakhoz, valamint vágó- vagy osztószerszámokhoz.",
"help.surface.fair": "Kisimítja a szabadformájú lapok belsejét, miközben az éleik a helyükön maradnak. Használja egy felület dudorainak és hullámos tükröződéseinek kiegyenlítésére.",
"help.surface.loft": "Olyan felületet hoz létre, amely sorban áthalad két vagy több szelvényen, fedőlapok nélkül. Használja héjakhoz és különböző alakzatok közötti átmenetekhez.",
"help.surface.match": "Újraépíti egy felület szélét, hogy találkozzon egy másik test élével, egyező érintővel vagy görbülettel. Használja két felület közötti varrat sima lezárására.",
"help.surface.offset": "Lapok másolatát hozza létre a normálisaik mentén adott távolságban, új felülettestként. Használja burkolatokhoz, hézagokhoz vagy egy fal másik oldalához.",
"help.surface.patch": "Egy vázlattartományt vagy élek zárt hurkát tölt ki egy lappal, laposan vagy simán görbítve. Használja egy felülettest lyukainak lezárására.",
"help.surface.reverse_normal": "Megfordítja egy felülettest lapjait, így a külső oldaluk a másik irányba néz. Használja vastagítás vagy összevarrás előtt, ha a lapok befelé néznek.",
"help.surface.revolve": "Vázlatgörbéket vagy profilokat forgat egy tengely körül felületté, fedőlapok nélkül. Használja kerek héjakhoz, például lámpaernyőkhöz, tálakhoz és fúvókákhoz.",
"help.surface.ruled": "Egyenes vonalakból álló sávot hoz létre élek láncából kiindulva, a lap normálisa vagy érintője mentén, vagy szögben. Használja dőlt falakhoz, lefutásokhoz és osztófelületekhez.",
"help.surface.stitch": "Összevarrja a felülettesteket a közös éleik mentén, szilárd testté, ha zárt teret alkotnak. Használja felületek egy csoportjának egyetlen testté alakítására.",
"help.surface.sweep": "Vázlatgörbéket vagy profilokat mozgat egy útvonal mentén felületté, fedőlapok nélkül. Használja ereszcsatornákhoz, szegélyekhez és más vékony alakzatokhoz, amelyek egy útvonalat követnek.",
"help.surface.thicken": "Vastagságot ad egy felülettestnek, szilárd testté alakítva. Használja felületekből nyomtatható vagy megmunkálható alkatrészek készítésére.",
"help.surface.trim": "Elvág egy felületet egy síkkal, egy másik felülettel vagy vázlatgörbékkel, és a kiválasztott oldalt tartja meg. Használja felületek alakra vágására az összevarrás előtt.",
"help.surface.unstitch": "Egy test lapjait különálló felülettestekbe választja szét; egy szilárd test felületekre esik szét. Használja egy test egyes lapjainak átdolgozására.",
"help.surface.untrim": "Eltávolítja a lyukakat egy lapról, vagy visszaállítja a külső határát a felület természetes határaira. Használja a teljes felület visszanyerésére vágás után.",
"help.third_party": "Harmadik felek licencei",
"help.timeline.compute_all": "Az idővonal minden elemét az elejétől újraépíti. A modell frissítésére és a sikertelen elemek megtekintésére használja.",
"help.timeline.delete": "Törli a kijelölt elemeket az idővonalról; egy vázlat törlése a belőle épített elemeket is törli. Egy már nem kívánt lépés eltávolítására használja.",
"help.timeline.dependents": "Felsorolja azokat az elemeket, amelyek egy elemmel együtt törlődnének, és azokat, amelyek nélküle hibára futnának. Használja egy elem törlése vagy módosítása előtt.",
"help.timeline.play": "Egyenként újrajátssza a hátralévő elemeket, minden újraépítés után fél másodperc szünettel. A leállításhoz futtassa újra ezt a parancsot, vagy nyomja meg az Esc billentyűt; az Ugrás a végére azonnal a végére ugrik.",
"help.view.apply": "A nézetet egy szabványos irányba fordítja, például elölről, felülről vagy izometrikusra, vagy egy mentett elnevezett nézetre. Használja, hogy a modellt rögzített szögből nézze.",
"help.view.delete": "Töröl egy mentett elnevezett nézetet. A modell nem változik.",
"help.view.fit": "Nagyít és pásztáz, hogy az egész modell vagy a kijelölés kitöltse a nézetet. Használja, ha a modell kikerült a látómezőből.",
"help.view.grid": "Megjeleníti vagy elrejti a rácsot a nézetablakban. Használja méret- és tájékozódási segédletként modellezés közben.",
"help.view.ground_shadow": "Megjeleníti vagy elrejti a modell árnyékát a talajon. Használja a magasság és a helyzet könnyebb megítéléséhez.",
"help.view.home": "Visszafordítja a nézetet a kezdőirányba, és illeszti a modellt. Használja egy ismert nézethez való gyors visszatéréshez.",
"help.view.list": "Felsorolja a tervben mentett elnevezett nézeteket. Használja egy korábban mentett nézet megkeresésére.",
"help.view.navigate": "Lépésenként forgatja, pásztázza vagy nagyítja a nézetet, például negyedfordulatot balra. Használja a kamera pontos mozgatására húzás helyett.",
"help.view.navigation_bar": "Megjeleníti vagy elrejti a navigációs sávot a nézetablak alján. Rejtse el a több helyért, jelenítse meg, hogy egérrel elérje a nézeteszközöket.",
"help.view.rename": "Új nevet ad egy mentett elnevezett nézetnek. Maga a nézet változatlan marad.",
"help.view.save": "Elmenti a kamera jelenlegi helyzetét elnevezett nézetként a tervben. Használja, hogy később ugyanahhoz a szöghöz térjen vissza, például képernyőképekhez.",
"help.view.spin": "Folyamatosan körbeforgatja a nézetet a modell körül a következő kattintásig vagy billentyűleütésig. Használja egy modell minden oldalról való bemutatására.",
"help.view.tool": "Rögzít egy kameraeszközt, keringést, pásztázást vagy nagyítást, így a bal egérgombbal való húzás mozgatja a nézetet, amíg ki nem kapcsolja. Használja érintőpadon vagy középső egérgomb nélkül.",
"help.view.visual_style": "Átváltja a modell megjelenítési módját: árnyalt élekkel vagy anélkül, drótváz, vagy rejtett élekkel. Használja a drótvázat a belső megtekintésére, az árnyaltat a tiszta megjelenéshez.",
"history.sketch_under_constrained": "Alulkényszerezett ({count} szabadságfok)",
"history.sketch_under_constrained_one": "Alulkényszerezett ({count} szabadságfok)",
"hole_presets.confirm_delete": "Törlés megerősítése",
@@ -1615,6 +1883,10 @@
"material.selection.mixed": "Különböző anyagok",
"measure.at": "Itt",
"measure.item": "{number}. elem",
"measure.quick_copied": "Mérés átmásolva",
"measure.quick_copy": "Kattintson a mérés másolásához",
"measure.quick_edges": "{count} él",
"measure.quick_faces": "{count} lap",
"messages.ago_h": "{n} órája",
"messages.ago_min": "{n} perce",
"messages.ago_s": "{n} másodperce",
@@ -1648,6 +1920,7 @@
"nav.hfss.help": "Alt+bal húzás: pásztázás, Shift+Alt+bal húzás: nagyítás, Ctrl+bal húzás üres területen: keringés",
"nav.inventor.help": "Középső húzás: pásztázás, Shift+középső húzás: keringés, Ctrl+középső húzás: nagyítás, jobb húzás: keringés",
"nav.maya.help": "Alt+bal húzás: keringés, Alt+középső húzás: pásztázás, Alt+jobb húzás: nagyítás; a középső húzás is pásztáz",
"nav.nx.help": "Középső húzás: keringés, Shift+középső húzás: pásztázás (az NX-ben középső + jobb gomb), Ctrl+középső húzás: nagyítás (az NX-ben középső + bal gomb); a jobb húzás nem mozgatja a kamerát",
"nav.openscad.help": "Bal húzás üres helyen: keringés, Shift+bal húzás: kijelölés kerettel, a vázlatgeometria húzása szerkeszt; jobb vagy középső húzás: pásztázás, Shift+jobb vagy Shift+középső húzás: nagyítás",
"nav.perspective.sketch": "A vázlatszerkesztés ortografikus nézetet használ. A perspektívára váltáshoz fejezze be a vázlatot.",
"nav.right_drag_orbits.help": "Ki: a jobb gombos húzás nem mozgatja a kamerát, és a jobb gomb csak a helyi menüt nyitja meg. A SolidWorks egérkiosztás kiválasztása kikapcsolja.",
@@ -1767,6 +2040,11 @@
"not a move": "nem mozgatás",
"not a number": "nem szám",
"open a sketch first": "előbb nyisson meg egy vázlatot",
"parameters.apply_live": "Minden módosítás alkalmazása a mező elhagyásakor",
"parameters.apply_live_tip": "Kikapcsolva: a módosítások az Alkalmaz vagy az OK megnyomásáig várnak, majd a terv egyszer épül újra mindegyikkel. A Mégse vagy az Esc elveti őket.",
"parameters.held": "{count} módosítás vár az Alkalmazásra",
"parameters.held_hint": "Kifejezések és egységek szerkesztése. A módosítások az Alkalmaz vagy az OK megnyomásáig várnak.",
"parameters.held_one": "1 módosítás vár az Alkalmazásra",
"parts.automatic_name": "automatikus",
"parts.dimension.across_flats": "Kulcsnyílás",
"parts.dimension.bore": "Furat",
@@ -1789,6 +2067,8 @@
"parts.family.set_screw": "Belső kulcsnyílású szárnélküli csavar, lapos végű",
"parts.family.socket_head_cap_screw": "Belső kulcsnyílású hengeresfejű csavar",
"parts.family.washer": "Sima alátét",
"parts.holes": "Furatok (opcionális)",
"parts.placement_hint": "jelöljön ki egy vagy több furatot, hogy mindegyikbe beillesszen egy alkatrészt, vagy az OK az origóba helyezi",
"pattern.alignment_2": "2. igazítás",
"pattern.alignment_hint": "A darabszám tartalmazza az eredetit. A Közép kiegyensúlyozza a másolatokat; a Megfordítás páros összegnél kijelöli a többletoldalt.",
"pattern.direction_1": "1. irány",
@@ -1862,6 +2142,8 @@
"prefs.ctrl_cmd": "Ctrl / Cmd",
"prefs.curved_surfaces": "Görbült felületek",
"prefs.curves": "Görbült felületek",
"prefs.dark_parts_shading": "A sötét alkatrészek formájának megőrzése",
"prefs.dark_parts_shading_help": "A nézet árnyalása lineáris fényben, lágy égbolt-kitöltéssel, hogy a sötét lapokon megmaradjon az átmenet, és ne váljanak feketévé",
"prefs.dead_zone_note": "A sraffozott sáv a holtsáv: az azon belüli mozgást figyelmen kívül hagyja.",
"prefs.default": "alapértelmezett",
"prefs.design": "Terv alapbeállításai",
@@ -1876,6 +2158,8 @@
"prefs.edges": "Élek és árnyalás",
"prefs.extend": "Meghosszabbítás",
"prefs.extra_navigation": "A Ctrl+bal egérgombos húzás az üres területen keringést végez; a Szóköz nyomva tartásával pásztázhat.",
"prefs.extrude_view_isometric": "A nézet izometrikusra fordítása a Kihúzás megnyitásakor",
"prefs.extrude_view_return": "Visszatérés a korábbi nézethez a Kihúzás bezárásakor",
"prefs.follows_os": "Az operációs rendszert követi",
"prefs.font": "Betűtípus",
"prefs.font_fallback": "A kiválasztott betűtípusból hiányzó karakterek a beépített betűtípusból pótlódnak, így egyetlen felirat sem mutat üres négyzetet.",
@@ -1891,6 +2175,7 @@
"prefs.graphics_card_auto": "Automatikus",
"prefs.graphics_card_missing": "A mentett videokártya nem érhető el; az Automatikus beállítás van használatban.",
"prefs.graphics_card_restart": "A SolidCraft újraindítása után lép életbe. A WGPU_ADAPTER_NAME felülbírálja ezt a választást.",
"prefs.graphics_card_unused": "A mentett videokártyát nem használta ez az ablak; a ténylegesen használt kártya a Súgó › A SolidCraftról ablakban és az állapotsorban látható. Próbálja az Automatikus beállítást, vagy a WGPU_ADAPTER_NAME értékét állítsa a kártya nevének egy egyedi részletére.",
"prefs.graphics_note": "Cserélje a sebességet simaságra. Minden választás hatását egy minta mutatja.",
"prefs.graphics_presets_note": "Az előbeállítások az alábbi beállításokat együtt állítják be.",
"prefs.hide_constraint_glyphs_zoomed_out": "Kényszerjelek elrejtése kicsinyítéskor",
@@ -1905,6 +2190,8 @@
"prefs.history_sketches_note": "Ha a Vázlatok beállítása „Elemük alatt”, a bal oldali Előzmények minden vázlatot egy szinttel beljebb, az első belőle készült elem alatt sorol fel, ha elég széles a nevekhez. Az alul lévő idővonal mindig a létrehozás sorrendjét tartja meg.",
"prefs.history_sketches_under_feature": "Elemük alatt",
"prefs.hold_stop_snapping": "Nyomva tartva leállítja az illesztést",
"prefs.home_fit_size": "A Kezdőnézet és az Illesztés mérete",
"prefs.home_fit_size_note": "Mekkora részét tölti ki a modell a nézetnek, amikor a Kezdőnézet, az Illesztés, egy megnyitott terv vagy egy navigátornézet-váltás keretezi, függetlenül attól, hogy az alábbi beállítás be van-e kapcsolva. 100 %: kitölti a nézetet a panelek, az iránytű és a navigációs sáv között.",
"prefs.icons_only": "Csak ikonok",
"prefs.imported_file": "Importált fájl",
"prefs.in_browser": "A böngészőben",
@@ -1913,13 +2200,20 @@
"prefs.interface_language": "Felület nyelve",
"prefs.interface_note": "A SolidCraft megjelenése és elemeinek elhelyezése.",
"prefs.interval_minutes": "{n} perc",
"prefs.invert_navigator_arrows": "A nézetkocka forgatónyilainak megfordítása",
"prefs.invert_navigator_arrows_note": "A kocka körüli nyilak úgy keringetik a kamerát, ahogy mutatnak, mint a Fusion és az Inventor esetében: a bal oldali nyíl jobbra mutat, és a kamerát jobbra lendíti. Ki: a nyíl a kockát afelé az oldal felé forgatja, amelyiken van, így a bal nyíl a kamerát balra lendíti. Az íves gördülőnyilakat ez nem érinti.",
"prefs.keep_work_on_tab_switch": "A párbeszédablakok és eszközök nyitva tartása tervek közötti váltáskor",
"prefs.keep_work_on_tab_switch_note": "Minden tervfül megtartja a nyitott párbeszédablakát vagy eszközét azzal együtt, amit kijelölt és beírt benne, valamint a menüszalag-fülét. A tervhez visszatérve újra ott vannak. Ki: a tervek közötti váltás megszakítja őket, és a Modell fület mutatja.",
"prefs.labels": "Feliratok",
"prefs.language_system": "Rendszer",
"prefs.layout": "Elrendezés",
"prefs.layout_note": "A Kompakt a paneleket az ablak széleihez rögzíti. A Böngésző áttetszősége Lebegő módban érhető el. Az Asszisztens oldalát az Asszisztens oldalon módosíthatja.",
"prefs.left": "Bal",
"prefs.left_click": "Bal kattintás",
"prefs.line_drag_draws_one": "Lenyomás és húzás egy vonalat rajzol",
"prefs.line_drag_draws_one_note": "A Vonal eszközben a lenyomás, húzás és felengedés egyetlen vonalat rajzol a lenyomás helyétől a felengedés helyéig, és ott véget ér. A kattintások továbbra is láncot rajzolnak. Ki: a húzás a felengedés helyén pontot helyez el, ahogy a kattintás.",
"prefs.line_hover_tangent_arc": "Egy vonal utolsó pontján megállva váltás érintő ívre",
"prefs.line_hover_tangent_arc_note": "A Vonal eszközben, miután megrajzolt egy szakaszt, mozdítsa el a mutatót a lánc utolsó pontjától, térjen vissza, és tartsa mozdulatlanul rajta: a következő kattintás egy érintő ívet fejez be, ugyanez a mozdulat pedig visszavált vonalakra. Ki: az ott megállás nem csinál semmit.",
"prefs.linked_designs": "Kapcsolt tervek",
"prefs.live_input": "Élő bevitel",
"prefs.live_preview": "Élő előnézet",
@@ -1943,6 +2237,8 @@
"prefs.mouse_mapping": "Egérkiosztás",
"prefs.navigation": "Navigáció",
"prefs.navigation_note": "Hogyan mozgatja a nézetet az egér, az érintőpad és a 3D-egér.",
"prefs.navigator_fit": "A modell illesztése navigátornézet-váltás után",
"prefs.navigator_fit_note": "A nézetkocka egy lapja, sarka vagy nyila, illetve a gizmo egy tengelye a modell közepére is ránéz abból az egyetlen távolságból, amelyből minden oldalról belefér (a határoló gömbje). Amíg ez be van kapcsolva, a Kezdőnézet ugyanazt a nagyítást és középpontot használja, így az utána választott nézetek csak elfordulnak. Ki: a nézet a helyén fordul el, megtartva a célpontját és a nagyítását.",
"prefs.network_host_remove": "Eltávolítás",
"prefs.network_locations": "Hálózati helyek engedélyezése a tervekben",
"prefs.network_locations_note": "Ki: egy terv másik számítógépen lévő hivatkozott fájljai (\\\\server\\share) csak az itt felsorolt kiszolgálókról nyílnak meg, vagy miután kérdésre engedélyez egyet.",
@@ -1955,6 +2251,8 @@
"prefs.origin_plane_names": "Origósíkok nevei",
"prefs.origin_plane_names_note": "A Böngészőben, a párbeszédablakokban és a listákban megjelenő nevek. A {top} az XY, a {front} az XZ, a {right} pedig az YZ, a Z felfelé mutat. A parancsok, szkriptek és mentett tervek az XY, XZ és YZ jelölést tartják meg.",
"prefs.overall_speed": "Összsebesség",
"prefs.parameter_list_rows": "Paraméterlista sorai",
"prefs.parameter_list_rows_tip": "Az üres értékmezőben a Lefelé nyíl felsorolja a paramétereket, a kedvenceket előre, legfeljebb ennyit. Kevesebb sor esetén a lista könnyű marad egy nagy tervben.",
"prefs.persistent_ribbon_pressed": "Az aktív menüszalag-parancsok kiemelése",
"prefs.persistent_ribbon_pressed_help": "Kiemeli a menüszalag parancsait, amíg a hatásuk be van kapcsolva. Kapcsolja ki a korábbi semleges megjelenés és parancssúgó megtartásához.",
"prefs.perspective_fov": "Látószög",
@@ -1984,9 +2282,13 @@
"prefs.quality_fastest": "leggyorsabb",
"prefs.quality_slowest": "leglassabb",
"prefs.quality_smoother": "simább",
"prefs.quick_measure": "Gyorsmérés a nézet sarkában",
"prefs.quick_measure_note": "A kijelölés mérete a nézet jobb alsó sarkában: egy él hossza, kerek él esetén Ø és R, egy lap területe, egy pont helyzete, két elem távolsága és szöge, több él vagy lap összege. Egy kattintás átmásolja.",
"prefs.render_previous_geometry_budget": "Korábbi geometriakeret használata a renderelési előnézethez",
"prefs.render_previous_geometry_budget_help": "A korábbi rögzített geometriakorlát visszaállítása (64 bites asztali gépen 512 MiB, máshol 128 MiB) az eszközalapú keret helyett.",
"prefs.reports_saved": "{n} mentve",
"prefs.ribbon_click_ends_tool": "A futó eszköz gombjára kattintva az eszköz befejeződik",
"prefs.ribbon_click_ends_tool_note": "A használatban lévő vázlateszköz kivilágított menüszalag-gombjára kattintva az eszköz befejeződik, így a nézetben a kattintások újra kijelölnek. Ki: a kattintás újra elindítja az eszközt.",
"prefs.ribbon_reveal": "Keresési találatok megmutatása a menüszalagon",
"prefs.ribbon_reveal_note": "Ha a Parancsok keresése egy találata fölé viszi a mutatót, megjelenik, hol található a parancs a menüszalagon: a füle, a gombja vagy a sora egy panel legördülő listájában. A keresésből indított parancs ott felvillan, a legördülő listából futó parancs pedig megjelöli a panelját.",
"prefs.right_click": "Jobb kattintás",
@@ -2016,6 +2318,8 @@
"prefs.sketch_exit_view.previous": "Visszatérés az előző nézethez",
"prefs.sketch_exit_view.unless_rotated": "Visszatérés, ha nem lett forgatva",
"prefs.sketch_exit_view_note": "Hová kerül a nézet a Vázlat befejezése, a Mégse vagy a dupla Esc után.",
"prefs.sketch_face_activates_part": "Ha egy alkatrész lapjára rajzol vázlatot, az az alkatrész aktív lesz",
"prefs.sketch_face_activates_part_note": "Egy másik komponens testének lapján indított vázlat előbb aktiválja azt a komponenst, így a vázlat ahhoz tartozik, és a böngészőben ennél az alkatrésznél marad. Az alkatrész utána is aktív marad. Ki: a vázlat az aktív komponenshez tartozik.",
"prefs.sketch_open_look_at": "Vázlat megnyitásakor a nézet a vázlatra fordul",
"prefs.sketch_open_look_at_note": "Ki: vázlat létrehozása vagy szerkesztése nem változtatja a nézetet. A Ránézés a vázlatra fordítja a nézetet, amikor szeretné.",
"prefs.sketch_recent_snap": "Automatikus illesztés a legutóbbi középpontokhoz és felezőpontokhoz",
@@ -2029,6 +2333,8 @@
"prefs.sketch_tab_always_note": "A Vázlat fül a szalagon marad, közvetlenül a Modell után, akkor is, ha nincs megnyitott vázlat. Rajzszerszámai ilyenkor a kijelölt síkon vagy lapon, illetve a következőként kiválasztott síkon indítanak vázlatot, benne a kiválasztott szerszámmal.",
"prefs.sketch_tracking_guides": "Középpont- és felezőpont-igazítási segédvonalak",
"prefs.sketch_tracking_guides_note": "Vigye az egérmutatót egy kör középpontja vagy egy egyenes él felezőpontja fölé, majd mozgassa vízszintesen vagy függőlegesen, hogy ideiglenes pontozott segédvonal jelenjen meg.",
"prefs.sketch_tracking_points": "Igazítási segédvonalak végpontokból és sarkokból rajzolás közben",
"prefs.sketch_tracking_points_note": "Amíg egy rajzeszköz pontra vár, egy vonal vagy ív végpontja, egy téglalap sarka vagy egy szabad pont fölé víve ugyanaz az ideiglenes pontozott segédvonal jelenik meg, mint egy középpontnál vagy felezőpontnál. Kikapcsolva: csak a középpontoknál és felezőpontoknál.",
"prefs.sketching": "Vázlatkészítés",
"prefs.snap_drawing_note": "Vázlatpont rajzolása vagy húzása közben.",
"prefs.source": "Forrás",
@@ -2045,6 +2351,24 @@
"prefs.status_error": "Hiba",
"prefs.status_selected": "Kijelölve",
"prefs.status_warning": "Figyelmeztetés",
"prefs.structure.appearance": "Megjelenés",
"prefs.structure.appearance_note": "Színek, szöveg és kisegítő lehetőségek.",
"prefs.structure.in_profile": "Profilban",
"prefs.structure.layout": "Elrendezés",
"prefs.structure.layout_note": "Az ablak részeinek elhelyezkedése.",
"prefs.structure.look": "Kinézet",
"prefs.structure.measure_pointer": "Mérés és mutató",
"prefs.structure.mouse3d": "3D-egér",
"prefs.structure.mouse3d_note": "SpaceMouse és SpaceNavigator.",
"prefs.structure.navigation_note": "Egér és érintőpad. A 3D-egérnek saját oldala van.",
"prefs.structure.profile": "Profil",
"prefs.structure.profile_edited": "A mentés óta módosítva",
"prefs.structure.profile_hover": "Mentve a beállításprofilokban",
"prefs.structure.scale_percent": "{percent}%",
"prefs.structure.sketch": "Vázlat",
"prefs.structure.tools": "Szerszámok",
"prefs.structure.tools_note": "Hogyan viselkednek a modellezőszerszámok.",
"prefs.structure.work": "Munka",
"prefs.supersampling_brief": "A nézetet nagyobbra rajzolja, majd leszűri: nagyon éles, de erőforrásigényesebb.",
"prefs.tab_accent_note": "A hangsúlyszín az aktív fület követi",
"prefs.theme_file": "témafájl",
@@ -2056,6 +2380,16 @@
"prefs.theme_follow_off": "Ki",
"prefs.theme_follow_stop": "Követés leállítása",
"prefs.theme_import_hint": "Kattintson egy témafájl kiválasztásához, húzzon ide egyet, vagy nyomja meg a Ctrl+V (Macen Cmd+V) billentyűkombinációt egy kimásolt témával",
"prefs.theme_option_opacity": "Átlátszatlanság",
"prefs.theme_option_opacity_help": "A lebegő panelek átlátszatlanságának beállítása. Az olvashatósági alsó határ védi a szöveget a nézetablak színei fölött.",
"prefs.theme_option_tab_colours": "Fülek színei",
"prefs.theme_option_tab_colours_help": "A téma panel- és nézetablak-színeinek használata minden menüszalag-fülhöz.",
"prefs.theme_option_tab_fade_ms": "Fülváltás átmenete",
"prefs.theme_option_tab_fade_ms_help": "A panel- és nézetablak-színek áttűnése fülváltáskor. A nulla azonnal vált.",
"prefs.theme_options_badge": "Beállítások",
"prefs.theme_options_more": "Továbbiak · {count}",
"prefs.theme_options_reset": "Visszaállítás",
"prefs.theme_options_unavailable": "Ezen az eszközön nem érhető el",
"prefs.theme_paste": "Téma beillesztése",
"prefs.theme_paste_none": "A vágólap nem tartalmaz SolidCraft-témát",
"prefs.timeline_half_hour": "−30 perc",
@@ -2077,6 +2411,8 @@
"prefs.under_cursor": "A kurzor alatt",
"prefs.units_precision": "Egységek és pontosság",
"prefs.updates": "Frissítések",
"prefs.value_boxes_in_view": "Értékek megjelenítése a fogantyúik mellett a nézetben",
"prefs.value_boxes_in_view_tip": "A parancs értéke (Távolság, Sugár…) egy mezőben a fogantyúja mellett, a modell fölött. Kikapcsolva: a parancsablakban írja be, amely kijelölés után átveszi a billentyűzetet, és semmi sem takarja a modellt.",
"prefs.view": "Nézet viselkedése",
"prefs.view_confirm_corner": "OK és Mégse a nézet sarkában",
"prefs.view_confirm_corner_note": "Amíg egy párbeszédablak vagy vázlat nyitva van, a nézet jobb felső részén egy pipa és egy kereszt a párbeszédablak OK és Mégse gombját működteti, illetve befejezi vagy megszakítja a vázlatot. A nézetnavigátor lejjebb kerül alattuk.",
@@ -2086,6 +2422,12 @@
"prefs.viewport_background": "Háttér",
"prefs.viewport_background_colour": "Szín",
"prefs.viewport_background_theme": "A téma színátmenete",
"prefs.viewport_section_status": "Nézetablak-metszet állapotának megjelenítése",
"prefs.viewport_section_status_help": "A metszet beállításának megjelenítése a nézetablakban. Az Esc és az aktív menüszalag-gomb kikapcsolja. Kapcsolja ki az előző metszetvezérlők megtartásához.",
"prefs.viewport_status_details": "Élő nézetablak-részletek",
"prefs.viewport_status_details_help": "Az aktív elemzés és metszet beállításainak szerkesztése szabványos részletkártyákon. Kapcsolja ki a csak olvasható elemzési jelmagyarázatok és a Metszet párbeszédpanel visszaállításához.",
"prefs.viewport_status_summary": "Nézetablak-állapotelemek összevonása",
"prefs.viewport_status_summary_help": "Három vagy több nézetablak-állapotelem összevonása egyetlen összefoglaló jelvénybe. Kapcsolja ki, hogy minden elem a teljes sorban maradjon.",
"prefs.wheel": "Görgő",
"prefs.wheel_trackpad": "Görgő és érintőpad",
"prefs.workspace": "Munkaterület",
@@ -2964,7 +3306,9 @@
"render.output_ready": "Készen áll a renderelésre",
"render.output_run_check": "Ellenőrzés futtatása",
"render.output_size_limit": "{method}: oldalanként legfeljebb {dimension} px és összesen {pixels} képpont. A legnagyobb beleférő méret: {width} × {height}.",
"render.output_size_method_profile": "{width} × {height} rendereléséhez válassza a(z) {method} módot a(z) {profile} CPU-erőforrásprofillal, vagy kisebb méretet.",
"render.output_size_ok": "Méret rendben · {width} × {height} px",
"render.output_size_profile": "{width} × {height} rendereléséhez válassza a(z) {profile} CPU-erőforrásprofilt, vagy kisebb méretet.",
"render.output_swap_orientation": "Szélesség és magasság felcserélése",
"render.output_tools_inspector": "A méretet és a formátumot a Kimenet panelen szerkesztheti.",
"render.output_view_image": "Kép megtekintése",
@@ -3177,6 +3521,7 @@
"render.size_custom": "Egyéni…",
"render.size_full_hd": "Full HD",
"render.size_hd": "HD",
"render.size_needs_profile": "{size} · szükséges: {profile}",
"render.size_presets": "Méretelőbeállítások",
"render.size_presets_pending": "A Kimenet szerkesztővel érkezik",
"render.size_preview": "Előnézet",
@@ -3464,6 +3809,24 @@
"sheet.flange_type_contour": "Kontúr",
"sheet.flange_type_edge": "Él",
"sheet.no_body": "nincs lemeztest: kezdje a Perem > Alap paranccsal, vagy alakítson át egy lemezt lemezzé az Átalakítás lemezzé paranccsal (jelölje ki a nagy, sík lapját)",
"sheet.personal_rules.confirm_delete": "Törlés megerősítése",
"sheet.personal_rules.delete": "Törlés",
"sheet.personal_rules.delete_prompt": "Törli ezt a személyes szabályt? A tervekben már meglévő szabályok nem változnak.",
"sheet.personal_rules.full": "A személyes könyvtár már 64 szabályt tartalmaz.",
"sheet.personal_rules.invalid_name": "Adjon meg egy rövid nevet sortörések és vezérlőkarakterek nélkül.",
"sheet.personal_rules.invalid_values": "Egészítse ki a szabály értékeit: mindegyiknek kiértékelhetőnek kell lennie ebben a tervben, pozitív vastagsággal és 0 és 1 közötti K-tényezővel.",
"sheet.personal_rules.missing": "A kijelölt személyes szabály már nem érhető el.",
"sheet.personal_rules.name": "Szabály neve",
"sheet.personal_rules.name_exists": "Már van ilyen nevű személyes szabály. Használjon másik nevet.",
"sheet.personal_rules.name_hint": "Egyedi név",
"sheet.personal_rules.overwrite": "Módosítások mentése a kijelölt személyes szabályba",
"sheet.personal_rules.rename": "Átnevezés",
"sheet.personal_rules.rule": "Személyes szabály",
"sheet.personal_rules.save": "Mentés újként",
"sheet.personal_rules.scope": "A profiljában van elmentve, minden tervhez.",
"sheet.personal_rules.select": "Válasszon szabályt",
"sheet.personal_rules.title": "Személyes szabályok",
"sheet.personal_rules.unsupported": "Ennek a szabálynak olyan értékei vannak, amelyeket ez a verzió nem tud használni.",
"shortcut.json_error": "a paramétereknek JSON-nak kell lenniük: {error}",
"shortcut.no_command": "nincs `{id}` parancs; a JSON előtti szövegnek parancsazonosítónak kell lennie",
"shortcut.pin": "Rögzítés az S doboz tetejére",
@@ -3500,8 +3863,10 @@
"sketch_text.align_right": "Jobbra",
"sketch_text.bold": "Félkövér",
"sketch_text.builtin_font": "{family} (beépített)",
"sketch_text.formula": "Kezdje egyenlőségjellel (=), hogy a szavakat paraméterekből építse fel: ='W' + number(Width)",
"sketch_text.italic": "Dőlt",
"sketch_text.loading_fonts": "Telepített betűtípusok keresése…",
"sketch_text.no_bold": "A beépített betűtípusnak nincs félkövér változata: válasszon telepített betűtípust",
"sketch_text.on_path": "A szöveg követi az útvonalát: a görbe helyezi el",
"sketch_text.path_clear": "Szöveg levétele a görbéről",
"sketch_text.path_hint": "A vázlat egy görbéje, amelyet a szöveg követ: kattintson ide, majd a görbére",
@@ -3640,6 +4005,8 @@
"ui.3d_mouse_section": "3D-egér",
"ui.3d_mouse_show_in_view": "A 3D-egér megjelenítése a 3D nézetben",
"ui.3d_mouse_show_in_view_tip": "A 3D-egere képe a bal alsó sarokban, amely a mozgatásával együtt mozog.",
"ui.3d_mouse_sketch_orbit": "Vázlatok forgatása a 3D-egérrel",
"ui.3d_mouse_sketch_orbit_tip": "A 3D-egér akkor is forgatja a nézetet, amikor egy vázlat meg van nyitva és merőlegesen látszik, ahogy az egér is tudja. Kikapcsolva: a vázlatot pásztázza és nagyítja, amíg meg nem dönti a nézetet.",
"ui.3d_mouse_skip": "Az eszközöm erre nem képes",
"ui.3d_mouse_skip_tip": "Mindkét irányban kihagyja ezt a mozgást, és a kalibráció nem veszi figyelembe.",
"ui.3d_mouse_speed": "3D-egér sebessége",
@@ -3708,6 +4075,7 @@
"ui.agent_chat_auth_terminal": "Futtassa ezt egy terminálban, majd nyomja meg újra a Csatlakozás gombot:",
"ui.agent_chat_auth_title": "Bejelentkezés az ügynökbe",
"ui.agent_chat_cancel": "Mégse",
"ui.agent_chat_cannot_start": "Telepítve van, de nem indul el: {error}",
"ui.agent_chat_changes": "Módosítások: {n}, egy visszavonási lépés",
"ui.agent_chat_changes_n": "{n} módosítás",
"ui.agent_chat_changes_of": "{n}/{limit} módosítás",
@@ -3800,9 +4168,12 @@
"ui.agent_chat_queued_stopped": "Sorban (leállítva, nem küldve)",
"ui.agent_chat_refresh": "Frissítés",
"ui.agent_chat_refused": "Az ügynöknek nem engedélyezett: {reason}",
"ui.agent_chat_reinstall": "A(z) {agent} telepítve van ({program}), de a SolidCraft ellenőrzésekor nem indult el: {error}\nLehet, hogy a telepítése hiányos, vagy másféle számítógéphez készült. Telepítse újra a következővel: `{install}`, ellenőrizze, hogy egy terminálban kiírja a verzióját, majd nyomja meg a Frissítés gombot.",
"ui.agent_chat_remove": "Eltávolítás a sorból",
"ui.agent_chat_remove_file": "Levétel erről az üzenetről",
"ui.agent_chat_remove_imported": "Levétel erről az üzenetről; az alkatrész a tervben marad (a Visszavonás eltávolítja)",
"ui.agent_chat_reply_cut_off": "A válasz elérte a hosszkorlátot, mielőtt befejeződött volna, ezért hiányos lehet. Kérje meg az ügynököt, hogy folytassa, vagy adjon rövidebb választ.",
"ui.agent_chat_reply_declined": "A modell megtagadta a válaszadást erre az üzenetre.",
"ui.agent_chat_retry": "Újrapróbálás",
"ui.agent_chat_right": "Jobb",
"ui.agent_chat_save": "Mentés",
@@ -3861,12 +4232,17 @@
"ui.ai_copy_suffix": "másolat",
"ui.ai_custom_url": "Egyéni URL",
"ui.ai_default": "Alapértelmezett",
"ui.ai_edit": "Szerkesztés",
"ui.ai_edit_agent_title": "Ügynök szerkesztése",
"ui.ai_edit_gone": "Ez az ügynök el lett távolítva, így nincs mit menteni.",
"ui.ai_edit_tip": "Az ügynök nevének, parancsának vagy végpontjának módosítása. Az elmentett kulcs rejtve marad.",
"ui.ai_http_busy": "a végpont foglalt vagy túllépte a korlátját; próbálja később",
"ui.ai_http_key": "a végpont elutasította a kulcsot: ellenőrizze a Beállítások > AI menüben",
"ui.ai_http_not_found": "nincs ilyen végpont vagy modell: ellenőrizze az alap-URL-t és a modell nevét",
"ui.ai_http_too_large": "a beszélgetés túl nagy ehhez a végponthoz; kezdjen új csevegést",
"ui.ai_key": "API-kulcs",
"ui.ai_key_hint": "opcionális; a rendszer kulcstartójában tárolódik",
"ui.ai_key_keep_hint": "hagyja üresen az elmentett kulcs megtartásához",
"ui.ai_key_needs_https": "A kulcs csak HTTPS-en vagy erre a számítógépre kerül elküldésre.",
"ui.ai_key_note": "A rendszer kulcstartójában tárolódik, soha nem a SolidCraft beállításaiban. Helyi szervernél hagyja üresen.",
"ui.ai_keychain_error": "A rendszer kulcstartója elutasította: {error}",
@@ -3893,11 +4269,15 @@
"ui.ai_permissions": "Jogosultságok",
"ui.ai_preset": "Előbeállítás",
"ui.ai_protocol": "Protokoll",
"ui.ai_reasoning_effort": "Gondolkodási szint",
"ui.ai_reasoning_effort_field_hint": "üres = a szolgáltató alapértelmezése",
"ui.ai_reasoning_effort_hint": "Nem kötelező. `reasoning_effort` néven kerül elküldésre a végpontnak; az elfogadott értékek szolgáltatónként eltérnek (például `low`, `high` vagy `max`). Az itt megadott értéket a SolidCraft soha nem cseréli le. Hagyja üresen, ha nem szeretne semmit küldeni, és meg szeretné tartani a szolgáltató alapértelmezését.",
"ui.ai_remove": "Eltávolítás",
"ui.ai_request_timed_out": "A modell nem válaszolt {seconds} s alatt. A kérés időkorlátját ehhez a végponthoz a Beállítások › Asszisztens alatt emelheti meg.",
"ui.ai_request_timeout": "Kérés időkorlátja",
"ui.ai_request_timeout_hint": "Mennyi ideig tarthat egy modellkérés ehhez a végponthoz, 30 s-tól egy óráig. Lassú helyi modellnél emelje meg.",
"ui.ai_reset": "Visszaállítás",
"ui.ai_save": "Mentés",
"ui.ai_settings": "AI-beállítások…",
"ui.ai_show_features": "AI-funkciók megjelenítése",
"ui.ai_show_features_note": "Az ügynök-csevegés: egy panel, ahol egy már használt kódolóügynök vagy egy választott modellvégpont a megnyitott terven dolgozik. Kikapcsolva: nincs AI-gomb, gyorsbillentyű, menüpont vagy panel, és semmi sem keresődik vagy indul el.",
@@ -4057,6 +4437,7 @@
"ui.dark": "Sötét",
"ui.default_modelling_orientation": "Alapértelmezett modellezési tájolás",
"ui.delete": "Törlés",
"ui.delete_select_first": "Először jelölje ki a törlendőt: elemeket, testeket, komponenseket vagy vázlatgeometriát",
"ui.depth": "Mélység",
"ui.design": "Tervezés",
"ui.design_properties.author": "Szerző",
@@ -4071,6 +4452,40 @@
"ui.design_properties.project": "Projekt",
"ui.design_properties.revision": "Revízió",
"ui.design_saved": "Mentve ide: {path}",
"ui.details_access_caption": "A lapok megmutatják, hogy egy szerszám eléri-e őket a kiválasztott irányból.",
"ui.details_angle": "Szög",
"ui.details_continuity_caption": "A kijelölt varrat szerkesztése. A többi varrat megtartja a saját beállításait.",
"ui.details_continuity_stale": "Korábbi geometria: futtassa újra az elemzést a varrat szerkesztéséhez vagy a nézet ráállításához.",
"ui.details_copy_list": "Lista másolása",
"ui.details_curvature": "Görbülettűrés",
"ui.details_curvature_caption": "A lapok színe a helyi görbületi sugarukat mutatja.",
"ui.details_direction": "Szerszámirány",
"ui.details_draft_caption": "A lapok színe a húzási irányhoz mért szögüket mutatja.",
"ui.details_edit_seam": "Varrat szerkesztése",
"ui.details_fixture": "Komponensminta – csak mintaadatok",
"ui.details_fixture_caption": "Komponensminta szemléltető értékekkel; ez nem modelleredmény.",
"ui.details_fixture_problem": "Példa megállapítás hibával",
"ui.details_fixture_readout": "Példa mért érték",
"ui.details_flip": "Megfordítás",
"ui.details_gap": "Rés",
"ui.details_hatch": "Vágott lapok sraffozása",
"ui.details_jump": "Görbületugrás",
"ui.details_key": "Jelmagyarázat",
"ui.details_offset": "Eltolás",
"ui.details_plane": "Sík",
"ui.details_pull": "Húzási irány",
"ui.details_radius": "Sugár",
"ui.details_readout": "Leolvasás",
"ui.details_samples": "Minták",
"ui.details_seam": "{body} · {edge}. él",
"ui.details_settings": "Beállítások",
"ui.details_sharp_gap": "Éles vagy rés",
"ui.details_show_all": "Mind a(z) {count} megjelenítése",
"ui.details_smooth": "Sima",
"ui.details_stripes": "Csíkok",
"ui.details_target": "Geometriára állítás",
"ui.details_worst_seams": "Legrosszabb varratok",
"ui.details_zebra_caption": "A tükröződő csíkok megmutatják, milyen simán csatlakoznak a lapok.",
"ui.diameter": "Átmérő",
"ui.dimension": "Méret",
"ui.direct_interaction": "Közvetlen interakció",
@@ -4115,6 +4530,7 @@
"ui.edit_in_place_saved_elsewhere": "Az alkatrész másik fájlba lett mentve; az összeállítás továbbra is ide hivatkozik: {name}",
"ui.edit_in_place_wait": "Várja meg, amíg a tervben futó művelet befejeződik",
"ui.edit_section_analysis": "Metszetelemzés szerkesztése",
"ui.edit_sketch_empty": "Nincs szerkeszthető vázlat",
"ui.ellipse": "Ellipszis",
"ui.emboss_wrap_note": "Az egyetlen támogatott hengerhez érintő, merőleges vonalprofilok automatikusan a henger köré tekerednek. Válasszon ki egy falat a cél kiválasztásához.",
"ui.end_radius": "Végi sugár",
@@ -4125,12 +4541,15 @@
"ui.equation_explicit": "Explicit",
"ui.equation_form": "Alak",
"ui.equation_note": "A változó egyszerű szám: a sin(t) radiánban értelmezi. A mértékegység nélküli eredmény a terv mértékegységében értendő.",
"ui.equation_note_range": "A változó hossz, ahogy a tartománya is: keverje hosszparaméterekkel, és a sin() előtt ossza el egy hosszal. A mértékegység nélküli eredmény a terv mértékegységében értendő.",
"ui.equation_parametric": "Parametrikus",
"ui.equation_variable_unit": "A változó a tartomány mértékegységét használja",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Egyenértékű sugár",
"ui.expand": "Kibontás",
"ui.explode_needs_two_components": "A Robbantott nézet széthúzza a komponenseket, ezért a tervben legalább kettő kell belőlük (Új komponens, Terv beszúrása vagy Komponensek létrehozása testekből)",
"ui.exportDxf": "DXF exportálása…",
"ui.export_ellipsis_keymap": "Exportálás…",
"ui.export_keymap_tip": "Billentyűk, S doboz kedvencei és az eszköztár, fájlként",
@@ -4299,12 +4718,14 @@
"ui.joints": "Csuklók",
"ui.keyboard_shortcuts": "Billentyűparancsok",
"ui.language": "Nyelv",
"ui.lasso_select": "Lasszó (húzzon szabadkézi hurkot: azt jelöli ki, ami teljesen belül van)",
"ui.layout_compact": "Kompakt",
"ui.layout_floating": "Lebegő",
"ui.length": "Hossz",
"ui.length_decimals": "Hossz tizedesjegyei",
"ui.light": "Világos",
"ui.line": "Vonal",
"ui.line_arc_hint": "Érintő ív: kattintson az ív végpontjára. Vonalakhoz álljon meg újra az utolsó ponton; jobb kattintás vagy Esc a befejezéshez",
"ui.link_copies": "Azonos másolatok összekapcsolása",
"ui.link_copies_keep": "Megtartás",
"ui.link_copies_link": "Összekapcsolás",
@@ -4393,6 +4814,7 @@
"ui.part_size_shared": "Újraépíti az alkatrészt, a hozzáadott elemeket lecserélve. A komponens minden előfordulása frissül.",
"ui.paste": "Beillesztés",
"ui.path": "Útvonal",
"ui.pattern_object_type_tip": "Testek: tömör alakzatok, a nézetben vagy a Böngészőben kijelölve; mindegyik egészében másolódik.\nElemek: az Előzmények lépései, például egy kihúzás vagy egy furat, az Előzményekben vagy az általuk létrehozott lapon kijelölve; a lépés megismétlődik.\nA vázlat egyik sem: a görbéit a vázlat saját Minta vagy Tükrözés parancsával ismételje, vagy húzza ki előbb.",
"ui.pattern_on_path": "Minta útvonalon",
"ui.perforate_margin_default": "az átmérőből",
"ui.perforate_pitch": "Osztás",
@@ -4419,12 +4841,17 @@
"ui.plugins_skipped": "{count} mappa nem olvasható.",
"ui.plugins_version": "{version}",
"ui.point": "Pont",
"ui.point_cloud_add_filter": "Szűrő hozzáadása…",
"ui.point_cloud_auto_range": "Automatikus tartomány",
"ui.point_cloud_color_by": "Színezés alapja",
"ui.point_cloud_file_colors": "Fájl színei",
"ui.point_cloud_filter_by": "Szűrés alapja",
"ui.point_cloud_height_high": "Legmagasabb",
"ui.point_cloud_height_low": "Legalacsonyabb",
"ui.point_cloud_legend_filter": "A fenti jelmagyarázatban megjelenítve és elrejtve",
"ui.point_cloud_no_file_colors": "A fájlnak nincsenek színei",
"ui.point_cloud_pause": "Szünet",
"ui.point_cloud_play": "Lejátszás",
"ui.point_cloud_single_color": "Egyetlen szín",
"ui.point_cloud_size": "Pontméret",
"ui.point_cloud_units": "Fájl egységei",
@@ -4433,9 +4860,9 @@
"ui.polygon": "Sokszög",
"ui.preferences": "Beállítások",
"ui.press_a_key": "nyomjon meg egy billentyűt…",
"ui.print_face_body_not_sent": "Ennek a lapnak a teste nincs elküldve: előbb add hozzá a Testekhez",
"ui.print_face_cleared": "{body}: nyomtatási lap törölve",
"ui.print_face_input": "Nyomtatási lap",
"ui.print_face_one_body": "A nyomtatási lap egy testhez tartozik: a módosításhoz küldd el azt a testet egyedül",
"ui.print_face_pick": "Válassz ki egy tömör test egy sík lapját, hogy az legyen a nyomtatási lap",
"ui.print_face_set": "{body}: nyomtatási lap beállítva; a Küldés szeletelőnek erre a lapra fekteti a testet",
"ui.profile": "Profil",
@@ -4453,6 +4880,7 @@
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Mérés…",
"ui.properties.measuring_bodies": "Mérés… {done} / {total} test",
"ui.properties.measuring_failed": "A mérés leállt, mielőtt befejeződött volna.",
"ui.properties.principal_axis": "{number}. főtengely",
"ui.properties.principal_moments": "Fő tehetetlenségi nyomatékok",
@@ -4520,6 +4948,7 @@
"ui.selectOther": "Más kijelölése…",
"ui.selectTangentChain": "Érintőlánc kijelölése",
"ui.select_all": "Összes kijelölése",
"ui.select_components_by_face": "Komponensek kijelölése (egy lap a komponensét jelöli ki)",
"ui.selection": "Kijelölés",
"ui.selection_modifiers": "Kijelölési módosítók",
"ui.selection_shift_add_only": "Shift+kattintás eltávolítás nélkül hozzáad",
@@ -4561,6 +4990,11 @@
"ui.sketch_intersect_selection_filter": "Kijelölési szűrő",
"ui.sketch_modifiers": "Vázlatmódosítók",
"ui.sketch_project_geometry": "Geometria",
"ui.sketch_report.all_constrained": "Minden teljesen kényszerezett.",
"ui.sketch_report.dof": "Szabadságfokok",
"ui.sketch_report.loose": "Nem teljesen kényszerezett",
"ui.sketch_report.status": "Állapot",
"ui.sketch_report.title": "Vázlatjelentés",
"ui.sketch_scale": "Vázlat léptéke",
"ui.sketches": "Vázlatok",
"ui.slice": "Szeletelés",
@@ -4656,12 +5090,15 @@
"ui.view_angles": "Nézetszögek",
"ui.view_angles_convention": "Fok a felfelé mutató tengely körül. Az elfordulás 0° az elölnézet, 90° a bal oldali, −90° a jobb oldali, 180° a hátulnézet; a 90°-os billentés a felülnézet; a pozitív gördülés az óramutató járásával megegyező irányba forgatja a modellt.",
"ui.view_angles_help": "Megjeleníti a nézet billentését, elfordulását és gördülését fokban, valamint a vetítési módját a tájolásjelző alatt. Kattintson a kijelzőre a pontos szögek beírásához.",
"ui.view_angles_lock": "{axis} zárolása",
"ui.view_angles_ortho": "Ortog.",
"ui.view_angles_persp": "Persp.",
"ui.view_angles_pitch": "Billentés",
"ui.view_angles_readout": "Billentés {pitch} · Elfordulás {yaw} · Gördülés {roll}",
"ui.view_angles_roll": "Gördülés",
"ui.view_angles_unlock": "{axis} feloldása",
"ui.view_angles_yaw": "Elfordulás",
"ui.view_angles_zero": "{axis} beállítása 0°-ra",
"ui.view_centre": "Nézet középpontja",
"ui.viewport_status_clear": "Kikapcsolás: {name}",
"ui.viewport_status_clear_hint": "Kikapcsolás: {name} · Esc",
@@ -4670,7 +5107,14 @@
"ui.viewport_status_key": "Jelmagyarázat megjelenítése: {name}",
"ui.viewport_status_minimum_radius": "Minimális sugár",
"ui.viewport_status_pairs": "{count} pár",
"ui.viewport_status_section_hatch": "{setting} · sraffozás",
"ui.viewport_status_section_plane": "Aktuális sík",
"ui.viewport_status_section_tilted": "megdöntve · {offset}",
"ui.viewport_status_stripes": "{count} csík",
"ui.viewport_status_summary_clear": "Minden kikapcsolása",
"ui.viewport_status_summary_heading": "Ebben a nézetben",
"ui.viewport_status_summary_label": "{name} és még {count} elem",
"ui.viewport_status_summary_more": "+{count}",
"ui.viewport_theme_follow": "Téma követése",
"ui.visual_shaded_hidden_edges": "Árnyalt rejtett élekkel",
"ui.visual_shaded_with_edges": "Árnyalt élekkel",
+445 -1
View File
@@ -60,6 +60,7 @@
"BLEND SURFACE": "PERMUKAAN BLEND",
"BOUNDARY SURFACE": "PERMUKAAN BATAS",
"BROWSER": "PENJELAJAH",
"Back to the original order": "Kembali ke urutan asli",
"Ball": "Bola",
"Bar": "Batang",
"Base Center": "Pusat Dasar",
@@ -595,6 +596,8 @@
"Snap to face and edge centres": "Snap ke pusat muka dan tepi",
"SolidCraft cannot submit reports directly. Submit on GitHub; no token is needed in the app.": "SolidCraft tidak dapat mengirim laporan secara langsung. Kirim di GitHub; token tidak diperlukan di aplikasi.",
"SolidCraft closed before these designs were saved. Their last autosave can be opened.": "SolidCraft tertutup sebelum desain ini disimpan. Simpan otomatis terakhirnya dapat dibuka.",
"Sort A to Z": "Urutkan A ke Z",
"Sort Z to A": "Urutkan Z ke A",
"Spacing 2 must be a non-zero number": "Jarak antar 2 harus berupa bilangan bukan nol",
"Spacing must be a non-zero number": "Jarak antar harus berupa bilangan bukan nol",
"Specialise": "Spesialisasikan",
@@ -790,6 +793,13 @@
"browser.sketch_attachment_lost": "{name} (lampiran hilang)",
"browser.sketch_editing": "{name} (sedang diedit)",
"browser.sketch_name": "Sketsa{number}",
"browser.sketches_to_parts_already_in_part": "sudah berada di part-nya",
"browser.sketches_to_parts_design_body": "pada bodi desain itu sendiri",
"browser.sketches_to_parts_moved": "{moved} sketsa dipindahkan ke part tempat sketsa itu berada",
"browser.sketches_to_parts_no_exact_attachment": "pada muka tanpa lampiran yang tepat",
"browser.sketches_to_parts_not_on_face": "tidak berada di muka sebuah part",
"browser.sketches_to_parts_part_missing": "part-nya sudah tidak ada",
"browser.sketches_to_parts_result": "{moved} sketsa dipindahkan ke part tempat sketsa itu berada; {stayed} tetap di tempatnya: {why}",
"browser.units": "Satuan: {units}",
"cam.flat": "Muka datar",
"cam.follower": "Pengikut",
@@ -819,6 +829,7 @@
"cmd.appearance_pick_up": "Ambil Tampilan",
"cmd.appearance_replace": "Ganti Tampilan",
"cmd.assembly_bom": "Daftar Material (BOM)",
"cmd.assembly_mass_properties": "Properti massa",
"cmd.body.print_face": "Permukaan cetak",
"cmd.body_rename": "Ganti Nama Bodi",
"cmd.browser_collapse_all": "Ciutkan Semua",
@@ -856,6 +867,7 @@
"cmd.component_move_bodies": "Pindahkan Bodi ke Komponen",
"cmd.component_move_features": "Pindahkan Fitur ke Komponen",
"cmd.component_move_sketches": "Pindahkan Sketsa ke Komponen",
"cmd.component_move_sketches_to_parts": "Pindahkan Sketsa ke Part Masing-masing",
"cmd.component_paste_from_design": "Tempel dari Desain Lain",
"cmd.component_paste_new": "Tempel Baru",
"cmd.component_properties": "Properti Fisik Komponen",
@@ -1191,6 +1203,7 @@
"cmd.sketch_spline_control_point_5": "Spline Titik Kontrol (Derajat 5)",
"cmd.sketch_spline_fit_point": "Spline Titik Fit",
"cmd.sketch_spline_insert_point": "Tambah Titik Spline",
"cmd.sketch_spline_remove_point": "Hapus Titik Spline",
"cmd.sketch_spline_reverse": "Balik Arah Spline",
"cmd.sketch_spun_profile": "Profil Putar",
"cmd.sketch_toggle_diameter": "Beralih Radius / Diameter",
@@ -1244,6 +1257,7 @@
"cmd.view.render_browser": "Penjelajah Render",
"cmd.view.render_dock": "Pindah Dok Render",
"cmd.view.render_focus": "Tampilan Fokus Render",
"cmd.view.status_details": "Detail Status Viewport",
"cmd.view.status_items": "Item Status Viewport",
"cmd.view_ambient_occlusion": "Ambient Occlusion",
"cmd.view_angle_readout": "Sudut Tampilan",
@@ -1282,8 +1296,14 @@
"color.hex_hint": "#rrggbb",
"color.hue": "Rona",
"color.linear": "Menampilkan nilai warna dalam ruang linear 0-1",
"color.recent": "Warna terbaru",
"color.recent_help": "Warna yang Anda pilih di kolom warna mana pun muncul di sini",
"color.saturation": "Saturasi (persen)",
"color.saturation_value": "Saturasi dan nilai",
"color.selected": "Warna terpilih",
"color.step_down": "Turunkan",
"color.step_up": "Naikkan",
"color.value": "Nilai, yaitu kecerahan (persen)",
"config.column_filter_empty": "Tidak ada kolom yang cocok",
"contact.components_count": "{count} komponen",
"contact.enabled_label": "aktif",
@@ -1330,6 +1350,7 @@
"dialog.dimension_name": "Dimensi: {name}",
"dialog.edit_title": "EDIT {title}",
"dialog.no_shown_body": "Tidak ada bodi yang ditampilkan untuk diubah: tampilkan satu, atau pilih Bodi Baru",
"dialog.pattern_sketch_not_object": "Pilih bodi atau fitur: sketsa bukan keduanya. Ulangi kurvanya dengan Pola atau Cermin milik sketsa itu sendiri, atau ekstrusi dulu.",
"dialog.select": "↖ Pilih",
"dialog.selected_count": "↖ {count} terpilih",
"dialog.selection_guidance": "Pilih input untuk mengubahnya. Klik objek terpilih untuk menghapusnya; Ctrl/Cmd-klik juga mengalihkannya. Tinjau pratinjau, lalu tekan OK.",
@@ -1387,21 +1408,168 @@
"from the rule": "dari aturan",
"help.apache": "Lisensi Apache 2.0",
"help.appearance.assign": "Memberi bodi, muka, atau komponen terpilih warna atau tampilan material, tanpa mengubah bobotnya. Gunakan untuk membedakan part atau melihat pratinjau hasil akhir.",
"help.assembly.bom": "Mencantumkan part dalam desain atau komponen beserta jumlahnya, menurut nomor part, dan dapat menyimpan daftar itu sebagai CSV atau JSON. Gunakan sebagai daftar part untuk pemesanan dan perakitan.",
"help.attributions": "Atribusi (ATTRIBUTION.md)",
"help.build": "Versi {version} · commit {commit} · dibangun {date}",
"help.canvas.decal": "Menempatkan gambar pada muka datar model, seperti stiker. Gunakan untuk menampilkan label, logo, atau pola cetak pada sebuah part.",
"help.canvas.edit": "Mengubah sebuah kanvas: posisi, ukuran, sudut, opasitas, pencerminan, visibilitas, atau namanya. Gunakan untuk menyelaraskan gambar referensi dengan sketsa yang Anda jiplak di atasnya.",
"help.canvas.insert": "Menempatkan gambar PNG atau JPEG pada bidang atau muka sebagai referensi tembus pandang. Gunakan untuk menjiplak foto atau gambar di dalam sketsa, dengan gambar diskalakan ke ukuran yang diketahui.",
"help.component.break_link": "Memutus komponen tertaut dari file desainnya, dengan bodinya dibiarkan apa adanya. Gunakan bila part tidak perlu lagi mengikuti perubahan pada file aslinya.",
"help.component.capture_position": "Mempertahankan posisi part yang Anda pindahkan secara manual, sehingga posisi itu menjadi letak part tersebut. Gunakan setelah menyeret part ke tempatnya yang tidak ditahan sambungan apa pun.",
"help.component.create": "Menambahkan komponen baru yang kosong ke desain, di dalam komponen aktif kecuali Anda memilih induk lain. Gunakan untuk memberi bagian baru dari rakitan tempatnya sendiri bagi bodi dan sketsa.",
"help.component.finish_edit": "Menyimpan part yang sedang diedit di tempat, kembali ke rakitannya, dan memperbarui rakitan dari part tersebut. Gunakan setelah perubahan Anda pada part tertaut selesai.",
"help.component.from_bodies": "Mengubah setiap bodi terpilih menjadi komponen tersendiri, dinamai sesuai bodinya. Gunakan bila desain yang dibangun dari bodi lepas perlu menjadi rakitan yang part-nya dapat disambung dan dipindahkan.",
"help.component.insert_design": "Menyisipkan desain tersimpan lain sebagai komponen yang tertaut ke filenya, dengan bodi solidnya ditempatkan seperti di sana. Gunakan untuk memakai ulang part dalam rakitan dan menerima perubahan berikutnya lewat Perbarui Tautan.",
"help.component.properties": "Menampilkan volume, massa, pusat massa, dan momen inersia sebuah komponen, berdasarkan material bodinya. Gunakan untuk memeriksa bobot dan keseimbangan sebuah rakitan.",
"help.component.revert_position": "Mengembalikan part yang Anda pindahkan secara manual ke tempat semula, dengan membuang perpindahan yang tidak ditangkap. Gunakan untuk membatalkan percobaan pemindahan dalam rakitan.",
"help.component.update_links": "Membaca ulang file desain tertaut dan mengganti bodi yang berubah. Gunakan setelah mengedit part yang dipakai rakitan ini.",
"help.config.configure": "Menambahkan parameter, fitur, material, atau tampilan sebagai kolom tabel konfigurasi. Gunakan untuk membuat varian dari satu desain, seperti berbagai ukuran sebuah part.",
"help.config.preview": "Memeriksa bahwa satu baris tabel konfigurasi dapat dibangun ulang, tanpa mengubah desain atau riwayatnya. Gunakan sebelum beralih ke varian yang belum Anda yakini.",
"help.config.rules": "Menampilkan aturan tabel konfigurasi, barisnya, dan baris mana yang aktif. Gunakan untuk melihat bagaimana varian sebuah desain diatur.",
"help.config.table": "Menampilkan tabel konfigurasi: satu baris per varian, satu kolom per parameter atau fitur, dan apakah desain masih cocok dengan baris aktif. Gunakan untuk meninjau varian sebuah desain.",
"help.connect_note": "Mulai ulang setiap asisten untuk memuat server SolidCraft. Setiap file dicadangkan sebagai .bak sebelum diubah.",
"help.connect_title": "Hubungkan asisten AI",
"help.construct.axis.edge": "Membuat sumbu konstruksi sepanjang tepi lurus atau garis sketsa. Gunakan sebagai sumbu untuk revolve, pola melingkar, atau sambungan.",
"help.construct.axis.normal_to_face": "Membuat sumbu konstruksi melalui sebuah titik, tegak lurus terhadap sebuah muka. Gunakan sebagai sumbu yang menjulur lurus keluar dari permukaan.",
"help.construct.axis.through_cylinder": "Membuat sumbu konstruksi melalui pusat muka silinder, kerucut, atau torus, atau tepi melingkar. Gunakan untuk memutar fitur atau membuat polanya mengelilingi part bulat.",
"help.construct.axis.two_planes": "Membuat sumbu konstruksi di tempat dua bidang atau muka datar bertemu. Gunakan bila sumbu yang Anda perlukan adalah garis di antara dua muka.",
"help.construct.axis.two_points": "Membuat sumbu konstruksi melalui dua titik, titik sudut, atau titik sketsa. Gunakan untuk sumbu yang membentang di antara dua posisi yang diketahui.",
"help.construct.plane.along_path": "Membuat bidang konstruksi tegak lurus terhadap sebuah tepi atau kurva, pada suatu posisi di sepanjangnya. Gunakan untuk menggambar sketsa profil bagi sweep atau penampang sebuah jalur.",
"help.construct.plane.at_angle": "Membuat bidang konstruksi yang diputar dengan suatu sudut dari sebuah bidang atau muka, terhadap sebuah sumbu atau tepi. Gunakan untuk sketsa miring, seperti braket bersudut.",
"help.construct.plane.midplane": "Membuat bidang konstruksi tepat di tengah antara dua bidang atau muka datar, atau membagi dua keduanya di tempat mereka bertemu pada suatu sudut. Gunakan sebagai bidang simetri untuk pencerminan.",
"help.construct.plane.offset": "Membuat bidang konstruksi yang sejajar dengan sebuah bidang atau muka datar, pada suatu jarak atau melalui sebuah titik. Gunakan untuk menggambar sketsa pada ketinggian tertentu di atas sebuah muka.",
"help.construct.plane.perpendicular": "Membuat bidang konstruksi yang memuat sebuah garis atau tepi dan berdiri tegak lurus terhadap sebuah bidang atau muka. Gunakan untuk menggambar sketsa tegak pada model sepanjang sebuah tepi.",
"help.construct.plane.tangent": "Membuat bidang konstruksi yang menyentuh silinder, kerucut, bola, atau torus pada sebuah titik. Gunakan untuk menggambar sketsa di sisi part bulat.",
"help.construct.plane.three_points": "Membuat bidang konstruksi melalui tiga titik. Gunakan untuk bidang yang ditentukan oleh posisi pada model, seperti tiga sudut.",
"help.construct.plane.two_edges": "Membuat bidang konstruksi melalui dua tepi lurus atau garis yang terletak pada satu bidang. Gunakan untuk bidang yang melintasi sebuah part, misalnya melalui dua tepi yang berseberangan.",
"help.construct.point.along_path": "Membuat titik konstruksi pada suatu posisi di sepanjang tepi atau kurva. Gunakan sebagai referensi di suatu titik pada jalur.",
"help.construct.point.center": "Membuat titik konstruksi di pusat tepi melingkar, lingkaran atau busur sketsa, bola, atau torus. Gunakan sebagai referensi untuk lubang, sumbu, dan sambungan.",
"help.construct.point.edge_plane": "Membuat titik konstruksi di tempat sebuah tepi atau garis menembus sebuah bidang atau muka datar. Gunakan untuk menandai tempat sebuah jalur memotong bidang.",
"help.construct.point.three_planes": "Membuat titik konstruksi di tempat tiga bidang atau muka datar bertemu. Gunakan sebagai referensi sudut, bahkan bila model tidak memiliki titik sudut di sana.",
"help.construct.point.two_edges": "Membuat titik konstruksi di tempat dua tepi atau garis bertemu, atau paling berdekatan. Gunakan sebagai referensi pada sudut virtual.",
"help.construct.point.vertex": "Membuat titik konstruksi pada titik sudut atau titik sketsa. Gunakan sebagai referensi yang tetap ada saat sketsa atau bodi di sekitarnya disembunyikan.",
"help.contact.check": "Mencantumkan pasangan part dalam set kontak yang saling menembus pada posisinya saat ini. Gunakan untuk menemukan tabrakan sebelum Anda menggerakkan sambungan atau menjalankan studi gerak.",
"help.contact.create": "Mengelompokkan dua part atau lebih ke dalam satu set kontak, yang bodinya dijaga agar tidak saling menembus saat sambungan bergerak. Gunakan untuk part yang harus berhenti saat bersentuhan, seperti tuas terhadap penahannya.",
"help.contact.disable_all": "Mematikan kontak, sehingga sambungan yang digerakkan dan studi gerak tidak lagi berhenti di tempat part bersentuhan. Gunakan untuk menggerakkan part dengan bebas lagi, atau agar rakitan besar tetap responsif.",
"help.contact.edit": "Mengubah sebuah set kontak: part yang dimuatnya, namanya, atau apakah ditekan; set juga dapat dihapus. Gunakan untuk menyesuaikan part mana yang dijaga agar tidak saling menembus.",
"help.contact.enable_all": "Memasukkan setiap part rakitan ke dalam satu set kontak, sehingga tidak ada dua part yang dapat saling menembus saat sambungan bergerak. Gunakan untuk pemeriksaan cepat seluruh mekanisme.",
"help.contact.enable_sets": "Menyalakan kontak untuk set kontak yang Anda definisikan, sehingga sambungan yang digerakkan dan studi gerak berhenti di tempat part-nya akan saling menembus. Gunakan untuk mengembalikan set Anda setelah kontak dimatikan.",
"help.contact.list": "Mencantumkan set kontak dalam desain, part di setiap set, dan apakah kontak menyala. Gunakan untuk memeriksa bagaimana kontak diatur sebelum Anda menggerakkan rakitan.",
"help.document.inspect": "Menampilkan ringkasan desain: komponen, bodi, sketsa, fitur, dan parameternya. Gunakan untuk memahami isi desain yang tidak Anda buat sendiri.",
"help.document.units": "Mengubah satuan yang dipakai desain untuk menampilkan panjang, seperti mm atau inci. Geometri tetap berukuran sama; hanya tampilan dan angka polos yang mengikuti.",
"help.edit.checkpoint": "Mengingat desain, sketsa aktif, dan riwayat urungkan sebagaimana keadaannya sekarang. Gunakan sebelum mencoba sesuatu yang berisiko dan mungkin ingin Anda urungkan.",
"help.edit.restore_checkpoint": "Kembali ke sebuah checkpoint, termasuk riwayat urungkan. Gunakan untuk membuang semua yang dilakukan sejak checkpoint dalam satu langkah.",
"help.explode.create": "Membuat tampilan urai yang mendorong part menjauh dari pusat rakitan, atau sesuai perpindahan yang Anda atur. Gunakan untuk menunjukkan cara rakitan dipasang, untuk petunjuk atau presentasi.",
"help.face.delete": "Menghapus muka terpilih dan membiarkan muka di sekitarnya menutup celah, atau membiarkan celah terbuka sebagai permukaan. Gunakan untuk menghilangkan tepi membulat, lubang, atau boss yang menghalangi.",
"help.file.insert_mesh": "Menambahkan file 3MF, STL, OBJ, PLY, atau glTF ke desain sebagai bodi mesh dalam komponen baru. Gunakan untuk menaruh model hasil unduhan atau hasil pindai di samping desain Anda sebagai referensi.",
"help.file.insert_step": "Menambahkan file STEP, IGES, FreeCAD, atau Rhino ke desain sebagai bodi solid dalam komponen baru; part sebuah rakitan menjadi komponen bersarang. Gunakan untuk membawa masuk model dari pemasok atau program CAD lain.",
"help.file.save_mesh": "Menyimpan bodi sebagai mesh STL, 3MF, atau OBJ, dengan kehalusan muka lengkung sesuai pilihan Anda. Gunakan untuk menyiapkan part untuk pencetakan 3D atau untuk program yang membaca mesh.",
"help.file.send_to_slicer": "Menyimpan bodi terpilih sebagai file 3MF dan membukanya di slicer yang Anda pilih. Gunakan untuk beralih dari model ke pencetakan dalam satu langkah.",
"help.font_details": "Antarmuka memakai font bawaan egui (Ubuntu Light dan Hack, di bawah Ubuntu Font Licence dan lisensi MIT/Bitstream Vera; Noto Emoji dan font ikon emoji, di bawah OFL dan MIT). Teks sketsa memakai Liberation Sans (SIL OFL 1.1). Paket font opsional Crafting Apps, craft-fonts (BIZ UDPGothic, Shippori Mincho, BIZ UDMincho, Noto Sans CJK SC, Noto Sans Arabic; SIL OFL 1.1), tidak disertakan dalam build SolidCraft.",
"help.fonts": "Font",
"help.frame.member": "Menempatkan profil, seperti tabung atau ekstrusi aluminium, sepanjang garis sketsa rangka, satu batang per garis. Gunakan untuk membangun rangka, rak, dan struktur las.",
"help.inspect.accessibility": "Mewarnai muka yang dapat dijangkau alat dari satu arah, dan yang tidak. Gunakan untuk memeriksa part untuk pemesinan atau pencetakan dari sisi itu.",
"help.inspect.center_of_mass": "Menampilkan pusat massa bodi, masing-masing sendiri dan semuanya bersama, dengan massa jenis seragam. Gunakan untuk memeriksa keseimbangan dan di mana part akan terguling.",
"help.inspect.colored_components": "Memberi setiap komponen warna sementaranya sendiri, tanpa mengubah tampilan yang ditetapkan. Gunakan untuk membedakan part rakitan sekilas pandang.",
"help.inspect.compare": "Membandingkan dua bodi dan menampilkan di mana yang satu memiliki material yang tidak dimiliki yang lain, beserta volume dan deviasinya. Gunakan untuk memeriksa part yang diubah atau diimpor terhadap aslinya.",
"help.inspect.continuity": "Memeriksa seberapa mulus muka bertemu di sepanjang tepinya: celah, patahan, atau lompatan kelengkungan, dan mewarnai jahitannya. Gunakan untuk menemukan tempat permukaan tidak menyatu dengan bersih.",
"help.inspect.curvature_comb": "Menggambar sisir pada kurva, tepi, atau muka yang giginya menunjukkan seberapa kuat kelengkungannya. Gunakan untuk menemukan bagian datar, patahan, dan kelengkungan yang tidak rata.",
"help.inspect.curvature_map": "Mewarnai muka menurut seberapa kuat kelengkungannya, merah di tempat radiusnya kecil. Gunakan untuk menemukan bagian yang lengkungannya tajam dan menilai kehalusan permukaan.",
"help.inspect.draft": "Mewarnai muka menurut sudut draft-nya terhadap arah tarik, dan menandai yang sudutnya terlalu kecil. Gunakan untuk memeriksa part sebelum pencetakan atau pengecoran.",
"help.inspect.environment_map": "Menampilkan model dengan hasil akhir reflektif seperti cermin. Gunakan untuk menilai alur permukaan dari cara pantulan mengalir di atasnya.",
"help.inspect.interference": "Menemukan bodi yang tumpang tindih dan menampilkan setiap tumpang tindih beserta volumenya. Gunakan untuk memeriksa rakitan terhadap part yang bertabrakan.",
"help.inspect.isocurve": "Menggambar kurva isoparametrik pada muka, yaitu grid tempat permukaan dibangun. Gunakan untuk melihat bagaimana permukaan mengalir dan di mana ia menumpuk.",
"help.inspect.measure": "Mengukur panjang, jarak, sudut, luas, dan radius antara apa yang Anda pilih, atau volume dan massa bodi. Gunakan untuk memeriksa ukuran dan kelonggaran.",
"help.inspect.minimum_radius": "Menemukan radius kelengkungan terkecil pada kurva, tepi, atau muka, beserta letaknya. Gunakan untuk memeriksa apakah alat atau nosel dapat mengikuti bentuknya.",
"help.inspect.section": "Memotong tampilan terbuka sepanjang sebuah bidang dan mengarsir muka potongnya, tanpa mengubah model. Gunakan untuk melihat bagian dalam part dan rakitan.",
"help.inspect.zebra": "Menampilkan lajur hitam putih yang terpantul pada muka model. Gunakan untuk menilai kehalusan: lajur yang terputus atau patah di sebuah tepi menandakan transisi yang buruk.",
"help.joint.as_built": "Menyambung dua part di tempat keduanya berada, tanpa memindahkan salah satunya, dan mengatur bagaimana keduanya masih boleh bergerak. Gunakan untuk part yang sudah Anda tempatkan di posisi akhirnya.",
"help.joint.cam": "Menghubungkan cam yang berputar ke pengikut, sehingga pengikut bergeser atau berayun saat kontur cam lewat di bawahnya. Gunakan untuk cam, eksentrik, dan penggerak katup.",
"help.joint.create": "Menyambung dua part pada origin sambungan yang Anda pilih dan memindahkan part kedua ke tempatnya; jenis sambungan menentukan bagaimana keduanya masih boleh bergerak. Gunakan untuk membangun rakitan yang part-nya bergerak seperti mekanisme sebenarnya.",
"help.joint.drive": "Mengatur sudut atau jarak sebuah sambungan dan menggerakkan part bersamanya, dalam batasnya; sambungan terkait dan loop tertutup ikut bergerak. Gunakan untuk memeriksa bahwa mekanisme bergerak sesuai maksud.",
"help.joint.gear": "Menghubungkan dua sambungan berputar dengan rasio roda gigi, sehingga menggerakkan satu akan memutar yang lain. Gunakan untuk roda gigi lurus dan roda gigi dalam, dengan rasio dari radius pitch atau jumlah gigi.",
"help.joint.limits": "Mengatur sejauh mana sambungan boleh berputar atau bergeser, sebagai minimum dan maksimum, atau menghapus batas itu. Gunakan agar engsel, sambungan geser, atau tuas tetap berada dalam rentang geraknya yang sebenarnya.",
"help.joint.motion_link": "Menggandengkan dua sambungan dengan rasio dan offset, sehingga menggerakkan satu akan menggerakkan yang lain. Gunakan untuk hubungan tetap antar sambungan yang tidak tercakup oleh Roda Gigi, Rack dan Pinion, atau Sekrup.",
"help.joint.origin": "Menempatkan origin sambungan bernama pada sebuah part: di pusat sebuah muka atau ujung bulat, tengah sebuah tepi, sebuah sudut, atau sebuah titik. Gunakan untuk menyiapkan tempat sambungan menempel; origin yang dipilih pada sebuah muka mengikuti muka itu saat ukuran part berubah.",
"help.joint.rack_pinion": "Menghubungkan pinion yang berputar ke rack yang bergeser, sehingga rack bergerak sejauh panjang lingkaran pitch yang digelindingi pinion. Gunakan untuk penggerak rack, kemudi, dan tahap linear.",
"help.joint.reach": "Menggerakkan sebuah titik pada part ke arah sasaran dengan mengubah sambungan pada rantainya, dalam batasnya. Gunakan untuk memposisikan mekanisme berdasarkan di mana ujungnya harus berada, seperti ujung lengan robot.",
"help.joint.rigid_group": "Mengunci part terpilih bersama sebagaimana adanya, sehingga bergerak sebagai satu kesatuan. Gunakan untuk part yang menyatu dan tidak memiliki gerakan di antaranya.",
"help.joint.screw": "Menghubungkan gerak putar dan gerak geser dengan sebuah pitch, sehingga setiap putaran maju sejauh jarak itu. Gunakan untuk lead screw, baut, dan poros berulir.",
"help.library.apply": "Menerapkan material atau tampilan dari file pustaka lokal ke bodi, muka, atau komponen. Gunakan untuk memakai ulang material yang Anda simpan dari desain lain.",
"help.library.export": "Menyimpan material dan tampilan desain ke file pustaka. Gunakan untuk membagikannya atau memakainya ulang di desain lain.",
"help.library.inspect": "Memeriksa file pustaka dan mencantumkan material serta tampilannya, tanpa mengubah desain. Gunakan untuk melihat isi sebuah pustaka sebelum menerapkannya.",
"help.licences": "Lisensi",
"help.material.assign": "Menetapkan bahan pembuat bodi terpilih, seperti baja, aluminium, atau ABS. Gunakan agar massa dan bobot sesuai dengan part sebenarnya.",
"help.material.properties.validate": "Memeriksa kartu data material untuk angka yang konsisten dan nilai yang hilang. Gunakan sebelum mengandalkan data itu untuk massa atau kekakuan.",
"help.mesh.convert": "Membangun ulang bodi mesh, seperti STL, menjadi solid yang dapat diedit dengan muka datar dan silindris. Gunakan untuk memodifikasi part mekanis impor seperti bodi yang dimodelkan.",
"help.mit": "Lisensi MIT",
"help.motion.study": "Mengatur nilai sambungan pada langkah-langkah di sepanjang linimasa dan memutarnya sebagai animasi. Gunakan untuk melihat mekanisme bergerak melalui suatu urutan dan memeriksa kelonggaran di sepanjang jalannya.",
"help.motion.trace": "Menelusuri jalur yang diikuti sebuah titik pada part selama studi gerak diputar atau sambungan digerakkan, dan menyimpannya sebagai kurva sketsa 3D saat Anda mengonfirmasi. Gunakan untuk melihat jangkauan mekanisme, atau membangun di atas jalurnya.",
"help.notice": "NOTICE",
"help.occurrence.ground": "Memasang part tetap di tempatnya, atau membebaskannya lagi, sehingga sambungan menggerakkan part lain di sekitarnya. Gunakan untuk rangka atau dasar tempat seluruh rakitan lainnya dibangun.",
"help.occurrence.move": "Memindahkan part rakitan hanya sepanjang kebebasan yang diizinkan oleh sambungannya. Pilih sebuah muka part, lalu seret panah atau busur yang tersedia.",
"help.parameters.change": "Membuka tabel nilai dan ekspresi bernama yang menggerakkan dimensi desain. Gunakan untuk mengubah ukuran di satu tempat dan membuat semua fitur yang memakainya mengikuti.",
"help.parameters.export": "Menyimpan parameter desain sebagai CSV atau JSON. Gunakan untuk mengeditnya di spreadsheet atau memindahkannya ke desain lain.",
"help.parameters.graph": "Menampilkan parameter dan fitur mana yang memakai yang lain, beserta loop atau error di antaranya. Gunakan untuk melihat apa yang akan terpengaruh oleh perubahan sebuah parameter.",
"help.parameters.import": "Membaca parameter dari CSV atau JSON ke dalam desain, semuanya atau tidak sama sekali. Gunakan untuk membawa masuk nilai dari spreadsheet atau desain lain.",
"help.parameters.move": "Memindahkan parameter pengguna ke sebelum atau sesudah parameter lain dalam daftar. Gunakan untuk menjaga parameter yang berkaitan tetap berdekatan.",
"help.parts.fastener": "Menambahkan sekrup, baut, mur, washer, pin, atau bearing standar dengan ukuran yang Anda pilih. Bila ditempatkan pada sebuah lubang, ia duduk di lubang itu dengan sebuah sambungan, jadi Anda tidak perlu memodelkan pengencang sendiri.",
"help.parts.insert": "Menyisipkan part standar dengan keluarga, ukuran, dan panjang yang Anda pilih. Bila ditempatkan pada tepi atau dinding sebuah lubang, ia duduk pada lubang itu dengan sambungan kaku.",
"help.parts.library": "Membuka part standar: sekrup, baut, mur, washer, sekrup set, pin dowel, dan bearing dengan ukuran standar. Gunakan untuk menambahkan part standar alih-alih memodelkannya sendiri.",
"help.parts.resize": "Mengubah ukuran atau panjang part standar yang disisipkan dan membangunnya ulang; sambungannya menjaganya tetap terpasang. Gunakan bila sekrup ternyata terlalu panjang atau lubang memerlukan ukuran lain.",
"help.plastic.assign_rule": "Menetapkan aturan plastik ke bodi, sehingga fitur plastiknya memakai draft dan kelonggarannya sebagai nilai bawaan. Gunakan untuk menyiapkan part cetakan sekali untuk semua fiturnya.",
"help.plastic.boss": "Menambahkan boss sekrup pada sebuah muka: tiang dengan lubang opsional, draft, fillet pangkal, dan rusuk penopang. Gunakan untuk titik sekrup pada casing hasil cetakan atau cetak 3D.",
"help.plastic.lip": "Menambahkan lip atau alur pasangannya sepanjang tepi bodi yang di-shell. Gunakan agar dua belahan casing saling terkunci posisinya dan menutup rapat.",
"help.plastic.manage_rules": "Membuat dan mengedit aturan plastik: material, tebal dinding, radius, kelonggaran, dan draft. Gunakan untuk menjaga fitur-fitur part cetakan tetap konsisten.",
"help.plastic.rest": "Menambahkan rest pada sebuah muka: bantalan bulat atau persegi panjang, padat atau berongga, dengan draft. Gunakan sebagai penopang atau standoff pada casing cetakan.",
"help.plastic.snap_fit": "Menambahkan kait snap-fit pada sebuah muka, dengan panjang, ketebalan, dan pengaitnya. Gunakan untuk mengait part satu sama lain tanpa sekrup.",
"help.pointcloud.insert": "Sisipkan hasil pindai PLY, XYZ, atau PTS sebagai awan titik di samping model. Gunakan sebagai referensi saat membangun model dari data hasil pengukuran.",
"help.sheet.convert": "Mengubah pelat atau bodi yang di-shell dengan ketebalan merata menjadi bodi pelat logam, dengan tekukan pada tepi yang Anda pilih. Gunakan untuk membuat part yang sudah ada dapat dibuka lipatannya.",
"help.sheet.export_bend_table": "Menyimpan tabel tekukan bodi pelat logam sebagai CSV atau JSON: sudut, radius, dan posisi tekukan pada bentuk datar. Gunakan untuk mesin tekuk (press brake) atau bengkel.",
"help.sheet.export_dxf": "Menyimpan pola datar sebagai DXF, dengan kontur, garis tekukan, dan catatan tekukan opsional. Gunakan untuk pemotongan laser, plasma, atau waterjet.",
"help.sheet.flange": "Menambahkan flens: pelat dasar dari sketsa, dinding sepanjang kontur sketsa terbuka, atau dinding tertekuk pada tepi pelat. Gunakan untuk membangun part pelat logam.",
"help.sheet.flat_pattern": "Membuat pola datar bodi pelat logam, lengkap dengan ukuran, potongan, dan garis tekukannya. Gunakan untuk memeriksa blanko sebelum Anda memotongnya.",
"help.sheet.fold": "Melipat pelat sepanjang garis sketsa dengan sudut dan radius tertentu. Gunakan untuk melipat pelat datar setelah fitur potongan dibuat padanya.",
"help.sheet.hem": "Melipat tepi pelat kembali menutupi dirinya sendiri. Gunakan untuk tepi yang aman dan kaku tanpa duri tajam.",
"help.sheet.manage_rules": "Membuat dan mengedit aturan pelat logam: ketebalan, radius tekukan, faktor K, relief, dan celah. Gunakan agar sesuai dengan material dan perkakas bengkel Anda.",
"help.sheet.path_flange": "Menambahkan rangkaian flens sepanjang tepi pelat, mengikuti rantai terbuka garis sketsa. Gunakan untuk profil seperti bentuk U atau Z dalam satu langkah.",
"help.sheet.perforate": "Menambahkan hamparan lubang di seluruh pelat datar, dalam pola selang-seling atau persegi. Gunakan untuk ventilasi, kisi, dan panel yang lebih ringan.",
"help.sheet.refold": "Melipat kembali bodi pelat logam yang sudah dibuka lipatannya. Gunakan setelah menambahkan fitur pada pelat datar.",
"help.sheet.unfold": "Membuka lipatan semua tekukan bodi pelat logam. Gunakan untuk menambahkan lubang atau potongan yang harus melintasi tekukan, lalu lipat ulang.",
"help.sketch.arc.center_point": "Menggambar busur lingkaran mengelilingi titik pusat, dari titik awal ke titik akhir. Gunakan bila pusat busur diketahui, seperti radius di sekeliling lubang atau pivot.",
"help.sketch.arc.tangent": "Menggambar busur yang dimulai di ujung garis atau busur dan berlanjut secara tangen terhadapnya. Gunakan untuk melanjutkan rantai dengan lengkungan halus, bukan sudut.",
"help.sketch.arc.three_point": "Menggambar busur dari titik awal ke titik akhir melalui titik ketiga. Gunakan bila busur harus melewati titik-titik tertentu, bukan mengelilingi pusat yang diketahui.",
"help.sketch.arc3d": "Menggambar busur lingkaran eksak di ruang melalui tiga titik, dengan Sketsa 3D aktif. Gunakan untuk lengkungan pada jalur dan rel pemandu yang keluar dari bidang sketsa.",
"help.sketch.auto_constrain": "Menambahkan batasan yang hampir sudah dimiliki sketsa, seperti horizontal, paralel, atau berimpit, lalu memberinya dimensi hingga terbatasi penuh. Gunakan untuk mengunci sketsa yang digambar kasar dalam satu langkah.",
"help.sketch.auto_constrain_from_datum": "Bekerja seperti AutoConstrain, tetapi mengukur posisi dari titik datum yang Anda pilih, bukan dari origin. Gunakan bila part ditata dari satu titik referensi, seperti sudut atau lubang.",
"help.sketch.blend_curve": "Menyambung ujung dua kurva dengan spline halus yang tangen terhadap keduanya, atau juga kontinu kelengkungannya bila Anda memilihnya. Gunakan untuk menjembatani celah antar kurva tanpa patahan.",
"help.sketch.break": "Memecah kurva menjadi potongan di tempat kurva lain memotongnya, atau pada titik yang Anda tempatkan di atasnya. Gunakan bila sebagian kurva memerlukan batasannya sendiri atau harus dihapus tersendiri.",
"help.sketch.cancel": "Meninggalkan sketsa dan membuang semua yang diubah sejak sketsa dibuat atau dibuka untuk diedit. Urungkan mengembalikan perubahan itu.",
"help.sketch.centerline": "Mengalihkan garis antara garis normal dan garis tengah, yaitu sumbu yang tidak disertakan profil. Gunakan garis tengah sebagai sumbu untuk revolve, cermin, atau batasan simetri.",
"help.sketch.chamfer.distance_angle": "Memberi bevel pada sudut di antara dua garis, ditentukan oleh jarak sepanjang garis pertama dan sebuah sudut. Gunakan bila gambar kerja menyatakan chamfer sebagai panjang dan sudut, seperti 2 mm × 30°.",
"help.sketch.chamfer.equal_distance": "Memberi bevel pada sudut di antara dua garis dengan jarak yang sama ke belakang sepanjang keduanya. Gunakan untuk chamfer 45° yang lazim pada sebuah kontur.",
"help.sketch.chamfer.two_distance": "Memberi bevel pada sudut di antara dua garis, ditentukan oleh jarak terpisah sepanjang setiap garis. Gunakan untuk chamfer yang bukan 45°, yang dinyatakan sebagai dua panjang.",
"help.sketch.circle.center": "Menggambar lingkaran dari pusat dan diameternya. Gunakan untuk lubang, boss, dan fitur bulat lain yang pusatnya diketahui.",
"help.sketch.circle.three_point": "Menggambar lingkaran melalui tiga titik. Gunakan bila lingkaran harus melewati titik-titik tertentu, misalnya dari geometri yang sudah ada.",
"help.sketch.circle.three_tangent": "Menggambar lingkaran yang menyentuh tiga garis, lingkaran, atau busur. Gunakan untuk memasukkan lingkaran ke ruang di antara tiga kurva, seperti lingkaran dalam sebuah segitiga.",
"help.sketch.circle.two_point": "Menggambar lingkaran dari kedua ujung diameternya. Gunakan bila titik tepi lingkaran diketahui, bukan pusatnya.",
"help.sketch.circle.two_tangent": "Menggambar lingkaran dengan ukuran tertentu yang menyentuh dua garis, lingkaran, atau busur. Gunakan untuk pembulatan dengan radius tetap di antara dua kurva.",
"help.sketch.conic": "Menggambar kurva konik di antara dua titik ujung, dibentuk oleh titik puncak dan nilai rho. Gunakan untuk transisi halus yang kepenuhannya ingin Anda atur, dari datar hingga hampir menjadi sudut tajam.",
"help.sketch.constrainer": "Menerapkan batasan yang hampir sudah dimiliki satu atau dua kurva terpilih, seperti horizontal, paralel, tangen, atau sama. Gunakan untuk merapikan sketsa gambar tangan, satu relasi demi satu.",
"help.sketch.constraint.coincident": "Membuat sebuah titik berada pada titik lain, kurva, atau sumbu sketsa. Gunakan untuk menutup celah pada profil atau menaruh titik pada garis.",
"help.sketch.constraint.collinear": "Membuat dua garis berada pada satu garis lurus. Gunakan untuk menyejajarkan tepi yang terputus, seperti kedua sisi sebuah takik.",
"help.sketch.constraint.concentric": "Memberi dua lingkaran atau busur pusat yang sama. Gunakan untuk cincin, counterbore, dan poros dengan bahu.",
"help.sketch.constraint.curvature": "Membuat dua kurva yang bertemu di titik ujung berlanjut dengan kelengkungan yang sama (G2). Gunakan bila sambungan tangen belum cukup halus, misalnya pada permukaan yang terlihat.",
"help.sketch.constraint.equal": "Membuat garis sama panjang, atau lingkaran dan busur sama radius. Gunakan agar satu dimensi mengendalikan beberapa fitur yang sama.",
"help.sketch.constraint.fix": "Mengunci titik atau kurva di tempatnya, atau membebaskannya lagi. Gunakan untuk geometri yang tidak boleh bergerak saat Anda menyeret atau me-solve sketsa.",
"help.sketch.constraint.horizontal_vertical": "Membuat sebuah garis, atau garis di antara dua titik, menjadi horizontal atau vertikal, mana yang lebih dekat. Gunakan untuk meluruskan kontur terhadap sumbu sketsa.",
"help.sketch.constraint.midpoint": "Menempatkan titik di tengah garis, atau membuat titik tengah dua garis bertemu. Gunakan untuk memusatkan geometri pada sebuah tepi.",
"help.sketch.constraint.parallel": "Membuat dua garis paralel. Gunakan untuk sisi yang harus tetap paralel saat dimensi lain berubah.",
"help.sketch.constraint.perpendicular": "Membuat dua garis bertemu pada sudut siku-siku. Gunakan untuk sudut tegak lurus antara garis yang tidak berada pada sumbu sketsa.",
"help.sketch.constraint.polygon": "Menjadikan rantai garis tertutup sebagai poligon beraturan: sisi sama panjang, dengan setiap sudut berada pada satu lingkaran. Gunakan untuk membuat poligon gambar tangan menjadi beraturan dan menjaganya tetap begitu.",
"help.sketch.constraint.symmetry": "Membuat dua titik atau kurva saling mencerminkan di seberang sebuah garis atau terhadap sebuah titik. Gunakan untuk menjaga profil tetap simetris saat Anda mengubah satu sisi.",
"help.sketch.constraint.tangent": "Membuat dua kurva bersentuhan secara tangen, seperti garis dan busur. Gunakan untuk sambungan halus tanpa patahan.",
"help.sketch.construction": "Mengalihkan kurva antara geometri normal dan geometri konstruksi, yang tidak disertakan profil. Gunakan kurva konstruksi sebagai bantuan untuk tata letak, referensi, dan dimensi.",
"help.sketch.construction_line": "Buat garis bantu tak hingga melalui dua titik. Gunakan untuk menata sketsa tanpa memecah profil.",
"help.sketch.construction_line.angle": "Buat garis bantu tak hingga dengan sudut terhadap sumbu X sketsa. Pilih titiknya dan ketik sudutnya, atau pilih arahnya.",
"help.sketch.construction_line.bisector": "Pilih dua garis sketsa lurus yang berpotongan, lalu pilih salah satu garis bagi sudut. Hasilnya mengikuti garis sumbernya.",
@@ -1412,11 +1580,71 @@
"help.sketch.construction_line.tangent_external": "Pilih lingkaran atau busur lingkaran, lalu sebuah titik luar dan satu solusi garis singgung. Pratinjau hanya menampilkan titik singgung pada busur yang digambar.",
"help.sketch.construction_line.tangent_two": "Pilih dua lingkaran atau busur lingkaran, lalu pilih garis singgung persekutuan di pratinjau. Titik singgung harus berada pada kurva yang digambar.",
"help.sketch.construction_line.vertical": "Buat garis bantu vertikal tak hingga melalui sebuah titik. Batasan vertikalnya tetap berlaku pada pengeditan berikutnya.",
"help.sketch.copy": "Menyalin kurva dan titik sketsa terpilih, beserta batasan dan dimensi di antaranya. Tempelkan ke sketsa ini atau sketsa lain.",
"help.sketch.create": "Memulai sketsa 2D baru pada sebuah bidang atau muka datar model. Setiap ekstrusi, revolve, dan sweep dimulai dengan sebuah sketsa.",
"help.sketch.cut": "Menyalin geometri sketsa terpilih dan menghapusnya dari sketsa, dalam satu langkah urungkan. Tempelkan di tempat lain di sketsa ini atau ke sketsa lain.",
"help.sketch.dimension": "Menambahkan dimensi driving: panjang, jarak, sudut, radius, atau diameter, tergantung apa yang Anda pilih. Ketik nilai atau nama parameter, dan sketsa mengikutinya.",
"help.sketch.edit": "Membuka sketsa yang sudah ada untuk diedit. Fitur yang dibangun di atasnya diperbarui saat Anda menyelesaikan sketsa.",
"help.sketch.ellipse": "Menggambar elips dari pusatnya, ujung sumbu utamanya, dan sebuah titik pada sisi minornya. Gunakan untuk bukaan oval, cam, dan bentuk bulat memanjang lainnya.",
"help.sketch.equation_curve": "Menggambar kurva dari rumus: x(t) dan y(t), atau y = f(x), pada suatu rentang. Rumusnya dapat memakai parameter dan kurva mengikutinya: gunakan untuk gelombang sinus, spiral, atau involut gigi roda gigi.",
"help.sketch.extend": "Memperpanjang garis atau busur hingga kurva terdekat yang menghalanginya, atau memanjangkan dua kurva hingga bertemu. Gunakan untuk menutup celah pada profil setelah trim atau pengeditan.",
"help.sketch.fillet": "Membulatkan sudut tempat dua garis atau busur bertemu dengan busur berradius tertentu. Beberapa sudut yang dibulatkan bersama memakai satu radius yang sama.",
"help.sketch.finish": "Meninggalkan sketsa dan kembali ke model. Profil tertutupnya lalu siap untuk Ekstrusi, Revolve, dan fitur lain.",
"help.sketch.finish_auto_constrain": "Menjalankan AutoConstrain pada sketsa, lalu menyelesaikannya. Gunakan untuk meninggalkan sketsa yang terbatasi penuh dalam satu langkah.",
"help.sketch.fit_curves_to_section": "Memotong bodi mesh atau solid dengan bidang sketsa dan mencocokkan garis dan busur dengan penampangnya. Gunakan untuk membangun ulang part hasil pindai atau impor sebagai sketsa yang dapat diedit.",
"help.sketch.include_3d": "Membawa tepi model, titik sudut, dan kurva sketsa lain ke sketsa ini sebagai referensi tertaut, dengan meratakan yang berada di luar bidangnya ke atasnya. Gunakan untuk membangun di atas geometri yang tidak terletak pada bidang sketsa.",
"help.sketch.infinite": "Mengalihkan garis antara garis normal dan garis konstruksi tak hingga yang membentang di seluruh tampilan. Gunakan sebagai referensi tata letak yang tidak pernah berakhir terlalu pendek.",
"help.sketch.insert_dxf": "Membaca kurva gambar DXF ke dalam sketsa, diskalakan, diputar, dan ditempatkan sesuai pengaturan Anda. Gunakan untuk membangun di atas gambar 2D dari program lain, seperti kontur potong laser.",
"help.sketch.insert_svg": "Membaca path gambar SVG ke dalam sketsa, diskalakan, diputar, dan ditempatkan sesuai pengaturan Anda. Gunakan untuk mengubah logo atau kontur vektor menjadi kurva yang dapat diekstrusi.",
"help.sketch.inspect": "Membuka laporan tentang sketsa yang terbuka: berapa derajat kebebasan yang tersisa dan apakah sketsa terbatasi penuh. Gunakan untuk mengetahui apa yang masih bergerak sebelum Anda menyelesaikan sketsa.",
"help.sketch.intersect": "Menambahkan kurva atau titik tempat bodi, muka, tepi, atau sketsa lain memotong bidang sketsa. Semuanya tetap tertaut dan mengikuti model saat model berubah.",
"help.sketch.intersection_curve": "Membuat kurva 3D di tempat dua bodi atau muka bertemu, tertaut padanya. Gunakan sebagai jalur atau rel pemandu yang mengikuti model.",
"help.sketch.isoparametric_curve": "Membuat kurva 3D sepanjang arah U atau V sebuah muka melalui titik yang Anda pilih, tertaut ke muka itu. Gunakan sebagai jalur atau garis pisah yang mengikuti permukaan.",
"help.sketch.line": "Menggambar garis-garis tersambung titik demi titik, sebagai rantai terbuka atau kontur tertutup. Ini alat dasar untuk sebagian besar profil.",
"help.sketch.line.midpoint": "Menggambar garis dari titik tengahnya ke satu ujung, dengan ujung lainnya dicerminkan. Gunakan untuk garis yang dipusatkan pada sebuah titik, seperti tepi simetris.",
"help.sketch.line3d": "Menggambar garis lurus tersambung di antara titik-titik di ruang, dengan Sketsa 3D aktif. Gunakan untuk jalur dan rangka yang keluar dari bidang sketsa.",
"help.sketch.mirror": "Mencerminkan kurva dan titik sketsa terhadap sebuah garis atau sumbu dan menambahkan batasan simetri. Gunakan untuk menggambar setengah profil simetris lalu melengkapinya.",
"help.sketch.move": "Memindahkan atau memutar kurva dan titik sketsa, atau salinannya. Gunakan untuk memposisikan ulang geometri sambil mempertahankan bentuk dan batasannya.",
"help.sketch.offset": "Membuat salinan rantai kurva pada jarak tertentu, di satu sisi atau kedua sisi. Gunakan untuk dinding, kontur, dan kelonggaran; jaraknya tetap menjadi dimensi yang dapat diedit.",
"help.sketch.paste": "Menempelkan geometri sketsa yang Anda salin atau potong ke sketsa aktif. Tempatkan di sebuah titik atau geser dengan offset.",
"help.sketch.pattern.circular": "Menyalin geometri sketsa mengelilingi titik pusat, sepanjang satu lingkaran penuh atau sudut tertentu. Gunakan untuk lingkaran baut, jari-jari, dan gigi.",
"help.sketch.pattern.rectangular": "Menyalin geometri sketsa dalam baris dan kolom dengan jarak tertentu. Gunakan untuk grid lubang, slot, atau ventilasi.",
"help.sketch.point": "Menempatkan titik sketsa. Gunakan sebagai referensi untuk dimensi, batasan, pusat lubang, atau fitur berikutnya.",
"help.sketch.point3d": "Menempatkan titik di ruang, dengan Sketsa 3D aktif. Gunakan sebagai referensi untuk kurva dan jalur 3D.",
"help.sketch.polygon.circumscribed": "Menggambar poligon beraturan di sekeliling lingkaran, berukuran dari pusatnya hingga tengah sebuah sisi. Gunakan bila lebar antar sisi datar diketahui, seperti pada mur segi enam.",
"help.sketch.polygon.edge": "Menggambar poligon beraturan dari kedua ujung satu sisinya. Gunakan bila panjang dan posisi satu sisi diketahui.",
"help.sketch.polygon.inscribed": "Menggambar poligon beraturan di dalam lingkaran, berukuran dari pusatnya hingga sebuah sudut. Gunakan bila ukuran antar sudut diketahui.",
"help.sketch.project": "Membawa tepi model, muka, titik sudut, dan kurva sketsa lain ke sketsa ini, diproyeksikan ke bidangnya. Semuanya tetap tertaut dan mengikuti model saat model berubah.",
"help.sketch.project_to_surface": "Memproyeksikan kurva sketsa lain sepanjang normal sketsa ini ke sebuah muka, sebagai kurva 3D tertaut. Gunakan untuk menaruh logo, garis pisah, atau jalur pada permukaan lengkung.",
"help.sketch.rectangle.center": "Menggambar persegi panjang dari pusat dan satu sudutnya. Gunakan untuk kontur yang dipusatkan pada sebuah titik, seperti origin.",
"help.sketch.rectangle.rounded": "Menggambar persegi panjang dengan keempat sudut dibulatkan pada satu radius. Gunakan untuk pelat, tutup, dan bukaan dengan sudut membulat.",
"help.sketch.rectangle.three_point": "Menggambar persegi panjang dari satu sisi dan sebuah titik di sisi seberangnya. Gunakan untuk persegi panjang yang miring terhadap sumbu sketsa.",
"help.sketch.rectangle.two_point": "Menggambar persegi panjang dari dua sudut yang berseberangan. Gunakan untuk kontur pelat, blok, dan kantong.",
"help.sketch.scale": "Menskalakan kurva dan titik sketsa dengan suatu faktor terhadap titik dasar. Gunakan untuk mengubah ukuran sebagian sketsa tanpa menggambarnya lagi.",
"help.sketch.slot.arc_center": "Menggambar slot melengkung dengan lebar tertentu sepanjang busur yang ditentukan oleh pusat, titik awal, dan titik akhirnya. Gunakan untuk slot penyetelan di sekeliling pivot.",
"help.sketch.slot.arc_three_point": "Menggambar slot melengkung dengan lebar tertentu sepanjang busur melalui tiga titik. Gunakan bila lintasan slot harus melewati titik-titik tertentu.",
"help.sketch.slot.center_point": "Menggambar slot lurus dengan lebar tertentu dari pusatnya ke pusat salah satu busur ujung. Gunakan untuk slot yang dipusatkan pada sebuah titik.",
"help.sketch.slot.center_to_center": "Menggambar slot lurus dengan lebar tertentu di antara pusat kedua busur ujungnya. Gunakan untuk slot yang didimensikan dari pusat ke pusat, seperti slot penyetelan untuk sekrup.",
"help.sketch.slot.overall": "Menggambar slot lurus dengan lebar tertentu dari satu ujung luar ke ujung lainnya. Gunakan bila panjang total slot yang terpenting.",
"help.sketch.spline.control_point": "Menggambar spline kubik yang dibentuk oleh titik kontrol yang tidak dilaluinya. Gunakan untuk kurva halus yang mengalir, yang Anda bentuk dengan menggeser titik-titiknya.",
"help.sketch.spline.control_point_5": "Menggambar spline derajat 5 yang dibentuk oleh titik kontrol. Gunakan bila kurva harus menyambung dengan kelengkungan yang lebih halus, misalnya pada permukaan bergaya yang terlihat.",
"help.sketch.spline.fit_point": "Menggambar spline halus yang melewati setiap titik yang Anda tempatkan, terbuka atau tertutup. Gunakan untuk menjiplak bentuk melalui titik-titik yang diketahui.",
"help.sketch.spline3d": "Menggambar kurva halus di ruang melalui titik-titik, dengan Sketsa 3D aktif. Gunakan untuk jalur sweep dan jalur kabel yang keluar dari bidang sketsa.",
"help.sketch.spun_profile": "Membuat di bidang sketsa kontur yang disapu sebuah bodi saat berputar mengelilingi sumbu. Gunakan untuk mendapatkan siluet part bubutan untuk revolve atau gambar.",
"help.sketch.text": "Menulis teks di dalam sketsa dengan font, tinggi, dan sudut tertentu; katanya dapat mengikuti parameter. Ekstrusi atau beri emboss untuk label dan tulisan huruf.",
"help.sketch.transform": "Menskalakan, memutar, dan memindahkan geometri sketsa terhadap titik pusat dalam satu langkah. Gunakan untuk memposisikan ulang dan mengubah ukuran sebuah pilihan sekaligus.",
"help.sketch.trim": "Menghapus potongan kurva di antara perpotongan terdekat di sekitar tempat Anda mengklik. Gunakan untuk merapikan garis yang tumpang tindih menjadi profil tertutup.",
"help.solid.align": "Memindahkan bodi terpilih sehingga titik, muka, atau bidang padanya bertemu titik, muka, atau bidang di tempat lain. Gunakan untuk menempatkan part pada part lain tanpa mengukur offset.",
"help.solid.boundary_fill": "Membuat solid dari wilayah yang dikelilingi bodi alat yang tumpang tindih, dengan hanya mengisi wilayah yang Anda pilih. Gunakan untuk membangun bentuk dari ruang yang dibatasi bersama oleh beberapa bodi.",
"help.solid.bounding_solid": "Membuat kotak yang membungkus bodi terpilih, dengan margin opsional. Gunakan untuk melihat ukuran keseluruhan sebuah part, atau sebagai bahan baku tempat part itu dimesin.",
"help.solid.box": "Membuat kotak dari panjang, lebar, dan tinggi, dari sebuah titik sudut atau dipusatkan pada sebuah titik. Gunakan untuk blok cepat, pengganti sementara, atau bodi tempat fitur akan dipotongkan.",
"help.solid.chamfer": "Memotong tepi terpilih dengan bevel datar sejauh jarak yang Anda atur. Gunakan untuk menumpulkan tepi tajam atau mempermudah masuknya pin atau sekrup.",
"help.solid.coil": "Membuat bodi heliks, seperti pegas, dari diameter, jumlah putaran, tinggi atau pitch, dan penampang bulat atau persegi. Gunakan untuk pegas, koil, dan rusuk heliks.",
"help.solid.combine": "Menggabungkan bodi, memotongnya dari bodi target, atau hanya menyimpan volume yang dimiliki bersama, dan dapat mempertahankan bodi alat. Gunakan untuk menyatukan part, memotong satu bentuk dengan bentuk lain, atau menemukan tempat dua bodi bertumpang tindih.",
"help.solid.cone": "Membuat kerucut dari lingkaran dasar dan tinggi, atau kerucut terpancung bila bagian atasnya juga memiliki radius. Gunakan untuk taper, corong, countersink, dan ujung runcing.",
"help.solid.cylinder": "Membuat silinder dari radius atau diameter dan tinggi, berdiri pada sebuah titik sepanjang sumbu. Gunakan untuk poros, pin, boss, dan blanko bulat.",
"help.solid.draft": "Memiringkan muka terpilih sebesar sudut yang Anda atur, diukur dari bidang netral. Gunakan pada part cetakan atau cor agar mudah dilepas dari cetakannya.",
"help.solid.emboss": "Menaikkan profil sketsa, seperti teks atau logo, dari sebuah muka, atau membenamkannya ke dalamnya. Gunakan untuk tulisan, label, dan tanda pada muka datar atau bulat.",
"help.solid.extrude": "Mendorong profil sketsa menjadi 3D sejauh jarak tertentu, menambah atau menghilangkan material. Gunakan untuk mengubah garis bentuk datar menjadi blok, boss, atau kantong.",
"help.solid.fillet": "Membulatkan tepi terpilih dengan perpaduan melingkar yang halus sebesar radius yang Anda atur. Gunakan untuk memperhalus tepi tajam demi kekuatan, kenyamanan, atau tampilan.",
"help.solid.hole": "Membor lubang bulat dengan diameter yang Anda atur pada titik pilihan di sebuah muka. Gunakan untuk celah sekrup, pin, dan bukaan bulat sederhana lainnya.",
@@ -1425,20 +1653,60 @@
"help.solid.move": "Memindahkan atau memutar bodi terpilih, atau salinannya, sesuai jarak dan sudut yang Anda atur. Gunakan untuk memposisikan ulang bodi atau membuat bodi kedua di tempat lain.",
"help.solid.offset_face": "Mendorong muka terpilih ke dalam atau ke luar sejauh jarak yang Anda atur, dan muka di sekitarnya mengikuti. Gunakan untuk menebalkan dinding, memperdalam kantong, atau meninggikan boss tanpa mengedit sketsa.",
"help.solid.pattern.circular": "Mengulang objek terpilih mengelilingi sumbu, sesuai jumlah dan sudut total yang Anda atur. Gunakan untuk lingkaran baut, jari-jari, sirip, dan gigi.",
"help.solid.pattern.path": "Menyalin fitur atau bodi sepanjang jalur sketsa, menurut jumlah dan jarak. Gunakan untuk lubang di sepanjang tepi lengkung atau part di sepanjang rel.",
"help.solid.pattern.rectangular": "Mengulang objek terpilih dalam satu atau dua arah dengan jumlah dan jarak yang Anda atur. Gunakan untuk baris dan grid lubang, rusuk, pin, atau kaki.",
"help.solid.pipe": "Membuat pipa bulat sepanjang jalur kurva sketsa, padat atau berongga dengan ketebalan dinding. Gunakan untuk tabung, kawat, kabel, dan rel.",
"help.solid.press_pull": "Menambah atau menghilangkan material saat Anda menyeret muka, atau membulatkan tepi saat Anda menyeretnya. Gunakan untuk perubahan cepat langsung pada model.",
"help.solid.remove": "Mengeluarkan bodi terpilih dari desain mulai titik ini di timeline; langkah sebelumnya tetap memilikinya. Gunakan untuk membuang bodi bantu, seperti alat potong yang tidak diperlukan lagi.",
"help.solid.replace_face": "Memindahkan muka datar terpilih ke sebuah bidang atau ke muka yang sejajar, dan bodi bertambah atau menyusut hingga bertemu. Gunakan untuk meratakan muka dengan part lain atau bidang konstruksi.",
"help.solid.revolve": "Memutar profil sketsa mengelilingi sumbu untuk membuat solid bulat. Gunakan untuk poros, kenop, mangkuk, dan part apa pun yang bulat terhadap garis tengah.",
"help.solid.rib": "Menambahkan dinding tipis sepanjang kurva sketsa terbuka, diisi hingga muka-muka bodi berikutnya. Gunakan untuk memperkaku dinding dan sudut, misalnya pada part cetakan atau cetak 3D.",
"help.solid.scale": "Membuat bodi terpilih lebih besar atau lebih kecil dengan suatu faktor, sama ke segala arah atau satu per sumbu. Gunakan untuk mengubah ukuran bentuk impor atau memperhitungkan penyusutan.",
"help.solid.shell": "Mengosongkan solid, menyisakan dinding setebal yang Anda atur, dan dapat membuka muka yang Anda pilih. Gunakan untuk kotak, penutup, dan part berdinding tipis lainnya.",
"help.solid.sphere": "Membuat bola dari radius atau diameter di sekeliling titik pusat. Gunakan untuk bola, kenop, dan ujung membulat.",
"help.solid.split_body": "Memotong sebuah bodi menjadi bodi terpisah dengan bidang, muka bodi lain, atau garis sketsa. Gunakan untuk membuat part yang dicetak, dimesin, atau diwarnai sendiri-sendiri.",
"help.solid.split_face": "Membagi muka terpilih sepanjang bidang, muka bodi lain, atau kurva sketsa, tanpa memotong bodi. Gunakan untuk memberi sebagian muka drafnya, warnanya, atau offset-nya sendiri.",
"help.solid.sweep": "Menyeret profil sketsa sepanjang jalur untuk membuat solid. Gunakan untuk pipa, rel, gagang, dan part berpenampang tetap yang mengikuti kurva.",
"help.solid.thread": "Menambahkan ulir metrik ISO pada muka silindris, sebagai ulir kosmetik atau dipotong ke dalam bodi. Gunakan untuk baut, lubang berulir, dan part sekrup cetak 3D.",
"help.solid.torus": "Membuat cincin dari radius mayor di sekeliling sumbunya dan radius minor untuk penampang bulatnya. Gunakan untuk O-ring, gagang, dan manik bulat.",
"help.solid.web": "Menambahkan dinding tipis sepanjang setiap kurva sketsa terbuka, masing-masing diisi hingga muka-muka bodi berikutnya. Gunakan untuk grid dinding penopang di dalam casing dan baki.",
"help.surface.blend": "Membuat permukaan yang menjembatani tepi dua bodi, tangen atau kontinu kelengkungannya terhadap keduanya. Gunakan untuk menyambung dua permukaan dengan halus melintasi celah.",
"help.surface.boundary": "Membuat permukaan yang mengisi loop dua sampai empat kurva sketsa, atau jaringan kurva. Gunakan untuk panel bentuk bebas yang ditentukan oleh tepinya.",
"help.surface.extend": "Memperpanjang permukaan melewati tepinya, sejauh jarak tertentu atau hingga sebuah bidang atau muka. Gunakan agar permukaan saling tumpang tindih sebelum Anda trim atau menjahitnya.",
"help.surface.extrude": "Mendorong kurva atau profil sketsa sejauh jarak tertentu menjadi permukaan, hanya dinding, tanpa tutup. Gunakan untuk dinding tipis dan untuk alat pemotong atau pemisah.",
"help.surface.fair": "Menghaluskan bagian dalam muka bentuk bebas sementara tepinya tetap di tempat. Gunakan untuk meratakan tonjolan dan pantulan bergelombang pada permukaan.",
"help.surface.loft": "Membuat permukaan yang melewati dua penampang atau lebih secara berurutan, tanpa tutup. Gunakan untuk shell dan transisi antar bentuk yang berbeda.",
"help.surface.match": "Membangun ulang tepi permukaan agar bertemu dengan tepi bodi lain, dengan tangen atau kelengkungan yang cocok. Gunakan untuk menutup jahitan secara halus di antara dua permukaan.",
"help.surface.offset": "Membuat salinan muka pada jarak tertentu sepanjang normalnya, sebagai bodi permukaan baru. Gunakan untuk kulit, kelonggaran, atau sisi lain sebuah dinding.",
"help.surface.patch": "Mengisi wilayah sketsa atau loop tepi tertutup dengan sebuah muka, datar atau melengkung halus. Gunakan untuk menutup lubang pada bodi permukaan.",
"help.surface.reverse_normal": "Membalik muka bodi permukaan, sehingga sisi luarnya menghadap arah lain. Gunakan sebelum menebalkan atau menjahit bila muka-mukanya mengarah ke dalam.",
"help.surface.revolve": "Memutar kurva atau profil sketsa mengelilingi sumbu menjadi permukaan, tanpa tutup. Gunakan untuk shell bulat seperti kap lampu, mangkuk, dan nosel.",
"help.surface.ruled": "Membuat pita garis lurus yang keluar dari rantai tepi, sepanjang normal muka, tangen, atau pada suatu sudut. Gunakan untuk dinding draft, run-off, dan permukaan pemisah.",
"help.surface.stitch": "Menjahit bodi permukaan bersama di sepanjang tepi yang dipakai bersama, menjadi solid bila tertutup. Gunakan untuk mengubah sekumpulan permukaan menjadi satu bodi.",
"help.surface.sweep": "Menggerakkan kurva atau profil sketsa sepanjang jalur menjadi permukaan, tanpa tutup. Gunakan untuk talang, trim, dan bentuk tipis lain yang mengikuti jalur.",
"help.surface.thicken": "Memberi ketebalan pada bodi permukaan, mengubahnya menjadi solid. Gunakan untuk membuat part yang dapat dicetak atau dimesin dari permukaan.",
"help.surface.trim": "Memotong permukaan dengan bidang, permukaan lain, atau kurva sketsa, dan mempertahankan sisi yang Anda pilih. Gunakan untuk memotong permukaan menjadi bentuk sebelum dijahit.",
"help.surface.unstitch": "Memisahkan muka sebuah bodi menjadi bodi permukaan tersendiri; solid terurai menjadi permukaan. Gunakan untuk mengerjakan ulang muka tunggal sebuah bodi.",
"help.surface.untrim": "Menghapus lubang dari sebuah muka, atau memulihkan batas luarnya ke batas alami permukaan. Gunakan untuk mendapatkan kembali permukaan penuh setelah trim.",
"help.third_party": "Lisensi pihak ketiga",
"help.timeline.compute_all": "Membangun ulang setiap fitur di timeline dari awal. Gunakan untuk menyegarkan model dan melihat fitur mana yang gagal.",
"help.timeline.delete": "Menghapus fitur terpilih dari timeline; menghapus sketsa juga menghapus fitur yang dibangun darinya. Gunakan untuk membuang langkah yang tidak diinginkan lagi.",
"help.timeline.dependents": "Mencantumkan fitur yang akan ikut terhapus bersama sebuah fitur, dan yang akan gagal tanpanya. Gunakan sebelum menghapus atau mengubah sebuah fitur.",
"help.timeline.play": "Putar ulang fitur yang tersisa satu per satu, dengan jeda setengah detik setelah setiap pembangunan ulang. Jalankan perintah ini lagi atau tekan Escape untuk berhenti; Ke akhir langsung melompat.",
"help.view.apply": "Memutar tampilan ke arah standar seperti depan, atas, atau iso, atau ke tampilan bernama yang tersimpan. Gunakan untuk melihat model dari sudut tetap.",
"help.view.delete": "Menghapus tampilan bernama yang tersimpan. Model tidak berubah.",
"help.view.fit": "Melakukan zoom dan pan agar seluruh model, atau pilihan, memenuhi tampilan. Gunakan bila model menghilang dari pandangan.",
"help.view.grid": "Menampilkan atau menyembunyikan grid di viewport. Gunakan sebagai panduan ukuran dan orientasi saat memodelkan.",
"help.view.ground_shadow": "Menampilkan atau menyembunyikan bayangan model di lantai. Gunakan untuk menilai tinggi dan posisi dengan lebih mudah.",
"help.view.home": "Memutar tampilan kembali ke arah awal dan memasukkan model ke dalam tampilan. Gunakan untuk kembali ke tampilan yang dikenal dengan cepat.",
"help.view.list": "Mencantumkan tampilan bernama yang tersimpan di desain. Gunakan untuk menemukan tampilan yang Anda simpan sebelumnya.",
"help.view.navigate": "Memutar, menggeser, atau memperbesar tampilan dengan langkah-langkah, seperti seperempat putaran ke kiri. Gunakan untuk menggerakkan kamera dengan tepat alih-alih menyeret.",
"help.view.navigation_bar": "Menampilkan atau menyembunyikan bilah navigasi di bagian bawah viewport. Sembunyikan untuk ruang lebih luas, tampilkan untuk menjangkau alat tampilan dengan mouse.",
"help.view.rename": "Memberi nama baru pada tampilan bernama yang tersimpan. Tampilannya sendiri tetap sama.",
"help.view.save": "Menyimpan posisi kamera saat ini sebagai tampilan bernama di desain. Gunakan untuk kembali ke sudut yang sama nanti, misalnya untuk tangkapan layar.",
"help.view.spin": "Memutar tampilan mengelilingi model secara terus-menerus hingga klik atau tombol berikutnya. Gunakan untuk mempresentasikan model dari segala sisi.",
"help.view.tool": "Mengunci alat kamera, yaitu orbit, pan, atau zoom, sehingga menyeret dengan tombol kiri mouse menggerakkan tampilan sampai Anda mematikannya. Gunakan pada trackpad atau tanpa tombol tengah mouse.",
"help.view.visual_style": "Mengganti cara model digambar: berbayang dengan atau tanpa tepi, wireframe, atau dengan tepi tersembunyi. Gunakan wireframe untuk melihat bagian dalam, berbayang untuk tampilan bersih.",
"history.sketch_under_constrained": "Kurang dibatasi ({count} derajat kebebasan)",
"history.sketch_under_constrained_one": "Kurang dibatasi ({count} derajat kebebasan)",
"hole_presets.confirm_delete": "Konfirmasi hapus",
@@ -1615,6 +1883,10 @@
"material.selection.mixed": "Material berbeda",
"measure.at": "Pada",
"measure.item": "Item {number}",
"measure.quick_copied": "Pengukuran disalin",
"measure.quick_copy": "Klik untuk menyalin pengukuran",
"measure.quick_edges": "{count} tepi",
"measure.quick_faces": "{count} muka",
"messages.ago_h": "{n} j lalu",
"messages.ago_min": "{n} mnt lalu",
"messages.ago_s": "{n} d lalu",
@@ -1648,6 +1920,7 @@
"nav.hfss.help": "Alt+seret kiri menggeser, Shift+Alt+kiri memperbesar/memperkecil, Ctrl+seret kiri di area kosong mengorbit",
"nav.inventor.help": "Seret tombol tengah menggeser, Shift+tombol tengah memutar orbit, Ctrl+tombol tengah memperbesar/memperkecil, seret kanan memutar orbit",
"nav.maya.help": "Alt+seret kiri mengorbit, Alt+tengah menggeser, Alt+kanan memperbesar/memperkecil; seret tengah juga menggeser",
"nav.nx.help": "Seret tombol tengah memutar orbit, Shift+tombol tengah menggeser (tombol tengah + kanan di NX), Ctrl+tombol tengah memperbesar/memperkecil (tombol tengah + kiri di NX); seret kanan tidak menggerakkan kamera",
"nav.openscad.help": "Seret kiri di ruang kosong memutar orbit, Shift+seret kiri memilih dengan kotak, seret geometri sketsa mengeditnya; seret kanan atau tombol tengah menggeser, Shift+seret kanan atau Shift+seret tombol tengah memperbesar/memperkecil",
"nav.perspective.sketch": "Pengeditan sketsa memakai tampilan ortografis. Selesaikan sketsa untuk beralih ke perspektif.",
"nav.right_drag_orbits.help": "Mati: seret kanan tidak menggerakkan kamera dan tombol kanan hanya membuka menu konteks. Memilih pemetaan mouse SolidWorks akan mematikannya.",
@@ -1767,6 +2040,11 @@
"not a move": "bukan pemindahan",
"not a number": "bukan angka",
"open a sketch first": "buka sketsa terlebih dahulu",
"parameters.apply_live": "Terapkan setiap perubahan saat Anda meninggalkan kolomnya",
"parameters.apply_live_tip": "Mati: perubahan menunggu sampai Terapkan atau OK, lalu desain dibangun ulang sekali untuk semuanya. Batal atau Escape membuangnya.",
"parameters.held": "{count} perubahan menunggu Terapkan",
"parameters.held_hint": "Edit ekspresi dan satuan. Perubahan menunggu Terapkan atau OK.",
"parameters.held_one": "1 perubahan menunggu Terapkan",
"parts.automatic_name": "otomatis",
"parts.dimension.across_flats": "Lebar antar sisi datar",
"parts.dimension.bore": "Diameter lubang",
@@ -1789,6 +2067,8 @@
"parts.family.set_screw": "Sekrup set soket segi enam, ujung datar",
"parts.family.socket_head_cap_screw": "Sekrup kepala soket (cap screw)",
"parts.family.washer": "Ring datar (washer)",
"parts.holes": "Lubang (opsional)",
"parts.placement_hint": "pilih satu lubang atau lebih untuk menempatkan part di masing-masing, atau OK menempatkannya di origin",
"pattern.alignment_2": "Perataan 2",
"pattern.alignment_hint": "Jumlah termasuk yang asli. Center menyeimbangkan salinan; Flip memilih sisi tambahan untuk total genap.",
"pattern.direction_1": "Arah 1",
@@ -1862,6 +2142,8 @@
"prefs.ctrl_cmd": "Ctrl / Cmd",
"prefs.curved_surfaces": "Permukaan melengkung",
"prefs.curves": "Permukaan melengkung",
"prefs.dark_parts_shading": "Pertahankan bentuk part yang gelap",
"prefs.dark_parts_shading_help": "Melakukan pewarnaan tampilan dalam cahaya linear dengan cahaya pengisi langit yang lembut, sehingga muka yang gelap tetap memiliki gradasi dan tidak menjadi hitam",
"prefs.dead_zone_note": "Pita berarsir adalah zona mati: gerakan di dalamnya diabaikan.",
"prefs.default": "default",
"prefs.design": "Default desain",
@@ -1876,6 +2158,8 @@
"prefs.edges": "Tepi dan pewarnaan",
"prefs.extend": "Perpanjang",
"prefs.extra_navigation": "Ctrl+seret kiri pada ruang kosong untuk orbit; tahan Space untuk geser.",
"prefs.extrude_view_isometric": "Putar tampilan ke isometrik saat Ekstrusi dibuka",
"prefs.extrude_view_return": "Kembali ke tampilan sebelumnya saat Ekstrusi ditutup",
"prefs.follows_os": "Mengikuti OS",
"prefs.font": "Font",
"prefs.font_fallback": "Glif yang tidak dimiliki font pilihan akan memakai font bawaan, sehingga tidak ada label yang menampilkan kotak kosong.",
@@ -1891,6 +2175,7 @@
"prefs.graphics_card_auto": "Otomatis",
"prefs.graphics_card_missing": "Kartu grafis yang disimpan tidak tersedia; Otomatis dipakai.",
"prefs.graphics_card_restart": "Berlaku setelah SolidCraft dimulai ulang. WGPU_ADAPTER_NAME menggantikan pilihan ini.",
"prefs.graphics_card_unused": "Kartu grafis yang tersimpan tidak dipakai untuk jendela ini; kartu yang sedang dipakai ditampilkan di Bantuan › Tentang dan di bilah status. Coba Otomatis, atau atur WGPU_ADAPTER_NAME ke bagian unik dari nama kartu.",
"prefs.graphics_note": "Tukar kecepatan dengan kehalusan. Setiap pilihan menampilkan efeknya pada sebuah contoh.",
"prefs.graphics_presets_note": "Preset mengatur pilihan di bawah secara bersamaan.",
"prefs.hide_constraint_glyphs_zoomed_out": "Sembunyikan glif batasan saat zoom out",
@@ -1905,6 +2190,8 @@
"prefs.history_sketches_note": "Jika Sketsa diatur ke Di bawah fiturnya, Riwayat di sisi kiri mencantumkan setiap sketsa satu tingkat ke dalam, di bawah fitur pertama yang dibuat darinya, selama cukup lebar untuk menampilkan nama. Timeline di bagian bawah selalu mempertahankan urutan pembuatan.",
"prefs.history_sketches_under_feature": "Di bawah fiturnya",
"prefs.hold_stop_snapping": "Tahan untuk menghentikan snap",
"prefs.home_fit_size": "Ukuran Awal dan Pas",
"prefs.home_fit_size_note": "Seberapa besar bagian tampilan yang diisi model saat Awal, Pas, desain yang baru dibuka, atau perubahan tampilan lewat navigator tampilan membingkainya, baik pengaturan di bawah ini aktif maupun tidak. 100 %: mengisi tampilan di antara panel, kompas, dan bilah navigasi.",
"prefs.icons_only": "Hanya ikon",
"prefs.imported_file": "File yang diimpor",
"prefs.in_browser": "Di dalam penjelajah",
@@ -1913,13 +2200,20 @@
"prefs.interface_language": "Bahasa antarmuka",
"prefs.interface_note": "Tampilan SolidCraft dan letak bagian-bagiannya.",
"prefs.interval_minutes": "{n} mnt",
"prefs.invert_navigator_arrows": "Balikkan panah rotasi kubus tampilan",
"prefs.invert_navigator_arrows_note": "Panah di sekeliling kubus memutar orbit kamera ke arah yang ditunjuknya, seperti di Fusion dan Inventor: panah di kiri menunjuk ke kanan dan mengayunkan kamera ke kanan. Mati: panah memutar kubus ke sisi tempatnya berada, sehingga panah kiri mengayunkan kamera ke kiri. Panah roll yang melengkung tidak terpengaruh.",
"prefs.keep_work_on_tab_switch": "Biarkan dialog dan alat tetap terbuka saat berpindah desain",
"prefs.keep_work_on_tab_switch_note": "Setiap tab desain mempertahankan dialog atau alat yang terbuka, beserta apa yang Anda pilih dan ketik di dalamnya, dan tab toolbar-nya. Semuanya kembali saat Anda kembali ke desain itu. Mati: berpindah desain membatalkannya dan menampilkan tab Model.",
"prefs.labels": "Label",
"prefs.language_system": "Sistem",
"prefs.layout": "Tata letak",
"prefs.layout_note": "Ringkas menempelkan panel ke tepi jendela. Translusensi penjelajah tersedia di Mengambang. Ubah sisi Asisten di halaman Asisten.",
"prefs.left": "Kiri",
"prefs.left_click": "Klik kiri",
"prefs.line_drag_draws_one": "Tekan dan seret menggambar satu garis",
"prefs.line_drag_draws_one_note": "Di alat Garis, menekan, menyeret, lalu melepas menggambar satu garis dari titik tekan hingga titik lepas, dan garis berakhir di sana. Klik tetap menggambar rantai. Mati: seretan menaruh titik di tempat dilepas, seperti klik.",
"prefs.line_hover_tangent_arc": "Diamkan penunjuk di titik terakhir garis untuk beralih ke busur tangen",
"prefs.line_hover_tangent_arc_note": "Di alat Garis, setelah satu segmen digambar, jauhkan penunjuk dari titik terakhir rantai, kembali, lalu diamkan penunjuk di titik itu: klik berikutnya menentukan ujung busur tangen, dan gerakan yang sama kembali ke garis. Mati: berdiam di sana tidak berpengaruh.",
"prefs.linked_designs": "Desain tertaut",
"prefs.live_input": "Input langsung",
"prefs.live_preview": "Pratinjau langsung",
@@ -1943,6 +2237,8 @@
"prefs.mouse_mapping": "Pemetaan mouse",
"prefs.navigation": "Navigasi",
"prefs.navigation_note": "Cara mouse, trackpad, dan mouse 3D menggerakkan tampilan.",
"prefs.navigator_fit": "Buat model pas di tampilan setelah perubahan tampilan lewat navigator",
"prefs.navigator_fit_note": "Sebuah muka, sudut, atau panah pada kubus tampilan, atau sumbu pada gizmo, juga menghadap ke tengah model dari satu jarak yang membuatnya pas dari segala sisi (bola pembatasnya). Awal memakai zoom dan pusat yang sama selama opsi ini aktif, sehingga tampilan yang dipilih setelahnya hanya berputar. Mati: tampilan berputar di tempat, dengan target dan zoom tetap.",
"prefs.network_host_remove": "Hapus",
"prefs.network_locations": "Izinkan lokasi jaringan di desain",
"prefs.network_locations_note": "Nonaktif: file tertaut sebuah desain di komputer lain (\\\\server\\share) hanya dibuka dari server yang tercantum di sini, atau setelah Anda mengizinkan salah satunya saat ditanya.",
@@ -1955,6 +2251,8 @@
"prefs.origin_plane_names": "Nama bidang origin",
"prefs.origin_plane_names_note": "Nama yang ditampilkan di penjelajah, dialog, dan daftar. {top} adalah XY, {front} adalah XZ, dan {right} adalah YZ, dengan Z ke atas. Perintah, skrip, dan desain tersimpan tetap memakai XY, XZ, dan YZ.",
"prefs.overall_speed": "Kecepatan keseluruhan",
"prefs.parameter_list_rows": "Baris daftar parameter",
"prefs.parameter_list_rows_tip": "Panah bawah di kolom nilai yang kosong menampilkan daftar parameter, favorit lebih dulu, hingga sebanyak baris ini. Lebih sedikit menjaga daftar tetap ringan di desain besar.",
"prefs.persistent_ribbon_pressed": "Sorot perintah ribbon yang aktif",
"prefs.persistent_ribbon_pressed_help": "Sorot perintah ribbon selama efeknya aktif. Matikan untuk mempertahankan tampilan netral dan bantuan perintah sebelumnya.",
"prefs.perspective_fov": "Bidang pandang",
@@ -1984,9 +2282,13 @@
"prefs.quality_fastest": "tercepat",
"prefs.quality_slowest": "paling lambat",
"prefs.quality_smoother": "lebih halus",
"prefs.quick_measure": "Pengukuran cepat di sudut tampilan",
"prefs.quick_measure_note": "Ukuran pilihan di sudut kanan bawah tampilan: panjang sebuah tepi, atau Ø dan R untuk tepi bulat, luas sebuah muka, posisi sebuah titik, jarak dan sudut antara dua item, total beberapa tepi atau muka. Klik menyalinnya.",
"prefs.render_previous_geometry_budget": "Gunakan anggaran geometri pratinjau Render sebelumnya",
"prefs.render_previous_geometry_budget_help": "Pulihkan batas geometri tetap sebelumnya (512 MiB di desktop 64-bit, 128 MiB di tempat lain) alih-alih anggaran berbasis perangkat.",
"prefs.reports_saved": "{n} tersimpan",
"prefs.ribbon_click_ends_tool": "Mengklik tombol alat yang sedang berjalan mengakhirinya",
"prefs.ribbon_click_ends_tool_note": "Klik pada tombol ribbon yang menyala dari alat sketsa yang sedang dipakai mengakhiri alat itu, sehingga klik di tampilan kembali memilih. Mati: klik memulai alat itu lagi.",
"prefs.ribbon_reveal": "Tampilkan hasil pencarian di ribbon",
"prefs.ribbon_reveal_note": "Mengarahkan kursor ke hasil di Cari perintah menunjukkan letak perintah itu di ribbon: tab-nya, tombolnya, atau barisnya di dropdown panel. Perintah yang dimulai dari pencarian berkedip di sana, dan perintah yang berjalan dari dropdown menandai panelnya.",
"prefs.right_click": "Klik kanan",
@@ -2016,6 +2318,8 @@
"prefs.sketch_exit_view.previous": "Kembali ke tampilan sebelumnya",
"prefs.sketch_exit_view.unless_rotated": "Kembali kecuali diputar",
"prefs.sketch_exit_view_note": "Ke mana tampilan beralih setelah Selesai Sketsa, Batal, atau Esc dua kali.",
"prefs.sketch_face_activates_part": "Menggambar sketsa di muka part membuat part itu aktif",
"prefs.sketch_face_activates_part_note": "Sketsa yang dimulai di muka bodi milik komponen lain mengaktifkan komponen itu lebih dulu, sehingga sketsa menjadi milik komponen tersebut dan tetap bersama part itu di penjelajah. Part itu tetap aktif setelahnya. Mati: sketsa menjadi milik komponen aktif.",
"prefs.sketch_open_look_at": "Putar untuk menghadap sketsa saat dibuka",
"prefs.sketch_open_look_at_note": "Mati: membuat atau mengedit sketsa membiarkan tampilan apa adanya. Look At menghadapkan tampilan ke sketsa saat Anda menginginkannya.",
"prefs.sketch_recent_snap": "Snap otomatis ke pusat dan titik tengah terbaru",
@@ -2029,6 +2333,8 @@
"prefs.sketch_tab_always_note": "Tab Sketsa tetap ada di ribbon, tepat setelah Model, selama tidak ada sketsa yang terbuka. Alat gambarnya lalu memulai sketsa pada bidang atau muka yang dipilih, atau pada bidang yang Anda pilih berikutnya, dengan alat yang sudah siap di dalamnya.",
"prefs.sketch_tracking_guides": "Pemandu perataan pusat dan titik tengah",
"prefs.sketch_tracking_guides_note": "Arahkan kursor ke pusat lingkaran atau titik tengah tepi lurus, lalu gerakkan secara horizontal atau vertikal untuk menampilkan pemandu titik-titik sementara.",
"prefs.sketch_tracking_points": "Pemandu penyejajaran dari titik ujung dan sudut saat menggambar",
"prefs.sketch_tracking_points_note": "Saat alat gambar menunggu sebuah titik, mengarahkan kursor ke ujung garis atau busur, sudut persegi panjang, atau titik bebas menampilkan pemandu bertitik sementara yang sama seperti untuk pusat atau titik tengah. Mati: hanya pusat dan titik tengah.",
"prefs.sketching": "Menggambar sketsa",
"prefs.snap_drawing_note": "Saat menggambar atau menyeret titik sketsa.",
"prefs.source": "Sumber",
@@ -2045,6 +2351,24 @@
"prefs.status_error": "Error",
"prefs.status_selected": "Terpilih",
"prefs.status_warning": "Peringatan",
"prefs.structure.appearance": "Tampilan",
"prefs.structure.appearance_note": "Warna, teks, dan aksesibilitas.",
"prefs.structure.in_profile": "Dalam profil",
"prefs.structure.layout": "Tata letak",
"prefs.structure.layout_note": "Letak bagian-bagian jendela.",
"prefs.structure.look": "Rupa",
"prefs.structure.measure_pointer": "Ukur dan penunjuk",
"prefs.structure.mouse3d": "Mouse 3D",
"prefs.structure.mouse3d_note": "SpaceMouse dan SpaceNavigator.",
"prefs.structure.navigation_note": "Mouse dan trackpad. Mouse 3D punya halamannya sendiri.",
"prefs.structure.profile": "Profil",
"prefs.structure.profile_edited": "Berubah sejak disimpan",
"prefs.structure.profile_hover": "Disimpan di profil pengaturan",
"prefs.structure.scale_percent": "{percent}%",
"prefs.structure.sketch": "Sketsa",
"prefs.structure.tools": "Alat",
"prefs.structure.tools_note": "Cara kerja alat pemodelan.",
"prefs.structure.work": "Kerja",
"prefs.supersampling_brief": "Menggambar tampilan lebih besar lalu menyaringnya turun: sangat tajam, tetapi lebih berat.",
"prefs.tab_accent_note": "Aksen mengikuti tab aktif",
"prefs.theme_file": "file tema",
@@ -2056,6 +2380,16 @@
"prefs.theme_follow_off": "Nonaktif",
"prefs.theme_follow_stop": "Berhenti mengikuti",
"prefs.theme_import_hint": "Klik untuk memilih file tema, seret satu ke sini, atau tekan Ctrl+V (Cmd+V di Mac) setelah menyalin tema",
"prefs.theme_option_opacity": "Opasitas",
"prefs.theme_option_opacity_help": "Atur opasitas panel mengambang. Batas minimum keterbacaan melindungi teks di atas warna viewport.",
"prefs.theme_option_tab_colours": "Warna tab",
"prefs.theme_option_tab_colours_help": "Pakai warna panel dan viewport tema ini untuk setiap tab ribbon.",
"prefs.theme_option_tab_fade_ms": "Transisi tab",
"prefs.theme_option_tab_fade_ms_help": "Memudarkan warna panel dan viewport saat berpindah tab. Nol berpindah seketika.",
"prefs.theme_options_badge": "Opsi",
"prefs.theme_options_more": "Lainnya · {count}",
"prefs.theme_options_reset": "Reset",
"prefs.theme_options_unavailable": "Tidak tersedia di perangkat ini",
"prefs.theme_paste": "Tempel tema",
"prefs.theme_paste_none": "Papan klip tidak berisi tema SolidCraft",
"prefs.timeline_half_hour": "−30 mnt",
@@ -2077,6 +2411,8 @@
"prefs.under_cursor": "Di bawah kursor",
"prefs.units_precision": "Satuan dan presisi",
"prefs.updates": "Pembaruan",
"prefs.value_boxes_in_view": "Tampilkan nilai di samping handle-nya di tampilan",
"prefs.value_boxes_in_view_tip": "Nilai sebuah perintah (Jarak, Radius…) dalam kotak di samping handle-nya, di atas model. Mati: Anda mengetiknya di jendela perintah, yang menerima keyboard setelah pemilihan, dan tidak ada yang menutupi model.",
"prefs.view": "Perilaku tampilan",
"prefs.view_confirm_corner": "OK dan Batal di sudut tampilan",
"prefs.view_confirm_corner_note": "Saat dialog atau sketsa terbuka, tanda centang dan tanda silang di kanan atas tampilan melakukan hal yang sama seperti OK dan Batal pada dialog, atau menyelesaikan dan membatalkan sketsa. Navigator tampilan bergeser ke bawahnya.",
@@ -2086,6 +2422,12 @@
"prefs.viewport_background": "Latar belakang",
"prefs.viewport_background_colour": "Warna",
"prefs.viewport_background_theme": "Gradasi tema",
"prefs.viewport_section_status": "Tampilkan status penampang viewport",
"prefs.viewport_section_status_help": "Tampilkan pengaturan penampang di viewport. Escape dan tombol ribbon yang aktif mematikannya. Matikan untuk mempertahankan kontrol penampang sebelumnya.",
"prefs.viewport_status_details": "Detail viewport langsung",
"prefs.viewport_status_details_help": "Edit pengaturan analisis dan penampang yang aktif di kartu detail standar. Matikan untuk memulihkan tombol analisis hanya-baca dan dialog Penampang.",
"prefs.viewport_status_summary": "Lipat item status viewport",
"prefs.viewport_status_summary_help": "Lipat tiga item status viewport atau lebih menjadi satu lencana ringkasan. Matikan untuk mempertahankan setiap item di baris penuh.",
"prefs.wheel": "Roda",
"prefs.wheel_trackpad": "Roda dan trackpad",
"prefs.workspace": "Workspace",
@@ -2964,7 +3306,9 @@
"render.output_ready": "Siap dirender",
"render.output_run_check": "Jalankan pemeriksaan",
"render.output_size_limit": "{method}: hingga {dimension} px per sisi dan {pixels} piksel. Ukuran terbesar yang muat: {width} × {height}.",
"render.output_size_method_profile": "Untuk merender {width} × {height}, pilih {method} dengan profil sumber daya CPU {profile}, atau ukuran yang lebih kecil.",
"render.output_size_ok": "Ukuran OK · {width} × {height} px",
"render.output_size_profile": "Untuk merender {width} × {height}, pilih profil sumber daya CPU {profile}, atau ukuran yang lebih kecil.",
"render.output_swap_orientation": "Tukar lebar dan tinggi",
"render.output_tools_inspector": "Edit ukuran dan format di Inspektor Keluaran.",
"render.output_view_image": "Lihat gambar",
@@ -3177,6 +3521,7 @@
"render.size_custom": "Kustom…",
"render.size_full_hd": "Full HD",
"render.size_hd": "HD",
"render.size_needs_profile": "{size} · memerlukan {profile}",
"render.size_presets": "Preset ukuran",
"render.size_presets_pending": "Hadir bersama editor Keluaran",
"render.size_preview": "Pratinjau",
@@ -3464,6 +3809,24 @@
"sheet.flange_type_contour": "Kontur",
"sheet.flange_type_edge": "Tepi",
"sheet.no_body": "tidak ada bodi pelat logam: mulai satu dengan Flens > Base, atau ubah pelat menjadi pelat logam dengan Konversi ke Pelat Logam (pilih muka datar besarnya)",
"sheet.personal_rules.confirm_delete": "Konfirmasi hapus",
"sheet.personal_rules.delete": "Hapus",
"sheet.personal_rules.delete_prompt": "Hapus aturan pribadi ini? Aturan yang sudah ada di desain tidak berubah.",
"sheet.personal_rules.full": "Pustaka pribadi sudah berisi 64 aturan.",
"sheet.personal_rules.invalid_name": "Masukkan nama singkat tanpa jeda baris atau karakter kontrol.",
"sheet.personal_rules.invalid_values": "Lengkapi nilai aturan: masing-masing harus dapat dihitung di desain ini, dengan ketebalan positif dan faktor K dari 0 sampai 1.",
"sheet.personal_rules.missing": "Aturan pribadi terpilih sudah tidak tersedia.",
"sheet.personal_rules.name": "Nama aturan",
"sheet.personal_rules.name_exists": "Aturan pribadi dengan nama ini sudah ada. Gunakan nama lain.",
"sheet.personal_rules.name_hint": "Nama yang unik",
"sheet.personal_rules.overwrite": "Simpan perubahan ke aturan pribadi terpilih",
"sheet.personal_rules.rename": "Ganti nama",
"sheet.personal_rules.rule": "Aturan pribadi",
"sheet.personal_rules.save": "Simpan baru",
"sheet.personal_rules.scope": "Disimpan di profil Anda untuk semua desain.",
"sheet.personal_rules.select": "Pilih aturan",
"sheet.personal_rules.title": "Aturan pribadi",
"sheet.personal_rules.unsupported": "Aturan ini memiliki nilai yang tidak dapat dipakai versi ini.",
"shortcut.json_error": "parameter harus berupa JSON: {error}",
"shortcut.no_command": "tidak ada perintah `{id}`; teks sebelum JSON harus berupa id perintah",
"shortcut.pin": "Sematkan di atas kotak S",
@@ -3500,8 +3863,10 @@
"sketch_text.align_right": "Kanan",
"sketch_text.bold": "Tebal",
"sketch_text.builtin_font": "{family} (bawaan)",
"sketch_text.formula": "Mulai dengan = untuk menyusun kata dari parameter: ='W' + number(Width)",
"sketch_text.italic": "Miring",
"sketch_text.loading_fonts": "Mencari font terpasang…",
"sketch_text.no_bold": "Font bawaan tidak memiliki varian tebal: pilih font yang terpasang",
"sketch_text.on_path": "Teks mengikuti jalurnya: kurva yang menempatkannya",
"sketch_text.path_clear": "Lepaskan teks dari kurvanya",
"sketch_text.path_hint": "Kurva sketsa yang diikuti teks: klik di sini, lalu kurvanya",
@@ -3640,6 +4005,8 @@
"ui.3d_mouse_section": "Mouse 3D",
"ui.3d_mouse_show_in_view": "Tampilkan mouse 3D di tampilan 3D",
"ui.3d_mouse_show_in_view_tip": "Gambar mouse 3D Anda di sudut kiri bawah, bergerak mengikuti gerakan Anda.",
"ui.3d_mouse_sketch_orbit": "Putar sketsa dengan mouse 3D",
"ui.3d_mouse_sketch_orbit_tip": "Mouse 3D juga memutar tampilan saat sketsa terbuka dan dilihat tegak lurus, seperti yang dapat dilakukan mouse biasa. Mati: mouse 3D hanya menggeser dan men-zoom sketsa sampai Anda memiringkan tampilan.",
"ui.3d_mouse_skip": "Perangkat saya tidak bisa ini",
"ui.3d_mouse_skip_tip": "Melewati gerakan ini ke kedua arah, dan kalibrasi tidak menyertakannya.",
"ui.3d_mouse_speed": "Kecepatan mouse 3D",
@@ -3708,6 +4075,7 @@
"ui.agent_chat_auth_terminal": "Jalankan ini di terminal, lalu tekan Hubungkan lagi:",
"ui.agent_chat_auth_title": "Masuk ke agen",
"ui.agent_chat_cancel": "Batal",
"ui.agent_chat_cannot_start": "Terpasang, tetapi tidak dapat dimulai: {error}",
"ui.agent_chat_changes": "Perubahan: {n}, satu langkah urung",
"ui.agent_chat_changes_n": "{n} perubahan",
"ui.agent_chat_changes_of": "{n}/{limit} perubahan",
@@ -3800,9 +4168,12 @@
"ui.agent_chat_queued_stopped": "Mengantre (dihentikan, belum dikirim)",
"ui.agent_chat_refresh": "Segarkan",
"ui.agent_chat_refused": "Tidak diizinkan untuk agen: {reason}",
"ui.agent_chat_reinstall": "{agent} terpasang ({program}), tetapi tidak dapat dimulai saat SolidCraft memeriksanya: {error}\nInstalasinya mungkin tidak lengkap, atau dibuat untuk jenis komputer lain. Pasang lagi dengan `{install}`, periksa bahwa ia menampilkan versinya di terminal, lalu tekan Segarkan.",
"ui.agent_chat_remove": "Hapus dari antrean",
"ui.agent_chat_remove_file": "Lepaskan dari pesan ini",
"ui.agent_chat_remove_imported": "Lepaskan dari pesan ini; part tetap berada di desain (Urungkan menghapusnya)",
"ui.agent_chat_reply_cut_off": "Balasan mencapai batas panjangnya sebelum selesai, jadi mungkin tidak lengkap. Minta agen untuk melanjutkan, atau untuk jawaban yang lebih singkat.",
"ui.agent_chat_reply_declined": "Model menolak menjawab pesan ini.",
"ui.agent_chat_retry": "Coba lagi",
"ui.agent_chat_right": "Kanan",
"ui.agent_chat_save": "Simpan",
@@ -3861,12 +4232,17 @@
"ui.ai_copy_suffix": "salinan",
"ui.ai_custom_url": "URL kustom",
"ui.ai_default": "Default",
"ui.ai_edit": "Edit",
"ui.ai_edit_agent_title": "Edit agen",
"ui.ai_edit_gone": "Agen ini telah dihapus, jadi tidak ada yang perlu disimpan.",
"ui.ai_edit_tip": "Ubah nama, perintah, atau endpoint agen ini. Key yang tersimpan tetap tersembunyi.",
"ui.ai_http_busy": "endpoint sibuk atau melebihi batas; coba lagi nanti",
"ui.ai_http_key": "endpoint menolak key: periksa di Preferensi > AI",
"ui.ai_http_not_found": "endpoint atau model tidak ada: periksa URL dasar dan nama model",
"ui.ai_http_too_large": "percakapan terlalu besar untuk endpoint ini; mulai obrolan baru",
"ui.ai_key": "Key API",
"ui.ai_key_hint": "opsional; disimpan di keychain sistem",
"ui.ai_key_keep_hint": "kosongkan untuk mempertahankan key yang tersimpan",
"ui.ai_key_needs_https": "Key hanya dikirim lewat HTTPS, atau ke komputer ini.",
"ui.ai_key_note": "Disimpan di keychain sistem, tidak pernah di pengaturan SolidCraft. Kosongkan untuk server lokal.",
"ui.ai_keychain_error": "Keychain sistem menolak: {error}",
@@ -3893,11 +4269,15 @@
"ui.ai_permissions": "Izin",
"ui.ai_preset": "Preset",
"ui.ai_protocol": "Protokol",
"ui.ai_reasoning_effort": "Upaya penalaran",
"ui.ai_reasoning_effort_field_hint": "kosong = default penyedia",
"ui.ai_reasoning_effort_hint": "Opsional. Dikirim ke endpoint sebagai `reasoning_effort`; nilai yang diterima berbeda untuk setiap penyedia (misalnya `low`, `high`, atau `max`). Nilai yang Anda atur di sini tidak pernah diganti oleh SolidCraft. Biarkan kosong agar tidak ada yang dikirim dan default penyedia tetap berlaku.",
"ui.ai_remove": "Hapus",
"ui.ai_request_timed_out": "Model membutuhkan waktu lebih dari {seconds} s. Anda dapat menaikkan batas waktu permintaan untuk endpoint ini di Preferensi › Asisten.",
"ui.ai_request_timeout": "Batas waktu permintaan",
"ui.ai_request_timeout_hint": "Berapa lama satu permintaan model ke endpoint ini boleh berlangsung, dari 30 s sampai satu jam. Naikkan untuk model lokal yang lambat.",
"ui.ai_reset": "Reset",
"ui.ai_save": "Simpan",
"ui.ai_settings": "Pengaturan AI…",
"ui.ai_show_features": "Tampilkan fitur AI",
"ui.ai_show_features_note": "Chat agen: panel tempat agen coding yang sudah Anda pakai, atau endpoint model pilihan Anda, bekerja pada desain yang terbuka. Nonaktif: tidak ada tombol AI, pintasan, entri menu, atau panel, dan tidak ada yang dicari atau dimulai.",
@@ -4057,6 +4437,7 @@
"ui.dark": "Gelap",
"ui.default_modelling_orientation": "Orientasi pemodelan default",
"ui.delete": "Hapus",
"ui.delete_select_first": "Pilih dulu yang akan dihapus: fitur, bodi, komponen, atau geometri sketsa",
"ui.depth": "Kedalaman",
"ui.design": "Desain",
"ui.design_properties.author": "Pembuat",
@@ -4071,6 +4452,40 @@
"ui.design_properties.project": "Proyek",
"ui.design_properties.revision": "Revisi",
"ui.design_saved": "Disimpan ke {path}",
"ui.details_access_caption": "Muka menunjukkan apakah alat dapat menjangkaunya dari arah yang dipilih.",
"ui.details_angle": "Sudut",
"ui.details_continuity_caption": "Edit jahitan terpilih. Jahitan lain mempertahankan pengaturannya sendiri.",
"ui.details_continuity_stale": "Geometri sebelumnya: jalankan ulang analisis untuk mengedit jahitan ini atau mengepaskan tampilan padanya.",
"ui.details_copy_list": "Salin daftar",
"ui.details_curvature": "Toleransi kelengkungan",
"ui.details_curvature_caption": "Muka diberi warna menurut radius kelengkungan lokalnya.",
"ui.details_direction": "Arah alat",
"ui.details_draft_caption": "Muka diberi warna menurut sudutnya terhadap arah tarik.",
"ui.details_edit_seam": "Edit jahitan",
"ui.details_fixture": "Spesimen komponen — hanya data contoh",
"ui.details_fixture_caption": "Spesimen komponen dengan nilai ilustratif; ini bukan hasil model.",
"ui.details_fixture_problem": "Contoh temuan dengan masalah",
"ui.details_fixture_readout": "Contoh nilai terukur",
"ui.details_flip": "Balik",
"ui.details_gap": "Celah",
"ui.details_hatch": "Arsir muka potongan",
"ui.details_jump": "Lompatan kelengkungan",
"ui.details_key": "Legenda",
"ui.details_offset": "Offset",
"ui.details_plane": "Bidang",
"ui.details_pull": "Arah tarik",
"ui.details_radius": "Radius",
"ui.details_readout": "Pembacaan",
"ui.details_samples": "Sampel",
"ui.details_seam": "{body} · Tepi {edge}",
"ui.details_settings": "Pengaturan",
"ui.details_sharp_gap": "Tajam atau celah",
"ui.details_show_all": "Tampilkan semua {count}",
"ui.details_smooth": "Halus",
"ui.details_stripes": "Lajur",
"ui.details_target": "Pas ke geometri",
"ui.details_worst_seams": "Jahitan terburuk",
"ui.details_zebra_caption": "Lajur terpantul menunjukkan seberapa mulus muka bertemu.",
"ui.diameter": "Diameter",
"ui.dimension": "Dimensi",
"ui.direct_interaction": "Interaksi langsung",
@@ -4115,6 +4530,7 @@
"ui.edit_in_place_saved_elsewhere": "Part disimpan ke file lain; rakitan masih menautkan {name}",
"ui.edit_in_place_wait": "Tunggu sampai proses yang berjalan di desain selesai",
"ui.edit_section_analysis": "Edit Analisis Penampang",
"ui.edit_sketch_empty": "Tidak ada sketsa untuk diedit",
"ui.ellipse": "Elips",
"ui.emboss_wrap_note": "Profil garis ortogonal yang tangen pada satu silinder yang didukung dibungkus otomatis. Pilih dinding untuk menentukan target.",
"ui.end_radius": "Radius Akhir",
@@ -4125,12 +4541,15 @@
"ui.equation_explicit": "Eksplisit",
"ui.equation_form": "Bentuk",
"ui.equation_note": "Variabelnya berupa angka biasa: sin(t) menganggapnya dalam radian. Hasil tanpa satuan memakai satuan desain.",
"ui.equation_note_range": "Variabelnya berupa panjang, seperti rentangnya: campurkan dengan parameter panjang, dan bagi dengan sebuah panjang untuk sin(). Hasil tanpa satuan memakai satuan desain.",
"ui.equation_parametric": "Parametrik",
"ui.equation_variable_unit": "Variabel memakai satuan rentang",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Radius Ekuivalen",
"ui.expand": "Perluas",
"ui.explode_needs_two_components": "Tampilan Urai menarik komponen terpisah, jadi desain memerlukan dua komponen atau lebih (Komponen Baru, Sisipkan Desain, atau Buat Komponen dari Bodi)",
"ui.exportDxf": "Ekspor DXF…",
"ui.export_ellipsis_keymap": "Ekspor…",
"ui.export_keymap_tip": "Tombol, favorit kotak S, dan toolbar, sebagai file",
@@ -4299,12 +4718,14 @@
"ui.joints": "Sambungan",
"ui.keyboard_shortcuts": "Pintasan Keyboard",
"ui.language": "Bahasa",
"ui.lasso_select": "Lasso (seret lengkung tertutup bebas: memilih yang seluruhnya berada di dalam)",
"ui.layout_compact": "Ringkas",
"ui.layout_floating": "Mengambang",
"ui.length": "Panjang",
"ui.length_decimals": "Desimal panjang",
"ui.light": "Terang",
"ui.line": "Garis",
"ui.line_arc_hint": "Busur tangen: klik ujung busur. Diamkan lagi di titik terakhir untuk garis; klik kanan atau Esc untuk selesai",
"ui.link_copies": "Tautkan Salinan Identik",
"ui.link_copies_keep": "Pertahankan",
"ui.link_copies_link": "Tautkan",
@@ -4393,6 +4814,7 @@
"ui.part_size_shared": "Membangun ulang part, menggantikan fitur tambahan apa pun. Semua kemunculan komponen ini diperbarui.",
"ui.paste": "Tempel",
"ui.path": "Jalur",
"ui.pattern_object_type_tip": "Bodi: bentuk solid, dipilih di tampilan atau Penjelajah; masing-masing disalin utuh.\nFitur: langkah-langkah Riwayat, seperti ekstrusi atau lubang, dipilih di Riwayat atau pada muka yang dibuatnya; langkah itu diulang.\nSketsa bukan keduanya: ulangi kurvanya dengan Pola atau Cermin milik sketsa itu sendiri, atau ekstrusi dulu.",
"ui.pattern_on_path": "Pola pada Jalur",
"ui.perforate_margin_default": "dari diameter",
"ui.perforate_pitch": "Pitch",
@@ -4419,12 +4841,17 @@
"ui.plugins_skipped": "{count} folder tidak dapat dibaca.",
"ui.plugins_version": "{version}",
"ui.point": "Titik",
"ui.point_cloud_add_filter": "Tambah filter…",
"ui.point_cloud_auto_range": "Rentang Otomatis",
"ui.point_cloud_color_by": "Warnai Menurut",
"ui.point_cloud_file_colors": "Warna File",
"ui.point_cloud_filter_by": "Filter menurut",
"ui.point_cloud_height_high": "Tertinggi",
"ui.point_cloud_height_low": "Terendah",
"ui.point_cloud_legend_filter": "Ditampilkan dan disembunyikan di legenda di atas",
"ui.point_cloud_no_file_colors": "File tidak memiliki warna",
"ui.point_cloud_pause": "Jeda",
"ui.point_cloud_play": "Putar",
"ui.point_cloud_single_color": "Satu Warna",
"ui.point_cloud_size": "Ukuran Titik",
"ui.point_cloud_units": "Satuan File",
@@ -4433,9 +4860,9 @@
"ui.polygon": "Poligon",
"ui.preferences": "Preferensi",
"ui.press_a_key": "tekan tombol…",
"ui.print_face_body_not_sent": "Bodi permukaan itu tidak dikirim: tambahkan dulu ke Bodi",
"ui.print_face_cleared": "{body}: permukaan cetak dihapus",
"ui.print_face_input": "Permukaan cetak",
"ui.print_face_one_body": "Permukaan cetak milik satu bodi: kirim bodi itu sendiri untuk mengubahnya",
"ui.print_face_pick": "Pilih satu permukaan datar dari bodi padat untuk dijadikan permukaan cetak",
"ui.print_face_set": "{body}: permukaan cetak diatur; Kirim ke slicer meletakkan bodi di atasnya",
"ui.profile": "Profil",
@@ -4453,6 +4880,7 @@
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Mengukur…",
"ui.properties.measuring_bodies": "Mengukur… {done} dari {total} bodi",
"ui.properties.measuring_failed": "Pengukuran berhenti sebelum selesai.",
"ui.properties.principal_axis": "Sumbu utama {number}",
"ui.properties.principal_moments": "Momen utama",
@@ -4520,6 +4948,7 @@
"ui.selectOther": "Pilih Lainnya…",
"ui.selectTangentChain": "Pilih Rantai Tangen",
"ui.select_all": "Pilih Semua",
"ui.select_components_by_face": "Pilih komponen (sebuah muka memilih komponennya)",
"ui.selection": "Pilihan",
"ui.selection_modifiers": "Pengubah pilihan",
"ui.selection_shift_add_only": "Shift+klik menambah tanpa menghapus",
@@ -4561,6 +4990,11 @@
"ui.sketch_intersect_selection_filter": "Filter Pilihan",
"ui.sketch_modifiers": "Pengubah sketsa",
"ui.sketch_project_geometry": "Geometri",
"ui.sketch_report.all_constrained": "Semuanya terbatasi penuh.",
"ui.sketch_report.dof": "Derajat kebebasan",
"ui.sketch_report.loose": "Belum terbatasi penuh",
"ui.sketch_report.status": "Status",
"ui.sketch_report.title": "Laporan Sketsa",
"ui.sketch_scale": "Skala Sketsa",
"ui.sketches": "Sketsa",
"ui.slice": "Iris",
@@ -4656,12 +5090,15 @@
"ui.view_angles": "Sudut tampilan",
"ui.view_angles_convention": "Derajat terhadap sumbu atas. Yaw 0° adalah tampilan Depan, 90° Kiri, −90° Kanan, 180° Belakang; pitch 90° adalah tampilan Atas; roll positif memutar model searah jarum jam.",
"ui.view_angles_help": "Menampilkan pitch, yaw, dan roll tampilan dalam derajat serta proyeksinya di bawah gizmo orientasi. Klik pembacaan untuk mengetik sudut yang tepat.",
"ui.view_angles_lock": "Kunci {axis}",
"ui.view_angles_ortho": "Ortho",
"ui.view_angles_persp": "Persp",
"ui.view_angles_pitch": "Pitch",
"ui.view_angles_readout": "Pitch {pitch} · Yaw {yaw} · Roll {roll}",
"ui.view_angles_roll": "Roll",
"ui.view_angles_unlock": "Buka kunci {axis}",
"ui.view_angles_yaw": "Yaw",
"ui.view_angles_zero": "Atur {axis} ke 0°",
"ui.view_centre": "Pusat tampilan",
"ui.viewport_status_clear": "Matikan {name}",
"ui.viewport_status_clear_hint": "Matikan {name} · Esc",
@@ -4670,7 +5107,14 @@
"ui.viewport_status_key": "Tampilkan legenda untuk {name}",
"ui.viewport_status_minimum_radius": "Radius minimum",
"ui.viewport_status_pairs": "{count} pasang",
"ui.viewport_status_section_hatch": "{setting} · arsir",
"ui.viewport_status_section_plane": "Bidang saat ini",
"ui.viewport_status_section_tilted": "miring · {offset}",
"ui.viewport_status_stripes": "{count} lajur",
"ui.viewport_status_summary_clear": "Matikan semuanya",
"ui.viewport_status_summary_heading": "Di tampilan ini",
"ui.viewport_status_summary_label": "{name} dan {count} item lainnya",
"ui.viewport_status_summary_more": "+{count}",
"ui.viewport_theme_follow": "Ikuti tema",
"ui.visual_shaded_hidden_edges": "Shaded dengan tepi tersembunyi",
"ui.visual_shaded_with_edges": "Shaded dengan tepi",
+444 -1
View File
@@ -60,6 +60,7 @@
"BLEND SURFACE": "SUPERFICIE DI RACCORDO",
"BOUNDARY SURFACE": "SUPERFICIE DA CONTORNI",
"BROWSER": "STRUTTURA",
"Back to the original order": "Torna all'ordine originale",
"Ball": "Sferico",
"Bar": "Barra",
"Base Center": "Centro della base",
@@ -595,6 +596,8 @@
"Snap to face and edge centres": "Aggancia ai centri di facce e spigoli",
"SolidCraft cannot submit reports directly. Submit on GitHub; no token is needed in the app.": "SolidCraft non può inviare direttamente le segnalazioni. Inviale su GitHub; nell'app non serve alcun token.",
"SolidCraft closed before these designs were saved. Their last autosave can be opened.": "SolidCraft si è chiuso prima del salvataggio di questi progetti. È possibile aprire il loro ultimo salvataggio automatico.",
"Sort A to Z": "Ordina dalla A alla Z",
"Sort Z to A": "Ordina dalla Z alla A",
"Spacing 2 must be a non-zero number": "La spaziatura 2 deve essere un numero diverso da zero",
"Spacing must be a non-zero number": "La spaziatura deve essere un numero diverso da zero",
"Specialise": "Specializza",
@@ -790,6 +793,13 @@
"browser.sketch_attachment_lost": "{name} (aggancio perso)",
"browser.sketch_editing": "{name} (in modifica)",
"browser.sketch_name": "Schizzo{number}",
"browser.sketches_to_parts_already_in_part": "già nella loro parte",
"browser.sketches_to_parts_design_body": "su un corpo del progetto stesso",
"browser.sketches_to_parts_moved": "Spostati {moved} schizzi nella parte su cui si trovano",
"browser.sketches_to_parts_no_exact_attachment": "su una faccia senza un collegamento esatto",
"browser.sketches_to_parts_not_on_face": "non sulla faccia di una parte",
"browser.sketches_to_parts_part_missing": "la loro parte non esiste più",
"browser.sketches_to_parts_result": "Spostati {moved} schizzi nella parte su cui si trovano; {stayed} sono rimasti dove erano: {why}",
"browser.units": "Unità: {units}",
"cam.flat": "Faccia piana",
"cam.follower": "Cedente",
@@ -819,6 +829,7 @@
"cmd.appearance_pick_up": "Preleva aspetto",
"cmd.appearance_replace": "Sostituisci aspetto",
"cmd.assembly_bom": "Distinta base",
"cmd.assembly_mass_properties": "Proprietà di massa",
"cmd.body.print_face": "Faccia di stampa",
"cmd.body_rename": "Rinomina corpo",
"cmd.browser_collapse_all": "Comprimi tutto",
@@ -856,6 +867,7 @@
"cmd.component_move_bodies": "Sposta corpi nel componente",
"cmd.component_move_features": "Sposta lavorazioni nel componente",
"cmd.component_move_sketches": "Sposta schizzi nel componente",
"cmd.component_move_sketches_to_parts": "Sposta schizzi nelle rispettive parti",
"cmd.component_paste_from_design": "Incolla da un altro progetto",
"cmd.component_paste_new": "Incolla come nuovo",
"cmd.component_properties": "Proprietà fisiche del componente",
@@ -1191,6 +1203,7 @@
"cmd.sketch_spline_control_point_5": "Spline per punti di controllo (grado 5)",
"cmd.sketch_spline_fit_point": "Spline interpolante",
"cmd.sketch_spline_insert_point": "Aggiungi punto alla spline",
"cmd.sketch_spline_remove_point": "Rimuovi punto dalla spline",
"cmd.sketch_spline_reverse": "Inverti direzione della spline",
"cmd.sketch_spun_profile": "Profilo di tornitura",
"cmd.sketch_toggle_diameter": "Alterna raggio / diametro",
@@ -1244,6 +1257,7 @@
"cmd.view.render_browser": "Struttura del rendering",
"cmd.view.render_dock": "Sposta pannello di rendering",
"cmd.view.render_focus": "Vista focalizzata sul rendering",
"cmd.view.status_details": "Dettagli di stato della vista",
"cmd.view.status_items": "Elementi di stato della vista",
"cmd.view_ambient_occlusion": "Occlusione ambientale",
"cmd.view_angle_readout": "Angoli della vista",
@@ -1282,8 +1296,14 @@
"color.hex_hint": "#rrggbb",
"color.hue": "Tonalità",
"color.linear": "Valori del colore mostrati nello spazio lineare 0-1",
"color.recent": "Colori recenti",
"color.recent_help": "I colori scelti in qualsiasi campo colore compaiono qui",
"color.saturation": "Saturazione (percentuale)",
"color.saturation_value": "Saturazione e valore",
"color.selected": "Colore selezionato",
"color.step_down": "Diminuisci di un passo",
"color.step_up": "Aumenta di un passo",
"color.value": "Valore, la luminosità (percentuale)",
"config.column_filter_empty": "Nessuna colonna corrispondente",
"contact.components_count": "{count} componenti",
"contact.enabled_label": "abilitato",
@@ -1330,6 +1350,7 @@
"dialog.dimension_name": "Quota: {name}",
"dialog.edit_title": "MODIFICA {title}",
"dialog.no_shown_body": "Nessun corpo visibile da modificare: mostrane uno o scegli Nuovo corpo",
"dialog.pattern_sketch_not_object": "Seleziona corpi o lavorazioni: uno schizzo non è nessuno dei due. Ripeti le sue curve con Ripetizione o Specchia dello schizzo stesso, oppure estrudilo prima.",
"dialog.select": "↖ Seleziona",
"dialog.selected_count": "↖ Selezionati: {count}",
"dialog.selection_guidance": "Seleziona un dato di ingresso per modificarlo. Fai clic sugli oggetti selezionati per rimuoverli; anche Ctrl/Cmd-clic ne alterna la selezione. Controlla l'anteprima, poi premi OK.",
@@ -1387,21 +1408,168 @@
"from the rule": "dalla regola",
"help.apache": "Licenza Apache 2.0",
"help.appearance.assign": "Dà ai corpi, alle facce o ai componenti selezionati un colore o un aspetto di materiale, senza cambiarne il peso. Usalo per distinguere le parti o per vedere in anteprima una finitura.",
"help.assembly.bom": "Elenca le parti del progetto o di un componente con le relative quantità, per numero di parte, e può salvare l'elenco come CSV o JSON. Usalo come distinta delle parti per ordini e montaggio.",
"help.attributions": "Attribuzioni (ATTRIBUTION.md)",
"help.build": "Versione {version} · commit {commit} · compilata il {date}",
"help.canvas.decal": "Applica un'immagine su una faccia piana del modello, come un adesivo. Usalo per mostrare un'etichetta, un logo o un motivo stampato su un pezzo.",
"help.canvas.edit": "Modifica un'immagine di riferimento: posizione, dimensione, angolo, opacità, specchiatura, visibilità o nome. Usalo per allineare l'immagine allo schizzo che ci ricalchi sopra.",
"help.canvas.insert": "Colloca un'immagine PNG o JPEG su un piano o una faccia come riferimento semitrasparente. Usalo per ricalcare una foto o un disegno in uno schizzo, con l'immagine scalata a una dimensione nota.",
"help.component.break_link": "Interrompe il collegamento di un componente con il suo file di progetto, mantenendone i corpi così come sono. Usalo quando la parte non deve più seguire le modifiche del file originale.",
"help.component.capture_position": "Acquisisce le posizioni delle parti spostate a mano, che diventano la loro nuova posizione. Usalo dopo aver trascinato in posizione parti che nessun giunto trattiene.",
"help.component.create": "Aggiunge al progetto un nuovo componente vuoto, dentro il componente attivo a meno che tu non scelga un altro padre. Usalo per dare a una nuova parte di un assieme il proprio spazio per corpi e schizzi.",
"help.component.finish_edit": "Salva la parte che stai modificando sul posto, torna al suo assieme e lo aggiorna con le modifiche. Usalo quando hai finito di modificare la parte collegata.",
"help.component.from_bodies": "Trasforma ogni corpo selezionato in un componente a sé, con il nome del corpo. Usalo quando un progetto costruito con corpi sciolti deve diventare un assieme le cui parti possono essere collegate con giunti e spostate.",
"help.component.insert_design": "Inserisce un altro progetto salvato come componente collegato al suo file, con i suoi corpi solidi posizionati come nel file originale. Usalo per riutilizzare una parte in un assieme e recepire le modifiche successive con Aggiorna collegamenti.",
"help.component.properties": "Mostra volume, massa, centro di massa e momenti d'inerzia di un componente, in base ai materiali dei suoi corpi. Usalo per controllare peso e bilanciamento di un assieme.",
"help.component.revert_position": "Riporta dove erano le parti spostate a mano, scartando gli spostamenti non acquisiti. Usalo per annullare gli spostamenti di prova in un assieme.",
"help.component.update_links": "Rilegge i file di progetto collegati e sostituisce i corpi che sono cambiati. Usalo dopo aver modificato una parte usata da questo assieme.",
"help.config.configure": "Aggiunge parametri, lavorazioni, materiali o aspetti come colonne della tabella delle configurazioni. Usalo per creare varianti di uno stesso progetto, ad esempio le misure di un pezzo.",
"help.config.preview": "Verifica che una riga della tabella delle configurazioni si ricostruisca, senza modificare il progetto né la sua cronologia. Usalo prima di passare a una variante di cui non sei sicuro.",
"help.config.rules": "Mostra le regole della tabella delle configurazioni, le sue righe e quale riga è attiva. Usalo per vedere come sono impostate le varianti di un progetto.",
"help.config.table": "Mostra la tabella delle configurazioni: una riga per variante, una colonna per parametro o lavorazione, e se il progetto corrisponde ancora alla riga attiva. Usalo per esaminare le varianti di un progetto.",
"help.connect_note": "Riavvia ogni assistente per caricare il server SolidCraft. Ogni file è stato salvato come .bak prima della modifica.",
"help.connect_title": "Collega assistenti AI",
"help.construct.axis.edge": "Crea un asse di costruzione lungo uno spigolo rettilineo o una linea dello schizzo. Usalo come asse per una rivoluzione, una serie circolare o un giunto.",
"help.construct.axis.normal_to_face": "Crea un asse di costruzione passante per un punto, perpendicolare a una faccia. Usalo come asse che esce dritto da una superficie.",
"help.construct.axis.through_cylinder": "Crea un asse di costruzione passante per il centro di una faccia cilindrica, conica o torica, o di uno spigolo circolare. Usalo per ruotare lavorazioni o ripeterle in serie attorno a un pezzo tondo.",
"help.construct.axis.two_planes": "Crea un asse di costruzione dove si incontrano due piani o facce piane. Usalo quando l'asse che ti serve è la linea tra due facce.",
"help.construct.axis.two_points": "Crea un asse di costruzione passante per due punti, vertici o punti dello schizzo. Usalo per un asse che collega due posizioni note.",
"help.construct.plane.along_path": "Crea un piano di costruzione perpendicolare a uno spigolo o a una curva, in una posizione lungo di essa. Usalo per disegnare il profilo di uno sweep o una sezione di un percorso.",
"help.construct.plane.at_angle": "Crea un piano di costruzione ruotato di un angolo rispetto a un piano o a una faccia, attorno a un asse o a uno spigolo. Usalo per schizzi inclinati, ad esempio una staffa angolata.",
"help.construct.plane.midplane": "Crea un piano di costruzione a metà tra due piani o facce piane, oppure che li biseca dove si incontrano ad angolo. Usalo come piano di simmetria per specchiare.",
"help.construct.plane.offset": "Crea un piano di costruzione parallelo a un piano o a una faccia piana, a una certa distanza o passante per un punto. Usalo per disegnare a un'altezza stabilita sopra una faccia.",
"help.construct.plane.perpendicular": "Crea un piano di costruzione che contiene una linea o uno spigolo ed è perpendicolare a un piano o a una faccia. Usalo per disegnare in verticale sul modello lungo uno spigolo.",
"help.construct.plane.tangent": "Crea un piano di costruzione tangente a un cilindro, un cono, una sfera o un toro in un punto. Usalo per disegnare sul lato di un pezzo tondo.",
"help.construct.plane.three_points": "Crea un piano di costruzione passante per tre punti. Usalo per un piano definito da posizioni sul modello, ad esempio tre angoli.",
"help.construct.plane.two_edges": "Crea un piano di costruzione passante per due spigoli rettilinei o linee che giacciono sullo stesso piano. Usalo per un piano che attraversa un pezzo, ad esempio per due spigoli opposti.",
"help.construct.point.along_path": "Crea un punto di costruzione in una posizione lungo uno spigolo o una curva. Usalo come riferimento in un punto intermedio di un percorso.",
"help.construct.point.center": "Crea un punto di costruzione al centro di uno spigolo circolare, di un cerchio o arco dello schizzo, di una sfera o di un toro. Usalo come riferimento per fori, assi e giunti.",
"help.construct.point.edge_plane": "Crea un punto di costruzione dove uno spigolo o una linea attraversa un piano o una faccia piana. Usalo per segnare dove un percorso incrocia un piano.",
"help.construct.point.three_planes": "Crea un punto di costruzione dove si incontrano tre piani o facce piane. Usalo come riferimento d'angolo, anche dove il modello non ha un vertice.",
"help.construct.point.two_edges": "Crea un punto di costruzione dove due spigoli o linee si incontrano, o si avvicinano di più. Usalo come riferimento in un angolo virtuale.",
"help.construct.point.vertex": "Crea un punto di costruzione su un vertice o su un punto dello schizzo. Usalo come riferimento che resta anche quando lo schizzo o il corpo intorno è nascosto.",
"help.contact.check": "Elenca le coppie di parti nei gruppi di contatto che si compenetrano nella posizione attuale. Usalo per trovare le collisioni prima di azionare i giunti o avviare uno studio del movimento.",
"help.contact.create": "Raggruppa due o più parti in un gruppo di contatto, i cui corpi non possono compenetrarsi mentre i giunti si muovono. Usalo per parti che devono fermarsi quando si toccano, come una leva contro il suo fermo.",
"help.contact.disable_all": "Disattiva il contatto, così i giunti azionati e gli studi del movimento non si fermano più dove le parti si toccano. Usalo per muovere di nuovo le parti liberamente, o per mantenere reattivo un assieme grande.",
"help.contact.edit": "Modifica un gruppo di contatto: le parti che contiene, il nome o se è sospeso; può anche eliminare il gruppo. Usalo per regolare quali parti non possono compenetrarsi.",
"help.contact.enable_all": "Mette ogni parte dell'assieme in un unico gruppo di contatto, così nessuna coppia di parti può compenetrarsi mentre i giunti si muovono. Usalo per un controllo rapido di un intero meccanismo.",
"help.contact.enable_sets": "Attiva il contatto per i gruppi di contatto che hai definito, così i giunti azionati e gli studi del movimento si fermano dove le loro parti si compenetrerebbero. Usalo per riattivare i tuoi gruppi dopo aver disattivato il contatto.",
"help.contact.list": "Elenca i gruppi di contatto del progetto, le parti di ciascuno e se il contatto è attivo. Usalo per controllare come è impostato il contatto prima di azionare l'assieme.",
"help.document.inspect": "Mostra una panoramica del progetto: componenti, corpi, schizzi, lavorazioni e parametri. Usalo per orientarti in un progetto che non hai realizzato tu.",
"help.document.units": "Cambia le unità in cui il progetto mostra le lunghezze, come mm o pollici. La geometria mantiene le sue dimensioni; si adattano solo la visualizzazione e i numeri semplici.",
"help.edit.checkpoint": "Memorizza il progetto, lo schizzo attivo e la cronologia di annullamento così come sono ora. Usalo prima di tentare qualcosa di rischioso da cui potresti voler tornare indietro.",
"help.edit.restore_checkpoint": "Torna a un punto di ripristino, compresa la cronologia di annullamento. Usalo per scartare in un solo passo tutto ciò che è stato fatto dopo il punto di ripristino.",
"help.explode.create": "Crea una vista esplosa che allontana le parti dal centro dell'assieme, oppure con gli spostamenti che imposti. Usalo per mostrare come si monta un assieme, per istruzioni o presentazioni.",
"help.face.delete": "Rimuove le facce selezionate e lascia che le facce vicine chiudano il vuoto, oppure lascia il vuoto aperto come superficie. Usalo per togliere uno spigolo arrotondato, un foro o una sporgenza che è d'intralcio.",
"help.file.insert_mesh": "Aggiunge al progetto un file 3MF, STL, OBJ, PLY o glTF come corpi a mesh in un nuovo componente. Usalo per affiancare al progetto, come riferimento, un modello scaricato o scansionato.",
"help.file.insert_step": "Aggiunge al progetto un file STEP, IGES, FreeCAD o Rhino come corpi solidi in un nuovo componente; le parti di un assieme diventano componenti annidati. Usalo per importare modelli di fornitori o di altri programmi CAD.",
"help.file.save_mesh": "Salva i corpi come mesh STL, 3MF o OBJ, con la finezza che scegli per le facce curve. Usalo per preparare pezzi per la stampa 3D o per programmi che leggono mesh.",
"help.file.send_to_slicer": "Salva i corpi selezionati come file 3MF e lo apre nello slicer che scegli. Usalo per passare dal modello alla stampa in un solo passo.",
"help.font_details": "L’interfaccia usa i caratteri integrati di egui (Ubuntu Light e Hack, con licenze Ubuntu Font Licence e MIT/Bitstream Vera; Noto Emoji e il carattere per icone emoji, con licenze OFL e MIT). Il testo degli schizzi usa Liberation Sans (SIL OFL 1.1). Il pacchetto di caratteri facoltativo di The Crafting Apps, craft-fonts (BIZ UDPGothic, Shippori Mincho, BIZ UDMincho, Noto Sans CJK SC, Noto Sans Arabic; SIL OFL 1.1), non è incluso nelle build di SolidCraft.",
"help.fonts": "Caratteri",
"help.frame.member": "Posiziona un profilo, come un tubo o un profilato di alluminio, lungo le linee di uno schizzo del telaio, un membro per linea. Usalo per costruire telai, scaffalature e strutture saldate.",
"help.inspect.accessibility": "Colora le facce che un utensile può raggiungere da una direzione e quelle che non può raggiungere. Usalo per verificare un pezzo per la lavorazione meccanica o lo stampaggio da quel lato.",
"help.inspect.center_of_mass": "Mostra il centro di massa dei corpi, ciascuno da solo e tutti insieme, a densità uniforme. Usalo per controllare il bilanciamento e dove un pezzo si ribalterà.",
"help.inspect.colored_components": "Dà a ogni componente un proprio colore temporaneo, senza modificare gli aspetti. Usalo per distinguere a colpo d'occhio le parti di un assieme.",
"help.inspect.compare": "Confronta due corpi e mostra dove uno ha materiale che l'altro non ha, con volume e scostamento. Usalo per verificare un pezzo modificato o importato rispetto all'originale.",
"help.inspect.continuity": "Verifica come si raccordano le facce lungo i loro spigoli: giochi, spigoli vivi o salti di curvatura, e colora le giunzioni. Usalo per trovare dove le superfici non si raccordano bene.",
"help.inspect.curvature_comb": "Disegna pettini lungo curve, spigoli o facce i cui denti mostrano quanto si curvano. Usalo per individuare zone piatte, spigoli vivi e curvatura irregolare.",
"help.inspect.curvature_map": "Colora le facce in base a quanto si curvano, in rosso dove il raggio è piccolo. Usalo per trovare i punti stretti e valutare quanto è liscia una superficie.",
"help.inspect.draft": "Colora le facce in base all'angolo di sformo rispetto a una direzione di estrazione, segnalando quelle con sformo insufficiente. Usalo per controllare un pezzo prima dello stampaggio o della fusione.",
"help.inspect.environment_map": "Mostra il modello con una finitura riflettente, simile a uno specchio. Usalo per valutare l'andamento delle superfici dal modo in cui scorrono i riflessi.",
"help.inspect.interference": "Trova i corpi che si sovrappongono e mostra ogni sovrapposizione con il suo volume. Usalo per controllare se in un assieme ci sono parti che si scontrano.",
"help.inspect.isocurve": "Disegna le curve isoparametriche delle facce, la griglia su cui è costruita la superficie. Usalo per vedere come scorre una superficie e dove si addensa.",
"help.inspect.measure": "Misura lunghezze, distanze, angoli, aree e raggi tra gli elementi che selezioni, oppure il volume e la massa dei corpi. Usalo per controllare dimensioni e distanze libere.",
"help.inspect.minimum_radius": "Trova il raggio di curvatura minimo di curve, spigoli o facce e dove si trova. Usalo per verificare che un utensile o un ugello possa seguire la forma.",
"help.inspect.section": "Apre la vista con un taglio lungo un piano e tratteggia le facce tagliate, senza modificare il modello. Usalo per guardare dentro pezzi e assiemi.",
"help.inspect.zebra": "Mostra strisce bianche e nere riflesse sulle facce del modello. Usalo per valutare la levigatezza: strisce che si spezzano o si piegano su uno spigolo indicano una transizione scadente.",
"help.joint.as_built": "Collega due parti dove si trovano già, senza spostarne nessuna, e imposta come possono ancora muoversi. Usalo per parti che hai già posizionato nella loro posizione finale.",
"help.joint.cam": "Collega una camma rotante a un seguicamma, che scorre o oscilla mentre il profilo della camma gli passa sotto. Usalo per camme, eccentrici e comandi delle valvole.",
"help.joint.create": "Collega due parti alle origini del giunto che selezioni e sposta la seconda parte al suo posto; il tipo di giunto stabilisce come possono ancora muoversi. Usalo per costruire un assieme le cui parti si muovono come il meccanismo reale.",
"help.joint.drive": "Imposta l'angolo o la distanza di un giunto e sposta di conseguenza le parti, entro i suoi limiti; i giunti collegati e le catene cinematiche chiuse seguono il movimento. Usalo per verificare che un meccanismo si muova come previsto.",
"help.joint.gear": "Collega due giunti rotanti con un rapporto di trasmissione, così azionarne uno fa ruotare l'altro. Usalo per ingranaggi cilindrici e dentature interne, con il rapporto ricavato dai raggi primitivi o dal numero di denti.",
"help.joint.limits": "Imposta fin dove un giunto può ruotare o scorrere, con un minimo e un massimo, oppure rimuove questi limiti. Usalo per mantenere una cerniera, un cursore o una leva entro la sua reale corsa.",
"help.joint.motion_link": "Accoppia due giunti con un rapporto e uno scostamento, così azionarne uno muove l'altro. Usalo per una relazione fissa tra giunti che Ingranaggio, Pignone e cremagliera o Vite non coprono.",
"help.joint.origin": "Colloca un'origine del giunto con nome su una parte: al centro di una faccia o di un'estremità tonda, a metà di uno spigolo, su un angolo o su un punto. Usalo per preparare i punti in cui si attaccano i giunti; un'origine scelta su una faccia segue la faccia quando la parte cambia dimensione.",
"help.joint.rack_pinion": "Collega un pignone rotante a una cremagliera scorrevole, così la cremagliera si sposta della lunghezza di circonferenza primitiva percorsa dal pignone. Usalo per trasmissioni a cremagliera, sterzi e slitte lineari.",
"help.joint.reach": "Sposta un punto di una parte verso una destinazione modificando i giunti della sua catena, entro i loro limiti. Usalo per posizionare un meccanismo in base a dove deve arrivare la sua estremità, come la punta di un braccio robotico.",
"help.joint.rigid_group": "Blocca insieme le parti selezionate così come sono, in modo che si muovano come un tutt'uno. Usalo per parti che stanno insieme e non hanno moto relativo.",
"help.joint.screw": "Collega rotazione e scorrimento tramite un passo, così ogni giro avanza di quella distanza. Usalo per viti madri, bulloni e alberi filettati.",
"help.library.apply": "Applica un materiale o un aspetto da un file di libreria locale a corpi, facce o componenti. Usalo per riutilizzare materiali salvati da un altro progetto.",
"help.library.export": "Salva i materiali e gli aspetti del progetto in un file di libreria. Usalo per condividerli o riutilizzarli in altri progetti.",
"help.library.inspect": "Controlla un file di libreria ed elenca i suoi materiali e aspetti, senza modificare il progetto. Usalo per vedere cosa contiene una libreria prima di applicarla.",
"help.licences": "Licenze",
"help.material.assign": "Imposta di che cosa sono fatti i corpi selezionati, per esempio acciaio, alluminio o ABS. Usalo perché massa e peso corrispondano al pezzo reale.",
"help.material.properties.validate": "Controlla la coerenza dei numeri e i valori mancanti in una scheda dati di un materiale. Usalo prima di affidarti ai dati per massa o rigidità.",
"help.mesh.convert": "Ricostruisce un corpo a mesh, come un STL, come solido modificabile con facce piane e cilindriche. Usalo per modificare parti meccaniche importate come un corpo modellato.",
"help.mit": "Licenza MIT",
"help.motion.study": "Imposta i valori dei giunti a intervalli lungo una sequenza temporale e li riproduce come animazione. Usalo per osservare un meccanismo muoversi in una sequenza e controllare le distanze libere lungo il percorso.",
"help.motion.trace": "Traccia il percorso seguito da un punto di una parte mentre uno studio del movimento viene riprodotto o un giunto viene azionato, e lo conserva come curva di schizzo 3D quando confermi. Usalo per vedere dove arriva un meccanismo, o per costruire a partire dal suo percorso.",
"help.notice": "NOTICE",
"help.occurrence.ground": "Fissa una parte al suo posto, o la libera di nuovo, in modo che i giunti muovano le altre parti attorno a essa. Usalo per il telaio o la base su cui è costruito il resto dell'assieme.",
"help.occurrence.move": "Sposta una parte dell'assieme solo lungo i gradi di libertà consentiti dai suoi giunti. Seleziona una faccia della parte, poi trascina una freccia o un arco disponibile.",
"help.parameters.change": "Apre la tabella dei valori con nome e delle espressioni che guidano le quote della progettazione. Usala per cambiare una misura in un solo punto e far seguire tutte le lavorazioni che la usano.",
"help.parameters.export": "Salva i parametri del progetto come CSV o JSON. Usalo per modificarli in un foglio di calcolo o spostarli in un altro progetto.",
"help.parameters.graph": "Mostra quali parametri e lavorazioni ne usano altri, ed eventuali cicli o errori tra di loro. Usalo per vedere cosa influenzerà la modifica di un parametro.",
"help.parameters.import": "Legge i parametri da CSV o JSON nel progetto, tutti o nessuno. Usalo per importare valori da un foglio di calcolo o da un altro progetto.",
"help.parameters.move": "Sposta un parametro utente prima o dopo un altro nell'elenco. Usalo per tenere insieme i parametri correlati.",
"help.parts.fastener": "Aggiunge una vite, un bullone, un dado, una rondella, un perno o un cuscinetto standard della misura che scegli. Posizionato su un foro, si assesta nel foro con un giunto, così non devi modellare da solo gli elementi di fissaggio.",
"help.parts.insert": "Inserisce una parte standard della famiglia, misura e lunghezza che scegli. Posizionata sul bordo o sulla parete di un foro, si assesta sul foro con un giunto rigido.",
"help.parts.library": "Apre le parti standard: viti, bulloni, dadi, rondelle, grani, spine cilindriche e cuscinetti nelle misure standard. Usalo per aggiungere una parte standard invece di modellarla da solo.",
"help.parts.resize": "Cambia la misura o la lunghezza di una parte standard inserita e la ricostruisce; i suoi giunti la mantengono in sede. Usalo quando una vite risulta troppo lunga o un foro richiede un'altra misura.",
"help.plastic.assign_rule": "Assegna una regola per plastica ai corpi, così le loro lavorazioni in plastica ne usano come valori predefiniti lo sformo e il gioco. Usalo per impostare una sola volta un pezzo stampato per tutte le sue lavorazioni.",
"help.plastic.boss": "Aggiunge un risalto per vite su una faccia: un montante con foro, sformo, raccordo di base e nervature di sostegno facoltativi. Usalo per i punti di avvitamento in involucri stampati o stampati in 3D.",
"help.plastic.lip": "Aggiunge un labbro o una scanalatura corrispondente lungo il bordo di un corpo svuotato. Usalo perché due metà di un involucro si centrino tra loro e chiudano bene.",
"help.plastic.manage_rules": "Crea e modifica le regole per plastica: materiale, spessore della parete, raggi, gioco e sformo. Usale per mantenere coerenti le lavorazioni di un pezzo stampato.",
"help.plastic.rest": "Aggiunge un appoggio su una faccia: un tampone tondo o rettangolare, pieno o cavo, con sformo. Usalo come supporto o distanziale in un involucro stampato.",
"help.plastic.snap_fit": "Aggiunge un gancio a scatto su una faccia, con lunghezza, spessore e dente di aggancio. Usalo per fissare a scatto le parti senza viti.",
"help.pointcloud.insert": "Inserisci una scansione PLY, XYZ o PTS come nuvola di punti accanto al modello. Usala come riferimento quando costruisci un modello a partire da dati misurati.",
"help.sheet.convert": "Trasforma una piastra o un corpo svuotato di spessore uniforme in un corpo in lamiera, con pieghe sugli spigoli che scegli. Usalo per rendere sviluppabile un pezzo esistente.",
"help.sheet.export_bend_table": "Salva la tabella delle pieghe di un corpo in lamiera come CSV o JSON: angoli, raggi e posizioni delle pieghe nello sviluppo piano. Usalo per la pressopiegatrice o per l'officina.",
"help.sheet.export_dxf": "Salva lo sviluppo piano come DXF, con contorni, linee di piega e note di piega facoltative. Usalo per il taglio laser, al plasma o a getto d'acqua.",
"help.sheet.flange": "Aggiunge una flangia: una piastra di base da uno schizzo, una parete lungo un contorno aperto dello schizzo o una parete piegata sugli spigoli della lamiera. Usalo per costruire pezzi in lamiera.",
"help.sheet.flat_pattern": "Crea lo sviluppo piano di un corpo in lamiera, con dimensioni, tagli e linee di piega. Usalo per controllare il grezzo prima di tagliarlo.",
"help.sheet.fold": "Piega una lamiera lungo una linea dello schizzo con un angolo e un raggio. Usalo per piegare una lamiera piana dopo avervi praticato i tagli.",
"help.sheet.hem": "Ripiega su se stesso il bordo di una lamiera. Usalo per bordi sicuri e rigidi, senza bave taglienti.",
"help.sheet.manage_rules": "Crea e modifica le regole per lamiera: spessore, raggio di piega, fattore K, scarichi e giochi. Usale per adattarle al materiale e agli utensili della tua officina.",
"help.sheet.path_flange": "Aggiunge una catena di flange lungo uno spigolo della lamiera, seguendo una catena aperta di linee dello schizzo. Usalo per profili a U o a Z in un solo passo.",
"help.sheet.perforate": "Aggiunge un campo di fori su tutta la lamiera piana, con disposizione sfalsata o quadrata. Usalo per prese d'aria, griglie e pannelli più leggeri.",
"help.sheet.refold": "Ripiega un corpo in lamiera sviluppato. Usalo dopo aver aggiunto lavorazioni alla lamiera piana.",
"help.sheet.unfold": "Spiega tutte le pieghe di un corpo in lamiera. Usalo per aggiungere fori o tagli che devono attraversare una piega, poi ripiega.",
"help.sketch.arc.center_point": "Disegna un arco di cerchio attorno a un punto centrale, da un punto iniziale a un punto finale. Usalo quando il centro dell'arco è noto, ad esempio un raggio attorno a un foro o a un perno.",
"help.sketch.arc.tangent": "Disegna un arco che parte dall'estremità di una linea o di un arco e prosegue tangente a essa. Usalo per continuare una catena con una curva dolce invece di un angolo vivo.",
"help.sketch.arc.three_point": "Disegna un arco da un punto iniziale a un punto finale passando per un terzo punto. Usalo quando l'arco deve passare per punti dati invece che attorno a un centro noto.",
"help.sketch.arc3d": "Disegna un arco di cerchio esatto nello spazio passante per tre punti, con Schizzo 3D attivo. Usalo per le curve di percorsi e guide che escono dal piano dello schizzo.",
"help.sketch.auto_constrain": "Aggiunge i vincoli che lo schizzo ha già quasi, come orizzontale, parallelo o coincidente, poi lo quota finché non è completamente definito. Usalo per bloccare in un solo passo uno schizzo disegnato a mano libera.",
"help.sketch.auto_constrain_from_datum": "Funziona come Vincola automaticamente, ma misura le posizioni da un punto di riferimento scelto invece che dall'origine. Usalo quando il pezzo è impostato a partire da un unico punto di riferimento, come un angolo o un foro.",
"help.sketch.blend_curve": "Unisce le estremità di due curve con una spline dolce tangente a entrambe, o anche continua in curvatura se lo scegli. Usalo per colmare un vuoto tra curve senza angoli vivi.",
"help.sketch.break": "Divide una curva in parti dove la attraversano altre curve, oppure nei punti che vi collochi. Usalo quando una parte di una curva ha bisogno di un proprio vincolo o deve essere eliminata da sola.",
"help.sketch.cancel": "Esce dallo schizzo e scarta tutto ciò che è stato modificato da quando è stato creato o aperto per la modifica. Le modifiche si recuperano con Annulla.",
"help.sketch.centerline": "Alterna le linee tra linee normali e linee d'asse, assi che i profili non includono. Usa una linea d'asse come asse per una rivoluzione, una specchiatura o un vincolo di simmetria.",
"help.sketch.chamfer.distance_angle": "Smussa l'angolo tra due linee, definito da una distanza lungo la prima linea e da un angolo. Usalo quando un disegno indica lo smusso come lunghezza e angolo, ad esempio 2 mm × 30°.",
"help.sketch.chamfer.equal_distance": "Smussa l'angolo tra due linee alla stessa distanza lungo entrambe. Usalo per il normale smusso a 45° su un contorno.",
"help.sketch.chamfer.two_distance": "Smussa l'angolo tra due linee, definito da una distanza separata lungo ciascuna linea. Usalo per smussi diversi da 45°, indicati con due lunghezze.",
"help.sketch.circle.center": "Disegna un cerchio a partire dal centro e dal diametro. Usalo per fori, risalti e altre lavorazioni tonde il cui centro è noto.",
"help.sketch.circle.three_point": "Disegna un cerchio passante per tre punti. Usalo quando il cerchio deve passare per punti dati, ad esempio di una geometria esistente.",
"help.sketch.circle.three_tangent": "Disegna un cerchio tangente a tre linee, cerchi o archi. Usalo per inserire un cerchio nello spazio tra tre curve, come il cerchio inscritto di un triangolo.",
"help.sketch.circle.two_point": "Disegna un cerchio a partire dai due estremi del suo diametro. Usalo quando sono noti i punti del bordo del cerchio invece del centro.",
"help.sketch.circle.two_tangent": "Disegna un cerchio di dimensione data tangente a due linee, cerchi o archi. Usalo per un arrotondamento a raggio fisso tra due curve.",
"help.sketch.conic": "Disegna una curva conica tra due punti finali, definita da un punto di vertice e da un valore rho. Usalo per transizioni dolci di cui vuoi regolare la pienezza, da piatta a quasi un angolo vivo.",
"help.sketch.constrainer": "Applica il vincolo che una o due curve selezionate hanno già quasi, come orizzontale, parallelo, tangente o uguale. Usalo per mettere in ordine uno schizzo disegnato a mano, un vincolo alla volta.",
"help.sketch.constraint.coincident": "Fa giacere un punto su un altro punto, una curva o un asse dello schizzo. Usalo per chiudere i vuoti in un profilo o per mettere un punto su una linea.",
"help.sketch.constraint.collinear": "Fa giacere due linee sulla stessa retta. Usalo per allineare bordi interrotti, come i due lati di un intaglio.",
"help.sketch.constraint.concentric": "Dà lo stesso centro a due cerchi o archi. Usalo per anelli, lamature e alberi con spallamenti.",
"help.sketch.constraint.curvature": "Fa proseguire con la stessa curvatura (G2) due curve che si incontrano in un punto finale. Usalo dove un raccordo tangente non è abbastanza dolce, ad esempio sulle superfici in vista.",
"help.sketch.constraint.equal": "Rende uguali in lunghezza le linee, o uguali in raggio cerchi e archi. Usalo perché una sola quota governi più elementi corrispondenti.",
"help.sketch.constraint.fix": "Fissa punti o curve dove si trovano, oppure li libera di nuovo. Usalo per la geometria che non deve muoversi quando trascini o risolvi lo schizzo.",
"help.sketch.constraint.horizontal_vertical": "Rende orizzontale o verticale, a seconda di quale è più vicino, una linea o la linea tra due punti. Usalo per squadrare un contorno rispetto agli assi dello schizzo.",
"help.sketch.constraint.midpoint": "Mette un punto a metà di una linea, oppure fa coincidere i punti medi di due linee. Usalo per centrare la geometria su un bordo.",
"help.sketch.constraint.parallel": "Rende parallele due linee. Usalo per i lati che devono restare paralleli quando cambiano altre quote.",
"help.sketch.constraint.perpendicular": "Fa incontrare due linee ad angolo retto. Usalo per angoli retti tra linee che non sono sugli assi dello schizzo.",
"help.sketch.constraint.polygon": "Rende poligono regolare una catena chiusa di linee: lati uguali, con ogni vertice su un unico cerchio. Usalo per rendere regolare un poligono disegnato a mano e mantenerlo tale.",
"help.sketch.constraint.symmetry": "Rende due punti o curve speculari tra loro rispetto a una linea o a un punto. Usalo per mantenere simmetrico un profilo quando modifichi un lato.",
"help.sketch.constraint.tangent": "Fa toccare tangenzialmente due curve, come una linea e un arco. Usalo per raccordi dolci senza angoli vivi.",
"help.sketch.construction": "Alterna le curve tra geometria normale e geometria di costruzione, che i profili non includono. Usa le curve di costruzione come ausilio per l'impostazione, i riferimenti e le quote.",
"help.sketch.construction_line": "Crea una retta di costruzione infinita passante per due punti. Usala per impostare uno schizzo senza dividere i profili.",
"help.sketch.construction_line.angle": "Crea una retta di costruzione infinita con un angolo rispetto all'asse X dello schizzo. Seleziona il punto e digita l'angolo, oppure scegli la direzione.",
"help.sketch.construction_line.bisector": "Seleziona due linee rette dello schizzo che si intersecano, poi scegli una delle due bisettrici. Il risultato segue le linee di origine.",
@@ -1412,11 +1580,71 @@
"help.sketch.construction_line.tangent_external": "Seleziona un cerchio o un arco di cerchio, poi un punto esterno e una soluzione di tangente. Le anteprime mostrano solo i contatti sull'arco disegnato.",
"help.sketch.construction_line.tangent_two": "Seleziona due cerchi o archi di cerchio, poi scegli una tangente comune nell'anteprima. I contatti devono trovarsi sulle curve disegnate.",
"help.sketch.construction_line.vertical": "Crea una retta di costruzione verticale infinita passante per un punto. Il suo vincolo verticale resta valido anche nelle modifiche successive.",
"help.sketch.copy": "Copia le curve e i punti dello schizzo selezionati, insieme ai vincoli e alle quote tra di essi. Incollali in questo schizzo o in un altro.",
"help.sketch.create": "Avvia un nuovo schizzo 2D su un piano o su una faccia piana del modello. Ogni estrusione, rivoluzione e sweep inizia con uno schizzo.",
"help.sketch.cut": "Copia la geometria dello schizzo selezionata e la elimina dallo schizzo, in un solo passo di annullamento. Incollala altrove in questo schizzo o in un altro.",
"help.sketch.dimension": "Aggiunge una quota di controllo: una lunghezza, una distanza, un angolo, un raggio o un diametro, a seconda di ciò che selezioni. Digita un valore o il nome di un parametro e lo schizzo lo segue.",
"help.sketch.edit": "Apre uno schizzo esistente per la modifica. Le lavorazioni costruite su di esso si aggiornano quando termini lo schizzo.",
"help.sketch.ellipse": "Disegna un'ellisse a partire dal centro, dall'estremità del suo asse maggiore e da un punto sul lato minore. Usalo per aperture ovali, camme e altre forme tonde allungate.",
"help.sketch.equation_curve": "Disegna una curva da formule: x(t) e y(t), oppure y = f(x), su un intervallo. Le formule possono usare parametri e la curva li segue: usala per un'onda sinusoidale, una spirale o l'evolvente del dente di un ingranaggio.",
"help.sketch.extend": "Allunga una linea o un arco fino alla curva più vicina sul suo percorso, oppure estende due curve finché non si incontrano. Usalo per chiudere i vuoti in un profilo dopo un ritaglio o una modifica.",
"help.sketch.fillet": "Arrotonda con un arco di raggio dato l'angolo in cui si incontrano due linee o archi. Più angoli arrotondati insieme condividono lo stesso raggio.",
"help.sketch.finish": "Esce dallo schizzo e torna al modello. I suoi profili chiusi sono poi pronti per Estrusione, Rivoluzione e altre lavorazioni.",
"help.sketch.finish_auto_constrain": "Esegue Vincola automaticamente sullo schizzo, poi lo termina. Usalo per lasciare uno schizzo completamente definito in un solo passo.",
"help.sketch.fit_curves_to_section": "Taglia un corpo a mesh o solido con il piano dello schizzo e adatta linee e archi alla sezione. Usalo per ricostruire come schizzo modificabile un pezzo scansionato o importato.",
"help.sketch.include_3d": "Porta in questo schizzo spigoli e vertici del modello e curve di altri schizzi come riferimenti collegati, appiattendo su di esso quelli fuori dal suo piano. Usalo per costruire su una geometria che non giace sul piano dello schizzo.",
"help.sketch.infinite": "Alterna le linee tra linee normali e rette di costruzione infinite che attraversano tutta la vista. Usale come riferimenti di impostazione che non finiscono mai troppo presto.",
"help.sketch.insert_dxf": "Legge le curve di un disegno DXF in uno schizzo, scalate, ruotate e posizionate come imposti. Usalo per costruire a partire da un disegno 2D di un altro programma, come un contorno da tagliare al laser.",
"help.sketch.insert_svg": "Legge i tracciati di un disegno SVG in uno schizzo, scalati, ruotati e posizionati come imposti. Usalo per trasformare un logo o un contorno vettoriale in curve che puoi estrudere.",
"help.sketch.inspect": "Apre un rapporto sullo schizzo aperto: quanti gradi di libertà restano e se è completamente vincolato. Usalo per scoprire cosa si muove ancora prima di terminare lo schizzo.",
"help.sketch.intersect": "Aggiunge le curve o i punti in cui corpi, facce, spigoli o altri schizzi attraversano il piano dello schizzo. Restano collegati e seguono il modello quando cambia.",
"help.sketch.intersection_curve": "Crea curve 3D dove si incontrano due corpi o facce, collegate a essi. Usale come percorsi o guide che seguono il modello.",
"help.sketch.isoparametric_curve": "Crea una curva 3D lungo la direzione U o V di una faccia passante per un punto che scegli, collegata alla faccia. Usala come percorso o linea di divisione che segue la superficie.",
"help.sketch.line": "Disegna linee collegate punto per punto, come catena aperta o contorno chiuso. È lo strumento di base per la maggior parte dei profili.",
"help.sketch.line.midpoint": "Disegna una linea dal suo punto medio fino a un'estremità, con l'altra estremità speculare. Usalo per linee centrate su un punto, come un bordo simmetrico.",
"help.sketch.line3d": "Disegna linee rette collegate tra punti nello spazio, con Schizzo 3D attivo. Usalo per percorsi e telai che escono dal piano dello schizzo.",
"help.sketch.mirror": "Specchia curve e punti dello schizzo rispetto a una linea o a un asse e aggiunge vincoli di simmetria. Usalo per disegnare metà di un profilo simmetrico e completarlo.",
"help.sketch.move": "Sposta o ruota curve e punti dello schizzo, oppure una loro copia. Usalo per riposizionare la geometria mantenendone forma e vincoli.",
"help.sketch.offset": "Crea una copia di una catena di curve a una distanza stabilita, su un lato o su entrambi. Usalo per pareti, contorni e giochi; la distanza resta una quota modificabile.",
"help.sketch.paste": "Incolla nello schizzo attivo la geometria dello schizzo che hai copiato o tagliato. Posizionala in un punto o spostala di uno scostamento.",
"help.sketch.pattern.circular": "Copia la geometria dello schizzo attorno a un punto centrale, su un cerchio completo o su un angolo stabilito. Usalo per cerchi di bulloni, raggi e denti.",
"help.sketch.pattern.rectangular": "Copia la geometria dello schizzo in righe e colonne con spaziature stabilite. Usalo per griglie di fori, asole o prese d'aria.",
"help.sketch.point": "Colloca un punto dello schizzo. Usalo come riferimento per quote, vincoli, centri di fori o lavorazioni successive.",
"help.sketch.point3d": "Colloca un punto nello spazio, con Schizzo 3D attivo. Usalo come riferimento per curve e percorsi 3D.",
"help.sketch.polygon.circumscribed": "Disegna un poligono regolare attorno a un cerchio, dimensionato dal centro al punto medio di un lato. Usalo quando è nota l'apertura chiave, come per un dado esagonale.",
"help.sketch.polygon.edge": "Disegna un poligono regolare a partire dai due estremi di un lato. Usalo quando sono note la lunghezza e la posizione di un lato.",
"help.sketch.polygon.inscribed": "Disegna un poligono regolare dentro un cerchio, dimensionato dal centro a un vertice. Usalo quando è nota la dimensione tra i vertici opposti.",
"help.sketch.project": "Porta in questo schizzo spigoli, facce e vertici del modello e curve di altri schizzi, proiettati sul suo piano. Restano collegati e seguono il modello quando cambia.",
"help.sketch.project_to_surface": "Proietta le curve di altri schizzi lungo la normale di questo schizzo su una faccia, come curve 3D collegate. Usalo per applicare un logo, una linea di divisione o un percorso su una superficie curva.",
"help.sketch.rectangle.center": "Disegna un rettangolo a partire dal centro e da un angolo. Usalo per contorni centrati su un punto, come l'origine.",
"help.sketch.rectangle.rounded": "Disegna un rettangolo con tutti e quattro gli angoli arrotondati con lo stesso raggio. Usalo per piastre, coperchi e aperture con angoli arrotondati.",
"help.sketch.rectangle.three_point": "Disegna un rettangolo a partire da un lato e da un punto sul lato opposto. Usalo per rettangoli inclinati rispetto agli assi dello schizzo.",
"help.sketch.rectangle.two_point": "Disegna un rettangolo a partire da due angoli opposti. Usalo per i contorni di piastre, blocchi e tasche.",
"help.sketch.scale": "Scala curve e punti dello schizzo di un fattore rispetto a un punto base. Usalo per ridimensionare una parte di uno schizzo senza ridisegnarla.",
"help.sketch.slot.arc_center": "Disegna un'asola curva di larghezza data lungo un arco definito da centro, inizio e fine. Usalo per asole di regolazione attorno a un perno.",
"help.sketch.slot.arc_three_point": "Disegna un'asola curva di larghezza data lungo un arco passante per tre punti. Usalo quando il percorso dell'asola deve passare per punti dati.",
"help.sketch.slot.center_point": "Disegna un'asola retta di larghezza data dal suo centro al centro di un arco di estremità. Usalo per asole centrate su un punto.",
"help.sketch.slot.center_to_center": "Disegna un'asola retta di larghezza data tra i centri dei suoi due archi di estremità. Usalo per asole quotate per interasse, come le asole di regolazione per viti.",
"help.sketch.slot.overall": "Disegna un'asola retta di larghezza data da un'estremità esterna all'altra. Usalo quando conta la lunghezza complessiva dell'asola.",
"help.sketch.spline.control_point": "Disegna una spline cubica modellata da punti di controllo per i quali non passa. Usalo per curve dolci e fluide che modelli spostando i punti.",
"help.sketch.spline.control_point_5": "Disegna una spline di grado 5 modellata da punti di controllo. Usalo dove le curve devono raccordarsi con una curvatura più dolce, ad esempio su superfici di design in vista.",
"help.sketch.spline.fit_point": "Disegna una spline dolce che passa per ogni punto che collochi, aperta o chiusa. Usalo per tracciare una forma attraverso punti noti.",
"help.sketch.spline3d": "Disegna una curva dolce nello spazio passante per dei punti, con Schizzo 3D attivo. Usalo per percorsi di sweep e tracciati di cavi che escono dal piano dello schizzo.",
"help.sketch.spun_profile": "Crea nel piano dello schizzo il contorno descritto da un corpo quando ruota attorno a un asse. Usalo per ottenere la silhouette di un pezzo tornito per una rivoluzione o un disegno.",
"help.sketch.text": "Scrive del testo nello schizzo con il carattere, l'altezza e l'angolo scelti; le sue parole possono seguire i parametri. Estrudilo o mettilo in rilievo per etichette e scritte.",
"help.sketch.transform": "Scala, ruota e sposta la geometria dello schizzo rispetto a un punto centrale in un solo passo. Usalo per riposizionare e ridimensionare una selezione in una volta.",
"help.sketch.trim": "Rimuove il tratto di una curva compreso tra gli incroci più vicini attorno al punto in cui fai clic. Usalo per ripulire linee sovrapposte e ottenere un profilo chiuso.",
"help.solid.align": "Sposta i corpi selezionati in modo che un punto, una faccia o un piano su di essi coincida con un punto, una faccia o un piano altrove. Usalo per posizionare un pezzo contro un altro senza misurare lo scostamento.",
"help.solid.boundary_fill": "Crea solidi dalle regioni racchiuse da corpi utensile sovrapposti, riempiendo solo le regioni che scegli. Usalo per costruire una forma dallo spazio delimitato insieme da più corpi.",
"help.solid.bounding_solid": "Crea un parallelepipedo che racchiude i corpi selezionati, con un margine facoltativo. Usalo per vedere l'ingombro complessivo di un pezzo, o come grezzo da cui viene lavorato.",
"help.solid.box": "Crea un parallelepipedo da lunghezza, larghezza e altezza, a partire da un angolo o centrato su un punto. Usalo per un blocco veloce, un segnaposto o un corpo in cui ricavare lavorazioni.",
"help.solid.chamfer": "Taglia gli spigoli selezionati con uno smusso piano della distanza impostata. Usalo per eliminare gli spigoli vivi o per facilitare l'ingresso di un perno o di una vite.",
"help.solid.coil": "Crea un corpo elicoidale, come una molla, da un diametro, dal numero di spire, dall'altezza o dal passo e da una sezione tonda o quadrata. Usalo per molle, eliche e creste elicoidali.",
"help.solid.combine": "Unisce i corpi, li sottrae da un corpo di destinazione oppure tiene solo il volume che hanno in comune, e può conservare i corpi utensile. Usalo per fondere parti, per tagliare una forma con un'altra o per trovare dove due corpi si sovrappongono.",
"help.solid.cone": "Crea un cono da un cerchio di base e un'altezza, oppure un tronco di cono se anche la sommità ha un raggio. Usalo per rastremazioni, imbuti, svasature e punte.",
"help.solid.cylinder": "Crea un cilindro da un raggio o un diametro e un'altezza, poggiato su un punto lungo un asse. Usalo per alberi, perni, risalti e grezzi tondi.",
"help.solid.draft": "Dà uno sformo alle facce selezionate con l'angolo impostato, misurato da un piano neutro. Usalo su pezzi stampati o fusi perché escano dallo stampo.",
"help.solid.emboss": "Solleva da una faccia i profili dello schizzo, come un testo o un logo, oppure li incide al suo interno. Usalo per scritte, etichette e marcature su facce piane o tonde.",
"help.solid.extrude": "Spinge il profilo di uno schizzo nel 3D lungo una distanza, aggiungendo o togliendo materiale. Usalo per trasformare un contorno piatto in un blocco, una sporgenza o una tasca.",
"help.solid.fillet": "Arrotonda gli spigoli selezionati con un raccordo circolare liscio del raggio impostato. Usalo per addolcire gli spigoli vivi per resistenza, comodità o estetica.",
"help.solid.hole": "Crea un foro tondo del diametro impostato in un punto scelto di una faccia. Usalo per i passaggi delle viti, i perni e altre semplici aperture tonde.",
@@ -1425,20 +1653,60 @@
"help.solid.move": "Sposta o ruota i corpi selezionati, o una loro copia, della distanza e dell'angolo impostati. Usalo per riposizionare un corpo o per crearne un secondo in un altro punto.",
"help.solid.offset_face": "Spinge le facce selezionate verso l'interno o l'esterno della distanza impostata e le facce intorno le seguono. Usalo per ispessire una parete, approfondire una tasca o alzare una sporgenza senza modificare lo schizzo.",
"help.solid.pattern.circular": "Ripete gli oggetti selezionati intorno a un asse, per il numero e l'angolo totale impostati. Usalo per cerchi di bulloni, raggi, alette e denti.",
"help.solid.pattern.path": "Copia lavorazioni o corpi lungo un percorso dello schizzo, per numero e spaziatura. Usalo per fori lungo uno spigolo curvo o parti lungo una guida.",
"help.solid.pattern.rectangular": "Ripete gli oggetti selezionati in una o due direzioni con il numero e la spaziatura impostati. Usalo per file e griglie di fori, nervature, perni o piedini.",
"help.solid.pipe": "Crea un tubo tondo lungo un percorso di curve dello schizzo, pieno o cavo con uno spessore di parete. Usalo per tubi, fili, cavi e guide.",
"help.solid.press_pull": "Aggiunge o toglie materiale mentre trascini una faccia, oppure arrotonda gli spigoli mentre li trascini. Usalo per modifiche rapide direttamente sul modello.",
"help.solid.remove": "Toglie i corpi selezionati dalla progettazione da questo punto della cronologia in poi; i passaggi precedenti li mantengono. Usalo per scartare un corpo ausiliario, come un utensile da taglio che non serve più.",
"help.solid.replace_face": "Porta le facce piane selezionate su un piano o su una faccia parallela, e il corpo cresce o si riduce per raggiungerlo. Usalo per portare una faccia a filo con un altro pezzo o con un piano di costruzione.",
"help.solid.revolve": "Fa ruotare il profilo di uno schizzo intorno a un asse per creare un solido rotondo. Usalo per alberi, manopole, ciotole e qualsiasi pezzo tondo attorno a una linea d'asse.",
"help.solid.rib": "Aggiunge una parete sottile lungo una curva aperta dello schizzo, estesa fino alle facce successive del corpo. Usalo per irrigidire pareti e angoli, ad esempio in pezzi stampati.",
"help.solid.scale": "Ingrandisce o rimpicciolisce i corpi selezionati di un fattore, uguale in ogni direzione oppure uno per asse. Usalo per ridimensionare una forma importata o per compensare il ritiro.",
"help.solid.shell": "Svuota un solido lasciando pareti dello spessore impostato e può aprire le facce che scegli. Usalo per scatole, coperchi e altri pezzi a parete sottile.",
"help.solid.sphere": "Crea una sfera da un raggio o un diametro attorno a un punto centrale. Usalo per palline, manopole ed estremità arrotondate.",
"help.solid.split_body": "Taglia un corpo in corpi separati con un piano, la faccia di un altro corpo o una linea dello schizzo. Usalo per ottenere pezzi che vengono stampati, lavorati o colorati separatamente.",
"help.solid.split_face": "Divide le facce selezionate lungo un piano, la faccia di un altro corpo o delle curve di schizzo, senza tagliare il corpo. Usalo per dare a una parte di una faccia il proprio sformo, colore o offset.",
"help.solid.sweep": "Trascina il profilo di uno schizzo lungo un percorso per creare un solido. Usalo per tubi, guide, maniglie e qualsiasi pezzo a sezione costante che segue una curva.",
"help.solid.thread": "Aggiunge una filettatura metrica ISO a una faccia cilindrica, come filettatura cosmetica o ricavata nel corpo. Usalo per bulloni, fori filettati e parti a vite stampate.",
"help.solid.torus": "Crea un anello da un raggio maggiore attorno al suo asse e un raggio minore per la sua sezione tonda. Usalo per O-ring, maniglie e perline tonde.",
"help.solid.web": "Aggiunge una parete sottile lungo ogni curva aperta dello schizzo, ciascuna estesa fino alle facce successive del corpo. Usalo per un reticolo di pareti di sostegno all'interno di involucri e vassoi.",
"help.surface.blend": "Crea una superficie che collega gli spigoli di due corpi, tangente o continua in curvatura a entrambi. Usalo per unire dolcemente due superfici attraverso un vuoto.",
"help.surface.boundary": "Crea una superficie che riempie un contorno chiuso di due-quattro curve dello schizzo, o una rete di curve. Usalo per pannelli a forma libera definiti dai loro bordi.",
"help.surface.extend": "Allunga una superficie oltre i suoi bordi, di una distanza o fino a un piano o a una faccia. Usalo per far sovrapporre le superfici prima di ritagliarle o cucirle.",
"help.surface.extrude": "Spinge curve o profili dello schizzo lungo una distanza fino a formare una superficie, solo pareti, senza chiusure. Usalo per pareti sottili e per utensili di taglio o di divisione.",
"help.surface.fair": "Regolarizza l'interno delle facce a forma libera mentre i loro bordi restano fermi. Usalo per eliminare gobbe e riflessi ondulati in una superficie.",
"help.surface.loft": "Crea una superficie che passa in ordine per due o più sezioni, senza chiusure. Usalo per gusci e transizioni tra forme diverse.",
"help.surface.match": "Ricostruisce il bordo di una superficie in modo che incontri il bordo di un altro corpo, con tangenza o curvatura corrispondenti. Usalo per chiudere dolcemente una giunzione tra due superfici.",
"help.surface.offset": "Crea una copia delle facce a una distanza lungo le loro normali, come nuovo corpo di superficie. Usalo per rivestimenti, giochi o l'altro lato di una parete.",
"help.surface.patch": "Riempie una regione dello schizzo o un anello chiuso di spigoli con una faccia, piana o dolcemente curva. Usalo per chiudere i fori in un corpo di superficie.",
"help.surface.reverse_normal": "Rovescia le facce di un corpo di superficie, in modo che il loro lato esterno sia rivolto dall'altra parte. Usalo prima di ispessire o cucire quando le facce sono rivolte verso l'interno.",
"help.surface.revolve": "Fa ruotare curve o profili dello schizzo attorno a un asse per ottenere una superficie, senza chiusure. Usalo per gusci rotondi come paralumi, ciotole e ugelli.",
"help.surface.ruled": "Crea una striscia di rette a partire da una catena di spigoli, lungo la normale o la tangente della faccia oppure ad angolo. Usalo per pareti con sformo, prolungamenti e superfici di divisione.",
"help.surface.stitch": "Cuce insieme i corpi di superficie lungo i loro spigoli condivisi, formando un solido quando si chiudono. Usalo per trasformare un insieme di superfici in un unico corpo.",
"help.surface.sweep": "Muove curve o profili dello schizzo lungo un percorso per ottenere una superficie, senza chiusure. Usalo per grondaie, rifiniture e altre forme sottili che seguono un percorso.",
"help.surface.thicken": "Dà uno spessore a un corpo di superficie, trasformandolo in un solido. Usalo per ottenere da superfici pezzi stampabili o lavorabili.",
"help.surface.trim": "Taglia una superficie con un piano, un'altra superficie o curve dello schizzo, e mantiene il lato che scegli. Usalo per dare forma alle superfici prima di cucirle.",
"help.surface.unstitch": "Separa le facce di un corpo in corpi di superficie indipendenti; un solido si scompone in superfici. Usalo per rielaborare singole facce di un corpo.",
"help.surface.untrim": "Rimuove i fori da una faccia, oppure riporta il suo contorno esterno ai limiti naturali della superficie. Usalo per recuperare la superficie intera dopo un ritaglio.",
"help.third_party": "Licenze di terze parti",
"help.timeline.compute_all": "Ricostruisce ogni lavorazione della cronologia dall'inizio. Usalo per aggiornare il modello e vedere quali lavorazioni falliscono.",
"help.timeline.delete": "Elimina le lavorazioni selezionate dalla cronologia; eliminando uno schizzo si eliminano anche le lavorazioni costruite su di esso. Usalo per togliere un passaggio che non serve più.",
"help.timeline.dependents": "Elenca le lavorazioni che verrebbero eliminate insieme a una lavorazione, e quelle che fallirebbero senza di essa. Usalo prima di eliminare o modificare una lavorazione.",
"help.timeline.play": "Riproduce le lavorazioni rimanenti una alla volta, con una pausa di mezzo secondo dopo ogni ricostruzione. Esegui di nuovo questo comando o premi Escape per arrestare; Vai alla fine salta subito alla fine.",
"help.view.apply": "Ruota la vista verso una direzione standard come frontale, dall'alto o isometrica, oppure verso una vista con nome salvata. Usalo per guardare il modello da un'angolazione fissa.",
"help.view.delete": "Elimina una vista con nome salvata. Il modello non viene modificato.",
"help.view.fit": "Esegue zoom e panoramica in modo che l'intero modello, o la selezione, riempia la vista. Usalo quando il modello è uscito dall'inquadratura.",
"help.view.grid": "Mostra o nasconde la griglia nella vista. Usala come guida per dimensioni e orientamento durante la modellazione.",
"help.view.ground_shadow": "Mostra o nasconde l'ombra del modello sul suolo. Usala per valutare più facilmente altezza e posizione.",
"help.view.home": "Riporta la vista alla direzione iniziale e inquadra tutto il modello. Usalo per tornare rapidamente a una vista nota.",
"help.view.list": "Elenca le viste con nome salvate nel progetto. Usalo per trovare una vista salvata in precedenza.",
"help.view.navigate": "Ruota, sposta o ingrandisce la vista a passi, come un quarto di giro a sinistra. Usalo per muovere la camera con precisione invece di trascinare.",
"help.view.navigation_bar": "Mostra o nasconde la barra di navigazione in basso nella vista. Nascondila per avere più spazio, mostrala per raggiungere con il mouse gli strumenti della vista.",
"help.view.rename": "Dà un nuovo nome a una vista con nome salvata. La vista in sé resta la stessa.",
"help.view.save": "Salva la posizione attuale della camera come vista con nome nel progetto. Usalo per tornare in seguito alla stessa angolazione, ad esempio per le schermate.",
"help.view.spin": "Fa orbitare la vista attorno al modello in modo continuo fino al clic o al tasto successivo. Usalo per presentare un modello da tutti i lati.",
"help.view.tool": "Mantiene attivo uno strumento della camera (orbita, panoramica o zoom), così trascinando con il pulsante sinistro del mouse si muove la vista finché non lo disattivi. Usalo su un trackpad o senza pulsante centrale del mouse.",
"help.view.visual_style": "Cambia il modo in cui il modello viene disegnato: ombreggiato con o senza spigoli, reticolo, oppure con gli spigoli nascosti. Usa il reticolo per vedere all'interno, l'ombreggiato per un aspetto pulito.",
"history.sketch_under_constrained": "Sottovincolato ({count} gradi di libertà)",
"history.sketch_under_constrained_one": "Sottovincolato ({count} grado di libertà)",
"hole_presets.confirm_delete": "Conferma eliminazione",
@@ -1615,6 +1883,10 @@
"material.selection.mixed": "Materiali diversi",
"measure.at": "In",
"measure.item": "Elemento {number}",
"measure.quick_copied": "Misura copiata",
"measure.quick_copy": "Fai clic per copiare la misura",
"measure.quick_edges": "{count} spigoli",
"measure.quick_faces": "{count} facce",
"messages.ago_h": "{n} h fa",
"messages.ago_min": "{n} min fa",
"messages.ago_s": "{n} s fa",
@@ -1648,6 +1920,7 @@
"nav.hfss.help": "Alt+trascinamento con il pulsante sinistro esegue la panoramica, Shift+Alt+pulsante sinistro lo zoom, Ctrl+trascinamento con il pulsante sinistro su uno spazio vuoto orbita",
"nav.inventor.help": "Il trascinamento centrale fa la panoramica, Shift+centrale orbita, Ctrl+centrale fa lo zoom, il trascinamento destro orbita",
"nav.maya.help": "Alt+trascinamento con il pulsante sinistro orbita, Alt+pulsante centrale esegue la panoramica, Alt+pulsante destro lo zoom; anche il trascinamento con il pulsante centrale esegue la panoramica",
"nav.nx.help": "Il trascinamento centrale orbita, Shift+centrale fa la panoramica (centrale + destro di NX), Ctrl+centrale fa lo zoom (centrale + sinistro di NX); il trascinamento destro lascia ferma la vista",
"nav.openscad.help": "Il trascinamento sinistro nello spazio vuoto orbita, Shift+trascinamento sinistro seleziona con un riquadro, il trascinamento sulla geometria dello schizzo la modifica; il trascinamento destro o centrale fa la panoramica, Shift+destro o Shift+centrale fa lo zoom",
"nav.perspective.sketch": "La modifica dello schizzo usa la vista ortogonale. Termina lo schizzo per passare alla prospettiva.",
"nav.right_drag_orbits.help": "Disattivato: il trascinamento con il pulsante destro non muove la camera e il pulsante destro apre solo il menu contestuale. Scegliendo l'assegnazione del mouse SolidWorks l'opzione si disattiva.",
@@ -1767,6 +2040,11 @@
"not a move": "non è uno spostamento",
"not a number": "non è un numero",
"open a sketch first": "apri prima uno schizzo",
"parameters.apply_live": "Applica ogni modifica quando esci dal campo",
"parameters.apply_live_tip": "Disattivato: le modifiche restano in attesa fino ad Applica o OK, poi il progetto si ricostruisce una sola volta per tutte. Annulla o Escape le scarta.",
"parameters.held": "{count} modifiche in attesa di Applica",
"parameters.held_hint": "Modifica espressioni e unità. Le modifiche restano in attesa di Applica o OK.",
"parameters.held_one": "1 modifica in attesa di Applica",
"parts.automatic_name": "automatico",
"parts.dimension.across_flats": "Apertura chiave",
"parts.dimension.bore": "Foro",
@@ -1864,6 +2142,8 @@
"prefs.ctrl_cmd": "Ctrl / Cmd",
"prefs.curved_surfaces": "Superfici curve",
"prefs.curves": "Superfici curve",
"prefs.dark_parts_shading": "Mantieni la forma delle parti scure",
"prefs.dark_parts_shading_help": "Ombreggia la vista in luce lineare con un morbido riempimento di luce dal cielo, così le facce scure mantengono una sfumatura invece di diventare nere",
"prefs.dead_zone_note": "La fascia tratteggiata è la zona morta: il movimento al suo interno viene ignorato.",
"prefs.default": "predefinito",
"prefs.design": "Impostazioni predefinite del progetto",
@@ -1878,6 +2158,8 @@
"prefs.edges": "Spigoli e ombreggiatura",
"prefs.extend": "Estendi",
"prefs.extra_navigation": "Ctrl+trascina con il sinistro sullo spazio vuoto per orbitare; tieni premuto Space per la panoramica.",
"prefs.extrude_view_isometric": "Porta la vista in isometrica all'apertura di Estrusione",
"prefs.extrude_view_return": "Torna alla vista precedente alla chiusura di Estrusione",
"prefs.follows_os": "Segue il sistema operativo",
"prefs.font": "Carattere",
"prefs.font_fallback": "I simboli che mancano nel carattere scelto passano a quello integrato, così nessuna etichetta mostra un riquadro vuoto.",
@@ -1893,6 +2175,7 @@
"prefs.graphics_card_auto": "Automatica",
"prefs.graphics_card_missing": "La scheda grafica salvata non è disponibile; viene usata Automatica.",
"prefs.graphics_card_restart": "Ha effetto dopo il riavvio di SolidCraft. WGPU_ADAPTER_NAME prevale su questa scelta.",
"prefs.graphics_card_unused": "La scheda grafica salvata non è stata usata per questa finestra; la scheda in uso è indicata in Aiuto › Informazioni su e nella barra di stato. Prova Automatica, oppure imposta WGPU_ADAPTER_NAME su una parte univoca del nome della scheda.",
"prefs.graphics_note": "Scegli tra velocità e fluidità dell'immagine. Ogni scelta mostra il suo effetto su un esempio.",
"prefs.graphics_presets_note": "Una preimpostazione regola insieme le scelte qui sotto.",
"prefs.hide_constraint_glyphs_zoomed_out": "Nascondi i simboli dei vincoli quando lo zoom è ridotto",
@@ -1907,6 +2190,8 @@
"prefs.history_sketches_note": "Con Schizzi impostato su Sotto la lavorazione, la Cronologia a sinistra elenca ogni schizzo rientrato di un livello, sotto la prima lavorazione creata a partire da esso, quando è abbastanza larga da mostrare i nomi. La cronologia in basso mantiene sempre l'ordine di creazione.",
"prefs.history_sketches_under_feature": "Sotto la lavorazione",
"prefs.hold_stop_snapping": "Tieni premuto per disattivare l'aggancio",
"prefs.home_fit_size": "Dimensione di Inizio e Adatta",
"prefs.home_fit_size_note": "Quanta parte della vista occupa il modello quando Inizio, Adatta, un progetto aperto o un cambio di vista dal navigatore della vista ne impostano l'inquadratura, sia o no attiva l'impostazione qui sotto. 100 %: riempie la vista tra i pannelli, la bussola e la barra di navigazione.",
"prefs.icons_only": "Solo icone",
"prefs.imported_file": "File importato",
"prefs.in_browser": "Nella Struttura",
@@ -1915,13 +2200,20 @@
"prefs.interface_language": "Lingua dell'interfaccia",
"prefs.interface_note": "Aspetto di SolidCraft e disposizione dei suoi elementi.",
"prefs.interval_minutes": "{n} min",
"prefs.invert_navigator_arrows": "Inverti le frecce di rotazione del cubo della vista",
"prefs.invert_navigator_arrows_note": "Le frecce attorno al cubo fanno orbitare la camera nella direzione in cui puntano, come in Fusion e Inventor: la freccia a sinistra punta a destra e sposta la camera a destra. Disattivato: una freccia ruota il cubo verso il lato in cui si trova, quindi la freccia sinistra sposta la camera a sinistra. Le frecce curve di rollio non sono interessate.",
"prefs.keep_work_on_tab_switch": "Mantieni aperti finestre di dialogo e strumenti quando cambi progetto",
"prefs.keep_work_on_tab_switch_note": "Ogni scheda di progetto conserva la finestra di dialogo o lo strumento aperto, con ciò che hai scelto e digitato, e la propria scheda della barra degli strumenti. Li ritrovi quando torni al progetto. Disattivato: cambiando progetto vengono annullati e compare la scheda Modella.",
"prefs.labels": "Etichette",
"prefs.language_system": "Sistema",
"prefs.layout": "Disposizione",
"prefs.layout_note": "Compatta: pannelli ancorati ai bordi della finestra. La trasparenza della Struttura è disponibile in Flottante. Cambia il lato dell'Assistente nella pagina Assistente.",
"prefs.left": "Sinistra",
"prefs.left_click": "Clic sinistro",
"prefs.line_drag_draws_one": "Premi e trascina per disegnare una linea",
"prefs.line_drag_draws_one_note": "Nello strumento Linea, premere, trascinare e rilasciare disegna una linea dal punto di pressione a quello di rilascio, e il disegno termina lì. I clic disegnano comunque una catena. Disattivato: un trascinamento posiziona un punto dove viene rilasciato, come un clic.",
"prefs.line_hover_tangent_arc": "Fermati sull'ultimo punto di una linea per passare a un arco tangente",
"prefs.line_hover_tangent_arc_note": "Nello strumento Linea, dopo aver disegnato un segmento, allontanati dall'ultimo punto della catena, torna indietro e tieni fermo il puntatore su di esso: il clic successivo termina un arco tangente, e lo stesso gesto riporta alle linee. Disattivato: fermarsi lì non fa nulla.",
"prefs.linked_designs": "Progetti collegati",
"prefs.live_input": "Input in tempo reale",
"prefs.live_preview": "Anteprima dal vivo",
@@ -1945,6 +2237,8 @@
"prefs.mouse_mapping": "Assegnazione del mouse",
"prefs.navigation": "Navigazione",
"prefs.navigation_note": "Come mouse, trackpad e mouse 3D spostano la vista.",
"prefs.navigator_fit": "Adatta il modello dopo un cambio di vista dal navigatore",
"prefs.navigator_fit_note": "Una faccia, un angolo o una freccia del cubo della vista, o un asse del gizmo, guarda anche il centro del modello dall'unica distanza che lo inquadra da ogni lato (la sua sfera di ingombro). Inizio usa lo stesso zoom e lo stesso centro finché questa opzione è attiva, quindi le viste scelte dopo si limitano a ruotare. Disattivato: la vista ruota sul posto, mantenendo punto di mira e zoom.",
"prefs.network_host_remove": "Rimuovi",
"prefs.network_locations": "Consenti posizioni di rete nei progetti",
"prefs.network_locations_note": "Disattivato: i file collegati di un progetto su un altro computer (\\\\server\\share) vengono aperti solo dai server elencati qui, o dopo che ne consenti uno quando richiesto.",
@@ -1957,6 +2251,8 @@
"prefs.origin_plane_names": "Nomi dei piani di origine",
"prefs.origin_plane_names_note": "Nomi mostrati nella Struttura, nelle finestre di dialogo e negli elenchi. {top} è XY, {front} è XZ e {right} è YZ, con Z verso l'alto. Comandi, script e progetti salvati mantengono XY, XZ e YZ.",
"prefs.overall_speed": "Velocità complessiva",
"prefs.parameter_list_rows": "Righe dell'elenco dei parametri",
"prefs.parameter_list_rows_tip": "La freccia giù in un campo valore vuoto elenca i parametri, prima i preferiti, fino a questo numero. Un numero minore mantiene leggero l'elenco in un progetto grande.",
"prefs.persistent_ribbon_pressed": "Evidenzia i comandi attivi della barra multifunzione",
"prefs.persistent_ribbon_pressed_help": "Evidenzia i comandi della barra multifunzione finché i loro effetti sono attivi. Disattiva per mantenere l'aspetto neutro precedente e la guida dei comandi.",
"prefs.perspective_fov": "Campo visivo",
@@ -1986,9 +2282,13 @@
"prefs.quality_fastest": "più veloce",
"prefs.quality_slowest": "più lento",
"prefs.quality_smoother": "più fluido",
"prefs.quick_measure": "Misura rapida nell'angolo della vista",
"prefs.quick_measure_note": "La dimensione della selezione nell'angolo in basso a destra della vista: la lunghezza di uno spigolo, oppure Ø e R per uno tondo, l'area di una faccia, la posizione di un punto, la distanza e l'angolo tra due elementi, il totale di più spigoli o facce. Un clic la copia.",
"prefs.render_previous_geometry_budget": "Usa il budget di geometria precedente per l'anteprima di Rendering",
"prefs.render_previous_geometry_budget_help": "Ripristina il limite fisso di geometria precedente (512 MiB su desktop a 64 bit, 128 MiB altrove) invece del budget basato sul dispositivo.",
"prefs.reports_saved": "{n} salvati",
"prefs.ribbon_click_ends_tool": "Un clic sul pulsante dello strumento in uso lo termina",
"prefs.ribbon_click_ends_tool_note": "Un clic sul pulsante evidenziato nella barra multifunzione dello strumento di schizzo in uso termina lo strumento, così i clic nella vista tornano a selezionare. Disattivato: il clic avvia di nuovo lo strumento.",
"prefs.ribbon_reveal": "Mostra i risultati della ricerca nella barra multifunzione",
"prefs.ribbon_reveal_note": "Passando il puntatore su un risultato in Cerca comandi si vede dove si trova il comando nella barra multifunzione: la sua scheda, il suo pulsante o la sua riga nel menu a discesa di un pannello. Un comando avviato dalla ricerca lampeggia lì, e un comando in esecuzione da un menu a discesa ne evidenzia il pannello.",
"prefs.right_click": "Clic destro",
@@ -2018,6 +2318,8 @@
"prefs.sketch_exit_view.previous": "Torna alla vista precedente",
"prefs.sketch_exit_view.unless_rotated": "Torna, se non ruotata",
"prefs.sketch_exit_view_note": "Dove va la vista dopo Termina schizzo, Annulla o un doppio Esc.",
"prefs.sketch_face_activates_part": "Creare uno schizzo sulla faccia di una parte rende attiva quella parte",
"prefs.sketch_face_activates_part_note": "Uno schizzo avviato sulla faccia di un corpo di un altro componente attiva prima quel componente, così lo schizzo gli appartiene e resta con quella parte nella Struttura. In seguito la parte resta attiva. Disattivato: lo schizzo appartiene al componente attivo.",
"prefs.sketch_open_look_at": "Ruota la vista verso lo schizzo quando si apre",
"prefs.sketch_open_look_at_note": "Disattivato: creando o modificando uno schizzo la vista resta com'è. Vista normale orienta la vista sullo schizzo quando vuoi.",
"prefs.sketch_recent_snap": "Aggancia automaticamente ai centri e punti medi recenti",
@@ -2031,6 +2333,8 @@
"prefs.sketch_tab_always_note": "La scheda Schizzo resta nella barra multifunzione, subito dopo Modella, finché nessuno schizzo è aperto. I suoi strumenti di disegno avviano allora uno schizzo sul piano o sulla faccia selezionati, oppure sul piano che selezioni subito dopo, con lo strumento già attivo.",
"prefs.sketch_tracking_guides": "Guide di allineamento di centro e punto medio",
"prefs.sketch_tracking_guides_note": "Passa il puntatore sul centro di un cerchio o sul punto medio di un segmento, poi spostati in orizzontale o in verticale per mostrare una guida punteggiata temporanea.",
"prefs.sketch_tracking_points": "Guide di allineamento da estremità e angoli durante il disegno",
"prefs.sketch_tracking_points_note": "Mentre uno strumento di disegno attende un punto, passando il puntatore sull'estremità di una linea o di un arco, sull'angolo di un rettangolo o su un punto libero compare la stessa guida punteggiata temporanea di un centro o di un punto medio. Disattivato: solo centri e punti medi.",
"prefs.sketching": "Schizzi",
"prefs.snap_drawing_note": "Mentre disegni o trascini un punto dello schizzo.",
"prefs.source": "Fonte",
@@ -2047,6 +2351,24 @@
"prefs.status_error": "Errore",
"prefs.status_selected": "Selezionato",
"prefs.status_warning": "Avviso",
"prefs.structure.appearance": "Aspetto",
"prefs.structure.appearance_note": "Colori, testo e accessibilità.",
"prefs.structure.in_profile": "Nel profilo",
"prefs.structure.layout": "Disposizione",
"prefs.structure.layout_note": "Dove si trovano le parti della finestra.",
"prefs.structure.look": "Aspetto visivo",
"prefs.structure.measure_pointer": "Misura e puntatore",
"prefs.structure.mouse3d": "Mouse 3D",
"prefs.structure.mouse3d_note": "SpaceMouse e SpaceNavigator.",
"prefs.structure.navigation_note": "Mouse e trackpad. Il mouse 3D ha una pagina propria.",
"prefs.structure.profile": "Profilo",
"prefs.structure.profile_edited": "Modificato dopo il salvataggio",
"prefs.structure.profile_hover": "Salvato nei profili delle impostazioni",
"prefs.structure.scale_percent": "{percent}%",
"prefs.structure.sketch": "Schizzo",
"prefs.structure.tools": "Strumenti",
"prefs.structure.tools_note": "Come si comportano gli strumenti di modellazione.",
"prefs.structure.work": "Lavoro",
"prefs.supersampling_brief": "Disegna la vista più grande e poi la riduce con un filtro: molto nitida, ma più pesante.",
"prefs.tab_accent_note": "L'accento segue la scheda attiva",
"prefs.theme_file": "file del tema",
@@ -2058,6 +2380,16 @@
"prefs.theme_follow_off": "Disattivato",
"prefs.theme_follow_stop": "Smetti di seguire",
"prefs.theme_import_hint": "Fai clic per scegliere un file di tema, trascinane uno qui oppure premi Ctrl+V (Cmd+V su Mac) con un tema copiato",
"prefs.theme_option_opacity": "Opacità",
"prefs.theme_option_opacity_help": "Regola l'opacità dei pannelli flottanti. Una soglia minima di leggibilità protegge il testo sopra i colori della vista.",
"prefs.theme_option_tab_colours": "Colori delle schede",
"prefs.theme_option_tab_colours_help": "Usa i colori dei pannelli e della vista di questo tema per ogni scheda della barra multifunzione.",
"prefs.theme_option_tab_fade_ms": "Transizione tra schede",
"prefs.theme_option_tab_fade_ms_help": "Sfuma i colori dei pannelli e della vista quando si cambia scheda. Zero cambia all'istante.",
"prefs.theme_options_badge": "Opzioni",
"prefs.theme_options_more": "Altro · {count}",
"prefs.theme_options_reset": "Reimposta",
"prefs.theme_options_unavailable": "Non disponibile su questo dispositivo",
"prefs.theme_paste": "Incolla tema",
"prefs.theme_paste_none": "Negli appunti non c'è nessun tema SolidCraft",
"prefs.timeline_half_hour": "−30 min",
@@ -2079,6 +2411,8 @@
"prefs.under_cursor": "Sotto il cursore",
"prefs.units_precision": "Unità e precisione",
"prefs.updates": "Aggiornamenti",
"prefs.value_boxes_in_view": "Mostra i valori accanto alle maniglie nella vista",
"prefs.value_boxes_in_view_tip": "Il valore di un comando (Distanza, Raggio…) in un riquadro accanto alla sua maniglia, sopra il modello. Disattivato: lo digiti nella finestra del comando, che riceve la tastiera dopo una selezione, e niente copre il modello.",
"prefs.view": "Comportamento della vista",
"prefs.view_confirm_corner": "OK e Annulla nell'angolo della vista",
"prefs.view_confirm_corner_note": "Mentre è aperta una finestra di dialogo o uno schizzo, una spunta e una croce in alto a destra nella vista fanno ciò che fanno OK e Annulla della finestra, oppure terminano e annullano lo schizzo. Il navigatore della vista scende sotto di esse.",
@@ -2088,6 +2422,12 @@
"prefs.viewport_background": "Sfondo",
"prefs.viewport_background_colour": "Colore",
"prefs.viewport_background_theme": "Sfumatura del tema",
"prefs.viewport_section_status": "Mostra lo stato di sezione della vista",
"prefs.viewport_section_status_help": "Mostra l'impostazione della sezione nella vista. Escape e il pulsante attivo della barra multifunzione la disattivano. Disattiva per mantenere i controlli di sezione precedenti.",
"prefs.viewport_status_details": "Dettagli della vista in tempo reale",
"prefs.viewport_status_details_help": "Modifica le impostazioni di analisi e sezione attive nelle schede di dettaglio standard. Disattiva per ripristinare le legende di analisi in sola lettura e la finestra di dialogo Sezione.",
"prefs.viewport_status_summary": "Raggruppa gli elementi di stato della vista",
"prefs.viewport_status_summary_help": "Raggruppa tre o più elementi di stato della vista in un unico indicatore di riepilogo. Disattiva per mantenere ogni elemento nella riga completa.",
"prefs.wheel": "Rotellina",
"prefs.wheel_trackpad": "Rotellina e trackpad",
"prefs.workspace": "Area di lavoro",
@@ -2966,7 +3306,9 @@
"render.output_ready": "Pronto per il rendering",
"render.output_run_check": "Esegui verifica",
"render.output_size_limit": "{method}: fino a {dimension} px per lato e {pixels} pixel. Dimensioni massime consentite: {width} × {height}.",
"render.output_size_method_profile": "Per renderizzare {width} × {height}, scegli {method} con il profilo di risorse della CPU {profile}, oppure una dimensione minore.",
"render.output_size_ok": "Dimensioni OK · {width} × {height} px",
"render.output_size_profile": "Per renderizzare {width} × {height}, scegli il profilo di risorse della CPU {profile}, oppure una dimensione minore.",
"render.output_swap_orientation": "Scambia larghezza e altezza",
"render.output_tools_inspector": "Modifica dimensioni e formato nell'ispettore Uscita.",
"render.output_view_image": "Visualizza immagine",
@@ -3179,6 +3521,7 @@
"render.size_custom": "Personalizzato…",
"render.size_full_hd": "Full HD",
"render.size_hd": "HD",
"render.size_needs_profile": "{size} · richiede {profile}",
"render.size_presets": "Preimpostazioni delle dimensioni",
"render.size_presets_pending": "In arrivo con l'editor Uscita",
"render.size_preview": "Anteprima",
@@ -3466,6 +3809,24 @@
"sheet.flange_type_contour": "Contorno",
"sheet.flange_type_edge": "Spigolo",
"sheet.no_body": "non c'è nessun corpo in lamiera: creane uno con Flangia > Base, oppure trasforma una piastra in lamiera con Converti in lamiera (scegli la sua faccia piana più grande)",
"sheet.personal_rules.confirm_delete": "Conferma eliminazione",
"sheet.personal_rules.delete": "Elimina",
"sheet.personal_rules.delete_prompt": "Eliminare questa regola personale? Le regole già presenti nei progetti non cambiano.",
"sheet.personal_rules.full": "La libreria personale contiene già 64 regole.",
"sheet.personal_rules.invalid_name": "Inserisci un nome breve senza interruzioni di riga né caratteri di controllo.",
"sheet.personal_rules.invalid_values": "Completa i valori della regola: ciascuno deve risultare valido in questo progetto, con uno spessore positivo e un fattore K da 0 a 1.",
"sheet.personal_rules.missing": "La regola personale selezionata non è più disponibile.",
"sheet.personal_rules.name": "Nome della regola",
"sheet.personal_rules.name_exists": "Esiste già una regola personale con questo nome. Usa un nome diverso.",
"sheet.personal_rules.name_hint": "Un nome univoco",
"sheet.personal_rules.overwrite": "Salva le modifiche nella regola personale selezionata",
"sheet.personal_rules.rename": "Rinomina",
"sheet.personal_rules.rule": "Regola personale",
"sheet.personal_rules.save": "Salva come nuova",
"sheet.personal_rules.scope": "Salvata nel tuo profilo per tutti i progetti.",
"sheet.personal_rules.select": "Seleziona una regola",
"sheet.personal_rules.title": "Regole personali",
"sheet.personal_rules.unsupported": "Questa regola ha valori che questa versione non può usare.",
"shortcut.json_error": "i parametri devono essere in formato JSON: {error}",
"shortcut.no_command": "nessun comando `{id}`; il testo prima del JSON deve essere un ID comando",
"shortcut.pin": "Fissa in cima al riquadro S",
@@ -3502,8 +3863,10 @@
"sketch_text.align_right": "Destra",
"sketch_text.bold": "Grassetto",
"sketch_text.builtin_font": "{family} (integrato)",
"sketch_text.formula": "Inizia con = per costruire le parole dai parametri: ='W' + number(Width)",
"sketch_text.italic": "Corsivo",
"sketch_text.loading_fonts": "Ricerca dei caratteri installati…",
"sketch_text.no_bold": "Il carattere integrato non ha il grassetto: scegli un carattere installato",
"sketch_text.on_path": "Il testo segue il percorso: la curva ne determina la posizione",
"sketch_text.path_clear": "Scollega il testo dalla curva",
"sketch_text.path_hint": "Una curva dello schizzo seguita dal testo: fai clic qui, poi sulla curva",
@@ -3642,6 +4005,8 @@
"ui.3d_mouse_section": "Mouse 3D",
"ui.3d_mouse_show_in_view": "Mostra il mouse 3D nella vista 3D",
"ui.3d_mouse_show_in_view_tip": "Un'immagine del tuo mouse 3D nell'angolo in basso a sinistra, che si muove quando lo muovi.",
"ui.3d_mouse_sketch_orbit": "Ruota gli schizzi con il mouse 3D",
"ui.3d_mouse_sketch_orbit_tip": "Il mouse 3D ruota la vista anche mentre uno schizzo è aperto e visto frontalmente, come può fare il mouse. Disattivato: sposta e ingrandisce lo schizzo finché non inclini la vista.",
"ui.3d_mouse_skip": "Il mio dispositivo non può farlo",
"ui.3d_mouse_skip_tip": "Salta questo movimento in entrambi i versi; la calibrazione lo esclude.",
"ui.3d_mouse_speed": "Velocità del mouse 3D",
@@ -3710,6 +4075,7 @@
"ui.agent_chat_auth_terminal": "Esegui questo comando in un terminale, poi premi di nuovo Connetti:",
"ui.agent_chat_auth_title": "Accedi all'agente",
"ui.agent_chat_cancel": "Annulla",
"ui.agent_chat_cannot_start": "Installato, ma non si avvia: {error}",
"ui.agent_chat_changes": "Modifiche: {n}, un solo passo di annullamento",
"ui.agent_chat_changes_n": "{n} modifiche",
"ui.agent_chat_changes_of": "{n}/{limit} modifiche",
@@ -3802,9 +4168,12 @@
"ui.agent_chat_queued_stopped": "In coda (arrestato, non inviato)",
"ui.agent_chat_refresh": "Aggiorna",
"ui.agent_chat_refused": "Non consentito all'agente: {reason}",
"ui.agent_chat_reinstall": "{agent} è installato ({program}), ma non si è avviato quando SolidCraft lo ha controllato: {error}\nLa sua installazione potrebbe essere incompleta o creata per un altro tipo di computer. Installalo di nuovo con `{install}`, verifica in un terminale che stampi la sua versione, poi premi Aggiorna.",
"ui.agent_chat_remove": "Rimuovi dalla coda",
"ui.agent_chat_remove_file": "Rimuovi da questo messaggio",
"ui.agent_chat_remove_imported": "Rimuovi da questo messaggio; la parte resta nel progetto (Annulla la rimuove)",
"ui.agent_chat_reply_cut_off": "La risposta ha raggiunto il limite di lunghezza prima di terminare, quindi potrebbe essere incompleta. Chiedi all'agente di proseguire, oppure di dare una risposta più breve.",
"ui.agent_chat_reply_declined": "Il modello ha rifiutato di rispondere a questo messaggio.",
"ui.agent_chat_retry": "Riprova",
"ui.agent_chat_right": "Destra",
"ui.agent_chat_save": "Salva",
@@ -3863,12 +4232,17 @@
"ui.ai_copy_suffix": "copia",
"ui.ai_custom_url": "URL personalizzato",
"ui.ai_default": "Predefinito",
"ui.ai_edit": "Modifica",
"ui.ai_edit_agent_title": "Modifica agente",
"ui.ai_edit_gone": "Questo agente è stato rimosso, quindi non c'è nulla da salvare.",
"ui.ai_edit_tip": "Cambia il nome, il comando o l'endpoint di questo agente. Una chiave salvata resta nascosta.",
"ui.ai_http_busy": "l'endpoint è occupato o ha superato il limite; riprova più tardi",
"ui.ai_http_key": "l'endpoint ha rifiutato la chiave: controllala in Preferenze > IA",
"ui.ai_http_not_found": "endpoint o modello inesistente: controlla l'URL di base e il nome del modello",
"ui.ai_http_too_large": "la conversazione è troppo grande per questo endpoint; inizia una nuova chat",
"ui.ai_key": "Chiave API",
"ui.ai_key_hint": "facoltativa; conservata nel portachiavi di sistema",
"ui.ai_key_keep_hint": "lascia vuoto per mantenere la chiave salvata",
"ui.ai_key_needs_https": "La chiave viene inviata solo tramite HTTPS o a questo computer.",
"ui.ai_key_note": "Memorizzata nel portachiavi di sistema, mai nelle impostazioni di SolidCraft. Lascia vuoto per un server locale.",
"ui.ai_keychain_error": "Il portachiavi di sistema ha rifiutato l'operazione: {error}",
@@ -3895,11 +4269,15 @@
"ui.ai_permissions": "Autorizzazioni",
"ui.ai_preset": "Preimpostazione",
"ui.ai_protocol": "Protocollo",
"ui.ai_reasoning_effort": "Livello di ragionamento",
"ui.ai_reasoning_effort_field_hint": "vuoto = predefinito del provider",
"ui.ai_reasoning_effort_hint": "Facoltativo. Inviato all'endpoint come `reasoning_effort`; i valori accettati differiscono da provider a provider (ad esempio `low`, `high` o `max`). Un valore impostato qui non viene mai sostituito da SolidCraft. Lascia vuoto per non inviare nulla e mantenere il valore predefinito del provider.",
"ui.ai_remove": "Rimuovi",
"ui.ai_request_timed_out": "Il modello ha impiegato più di {seconds} s. Puoi aumentare il timeout della richiesta per questo endpoint in Preferenze › Assistente.",
"ui.ai_request_timeout": "Timeout della richiesta",
"ui.ai_request_timeout_hint": "Quanto può durare una richiesta al modello verso questo endpoint, da 30 s a un'ora. Aumentalo per un modello locale lento.",
"ui.ai_reset": "Reimposta",
"ui.ai_save": "Salva",
"ui.ai_settings": "Impostazioni IA…",
"ui.ai_show_features": "Mostra funzioni IA",
"ui.ai_show_features_note": "La chat con l'agente: un pannello in cui un agente di programmazione che già usi o un endpoint di modello a tua scelta opera sul progetto aperto. Se disattivata: nessun pulsante IA, scorciatoia, voce di menu o pannello, e nessuna ricerca o avvio.",
@@ -4059,6 +4437,7 @@
"ui.dark": "Scuro",
"ui.default_modelling_orientation": "Orientamento di modellazione predefinito",
"ui.delete": "Elimina",
"ui.delete_select_first": "Seleziona prima cosa eliminare: lavorazioni, corpi, componenti o geometria dello schizzo",
"ui.depth": "Profondità",
"ui.design": "Progettazione",
"ui.design_properties.author": "Autore",
@@ -4073,6 +4452,40 @@
"ui.design_properties.project": "Progetto",
"ui.design_properties.revision": "Revisione",
"ui.design_saved": "Salvato in {path}",
"ui.details_access_caption": "Le facce indicano se un utensile può raggiungerle dalla direzione scelta.",
"ui.details_angle": "Angolo",
"ui.details_continuity_caption": "Modifica la giunzione selezionata. Le altre giunzioni mantengono le proprie impostazioni.",
"ui.details_continuity_stale": "Geometria precedente: ripeti l'analisi per modificare o inquadrare questa giunzione.",
"ui.details_copy_list": "Copia elenco",
"ui.details_curvature": "Tolleranza di curvatura",
"ui.details_curvature_caption": "Le facce sono colorate in base al loro raggio di curvatura locale.",
"ui.details_direction": "Direzione dell'utensile",
"ui.details_draft_caption": "Le facce sono colorate in base al loro angolo rispetto alla direzione di estrazione.",
"ui.details_edit_seam": "Modifica giunzione",
"ui.details_fixture": "Esempio di componente — solo dati di prova",
"ui.details_fixture_caption": "Esempio di componente con valori illustrativi; non è un risultato del modello.",
"ui.details_fixture_problem": "Esempio di rilevamento con un problema",
"ui.details_fixture_readout": "Esempio di valore misurato",
"ui.details_flip": "Inverti",
"ui.details_gap": "Gioco",
"ui.details_hatch": "Tratteggia le facce tagliate",
"ui.details_jump": "Salto di curvatura",
"ui.details_key": "Legenda",
"ui.details_offset": "Offset",
"ui.details_plane": "Piano",
"ui.details_pull": "Direzione di estrazione",
"ui.details_radius": "Raggio",
"ui.details_readout": "Lettura",
"ui.details_samples": "Campioni",
"ui.details_seam": "{body} · Spigolo {edge}",
"ui.details_settings": "Impostazioni",
"ui.details_sharp_gap": "Spigolo vivo o gioco",
"ui.details_show_all": "Mostra tutti ({count})",
"ui.details_smooth": "Liscia",
"ui.details_stripes": "Strisce",
"ui.details_target": "Inquadra la geometria",
"ui.details_worst_seams": "Giunzioni peggiori",
"ui.details_zebra_caption": "Le strisce riflesse mostrano quanto dolcemente si raccordano le facce.",
"ui.diameter": "Diametro",
"ui.dimension": "Quota",
"ui.direct_interaction": "Interazione diretta",
@@ -4117,6 +4530,7 @@
"ui.edit_in_place_saved_elsewhere": "La parte è stata salvata in un altro file; l'assieme è ancora collegato a {name}",
"ui.edit_in_place_wait": "Attendi il termine di ciò che è in esecuzione nel progetto",
"ui.edit_section_analysis": "Modifica analisi in sezione",
"ui.edit_sketch_empty": "Nessuno schizzo da modificare",
"ui.ellipse": "Ellisse",
"ui.emboss_wrap_note": "I profili di linee ortogonali tangenti a un cilindro supportato si avvolgono automaticamente. Scegliere una parete per definire la destinazione.",
"ui.end_radius": "Raggio finale",
@@ -4127,12 +4541,15 @@
"ui.equation_explicit": "Esplicita",
"ui.equation_form": "Forma",
"ui.equation_note": "La variabile è un numero puro: sin(t) la interpreta in radianti. Un risultato senza unità è nell'unità del progetto.",
"ui.equation_note_range": "La variabile è una lunghezza, come il suo intervallo: combinala con parametri di lunghezza e dividila per una lunghezza per sin(). Un risultato senza unità è nell'unità del progetto.",
"ui.equation_parametric": "Parametrica",
"ui.equation_variable_unit": "La variabile ha l'unità dell'intervallo",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Raggio equivalente",
"ui.expand": "Espandi",
"ui.explode_needs_two_components": "Vista esplosa allontana i componenti tra loro, quindi il progetto ne richiede due o più (Nuovo componente, Inserisci progetto o Crea componenti da corpi)",
"ui.exportDxf": "Esporta DXF…",
"ui.export_ellipsis_keymap": "Esporta…",
"ui.export_keymap_tip": "Tasti, preferiti del riquadro S e barra degli strumenti, in un file",
@@ -4293,6 +4710,7 @@
"ui.insert_design.saved_file": "{name} contiene modifiche non salvate, quindi è stato inserito il file salvato. Salvalo, poi usa Aggiorna collegamenti per includere le modifiche.",
"ui.insert_design.unsaved": "Modifiche non salvate",
"ui.inspect": "Esamina",
"ui.instances": "Istanze",
"ui.intersect": "Interseca",
"ui.isolate": "Isola",
"ui.join": "Unisci",
@@ -4301,12 +4719,14 @@
"ui.joints": "Giunti",
"ui.keyboard_shortcuts": "Scorciatoie da tastiera",
"ui.language": "Lingua",
"ui.lasso_select": "Lazo (trascina un anello a mano libera: prende ciò che sta interamente all'interno)",
"ui.layout_compact": "Compatta",
"ui.layout_floating": "Flottante",
"ui.length": "Lunghezza",
"ui.length_decimals": "Decimali delle lunghezze",
"ui.light": "Chiaro",
"ui.line": "Linea",
"ui.line_arc_hint": "Arco tangente: fai clic sulla fine dell'arco. Fermati di nuovo sull'ultimo punto per tornare alle linee; clic destro o Esc per terminare",
"ui.link_copies": "Collega copie identiche",
"ui.link_copies_keep": "Mantieni",
"ui.link_copies_link": "Collega",
@@ -4395,6 +4815,7 @@
"ui.part_size_shared": "Ricostruisce la parte, sostituendo le eventuali lavorazioni aggiunte. Si aggiornano tutte le occorrenze del componente.",
"ui.paste": "Incolla",
"ui.path": "Percorso",
"ui.pattern_object_type_tip": "Corpi: forme solide, selezionate nella vista o nella Struttura; ciascuno viene copiato per intero.\nLavorazioni: passaggi della Cronologia, come un'estrusione o un foro, selezionati nella Cronologia o su una faccia da essi creata; il passaggio viene ripetuto.\nUno schizzo non è nessuno dei due: ripeti le sue curve con Ripetizione o Specchia dello schizzo stesso, oppure estrudilo prima.",
"ui.pattern_on_path": "Ripetizione su percorso",
"ui.perforate_margin_default": "dal diametro",
"ui.perforate_pitch": "Passo",
@@ -4421,12 +4842,17 @@
"ui.plugins_skipped": "Impossibile leggere {count} cartelle.",
"ui.plugins_version": "{version}",
"ui.point": "Punto",
"ui.point_cloud_add_filter": "Aggiungi filtro…",
"ui.point_cloud_auto_range": "Intervallo automatico",
"ui.point_cloud_color_by": "Colora per",
"ui.point_cloud_file_colors": "Colori del file",
"ui.point_cloud_filter_by": "Filtra per",
"ui.point_cloud_height_high": "Più alto",
"ui.point_cloud_height_low": "Più basso",
"ui.point_cloud_legend_filter": "Mostrati e nascosti nella legenda sopra",
"ui.point_cloud_no_file_colors": "Il file non contiene colori",
"ui.point_cloud_pause": "Pausa",
"ui.point_cloud_play": "Riproduci",
"ui.point_cloud_single_color": "Colore singolo",
"ui.point_cloud_size": "Dimensione dei punti",
"ui.point_cloud_units": "Unità del file",
@@ -4435,9 +4861,9 @@
"ui.polygon": "Poligono",
"ui.preferences": "Preferenze",
"ui.press_a_key": "premi un tasto…",
"ui.print_face_body_not_sent": "Il corpo di quella faccia non viene inviato: aggiungilo prima a Corpi",
"ui.print_face_cleared": "{body}: faccia di stampa rimossa",
"ui.print_face_input": "Faccia di stampa",
"ui.print_face_one_body": "Una faccia di stampa appartiene a un solo corpo: invia quel corpo da solo per cambiarla",
"ui.print_face_pick": "Seleziona una faccia piana di un corpo solido per renderla la faccia di stampa",
"ui.print_face_set": "{body}: faccia di stampa impostata; Invia allo slicer appoggia il corpo su di essa",
"ui.profile": "Profilo",
@@ -4455,6 +4881,7 @@
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Misurazione…",
"ui.properties.measuring_bodies": "Misurazione… {done} di {total} corpi",
"ui.properties.measuring_failed": "La misurazione si è interrotta prima del termine.",
"ui.properties.principal_axis": "Asse principale {number}",
"ui.properties.principal_moments": "Momenti principali",
@@ -4522,6 +4949,7 @@
"ui.selectOther": "Seleziona altro…",
"ui.selectTangentChain": "Seleziona catena tangente",
"ui.select_all": "Seleziona tutto",
"ui.select_components_by_face": "Seleziona componenti (una faccia seleziona il suo componente)",
"ui.selection": "Selezione",
"ui.selection_modifiers": "Modificatori di selezione",
"ui.selection_shift_add_only": "Maiusc+clic aggiunge senza rimuovere",
@@ -4563,6 +4991,11 @@
"ui.sketch_intersect_selection_filter": "Filtro di selezione",
"ui.sketch_modifiers": "Modificatori dello schizzo",
"ui.sketch_project_geometry": "Geometria",
"ui.sketch_report.all_constrained": "Tutto è completamente vincolato.",
"ui.sketch_report.dof": "Gradi di libertà",
"ui.sketch_report.loose": "Non completamente vincolato",
"ui.sketch_report.status": "Stato",
"ui.sketch_report.title": "Rapporto dello schizzo",
"ui.sketch_scale": "Scala schizzo",
"ui.sketches": "Schizzi",
"ui.slice": "Genera sezioni",
@@ -4658,12 +5091,15 @@
"ui.view_angles": "Angoli della vista",
"ui.view_angles_convention": "Gradi attorno all'asse verticale. Imbardata 0° è la vista frontale, 90° sinistra, −90° destra, 180° posteriore; beccheggio 90° è la vista dall'alto; un rollio positivo ruota il modello in senso orario.",
"ui.view_angles_help": "Mostra il beccheggio, l'imbardata e il rollio della vista in gradi e la sua proiezione sotto il gizmo di orientamento. Fai clic sull'indicatore per digitare angoli esatti.",
"ui.view_angles_lock": "Blocca {axis}",
"ui.view_angles_ortho": "Ortogonale",
"ui.view_angles_persp": "Prospettica",
"ui.view_angles_pitch": "Beccheggio",
"ui.view_angles_readout": "Beccheggio {pitch} · Imbardata {yaw} · Rollio {roll}",
"ui.view_angles_roll": "Rollio",
"ui.view_angles_unlock": "Sblocca {axis}",
"ui.view_angles_yaw": "Imbardata",
"ui.view_angles_zero": "Imposta {axis} a 0°",
"ui.view_centre": "Centro della vista",
"ui.viewport_status_clear": "Disattiva {name}",
"ui.viewport_status_clear_hint": "Disattiva {name} · Esc",
@@ -4672,7 +5108,14 @@
"ui.viewport_status_key": "Mostra la legenda di {name}",
"ui.viewport_status_minimum_radius": "Raggio minimo",
"ui.viewport_status_pairs": "{count} coppie",
"ui.viewport_status_section_hatch": "{setting} · tratteggio",
"ui.viewport_status_section_plane": "Piano attuale",
"ui.viewport_status_section_tilted": "inclinato · {offset}",
"ui.viewport_status_stripes": "{count} strisce",
"ui.viewport_status_summary_clear": "Disattiva tutto",
"ui.viewport_status_summary_heading": "In questa vista",
"ui.viewport_status_summary_label": "{name} e altri {count} elementi",
"ui.viewport_status_summary_more": "+{count}",
"ui.viewport_theme_follow": "Segui il tema",
"ui.visual_shaded_hidden_edges": "Ombreggiato con spigoli nascosti",
"ui.visual_shaded_with_edges": "Ombreggiato con spigoli",
+480 -11
View File
File diff suppressed because it is too large Load Diff
+176 -6
View File
@@ -407,6 +407,7 @@
"Recover unsaved design?": "저장되지 않은 디자인을 복구할까요?",
"Rectangular": "직사각형",
"Reference face": "참조 면",
"Reference plane": "참조 평면",
"Relief Depth": "릴리프 깊이",
"Relief Width": "릴리프 너비",
"Remove Tools": "공구 제거",
@@ -422,6 +423,7 @@
"Rename Feature": "피처 이름 바꾸기",
"Rename Folder": "폴더 이름 바꾸기",
"Render Stage": "렌더링 단계",
"Reopen the designs that were open when SolidCraft was last closed": "지난번에 열려 있던 디자인 다시 열기",
"Replace existing library file": "기존 라이브러리 파일 바꾸기",
"Report a bug — review a screenshot and open a GitHub draft": "버그 신고 — 스크린샷을 검토하고 GitHub 초안 열기",
"Report text copied. Paste it into GitHub and submit your report there.": "보고서 텍스트를 복사했습니다. GitHub에 붙여넣고 그곳에서 보고서를 제출하세요.",
@@ -476,6 +478,7 @@
"Second point": "두 번째 점",
"Section": "단면",
"Section position": "단면 위치",
"Sections": "단면",
"Sections (one sketch each)": "단면 (각각 스케치 하나)",
"Select Other": "다른 항목 선택",
"Select Other: hold the left button still on the model (or right-click › Select Other…) to list everything under the cursor; click again on the same spot to select the next thing there. Double-click the middle button to go Home (Preferences › Navigation).": "다른 항목 선택: 모델 위에서 왼쪽 버튼을 가만히 누르고 있거나(또는 오른쪽 클릭 › 다른 항목 선택…) 커서 아래의 모든 항목을 나열합니다. 같은 위치를 다시 클릭하면 다음 항목이 선택됩니다. 가운데 버튼을 더블 클릭하면 홈으로 이동합니다(환경설정 › 탐색).",
@@ -711,6 +714,7 @@
"cmd.appearance_pick_up": "모양 가져오기",
"cmd.appearance_replace": "모양 바꾸기",
"cmd.assembly_bom": "자재 명세서",
"cmd.assembly_mass_properties": "질량 특성",
"cmd.body.print_face": "출력 바닥면",
"cmd.body_rename": "바디 이름 변경",
"cmd.browser_group": "새 그룹",
@@ -757,6 +761,7 @@
"cmd.config_rule": "구성 규칙",
"cmd.config_rules": "구성 규칙",
"cmd.config_table": "구성 표시",
"cmd.construct.plane.axis_point": "축과 점을 지나는 평면",
"cmd.construct_axis_edge": "모서리를 통과하는 축",
"cmd.construct_axis_normal_to_face": "면에 수직인 축",
"cmd.construct_axis_through_cylinder": "원기둥/원뿔/토러스를 통과하는 축",
@@ -903,6 +908,9 @@
"cmd.pointcloud_edit": "포인트 클라우드 편집",
"cmd.pointcloud_insert": "포인트 클라우드 삽입",
"cmd.pointcloud_list": "포인트 클라우드",
"cmd.render.compare.divider": "렌더 비교 구분선 이동",
"cmd.render.result.discard": "렌더 결과 버리기",
"cmd.render.result.select": "렌더 결과 선택",
"cmd.render_backends": "렌더링 백엔드",
"cmd.render_batch": "모든 샷 렌더링",
"cmd.render_camera_fit": "렌더 대상 화면 맞춤",
@@ -1091,9 +1099,11 @@
"cmd.timeline_rollback": "타임라인 마커 이동",
"cmd.timeline_stop": "기록 재생 중지",
"cmd.timeline_suppress": "특성 비활성화",
"cmd.ui.assistant": "도우미 표시 전환",
"cmd.view.render_browser": "렌더 브라우저",
"cmd.view.render_dock": "렌더 도크 이동",
"cmd.view.render_focus": "렌더 집중 보기",
"cmd.view.status_details": "뷰포트 상태 상세 정보",
"cmd.view.status_items": "뷰포트 상태 항목",
"cmd.view_ambient_occlusion": "앰비언트 오클루전",
"cmd.view_angle_readout": "뷰 각도",
@@ -1107,14 +1117,17 @@
"cmd.view_render_frame": "렌더 프레임 가이드",
"cmd.view_save": "새 이름 있는 보기",
"cmd.view_shots_strip": "샷 스트립",
"color.blue": "파랑",
"color.copy": "클릭하여 색상 값 복사",
"color.edit": "클릭하여 색상 편집",
"color.gamma": "색상 값을 0-255 감마 공간으로 표시 중",
"color.green": "초록",
"color.hex": "Hex",
"color.hex_help": "#rrggbb 또는 #rrggbbaa 입력. 6자리 값은 불투명도 유지",
"color.hex_hint": "#rrggbb",
"color.hue": "색조",
"color.linear": "색상 값을 0-1 선형 공간으로 표시 중",
"color.red": "빨강",
"color.saturation_value": "채도 및 명도",
"color.selected": "선택한 색상",
"config.column_filter_empty": "일치하는 열이 없습니다",
@@ -1161,9 +1174,14 @@
"dialog.dimension_insert_hint": "다른 구동 치수를 두 번 클릭하여 이름 삽입",
"dialog.dimension_name": "치수: {name}",
"dialog.edit_title": "{title} 편집",
"dialog.pattern_sketch_not_object": "바디나 피처를 선택하세요. 스케치는 둘 다 아닙니다. 곡선은 스케치 안의 패턴이나 대칭 복사로 반복하거나, 먼저 돌출하세요.",
"dialog.select": "↖ 선택",
"dialog.selected_count": "↖ {count}개 선택됨",
"dialog.selection_constraint": "구속 조건 {id}",
"dialog.selection_external_curve": "{sketch} · 곡선 {id}",
"dialog.selection_guidance": "변경할 입력을 선택하세요. 선택한 객체를 클릭하면 선택이 해제되며, Ctrl/Cmd를 누른 채 클릭해도 전환됩니다. 미리 보기를 확인한 다음 확인을 누르세요.",
"dialog.selection_midpoint": "중점 · {id}",
"dialog.selection_profile": "{sketch} · 프로파일 {number}",
"dialog.selection_step": "{step}/{total} 단계: {input} 선택",
"dialog.step": "단계",
"document.save_changes": "{name}의 변경 사항을 저장하시겠습니까?",
@@ -1204,6 +1222,7 @@
"help.attributions": "저작자 표시 (ATTRIBUTION.md)",
"help.build": "버전 {version} · 커밋 {commit} · 빌드 날짜 {date}",
"help.component.finish_edit": "제자리에서 편집 중인 부품을 저장하고 어셈블리로 돌아가 그 부품으로 어셈블리를 업데이트합니다. 연결된 부품의 변경을 마쳤을 때 사용하세요.",
"help.construct.plane.axis_point": "축과 축 위에 있지 않은 점을 포함하는 구성 평면을 만듭니다. 원점 축, 구성 축, 직선 모서리 또는 스케치 직선을 선택한 다음 꼭짓점, 스케치 점 또는 구성점을 선택합니다. 축 위의 점으로는 평면을 하나로 결정할 수 없습니다.",
"help.font_details": "인터페이스는 egui의 내장 글꼴을 사용합니다(Ubuntu Font Licence 및 MIT/Bitstream Vera 라이선스의 Ubuntu Light와 Hack, OFL 및 MIT의 Noto Emoji와 이모지 아이콘 글꼴). 스케치 텍스트는 Liberation Sans(SIL OFL 1.1)를 사용합니다. The Crafting Apps의 선택적 글꼴 팩 craft-fonts(BIZ UDPGothic, Shippori Mincho, BIZ UDMincho, Noto Sans CJK SC, Noto Sans Arabic; SIL OFL 1.1)는 SolidCraft 빌드에 포함되지 않습니다.",
"help.fonts": "글꼴",
"help.licences": "라이선스",
@@ -1306,6 +1325,8 @@
"joint.from_bodies_hint": "선택한 각 바디가 제자리에 그대로 있으면서 자체의 새 구성 요소로 옮겨집니다.",
"joint.one_body": "두 선택이 모두 {body}에 있습니다. 두 번째는 다른 부품에서 선택하세요.",
"joint.one_component": "이 부품들은 한 구성 요소의 바디입니다: {bodies}. 관절은 한 구성 요소를 다른 구성 요소에 대해 움직이므로 부품마다 자체 구성 요소가 필요합니다.",
"joint_move.conflict": "이 부품의 조인트가 다른 조인트와 충돌합니다: {joint}.",
"joint_move.conflict_hint": "충돌하는 조인트를 편집, 비활성화 또는 삭제하여 다른 조인트가 부품을 배치할 수 있게 하세요.",
"keymap.command_id": "명령 ID",
"keymap.empty": "일치하는 명령이 없습니다",
"keymap.use_anyway": "그래도 여기서 {key} 사용",
@@ -1346,6 +1367,8 @@
"motion.track_name": "트랙 {number}",
"nav.alias.help": "Shift+Alt+왼쪽 드래그는 회전, Shift+Alt+가운데 드래그는 이동, Shift+Alt+오른쪽 드래그는 확대/축소입니다. 가운데 드래그로도 이동하고 오른쪽 드래그로도 회전합니다",
"nav.blender.help": "가운데 드래그는 회전, Shift+가운데 드래그는 이동, Ctrl+가운데 드래그는 확대/축소입니다. 오른쪽 드래그는 카메라에 영향을 주지 않습니다",
"nav.creo.help": "가운데 버튼을 끌면 회전, Shift+가운데 버튼은 이동, Ctrl+가운데 버튼을 위아래로 끌면 확대/축소합니다(아래로 끌면 확대). 휠을 굴려도 확대/축소합니다",
"nav.creo.label": "Creo",
"nav.free_orbit.help": "마우스와 3D 마우스로 롤을 유지하며 양 극점을 넘어 회전합니다. Shift 축 스냅은 비활성화됩니다.",
"nav.free_orbit.label": "자유 회전",
"nav.free_orbit.snap_help": "마우스와 3D 마우스로 양쪽 극점을 지나 회전할 수 있으며 롤 각도가 유지됩니다. 궤도 회전 드래그 중 Shift를 누르면 보기 방향과 롤 각도가 스냅됩니다.",
@@ -1532,6 +1555,8 @@
"prefs.button_left": "왼쪽 드래그",
"prefs.button_middle": "가운데 드래그",
"prefs.button_right": "오른쪽 드래그",
"prefs.carousel_next": "다음",
"prefs.carousel_previous": "이전",
"prefs.choose_font": "글꼴 파일 선택…",
"prefs.click": "클릭",
"prefs.contact_shading": "부드러운 접촉 음영",
@@ -1544,6 +1569,10 @@
"prefs.ctrl_cmd": "Ctrl / Cmd",
"prefs.curved_surfaces": "곡면",
"prefs.curves": "곡면",
"prefs.cut_preview_tint": "제거되는 재료를 빨간색으로 표시",
"prefs.cut_preview_tint_help": "미리 보기는 피처가 제거하는 재료와 대체되는 형상을 빨간색 반투명 고스트로 채웁니다. 끄면 이 채움이 완전히 투명해지고 윤곽선만 그려집니다.",
"prefs.dark_parts_shading": "어두운 부품의 형태 유지",
"prefs.dark_parts_shading_help": "선형 조명과 부드러운 하늘광으로 뷰를 음영 처리하여 어두운 면이 검게 뭉개지지 않고 그라데이션을 유지합니다",
"prefs.dead_zone_note": "빗금 친 영역이 데드존입니다. 그 안의 움직임은 무시됩니다.",
"prefs.default": "기본값",
"prefs.design": "설계 기본값",
@@ -1564,7 +1593,19 @@
"prefs.font_sample": "The quick brown fox · Ø12.50 mm · 45.0° · 0123456789",
"prefs.font_unreadable": "선택한 글꼴을 읽을 수 없습니다.",
"prefs.general": "일반",
"prefs.general_note": "언어, 저장 및 업데이트.",
"prefs.general.active": "사용 중",
"prefs.general.crash_reports": "충돌 보고서",
"prefs.general.edited": "수정됨",
"prefs.general.held": "포함 항목",
"prefs.general.import": "가져오기...",
"prefs.general.last_check": "마지막 확인: {time}",
"prefs.general.minutes": "분",
"prefs.general.name_setup": "이 설정의 이름",
"prefs.general.profile_name": "프로필 이름",
"prefs.general.save_new": "새로 저장",
"prefs.general.step_import": "STEP 및 가져오기",
"prefs.general.this_computer": "이 컴퓨터",
"prefs.general_note": "프로필, 언어, 파일 및 업데이트.",
"prefs.gesture_orbit": "회전",
"prefs.gesture_pan": "이동",
"prefs.gesture_zoom": "확대/축소",
@@ -1579,6 +1620,8 @@
"prefs.history_play_button": "기록 컨트롤에 기록 재생 버튼 표시",
"prefs.history_play_button_note": "기록 컨트롤의 한 단계 뒤로와 한 단계 앞으로 사이에 기록 재생을 추가합니다. 컨트롤을 마우스 오른쪽 버튼으로 클릭해 표시하거나 숨길 수도 있습니다.",
"prefs.hold_stop_snapping": "누르고 있으면 스냅 중지",
"prefs.home_fit_size": "홈·맞춤 크기",
"prefs.home_fit_size_note": "홈, 맞춤, 연 디자인 또는 뷰 탐색기의 뷰 변경으로 모델을 화면에 맞출 때 모델이 뷰에서 차지하는 비율. 아래 설정과 관계없이 적용됩니다. 100 %: 패널, 나침반, 내비게이션 바 사이의 뷰를 가득 채웁니다.",
"prefs.icons_only": "아이콘만",
"prefs.imported_file": "가져온 파일",
"prefs.input": "입력",
@@ -1587,19 +1630,22 @@
"prefs.interface_note": "SolidCraft의 모양과 각 부분의 위치입니다.",
"prefs.interval_minutes": "{n}분",
"prefs.labels": "레이블",
"prefs.language_system": "시스템",
"prefs.layout": "레이아웃",
"prefs.layout_note": "컴팩트는 패널을 창 가장자리에 고정합니다. 브라우저 반투명은 플로팅에서 사용할 수 있습니다. 어시스턴트 위치는 어시스턴트 페이지에서 바꿀 수 있습니다.",
"prefs.left": "왼쪽",
"prefs.left_click": "왼쪽 클릭",
"prefs.line_drag_draws_one": "누른 채 드래그하면 선 하나 그리기",
"prefs.line_drag_draws_one_note": "선 도구에서 누르고 드래그한 뒤 놓으면 누른 곳에서 놓은 곳까지 선 하나를 그리고 거기서 끝납니다. 클릭하면 이전처럼 이어지는 선을 그립니다. 끄면: 드래그는 클릭처럼 놓은 곳에 점을 둡니다.",
"prefs.line_hover_tangent_arc": "선의 마지막 점에 머무르면 접선 호로 전환",
"prefs.line_hover_tangent_arc_note": "선 도구에서 선분을 그린 뒤 체인의 마지막 점에서 벗어났다가 돌아와 포인터를 그 위에 멈추면, 다음 클릭으로 접선 호의 끝점을 지정합니다. 같은 동작으로 선으로 돌아갑니다. 끔: 머물러도 아무 일도 일어나지 않습니다.",
"prefs.live_input": "실시간 입력",
"prefs.live_preview": "실시간 미리보기",
"prefs.max_file_size": "열 수 있는 최대 파일 크기",
"prefs.max_file_size_design": "디자인 파일",
"prefs.max_file_size_design": "열 파일의 최대 크기: 디자인",
"prefs.max_file_size_flag": "이번 실행은 --max-file-size {size}로 시작했으며 SolidCraft를 닫을 때까지 적용됩니다. 이 설정은 해당 옵션 없이 시작할 때 적용됩니다.",
"prefs.max_file_size_note": "기본값: 512 MB 및 256 MB, 최대 16 GB. 파일을 열려면 파일 크기의 몇 배에 달하는 메모리가 필요합니다. 큰 가져오기 데이터를 보관하는 디자인은 저장하고 다시 열기 위해 디자인 파일 한도를 높여야 할 수 있습니다.",
"prefs.max_file_size_step": "STEP 및 가져오기 파일",
"prefs.max_file_size_step": "열 파일의 최대 크기: STEP 및 가져오기",
"prefs.max_file_size_web": "웹 앱은 STEP 및 가져오기 파일을 512 MB까지, 디자인을 256 MB까지 엽니다. 브라우저 탭은 더 큰 파일을 담을 수 없습니다. 데스크톱 앱에서는 이 한도를 높일 수 있습니다.",
"prefs.megabytes": "MB",
"prefs.minutes": "분",
@@ -1609,6 +1655,9 @@
"prefs.mouse_mapping": "마우스 매핑",
"prefs.navigation": "탐색",
"prefs.navigation_note": "마우스, 트랙패드, 3D 마우스로 뷰를 움직이는 방식입니다.",
"prefs.navigator_fit": "뷰 탐색기로 뷰를 바꾼 뒤 모델 맞춤",
"prefs.navigator_fit_note": "큐브의 면, 모서리, 화살표나 기즈모의 축을 클릭하면 어느 방향에서든 전체가 들어가는 한 거리(경계 구)에서 모델의 중심을 바라봅니다. 켜져 있는 동안 홈 뷰도 같은 확대/축소와 중심을 쓰므로 그 뒤에 고른 뷰는 방향만 바뀝니다. 끄면 뷰가 제자리에서 회전하며 대상과 확대/축소를 유지합니다.",
"prefs.network_locations_note": "파일 서버에 디자인을 보관하는 조직용입니다. 끄면 허용한 서버만 사용합니다.",
"prefs.not_on_gpu": "이 GPU에서는 사용할 수 없음",
"prefs.on": "켜짐",
"prefs.opaque": "불투명",
@@ -1621,8 +1670,12 @@
"prefs.persistent_ribbon_pressed_help": "효과가 켜져 있는 동안 리본 명령을 강조 표시합니다. 끄면 이전의 중립적인 모양과 명령 도움말을 유지합니다.",
"prefs.perspective_fov": "시야각",
"prefs.preview_choices": "선택 항목 미리보기",
"prefs.preview_tint_new_faces": "미리 보기에서 새 면에 색 입히기",
"prefs.preview_tint_new_faces_help": "바디를 변경하는 피처의 미리 보기에서 추가되는 면을 미리 보기 색으로 그릴 수 있습니다. 끄면 바디가 원래 색으로 그려집니다.",
"prefs.print_face_highlight": "출력 바닥면 강조",
"prefs.print_face_highlight_tip": "뷰에서 바디의 출력 바닥면을 색칠하고 윤곽을 그리는 강도입니다. 0 %이면 강조하지 않습니다.",
"prefs.profile_export": "내보내기",
"prefs.profile_imported": "프로필을 가져왔습니다.",
"prefs.project_options_dialog": "Project 옵션 대화상자",
"prefs.project_options_dialog_note": "켜기: 투영 전에 지오메트리 또는 바디와 투영 링크를 선택합니다. 끄기: 기존 직접 선택 작업 흐름을 유지합니다.",
"prefs.quality_default": "기본값",
@@ -1630,8 +1683,11 @@
"prefs.quality_slowest": "가장 느림",
"prefs.quality_smoother": "더 부드럽게",
"prefs.reports_saved": "{n}개 저장됨",
"prefs.restore_page_defaults": "페이지 기본값 복원",
"prefs.ribbon_click_ends_tool": "실행 중인 도구의 버튼을 클릭하면 도구 종료",
"prefs.ribbon_click_ends_tool_note": "사용 중인 스케치 도구의 강조된 리본 버튼을 클릭하면 도구가 종료되어 뷰에서 클릭하면 다시 선택됩니다. 끄기: 클릭하면 도구가 다시 시작됩니다.",
"prefs.right_click": "오른쪽 클릭",
"prefs.saving": "자동 저장 및 복구",
"prefs.saving": "시작 및 저장",
"prefs.scale_note": "창에서 Ctrl + / Ctrl −로도 조절합니다. 버튼은 100%에서 28 px입니다.",
"prefs.scale_text": "배율 및 텍스트",
"prefs.search": "설정 검색",
@@ -1665,6 +1721,8 @@
"prefs.sketch_tab_always_note": "스케치가 열려 있지 않을 때도 스케치 탭이 리본에서 모델 바로 다음에 남아 있습니다. 그 그리기 도구는 선택한 평면이나 면, 또는 다음에 고르는 평면에서 스케치를 시작하고 그 안에서 도구를 바로 쓸 수 있게 합니다.",
"prefs.sketch_tracking_guides": "중심 및 중점 정렬 안내선",
"prefs.sketch_tracking_guides_note": "원 중심이나 직선 모서리의 중점에 마우스를 올린 다음 수평 또는 수직으로 이동하면 임시 점선 안내선이 표시됩니다.",
"prefs.sketch_tracking_points": "그리는 동안 끝점과 모서리에서도 정렬 안내선",
"prefs.sketch_tracking_points_note": "그리기 도구가 점을 기다리는 동안 선이나 호의 끝점, 직사각형 모서리, 자유 점에 마우스를 올리면 중심이나 중점과 같은 임시 점선 안내선이 표시됩니다. 끄면: 중심과 중점만.",
"prefs.sketching": "스케치",
"prefs.snap_drawing_note": "스케치 점을 그리거나 드래그하는 동안.",
"prefs.source": "소스",
@@ -1676,6 +1734,24 @@
"prefs.status_error": "오류",
"prefs.status_selected": "선택됨",
"prefs.status_warning": "경고",
"prefs.structure.appearance": "모양",
"prefs.structure.appearance_note": "색상, 텍스트 및 접근성.",
"prefs.structure.in_profile": "프로필에 포함",
"prefs.structure.layout": "레이아웃",
"prefs.structure.layout_note": "창 구성 요소의 위치.",
"prefs.structure.look": "보기",
"prefs.structure.measure_pointer": "측정 및 포인터",
"prefs.structure.mouse3d": "3D 마우스",
"prefs.structure.mouse3d_note": "SpaceMouse 및 SpaceNavigator.",
"prefs.structure.navigation_note": "마우스와 트랙패드. 3D 마우스는 별도 페이지에 있습니다.",
"prefs.structure.profile": "프로필",
"prefs.structure.profile_edited": "저장 후 변경됨",
"prefs.structure.profile_hover": "설정 프로필에 저장됨",
"prefs.structure.scale_percent": "{percent}%",
"prefs.structure.sketch": "스케치",
"prefs.structure.tools": "도구",
"prefs.structure.tools_note": "모델링 도구의 동작.",
"prefs.structure.work": "작업",
"prefs.supersampling_brief": "뷰를 더 크게 그린 뒤 줄여서 필터링합니다. 매우 선명하지만 더 무겁습니다.",
"prefs.tab_accent_note": "강조 색상이 활성 탭을 따라갑니다",
"prefs.theme_file": "테마 파일",
@@ -1685,6 +1761,16 @@
"prefs.theme_follow_note": "다른 도구가 파일을 다시 쓸 때마다 다시 불러옵니다. 테마를 선택하면 따르기를 중지합니다.",
"prefs.theme_follow_off": "끄기",
"prefs.theme_follow_stop": "따르기 중지",
"prefs.theme_option_opacity": "불투명도",
"prefs.theme_option_opacity_help": "플로팅 패널의 불투명도를 조정합니다. 뷰포트 색상 위에서도 텍스트를 읽을 수 있도록 최솟값이 적용됩니다.",
"prefs.theme_option_tab_colours": "탭 색상",
"prefs.theme_option_tab_colours_help": "각 리본 탭에 이 테마의 패널 및 뷰포트 색상을 사용합니다.",
"prefs.theme_option_tab_fade_ms": "탭 전환",
"prefs.theme_option_tab_fade_ms_help": "탭을 전환할 때 패널 및 뷰포트 색상을 서서히 변경합니다. 0이면 즉시 전환합니다.",
"prefs.theme_options_badge": "옵션",
"prefs.theme_options_more": "더 보기 · {count}",
"prefs.theme_options_reset": "초기화",
"prefs.theme_options_unavailable": "이 기기에서는 사용할 수 없음",
"prefs.timeline_half_hour": "−30분",
"prefs.timeline_now": "지금",
"prefs.timeline_quarter_hour": "−15",
@@ -1714,6 +1800,8 @@
"prefs.viewport_analysis_status_help": "활성 해석을 뷰포트 위에 표시하고 각 항목에서 범례를 엽니다. Esc로 최신 해석을 끕니다. 끄면 모서리 범례와 이전 Esc 동작으로 돌아갑니다.",
"prefs.viewport_section_status": "뷰포트 단면 상태 표시",
"prefs.viewport_section_status_help": "뷰포트에 단면 설정을 표시합니다. Escape 키와 활성 리본 버튼으로 단면을 끕니다. 비활성화하면 이전 단면 조작을 유지합니다.",
"prefs.viewport_status_details": "뷰포트 실시간 상세 정보",
"prefs.viewport_status_details_help": "표준 상세 카드에서 활성 분석 및 단면 설정을 편집합니다. 끄면 읽기 전용 분석 범례와 단면 대화상자로 돌아갑니다.",
"prefs.viewport_status_summary": "뷰포트 상태 항목 요약",
"prefs.viewport_status_summary_help": "상태 항목이 3개 이상이면 하나의 요약 배지로 표시합니다. 비활성화하면 모든 항목을 기존 행에 표시합니다.",
"prefs.wheel": "휠",
@@ -1777,6 +1865,10 @@
"render.appearances": "외관",
"render.assign_help": "클릭하여 선택 항목에 적용하거나 드래그하여 미리 보고 놓으세요. 선택이 없으면 칠하기를 시작합니다.",
"render.background": "장면 배경",
"render.batch_all_shots": "모든 샷 ({count})",
"render.batch_empty": "모든 샷을 렌더링하기 전에 샷을 저장하세요.",
"render.batch_limit": "한 번에 최대 32개의 샷을 렌더링할 수 있습니다.",
"render.batch_status": "{running}개 실행 중 · {waiting}개 대기 중",
"render.bloom_enable": "표시 블룸",
"render.bloom_help": "양의 선형 하이라이트를 세 번의 정규화 필터로 확산하는 출력 전용 효과입니다. 반경은 출력 픽셀 단위이며 sRGB 전에 더합니다. 렌즈·볼륨·수렴 개선이 아니며 원본 EXR은 변하지 않습니다.",
"render.bloom_opaque": "블룸에는 불투명 출력이 필요합니다. 투명 PNG를 몰래 합성하지 않고 거부합니다.",
@@ -1868,6 +1960,13 @@
"render.children.workstation": "워크스테이션",
"render.choose_look": "먼저 외관 라이브러리에서 외관을 선택하세요",
"render.clear_stage": "Remove saved stage",
"render.compare_divider": "비교 구분선",
"render.compare_live": "라이브",
"render.compare_live_preview": "라이브 미리보기",
"render.compare_render": "렌더 {number}",
"render.compare_side": "렌더 {number} · {shot}",
"render.compare_summary": "{shot} · {width} × {height} · PNG · {seconds}초 · {renderer} · 리비전 {revision}에서 캡처",
"render.compare_swap": "맞바꾸기",
"render.cpu_budget": "CPU 리소스 프로필",
"render.cpu_budget_bodies": "바디 수 상한",
"render.cpu_budget_compact": "컴팩트 (기존 제한)",
@@ -2336,6 +2435,10 @@
"render.result_actual": "100%",
"render.result_actual_size": "100%",
"render.result_reduced_display": "표시 미리보기를 뷰포트 장치 또는 캐시 제한에 맞춰 축소했습니다. 보관된 PNG와 내보내기는 전체 해상도를 유지합니다. 이 축소 보기에서는 원본 100% 검사가 불가능합니다.",
"render.results_choose": "보관된 결과",
"render.results_label": "렌더 {number} · {shot} · {seconds}초",
"render.results_stale_label": "{result} [이전 버전]",
"render.results_unnamed": "이미지",
"render.return_design": "설계로 돌아가기",
"render.ribbon_backgrounds": "배경",
"render.ribbon_check": "검사",
@@ -2876,12 +2979,15 @@
"ui.agent_chat_auth_terminal": "터미널에서 이것을 실행한 뒤 다시 연결을 누르세요:",
"ui.agent_chat_auth_title": "에이전트에 로그인",
"ui.agent_chat_cancel": "취소",
"ui.agent_chat_cancel_timeout": "에이전트가 중지 요청에 응답하지 않아 연결이 끊어졌습니다. 계속하려면 다시 연결하세요.",
"ui.agent_chat_cannot_start": "설치되어 있지만 시작되지 않습니다: {error}",
"ui.agent_chat_changes": "변경 {n}개, 실행 취소 한 번",
"ui.agent_chat_changes_of": "변경 {n}/{limit}",
"ui.agent_chat_close": "닫기",
"ui.agent_chat_command": "에이전트 명령",
"ui.agent_chat_connect": "연결",
"ui.agent_chat_copy": "복사",
"ui.agent_chat_custom_heading": "사용자 지정 모델",
"ui.agent_chat_custom_hint": "표준 입출력으로 Agent Client Protocol을 사용하는 모든 프로그램. 셸 없이 실행됩니다.",
"ui.agent_chat_denied": "거부함",
"ui.agent_chat_deny": "거부",
@@ -2923,7 +3029,15 @@
"ui.agent_chat_mode_all": "모두",
"ui.agent_chat_mode_ask": "확인",
"ui.agent_chat_mode_edits": "편집",
"ui.agent_chat_model_custom": "직접 입력 사용: {model}",
"ui.agent_chat_model_rejected": "에이전트가 {model}을(를) 받아들이지 않았습니다: {error}",
"ui.agent_chat_model_search": "모델 검색…",
"ui.agent_chat_model_tip": "에이전트가 사용하는 모델입니다. 선택은 이 에이전트에 기억됩니다.",
"ui.agent_chat_models_failed": "모델 목록을 가져올 수 없습니다: {error}",
"ui.agent_chat_models_heading": "사용 가능한 모델",
"ui.agent_chat_models_listing": "모델 목록을 가져오는 중…",
"ui.agent_chat_models_none": "엔드포인트에 나열된 모델이 없습니다",
"ui.agent_chat_models_not_a_list": "응답이 모델 목록이 아닙니다",
"ui.agent_chat_new": "새 채팅",
"ui.agent_chat_new_confirm": "새 채팅을 시작할까요? 현재 채팅은 지워집니다.",
"ui.agent_chat_next_picture": "다음 이미지",
@@ -2952,6 +3066,7 @@
"ui.agent_chat_queued_stopped": "대기 중 (중지됨, 보내지 않음)",
"ui.agent_chat_refresh": "새로 고침",
"ui.agent_chat_refused": "에이전트에게 허용되지 않음: {reason}",
"ui.agent_chat_reinstall": "{agent}이(가) 설치되어 있지만({program}) SolidCraft가 확인할 때 시작되지 않았습니다: {error}\n설치가 완료되지 않았거나 다른 종류의 컴퓨터용일 수 있습니다. `{install}`(으)로 다시 설치하고, 터미널에서 버전이 출력되는지 확인한 뒤 새로 고침을 누르세요.",
"ui.agent_chat_remove": "대기열에서 제거",
"ui.agent_chat_remove_file": "이 메시지에서 빼기",
"ui.agent_chat_remove_imported": "이 메시지에서 빼기. 부품은 디자인에 남습니다 (실행 취소하면 제거됨)",
@@ -3010,12 +3125,17 @@
"ui.ai_copy_suffix": "복사본",
"ui.ai_custom_url": "사용자 지정 URL",
"ui.ai_default": "기본값",
"ui.ai_edit": "편집",
"ui.ai_edit_agent_title": "에이전트 편집",
"ui.ai_edit_gone": "이 에이전트는 제거되었으므로 저장할 내용이 없습니다.",
"ui.ai_edit_tip": "이 에이전트의 이름, 명령 또는 엔드포인트를 변경합니다. 저장된 키는 표시되지 않습니다.",
"ui.ai_http_busy": "엔드포인트가 바쁘거나 한도에 도달했습니다. 나중에 다시 시도하세요",
"ui.ai_http_key": "엔드포인트가 키를 거부했습니다. 환경 설정 > AI에서 확인하세요",
"ui.ai_http_not_found": "엔드포인트나 모델을 찾을 수 없습니다. 기본 URL과 모델 이름을 확인하세요",
"ui.ai_http_too_large": "대화가 이 엔드포인트에 비해 너무 큽니다. 새 채팅을 시작하세요",
"ui.ai_key": "API 키",
"ui.ai_key_hint": "선택 사항, 시스템 키체인에 저장",
"ui.ai_key_keep_hint": "저장된 키를 유지하려면 비워 두세요",
"ui.ai_key_needs_https": "키는 HTTPS를 통해서만, 또는 이 컴퓨터로만 전송됩니다.",
"ui.ai_key_note": "SolidCraft 설정이 아닌 시스템 키체인에 저장됩니다. 로컬 서버라면 비워 두세요.",
"ui.ai_keychain_error": "시스템 키체인이 거부했습니다: {error}",
@@ -3042,6 +3162,7 @@
"ui.ai_preset": "프리셋",
"ui.ai_remove": "제거",
"ui.ai_reset": "재설정",
"ui.ai_save": "저장",
"ui.ai_settings": "AI 설정…",
"ui.ai_show_features": "AI 기능 표시",
"ui.ai_show_features_note": "에이전트 채팅: 이미 사용 중인 코딩 에이전트나 선택한 모델 엔드포인트가 열린 디자인을 다루는 패널입니다. 끄면 AI 버튼, 단축키, 메뉴 항목, 패널이 없고 아무것도 찾거나 시작하지 않습니다.",
@@ -3134,6 +3255,8 @@
"ui.coming_later": "추후 지원 예정",
"ui.command_done": "{command} 완료",
"ui.command_palette_hint": "명령 입력(예: {example}) — 또는 S 키를 눌러 검색",
"ui.components_from_bodies_hint": "활성 구성요소 아래에 선택한 각 바디와 같은 이름의 구성요소를 만듭니다.",
"ui.components_from_bodies_required": "바디를 하나 이상 선택하세요.",
"ui.concentric": "동심",
"ui.cone": "원뿔",
"ui.conic_curve": "원뿔 곡선",
@@ -3146,9 +3269,11 @@
"ui.construction.contact_hint": "접선: 원/원호 또는 열린 스플라인/원뿔 곡선 선택 후 접점 선택 (자유 곡선은 끝점만)",
"ui.construction.external_hint": "접선: 원 또는 원호, 외부 점, 원하는 해를 차례로 선택",
"ui.construction.free_hint": "보조 직선: 두 점 클릭; 마우스 오른쪽 버튼으로 다시 시작",
"ui.construction.normal_needs_length": "무한 직선은 항상 보조선입니다. 일반 선을 그리려면 길이를 입력하세요",
"ui.construction.point_hint": "보조 직선: 통과할 점 클릭",
"ui.construction.reference_hint": "보조 직선: 직선 선택 후 점 선택; 마우스 오른쪽 버튼으로 참조 변경",
"ui.construction.ribbon_label": "보조선",
"ui.construction.side_hint": "보조 직선: 선이 뻗어 나갈 쪽 클릭; 마우스 오른쪽 버튼으로 다시 시작",
"ui.context_menu": "컨텍스트 메뉴",
"ui.continuity_g0": "G0 꺾임",
"ui.continuity_g1": "G1 접선",
@@ -3174,6 +3299,7 @@
"ui.dark": "어둡게",
"ui.default_modelling_orientation": "기본 모델링 방향",
"ui.delete": "삭제",
"ui.delete_select_first": "먼저 삭제할 항목을 선택하세요: 피처, 바디, 컴포넌트 또는 스케치 형상",
"ui.depth": "깊이",
"ui.design": "디자인",
"ui.design_properties.author": "작성자",
@@ -3187,6 +3313,40 @@
"ui.design_properties.part_number": "부품 번호",
"ui.design_properties.project": "프로젝트",
"ui.design_properties.revision": "리비전",
"ui.details_access_caption": "선택한 방향에서 공구가 각 면에 도달할 수 있는지 표시합니다.",
"ui.details_angle": "각도",
"ui.details_continuity_caption": "선택한 이음부를 편집합니다. 다른 이음부는 각자의 설정을 유지합니다.",
"ui.details_continuity_stale": "이전 형상입니다. 이 이음부를 편집하거나 화면에 맞추려면 분석을 다시 실행하세요.",
"ui.details_copy_list": "목록 복사",
"ui.details_curvature": "곡률 공차",
"ui.details_curvature_caption": "각 면의 국소 곡률 반지름에 따라 색상이 표시됩니다.",
"ui.details_direction": "공구 방향",
"ui.details_draft_caption": "금형 분리 방향에 대한 각 면의 각도에 따라 색상이 표시됩니다.",
"ui.details_edit_seam": "이음부 편집",
"ui.details_fixture": "UI 구성 요소 예시 — 샘플 데이터만 표시",
"ui.details_fixture_caption": "설명용 값을 사용하는 UI 구성 요소 예시입니다. 모델의 분석 결과가 아닙니다.",
"ui.details_fixture_problem": "문제가 있는 결과 예시",
"ui.details_fixture_readout": "측정값 예시",
"ui.details_flip": "뒤집기",
"ui.details_gap": "간격",
"ui.details_hatch": "절단면 해칭",
"ui.details_jump": "곡률 불연속",
"ui.details_key": "범례",
"ui.details_offset": "오프셋",
"ui.details_plane": "평면",
"ui.details_pull": "금형 분리 방향",
"ui.details_radius": "반지름",
"ui.details_readout": "측정값",
"ui.details_samples": "샘플 수",
"ui.details_seam": "{body} · 모서리 {edge}",
"ui.details_settings": "설정",
"ui.details_sharp_gap": "날카로운 이음 또는 간격",
"ui.details_show_all": "전체 {count}개 표시",
"ui.details_smooth": "매끄러움",
"ui.details_stripes": "줄무늬",
"ui.details_target": "형상에 맞게 보기 조정",
"ui.details_worst_seams": "연속성이 가장 나쁜 이음부",
"ui.details_zebra_caption": "반사된 줄무늬는 면이 얼마나 매끄럽게 이어지는지 보여 줍니다.",
"ui.diameter": "지름",
"ui.dimension": "치수",
"ui.direct_interaction": "직접 조작",
@@ -3231,6 +3391,7 @@
"ui.edit_in_place_saved_elsewhere": "부품이 다른 파일에 저장되었습니다. 어셈블리는 여전히 {name}에 연결되어 있습니다",
"ui.edit_in_place_wait": "디자인에서 실행 중인 작업이 끝날 때까지 기다리세요",
"ui.edit_section_analysis": "단면 분석 편집",
"ui.edit_sketch_empty": "편집할 스케치가 없습니다",
"ui.ellipse": "타원",
"ui.emboss_wrap_note": "지원되는 원통에 접하는 직교 선 프로파일은 자동으로 감깁니다. 대상을 고르려면 벽을 선택하세요.",
"ui.end_radius": "끝 반지름",
@@ -3241,12 +3402,15 @@
"ui.equation_explicit": "명시적",
"ui.equation_form": "형식",
"ui.equation_note": "변수는 단위가 없는 수입니다. sin(t)는 라디안으로 읽습니다. 단위가 없는 결과는 디자인 단위입니다.",
"ui.equation_note_range": "변수는 범위와 같이 길이입니다. 길이 매개변수와 함께 쓸 수 있으며, sin()에는 길이로 나누어 넣습니다. 단위가 없는 결과는 디자인 단위로 읽습니다.",
"ui.equation_parametric": "매개변수식",
"ui.equation_variable_unit": "변수에 범위의 단위 사용",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "등가 반지름",
"ui.expand": "펼치기",
"ui.explode_needs_two_components": "분해 보기는 구성 요소를 서로 떼어 놓으므로 설계에 구성 요소가 두 개 이상 있어야 합니다(새 구성 요소, 설계 삽입 또는 바디로 구성 요소 만들기)",
"ui.exportDxf": "DXF 내보내기…",
"ui.export_ellipsis_keymap": "내보내기…",
"ui.export_keymap_tip": "키, S 상자 즐겨찾기, 도구 모음을 파일로 내보내기",
@@ -3396,6 +3560,7 @@
"ui.insert_design.saved_file": "{name}에 저장되지 않은 변경 사항이 있어 저장된 파일을 삽입했습니다. 저장한 다음 링크 업데이트로 변경 사항을 가져오세요.",
"ui.insert_design.unsaved": "저장되지 않은 변경 사항",
"ui.inspect": "검사",
"ui.instances": "인스턴스",
"ui.intersect": "교차",
"ui.isolate": "분리 표시",
"ui.join": "접합",
@@ -3404,12 +3569,14 @@
"ui.joints": "조인트",
"ui.keyboard_shortcuts": "키보드 단축키",
"ui.language": "언어",
"ui.lasso_select": "올가미(자유롭게 둘러 그리기: 완전히 안쪽에 있는 것을 선택)",
"ui.layout_compact": "컴팩트",
"ui.layout_floating": "플로팅",
"ui.length": "길이",
"ui.length_decimals": "길이 소수점 자릿수",
"ui.light": "밝게",
"ui.line": "선",
"ui.line_arc_hint": "접선 호: 호의 끝점을 클릭합니다. 선으로 돌아가려면 마지막 점에 다시 머무르고, 끝내려면 오른쪽 클릭 또는 Esc를 누릅니다",
"ui.lock": "잠금",
"ui.loft": "로프트",
"ui.look_at": "바라보기",
@@ -3489,6 +3656,7 @@
"ui.part_size_shared": "부품을 다시 빌드하며 추가된 피처는 모두 대체됩니다. 이 구성요소의 모든 인스턴스가 업데이트됩니다.",
"ui.paste": "붙여넣기",
"ui.path": "경로",
"ui.pattern_object_type_tip": "바디: 뷰나 브라우저에서 선택하는 솔리드 형상이며, 각각 통째로 복사됩니다.\n피처: 돌출이나 구멍 같은 기록의 단계이며, 기록에서 또는 그 단계가 만든 면에서 선택합니다. 그 단계가 반복됩니다.\n스케치는 둘 다 아닙니다. 곡선은 스케치 안의 패턴이나 대칭 복사로 반복하거나, 먼저 돌출하세요.",
"ui.pattern_on_path": "경로 패턴",
"ui.perpendicular": "수직",
"ui.perspective_view": "원근 투영 뷰",
@@ -3520,9 +3688,9 @@
"ui.polygon": "다각형",
"ui.preferences": "환경 설정",
"ui.press_a_key": "키를 누르세요…",
"ui.print_face_body_not_sent": "이 면의 바디는 보내지지 않습니다. 먼저 바디에 추가하십시오",
"ui.print_face_cleared": "{body}: 출력 바닥면을 해제했습니다",
"ui.print_face_input": "출력 바닥면",
"ui.print_face_one_body": "출력 바닥면은 바디마다 하나입니다. 변경하려면 그 바디만 보내십시오",
"ui.print_face_pick": "솔리드 바디의 평면 하나를 선택하면 출력 바닥면이 됩니다",
"ui.print_face_set": "{body}: 출력 바닥면을 설정했습니다. 슬라이서로 보내면 이 면이 아래로 놓입니다",
"ui.profile": "프로파일",
@@ -3540,6 +3708,7 @@
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "측정 중…",
"ui.properties.measuring_bodies": "측정 중… 바디 {total}개 중 {done}개",
"ui.properties.measuring_failed": "측정이 끝나기 전에 중단되었습니다.",
"ui.properties.principal_axis": "주축 {number}",
"ui.properties.principal_moments": "주관성 모멘트",
@@ -3644,6 +3813,7 @@
"ui.slice": "슬라이스",
"ui.slicer": "슬라이서",
"ui.slicer_delete_tip": "{program}\nDelete 키로 목록에서 제거",
"ui.slicer_single_instance_tip": "실행 중인 창에 파일을 불러오는 슬라이서용입니다.",
"ui.slot": "슬롯",
"ui.smooth": "부드럽게",
"ui.smooth_wheel_zoom": "부드러운 휠 확대/축소",
@@ -3773,7 +3943,7 @@
"update.available": "SolidCraft {version} 사용 가능",
"update.button": "업데이트",
"update.button_version": "{version}(으)로 업데이트",
"update.check_automatically": "업데이트 자동 확인",
"update.check_automatically": "시작 시 및 하루에 한 번 확인",
"update.check_for_updates": "업데이트 확인",
"update.check_now": "지금 확인",
"update.check_unavailable": "이 설치에서는 업데이트를 확인할 수 없습니다.",
+445 -1
View File
@@ -60,6 +60,7 @@
"BLEND SURFACE": "PERMUKAAN GAUNAN",
"BOUNDARY SURFACE": "PERMUKAAN SEMPADAN",
"BROWSER": "PELAYAR",
"Back to the original order": "Kembali ke susunan asal",
"Ball": "Bebola",
"Bar": "Bar",
"Base Center": "Pusat Tapak",
@@ -595,6 +596,8 @@
"Snap to face and edge centres": "Lekap pada pusat muka dan tepi",
"SolidCraft cannot submit reports directly. Submit on GitHub; no token is needed in the app.": "SolidCraft tidak dapat menghantar laporan secara terus. Hantar di GitHub; tiada token diperlukan dalam aplikasi.",
"SolidCraft closed before these designs were saved. Their last autosave can be opened.": "SolidCraft ditutup sebelum reka bentuk disimpan. Buka simpanan automatik terakhirnya.",
"Sort A to Z": "Isih A hingga Z",
"Sort Z to A": "Isih Z hingga A",
"Spacing 2 must be a non-zero number": "Selang 2 mestilah nombor bukan sifar",
"Spacing must be a non-zero number": "Selang mestilah nombor bukan sifar",
"Specialise": "Khususkan",
@@ -790,6 +793,13 @@
"browser.sketch_attachment_lost": "{name} (pautan hilang)",
"browser.sketch_editing": "{name} (sedang disunting)",
"browser.sketch_name": "Lakaran{number}",
"browser.sketches_to_parts_already_in_part": "sudah berada dalam bahagiannya",
"browser.sketches_to_parts_design_body": "pada jasad reka bentuk itu sendiri",
"browser.sketches_to_parts_moved": "{moved} lakaran dialihkan ke bahagian tempat lakaran itu berada",
"browser.sketches_to_parts_no_exact_attachment": "pada muka tanpa pautan yang tepat",
"browser.sketches_to_parts_not_on_face": "bukan pada muka sesuatu bahagian",
"browser.sketches_to_parts_part_missing": "bahagiannya sudah tiada",
"browser.sketches_to_parts_result": "{moved} lakaran dialihkan ke bahagian tempat lakaran itu berada; {stayed} kekal di tempatnya: {why}",
"browser.units": "Unit: {units}",
"cam.flat": "Muka rata",
"cam.follower": "Pengikut",
@@ -819,6 +829,7 @@
"cmd.appearance_pick_up": "Ambil Penampilan",
"cmd.appearance_replace": "Gantikan Penampilan",
"cmd.assembly_bom": "Senarai Bahan",
"cmd.assembly_mass_properties": "Sifat jisim",
"cmd.body.print_face": "Muka cetakan",
"cmd.body_rename": "Tukar Nama Jasad",
"cmd.browser_collapse_all": "Ringkaskan Semua",
@@ -856,6 +867,7 @@
"cmd.component_move_bodies": "Alih Jasad ke Komponen",
"cmd.component_move_features": "Alih Ciri ke Komponen",
"cmd.component_move_sketches": "Alih Lakaran ke Komponen",
"cmd.component_move_sketches_to_parts": "Alihkan Lakaran ke Bahagian Masing-masing",
"cmd.component_paste_from_design": "Tampal daripada Reka Bentuk Lain",
"cmd.component_paste_new": "Tampal Baharu",
"cmd.component_properties": "Sifat Fizikal Komponen",
@@ -1191,6 +1203,7 @@
"cmd.sketch_spline_control_point_5": "Splin Titik Kawalan (Darjah 5)",
"cmd.sketch_spline_fit_point": "Splin Titik Padanan",
"cmd.sketch_spline_insert_point": "Tambah Titik Splin",
"cmd.sketch_spline_remove_point": "Buang Titik Splin",
"cmd.sketch_spline_reverse": "Songsangkan Arah Splin",
"cmd.sketch_spun_profile": "Profil Putaran",
"cmd.sketch_toggle_diameter": "Togol Jejari / Diameter",
@@ -1244,6 +1257,7 @@
"cmd.view.render_browser": "Pelayar Render",
"cmd.view.render_dock": "Alih Dok Render",
"cmd.view.render_focus": "Pandangan Fokus Render",
"cmd.view.status_details": "Butiran Status Tetingkap Pandangan",
"cmd.view.status_items": "Item Status Tetingkap Pandangan",
"cmd.view_ambient_occlusion": "Oklusi Ambien",
"cmd.view_angle_readout": "Sudut Pandangan",
@@ -1282,8 +1296,14 @@
"color.hex_hint": "#rrggbb",
"color.hue": "Rona",
"color.linear": "Memaparkan nilai warna dalam ruang linear 0-1",
"color.recent": "Warna terkini",
"color.recent_help": "Warna yang anda pilih dalam mana-mana medan warna dipaparkan di sini",
"color.saturation": "Ketepuan (peratus)",
"color.saturation_value": "Ketepuan dan nilai",
"color.selected": "Warna dipilih",
"color.step_down": "Turunkan",
"color.step_up": "Naikkan",
"color.value": "Nilai, iaitu kecerahan (peratus)",
"config.column_filter_empty": "Tiada lajur yang sepadan",
"contact.components_count": "{count} komponen",
"contact.enabled_label": "diaktifkan",
@@ -1330,6 +1350,7 @@
"dialog.dimension_name": "Dimensi: {name}",
"dialog.edit_title": "SUNTING {title}",
"dialog.no_shown_body": "Tiada jasad dipaparkan untuk diubah: paparkan satu, atau pilih Jasad Baharu",
"dialog.pattern_sketch_not_object": "Pilih jasad atau ciri: lakaran bukan kedua-duanya. Ulang lengkungnya dengan Corak atau Cermin milik lakaran itu sendiri, atau semperit dahulu.",
"dialog.select": "↖ Pilih",
"dialog.selected_count": "↖ {count} dipilih",
"dialog.selection_guidance": "Pilih input untuk diubah. Klik objek dipilih untuk nyahpilih; Ctrl/Cmd+klik juga menogol pilihan. Semak pratonton, kemudian tekan OK.",
@@ -1387,21 +1408,168 @@
"from the rule": "daripada peraturan",
"help.apache": "Lesen Apache 2.0",
"help.appearance.assign": "Memberikan warna atau rupa bahan kepada jasad, muka atau komponen yang dipilih, tanpa mengubah beratnya. Gunakan untuk membezakan bahagian atau melihat pratonton kemasan.",
"help.assembly.bom": "Menyenaraikan bahagian reka bentuk atau komponen beserta kuantitinya, mengikut nombor bahagian, dan boleh menyimpan senarai itu sebagai CSV atau JSON. Gunakan sebagai senarai bahagian untuk pesanan dan pemasangan.",
"help.attributions": "Atribusi (ATTRIBUTION.md)",
"help.build": "Versi {version} · commit {commit} · dibina {date}",
"help.canvas.decal": "Meletakkan imej pada muka rata model, seperti pelekat. Gunakan untuk memaparkan label, logo atau corak bercetak pada sesuatu bahagian.",
"help.canvas.edit": "Mengubah kanvas: kedudukan, saiz, sudut, kelegapan, pencerminan, keterlihatan atau namanya. Gunakan untuk menjajarkan imej rujukan dengan lakaran yang anda surih.",
"help.canvas.insert": "Meletakkan imej PNG atau JPEG pada satah atau muka sebagai rujukan lut sinar. Gunakan untuk menyurih foto atau lukisan dalam lakaran, dengan imej berskala pada saiz yang diketahui.",
"help.component.break_link": "Memutuskan komponen terpaut daripada fail reka bentuknya dan mengekalkan jasadnya seperti sedia ada. Gunakan apabila bahagian itu tidak lagi perlu mengikut perubahan pada fail asal.",
"help.component.capture_position": "Menyimpan kedudukan bahagian yang anda alihkan dengan tangan, supaya kedudukan itu menjadi tempat bahagian tersebut. Gunakan selepas menyeret bahagian ke tempatnya yang tidak dipegang oleh sendi.",
"help.component.create": "Menambah komponen baharu yang kosong ke dalam reka bentuk, di dalam komponen aktif melainkan anda memilih induk lain. Gunakan untuk memberi bahagian baharu pemasangan tempatnya sendiri bagi jasad dan lakaran.",
"help.component.finish_edit": "Menyimpan bahagian yang sedang anda sunting di tempat, kembali ke pemasangannya dan mengemas kini pemasangan daripadanya. Gunakannya apabila perubahan anda pada bahagian terpaut sudah selesai.",
"help.component.from_bodies": "Menjadikan setiap jasad yang dipilih sebagai komponen tersendiri, dinamakan sempena jasad itu. Gunakan apabila reka bentuk yang dibina daripada jasad berasingan patut menjadi pemasangan yang bahagiannya boleh disambung dan digerakkan.",
"help.component.insert_design": "Menyisip reka bentuk tersimpan lain sebagai komponen yang dipautkan ke failnya, dengan jasad pepejalnya diletakkan seperti dalam fail itu. Gunakan untuk menggunakan semula bahagian dalam pemasangan dan menerima perubahan kemudian dengan Kemas Kini Pautan.",
"help.component.properties": "Memaparkan isi padu, jisim, pusat jisim dan momen inersia sesebuah komponen, menggunakan bahan jasadnya. Gunakan untuk menyemak berat dan keseimbangan pemasangan.",
"help.component.revert_position": "Mengembalikan bahagian yang anda alihkan dengan tangan ke tempat asalnya, dengan membuang pergerakan yang tidak dirakam. Gunakan untuk membuat asal pergerakan percubaan dalam pemasangan.",
"help.component.update_links": "Membaca semula fail reka bentuk terpaut dan menggantikan jasad yang telah berubah. Gunakan selepas menyunting bahagian yang digunakan oleh pemasangan ini.",
"help.config.configure": "Menambah parameter, ciri, bahan atau penampilan sebagai lajur jadual konfigurasi. Gunakan untuk membina varian satu reka bentuk, seperti pelbagai saiz sesuatu bahagian.",
"help.config.preview": "Menyemak bahawa satu baris jadual konfigurasi dapat dibina semula, tanpa mengubah reka bentuk atau sejarahnya. Gunakan sebelum bertukar kepada varian yang anda tidak pasti.",
"help.config.rules": "Memaparkan peraturan jadual konfigurasi, barisnya dan baris yang aktif. Gunakan untuk melihat cara varian sesuatu reka bentuk disediakan.",
"help.config.table": "Memaparkan jadual konfigurasi: satu baris bagi setiap varian, satu lajur bagi setiap parameter atau ciri, dan sama ada reka bentuk masih sepadan dengan baris aktif. Gunakan untuk menyemak varian sesuatu reka bentuk.",
"help.connect_note": "Mulakan semula setiap pembantu untuk memuatkan pelayan SolidCraft. Setiap fail telah disandarkan sebagai .bak sebelum diubah.",
"help.connect_title": "Sambungkan pembantu AI",
"help.construct.axis.edge": "Mencipta paksi binaan sepanjang tepi lurus atau garis lakaran. Gunakan sebagai paksi untuk Putar, corak membulat atau sendi.",
"help.construct.axis.normal_to_face": "Mencipta paksi binaan melalui satu titik, serenjang dengan muka. Gunakan sebagai paksi yang tegak keluar dari permukaan.",
"help.construct.axis.through_cylinder": "Mencipta paksi binaan melalui pusat muka silinder, kon atau torus, atau tepi bulat. Gunakan untuk memutar atau mencorak ciri di sekeliling bahagian bulat.",
"help.construct.axis.two_planes": "Mencipta paksi binaan di tempat dua satah atau muka rata bertemu. Gunakan apabila paksi yang diperlukan ialah garis antara dua muka.",
"help.construct.axis.two_points": "Mencipta paksi binaan melalui dua titik, bucu atau titik lakaran. Gunakan untuk paksi yang menghubungkan dua kedudukan yang diketahui.",
"help.construct.plane.along_path": "Mencipta satah binaan yang serenjang dengan tepi atau lengkung, pada satu kedudukan sepanjangnya. Gunakan untuk melakar profil bagi Sapu atau keratan sesuatu laluan.",
"help.construct.plane.at_angle": "Mencipta satah binaan yang dipusingkan pada satu sudut daripada satah atau muka, pada paksi atau tepi. Gunakan untuk lakaran condong, seperti braket bersudut.",
"help.construct.plane.midplane": "Mencipta satah binaan di tengah-tengah antara dua satah atau muka rata, atau yang membahagi dua kedua-duanya di tempat ia bertemu pada satu sudut. Gunakan sebagai satah simetri untuk pencerminan.",
"help.construct.plane.offset": "Mencipta satah binaan yang selari dengan satah atau muka rata, pada satu jarak atau melalui satu titik. Gunakan untuk melakar pada ketinggian tertentu di atas sesuatu muka.",
"help.construct.plane.perpendicular": "Mencipta satah binaan yang memuatkan garis atau tepi dan berdiri serenjang dengan satah atau muka. Gunakan untuk melakar secara tegak pada model sepanjang tepi.",
"help.construct.plane.tangent": "Mencipta satah binaan yang menyentuh silinder, kon, sfera atau torus pada satu titik. Gunakan untuk melakar pada sisi bahagian bulat.",
"help.construct.plane.three_points": "Mencipta satah binaan melalui tiga titik. Gunakan untuk satah yang ditentukan oleh kedudukan pada model, seperti tiga bucu.",
"help.construct.plane.two_edges": "Mencipta satah binaan melalui dua tepi atau garis lurus yang terletak pada satu satah. Gunakan untuk satah merentasi sesuatu bahagian, seperti melalui dua tepi yang bertentangan.",
"help.construct.point.along_path": "Mencipta titik binaan pada satu kedudukan sepanjang tepi atau lengkung. Gunakan sebagai rujukan di pertengahan laluan.",
"help.construct.point.center": "Mencipta titik binaan di pusat tepi bulat, bulatan atau lengkok lakaran, sfera atau torus. Gunakan sebagai rujukan untuk lubang, paksi dan sendi.",
"help.construct.point.edge_plane": "Mencipta titik binaan di tempat tepi atau garis melalui satah atau muka rata. Gunakan untuk menandakan tempat laluan merentasi satah.",
"help.construct.point.three_planes": "Mencipta titik binaan di tempat tiga satah atau muka rata bertemu. Gunakan sebagai rujukan sudut, walaupun model tiada bucu di situ.",
"help.construct.point.two_edges": "Mencipta titik binaan di tempat dua tepi atau garis bertemu, atau paling hampir antara satu sama lain. Gunakan sebagai rujukan pada sudut maya.",
"help.construct.point.vertex": "Mencipta titik binaan pada bucu atau titik lakaran. Gunakan sebagai rujukan yang kekal apabila lakaran atau jasad di sekelilingnya disembunyikan.",
"help.contact.check": "Menyenaraikan pasangan bahagian dalam set sentuhan yang menembusi satu sama lain pada kedudukan semasa. Gunakan untuk mencari perlanggaran sebelum anda menggerakkan sendi atau menjalankan kajian gerakan.",
"help.contact.create": "Mengumpulkan dua atau lebih bahagian ke dalam satu set sentuhan, yang jasadnya dihalang daripada menembusi satu sama lain semasa sendi bergerak. Gunakan untuk bahagian yang patut berhenti apabila bersentuhan, seperti tuil terhadap penahannya.",
"help.contact.disable_all": "Mematikan sentuhan, supaya sendi yang digerakkan dan kajian gerakan tidak lagi berhenti di tempat bahagian bersentuhan. Gunakan untuk menggerakkan bahagian dengan bebas semula, atau untuk memastikan pemasangan besar kekal responsif.",
"help.contact.edit": "Mengubah set sentuhan: bahagian yang dipegangnya, namanya, atau sama ada ia dinyahaktifkan; ia juga boleh memadam set itu. Gunakan untuk melaraskan bahagian mana yang dihalang daripada menembusi satu sama lain.",
"help.contact.enable_all": "Memasukkan setiap bahagian pemasangan ke dalam satu set sentuhan, supaya tiada dua bahagian dapat menembusi satu sama lain semasa sendi bergerak. Gunakan untuk semakan pantas seluruh mekanisme.",
"help.contact.enable_sets": "Mengaktifkan sentuhan bagi set sentuhan yang anda takrifkan, supaya sendi yang digerakkan dan kajian gerakan berhenti di tempat bahagiannya akan menembusi satu sama lain. Gunakan untuk memulihkan set anda selepas mematikan sentuhan.",
"help.contact.list": "Menyenaraikan set sentuhan dalam reka bentuk, bahagian dalam setiap satu dan sama ada sentuhan diaktifkan. Gunakan untuk menyemak cara sentuhan disediakan sebelum anda menggerakkan pemasangan.",
"help.document.inspect": "Memaparkan gambaran keseluruhan reka bentuk: komponen, jasad, lakaran, ciri dan parameternya. Gunakan untuk memahami reka bentuk yang bukan anda bina sendiri.",
"help.document.units": "Menukar unit yang digunakan reka bentuk untuk memaparkan panjang, seperti mm atau inci. Geometri kekal bersaiz sama; hanya paparan dan nombor biasa yang mengikutinya.",
"help.edit.checkpoint": "Mengingati reka bentuk, lakaran aktif dan sejarah Buat Asal seperti keadaan sekarang. Gunakan sebelum mencuba sesuatu yang berisiko dan mungkin hendak anda kembali daripadanya.",
"help.edit.restore_checkpoint": "Kembali ke titik semak, termasuk sejarah Buat Asal. Gunakan untuk membuang semua yang dilakukan sejak titik semak dalam satu langkah.",
"help.explode.create": "Mencipta pandangan terlerai yang menolak bahagian menjauhi pusat pemasangan, atau mengikut pergerakan yang anda tetapkan. Gunakan untuk menunjukkan cara pemasangan disatukan, bagi arahan atau pembentangan.",
"help.face.delete": "Membuang muka yang dipilih dan membiarkan muka bersebelahan menutup ruang kosong itu, atau membiarkannya terbuka sebagai permukaan. Gunakan untuk menanggalkan tepi bulat, lubang atau bonggol yang menghalang.",
"help.file.insert_mesh": "Menambah fail 3MF, STL, OBJ, PLY atau glTF ke dalam reka bentuk sebagai jasad mesh dalam komponen baharu. Gunakan untuk meletakkan model yang dimuat turun atau diimbas di sebelah reka bentuk anda sebagai rujukan.",
"help.file.insert_step": "Menambah fail STEP, IGES, FreeCAD atau Rhino ke dalam reka bentuk sebagai jasad pepejal dalam komponen baharu; bahagian pemasangan menjadi komponen bersarang. Gunakan untuk membawa masuk model daripada pembekal atau program CAD lain.",
"help.file.save_mesh": "Menyimpan jasad sebagai mesh STL, 3MF atau OBJ, dengan kehalusan muka melengkung yang anda pilih. Gunakan untuk menyediakan bahagian bagi pencetakan 3D atau program yang membaca mesh.",
"help.file.send_to_slicer": "Menyimpan jasad yang dipilih sebagai fail 3MF dan membukanya dalam penghiris yang anda pilih. Gunakan untuk beralih daripada model kepada pencetakan dalam satu langkah.",
"help.font_details": "Antara muka menggunakan fon terbina dalam egui (Ubuntu Light dan Hack, di bawah Lesen Fon Ubuntu dan lesen MIT/Bitstream Vera; Noto Emoji dan fon ikon emoji, di bawah OFL dan MIT). Teks lakaran menggunakan Liberation Sans (SIL OFL 1.1). Pek fon pilihan Crafting Apps, craft-fonts (BIZ UDPGothic, Shippori Mincho, BIZ UDMincho, Noto Sans CJK SC, Noto Sans Arabic; SIL OFL 1.1), tidak disertakan dalam binaan SolidCraft.",
"help.fonts": "Fon",
"help.frame.member": "Meletakkan profil, seperti tiub atau aluminium tersemperit, sepanjang garis lakaran rangka, satu anggota bagi setiap garis. Gunakan untuk membina rangka, rak dan struktur kimpalan.",
"help.inspect.accessibility": "Mewarnakan muka yang dapat dicapai oleh alat dari satu arah, dan yang tidak dapat dicapai. Gunakan untuk menyemak bahagian bagi pemesinan atau pengacuanan dari sisi itu.",
"help.inspect.center_of_mass": "Memaparkan pusat jisim jasad, setiap satu secara berasingan dan semuanya bersama, pada ketumpatan seragam. Gunakan untuk menyemak keseimbangan dan tempat bahagian akan terbalik.",
"help.inspect.colored_components": "Memberi setiap komponen warna sementaranya sendiri, tanpa mengubah penampilan. Gunakan untuk membezakan bahagian pemasangan dengan sekilas pandang.",
"help.inspect.compare": "Membandingkan dua jasad dan menunjukkan di mana satu mempunyai bahan yang tiada pada yang lain, dengan isi padu dan sisihan. Gunakan untuk menyemak bahagian yang diubah atau diimport dengan yang asal.",
"help.inspect.continuity": "Menyemak kehalusan pertemuan muka di sepanjang tepinya: sela, patahan atau lonjakan kelengkungan, dan mewarnakan sambungannya. Gunakan untuk mencari tempat permukaan tidak bercantum dengan kemas.",
"help.inspect.curvature_comb": "Melukis sisir di sepanjang lengkung, tepi atau muka yang giginya menunjukkan sekuat mana ia melengkung. Gunakan untuk mengesan tempat rata, patahan dan kelengkungan yang tidak sekata.",
"help.inspect.curvature_map": "Mewarnakan muka mengikut sekuat mana ia melengkung, merah di tempat jejari kecil. Gunakan untuk mencari tempat yang sempit dan menilai kehalusan sesuatu permukaan.",
"help.inspect.draft": "Mewarnakan muka mengikut sudut draf terhadap arah tarikan, dan menandakan yang sudutnya terlalu kecil. Gunakan untuk menyemak bahagian sebelum pengacuanan atau penuangan.",
"help.inspect.environment_map": "Memaparkan model dengan kemasan memantul seperti cermin. Gunakan untuk menilai aliran permukaan melalui cara pantulan melintasinya.",
"help.inspect.interference": "Mencari jasad yang bertindih dan menunjukkan setiap pertindihan dengan isi padunya. Gunakan untuk menyemak pemasangan bagi bahagian yang berlanggar.",
"help.inspect.isocurve": "Melukis lengkung isoparametrik pada muka, iaitu grid tempat permukaan dibina. Gunakan untuk melihat aliran permukaan dan tempat ia terkumpul.",
"help.inspect.measure": "Mengukur panjang, jarak, sudut, luas dan jejari antara apa yang anda pilih, atau isi padu dan jisim jasad. Gunakan untuk menyemak saiz dan kelegaan.",
"help.inspect.minimum_radius": "Mencari jejari kelengkungan terkecil bagi lengkung, tepi atau muka, dan tempatnya. Gunakan untuk menyemak bahawa alat atau muncung dapat mengikuti bentuk itu.",
"help.inspect.section": "Membelah pandangan di sepanjang satah dan melorek muka yang dipotong, tanpa mengubah model. Gunakan untuk melihat ke dalam bahagian dan pemasangan.",
"help.inspect.zebra": "Memaparkan jalur hitam dan putih yang memantul pada muka model. Gunakan untuk menilai kehalusan: jalur yang putus atau patah di tepi menunjukkan peralihan yang kurang baik.",
"help.joint.as_built": "Menyambung dua bahagian di tempat ia berada, tanpa menggerakkan mana-mana satu, dan menetapkan cara ia masih boleh bergerak. Gunakan untuk bahagian yang sudah anda letakkan pada kedudukan akhirnya.",
"help.joint.cam": "Memaut sesondol yang berputar kepada pengikut, supaya pengikut menggelongsor atau berayun apabila garis luar sesondol melaluinya. Gunakan untuk sesondol, eksentrik dan pemacu injap.",
"help.joint.create": "Menyambung dua bahagian pada titik asal sendi yang anda pilih dan menggerakkan bahagian kedua ke tempatnya; jenis sendi menentukan cara ia masih boleh bergerak. Gunakan untuk membina pemasangan yang bahagiannya bergerak seperti mekanisme sebenar.",
"help.joint.drive": "Menetapkan sudut atau jarak sesebuah sendi dan menggerakkan bahagian bersamanya, dalam had sendi itu; sendi terpaut dan gelung tertutup turut mengikut. Gunakan untuk menyemak bahawa mekanisme bergerak seperti yang dimaksudkan.",
"help.joint.gear": "Memaut dua sendi berputar dengan nisbah gear, supaya menggerakkan satu akan memutar yang lain. Gunakan untuk gear taji dan gear dalaman, dengan nisbah daripada jejari pic atau bilangan gigi.",
"help.joint.limits": "Menetapkan sejauh mana sendi boleh berputar atau menggelongsor, sebagai minimum dan maksimum, atau mengosongkan had itu. Gunakan untuk memastikan engsel, gelangsar atau tuil kekal dalam julat pergerakan sebenarnya.",
"help.joint.motion_link": "Memaut dua sendi dengan nisbah dan ofset, supaya menggerakkan satu akan menggerakkan yang lain. Gunakan untuk hubungan tetap antara sendi yang tidak diliputi oleh Gear, Rak dan Pinan atau Skru.",
"help.joint.origin": "Meletakkan titik asal sendi bernama pada sesuatu bahagian: di pusat muka atau hujung bulat, tengah tepi, sudut atau satu titik. Gunakan untuk menyediakan tempat sendi melekat; titik asal yang dipilih pada muka mengikutinya apabila saiz bahagian berubah.",
"help.joint.rack_pinion": "Memaut pinan berputar kepada rak menggelongsor, supaya rak bergerak sepanjang bulatan pic yang digelek oleh pinan. Gunakan untuk pemacu rak, stereng dan pentas linear.",
"help.joint.reach": "Menggerakkan satu titik pada bahagian ke arah sasaran dengan mengubah sendi pada rantaiannya, dalam had sendi itu. Gunakan untuk melaraskan mekanisme mengikut kedudukan hujungnya, seperti hujung lengan robot.",
"help.joint.rigid_group": "Mengunci bahagian yang dipilih bersama seperti sedia ada, supaya ia bergerak sebagai satu. Gunakan untuk bahagian yang bersatu dan tiada gerakan antara satu sama lain.",
"help.joint.screw": "Memaut putaran dan gelongsoran melalui pic, supaya setiap pusingan menggerakkan jarak itu. Gunakan untuk skru pemacu, bolt dan gelendong berbebenang.",
"help.library.apply": "Menggunakan bahan atau penampilan daripada fail koleksi setempat pada jasad, muka atau komponen. Gunakan untuk menggunakan semula bahan yang anda simpan daripada reka bentuk lain.",
"help.library.export": "Menyimpan bahan dan penampilan reka bentuk ke fail koleksi. Gunakan untuk berkongsinya atau menggunakannya semula dalam reka bentuk lain.",
"help.library.inspect": "Menyemak fail koleksi dan menyenaraikan bahan dan penampilannya, tanpa mengubah reka bentuk. Gunakan untuk melihat kandungan koleksi sebelum menggunakannya.",
"help.licences": "Lesen",
"help.material.assign": "Menetapkan bahan jasad yang dipilih, seperti keluli, aluminium atau ABS. Gunakan supaya jisim dan berat sepadan dengan bahagian sebenar.",
"help.material.properties.validate": "Menyemak kad data bahan untuk nombor yang konsisten dan nilai yang hilang. Gunakan sebelum bergantung pada data itu untuk jisim atau kekakuan.",
"help.mesh.convert": "Membina semula jasad mesh, seperti STL, sebagai pepejal boleh sunting dengan muka rata dan silinder. Gunakan untuk mengubah suai bahagian mekanikal yang diimport seperti jasad yang dimodelkan.",
"help.mit": "Lesen MIT",
"help.motion.study": "Menetapkan nilai sendi pada beberapa langkah sepanjang garis masa dan memainkannya semula sebagai animasi. Gunakan untuk menonton mekanisme bergerak melalui satu urutan dan menyemak kelegaan sepanjangnya.",
"help.motion.trace": "Menjejak laluan yang diikuti satu titik pada bahagian semasa kajian gerakan dimainkan atau sendi digerakkan, dan menyimpannya sebagai lengkung lakaran 3D apabila anda mengesahkan. Gunakan untuk melihat sejauh mana mekanisme mencapai, atau untuk membina berdasarkan laluannya.",
"help.notice": "NOTIS",
"help.occurrence.ground": "Menetapkan bahagian pada tempatnya, atau membebaskannya semula, supaya sendi menggerakkan bahagian lain di sekelilingnya. Gunakan untuk rangka atau tapak yang menjadi asas seluruh pemasangan.",
"help.occurrence.move": "Mengalihkan bahagian pemasangan hanya mengikut kebebasan yang dibenarkan oleh sendinya. Pilih muka bahagian, kemudian seret anak panah atau lengkok yang tersedia.",
"help.parameters.change": "Membuka jadual nilai dan ungkapan bernama yang memacu dimensi reka bentuk. Gunakan untuk menukar saiz di satu tempat dan membiarkan setiap ciri yang menggunakannya mengikut.",
"help.parameters.export": "Menyimpan parameter reka bentuk sebagai CSV atau JSON. Gunakan untuk menyuntingnya dalam hamparan atau memindahkannya ke reka bentuk lain.",
"help.parameters.graph": "Menunjukkan parameter dan ciri mana yang menggunakan yang mana, dan sebarang gelung atau ralat di antaranya. Gunakan untuk melihat apa yang akan terjejas oleh perubahan pada sesuatu parameter.",
"help.parameters.import": "Membaca parameter daripada CSV atau JSON ke dalam reka bentuk, semuanya atau tiada satu pun. Gunakan untuk membawa masuk nilai daripada hamparan atau reka bentuk lain.",
"help.parameters.move": "Mengalihkan parameter pengguna sebelum atau selepas parameter lain dalam senarai. Gunakan untuk memastikan parameter yang berkaitan berada bersama.",
"help.parts.fastener": "Menambah skru, bolt, nat, sesendal, pin atau galas piawai dalam saiz yang anda pilih. Apabila diletakkan pada lubang, ia duduk dalam lubang itu dengan sendi, jadi anda tidak perlu memodelkan pengikat sendiri.",
"help.parts.insert": "Menyisip bahagian piawai dalam keluarga, saiz dan panjang yang anda pilih. Apabila diletakkan pada pinggir atau dinding lubang, ia duduk pada lubang itu dengan sendi tegar.",
"help.parts.library": "Membuka bahagian piawai: skru, bolt, nat, sesendal, skru penetap, pin dowel dan galas dalam saiz piawai. Gunakan untuk menambah bahagian piawai dan bukannya memodelkannya sendiri.",
"help.parts.resize": "Mengubah saiz atau panjang bahagian piawai yang disisipkan dan membinanya semula; sendinya mengekalkannya pada tempat. Gunakan apabila skru ternyata terlalu panjang atau lubang memerlukan saiz lain.",
"help.plastic.assign_rule": "Menetapkan peraturan plastik pada jasad, supaya ciri plastiknya menggunakan sudut draf dan kelegaan peraturan itu sebagai lalai. Gunakan untuk menyediakan bahagian teracu sekali sahaja bagi semua cirinya.",
"help.plastic.boss": "Menambah bonggol skru pada muka: tiang dengan lubang pilihan, sudut draf, jejari sudut pada akar dan rusuk penyokong. Gunakan untuk titik skru dalam perumah teracu atau bercetak.",
"help.plastic.lip": "Menambah bibir atau alur sepadan di sepanjang pinggir jasad yang diberi ronggak. Gunakan supaya dua separuh perumah duduk pada satu sama lain dan tertutup rapat.",
"help.plastic.manage_rules": "Mencipta dan menyunting peraturan plastik: bahan, ketebalan dinding, jejari, kelegaan dan sudut draf. Gunakan untuk memastikan ciri bahagian teracu konsisten.",
"help.plastic.rest": "Menambah penyokong pada muka: pad bulat atau segi empat tepat, pepejal atau berongga, dengan sudut draf. Gunakan sebagai sokongan atau tiang pengasing dalam perumah teracu.",
"help.plastic.snap_fit": "Menambah cangkuk sambungan sentap pada muka, dengan panjang, ketebalan dan penahannya. Gunakan untuk mengklip bahagian bersama tanpa skru.",
"help.pointcloud.insert": "Sisipkan imbasan PLY, XYZ atau PTS sebagai awan titik di samping model. Gunakannya sebagai rujukan semasa membina model daripada data yang diukur.",
"help.sheet.convert": "Menukar plat atau jasad beronggak yang berketebalan sekata kepada jasad logam kepingan, dengan lenturan pada tepi yang anda pilih. Gunakan untuk menjadikan bahagian sedia ada boleh dibuka lipatan.",
"help.sheet.export_bend_table": "Menyimpan jadual lenturan jasad logam kepingan sebagai CSV atau JSON: sudut, jejari dan kedudukan lenturan dalam bentangan rata. Gunakan untuk brek tekan atau bengkel.",
"help.sheet.export_dxf": "Menyimpan bentangan rata sebagai DXF, dengan garis luar, garis lenturan dan nota lenturan pilihan. Gunakan untuk pemotongan laser, plasma atau jet air.",
"help.sheet.flange": "Menambah bebibir: plat tapak daripada lakaran, dinding di sepanjang kontur lakaran terbuka, atau dinding berlentur pada tepi kepingan. Gunakan untuk membina bahagian logam kepingan.",
"help.sheet.flat_pattern": "Mencipta bentangan rata jasad logam kepingan, dengan saiz, potongan dan garis lenturannya. Gunakan untuk menyemak kepingan mentah sebelum anda memotongnya.",
"help.sheet.fold": "Melipat kepingan di sepanjang garis lakaran mengikut sudut dan jejari. Gunakan untuk melipat kepingan rata selepas memotong ciri padanya.",
"help.sheet.hem": "Melipat tepi kepingan kembali ke atas dirinya. Gunakan untuk tepi yang selamat dan kukuh tanpa duri tajam.",
"help.sheet.manage_rules": "Mencipta dan menyunting peraturan logam kepingan: ketebalan, jejari lenturan, faktor K, pelega dan sela. Gunakan untuk menyesuaikan dengan bahan dan alat bengkel anda.",
"help.sheet.path_flange": "Menambah rantaian bebibir di sepanjang tepi kepingan, mengikut rantaian terbuka garis lakaran. Gunakan untuk profil seperti bentuk U atau Z dalam satu langkah.",
"help.sheet.perforate": "Menambah medan lubang di seluruh kepingan rata, dalam corak berselang-seli atau segi empat sama. Gunakan untuk lubang angin, gril dan panel yang lebih ringan.",
"help.sheet.refold": "Melipat semula jasad logam kepingan yang telah dibuka lipatan. Gunakan selepas menambah ciri pada kepingan rata.",
"help.sheet.unfold": "Membuka lipatan semua lenturan jasad logam kepingan. Gunakan untuk menambah lubang atau potongan yang perlu melintasi lenturan, kemudian lipat semula.",
"help.sketch.arc.center_point": "Melukis lengkok bulat di sekeliling titik pusat, daripada titik mula ke titik akhir. Gunakan apabila pusat lengkok diketahui, seperti jejari di sekeliling lubang atau pangsi.",
"help.sketch.arc.tangent": "Melukis lengkok yang bermula di hujung garis atau lengkok dan bersambung secara tangen dengannya. Gunakan untuk meneruskan rantaian dengan lenturan licin dan bukannya sudut.",
"help.sketch.arc.three_point": "Melukis lengkok daripada titik mula ke titik akhir melalui titik ketiga. Gunakan apabila lengkok perlu melalui titik yang diberi dan bukannya mengelilingi pusat yang diketahui.",
"help.sketch.arc3d": "Melukis lengkok bulat tepat dalam ruang melalui tiga titik, dengan Lakaran 3D aktif. Gunakan untuk lenturan pada laluan dan rel pemandu yang keluar daripada satah lakaran.",
"help.sketch.auto_constrain": "Menambah kekangan yang hampir dimiliki lakaran, seperti mendatar, selari atau bertindih tepat, kemudian mendimensikannya sehingga tertakrif sepenuhnya. Gunakan untuk mengunci lakaran yang dilukis secara kasar dalam satu langkah.",
"help.sketch.auto_constrain_from_datum": "Berfungsi seperti Kekangan Automatik, tetapi mengukur kedudukan daripada titik datum yang anda pilih dan bukannya titik asal. Gunakan apabila bahagian disusun daripada satu titik rujukan, seperti sudut atau lubang.",
"help.sketch.blend_curve": "Menyambung hujung dua lengkung dengan splin licin yang tangen kepada kedua-duanya, atau juga selanjar kelengkungan jika anda pilih. Gunakan untuk merapatkan jurang antara lengkung tanpa patahan.",
"help.sketch.break": "Memutuskan lengkung kepada beberapa keping di tempat lengkung lain melintasinya, atau pada titik yang anda letakkan padanya. Gunakan apabila sebahagian lengkung memerlukan kekangannya sendiri atau patut dipadam secara berasingan.",
"help.sketch.cancel": "Meninggalkan lakaran dan membuang semua yang diubah sejak ia dicipta atau dibuka untuk disunting. Buat Asal mengembalikan perubahan itu.",
"help.sketch.centerline": "Menukar garis antara garis biasa dan garis tengah, paksi yang diabaikan oleh profil. Gunakan garis tengah sebagai paksi untuk Putar, Cermin atau kekangan simetri.",
"help.sketch.chamfer.distance_angle": "Menyerongkan sudut antara dua garis, ditetapkan oleh jarak sepanjang garis pertama dan satu sudut. Gunakan apabila lukisan memberikan serong sebagai panjang dan sudut, seperti 2 mm × 30°.",
"help.sketch.chamfer.equal_distance": "Menyerongkan sudut antara dua garis dengan jarak yang sama ke belakang sepanjang kedua-duanya. Gunakan untuk serong 45° yang biasa pada garis luar.",
"help.sketch.chamfer.two_distance": "Menyerongkan sudut antara dua garis, ditetapkan oleh jarak berasingan sepanjang setiap garis. Gunakan untuk serong yang bukan 45°, diberikan sebagai dua panjang.",
"help.sketch.circle.center": "Melukis bulatan daripada pusat dan diameternya. Gunakan untuk lubang, bonggol dan ciri bulat lain yang pusatnya diketahui.",
"help.sketch.circle.three_point": "Melukis bulatan melalui tiga titik. Gunakan apabila bulatan perlu melalui titik yang diberi, contohnya pada geometri sedia ada.",
"help.sketch.circle.three_tangent": "Melukis bulatan yang menyentuh tiga garis, bulatan atau lengkok. Gunakan untuk memuatkan bulatan dalam ruang antara tiga lengkung, seperti bulatan terterap dalam segi tiga.",
"help.sketch.circle.two_point": "Melukis bulatan daripada dua hujung diameternya. Gunakan apabila titik tepi bulatan diketahui dan bukannya pusatnya.",
"help.sketch.circle.two_tangent": "Melukis bulatan bersaiz tertentu yang menyentuh dua garis, bulatan atau lengkok. Gunakan untuk pembulatan berjejari tetap antara dua lengkung.",
"help.sketch.conic": "Melukis lengkung kon antara dua titik hujung, dibentuk oleh titik puncak dan nilai rho. Gunakan untuk peralihan licin yang kepenuhannya hendak anda laraskan, daripada rata hingga hampir sudut tajam.",
"help.sketch.constrainer": "Menggunakan kekangan yang hampir dimiliki satu atau dua lengkung yang dipilih, seperti mendatar, selari, tangen atau sama. Gunakan untuk mengemaskan lakaran lukisan tangan satu hubungan demi satu hubungan.",
"help.sketch.constraint.coincident": "Menjadikan satu titik bertindih tepat dengan titik lain, lengkung atau paksi lakaran. Gunakan untuk menutup jurang dalam profil atau untuk meletakkan titik pada garis.",
"help.sketch.constraint.collinear": "Menjadikan dua garis terletak pada satu garis lurus. Gunakan untuk menjajarkan tepi yang terputus, seperti kedua-dua sisi takuk.",
"help.sketch.constraint.concentric": "Memberi dua bulatan atau lengkok pusat yang sama. Gunakan untuk gelang, lubang benam rata dan aci bertingkat.",
"help.sketch.constraint.curvature": "Menjadikan dua lengkung yang bertemu di titik hujung bersambung dengan kelengkungan yang sama (G2). Gunakan apabila sambungan tangen tidak cukup licin, contohnya pada permukaan yang kelihatan.",
"help.sketch.constraint.equal": "Menjadikan garis sama panjang, atau bulatan dan lengkok sama jejari. Gunakan supaya satu dimensi memacu beberapa ciri yang sepadan.",
"help.sketch.constraint.fix": "Menetapkan titik atau lengkung di tempatnya, atau melepaskannya semula. Gunakan untuk geometri yang tidak boleh bergerak apabila anda menyeret atau menyelesaikan lakaran.",
"help.sketch.constraint.horizontal_vertical": "Menjadikan garis, atau garis antara dua titik, mendatar atau menegak, mana-mana yang lebih hampir. Gunakan untuk meluruskan garis luar mengikut paksi lakaran.",
"help.sketch.constraint.midpoint": "Meletakkan titik di tengah garis, atau menjadikan titik tengah dua garis bertemu. Gunakan untuk memusatkan geometri pada tepi.",
"help.sketch.constraint.parallel": "Menjadikan dua garis selari. Gunakan untuk sisi yang mesti kekal selari apabila dimensi lain berubah.",
"help.sketch.constraint.perpendicular": "Menjadikan dua garis bertemu pada sudut tegak. Gunakan untuk sudut segi empat antara garis yang tidak berada pada paksi lakaran.",
"help.sketch.constraint.polygon": "Menjadikan rantaian garis tertutup sebagai poligon sekata: sisi sama panjang, dengan setiap sudut pada satu bulatan. Gunakan untuk menjadikan poligon lukisan tangan sekata dan mengekalkannya begitu.",
"help.sketch.constraint.symmetry": "Menjadikan dua titik atau lengkung saling bercermin merentasi garis atau mengelilingi titik. Gunakan untuk memastikan profil kekal simetri apabila anda mengubah satu sisi.",
"help.sketch.constraint.tangent": "Menjadikan dua lengkung bersentuhan secara tangen, seperti garis dan lengkok. Gunakan untuk sambungan licin tanpa patahan.",
"help.sketch.construction": "Menukar lengkung antara geometri biasa dan geometri binaan, yang diabaikan oleh profil. Gunakan lengkung binaan sebagai pembantu untuk susun atur, rujukan dan dimensi.",
"help.sketch.construction_line": "Cipta garis binaan tak terhingga melalui dua titik. Gunakannya untuk menyusun lakaran tanpa memisahkan profil.",
"help.sketch.construction_line.angle": "Cipta garis binaan tak terhingga pada sudut daripada paksi X lakaran. Pilih titik dan taip sudutnya, atau pilih arahnya.",
"help.sketch.construction_line.bisector": "Pilih dua garis lakaran lurus yang bersilang, kemudian pilih salah satu pembahagi dua sudut. Hasilnya mengikut garis sumbernya.",
@@ -1412,11 +1580,71 @@
"help.sketch.construction_line.tangent_external": "Pilih bulatan atau lengkok bulat, kemudian satu titik luar dan satu penyelesaian tangen. Pratonton hanya menunjukkan titik sentuh pada lengkok yang dilukis.",
"help.sketch.construction_line.tangent_two": "Pilih dua bulatan atau lengkok bulat, kemudian pilih tangen sepunya dalam pratonton. Titik sentuh mesti terletak pada lengkung yang dilukis.",
"help.sketch.construction_line.vertical": "Cipta garis binaan menegak tak terhingga melalui satu titik. Kekangan menegaknya kekal apabila disunting kemudian.",
"help.sketch.copy": "Menyalin lengkung dan titik lakaran yang dipilih, bersama kekangan dan dimensi di antaranya. Tampalkannya ke dalam lakaran ini atau lakaran lain.",
"help.sketch.create": "Memulakan lakaran 2D baharu pada satah atau muka rata model. Setiap Semperit, Putar dan Sapu bermula dengan lakaran.",
"help.sketch.cut": "Menyalin geometri lakaran yang dipilih dan memadamnya daripada lakaran, dalam satu langkah Buat Asal. Tampalkannya di tempat lain dalam lakaran ini atau ke dalam lakaran lain.",
"help.sketch.dimension": "Menambah dimensi pemacu: panjang, jarak, sudut, jejari atau diameter, bergantung pada apa yang anda pilih. Taip nilai atau nama parameter, dan lakaran mengikutinya.",
"help.sketch.edit": "Membuka lakaran sedia ada untuk disunting. Ciri yang dibina padanya dikemas kini apabila anda menamatkan lakaran.",
"help.sketch.ellipse": "Melukis elips daripada pusatnya, hujung paksi utama dan satu titik pada sisi minornya. Gunakan untuk bukaan bujur, sesondol dan bentuk bulat memanjang yang lain.",
"help.sketch.equation_curve": "Melukis lengkung daripada formula: x(t) dan y(t), atau y = f(x), dalam satu julat. Formula boleh menggunakan parameter dan lengkung akan mengikutinya: gunakannya untuk gelombang sinus, lingkaran atau involut gigi gear.",
"help.sketch.extend": "Memanjangkan garis atau lengkok sehingga lengkung terdekat yang menghalang, atau memanjangkan dua lengkung sehingga bertemu. Gunakan untuk menutup jurang dalam profil selepas memangkas atau menyunting.",
"help.sketch.fillet": "Membulatkan sudut tempat dua garis atau lengkok bertemu dengan lengkok berjejari tertentu. Beberapa sudut yang dibulatkan bersama berkongsi satu jejari.",
"help.sketch.finish": "Meninggalkan lakaran dan kembali ke model. Profilnya yang tertutup kemudian sedia untuk Semperit, Putar dan ciri lain.",
"help.sketch.finish_auto_constrain": "Menjalankan Kekangan Automatik pada lakaran, kemudian menamatkannya. Gunakan untuk meninggalkan lakaran yang tertakrif sepenuhnya dalam satu langkah.",
"help.sketch.fit_curves_to_section": "Memotong jasad mesh atau pepejal dengan satah lakaran dan memadankan garis dan lengkok pada keratan itu. Gunakan untuk membina semula bahagian yang diimbas atau diimport sebagai lakaran boleh sunting.",
"help.sketch.include_3d": "Membawa tepi model, bucu dan lengkung lakaran lain ke dalam lakaran ini sebagai rujukan terpaut, dan meratakan yang tidak berada pada satahnya ke atasnya. Gunakan untuk membina berdasarkan geometri yang tidak terletak pada satah lakaran.",
"help.sketch.infinite": "Menukar garis antara garis biasa dan garis binaan tak terhingga yang melintasi seluruh pandangan. Gunakan sebagai rujukan susun atur yang tidak pernah terlalu pendek.",
"help.sketch.insert_dxf": "Membaca lengkung lukisan DXF ke dalam lakaran, diskalakan, diputar dan diletakkan mengikut tetapan anda. Gunakan untuk membina berdasarkan lukisan 2D daripada program lain, seperti garis luar potongan laser.",
"help.sketch.insert_svg": "Membaca laluan lukisan SVG ke dalam lakaran, diskalakan, diputar dan diletakkan mengikut tetapan anda. Gunakan untuk menukar logo atau garis luar vektor kepada lengkung yang boleh disemperit.",
"help.sketch.inspect": "Membuka laporan tentang lakaran yang terbuka: berapa banyak darjah kebebasan yang tinggal dan sama ada ia terkekang sepenuhnya. Gunakan untuk mengetahui apa yang masih bergerak sebelum anda menamatkan lakaran.",
"help.sketch.intersect": "Menambah lengkung atau titik tempat jasad, muka, tepi atau lakaran lain melintasi satah lakaran. Ia kekal terpaut dan mengikut model apabila model berubah.",
"help.sketch.intersection_curve": "Mencipta lengkung 3D tempat dua jasad atau muka bertemu, terpaut kepadanya. Gunakan sebagai laluan atau rel pemandu yang mengikut model.",
"help.sketch.isoparametric_curve": "Mencipta lengkung 3D di sepanjang arah U atau V muka melalui titik yang anda pilih, terpaut kepada muka itu. Gunakan sebagai laluan atau garis belahan yang mengikut permukaan.",
"help.sketch.line": "Melukis garis bersambung titik demi titik, sebagai rantaian terbuka atau garis luar tertutup. Ia ialah alat asas bagi kebanyakan profil.",
"help.sketch.line.midpoint": "Melukis garis daripada titik tengahnya ke satu hujung, dengan hujung satu lagi dicerminkan. Gunakan untuk garis yang berpusat pada satu titik, seperti tepi simetri.",
"help.sketch.line3d": "Melukis garis lurus bersambung antara titik dalam ruang, dengan Lakaran 3D aktif. Gunakan untuk laluan dan rangka yang keluar daripada satah lakaran.",
"help.sketch.mirror": "Mencerminkan lengkung dan titik lakaran merentasi garis atau paksi dan menambah kekangan simetri. Gunakan untuk melukis separuh profil simetri dan melengkapkannya.",
"help.sketch.move": "Mengalihkan atau memutar lengkung dan titik lakaran, atau salinannya. Gunakan untuk meletakkan semula geometri sambil mengekalkan bentuk dan kekangannya.",
"help.sketch.offset": "Mencipta salinan rantaian lengkung pada jarak tertentu, di satu sisi atau kedua-duanya. Gunakan untuk dinding, garis luar dan kelegaan; jarak kekal sebagai dimensi yang boleh disunting.",
"help.sketch.paste": "Menampal geometri lakaran yang anda salin atau potong ke dalam lakaran aktif. Letakkan pada satu titik atau anjakkan dengan ofset.",
"help.sketch.pattern.circular": "Menyalin geometri lakaran mengelilingi titik pusat, sepanjang bulatan penuh atau sudut tertentu. Gunakan untuk bulatan bolt, ruji dan gigi.",
"help.sketch.pattern.rectangular": "Menyalin geometri lakaran dalam baris dan lajur pada jarak tertentu. Gunakan untuk grid lubang, slot atau lubang angin.",
"help.sketch.point": "Meletakkan titik lakaran. Gunakan sebagai rujukan untuk dimensi, kekangan, pusat lubang atau ciri kemudian.",
"help.sketch.point3d": "Meletakkan titik dalam ruang, dengan Lakaran 3D aktif. Gunakan sebagai rujukan untuk lengkung dan laluan 3D.",
"help.sketch.polygon.circumscribed": "Melukis poligon sekata di sekeliling bulatan, bersaiz daripada pusatnya ke tengah satu sisi. Gunakan apabila lebar merentasi sisi rata diketahui, seperti pada nat heks.",
"help.sketch.polygon.edge": "Melukis poligon sekata daripada dua hujung satu sisi. Gunakan apabila panjang dan kedudukan satu sisi diketahui.",
"help.sketch.polygon.inscribed": "Melukis poligon sekata di dalam bulatan, bersaiz daripada pusatnya ke satu sudut. Gunakan apabila saiz merentasi sudut diketahui.",
"help.sketch.project": "Membawa tepi model, muka, bucu dan lengkung lakaran lain ke dalam lakaran ini, diunjurkan ke satahnya. Ia kekal terpaut dan mengikut model apabila model berubah.",
"help.sketch.project_to_surface": "Mengunjurkan lengkung lakaran lain di sepanjang normal lakaran ini ke atas muka, sebagai lengkung 3D terpaut. Gunakan untuk meletakkan logo, garis belahan atau laluan pada permukaan melengkung.",
"help.sketch.rectangle.center": "Melukis segi empat tepat daripada pusatnya dan satu sudut. Gunakan untuk garis luar yang berpusat pada satu titik, seperti titik asal.",
"help.sketch.rectangle.rounded": "Melukis segi empat tepat dengan keempat-empat sudut dibulatkan pada satu jejari. Gunakan untuk plat, penutup dan bukaan bersudut bulat.",
"help.sketch.rectangle.three_point": "Melukis segi empat tepat daripada satu tepi dan satu titik pada sisi bertentangan. Gunakan untuk segi empat tepat yang condong terhadap paksi lakaran.",
"help.sketch.rectangle.two_point": "Melukis segi empat tepat daripada dua sudut bertentangan. Gunakan untuk garis luar plat, blok dan poket.",
"help.sketch.scale": "Menskalakan lengkung dan titik lakaran dengan satu faktor mengikut titik asas. Gunakan untuk mengubah saiz sebahagian lakaran tanpa melukisnya semula.",
"help.sketch.slot.arc_center": "Melukis slot melengkung dengan lebar tertentu di sepanjang lengkok yang ditetapkan oleh pusat, permulaan dan penghujungnya. Gunakan untuk slot pelarasan di sekeliling pangsi.",
"help.sketch.slot.arc_three_point": "Melukis slot melengkung dengan lebar tertentu di sepanjang lengkok melalui tiga titik. Gunakan apabila laluan slot perlu melalui titik yang diberi.",
"help.sketch.slot.center_point": "Melukis slot lurus dengan lebar tertentu daripada pusatnya ke pusat satu lengkok hujung. Gunakan untuk slot yang berpusat pada satu titik.",
"help.sketch.slot.center_to_center": "Melukis slot lurus dengan lebar tertentu antara pusat kedua-dua lengkok hujungnya. Gunakan untuk slot yang didimensikan dari pusat ke pusat, seperti slot pelarasan untuk skru.",
"help.sketch.slot.overall": "Melukis slot lurus dengan lebar tertentu dari satu hujung luar ke hujung yang lain. Gunakan apabila panjang keseluruhan slot yang penting.",
"help.sketch.spline.control_point": "Melukis splin kubik yang dibentuk oleh titik kawalan yang tidak dilaluinya. Gunakan untuk lengkung licin dan mengalir yang anda bentuk dengan menggerakkan titik.",
"help.sketch.spline.control_point_5": "Melukis splin darjah 5 yang dibentuk oleh titik kawalan. Gunakan apabila lengkung perlu bersambung dengan kelengkungan yang lebih licin, contohnya pada permukaan bergaya yang kelihatan.",
"help.sketch.spline.fit_point": "Melukis splin licin yang melalui setiap titik yang anda letakkan, terbuka atau tertutup. Gunakan untuk menyurih bentuk melalui titik yang diketahui.",
"help.sketch.spline3d": "Melukis lengkung licin dalam ruang melalui titik, dengan Lakaran 3D aktif. Gunakan untuk laluan sapuan dan laluan kabel yang keluar daripada satah lakaran.",
"help.sketch.spun_profile": "Mencipta dalam satah lakaran garis luar yang dilalui oleh jasad apabila ia berputar pada paksi. Gunakan untuk mendapatkan siluet bahagian bubutan bagi Putar atau lukisan.",
"help.sketch.text": "Menulis teks dalam lakaran dengan fon, ketinggian dan sudut yang dipilih; perkataannya boleh mengikut parameter. Semperit atau timbulkan untuk label dan tulisan.",
"help.sketch.transform": "Menskalakan, memutar dan mengalihkan geometri lakaran mengelilingi titik pusat dalam satu langkah. Gunakan untuk meletakkan semula dan mengubah saiz pilihan sekali gus.",
"help.sketch.trim": "Membuang bahagian lengkung antara persilangan terdekat di sekeliling tempat anda mengklik. Gunakan untuk mengemaskan garis bertindih menjadi profil tertutup.",
"help.solid.align": "Mengalihkan jasad yang dipilih supaya satu titik, muka atau satah padanya bertemu satu titik, muka atau satah di tempat lain. Gunakan untuk meletakkan satu bahagian pada bahagian lain tanpa mengukur ofset.",
"help.solid.boundary_fill": "Membuat pepejal daripada kawasan yang dikelilingi jasad alat yang bertindih, mengisi hanya kawasan yang anda pilih. Gunakan untuk membina bentuk daripada ruang yang disempadani bersama oleh beberapa jasad.",
"help.solid.bounding_solid": "Mencipta kotak yang mengurung jasad yang dipilih, dengan margin pilihan. Gunakan untuk melihat saiz keseluruhan bahagian, atau sebagai stok bahan yang daripadanya ia dimesin.",
"help.solid.box": "Mencipta kotak daripada panjang, lebar dan tinggi, daripada titik sudut atau berpusat pada satu titik. Gunakan untuk blok pantas, pemegang tempat atau jasad untuk dipotong ciri padanya.",
"help.solid.chamfer": "Memotong tepi yang dipilih dengan potongan serong rata sejauh jarak yang anda tetapkan. Gunakan untuk menumpulkan tepi tajam atau memudahkan kemasukan pin atau skru.",
"help.solid.coil": "Mencipta jasad heliks, seperti pegas, daripada diameter, bilangan lilitan, ketinggian atau pic dan keratan bulat atau segi empat sama. Gunakan untuk pegas, gegelung dan rabung heliks.",
"help.solid.combine": "Mencantum jasad, memotongnya daripada jasad sasaran, atau hanya mengekalkan isi padu yang dikongsi, dan boleh mengekalkan jasad alat. Gunakan untuk menggabungkan bahagian, memotong satu bentuk dengan bentuk lain atau mencari tempat dua jasad bertindih.",
"help.solid.cone": "Mencipta kon daripada bulatan tapak dan ketinggian, atau kon terpenggal apabila bahagian atas juga berjejari. Gunakan untuk tirus, corong, lubang benam tirus dan hujung tajam.",
"help.solid.cylinder": "Mencipta silinder daripada jejari atau diameter dan ketinggian, berdiri pada satu titik di sepanjang paksi. Gunakan untuk aci, pin, bonggol dan bakal bulat.",
"help.solid.draft": "Mencondongkan muka yang dipilih mengikut sudut yang anda tetapkan, diukur dari satah neutral. Gunakan pada bahagian yang diacu atau dituang supaya boleh dikeluarkan dari acuan.",
"help.solid.emboss": "Menimbulkan profil lakaran, seperti teks atau logo, keluar daripada muka, atau membenamkannya ke dalamnya. Gunakan untuk tulisan, label dan tanda pada muka rata atau bulat.",
"help.solid.extrude": "Menyemperit profil lakaran menjadi 3D sepanjang jarak yang ditetapkan, menambah atau membuang bahan. Gunakan untuk menukar garis bentuk rata menjadi blok, bonggol atau poket.",
"help.solid.fillet": "Membulatkan tepi yang dipilih dengan peralihan bulat licin berjejari yang anda tetapkan. Gunakan untuk melembutkan tepi tajam demi kekuatan, keselesaan atau rupa.",
"help.solid.hole": "Menggerudi lubang bulat berdiameter yang anda tetapkan pada titik terpilih pada muka. Gunakan untuk ruang skru, pin dan bukaan bulat ringkas yang lain.",
@@ -1425,20 +1653,60 @@
"help.solid.move": "Mengalih atau memutar jasad yang dipilih, atau salinannya, mengikut jarak dan sudut yang ditetapkan. Gunakan untuk menempatkan semula jasad atau membuat satu lagi di tempat lain.",
"help.solid.offset_face": "Menolak muka yang dipilih ke dalam atau ke luar mengikut jarak yang ditetapkan, dan muka di sekelilingnya turut mengikut. Gunakan untuk menebalkan dinding, mendalamkan poket atau meninggikan bonggol tanpa menyunting lakaran.",
"help.solid.pattern.circular": "Mengulang objek yang dipilih mengelilingi paksi, mengikut bilangan dan jumlah sudut yang ditetapkan. Gunakan untuk bulatan bolt, jejari roda, sirip dan gigi.",
"help.solid.pattern.path": "Menyalin ciri atau jasad di sepanjang laluan lakaran, mengikut bilangan dan jarak. Gunakan untuk lubang di sepanjang tepi melengkung atau bahagian di sepanjang rel.",
"help.solid.pattern.rectangular": "Mengulang objek yang dipilih dalam satu atau dua arah mengikut bilangan dan selang yang ditetapkan. Gunakan untuk baris dan grid lubang, rusuk, pin atau kaki.",
"help.solid.pipe": "Mencipta tiub bulat di sepanjang laluan lengkung lakaran, pepejal atau berongga dengan ketebalan dinding. Gunakan untuk tiub, wayar, kabel dan rel.",
"help.solid.press_pull": "Menambah atau membuang bahan semasa anda menyeret muka, atau membulatkan tepi semasa anda menyeretnya. Gunakan untuk perubahan pantas terus pada model.",
"help.solid.remove": "Mengeluarkan jasad yang dipilih daripada reka bentuk mulai titik ini dalam garis masa; langkah terdahulu masih mengekalkannya. Gunakan untuk menggugurkan jasad bantu, seperti alat pemotong yang tidak diperlukan lagi.",
"help.solid.replace_face": "Mengalihkan muka rata yang dipilih ke satah atau ke muka selari, dan jasad membesar atau mengecil untuk bertemu dengannya. Gunakan untuk menyamakan aras muka dengan bahagian lain atau satah binaan.",
"help.solid.revolve": "Memutar profil lakaran mengelilingi paksi untuk menghasilkan pepejal bulat. Gunakan untuk aci, tombol, mangkuk dan mana-mana bahagian yang bulat di sekeliling garis tengah.",
"help.solid.rib": "Menambah dinding nipis di sepanjang lengkung lakaran terbuka, diisi sehingga muka seterusnya pada jasad. Gunakan untuk mengukuhkan dinding dan sudut, contohnya pada bahagian teracu atau bercetak.",
"help.solid.scale": "Membesarkan atau mengecilkan jasad yang dipilih mengikut faktor, sama ke semua arah atau satu bagi setiap paksi. Gunakan untuk mengubah saiz bentuk yang diimport atau untuk mengambil kira pengecutan.",
"help.solid.shell": "Mengosongkan bahagian dalam pepejal, meninggalkan dinding setebal yang ditetapkan, dan boleh membuka muka yang anda pilih. Gunakan untuk kotak, penutup dan bahagian berdinding nipis yang lain.",
"help.solid.sphere": "Mencipta sfera daripada jejari atau diameter mengelilingi titik pusat. Gunakan untuk bebola, tombol dan hujung bulat.",
"help.solid.split_body": "Memotong jasad kepada beberapa jasad berasingan menggunakan satah, muka jasad lain atau garis lakaran. Gunakan untuk menghasilkan bahagian yang dicetak, dimesin atau diwarnakan secara berasingan.",
"help.solid.split_face": "Membahagikan muka yang dipilih di sepanjang satah, muka jasad lain atau lengkung lakaran, tanpa memotong jasad. Gunakan untuk memberikan sebahagian muka sudut draf, warna atau ofset tersendiri.",
"help.solid.sweep": "Menyeret profil lakaran di sepanjang laluan untuk menghasilkan pepejal. Gunakan untuk paip, rel, pemegang dan mana-mana bahagian berkeratan malar yang mengikut lengkung.",
"help.solid.thread": "Menambah bebenang metrik ISO pada muka silinder, sama ada sebagai bebenang kosmetik atau dipotong ke dalam jasad. Gunakan untuk bolt, lubang berbebenang dan bahagian skru bercetak.",
"help.solid.torus": "Mencipta gelang daripada jejari utama mengelilingi paksinya dan jejari minor untuk keratan bulatnya. Gunakan untuk gelang-O, pemegang dan manik bulat.",
"help.solid.web": "Menambah dinding nipis di sepanjang setiap lengkung lakaran terbuka, masing-masing diisi sehingga muka seterusnya pada jasad. Gunakan untuk grid dinding penyokong di dalam perumah dan dulang.",
"help.surface.blend": "Mencipta permukaan yang menyambung tepi dua jasad, tangen atau selanjar kelengkungan kepada kedua-duanya. Gunakan untuk menyambung dua permukaan dengan licin merentasi jurang.",
"help.surface.boundary": "Mencipta permukaan yang mengisi gelung dua hingga empat lengkung lakaran, atau rangkaian lengkung. Gunakan untuk panel bentuk bebas yang ditakrifkan oleh tepinya.",
"help.surface.extend": "Memanjangkan permukaan melepasi tepinya, mengikut jarak atau sehingga satah atau muka. Gunakan supaya permukaan bertindih sebelum anda memangkas atau mencantumnya.",
"help.surface.extrude": "Menolak lengkung atau profil lakaran sepanjang satu jarak menjadi permukaan, dinding sahaja, tanpa penutup. Gunakan untuk dinding nipis dan untuk alat pemotong atau pembelah.",
"help.surface.fair": "Melicinkan bahagian dalam muka bentuk bebas sementara tepinya kekal. Gunakan untuk meratakan bonjolan dan pantulan beralun pada permukaan.",
"help.surface.loft": "Mencipta permukaan yang melalui dua atau lebih keratan mengikut urutan, tanpa penutup. Gunakan untuk cangkerang dan peralihan antara bentuk yang berbeza.",
"help.surface.match": "Membina semula tepi permukaan supaya bertemu dengan tepi jasad lain, dengan tangen atau kelengkungan yang sepadan. Gunakan untuk menutup sambungan dengan licin antara dua permukaan.",
"help.surface.offset": "Mencipta salinan muka pada satu jarak di sepanjang normalnya, sebagai jasad permukaan baharu. Gunakan untuk kulit, kelegaan atau sisi lain sesuatu dinding.",
"help.surface.patch": "Mengisi kawasan lakaran atau gelung tertutup tepi dengan muka, rata atau melengkung licin. Gunakan untuk menutup lubang pada jasad permukaan.",
"help.surface.reverse_normal": "Membalikkan muka jasad permukaan, supaya bahagian luarnya menghadap arah lain. Gunakan sebelum menebalkan atau mencantum apabila muka menghala ke dalam.",
"help.surface.revolve": "Memutar lengkung atau profil lakaran pada paksi menjadi permukaan, tanpa penutup. Gunakan untuk cangkerang bulat seperti teduhan lampu, mangkuk dan muncung.",
"help.surface.ruled": "Mencipta jalur garis lurus keluar daripada rantaian tepi, sepanjang normal muka, tangen atau pada satu sudut. Gunakan untuk dinding draf, kawasan lari-keluar dan permukaan perpisahan.",
"help.surface.stitch": "Mencantum jasad permukaan bersama di sepanjang tepi yang dikongsi, menjadi pepejal apabila ia tertutup. Gunakan untuk menjadikan sekumpulan permukaan satu jasad.",
"help.surface.sweep": "Menggerakkan lengkung atau profil lakaran di sepanjang laluan menjadi permukaan, tanpa penutup. Gunakan untuk alur air, perapi dan bentuk nipis lain yang mengikut laluan.",
"help.surface.thicken": "Memberi ketebalan kepada jasad permukaan, menjadikannya pepejal. Gunakan untuk membuat bahagian yang boleh dicetak atau dimesin daripada permukaan.",
"help.surface.trim": "Memotong permukaan dengan satah, permukaan lain atau lengkung lakaran, dan mengekalkan sisi yang anda pilih. Gunakan untuk memotong permukaan mengikut bentuk sebelum dicantum.",
"help.surface.unstitch": "Melerai muka jasad menjadi jasad permukaan tersendiri; pepejal terlerai menjadi permukaan. Gunakan untuk mengolah semula muka tunggal pada jasad.",
"help.surface.untrim": "Membuang lubang daripada muka, atau memulihkan sempadan luarnya kepada had semula jadi permukaan. Gunakan untuk mendapatkan semula permukaan penuh selepas dipangkas.",
"help.third_party": "Lesen pihak ketiga",
"help.timeline.compute_all": "Membina semula setiap ciri dalam garis masa dari awal. Gunakan untuk menyegarkan model dan melihat ciri yang gagal.",
"help.timeline.delete": "Memadam ciri yang dipilih daripada garis masa; memadam lakaran turut memadam ciri yang dibina daripadanya. Gunakan untuk membuang langkah yang tidak lagi diperlukan.",
"help.timeline.dependents": "Menyenaraikan ciri yang akan dipadam bersama sesuatu ciri, dan yang akan gagal tanpanya. Gunakan sebelum memadam atau mengubah ciri.",
"help.timeline.play": "Main semula ciri yang tinggal satu demi satu, dengan jeda setengah saat selepas setiap pembinaan semula. Jalankan perintah ini sekali lagi atau tekan Escape untuk berhenti; Pergi ke penghujung melompat serta-merta.",
"help.view.apply": "Memutar pandangan ke arah piawai seperti hadapan, atas atau iso, atau ke pandangan bernama yang disimpan. Gunakan untuk melihat model dari sudut tetap.",
"help.view.delete": "Memadam pandangan bernama yang disimpan. Model tidak berubah.",
"help.view.fit": "Menzum dan menyorot supaya seluruh model, atau pilihan, memenuhi pandangan. Gunakan apabila model telah hilang daripada pandangan.",
"help.view.grid": "Memaparkan atau menyembunyikan grid dalam tetingkap pandangan. Gunakan sebagai panduan saiz dan orientasi semasa memodelkan.",
"help.view.ground_shadow": "Memaparkan atau menyembunyikan bayang model pada lantai. Gunakan untuk menilai ketinggian dan kedudukan dengan lebih mudah.",
"help.view.home": "Memutar pandangan kembali ke arah utama dan memuatkan model. Gunakan untuk kembali ke pandangan yang diketahui dengan cepat.",
"help.view.list": "Menyenaraikan pandangan bernama yang disimpan dalam reka bentuk. Gunakan untuk mencari pandangan yang anda simpan sebelum ini.",
"help.view.navigate": "Memutar, menyorot atau menzum pandangan mengikut langkah, seperti suku pusingan ke kiri. Gunakan untuk menggerakkan kamera dengan tepat dan bukannya menyeret.",
"help.view.navigation_bar": "Memaparkan atau menyembunyikan bar navigasi di bahagian bawah tetingkap pandangan. Sembunyikan untuk ruang lebih luas, paparkan untuk mencapai alat pandangan dengan tetikus.",
"help.view.rename": "Memberi nama baharu kepada pandangan bernama yang disimpan. Pandangan itu sendiri kekal sama.",
"help.view.save": "Menyimpan kedudukan kamera semasa sebagai pandangan bernama dalam reka bentuk. Gunakan untuk kembali ke sudut yang sama kemudian, contohnya untuk tangkapan skrin.",
"help.view.spin": "Mengorbit pandangan mengelilingi model secara berterusan sehingga klik atau kekunci seterusnya. Gunakan untuk mempersembahkan model dari semua sisi.",
"help.view.tool": "Mengunci alat kamera, orbit, sorot atau zum, supaya menyeret dengan butang kiri tetikus menggerakkan pandangan sehingga anda mematikannya. Gunakan pada pad jejak atau tanpa butang tengah tetikus.",
"help.view.visual_style": "Menukar cara model dilukis: berlorek dengan atau tanpa tepi, rangka dawai, atau dengan tepi tersembunyi. Gunakan rangka dawai untuk melihat ke dalam, berlorek untuk rupa yang bersih.",
"history.sketch_under_constrained": "Kurang terkekang ({count} darjah kebebasan)",
"history.sketch_under_constrained_one": "Kurang terkekang ({count} darjah kebebasan)",
"hole_presets.confirm_delete": "Sahkan pemadaman",
@@ -1615,6 +1883,10 @@
"material.selection.mixed": "Bahan berbeza",
"measure.at": "Pada",
"measure.item": "Item {number}",
"measure.quick_copied": "Ukuran disalin",
"measure.quick_copy": "Klik untuk menyalin ukuran",
"measure.quick_edges": "{count} tepi",
"measure.quick_faces": "{count} muka",
"messages.ago_h": "{n} j lalu",
"messages.ago_min": "{n} min lalu",
"messages.ago_s": "{n} s lalu",
@@ -1648,6 +1920,7 @@
"nav.hfss.help": "Alt+seret kiri menyorot, Shift+Alt+seret kiri menzum, Ctrl+seret kiri pada ruang kosong mengorbit",
"nav.inventor.help": "Seret tengah menyorot, Shift+tengah mengorbit, Ctrl+tengah menzum, seret kanan mengorbit",
"nav.maya.help": "Alt+seret kiri mengorbit, Alt+seret tengah menyorot, Alt+seret kanan menzum; seret tengah juga menyorot",
"nav.nx.help": "Seret tengah mengorbit, Shift+tengah menyorot (tengah + kanan dalam NX), Ctrl+tengah menzum (tengah + kiri dalam NX); seret kanan tidak menggerakkan kamera",
"nav.openscad.help": "Seret kiri pada ruang kosong mengorbit, Shift+seret kiri memilih dengan kotak, seretan geometri lakaran menyunting; seret kanan atau tengah menyorot, Shift+seret kanan atau Shift+seret tengah menzum",
"nav.perspective.sketch": "Penyuntingan lakaran menggunakan pandangan ortografik. Siapkan lakaran untuk bertukar ke perspektif.",
"nav.right_drag_orbits.help": "Mati: seret kanan tidak menggerakkan kamera dan butang kanan hanya membuka menu konteks. Memilih pemetaan tetikus SolidWorks akan mematikannya.",
@@ -1767,6 +2040,11 @@
"not a move": "bukan gerakan",
"not a number": "bukan nombor",
"open a sketch first": "buka lakaran dahulu",
"parameters.apply_live": "Gunakan setiap perubahan apabila anda meninggalkan medannya",
"parameters.apply_live_tip": "Mati: perubahan menunggu sehingga Gunakan atau OK, kemudian reka bentuk dibina semula sekali untuk semuanya. Batal atau Escape membuangnya.",
"parameters.held": "{count} perubahan menunggu Gunakan",
"parameters.held_hint": "Sunting ungkapan dan unit. Perubahan menunggu Gunakan atau OK.",
"parameters.held_one": "1 perubahan menunggu Gunakan",
"parts.automatic_name": "automatik",
"parts.dimension.across_flats": "Merentasi rata",
"parts.dimension.bore": "Diameter lubang",
@@ -1789,6 +2067,8 @@
"parts.family.set_screw": "Skru penetap soket heks, hujung rata",
"parts.family.socket_head_cap_screw": "Skru kepala soket",
"parts.family.washer": "Sesendal biasa",
"parts.holes": "Lubang (pilihan)",
"parts.placement_hint": "pilih satu atau lebih lubang untuk meletakkan bahagian pada setiap satu, atau tekan OK untuk meletakkannya di titik asal",
"pattern.alignment_2": "Penjajaran 2",
"pattern.alignment_hint": "Bilangan termasuk asal. Tengah seimbangkan salinan; Balik pilih sisi lebih untuk bilangan genap.",
"pattern.direction_1": "Arah 1",
@@ -1862,6 +2142,8 @@
"prefs.ctrl_cmd": "Ctrl / Cmd",
"prefs.curved_surfaces": "Permukaan melengkung",
"prefs.curves": "Permukaan melengkung",
"prefs.dark_parts_shading": "Kekalkan bentuk bahagian yang gelap",
"prefs.dark_parts_shading_help": "Lorekkan pandangan dalam cahaya linear dengan cahaya isian langit yang lembut, supaya muka yang gelap mengekalkan kecerunan dan tidak menjadi hitam",
"prefs.dead_zone_note": "Jalur berlorek ialah zon mati: gerakan di dalamnya diabaikan.",
"prefs.default": "lalai",
"prefs.design": "Lalai reka bentuk",
@@ -1876,6 +2158,8 @@
"prefs.edges": "Tepi dan teduhan",
"prefs.extend": "Panjangkan",
"prefs.extra_navigation": "Seret kiri dengan Ctrl pada ruang kosong untuk mengorbit; tahan Space untuk menyorot.",
"prefs.extrude_view_isometric": "Putar pandangan ke isometrik apabila Semperit dibuka",
"prefs.extrude_view_return": "Kembali ke pandangan terdahulu apabila Semperit ditutup",
"prefs.follows_os": "Ikut OS",
"prefs.font": "Fon",
"prefs.font_fallback": "Glif yang tiada dalam fon pilihan akan beralih kepada fon terbina dalam, jadi tiada label yang memaparkan kotak kosong.",
@@ -1891,6 +2175,7 @@
"prefs.graphics_card_auto": "Automatik",
"prefs.graphics_card_missing": "Kad grafik yang disimpan tidak tersedia; Automatik digunakan.",
"prefs.graphics_card_restart": "Berkuat kuasa selepas SolidCraft dimulakan semula. WGPU_ADAPTER_NAME mengatasi pilihan ini.",
"prefs.graphics_card_unused": "Kad grafik yang disimpan tidak digunakan untuk tetingkap ini; kad yang sedang digunakan dipaparkan dalam Bantuan › Tentang dan dalam bar status. Cuba Automatik, atau tetapkan WGPU_ADAPTER_NAME kepada bahagian unik pada nama kad itu.",
"prefs.graphics_note": "Tukar kelajuan dengan kelicinan. Setiap pilihan menunjukkan kesannya pada contoh.",
"prefs.graphics_presets_note": "Pratetap menetapkan pilihan di bawah sekali gus.",
"prefs.hide_constraint_glyphs_zoomed_out": "Sembunyikan glif kekangan apabila dizum keluar",
@@ -1905,6 +2190,8 @@
"prefs.history_sketches_note": "Apabila Lakaran ditetapkan kepada Di bawah cirinya, Sejarah di sebelah kiri menyenaraikan setiap lakaran satu tahap ke dalam, di bawah ciri pertama yang dibina daripadanya, apabila ruangnya cukup lebar untuk nama. Garis masa di bahagian bawah sentiasa mengekalkan urutan penciptaan.",
"prefs.history_sketches_under_feature": "Di bawah cirinya",
"prefs.hold_stop_snapping": "Tahan untuk menghentikan pelekapan",
"prefs.home_fit_size": "Saiz Utama dan Muatkan",
"prefs.home_fit_size_note": "Seberapa banyak pandangan yang diisi oleh model apabila Utama, Muatkan, reka bentuk yang baru dibuka atau perubahan pandangan melalui kawalan pandangan membingkainya, sama ada tetapan di bawah dihidupkan atau tidak. 100 %: memenuhi pandangan di antara panel, kompas dan bar navigasi.",
"prefs.icons_only": "Ikon sahaja",
"prefs.imported_file": "Fail yang diimport",
"prefs.in_browser": "Dalam pelayar",
@@ -1913,13 +2200,20 @@
"prefs.interface_language": "Bahasa antara muka",
"prefs.interface_note": "Rupa SolidCraft dan kedudukan bahagiannya.",
"prefs.interval_minutes": "{n} min",
"prefs.invert_navigator_arrows": "Songsangkan anak panah putaran kubus pandangan",
"prefs.invert_navigator_arrows_note": "Anak panah di sekeliling kubus mengorbit kamera mengikut arah yang ditunjuknya, seperti dalam Fusion dan Inventor: anak panah di kiri menunjuk ke kanan dan mengayunkan kamera ke kanan. Mati: anak panah memutarkan kubus ke arah sisi tempat ia berada, jadi anak panah kiri mengayunkan kamera ke kiri. Anak panah gelek yang melengkung tidak terjejas.",
"prefs.keep_work_on_tab_switch": "Kekalkan dialog dan alat terbuka apabila menukar reka bentuk",
"prefs.keep_work_on_tab_switch_note": "Setiap tab reka bentuk mengekalkan dialog atau alat yang dibukanya, bersama apa yang anda pilih dan taip di dalamnya, serta tab bar alatnya. Semuanya ada semula apabila anda kembali ke reka bentuk itu. Mati: menukar reka bentuk membatalkannya dan menunjukkan tab Model.",
"prefs.labels": "Label",
"prefs.language_system": "Sistem",
"prefs.layout": "Susun atur",
"prefs.layout_note": "Padat melabuhkan panel pada tepi tetingkap. Kelutsinaran pelayar tersedia dalam Terapung. Tukar sisi Pembantu pada halaman Pembantu.",
"prefs.left": "Kiri",
"prefs.left_click": "Klik kiri",
"prefs.line_drag_draws_one": "Tekan dan seret melukis satu garis",
"prefs.line_drag_draws_one_note": "Dalam alat Garis, menekan, menyeret dan melepaskan melukis satu garis dari titik tekan hingga titik lepas, dan ia tamat di situ. Klik masih melukis rantaian. Mati: seretan meletakkan titik di tempat ia dilepaskan, seperti klik.",
"prefs.line_hover_tangent_arc": "Berhenti pada titik terakhir garis untuk bertukar kepada lengkok tangen",
"prefs.line_hover_tangent_arc_note": "Dalam alat Garis, selepas satu segmen dilukis, alihkan penuding menjauhi titik terakhir rantaian, kembali dan tahan penuding diam di situ: klik seterusnya menentukan hujung lengkok tangen, dan gerak isyarat yang sama kembali kepada garis. Mati: berhenti di situ tidak berbuat apa-apa.",
"prefs.linked_designs": "Reka bentuk terpaut",
"prefs.live_input": "Input langsung",
"prefs.live_preview": "Pratonton langsung",
@@ -1943,6 +2237,8 @@
"prefs.mouse_mapping": "Pemetaan tetikus",
"prefs.navigation": "Navigasi",
"prefs.navigation_note": "Cara tetikus, pad jejak dan tetikus 3D menggerakkan pandangan.",
"prefs.navigator_fit": "Muatkan model selepas perubahan pandangan navigator",
"prefs.navigator_fit_note": "Muka, sudut atau anak panah pada kubus pandangan, atau paksi pada gizmo, turut menghadap ke tengah model dari satu jarak yang memuatkannya dari semua sisi (sfera pembatasnya). Utama menggunakan zum dan pusat yang sama selagi ini dihidupkan, jadi pandangan yang dipilih selepasnya hanya berputar. Mati: pandangan berputar di tempat, dengan sasaran dan zumnya kekal.",
"prefs.network_host_remove": "Buang",
"prefs.network_locations": "Benarkan lokasi rangkaian dalam reka bentuk",
"prefs.network_locations_note": "Dimatikan: fail terpaut bagi reka bentuk pada komputer lain (\\\\server\\share) hanya dibuka daripada pelayan yang disenaraikan di sini, atau selepas anda membenarkannya apabila ditanya.",
@@ -1955,6 +2251,8 @@
"prefs.origin_plane_names": "Nama satah asal",
"prefs.origin_plane_names_note": "Nama yang dipaparkan dalam pelayar, dialog dan senarai. {top} ialah XY, {front} ialah XZ dan {right} ialah YZ, dengan Z ke atas. Arahan, skrip dan reka bentuk yang disimpan kekal menggunakan XY, XZ dan YZ.",
"prefs.overall_speed": "Kelajuan keseluruhan",
"prefs.parameter_list_rows": "Baris senarai parameter",
"prefs.parameter_list_rows_tip": "Anak panah ke bawah dalam medan nilai kosong menyenaraikan parameter, kegemaran dahulu, sehingga bilangan ini. Bilangan yang lebih kecil memastikan senarai ringan dalam reka bentuk besar.",
"prefs.persistent_ribbon_pressed": "Serlahkan arahan reben yang aktif",
"prefs.persistent_ribbon_pressed_help": "Serlahkan arahan reben selagi kesannya dihidupkan. Matikan untuk mengekalkan rupa neutral dan bantuan arahan yang terdahulu.",
"prefs.perspective_fov": "Medan pandangan",
@@ -1984,9 +2282,13 @@
"prefs.quality_fastest": "terpantas",
"prefs.quality_slowest": "terperlahan",
"prefs.quality_smoother": "lebih licin",
"prefs.quick_measure": "Ukuran pantas di sudut pandangan",
"prefs.quick_measure_note": "Saiz pilihan di sudut kanan bawah pandangan: panjang tepi, atau Ø dan R bagi tepi bulat, luas muka, kedudukan titik, jarak dan sudut dua item, jumlah beberapa tepi atau muka. Satu klik menyalinnya.",
"prefs.render_previous_geometry_budget": "Gunakan bajet geometri pratonton Render sebelumnya",
"prefs.render_previous_geometry_budget_help": "Pulihkan had geometri tetap sebelumnya (512 MiB pada desktop 64-bit, 128 MiB di tempat lain) dan bukannya bajet berdasarkan peranti.",
"prefs.reports_saved": "{n} disimpan",
"prefs.ribbon_click_ends_tool": "Mengklik butang alat yang sedang berjalan menamatkannya",
"prefs.ribbon_click_ends_tool_note": "Satu klik pada butang reben yang menyala bagi alat lakaran yang sedang digunakan menamatkan alat itu, jadi klik dalam pandangan memilih semula. Mati: klik memulakan alat itu semula.",
"prefs.ribbon_reveal": "Tunjukkan hasil carian dalam reben",
"prefs.ribbon_reveal_note": "Melalukan kursor pada hasil dalam Cari arahan menunjukkan kedudukan arahan itu dalam reben: tabnya, butangnya atau barisnya dalam senarai juntai sesuatu panel. Arahan yang dimulakan daripada carian berkelip di situ, dan arahan yang sedang berjalan daripada senarai juntai menandakan panelnya.",
"prefs.right_click": "Klik kanan",
@@ -2016,6 +2318,8 @@
"prefs.sketch_exit_view.previous": "Kembali ke pandangan sebelumnya",
"prefs.sketch_exit_view.unless_rotated": "Kembali melainkan diputar",
"prefs.sketch_exit_view_note": "Ke mana pandangan beralih selepas Siap Lakaran, Batal atau Esc dua kali.",
"prefs.sketch_face_activates_part": "Melakar pada muka sesuatu bahagian menjadikan bahagian itu aktif",
"prefs.sketch_face_activates_part_note": "Lakaran yang dimulakan pada muka jasad milik komponen lain mengaktifkan komponen itu terlebih dahulu, jadi lakaran itu menjadi milik komponen tersebut dan kekal bersama bahagian itu dalam pelayar. Bahagian itu kekal aktif selepas itu. Mati: lakaran menjadi milik komponen aktif.",
"prefs.sketch_open_look_at": "Putar menghadap lakaran apabila dibuka",
"prefs.sketch_open_look_at_note": "Mati: mencipta atau menyunting lakaran membiarkan pandangan seperti sedia ada. Pandang Tepat menghadapkan pandangan ke lakaran apabila anda mahu.",
"prefs.sketch_recent_snap": "Lekap auto pada pusat dan titik tengah terkini",
@@ -2029,6 +2333,8 @@
"prefs.sketch_tab_always_note": "Tab Lakaran kekal dalam reben, sejurus selepas Model, selagi tiada lakaran dibuka. Alat lukisannya kemudian memulakan lakaran pada satah atau muka yang dipilih, atau pada satah yang anda pilih seterusnya, dengan alat itu sedia di dalamnya.",
"prefs.sketch_tracking_guides": "Panduan penjajaran pusat dan titik tengah",
"prefs.sketch_tracking_guides_note": "Halakan kursor pada pusat bulatan atau titik tengah tepi lurus, kemudian gerakkan secara mendatar atau menegak untuk memaparkan panduan bertitik sementara.",
"prefs.sketch_tracking_points": "Panduan penjajaran daripada titik hujung dan sudut semasa melukis",
"prefs.sketch_tracking_points_note": "Semasa alat lukisan menunggu satu titik, meletakkan penuding pada hujung garis atau lengkok, sudut segi empat tepat atau titik bebas memaparkan panduan bertitik sementara yang sama seperti bagi pusat atau titik tengah. Mati: hanya pusat dan titik tengah.",
"prefs.sketching": "Melakar",
"prefs.snap_drawing_note": "Semasa melukis atau menyeret titik lakaran.",
"prefs.source": "Sumber",
@@ -2045,6 +2351,24 @@
"prefs.status_error": "Ralat",
"prefs.status_selected": "Dipilih",
"prefs.status_warning": "Amaran",
"prefs.structure.appearance": "Penampilan",
"prefs.structure.appearance_note": "Warna, teks dan kebolehcapaian.",
"prefs.structure.in_profile": "Dalam profil",
"prefs.structure.layout": "Susun atur",
"prefs.structure.layout_note": "Kedudukan bahagian-bahagian tetingkap.",
"prefs.structure.look": "Gaya",
"prefs.structure.measure_pointer": "Ukur dan penuding",
"prefs.structure.mouse3d": "Tetikus 3D",
"prefs.structure.mouse3d_note": "SpaceMouse dan SpaceNavigator.",
"prefs.structure.navigation_note": "Tetikus dan pad jejak. Tetikus 3D mempunyai halamannya sendiri.",
"prefs.structure.profile": "Profil",
"prefs.structure.profile_edited": "Berubah sejak disimpan",
"prefs.structure.profile_hover": "Disimpan dalam profil tetapan",
"prefs.structure.scale_percent": "{percent}%",
"prefs.structure.sketch": "Lakaran",
"prefs.structure.tools": "Alat",
"prefs.structure.tools_note": "Cara alat pemodelan berfungsi.",
"prefs.structure.work": "Kerja",
"prefs.supersampling_brief": "Melukis pandangan pada saiz lebih besar lalu menapisnya ke bawah: sangat tajam, tetapi lebih berat.",
"prefs.tab_accent_note": "Aksen mengikut tab aktif",
"prefs.theme_file": "fail tema",
@@ -2056,6 +2380,16 @@
"prefs.theme_follow_off": "Mati",
"prefs.theme_follow_stop": "Berhenti mengikuti",
"prefs.theme_import_hint": "Klik untuk memilih fail tema, seret satu ke sini, atau tekan Ctrl+V (Cmd+V pada Mac) dengan tema yang telah disalin",
"prefs.theme_option_opacity": "Kelegapan",
"prefs.theme_option_opacity_help": "Laraskan kelegapan panel terapung. Paras kebolehbacaan minimum melindungi teks di atas warna tetingkap pandangan.",
"prefs.theme_option_tab_colours": "Warna tab",
"prefs.theme_option_tab_colours_help": "Gunakan warna panel dan tetingkap pandangan tema ini bagi setiap tab reben.",
"prefs.theme_option_tab_fade_ms": "Peralihan tab",
"prefs.theme_option_tab_fade_ms_help": "Pudarkan warna panel dan tetingkap pandangan apabila bertukar tab. Sifar bertukar serta-merta.",
"prefs.theme_options_badge": "Pilihan",
"prefs.theme_options_more": "Lagi · {count}",
"prefs.theme_options_reset": "Set Semula",
"prefs.theme_options_unavailable": "Tidak tersedia pada peranti ini",
"prefs.theme_paste": "Tampal tema",
"prefs.theme_paste_none": "Papan keratan tidak mengandungi tema SolidCraft",
"prefs.timeline_half_hour": "−30 min",
@@ -2077,6 +2411,8 @@
"prefs.under_cursor": "Di bawah kursor",
"prefs.units_precision": "Unit dan ketepatan",
"prefs.updates": "Kemas kini",
"prefs.value_boxes_in_view": "Papar nilai di sebelah pemegangnya dalam pandangan",
"prefs.value_boxes_in_view_tip": "Nilai sesuatu arahan (Jarak, Jejari…) dalam kotak di sebelah pemegangnya, di atas model. Mati: anda menaipnya dalam tetingkap arahan, yang mengambil papan kekunci selepas satu pilihan, dan tiada apa-apa menutupi model.",
"prefs.view": "Kelakuan pandangan",
"prefs.view_confirm_corner": "OK dan Batal di sudut pandangan",
"prefs.view_confirm_corner_note": "Semasa dialog atau lakaran dibuka, tanda semak dan tanda silang di bahagian kanan atas pandangan melakukan apa yang dilakukan OK dan Batal dialog, atau menyiapkan dan membatalkan lakaran. Navigator pandangan bergerak ke bawah di bawahnya.",
@@ -2086,6 +2422,12 @@
"prefs.viewport_background": "Latar belakang",
"prefs.viewport_background_colour": "Warna",
"prefs.viewport_background_theme": "Kecerunan tema",
"prefs.viewport_section_status": "Papar status keratan tetingkap pandangan",
"prefs.viewport_section_status_help": "Papar tetapan keratan dalam tetingkap pandangan. Escape dan butang reben yang aktif mematikannya. Matikan untuk mengekalkan kawalan keratan sebelumnya.",
"prefs.viewport_status_details": "Butiran tetingkap pandangan langsung",
"prefs.viewport_status_details_help": "Sunting tetapan analisis dan keratan yang aktif dalam kad butiran piawai. Matikan untuk memulihkan kekunci analisis baca sahaja dan dialog Keratan.",
"prefs.viewport_status_summary": "Ringkaskan item status tetingkap pandangan",
"prefs.viewport_status_summary_help": "Ringkaskan tiga atau lebih item status tetingkap pandangan ke dalam satu lencana ringkasan. Matikan untuk mengekalkan setiap item dalam baris penuh.",
"prefs.wheel": "Roda",
"prefs.wheel_trackpad": "Roda dan pad jejak",
"prefs.workspace": "Ruang kerja",
@@ -2964,7 +3306,9 @@
"render.output_ready": "Sedia untuk merender",
"render.output_run_check": "Jalankan semakan",
"render.output_size_limit": "{method}: sehingga {dimension} px setiap sisi dan {pixels} piksel. Saiz terbesar yang muat: {width} × {height}.",
"render.output_size_method_profile": "Untuk merender {width} × {height}, pilih {method} dengan profil sumber CPU {profile}, atau saiz yang lebih kecil.",
"render.output_size_ok": "Saiz OK · {width} × {height} px",
"render.output_size_profile": "Untuk merender {width} × {height}, pilih profil sumber CPU {profile}, atau saiz yang lebih kecil.",
"render.output_swap_orientation": "Tukar lebar dan ketinggian",
"render.output_tools_inspector": "Sunting saiz dan format dalam pemeriksa Keluaran.",
"render.output_view_image": "Lihat imej",
@@ -3177,6 +3521,7 @@
"render.size_custom": "Tersuai…",
"render.size_full_hd": "HD Penuh",
"render.size_hd": "HD",
"render.size_needs_profile": "{size} · memerlukan {profile}",
"render.size_presets": "Pratetap saiz",
"render.size_presets_pending": "Akan hadir bersama penyunting Keluaran",
"render.size_preview": "Pratonton",
@@ -3464,6 +3809,24 @@
"sheet.flange_type_contour": "Kontur",
"sheet.flange_type_edge": "Tepi",
"sheet.no_body": "tiada jasad logam kepingan: mulakan satu dengan Bebibir > Asas, atau tukarkan plat kepada logam kepingan dengan Tukar kepada Logam Kepingan (pilih muka rata yang besar)",
"sheet.personal_rules.confirm_delete": "Sahkan pemadaman",
"sheet.personal_rules.delete": "Padam",
"sheet.personal_rules.delete_prompt": "Padam peraturan peribadi ini? Peraturan yang sudah ada dalam reka bentuk tidak berubah.",
"sheet.personal_rules.full": "Koleksi peribadi sudah mengandungi 64 peraturan.",
"sheet.personal_rules.invalid_name": "Masukkan nama pendek tanpa pemisah baris atau aksara kawalan.",
"sheet.personal_rules.invalid_values": "Lengkapkan nilai peraturan: setiap satu mesti dapat dikira dalam reka bentuk ini, dengan ketebalan positif dan faktor K dari 0 hingga 1.",
"sheet.personal_rules.missing": "Peraturan peribadi yang dipilih tidak lagi tersedia.",
"sheet.personal_rules.name": "Nama peraturan",
"sheet.personal_rules.name_exists": "Peraturan peribadi dengan nama ini sudah wujud. Gunakan nama lain.",
"sheet.personal_rules.name_hint": "Nama yang unik",
"sheet.personal_rules.overwrite": "Simpan perubahan pada peraturan peribadi yang dipilih",
"sheet.personal_rules.rename": "Tukar nama",
"sheet.personal_rules.rule": "Peraturan peribadi",
"sheet.personal_rules.save": "Simpan baharu",
"sheet.personal_rules.scope": "Disimpan dalam profil anda untuk semua reka bentuk.",
"sheet.personal_rules.select": "Pilih peraturan",
"sheet.personal_rules.title": "Peraturan peribadi",
"sheet.personal_rules.unsupported": "Peraturan ini mempunyai nilai yang tidak dapat digunakan oleh versi ini.",
"shortcut.json_error": "parameter mestilah JSON: {error}",
"shortcut.no_command": "tiada arahan `{id}`; teks sebelum JSON mestilah ID arahan",
"shortcut.pin": "Semat di atas kotak S",
@@ -3500,8 +3863,10 @@
"sketch_text.align_right": "Kanan",
"sketch_text.bold": "Tebal",
"sketch_text.builtin_font": "{family} (terbina dalam)",
"sketch_text.formula": "Mulakan dengan = untuk membina perkataan daripada parameter: ='W' + number(Width)",
"sketch_text.italic": "Condong",
"sketch_text.loading_fonts": "Mencari fon yang dipasang…",
"sketch_text.no_bold": "Fon terbina dalam tiada versi tebal: pilih fon yang dipasang",
"sketch_text.on_path": "Teks mengikut laluan lengkung, yang menentukan kedudukannya",
"sketch_text.path_clear": "Pisahkan teks daripada lengkung",
"sketch_text.path_hint": "Lengkung lakaran yang akan diikuti teks: klik di sini, kemudian klik lengkung",
@@ -3640,6 +4005,8 @@
"ui.3d_mouse_section": "Tetikus 3D",
"ui.3d_mouse_show_in_view": "Tunjukkan tetikus 3D dalam paparan 3D",
"ui.3d_mouse_show_in_view_tip": "Gambar tetikus 3D anda di sudut kiri bawah, yang bergerak apabila anda menggerakkannya.",
"ui.3d_mouse_sketch_orbit": "Putar lakaran dengan tetikus 3D",
"ui.3d_mouse_sketch_orbit_tip": "Tetikus 3D juga memutar pandangan semasa lakaran dibuka dan dilihat tepat dari hadapan, sama seperti yang boleh dilakukan tetikus. Mati: ia menyorot dan menzum lakaran sehingga anda mencondongkan pandangan.",
"ui.3d_mouse_skip": "Peranti saya tidak boleh buat ini",
"ui.3d_mouse_skip_tip": "Langkau gerakan ini kedua-dua arah; penentukuran tidak menggunakannya.",
"ui.3d_mouse_speed": "Kelajuan tetikus 3D",
@@ -3708,6 +4075,7 @@
"ui.agent_chat_auth_terminal": "Jalankan arahan ini dalam terminal, kemudian tekan Sambung semula:",
"ui.agent_chat_auth_title": "Log masuk ke ejen",
"ui.agent_chat_cancel": "Batal",
"ui.agent_chat_cannot_start": "Terpasang, tetapi tidak bermula: {error}",
"ui.agent_chat_changes": "{n} perubahan, satu Buat Asal",
"ui.agent_chat_changes_n": "{n} perubahan",
"ui.agent_chat_changes_of": "{n}/{limit} perubahan",
@@ -3800,9 +4168,12 @@
"ui.agent_chat_queued_stopped": "Menunggu (dihentikan, belum dihantar)",
"ui.agent_chat_refresh": "Muat Semula",
"ui.agent_chat_refused": "Tindakan ejen tidak dibenarkan: {reason}",
"ui.agent_chat_reinstall": "{agent} terpasang ({program}), tetapi tidak bermula apabila SolidCraft memeriksanya: {error}\nPemasangannya mungkin tidak lengkap, atau dibuat untuk jenis komputer lain. Pasang semula dengan `{install}`, semak bahawa ia mencetak versinya dalam terminal, kemudian tekan Muat Semula.",
"ui.agent_chat_remove": "Buang daripada baris gilir",
"ui.agent_chat_remove_file": "Buang daripada mesej ini",
"ui.agent_chat_remove_imported": "Buang daripada mesej ini; bahagian kekal dalam reka bentuk (Buat Asal membuangnya)",
"ui.agent_chat_reply_cut_off": "Balasan mencapai had panjangnya sebelum selesai, jadi mungkin tidak lengkap. Minta ejen meneruskan, atau memberi jawapan yang lebih pendek.",
"ui.agent_chat_reply_declined": "Model enggan menjawab mesej ini.",
"ui.agent_chat_retry": "Cuba semula",
"ui.agent_chat_right": "Kanan",
"ui.agent_chat_save": "Simpan",
@@ -3861,12 +4232,17 @@
"ui.ai_copy_suffix": "salinan",
"ui.ai_custom_url": "URL tersuai",
"ui.ai_default": "Lalai",
"ui.ai_edit": "Sunting",
"ui.ai_edit_agent_title": "Sunting ejen",
"ui.ai_edit_gone": "Ejen ini telah dibuang, jadi tiada apa-apa untuk disimpan.",
"ui.ai_edit_tip": "Tukar nama, arahan atau titik akhir ejen ini. Kunci yang disimpan kekal tersembunyi.",
"ui.ai_http_busy": "titik akhir sibuk atau telah melebihi had; cuba lagi kemudian",
"ui.ai_http_key": "kunci ditolak oleh titik akhir: semak dalam Tetapan > AI",
"ui.ai_http_not_found": "titik akhir atau model tidak ditemui: semak URL asas dan nama model",
"ui.ai_http_too_large": "perbualan terlalu besar untuk titik akhir ini; mulakan sembang baharu",
"ui.ai_key": "Kunci API",
"ui.ai_key_hint": "tidak wajib; disimpan dalam rantai kunci sistem",
"ui.ai_key_keep_hint": "biarkan kosong untuk mengekalkan kunci yang disimpan",
"ui.ai_key_needs_https": "Kunci hanya dihantar melalui HTTPS, atau ke komputer ini.",
"ui.ai_key_note": "Disimpan dalam rantai kunci sistem, bukan dalam tetapan SolidCraft. Biarkan kosong untuk pelayan setempat.",
"ui.ai_keychain_error": "Rantai kunci sistem menolak: {error}",
@@ -3893,11 +4269,15 @@
"ui.ai_permissions": "Kebenaran",
"ui.ai_preset": "Pratetap",
"ui.ai_protocol": "Protokol",
"ui.ai_reasoning_effort": "Usaha penaakulan",
"ui.ai_reasoning_effort_field_hint": "kosong = lalai pembekal",
"ui.ai_reasoning_effort_hint": "Pilihan. Dihantar kepada titik akhir sebagai `reasoning_effort`; nilai yang diterima berbeza bagi setiap pembekal (contohnya `low`, `high` atau `max`). Nilai yang anda tetapkan di sini tidak sekali-kali diganti oleh SolidCraft. Biarkan kosong untuk tidak menghantar apa-apa dan mengekalkan lalai pembekal.",
"ui.ai_remove": "Buang",
"ui.ai_request_timed_out": "Model mengambil masa lebih daripada {seconds} s. Anda boleh menaikkan had masa permintaan untuk titik akhir ini dalam Tetapan › Pembantu.",
"ui.ai_request_timeout": "Had masa permintaan",
"ui.ai_request_timeout_hint": "Berapa lama satu permintaan model ke titik akhir ini boleh mengambil masa, daripada 30 s hingga sejam. Naikkan untuk model setempat yang perlahan.",
"ui.ai_reset": "Set Semula",
"ui.ai_save": "Simpan",
"ui.ai_settings": "Tetapan AI…",
"ui.ai_show_features": "Papar ciri AI",
"ui.ai_show_features_note": "Panel sembang untuk ejen pengekodan atau titik akhir model pilihan mengubah reka bentuk terbuka. Jika dimatikan: tiada butang AI, pintasan, menu atau panel; tiada ejen dicari atau dimulakan.",
@@ -4057,6 +4437,7 @@
"ui.dark": "Gelap",
"ui.default_modelling_orientation": "Orientasi pemodelan lalai",
"ui.delete": "Padam",
"ui.delete_select_first": "Pilih dahulu apa yang hendak dipadam: ciri, jasad, komponen atau geometri lakaran",
"ui.depth": "Kedalaman",
"ui.design": "Reka",
"ui.design_properties.author": "Pengarang",
@@ -4071,6 +4452,40 @@
"ui.design_properties.project": "Projek",
"ui.design_properties.revision": "Semakan",
"ui.design_saved": "Disimpan ke {path}",
"ui.details_access_caption": "Muka menunjukkan sama ada alat dapat mencapainya dari arah yang dipilih.",
"ui.details_angle": "Sudut",
"ui.details_continuity_caption": "Sunting sambungan yang dipilih. Sambungan lain mengekalkan tetapannya sendiri.",
"ui.details_continuity_stale": "Geometri terdahulu: jalankan semula analisis untuk menyunting atau membingkaikan sambungan ini.",
"ui.details_copy_list": "Salin senarai",
"ui.details_curvature": "Toleransi kelengkungan",
"ui.details_curvature_caption": "Muka diwarnakan mengikut jejari kelengkungan setempatnya.",
"ui.details_direction": "Arah alat",
"ui.details_draft_caption": "Muka diwarnakan mengikut sudutnya terhadap arah tarikan.",
"ui.details_edit_seam": "Sunting sambungan",
"ui.details_fixture": "Spesimen komponen — data sampel sahaja",
"ui.details_fixture_caption": "Spesimen komponen dengan nilai ilustrasi; ini bukan hasil model.",
"ui.details_fixture_problem": "Contoh penemuan dengan masalah",
"ui.details_fixture_readout": "Contoh nilai yang diukur",
"ui.details_flip": "Balik",
"ui.details_gap": "Sela",
"ui.details_hatch": "Lorek muka yang dipotong",
"ui.details_jump": "Lonjakan kelengkungan",
"ui.details_key": "Petunjuk",
"ui.details_offset": "Ofset",
"ui.details_plane": "Satah",
"ui.details_pull": "Arah tarikan",
"ui.details_radius": "Jejari",
"ui.details_readout": "Bacaan",
"ui.details_samples": "Sampel",
"ui.details_seam": "{body} · Tepi {edge}",
"ui.details_settings": "Tetapan",
"ui.details_sharp_gap": "Tajam atau sela",
"ui.details_show_all": "Papar semua {count}",
"ui.details_smooth": "Licin",
"ui.details_stripes": "Jalur",
"ui.details_target": "Bingkaikan geometri",
"ui.details_worst_seams": "Sambungan terburuk",
"ui.details_zebra_caption": "Jalur yang dipantulkan menunjukkan kehalusan pertemuan muka.",
"ui.diameter": "Diameter",
"ui.dimension": "Dimensi",
"ui.direct_interaction": "Interaksi langsung",
@@ -4115,6 +4530,7 @@
"ui.edit_in_place_saved_elsewhere": "Bahagian ini disimpan ke fail lain; pemasangan masih memaut {name}",
"ui.edit_in_place_wait": "Tunggu sehingga apa yang sedang berjalan dalam reka bentuk selesai",
"ui.edit_section_analysis": "Sunting Analisis Keratan",
"ui.edit_sketch_empty": "Tiada lakaran untuk disunting",
"ui.ellipse": "Elips",
"ui.emboss_wrap_note": "Profil garis ortogon yang tangen pada satu silinder yang disokong dibalut secara automatik. Pilih dinding untuk memilih sasaran.",
"ui.end_radius": "Jejari Akhir",
@@ -4125,12 +4541,15 @@
"ui.equation_explicit": "Eksplisit",
"ui.equation_form": "Bentuk",
"ui.equation_note": "Pemboleh ubah ialah nombor biasa: sin(t) mengambilnya dalam radian. Hasil tanpa unit adalah dalam unit reka bentuk.",
"ui.equation_note_range": "Pemboleh ubah ialah panjang, begitu juga julatnya: campurkannya dengan parameter panjang, dan bahagikannya dengan satu panjang untuk sin(). Hasil tanpa unit adalah dalam unit reka bentuk.",
"ui.equation_parametric": "Parametrik",
"ui.equation_variable_unit": "Pemboleh ubah menggunakan unit julat",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Jejari Setara",
"ui.expand": "Kembangkan",
"ui.explode_needs_two_components": "Pandangan Terlerai menarik komponen berjauhan, jadi reka bentuk memerlukan dua atau lebih komponen (Komponen Baharu, Sisip Reka Bentuk atau Cipta Komponen daripada Jasad)",
"ui.exportDxf": "Eksport DXF…",
"ui.export_ellipsis_keymap": "Eksport…",
"ui.export_keymap_tip": "Simpan kekunci, kegemaran kotak S dan bar alat ke fail",
@@ -4299,12 +4718,14 @@
"ui.joints": "Sendi",
"ui.keyboard_shortcuts": "Pintasan Kekunci",
"ui.language": "Bahasa",
"ui.lasso_select": "Lasso (seret gelung bebas: memilih yang sepenuhnya berada di dalam)",
"ui.layout_compact": "Padat",
"ui.layout_floating": "Terapung",
"ui.length": "Panjang",
"ui.length_decimals": "Perpuluhan panjang",
"ui.light": "Cerah",
"ui.line": "Garis",
"ui.line_arc_hint": "Lengkok tangen: klik hujung lengkok. Berhenti lagi pada titik terakhir untuk garis; klik kanan atau Esc untuk selesai",
"ui.link_copies": "Pautkan Salinan Serupa",
"ui.link_copies_keep": "Kekalkan",
"ui.link_copies_link": "Pautkan",
@@ -4393,6 +4814,7 @@
"ui.part_size_shared": "Membina semula bahagian, menggantikan sebarang ciri yang ditambah. Semua kejadian komponen ini dikemas kini.",
"ui.paste": "Tampal",
"ui.path": "Laluan",
"ui.pattern_object_type_tip": "Jasad: bentuk pepejal, dipilih dalam pandangan atau Pelayar; setiap satu disalin keseluruhannya.\nCiri: langkah Sejarah, seperti semperit atau lubang, dipilih dalam Sejarah atau pada muka yang dihasilkannya; langkah itu diulang.\nLakaran bukan kedua-duanya: ulang lengkungnya dengan Corak atau Cermin milik lakaran itu sendiri, atau semperit dahulu.",
"ui.pattern_on_path": "Corak Sepanjang Laluan",
"ui.perforate_margin_default": "daripada diameter",
"ui.perforate_pitch": "Pic",
@@ -4419,12 +4841,17 @@
"ui.plugins_skipped": "{count} folder tidak dapat dibaca.",
"ui.plugins_version": "{version}",
"ui.point": "Titik",
"ui.point_cloud_add_filter": "Tambah penapis…",
"ui.point_cloud_auto_range": "Julat Automatik",
"ui.point_cloud_color_by": "Warna Mengikut",
"ui.point_cloud_file_colors": "Warna Fail",
"ui.point_cloud_filter_by": "Tapis mengikut",
"ui.point_cloud_height_high": "Tertinggi",
"ui.point_cloud_height_low": "Terendah",
"ui.point_cloud_legend_filter": "Dipaparkan dan disembunyikan dalam petunjuk di atas",
"ui.point_cloud_no_file_colors": "Fail tiada warna",
"ui.point_cloud_pause": "Jeda",
"ui.point_cloud_play": "Main",
"ui.point_cloud_single_color": "Warna Tunggal",
"ui.point_cloud_size": "Saiz Titik",
"ui.point_cloud_units": "Unit Fail",
@@ -4433,9 +4860,9 @@
"ui.polygon": "Poligon",
"ui.preferences": "Tetapan",
"ui.press_a_key": "tekan kekunci…",
"ui.print_face_body_not_sent": "Jasad muka itu tidak dihantar: tambahkannya pada Jasad dahulu",
"ui.print_face_cleared": "{body}: muka cetakan dikosongkan",
"ui.print_face_input": "Muka cetakan",
"ui.print_face_one_body": "Muka cetakan dimiliki oleh satu jasad: hantar jasad itu sahaja untuk menukarnya",
"ui.print_face_pick": "Pilih satu muka rata pada jasad pepejal untuk menjadikannya muka cetakan",
"ui.print_face_set": "{body}: muka cetakan ditetapkan; Hantar ke penghiris meletakkan jasad di atasnya",
"ui.profile": "Profil",
@@ -4453,6 +4880,7 @@
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Mengukur…",
"ui.properties.measuring_bodies": "Mengukur… {done} daripada {total} jasad",
"ui.properties.measuring_failed": "Pengukuran berhenti sebelum selesai.",
"ui.properties.principal_axis": "Paksi utama {number}",
"ui.properties.principal_moments": "Momen utama",
@@ -4520,6 +4948,7 @@
"ui.selectOther": "Pilih Lain…",
"ui.selectTangentChain": "Pilih Rantaian Tangen",
"ui.select_all": "Pilih Semua",
"ui.select_components_by_face": "Pilih komponen (satu muka memilih komponennya)",
"ui.selection": "Pilihan",
"ui.selection_modifiers": "Pengubah suai pilihan",
"ui.selection_shift_add_only": "Shift+klik menambah tanpa membuang",
@@ -4561,6 +4990,11 @@
"ui.sketch_intersect_selection_filter": "Penapis Pilihan",
"ui.sketch_modifiers": "Pengubah suai lakaran",
"ui.sketch_project_geometry": "Geometri",
"ui.sketch_report.all_constrained": "Semuanya terkekang sepenuhnya.",
"ui.sketch_report.dof": "Darjah kebebasan",
"ui.sketch_report.loose": "Tidak terkekang sepenuhnya",
"ui.sketch_report.status": "Status",
"ui.sketch_report.title": "Laporan Lakaran",
"ui.sketch_scale": "Skala Lakaran",
"ui.sketches": "Lakaran",
"ui.slice": "Hiris",
@@ -4656,12 +5090,15 @@
"ui.view_angles": "Sudut pandangan",
"ui.view_angles_convention": "Darjah pada paksi ke atas. Yaw 0° ialah pandangan Hadapan, 90° Kiri, −90° Kanan, 180° Belakang; pic 90° ialah pandangan Atas; gelek positif memutar model mengikut arah jam.",
"ui.view_angles_help": "Memaparkan pic, yaw dan gelek pandangan dalam darjah serta unjurannya di bawah gizmo orientasi. Klik bacaan untuk menaip sudut yang tepat.",
"ui.view_angles_lock": "Kunci {axis}",
"ui.view_angles_ortho": "Orto",
"ui.view_angles_persp": "Persp",
"ui.view_angles_pitch": "Pic",
"ui.view_angles_readout": "Pic {pitch} · Yaw {yaw} · Gelek {roll}",
"ui.view_angles_roll": "Gelek",
"ui.view_angles_unlock": "Buka kunci {axis}",
"ui.view_angles_yaw": "Yaw",
"ui.view_angles_zero": "Tetapkan {axis} kepada 0°",
"ui.view_centre": "Pusat pandangan",
"ui.viewport_status_clear": "Matikan {name}",
"ui.viewport_status_clear_hint": "Matikan {name} · Esc",
@@ -4670,7 +5107,14 @@
"ui.viewport_status_key": "Papar petunjuk untuk {name}",
"ui.viewport_status_minimum_radius": "Jejari minimum",
"ui.viewport_status_pairs": "{count} pasangan",
"ui.viewport_status_section_hatch": "{setting} · lorek",
"ui.viewport_status_section_plane": "Satah semasa",
"ui.viewport_status_section_tilted": "condong · {offset}",
"ui.viewport_status_stripes": "{count} jalur",
"ui.viewport_status_summary_clear": "Matikan semuanya",
"ui.viewport_status_summary_heading": "Dalam pandangan ini",
"ui.viewport_status_summary_label": "{name} dan {count} item lagi",
"ui.viewport_status_summary_more": "+{count}",
"ui.viewport_theme_follow": "Ikut tema",
"ui.visual_shaded_hidden_edges": "Berlorek dengan tepi tersembunyi",
"ui.visual_shaded_with_edges": "Berlorek dengan tepi",
+445 -1
View File
@@ -60,6 +60,7 @@
"BLEND SURFACE": "OVERGANGSFLATE",
"BOUNDARY SURFACE": "GRENSEFLATE",
"BROWSER": "MODELLTRE",
"Back to the original order": "Tilbake til opprinnelig rekkefølge",
"Ball": "Kule",
"Bar": "Stang",
"Base Center": "Basesenter",
@@ -595,6 +596,8 @@
"Snap to face and edge centres": "Fang til flate- og kantsentre",
"SolidCraft cannot submit reports directly. Submit on GitHub; no token is needed in the app.": "SolidCraft kan ikke sende inn rapporter direkte. Send inn på GitHub; ingen token trengs i appen.",
"SolidCraft closed before these designs were saved. Their last autosave can be opened.": "SolidCraft ble lukket før disse designene ble lagret. Du kan åpne den siste automatisk lagrede versjonen av hvert design.",
"Sort A to Z": "Sorter A til Å",
"Sort Z to A": "Sorter Å til A",
"Spacing 2 must be a non-zero number": "Avstand 2 må være et tall forskjellig fra null",
"Spacing must be a non-zero number": "Avstand må være et tall forskjellig fra null",
"Specialise": "Spesialiser",
@@ -790,6 +793,13 @@
"browser.sketch_attachment_lost": "{name} (tilknytning mistet)",
"browser.sketch_editing": "{name} (redigeres)",
"browser.sketch_name": "Skisse{number}",
"browser.sketches_to_parts_already_in_part": "allerede i delen sin",
"browser.sketches_to_parts_design_body": "på en kropp i selve designet",
"browser.sketches_to_parts_moved": "Flyttet {moved} skisser til delen de ligger på",
"browser.sketches_to_parts_no_exact_attachment": "på en flate uten nøyaktig tilknytning",
"browser.sketches_to_parts_not_on_face": "ikke på flaten til en del",
"browser.sketches_to_parts_part_missing": "delen finnes ikke lenger",
"browser.sketches_to_parts_result": "Flyttet {moved} skisser til delen de ligger på; {stayed} ble liggende: {why}",
"browser.units": "Enheter: {units}",
"cam.flat": "Plan flate",
"cam.follower": "Følger",
@@ -819,6 +829,7 @@
"cmd.appearance_pick_up": "Plukk opp utseende",
"cmd.appearance_replace": "Erstatt utseende",
"cmd.assembly_bom": "Stykkliste",
"cmd.assembly_mass_properties": "Masseegenskaper",
"cmd.body.print_face": "Utskriftsflate",
"cmd.body_rename": "Gi nytt navn til kropp",
"cmd.browser_collapse_all": "Skjul alle",
@@ -856,6 +867,7 @@
"cmd.component_move_bodies": "Flytt kropper til komponent",
"cmd.component_move_features": "Flytt funksjoner til komponent",
"cmd.component_move_sketches": "Flytt skisser til komponent",
"cmd.component_move_sketches_to_parts": "Flytt skisser til delene deres",
"cmd.component_paste_from_design": "Lim inn fra et annet design",
"cmd.component_paste_new": "Lim inn ny",
"cmd.component_properties": "Fysiske egenskaper for komponent",
@@ -1191,6 +1203,7 @@
"cmd.sketch_spline_control_point_5": "Spline med kontrollpunkter (grad 5)",
"cmd.sketch_spline_fit_point": "Spline gjennom punkter",
"cmd.sketch_spline_insert_point": "Legg til splinepunkt",
"cmd.sketch_spline_remove_point": "Fjern splinepunkt",
"cmd.sketch_spline_reverse": "Reverser splineretning",
"cmd.sketch_spun_profile": "Dreid profil",
"cmd.sketch_toggle_diameter": "Veksle mellom radius / diameter",
@@ -1244,6 +1257,7 @@
"cmd.view.render_browser": "Rendringsutforsker",
"cmd.view.render_dock": "Flytt rendringspanel",
"cmd.view.render_focus": "Rendringsfokusvisning",
"cmd.view.status_details": "Statusdetaljer i visningsområdet",
"cmd.view.status_items": "Statuselementer i visningsområdet",
"cmd.view_ambient_occlusion": "Ambient occlusion",
"cmd.view_angle_readout": "Visningsvinkler",
@@ -1282,8 +1296,14 @@
"color.hex_hint": "#rrggbb",
"color.hue": "Kulør",
"color.linear": "Viser lineære fargeverdier i området 0–1",
"color.recent": "Nylige farger",
"color.recent_help": "Fargene du velger i et fargefelt, vises her",
"color.saturation": "Metning (prosent)",
"color.saturation_value": "Metning og lysverdi",
"color.selected": "Valgt farge",
"color.step_down": "Ett trinn ned",
"color.step_up": "Ett trinn opp",
"color.value": "Lysverdi, lysstyrken (prosent)",
"config.column_filter_empty": "Ingen samsvarende kolonner",
"contact.components_count": "{count} komponenter",
"contact.enabled_label": "aktivert",
@@ -1330,6 +1350,7 @@
"dialog.dimension_name": "Mål: {name}",
"dialog.edit_title": "REDIGER {title}",
"dialog.no_shown_body": "Ingen synlig kropp å endre: vis en, eller velg Ny kropp",
"dialog.pattern_sketch_not_object": "Velg kropper eller funksjoner: en skisse er ingen av delene. Gjenta kurvene med skissens eget Mønster eller Speil, eller ekstruder den først.",
"dialog.select": "↖ Velg",
"dialog.selected_count": "↖ {count} valgt",
"dialog.selection_guidance": "Velg et felt for å endre det. Klikk på valgte objekter for å fjerne dem fra utvalget; Ctrl/Cmd+klikk veksler også mellom valgt og ikke valgt. Se over forhåndsvisningen, og trykk deretter OK.",
@@ -1387,21 +1408,168 @@
"from the rule": "fra regelen",
"help.apache": "Apache-lisens 2.0",
"help.appearance.assign": "Gir de valgte kroppene, flatene eller komponentene en farge eller et materialutseende, uten å endre vekten deres. Bruk det til å skille deler fra hverandre eller til å forhåndsvise en overflatebehandling.",
"help.assembly.bom": "Lister opp delene i designet eller en komponent med antall, gruppert etter delenummer, og kan lagre listen som CSV eller JSON. Bruk det som stykkliste ved bestilling og montering.",
"help.attributions": "Opphav og lisenser (ATTRIBUTION.md)",
"help.build": "Versjon {version} · commit {commit} · bygget {date}",
"help.canvas.decal": "Plasserer et bilde på en plan flate av modellen, som et klistremerke. Bruk det til å vise en etikett, en logo eller et trykt mønster på en del.",
"help.canvas.edit": "Endrer et lerret: posisjon, størrelse, vinkel, opasitet, speiling, synlighet eller navn. Bruk det til å justere et referansebilde mot skissen du tegner over det.",
"help.canvas.insert": "Plasserer et PNG- eller JPEG-bilde på et plan eller en flate som en gjennomsiktig referanse. Bruk det til å tegne av et foto eller en tegning i en skisse, med bildet skalert til en kjent størrelse.",
"help.component.break_link": "Løsner en koblet komponent fra designfilen sin og beholder kroppene som de er. Bruk det når delen ikke lenger skal følge endringer i originalfilen.",
"help.component.capture_position": "Beholder posisjonene til delene du har flyttet for hånd, slik at de blir der delene står. Bruk det etter at du har dratt deler på plass som ikke holdes av noe ledd.",
"help.component.create": "Legger til en ny, tom komponent i designet, inni den aktive komponenten med mindre du velger en annen overordnet komponent. Bruk det til å gi en ny del av en sammenstilling sin egen plass for kropper og skisser.",
"help.component.finish_edit": "Lagrer delen du redigerer på stedet, går tilbake til sammenstillingen og oppdaterer sammenstillingen fra den. Bruk den når endringene dine i den koblede delen er ferdige.",
"help.component.from_bodies": "Gjør hver valgte kropp til en egen komponent, oppkalt etter kroppen. Bruk det når et design bygget av løse kropper skal bli en sammenstilling der delene kan kobles sammen med ledd og flyttes.",
"help.component.insert_design": "Setter inn et annet lagret design som en komponent koblet til filen sin, med volumkroppene plassert som de står der. Bruk det til å gjenbruke en del i en sammenstilling og få med senere endringer med Oppdater koblinger.",
"help.component.properties": "Viser volum, masse, massesenter og treghetsmomenter for en komponent, ut fra materialene til kroppene. Bruk det til å sjekke vekt og balanse i en sammenstilling.",
"help.component.revert_position": "Setter delene du har flyttet for hånd tilbake dit de var, og forkaster flyttinger som ikke ble registrert. Bruk det til å angre prøveflyttinger i en sammenstilling.",
"help.component.update_links": "Leser de koblede designfilene på nytt og erstatter kropper som er endret. Bruk det etter at du har redigert en del som denne sammenstillingen bruker.",
"help.config.configure": "Legger til parametere, funksjoner, materialer eller utseender som kolonner i konfigurasjonstabellen. Bruk det til å bygge varianter av ett design, for eksempel størrelser av en del.",
"help.config.preview": "Sjekker at en rad i konfigurasjonstabellen kan bygges på nytt, uten å endre designet eller historikken. Bruk det før du bytter til en variant du er usikker på.",
"help.config.rules": "Viser reglene i konfigurasjonstabellen, radene og hvilken rad som er aktiv. Bruk det til å se hvordan variantene av et design er satt opp.",
"help.config.table": "Viser konfigurasjonstabellen: én rad per variant, én kolonne per parameter eller funksjon, og om designet fortsatt samsvarer med den aktive raden. Bruk det til å gå gjennom variantene av et design.",
"help.connect_note": "Start hver assistent på nytt for å laste inn SolidCraft-serveren. Hver fil ble sikkerhetskopiert som .bak før den ble endret.",
"help.connect_title": "Koble til AI-assistenter",
"help.construct.axis.edge": "Oppretter en hjelpeakse langs en rett kant eller skisselinje. Bruk den som akse for en omdreining, et sirkulært mønster eller et ledd.",
"help.construct.axis.normal_to_face": "Oppretter en hjelpeakse gjennom et punkt, vinkelrett på en flate. Bruk den som en akse som står rett ut fra en overflate.",
"help.construct.axis.through_cylinder": "Oppretter en hjelpeakse gjennom senteret av en sylinder-, kjegle- eller torusflate, eller en sirkulær kant. Bruk den til å dreie funksjoner eller lage mønster av dem rundt en rund del.",
"help.construct.axis.two_planes": "Oppretter en hjelpeakse der to plan eller plane flater møtes. Bruk den når aksen du trenger er linjen mellom to flater.",
"help.construct.axis.two_points": "Oppretter en hjelpeakse gjennom to punkter, hjørner eller skissepunkter. Bruk den til en akse mellom to kjente posisjoner.",
"help.construct.plane.along_path": "Oppretter et hjelpeplan vinkelrett på en kant eller kurve, på en posisjon langs den. Bruk det til å skisse en profil for en sweep eller et snitt av en bane.",
"help.construct.plane.at_angle": "Oppretter et hjelpeplan vridd med en vinkel fra et plan eller en flate, om en akse eller kant. Bruk det til skråstilte skisser, for eksempel en vinklet brakett.",
"help.construct.plane.midplane": "Oppretter et hjelpeplan midt mellom to plan eller plane flater, eller som halverer dem der de møtes i en vinkel. Bruk det som symmetriplan for speiling.",
"help.construct.plane.offset": "Oppretter et hjelpeplan parallelt med et plan eller en plan flate, i en avstand eller gjennom et punkt. Bruk det til å skisse i en bestemt høyde over en flate.",
"help.construct.plane.perpendicular": "Oppretter et hjelpeplan som inneholder en linje eller kant og står vinkelrett på et plan eller en flate. Bruk det til å skisse oppreist på en modell langs en kant.",
"help.construct.plane.tangent": "Oppretter et hjelpeplan som berører en sylinder, kjegle, kule eller torus i et punkt. Bruk det til å skisse på siden av en rund del.",
"help.construct.plane.three_points": "Oppretter et hjelpeplan gjennom tre punkter. Bruk det til et plan som bestemmes av posisjoner på modellen, for eksempel tre hjørner.",
"help.construct.plane.two_edges": "Oppretter et hjelpeplan gjennom to rette kanter eller linjer som ligger i ett plan. Bruk det til et plan på tvers av en del, for eksempel gjennom to motstående kanter.",
"help.construct.point.along_path": "Oppretter et hjelpepunkt på en posisjon langs en kant eller kurve. Bruk det som referanse et stykke ut langs en bane.",
"help.construct.point.center": "Oppretter et hjelpepunkt i senteret av en sirkulær kant, skissesirkel eller bue, kule eller torus. Bruk det som referanse for hull, akser og ledd.",
"help.construct.point.edge_plane": "Oppretter et hjelpepunkt der en kant eller linje går gjennom et plan eller en plan flate. Bruk det til å markere hvor en bane krysser et plan.",
"help.construct.point.three_planes": "Oppretter et hjelpepunkt der tre plan eller plane flater møtes. Bruk det som hjørnereferanse, selv der modellen ikke har noe hjørne.",
"help.construct.point.two_edges": "Oppretter et hjelpepunkt der to kanter eller linjer møtes, eller kommer nærmest hverandre. Bruk det som referanse i et virtuelt hjørne.",
"help.construct.point.vertex": "Oppretter et hjelpepunkt på et hjørne eller skissepunkt. Bruk det som en referanse som blir stående når skissen eller kroppen rundt er skjult.",
"help.contact.check": "Lister opp parene av deler i kontaktsett som går gjennom hverandre i gjeldende posisjon. Bruk det til å finne kollisjoner før du driver ledd eller kjører en bevegelsesanalyse.",
"help.contact.create": "Grupperer to eller flere deler i et kontaktsett, der kroppene hindres i å gå gjennom hverandre mens leddene beveger seg. Bruk det til deler som skal stoppe når de berører hverandre, for eksempel en spak mot stoppen sin.",
"help.contact.disable_all": "Slår av kontakt, slik at drevne ledd og bevegelsesanalyser ikke lenger stopper der delene berører hverandre. Bruk det til å flytte delene fritt igjen, eller til å holde en stor sammenstilling responsiv.",
"help.contact.edit": "Endrer et kontaktsett: delene det inneholder, navnet eller om det er undertrykt; det kan også slette settet. Bruk det til å justere hvilke deler som hindres i å gå gjennom hverandre.",
"help.contact.enable_all": "Legger alle delene i sammenstillingen i ett kontaktsett, slik at ingen to deler kan gå gjennom hverandre mens leddene beveger seg. Bruk det til en rask kontroll av en hel mekanisme.",
"help.contact.enable_sets": "Slår på kontakt for kontaktsettene du har definert, slik at drevne ledd og bevegelsesanalyser stopper der delene deres ville gått gjennom hverandre. Bruk det til å få tilbake settene dine etter at du har slått av kontakt.",
"help.contact.list": "Lister opp kontaktsettene i designet, delene i hvert av dem og om kontakt er slått på. Bruk det til å sjekke hvordan kontakt er satt opp før du driver sammenstillingen.",
"help.document.inspect": "Viser en oversikt over designet: komponenter, kropper, skisser, funksjoner og parametere. Bruk det til å få oversikt i et design du ikke har bygget selv.",
"help.document.units": "Endrer enhetene designet viser lengder i, for eksempel mm eller tommer. Geometrien beholder størrelsen sin; bare visningen og vanlige tall følger med.",
"help.edit.checkpoint": "Husker designet, den aktive skissen og angrehistorikken slik de er nå. Bruk det før du prøver noe risikabelt som du kanskje vil gå tilbake fra.",
"help.edit.restore_checkpoint": "Går tilbake til et sjekkpunkt, inkludert angrehistorikken. Bruk det til å forkaste alt som er gjort siden sjekkpunktet, i ett trinn.",
"help.explode.create": "Oppretter en eksplodert visning som skyver delene bort fra sentrum av sammenstillingen, eller etter flyttingene du angir. Bruk det til å vise hvordan en sammenstilling settes sammen, i veiledninger eller presentasjoner.",
"help.face.delete": "Fjerner de valgte flatene og lar naboflatene lukke åpningen, eller lar åpningen stå igjen som en flate. Bruk det til å fjerne en avrundet kant, et hull eller en forhøyning som er i veien.",
"help.file.insert_mesh": "Legger en 3MF-, STL-, OBJ-, PLY- eller glTF-fil til i designet som nettkropper i en ny komponent. Bruk det til å plassere en nedlastet eller skannet modell ved siden av designet ditt som referanse.",
"help.file.insert_step": "Legger en STEP-, IGES-, FreeCAD- eller Rhino-fil til i designet som volumkropper i en ny komponent; delene i en sammenstilling blir nestede komponenter. Bruk det til å hente inn modeller fra leverandører eller andre CAD-programmer.",
"help.file.save_mesh": "Lagrer kropper som et STL-, 3MF- eller OBJ-mesh, med den jevnheten på krumme flater du velger. Bruk det til å forberede deler for 3D-printing eller for programmer som leser mesher.",
"help.file.send_to_slicer": "Lagrer de valgte kroppene som en 3MF-fil og åpner den i slicer-programmet du velger. Bruk det til å gå fra modell til utskrift i ett trinn.",
"help.font_details": "Grensesnittet bruker de innebygde skriftene i egui (Ubuntu Light og Hack, under Ubuntu Font Licence og MIT/Bitstream Vera-lisensen; Noto Emoji og skriften med emoji-ikoner, under OFL og MIT). Skissetekst bruker Liberation Sans (SIL OFL 1.1). Crafting Apps sin valgfrie skriftpakke, craft-fonts (BIZ UDPGothic, Shippori Mincho, BIZ UDMincho, Noto Sans CJK SC, Noto Sans Arabic; SIL OFL 1.1), følger ikke med i SolidCraft.",
"help.fonts": "Skrifter",
"help.frame.member": "Plasserer en profil, for eksempel et rør eller en aluminiumsprofil, langs linjene i en rammeskisse, ett element per linje. Bruk det til å bygge rammer, stativer og sveisede konstruksjoner.",
"help.inspect.accessibility": "Fargelegger flatene et verktøy kan nå fra én retning, og de det ikke kan nå. Bruk det til å sjekke en del for maskinering eller støping fra den siden.",
"help.inspect.center_of_mass": "Viser massesenteret til kropper, hver for seg og alle samlet, ved jevn tetthet. Bruk det til å sjekke balansen og hvor en del vil velte.",
"help.inspect.colored_components": "Gir hver komponent sin egen midlertidige farge, uten å endre utseender. Bruk det til å se forskjell på delene i en sammenstilling med et blikk.",
"help.inspect.compare": "Sammenligner to kropper og viser hvor den ene har materiale som den andre ikke har, med volum og avvik. Bruk det til å sjekke en endret eller importert del mot originalen.",
"help.inspect.continuity": "Sjekker hvor jevnt flater møtes langs kantene sine: mellomrom, knekk eller krumningssprang, og fargelegger skjøtene. Bruk det til å finne hvor flater ikke går rent sammen.",
"help.inspect.curvature_comb": "Tegner kammer langs kurver, kanter eller flater, der tennene viser hvor sterkt de bøyer. Bruk det til å oppdage flate partier, knekk og ujevn krumning.",
"help.inspect.curvature_map": "Fargelegger flater etter hvor sterkt de krummer, rødt der radiusen er liten. Bruk det til å finne trange partier og vurdere hvor jevn en flate er.",
"help.inspect.draft": "Fargelegger flater etter slippvinkelen til en trekkretning og markerer de som har for liten. Bruk det til å sjekke en del før støping.",
"help.inspect.environment_map": "Viser modellen med en reflekterende, speillignende finish. Bruk det til å vurdere hvordan flatene flyter, ut fra hvordan refleksjonene løper over dem.",
"help.inspect.interference": "Finner kropper som overlapper og viser hver overlapping med volum. Bruk det til å sjekke en sammenstilling for deler som kolliderer.",
"help.inspect.isocurve": "Tegner de isoparametriske kurvene på flater, rutenettet flaten er bygget på. Bruk det til å se hvordan en flate flyter og hvor kurvene samler seg tett.",
"help.inspect.measure": "Måler lengder, avstander, vinkler, areal og radier mellom det du velger, eller volumet og massen til kropper. Bruk det til å sjekke størrelser og klaringer.",
"help.inspect.minimum_radius": "Finner den minste krumningsradiusen til kurver, kanter eller flater, og hvor den er. Bruk det til å sjekke at et verktøy eller en dyse kan følge formen.",
"help.inspect.section": "Skjærer visningen åpen langs et plan og skraverer snittflatene, uten å endre modellen. Bruk det til å se inn i deler og sammenstillinger.",
"help.inspect.zebra": "Viser svarte og hvite striper reflektert på flatene til modellen. Bruk det til å vurdere jevnheten: striper som brytes eller knekker ved en kant, viser en dårlig overgang.",
"help.joint.as_built": "Forbinder to deler der de allerede står, uten å flytte noen av dem, og angir hvordan de fortsatt kan bevege seg. Bruk det til deler du allerede har plassert i sluttposisjonen.",
"help.joint.cam": "Kobler en dreiende kam til en følger, slik at følgeren glir eller svinger når kamprofilen passerer under den. Bruk det til kammer, eksentre og ventildrifter.",
"help.joint.create": "Forbinder to deler ved leddorigoene du velger og flytter den andre delen på plass; leddtypen bestemmer hvordan de fortsatt kan bevege seg. Bruk det til å bygge en sammenstilling der delene beveger seg som den virkelige mekanismen.",
"help.joint.drive": "Setter vinkelen eller avstanden til et ledd og flytter delene med det, innenfor grensene; koblede ledd og lukkede sløyfer følger med. Bruk det til å sjekke at en mekanisme beveger seg som tenkt.",
"help.joint.gear": "Kobler to dreiende ledd med et utvekslingsforhold, slik at drift av det ene dreier det andre. Bruk det til rette tannhjul og ringhjul, med forholdet fra delesirkelradier eller tannantall.",
"help.joint.limits": "Setter hvor langt et ledd kan dreie eller gli, som minimum og maksimum, eller fjerner grensene. Bruk det til å holde et hengsel, et glidende ledd eller en spak innenfor det virkelige bevegelsesområdet.",
"help.joint.motion_link": "Kobler to ledd med et forhold og en forskyvning, slik at drift av det ene flytter det andre. Bruk det til en fast sammenheng mellom ledd som Tannhjul, Tannstang og drev eller Skrue ikke dekker.",
"help.joint.origin": "Plasserer en navngitt leddorigo på en del: i senteret av en flate eller rund ende, midt på en kant, i et hjørne eller i et punkt. Bruk det til å forberede hvor ledd festes; en valgt på en flate følger flaten når delen endrer størrelse.",
"help.joint.rack_pinion": "Kobler et dreiende drev til en glidende tannstang, slik at stangen flytter seg like langt som delesirkelen drevet ruller gjennom. Bruk det til tannstangdrifter, styring og lineære akser.",
"help.joint.reach": "Flytter et punkt på en del mot et mål ved å endre leddene i kjeden, innenfor grensene deres. Bruk det til å stille en mekanisme etter hvor enden skal være, for eksempel spissen på en robotarm.",
"help.joint.rigid_group": "Låser de valgte delene sammen slik de er, så de beveger seg som én. Bruk det til deler som hører sammen og ikke skal bevege seg i forhold til hverandre.",
"help.joint.screw": "Kobler dreining og glidning med en stigning, slik at hver omdreining flytter like langt som stigningen. Bruk det til ledeskruer, bolter og gjengede spindler.",
"help.library.apply": "Bruker et materiale eller utseende fra en lokal bibliotekfil på kropper, flater eller komponenter. Bruk det til å gjenbruke materialer du har lagret fra et annet design.",
"help.library.export": "Lagrer materialene og utseendene i designet til en bibliotekfil. Bruk det til å dele dem eller gjenbruke dem i andre design.",
"help.library.inspect": "Sjekker en bibliotekfil og lister opp materialene og utseendene i den, uten å endre designet. Bruk det til å se hva et bibliotek inneholder før du bruker det.",
"help.licences": "Lisenser",
"help.material.assign": "Angir hva de valgte kroppene er laget av, for eksempel stål, aluminium eller ABS. Bruk det slik at masse og vekt stemmer med den virkelige delen.",
"help.material.properties.validate": "Sjekker et materialdatakort for konsistente tall og manglende verdier. Bruk det før du stoler på dataene for masse eller stivhet.",
"help.mesh.convert": "Bygger en nettkropp, for eksempel en STL, om til en redigerbar volumkropp med plane og sylindriske flater. Bruk det til å endre importerte mekaniske deler som en modellert kropp.",
"help.mit": "MIT-lisens",
"help.motion.study": "Setter leddverdier ved trinn langs en tidslinje og spiller dem av som en animasjon. Bruk det til å se en mekanisme bevege seg gjennom en sekvens og sjekke klaringer underveis.",
"help.motion.trace": "Sporer banen et punkt på en del følger mens en bevegelsesanalyse spilles av eller et ledd drives, og beholder den som en kurve i en 3D-skisse når du bekrefter. Bruk det til å se hvor en mekanisme når, eller til å bygge videre på banen.",
"help.notice": "NOTICE",
"help.occurrence.ground": "Fester en del på plass, eller frigjør den igjen, slik at ledd flytter de andre delene rundt den. Bruk det til rammen eller basen resten av sammenstillingen bygges på.",
"help.occurrence.move": "Flytter en del i en sammenstilling bare langs frihetsgradene som leddene tillater. Velg en flate på delen, og dra deretter en tilgjengelig pil eller bue.",
"help.parameters.change": "Åpner tabellen over navngitte verdier og uttrykk som styrer målene i designet. Bruk den til å endre en størrelse ett sted og la alle funksjoner som bruker den følge med.",
"help.parameters.export": "Lagrer parameterne i designet som CSV eller JSON. Bruk det til å redigere dem i et regneark eller flytte dem til et annet design.",
"help.parameters.graph": "Viser hvilke parametere og funksjoner som bruker hvilke andre, og eventuelle sløyfer eller feil blant dem. Bruk det til å se hva en endring av en parameter vil påvirke.",
"help.parameters.import": "Leser parametere fra CSV eller JSON inn i designet, alle eller ingen. Bruk det til å hente inn verdier fra et regneark eller et annet design.",
"help.parameters.move": "Flytter en brukerparameter før eller etter en annen i listen. Bruk det til å holde relaterte parametere sammen.",
"help.parts.fastener": "Legger til en standard skrue, bolt, mutter, skive, stift eller et lager i størrelsen du velger. Plassert på et hull sitter det i hullet med et ledd, så du slipper å modellere festemidler selv.",
"help.parts.insert": "Setter inn en standarddel i familien, størrelsen og lengden du velger. Plassert på kanten eller veggen av et hull sitter den på hullet med et stivt ledd.",
"help.parts.library": "Åpner standarddelene: skruer, bolter, muttere, skiver, settskruer, passtifter og lagre i standardstørrelser. Bruk det til å legge til en standarddel i stedet for å modellere den selv.",
"help.parts.resize": "Endrer størrelsen eller lengden på en innsatt standarddel og bygger den på nytt; leddene holder den på plass. Bruk det når en skrue viser seg å være for lang eller et hull trenger en annen størrelse.",
"help.plastic.assign_rule": "Tildeler en plastregel til kropper, slik at plastfunksjonene deres bruker slippvinkelen og klaringen fra den som standard. Bruk det til å sette opp en støpt del én gang for alle funksjonene.",
"help.plastic.boss": "Legger til et skruefeste på en flate: en stolpe med valgfritt hull, slippvinkel, avrunding i foten og støttende ribber. Bruk det til skruepunkter i støpte eller utskrevne hus.",
"help.plastic.lip": "Legger til en leppekant eller et tilsvarende spor langs kanten av en uthulet kropp. Bruk det slik at to husdeler plasserer seg mot hverandre og lukker tett.",
"help.plastic.manage_rules": "Oppretter og redigerer plastregler: materiale, veggtykkelse, radier, klaring og slippvinkel. Bruk dem til å holde funksjonene i en støpt del konsistente.",
"help.plastic.rest": "Legger til et anlegg på en flate: en rund eller rektangulær pute, massiv eller hul, med slippvinkel. Bruk det som støtte eller avstandsstykke i et støpt hus.",
"help.plastic.snap_fit": "Legger til en snap-fit-krok på en flate, med lengde, tykkelse og hake. Bruk det til å klikke deler sammen uten skruer.",
"help.pointcloud.insert": "Sett inn en PLY-, XYZ- eller PTS-skanning som en punktsky ved siden av modellen. Bruk den som referanse når du bygger en modell fra måledata.",
"help.sheet.convert": "Gjør en plate eller en uthulet kropp med jevn tykkelse om til en platekropp, med bøyninger ved kantene du velger. Bruk det til å gjøre en eksisterende del utbrettbar.",
"help.sheet.export_bend_table": "Lagrer bøyetabellen til en platekropp som CSV eller JSON: vinkler, radier og bøyeposisjoner i utbrettingen. Bruk det til kantpressen eller verkstedet.",
"help.sheet.export_dxf": "Lagrer utbrettingen som en DXF, med konturer, bøyelinjer og valgfrie bøyenotater. Bruk det til laser-, plasma- eller vannskjæring.",
"help.sheet.flange": "Legger til en flens: en grunnplate fra en skisse, en vegg langs en åpen skissekontur eller en bøyd vegg på platekanter. Bruk det til å bygge opp platedeler.",
"help.sheet.flat_pattern": "Oppretter utbrettingen av en platekropp, med størrelse, utsparinger og bøyelinjer. Bruk det til å sjekke emnet før du skjærer det ut.",
"help.sheet.fold": "Bøyer en plate langs en skisselinje med en vinkel og en radius. Bruk det til å brette en flat plate etter at du har lagt utskjæringer i den.",
"help.sheet.hem": "Bretter en platekant tilbake over seg selv. Bruk det til trygge, stive kanter uten skarpe grater.",
"help.sheet.manage_rules": "Oppretter og redigerer plateregler: tykkelse, bøyeradius, K-faktor, avlastninger og mellomrom. Bruk dem til å tilpasse materialet og verktøyene i verkstedet ditt.",
"help.sheet.path_flange": "Legger til en kjede av flenser langs en platekant, etter en åpen kjede av skisselinjer. Bruk det til profiler som en U- eller Z-form i ett trinn.",
"help.sheet.perforate": "Legger til et felt av hull over hele den flate platen, i et forskjøvet eller kvadratisk mønster. Bruk det til ventilasjon, gitter og lettere paneler.",
"help.sheet.refold": "Bretter en utbrettet platekropp sammen igjen. Bruk det etter at du har lagt funksjoner til den flate platen.",
"help.sheet.unfold": "Bretter ut alle bøyninger i en platekropp. Bruk det til å legge til hull eller skjæringer som må krysse en bøyning, og brett deretter sammen igjen.",
"help.sketch.arc.center_point": "Tegner en sirkelbue rundt et senterpunkt, fra et startpunkt til et sluttpunkt. Bruk det når buens senter er kjent, for eksempel en radius rundt et hull eller en dreietapp.",
"help.sketch.arc.tangent": "Tegner en bue som starter ved enden av en linje eller bue og fortsetter tangentielt. Bruk det til å føre en kjede videre med en jevn bøy i stedet for et hjørne.",
"help.sketch.arc.three_point": "Tegner en bue fra et startpunkt til et sluttpunkt gjennom et tredje punkt. Bruk det når buen må gå gjennom gitte punkter i stedet for rundt et kjent senter.",
"help.sketch.arc3d": "Tegner en eksakt sirkelbue i rommet gjennom tre punkter, med 3D-skisse slått på. Bruk det til svinger i baner og føringskurver som forlater skisseplanet.",
"help.sketch.auto_constrain": "Legger til bindingene skissen nesten har fra før, som vannrett, parallell eller sammenfallende, og setter deretter mål på den til den er fullt bestemt. Bruk det til å låse en grovt tegnet skisse i ett trinn.",
"help.sketch.auto_constrain_from_datum": "Fungerer som Automatiske bindinger, men måler posisjonene fra et referansepunkt du velger i stedet for origo. Bruk det når delen er lagt ut fra ett referansepunkt, for eksempel et hjørne eller et hull.",
"help.sketch.blend_curve": "Forbinder endene på to kurver med en jevn spline som er tangent til begge, eller også krumningskontinuerlig hvis du velger det. Bruk det til å bygge bro over et mellomrom mellom kurver uten knekk.",
"help.sketch.break": "Deler en kurve i biter der andre kurver krysser den, eller ved punkter du plasserer på den. Bruk det når en del av en kurve trenger sin egen binding eller skal slettes for seg.",
"help.sketch.cancel": "Forlater skissen og forkaster alt som er endret siden den ble opprettet eller åpnet for redigering. Angre henter endringene tilbake.",
"help.sketch.centerline": "Bytter linjer mellom vanlige linjer og senterlinjer, akser som profiler utelater. Bruk en senterlinje som akse for en omdreining, en speiling eller en symmetribinding.",
"help.sketch.chamfer.distance_angle": "Lager en fas på hjørnet mellom to linjer, bestemt av en avstand langs den første linjen og en vinkel. Bruk det når en tegning oppgir fasen som en lengde og en vinkel, for eksempel 2 mm × 30°.",
"help.sketch.chamfer.equal_distance": "Lager en fas på hjørnet mellom to linjer, like langt tilbake langs begge. Bruk det til den vanlige 45°-fasen på en kontur.",
"help.sketch.chamfer.two_distance": "Lager en fas på hjørnet mellom to linjer, bestemt av en egen avstand langs hver linje. Bruk det til faser som ikke er 45°, oppgitt som to lengder.",
"help.sketch.circle.center": "Tegner en sirkel fra senteret og diameteren. Bruk det til hull, skruefester og andre runde former med kjent senter.",
"help.sketch.circle.three_point": "Tegner en sirkel gjennom tre punkter. Bruk det når sirkelen må gå gjennom gitte punkter, for eksempel på eksisterende geometri.",
"help.sketch.circle.three_tangent": "Tegner en sirkel som berører tre linjer, sirkler eller buer. Bruk det til å passe en sirkel inn i rommet mellom tre kurver, for eksempel den innskrevne sirkelen i en trekant.",
"help.sketch.circle.two_point": "Tegner en sirkel fra de to endene av diameteren. Bruk det når kantpunktene på sirkelen er kjent i stedet for senteret.",
"help.sketch.circle.two_tangent": "Tegner en sirkel i en gitt størrelse som berører to linjer, sirkler eller buer. Bruk det til en avrunding med fast radius mellom to kurver.",
"help.sketch.conic": "Tegner en kjeglesnittkurve mellom to endepunkter, formet av et toppunkt og en rho-verdi. Bruk det til jevne overganger der du vil justere fyldigheten, fra flat til nesten et skarpt hjørne.",
"help.sketch.constrainer": "Bruker bindingen som en eller to valgte kurver nesten har fra før, som vannrett, parallell, tangent eller lik. Bruk det til å rydde opp i en håndtegnet skisse én relasjon om gangen.",
"help.sketch.constraint.coincident": "Får et punkt til å ligge på et annet punkt, en kurve eller en skisseakse. Bruk det til å lukke mellomrom i en profil eller til å legge et punkt på en linje.",
"help.sketch.constraint.collinear": "Får to linjer til å ligge på én rett linje. Bruk det til å rette opp avbrutte kanter, for eksempel begge sidene av en utsparing.",
"help.sketch.constraint.concentric": "Gir to sirkler eller buer samme senter. Bruk det til ringer, sylindriske forsenkninger og aksler med skuldre.",
"help.sketch.constraint.curvature": "Får to kurver som møtes i et endepunkt til å fortsette med samme krumning (G2). Bruk det der en tangentforbindelse ikke er jevn nok, for eksempel på synlige flater.",
"help.sketch.constraint.equal": "Gjør linjer like lange, eller sirkler og buer like store i radius. Bruk det slik at ett mål styrer flere tilsvarende former.",
"help.sketch.constraint.fix": "Fikserer punkter eller kurver der de er, eller frigjør dem igjen. Bruk det til geometri som ikke må flytte seg når du drar i eller løser skissen.",
"help.sketch.constraint.horizontal_vertical": "Gjør en linje, eller linjen mellom to punkter, vannrett eller loddrett, avhengig av hva som er nærmest. Bruk det til å rette opp en kontur mot skisseaksene.",
"help.sketch.constraint.midpoint": "Legger et punkt midt på en linje, eller får midtpunktene til to linjer til å møtes. Bruk det til å sentrere geometri på en kant.",
"help.sketch.constraint.parallel": "Gjør to linjer parallelle. Bruk det til sider som må forbli parallelle når andre mål endres.",
"help.sketch.constraint.perpendicular": "Får to linjer til å møtes i rett vinkel. Bruk det til rette hjørner mellom linjer som ikke ligger på skisseaksene.",
"help.sketch.constraint.polygon": "Gjør en lukket kjede av linjer til en regulær mangekant: like sider, med hvert hjørne på én sirkel. Bruk det til å gjøre en håndtegnet mangekant regulær og holde den slik.",
"help.sketch.constraint.symmetry": "Får to punkter eller kurver til å speile hverandre om en linje eller et punkt. Bruk det til å holde en profil symmetrisk når du endrer den ene siden.",
"help.sketch.constraint.tangent": "Får to kurver til å berøre hverandre tangentielt, for eksempel en linje og en bue. Bruk det til jevne forbindelser uten knekk.",
"help.sketch.construction": "Bytter kurver mellom vanlig geometri og konstruksjonsgeometri, som profiler utelater. Bruk konstruksjonskurver som hjelp til utlegg, referanser og mål.",
"help.sketch.construction_line": "Opprett en uendelig hjelpelinje gjennom to punkter. Bruk den til å legge opp en skisse uten å dele opp profilene.",
"help.sketch.construction_line.angle": "Opprett en uendelig hjelpelinje i en vinkel fra skissens X-akse. Velg punktet og skriv inn vinkelen, eller velg retningen.",
"help.sketch.construction_line.bisector": "Velg to rette skisselinjer som krysser hverandre, og velg deretter en av vinkelhalveringslinjene. Resultatet følger kildelinjene sine.",
@@ -1412,11 +1580,71 @@
"help.sketch.construction_line.tangent_external": "Velg en sirkel eller sirkelbue, deretter et eksternt punkt og en tangentløsning. Forhåndsvisningene viser bare berøringspunkter på den tegnede buen.",
"help.sketch.construction_line.tangent_two": "Velg to sirkler eller sirkelbuer, og velg deretter en felles tangent i forhåndsvisningen. Berøringspunktene må ligge på de tegnede kurvene.",
"help.sketch.construction_line.vertical": "Opprett en uendelig loddrett hjelpelinje gjennom et punkt. Den loddrette bindingen følger med ved senere endringer.",
"help.sketch.copy": "Kopierer de valgte skissekurvene og punktene, sammen med bindingene og målene mellom dem. Lim dem inn i denne skissen eller en annen.",
"help.sketch.create": "Starter en ny 2D-skisse på et plan eller på en plan flate av modellen. Hver ekstrudering, omdreining og sweep begynner med en skisse.",
"help.sketch.cut": "Kopierer den valgte skissegeometrien og sletter den fra skissen, i ett angretrinn. Lim den inn et annet sted i denne skissen eller i en annen.",
"help.sketch.dimension": "Legger til et styrende mål: en lengde, avstand, vinkel, radius eller diameter, avhengig av hva du velger. Skriv inn en verdi eller et parameternavn, så følger skissen det.",
"help.sketch.edit": "Åpner en eksisterende skisse for redigering. Funksjonene som er bygget på den, oppdateres når du fullfører skissen.",
"help.sketch.ellipse": "Tegner en ellipse fra senteret, enden av storaksen og et punkt på den korte siden. Bruk det til ovale åpninger, kammer og andre avlange runde former.",
"help.sketch.equation_curve": "Tegner en kurve ut fra formler: x(t) og y(t), eller y = f(x), over et intervall. Formlene kan bruke parametere, og kurven følger dem: bruk den til en sinusbølge, en spiral eller evolventen til en tannhjulstann.",
"help.sketch.extend": "Forlenger en linje eller bue til nærmeste kurve i veien, eller lar to kurver vokse til de møtes. Bruk det til å lukke mellomrom i en profil etter trimming eller redigering.",
"help.sketch.fillet": "Runder av hjørnet der to linjer eller buer møtes, med en bue med gitt radius. Flere hjørner som avrundes sammen, deler én radius.",
"help.sketch.finish": "Forlater skissen og går tilbake til modellen. De lukkede profilene er da klare for Ekstrudering, Omdreining og andre funksjoner.",
"help.sketch.finish_auto_constrain": "Kjører Automatiske bindinger på skissen og fullfører den deretter. Bruk det til å la en skisse være fullt bestemt i ett trinn.",
"help.sketch.fit_curves_to_section": "Skjærer en nettkropp eller volumkropp med skisseplanet og tilpasser linjer og buer til snittet. Bruk det til å gjenoppbygge en skannet eller importert del som en redigerbar skisse.",
"help.sketch.include_3d": "Henter modellkanter, hjørner og kurver fra andre skisser inn i denne skissen som koblede referanser, og flater ut de som ligger utenfor planet på det. Bruk det til å bygge på geometri som ikke ligger i skisseplanet.",
"help.sketch.infinite": "Bytter linjer mellom vanlige linjer og uendelige hjelpelinjer som går over hele visningen. Bruk dem som utleggsreferanser som aldri ender for kort.",
"help.sketch.insert_dxf": "Leser kurvene fra en DXF-tegning inn i en skisse, skalert, dreid og plassert slik du angir. Bruk det til å bygge på en 2D-tegning fra et annet program, for eksempel en kontur for laserskjæring.",
"help.sketch.insert_svg": "Leser banene fra en SVG-tegning inn i en skisse, skalert, dreid og plassert slik du angir. Bruk det til å gjøre en logo eller vektorkontur om til kurver du kan ekstrudere.",
"help.sketch.inspect": "Åpner en rapport om den åpne skissen: hvor mange frihetsgrader som gjenstår og om den er fullstendig bundet. Bruk det til å finne ut hva som fortsatt beveger seg før du fullfører skissen.",
"help.sketch.intersect": "Legger til kurvene eller punktene der kropper, flater, kanter eller andre skisser krysser skisseplanet. De forblir koblet og følger modellen når den endres.",
"help.sketch.intersection_curve": "Oppretter 3D-kurver der to kropper eller flater møtes, koblet til dem. Bruk dem som baner eller føringskurver som følger modellen.",
"help.sketch.isoparametric_curve": "Oppretter en 3D-kurve langs U- eller V-retningen til en flate gjennom et punkt du velger, koblet til flaten. Bruk den som en bane eller delelinje som følger flaten.",
"help.sketch.line": "Tegner sammenhengende linjer punkt for punkt, som en åpen kjede eller en lukket kontur. Det er det grunnleggende verktøyet for de fleste profiler.",
"help.sketch.line.midpoint": "Tegner en linje fra midtpunktet og ut til den ene enden, med den andre enden speilet. Bruk det til linjer sentrert på et punkt, for eksempel en symmetrisk kant.",
"help.sketch.line3d": "Tegner sammenhengende rette linjer mellom punkter i rommet, med 3D-skisse slått på. Bruk det til baner og rammer som forlater skisseplanet.",
"help.sketch.mirror": "Speiler skissekurver og punkter om en linje eller akse og legger til symmetribindinger. Bruk det til å tegne halvparten av en symmetrisk profil og fullføre den.",
"help.sketch.move": "Flytter eller roterer skissekurver og punkter, eller en kopi av dem. Bruk det til å plassere geometri på nytt og beholde formen og bindingene.",
"help.sketch.offset": "Lager en kopi av en kjede av kurver i en gitt avstand, på den ene siden eller begge. Bruk det til vegger, konturer og klaringer; avstanden forblir et redigerbart mål.",
"help.sketch.paste": "Limer inn skissegeometri du har kopiert eller klippet ut i den aktive skissen. Plasser den i et punkt eller forskyv den med en offset.",
"help.sketch.pattern.circular": "Kopierer skissegeometri rundt et senterpunkt, over en full sirkel eller en gitt vinkel. Bruk det til hullsirkler, eiker og tenner.",
"help.sketch.pattern.rectangular": "Kopierer skissegeometri i rader og kolonner med gitte avstander. Bruk det til rutenett av hull, spor eller ventilasjonsåpninger.",
"help.sketch.point": "Plasserer et skissepunkt. Bruk det som referanse for mål, bindinger, hullsentre eller senere funksjoner.",
"help.sketch.point3d": "Plasserer et punkt i rommet, med 3D-skisse slått på. Bruk det som referanse for 3D-kurver og baner.",
"help.sketch.polygon.circumscribed": "Tegner en regulær mangekant rundt en sirkel, dimensjonert fra senteret til midten av en side. Bruk det når bredden over flatene er kjent, som for en sekskantmutter.",
"help.sketch.polygon.edge": "Tegner en regulær mangekant fra de to endene av én side. Bruk det når lengden og posisjonen til en side er kjent.",
"help.sketch.polygon.inscribed": "Tegner en regulær mangekant inni en sirkel, dimensjonert fra senteret til et hjørne. Bruk det når målet over hjørnene er kjent.",
"help.sketch.project": "Henter modellkanter, flater, hjørner og kurver fra andre skisser inn i denne skissen, projisert på planet. De forblir koblet og følger modellen når den endres.",
"help.sketch.project_to_surface": "Projiserer kurver fra andre skisser langs normalen til denne skissen på en flate, som koblede 3D-kurver. Bruk det til å legge en logo, delelinje eller bane på en kurvet flate.",
"help.sketch.rectangle.center": "Tegner et rektangel fra senteret og ett hjørne. Bruk det til konturer sentrert på et punkt, for eksempel origo.",
"help.sketch.rectangle.rounded": "Tegner et rektangel med alle fire hjørnene avrundet til én radius. Bruk det til plater, lokk og åpninger med avrundede hjørner.",
"help.sketch.rectangle.three_point": "Tegner et rektangel fra én kant og et punkt på motsatt side. Bruk det til rektangler i vinkel mot skisseaksene.",
"help.sketch.rectangle.two_point": "Tegner et rektangel fra to motstående hjørner. Bruk det til konturene av plater, blokker og lommer.",
"help.sketch.scale": "Skalerer skissekurver og punkter med en faktor om et basepunkt. Bruk det til å endre størrelsen på en del av en skisse uten å tegne den på nytt.",
"help.sketch.slot.arc_center": "Tegner et buet spor med gitt bredde langs en bue bestemt av senteret, starten og slutten. Bruk det til justeringsspor rundt en dreietapp.",
"help.sketch.slot.arc_three_point": "Tegner et buet spor med gitt bredde langs en bue gjennom tre punkter. Bruk det når sporets bane må gå gjennom gitte punkter.",
"help.sketch.slot.center_point": "Tegner et rett spor med gitt bredde fra senteret til senteret av den ene endebuen. Bruk det til spor sentrert på et punkt.",
"help.sketch.slot.center_to_center": "Tegner et rett spor med gitt bredde mellom sentrene til de to endebuene. Bruk det til spor målsatt senter til senter, for eksempel justeringsspor for skruer.",
"help.sketch.slot.overall": "Tegner et rett spor med gitt bredde fra den ene ytterenden til den andre. Bruk det når sporets totale lengde er det som teller.",
"help.sketch.spline.control_point": "Tegner en kubisk spline formet av kontrollpunkter som den ikke går gjennom. Bruk det til jevne, flytende kurver som du former ved å flytte punktene.",
"help.sketch.spline.control_point_5": "Tegner en spline av grad 5 formet av kontrollpunkter. Bruk det der kurver må henge sammen med jevnere krumning, for eksempel på synlige designflater.",
"help.sketch.spline.fit_point": "Tegner en jevn spline som går gjennom hvert punkt du plasserer, åpen eller lukket. Bruk det til å tegne en form gjennom kjente punkter.",
"help.sketch.spline3d": "Tegner en jevn kurve i rommet gjennom punkter, med 3D-skisse slått på. Bruk det til sweep-baner og kabelføringer som forlater skisseplanet.",
"help.sketch.spun_profile": "Oppretter i skisseplanet omrisset en kropp tegner ut når den dreier om en akse. Bruk det til å få silhuetten av en dreiedel for en omdreining eller en tegning.",
"help.sketch.text": "Skriver tekst i skissen i en valgt skrift, høyde og vinkel; ordene kan følge parametere. Ekstruder eller preg den for etiketter og skrift.",
"help.sketch.transform": "Skalerer, dreier og flytter skissegeometri om et senterpunkt i ett trinn. Bruk det til å plassere og endre størrelsen på et utvalg samtidig.",
"help.sketch.trim": "Fjerner delen av en kurve mellom de nærmeste kryssingene rundt stedet du klikker. Bruk det til å rydde overlappende linjer til en lukket profil.",
"help.solid.align": "Flytter de valgte kroppene slik at et punkt, en flate eller et plan på dem møter et punkt, en flate eller et plan et annet sted. Bruk det til å plassere en del mot en annen uten å måle forskyvningen.",
"help.solid.boundary_fill": "Lager volumkropper av områdene som omsluttes av overlappende verktøykropper, og fyller bare områdene du velger. Bruk det til å bygge en form av rommet flere kropper avgrenser sammen.",
"help.solid.bounding_solid": "Oppretter en boks som omslutter de valgte kroppene, med en valgfri margin. Bruk det til å se den samlede størrelsen på en del, eller som råemnet den freses ut av.",
"help.solid.box": "Oppretter en boks fra lengde, bredde og høyde, fra et hjørnepunkt eller sentrert på et punkt. Bruk det til en rask blokk, en plassholder eller en kropp å skjære funksjoner inn i.",
"help.solid.chamfer": "Lager en plan fas langs de valgte kantene med avstanden du angir. Bruk verktøyet til å fjerne skarpe kanter eller gjøre det lettere å føre inn en pinne eller skrue.",
"help.solid.coil": "Oppretter en spiralformet kropp, for eksempel en fjær, fra en diameter, vindinger, høyde eller stigning og et rundt eller kvadratisk tverrsnitt. Bruk det til fjærer, spoler og spiralformede rygger.",
"help.solid.combine": "Slår sammen kropper, trekker dem fra en målkropp eller beholder bare volumet de har felles, og kan beholde verktøykroppene. Bruk det til å slå sammen deler, til å skjære en form med en annen eller til å finne hvor to kropper overlapper.",
"help.solid.cone": "Oppretter en kjegle fra en grunnsirkel og en høyde, eller en avkortet kjegle når toppen også har en radius. Bruk det til tilspissinger, traktere, koniske forsenkninger og spisser.",
"help.solid.cylinder": "Oppretter en sylinder fra en radius eller diameter og en høyde, stående på et punkt langs en akse. Bruk det til aksler, stifter, skruefester og runde emner.",
"help.solid.draft": "Tilter de valgte flatene med vinkelen du angir, målt fra et nøytralt plan. Bruk det på støpte eller formsprøytede deler slik at de glir ut av formen.",
"help.solid.emboss": "Hever skisseprofiler, for eksempel tekst eller en logo, ut fra en flate, eller senker dem ned i den. Bruk det til skrift, etiketter og merking på plane eller runde flater.",
"help.solid.extrude": "Trekker en skisseprofil ut i 3D over en angitt avstand og legger til eller fjerner materiale. Bruk verktøyet til å gjøre et flatt omriss til en blokk, en knast eller en lomme.",
"help.solid.fillet": "Runder av de valgte kantene med en jevn, sirkulær overgang med radiusen du angir. Bruk verktøyet til å avrunde skarpe kanter av hensyn til styrke, komfort eller utseende.",
"help.solid.hole": "Lager et rundt hull med diameteren du angir, ved et valgt punkt på en flate. Bruk verktøyet til klaringshull for skruer, hull for pinner og andre enkle, runde åpninger.",
@@ -1425,20 +1653,60 @@
"help.solid.move": "Flytter eller roterer de valgte kroppene, eller en kopi av dem, med avstanden og vinkelen du angir. Bruk det til å flytte en kropp eller lage en til på et annet sted.",
"help.solid.offset_face": "Skyver de valgte flatene inn eller ut med avstanden du angir, og flatene rundt følger med. Bruk det til å gjøre en vegg tykkere, en lomme dypere eller en forhøyning høyere uten å redigere skissen.",
"help.solid.pattern.circular": "Gjentar de valgte objektene rundt en akse, med antallet og totalvinkelen du angir. Bruk det til boltesirkler, eiker, finner og tenner.",
"help.solid.pattern.path": "Kopierer funksjoner eller kropper langs en skissebane, etter antall og avstand. Bruk det til hull langs en kurvet kant eller deler langs en skinne.",
"help.solid.pattern.rectangular": "Gjentar de valgte objektene i én eller to retninger med antallet og avstanden du angir. Bruk det til rader og rutenett av hull, ribber, pinner eller føtter.",
"help.solid.pipe": "Oppretter et rundt rør langs en bane av skissekurver, massivt eller hult med en veggtykkelse. Bruk det til rør, ledninger, kabler og skinner.",
"help.solid.press_pull": "Legger til eller fjerner materiale når du drar i en flate, eller avrunder kanter når du drar i dem. Bruk det til raske endringer rett på modellen.",
"help.solid.remove": "Tar de valgte kroppene ut av designet fra dette punktet i tidslinjen og utover; tidligere trinn beholder dem. Bruk det til å fjerne en hjelpekropp, for eksempel et skjæreverktøy du ikke trenger lenger.",
"help.solid.replace_face": "Flytter de valgte plane flatene til et plan eller en parallell flate, og kroppen vokser eller krymper for å møte det. Bruk det til å få en flate på linje med en annen del eller et konstruksjonsplan.",
"help.solid.revolve": "Dreier en skisseprofil rundt en akse for å lage en rotasjonssymmetrisk volumkropp. Bruk verktøyet til aksler, knotter, skåler og andre deler som er runde rundt en senterlinje.",
"help.solid.rib": "Legger til en tynn vegg langs en åpen skissekurve, fylt ut til de neste flatene på kroppen. Bruk det til å avstive vegger og hjørner, for eksempel i støpte eller utskrevne deler.",
"help.solid.scale": "Gjør de valgte kroppene større eller mindre med en faktor, lik i alle retninger eller én per akse. Bruk det til å endre størrelsen på en importert form eller til å ta hensyn til krymping.",
"help.solid.shell": "Huler ut en volumkropp og lager vegger med tykkelsen du angir. Flatene du velger, fjernes for å lage åpninger. Bruk verktøyet til bokser, deksler og andre tynnveggede deler.",
"help.solid.sphere": "Oppretter en kule fra en radius eller diameter rundt et senterpunkt. Bruk det til kuler, knotter og avrundede ender.",
"help.solid.split_body": "Deler en kropp i separate kropper med et plan, flaten til en annen kropp eller en skisselinje. Bruk det til å lage deler som skal skrives ut, maskineres eller farges hver for seg.",
"help.solid.split_face": "Deler de valgte flatene langs et plan, flaten til en annen kropp eller skisserte kurver, uten å dele kroppen. Bruk det til å gi en del av en flate sin egen slippvinkel, farge eller forskyvning.",
"help.solid.sweep": "Drar en skisseprofil langs en bane for å lage en volumkropp. Bruk det til rør, skinner, håndtak og alle deler med konstant tverrsnitt som følger en kurve.",
"help.solid.thread": "Legger til en ISO-metrisk gjenge på en sylindrisk flate, enten som en kosmetisk gjenge eller skåret inn i kroppen. Bruk det til bolter, gjengede hull og utskrevne skrudeler.",
"help.solid.torus": "Oppretter en ring fra en storradius rundt aksen og en lilleradius for det runde tverrsnittet. Bruk det til O-ringer, håndtak og runde perler.",
"help.solid.web": "Legger til en tynn vegg langs hver åpne skissekurve, hver fylt ut til de neste flatene på kroppen. Bruk det til et rutenett av støttevegger inni hus og brett.",
"help.surface.blend": "Oppretter en flate som bygger bro mellom kantene på to kropper, tangent- eller krumningskontinuerlig mot begge. Bruk det til å forbinde to flater jevnt over et mellomrom.",
"help.surface.boundary": "Oppretter en flate som fyller en sløyfe av to til fire skissekurver, eller et nett av kurver. Bruk det til frie paneler definert av kantene sine.",
"help.surface.extend": "Forlenger en flate forbi kantene, med en avstand eller opp til et plan eller en flate. Bruk det slik at flater overlapper før du trimmer eller syr dem sammen.",
"help.surface.extrude": "Skyver skissekurver eller profiler en avstand ut til en flate, bare vegger, uten lokk. Bruk det til tynne vegger og til skjære- eller delingsverktøy.",
"help.surface.fair": "Jevner ut innsiden av frie flater mens kantene blir stående. Bruk det til å jevne ut bulker og bølgete refleksjoner i en flate.",
"help.surface.loft": "Oppretter en flate som går gjennom to eller flere profiler i rekkefølge, uten lokk. Bruk det til skall og overganger mellom ulike former.",
"help.surface.match": "Bygger kanten av en flate på nytt slik at den møter kanten til en annen kropp, med samsvarende tangent eller krumning. Bruk det til å lukke en skjøt jevnt mellom to flater.",
"help.surface.offset": "Lager en kopi av flater i en avstand langs normalene deres, som en ny flatekropp. Bruk det til hud, klaringer eller den andre siden av en vegg.",
"help.surface.patch": "Fyller et skisseområde eller en lukket sløyfe av kanter med en flate, plan eller jevnt krum. Bruk det til å lukke hull i en flatekropp.",
"help.surface.reverse_normal": "Snur flatene i en flatekropp, slik at utsiden vender den andre veien. Bruk det før fortykning eller sammensying når flatene peker innover.",
"help.surface.revolve": "Dreier skissekurver eller profiler om en akse til en flate, uten lokk. Bruk det til runde skall som lampeskjermer, boller og dyser.",
"help.surface.ruled": "Oppretter en stripe av rette linjer ut fra en kjede av kanter, langs flatens normal, tangent eller i en vinkel. Bruk det til slippvegger, utløp og delingsflater.",
"help.surface.stitch": "Syr flatekropper sammen langs de felles kantene, til en volumkropp når de lukker seg. Bruk det til å gjøre et sett flater om til én kropp.",
"help.surface.sweep": "Fører skissekurver eller profiler langs en bane til en flate, uten lokk. Bruk det til renner, lister og andre tynne former som følger en bane.",
"help.surface.thicken": "Gir en flatekropp en tykkelse og gjør den til en volumkropp. Bruk det til å lage utskrivbare eller maskinerbare deler av flater.",
"help.surface.trim": "Skjærer en flate med et plan, en annen flate eller skissekurver, og beholder siden du velger. Bruk det til å skjære flater til form før sammensying.",
"help.surface.unstitch": "Skiller flatene til en kropp ut i egne flatekropper; en volumkropp faller fra hverandre til flater. Bruk det til å bearbeide enkeltflater på en kropp.",
"help.surface.untrim": "Fjerner hull fra en flate, eller gjenoppretter ytterkanten til flatens naturlige grenser. Bruk det til å få tilbake hele flaten etter en trimming.",
"help.third_party": "Tredjepartslisenser",
"help.timeline.compute_all": "Bygger alle funksjoner i tidslinjen på nytt fra begynnelsen. Bruk det til å oppdatere modellen og se hvilke funksjoner som feiler.",
"help.timeline.delete": "Sletter de valgte funksjonene fra tidslinjen; sletting av en skisse sletter også funksjonene som er bygget på den. Bruk det til å fjerne et trinn som ikke lenger er ønsket.",
"help.timeline.dependents": "Lister opp funksjonene som ville blitt slettet sammen med en funksjon, og de som ville feilet uten den. Bruk det før du sletter eller endrer en funksjon.",
"help.timeline.play": "Spill av de gjenstående funksjonene én om gangen, med en halv sekunds pause etter hver gjenoppbygging. Kjør denne kommandoen igjen eller trykk Escape for å stoppe; Gå til slutten hopper umiddelbart.",
"help.view.apply": "Dreier visningen til en standardretning som front, topp eller iso, eller til en lagret navngitt visning. Bruk det til å se på modellen fra en fast vinkel.",
"help.view.delete": "Sletter en lagret navngitt visning. Modellen endres ikke.",
"help.view.fit": "Zoomer og panorerer slik at hele modellen, eller utvalget, fyller visningen. Bruk det når modellen har kommet ut av syne.",
"help.view.grid": "Viser eller skjuler rutenettet i visningsområdet. Bruk det som en størrelses- og orienteringshjelp under modellering.",
"help.view.ground_shadow": "Viser eller skjuler skyggen til modellen på bakken. Bruk det til å vurdere høyde og posisjon lettere.",
"help.view.home": "Dreier visningen tilbake til hjemretningen og tilpasser modellen. Bruk det til raskt å komme tilbake til en kjent visning.",
"help.view.list": "Lister opp de navngitte visningene som er lagret i designet. Bruk det til å finne en visning du lagret tidligere.",
"help.view.navigate": "Dreier, panorerer eller zoomer visningen i trinn, for eksempel en kvart omdreining til venstre. Bruk det til å flytte kameraet presist i stedet for å dra.",
"help.view.navigation_bar": "Viser eller skjuler navigasjonslinjen nederst i visningsområdet. Skjul den for mer plass, vis den for å nå visningsverktøyene med musen.",
"help.view.rename": "Gir en lagret navngitt visning et nytt navn. Selve visningen forblir den samme.",
"help.view.save": "Lagrer gjeldende kameraposisjon som en navngitt visning i designet. Bruk det til å komme tilbake til samme vinkel senere, for eksempel for skjermbilder.",
"help.view.spin": "Roterer visningen rundt modellen kontinuerlig til neste klikk eller tast. Bruk det til å presentere en modell fra alle sider.",
"help.view.tool": "Låser et kameraverktøy, rotering, panorering eller zoom, slik at det å dra med venstre museknapp flytter visningen til du slår det av. Bruk det på en styreflate eller uten midtre museknapp.",
"help.view.visual_style": "Bytter hvordan modellen tegnes: skyggelagt med eller uten kanter, trådmodell eller med skjulte kanter. Bruk trådmodell for å se inn i modellen, skyggelagt for et rent utseende.",
"history.sketch_under_constrained": "Underbestemt ({count} frihetsgrader)",
"history.sketch_under_constrained_one": "Underbestemt ({count} frihetsgrad)",
"hole_presets.confirm_delete": "Bekreft sletting",
@@ -1615,6 +1883,10 @@
"material.selection.mixed": "Ulike materialer",
"measure.at": "Ved",
"measure.item": "Element {number}",
"measure.quick_copied": "Målet er kopiert",
"measure.quick_copy": "Klikk for å kopiere målet",
"measure.quick_edges": "{count} kanter",
"measure.quick_faces": "{count} flater",
"messages.ago_h": "for {n} t siden",
"messages.ago_min": "for {n} min siden",
"messages.ago_s": "for {n} s siden",
@@ -1648,6 +1920,7 @@
"nav.hfss.help": "Alt+venstredrag panorerer, Shift+Alt+venstredrag zoomer, Ctrl+venstredrag fra tomt område roterer",
"nav.inventor.help": "Midtdrag panorerer, Shift+midtdrag roterer, Ctrl+midtdrag zoomer, høyredrag roterer",
"nav.maya.help": "Alt+venstredrag roterer, Alt+midtdrag panorerer, Alt+høyredrag zoomer; midtdrag panorerer også",
"nav.nx.help": "Midtdrag roterer, Shift+midtdrag panorerer (i NX: midt + høyre), Ctrl+midtdrag zoomer (i NX: midt + venstre); høyredrag lar kameraet stå i ro",
"nav.openscad.help": "Venstredrag i tomt område roterer, Shift+venstredrag velger med ramme, dra i skissegeometri for å redigere; høyre- eller midtdrag panorerer, Shift+høyredrag eller Shift+midtdrag zoomer",
"nav.perspective.sketch": "Skisseredigering bruker ortografisk visning. Fullfør skissen for å bytte til perspektiv.",
"nav.right_drag_orbits.help": "Av: et høyredrag lar kameraet stå i ro, og høyre museknapp åpner bare kontekstmenyen. Når du velger SolidWorks-museoppsettet, slås dette av.",
@@ -1767,6 +2040,11 @@
"not a move": "ikke en flytting",
"not a number": "ikke et tall",
"open a sketch first": "åpne en skisse først",
"parameters.apply_live": "Bruk hver endring når du forlater feltet",
"parameters.apply_live_tip": "Av: endringene venter til Bruk eller OK, og så bygges designet på nytt én gang for alle. Avbryt eller Escape forkaster dem.",
"parameters.held": "{count} endringer venter på Bruk",
"parameters.held_hint": "Rediger uttrykk og enheter. Endringer venter på Bruk eller OK.",
"parameters.held_one": "1 endring venter på Bruk",
"parts.automatic_name": "automatisk",
"parts.dimension.across_flats": "Nøkkelvidde",
"parts.dimension.bore": "Boring",
@@ -1789,6 +2067,8 @@
"parts.family.set_screw": "Settskrue med innvendig sekskant, flat ende",
"parts.family.socket_head_cap_screw": "Sylinderskrue med innvendig sekskant",
"parts.family.washer": "Underlagsskive",
"parts.holes": "Hull (valgfritt)",
"parts.placement_hint": "velg ett eller flere hull for å sette inn en del i hvert av dem, eller OK plasserer den ved origo",
"pattern.alignment_2": "Justering 2",
"pattern.alignment_hint": "Antallet inkluderer originalen. Senter fordeler kopiene rundt originalen. Speil velger hvilken side som får en ekstra kopi når antallet er et partall.",
"pattern.direction_1": "Retning 1",
@@ -1862,6 +2142,8 @@
"prefs.ctrl_cmd": "Ctrl / Cmd",
"prefs.curved_surfaces": "Buede flater",
"prefs.curves": "Buede flater",
"prefs.dark_parts_shading": "Bevar formen på mørke deler",
"prefs.dark_parts_shading_help": "Skygger visningen i lineært lys med en myk himmelfylling, slik at mørke flater beholder en gradient i stedet for å bli svarte",
"prefs.dead_zone_note": "Det skraverte feltet er dødsonen: bevegelser innenfor den ignoreres.",
"prefs.default": "standard",
"prefs.design": "Standarder for design",
@@ -1876,6 +2158,8 @@
"prefs.edges": "Kanter og skyggelegging",
"prefs.extend": "Utvid",
"prefs.extra_navigation": "Ctrl+venstredrag i tomt område roterer; hold mellomromstasten inne for å panorere.",
"prefs.extrude_view_isometric": "Drei visningen til isometrisk når Ekstrudering åpnes",
"prefs.extrude_view_return": "Gå tilbake til forrige visning når Ekstrudering lukkes",
"prefs.follows_os": "Følger operativsystemet",
"prefs.font": "Skrift",
"prefs.font_fallback": "Tegn som mangler i valgt skrift, hentes fra den innebygde skriften, slik at ingen etiketter viser tomme ruter.",
@@ -1891,6 +2175,7 @@
"prefs.graphics_card_auto": "Automatisk",
"prefs.graphics_card_missing": "Det lagrede grafikkortet er utilgjengelig. Automatisk brukes i stedet.",
"prefs.graphics_card_restart": "Trer i kraft etter at SolidCraft er startet på nytt. WGPU_ADAPTER_NAME overstyrer dette valget.",
"prefs.graphics_card_unused": "Det lagrede grafikkortet ble ikke brukt for dette vinduet. Kortet som er i bruk, vises i Hjelp › Om og i statuslinjen. Prøv Automatisk, eller sett WGPU_ADAPTER_NAME til en unik del av kortets navn.",
"prefs.graphics_note": "Velg mellom hastighet og jevnhet. Hvert valg viser effekten på et eksempel.",
"prefs.graphics_presets_note": "Forhåndsinnstillinger angir valgene nedenfor samlet.",
"prefs.hide_constraint_glyphs_zoomed_out": "Skjul bindingssymboler når det er zoomet ut",
@@ -1905,6 +2190,8 @@
"prefs.history_sketches_note": "Når Skisser er satt til Under funksjonen sin, viser tidslinjen til venstre hver skisse ett nivå inn, under den første funksjonen som er bygget fra den, så lenge den er bred nok til å vise navn. Tidslinjen nederst beholder alltid opprettelsesrekkefølgen.",
"prefs.history_sketches_under_feature": "Under funksjonen sin",
"prefs.hold_stop_snapping": "Hold inne for å slå av punktfangst",
"prefs.home_fit_size": "Størrelse for Hjem og Tilpass",
"prefs.home_fit_size_note": "Hvor mye av visningen modellen fyller når Hjem, Tilpass, et åpnet design eller en visningsendring fra navigatoren rammer den inn, enten innstillingen under er på eller ikke. 100 %: fyller visningen mellom panelene, kompasset og navigasjonslinjen.",
"prefs.icons_only": "Bare ikoner",
"prefs.imported_file": "Importert fil",
"prefs.in_browser": "I modelltreet",
@@ -1913,13 +2200,20 @@
"prefs.interface_language": "Grensesnittspråk",
"prefs.interface_note": "Hvordan SolidCraft ser ut, og hvor delene er plassert.",
"prefs.interval_minutes": "{n} min",
"prefs.invert_navigator_arrows": "Inverter rotasjonspilene på visningskuben",
"prefs.invert_navigator_arrows_note": "Pilene rundt kuben roterer kameraet i den retningen de peker, som i Fusion og Inventor: pilen til venstre peker mot høyre og svinger kameraet mot høyre. Av: en pil roterer kuben mot siden den står på, så venstre pil svinger kameraet mot venstre. De krumme rullepilene påvirkes ikke.",
"prefs.keep_work_on_tab_switch": "Behold dialoger og verktøy åpne når du bytter design",
"prefs.keep_work_on_tab_switch_note": "Hver designfane beholder sin åpne dialog eller sitt åpne verktøy, med det du har valgt og skrevet i den, og sin fane på båndet. De er der igjen når du kommer tilbake til designet. Av: å bytte design avbryter dem og viser fanen Modell.",
"prefs.labels": "Etiketter",
"prefs.language_system": "System",
"prefs.layout": "Oppsett",
"prefs.layout_note": "Kompakt fester panelene til vinduskantene. Gjennomsiktig modelltre er tilgjengelig i Flytende. Endre siden for assistenten på assistentsiden.",
"prefs.left": "Venstre",
"prefs.left_click": "Venstreklikk",
"prefs.line_drag_draws_one": "Trykk og dra tegner én linje",
"prefs.line_drag_draws_one_note": "I Linje-verktøyet tegner trykk, dra og slipp én linje fra der du trykket til der du slapp, og linjen avsluttes der. Klikk tegner fortsatt en kjede. Av: et drag plasserer et punkt der det slippes, slik et klikk gjør.",
"prefs.line_hover_tangent_arc": "Hvil på det siste punktet på en linje for å bytte til en tangentbue",
"prefs.line_hover_tangent_arc_note": "I Linje-verktøyet: når et segment er tegnet, beveg pekeren bort fra det siste punktet i kjeden, kom tilbake og hold pekeren i ro på det: neste klikk avslutter en tangentbue, og samme bevegelse går tilbake til linjer. Av: å hvile der gjør ingenting.",
"prefs.linked_designs": "Koblede design",
"prefs.live_input": "Direkte inndata",
"prefs.live_preview": "Direkte forhåndsvisning",
@@ -1943,6 +2237,8 @@
"prefs.mouse_mapping": "Museoppsett",
"prefs.navigation": "Navigasjon",
"prefs.navigation_note": "Hvordan mus, styreflate og 3D-mus beveger visningen.",
"prefs.navigator_fit": "Tilpass modellen etter en visningsendring fra navigatoren",
"prefs.navigator_fit_note": "En flate, et hjørne eller en pil på visningskuben, eller en akse på orienteringsindikatoren, ser også mot midten av modellen fra den ene avstanden som får den til å passe fra alle sider (den omsluttende kulen). Hjem bruker samme zoom og senter mens dette er på, så visninger som velges etterpå bare dreier. Av: visningen dreier på stedet og beholder målpunktet og zoomen sin.",
"prefs.network_host_remove": "Fjern",
"prefs.network_locations": "Tillat nettverksplasseringer i design",
"prefs.network_locations_note": "Av: lenkede filer i et design på en annen datamaskin (\\\\server\\share) åpnes bare fra serverne som er oppført her, eller etter at du har tillatt en når du blir spurt.",
@@ -1955,6 +2251,8 @@
"prefs.origin_plane_names": "Navn på origoplan",
"prefs.origin_plane_names_note": "Navn som vises i modelltreet, dialoger og lister. {top} er XY, {front} er XZ og {right} er YZ, med Z opp. Kommandoer, skript og lagrede design beholder XY, XZ og YZ.",
"prefs.overall_speed": "Samlet hastighet",
"prefs.parameter_list_rows": "Rader i parameterlisten",
"prefs.parameter_list_rows_tip": "Pil ned i et tomt verdifelt viser parameterne, favorittene først, opp til dette antallet. Færre holder listen lett i et stort design.",
"prefs.persistent_ribbon_pressed": "Fremhev aktive kommandoer på båndet",
"prefs.persistent_ribbon_pressed_help": "Fremhev kommandoer på båndet mens effektene deres er slått på. Slå av for å beholde det forrige nøytrale utseendet og den forrige kommandohjelpen.",
"prefs.perspective_fov": "Synsfelt",
@@ -1984,9 +2282,13 @@
"prefs.quality_fastest": "raskest",
"prefs.quality_slowest": "langsomst",
"prefs.quality_smoother": "jevnere",
"prefs.quick_measure": "Hurtigmåling i hjørnet av visningen",
"prefs.quick_measure_note": "Størrelsen på utvalget nederst til høyre i visningen: lengden til en kant, eller Ø og R for en rund kant, arealet til en flate, posisjonen til et punkt, avstanden og vinkelen mellom to elementer, summen for flere kanter eller flater. Et klikk kopierer den.",
"prefs.render_previous_geometry_budget": "Bruk forrige geometribudsjett for rendringsforhåndsvisning",
"prefs.render_previous_geometry_budget_help": "Gjenopprett den forrige faste geometrigrensen (512 MiB på 64-biters skrivebordsmaskiner, 128 MiB ellers) i stedet for budsjettet som er basert på enheten.",
"prefs.reports_saved": "{n} lagret",
"prefs.ribbon_click_ends_tool": "Å klikke på knappen til verktøyet som kjører, avslutter det",
"prefs.ribbon_click_ends_tool_note": "Et klikk på den lysende båndknappen til skisseverktøyet som er i bruk, avslutter verktøyet, så klikk i visningen velger igjen. Av: klikket starter verktøyet på nytt.",
"prefs.ribbon_reveal": "Vis søkeresultater på båndet",
"prefs.ribbon_reveal_note": "Når pekeren holdes over et resultat i Søk i kommandoer, vises hvor kommandoen ligger på båndet: fanen, knappen eller raden i et panels nedtrekksmeny. En kommando som startes fra søket, blinker der, og en kjørende kommando fra en nedtrekksmeny markerer panelet sitt.",
"prefs.right_click": "Høyreklikk",
@@ -2016,6 +2318,8 @@
"prefs.sketch_exit_view.previous": "Gå tilbake til forrige visning",
"prefs.sketch_exit_view.unless_rotated": "Gå tilbake med mindre visningen er rotert",
"prefs.sketch_exit_view_note": "Hvor visningen går etter Fullfør skisse, Avbryt eller dobbelt Esc.",
"prefs.sketch_face_activates_part": "Skissering på flaten til en del gjør delen aktiv",
"prefs.sketch_face_activates_part_note": "En skisse som startes på en flate av kroppen til en annen komponent, aktiverer først den komponenten, så skissen tilhører den og blir hos den delen i modelltreet. Delen forblir aktiv etterpå. Av: skissen tilhører den aktive komponenten.",
"prefs.sketch_open_look_at": "Orienter mot skissen når den åpnes",
"prefs.sketch_open_look_at_note": "Av: å opprette eller redigere en skisse lar visningen stå som den er. Orienter mot vender visningen mot skissen når du vil.",
"prefs.sketch_recent_snap": "Fang automatisk til nylige sentre og midtpunkter",
@@ -2029,6 +2333,8 @@
"prefs.sketch_tab_always_note": "Skisse-fanen blir stående på båndet, rett etter Modell, også når ingen skisse er åpen. Tegneverktøyene starter da en skisse på det valgte planet eller den valgte flaten, eller på planet du velger deretter, med verktøyet klart i skissen.",
"prefs.sketch_tracking_guides": "Hjelpelinjer for senter og midtpunkt",
"prefs.sketch_tracking_guides_note": "Hold over en sirkels senter eller midtpunktet på en rett kant, og flytt deretter vannrett eller loddrett for å vise en midlertidig prikket hjelpelinje.",
"prefs.sketch_tracking_points": "Hjelpelinjer fra endepunkter og hjørner under tegning",
"prefs.sketch_tracking_points_note": "Mens et tegneverktøy venter på et punkt, viser det å holde pekeren over enden av en linje eller bue, hjørnet av et rektangel eller et fritt punkt den samme midlertidige stiplede hjelpelinjen som for et senter eller midtpunkt. Av: bare sentre og midtpunkter.",
"prefs.sketching": "Skissetegning",
"prefs.snap_drawing_note": "Mens du tegner eller drar et skissepunkt.",
"prefs.source": "Kilde",
@@ -2045,6 +2351,24 @@
"prefs.status_error": "Feil",
"prefs.status_selected": "Valgt",
"prefs.status_warning": "Advarsel",
"prefs.structure.appearance": "Utseende",
"prefs.structure.appearance_note": "Farger, tekst og tilgjengelighet.",
"prefs.structure.in_profile": "I profilen",
"prefs.structure.layout": "Oppsett",
"prefs.structure.layout_note": "Hvor delene av vinduet plasseres.",
"prefs.structure.look": "Stil",
"prefs.structure.measure_pointer": "Mål og peker",
"prefs.structure.mouse3d": "3D-mus",
"prefs.structure.mouse3d_note": "SpaceMouse og SpaceNavigator.",
"prefs.structure.navigation_note": "Mus og styreflate. 3D-musen har sin egen side.",
"prefs.structure.profile": "Profil",
"prefs.structure.profile_edited": "Endret siden den ble lagret",
"prefs.structure.profile_hover": "Lagret i innstillingsprofiler",
"prefs.structure.scale_percent": "{percent} %",
"prefs.structure.sketch": "Skisse",
"prefs.structure.tools": "Verktøy",
"prefs.structure.tools_note": "Hvordan modelleringsverktøyene oppfører seg.",
"prefs.structure.work": "Arbeid",
"prefs.supersampling_brief": "Tegner visningen større og skalerer den ned: svært skarpt, og mer krevende.",
"prefs.tab_accent_note": "Aksentfargen følger den aktive fanen",
"prefs.theme_file": "temafil",
@@ -2056,6 +2380,16 @@
"prefs.theme_follow_off": "Av",
"prefs.theme_follow_stop": "Slutt å følge",
"prefs.theme_import_hint": "Klikk for å velge en temafil, slipp en her, eller trykk Ctrl+V (Cmd+V på Mac) med et kopiert tema",
"prefs.theme_option_opacity": "Opasitet",
"prefs.theme_option_opacity_help": "Juster opasiteten til flytende paneler. En lesbarhetsgrense beskytter tekst over visningsfarger.",
"prefs.theme_option_tab_colours": "Fanefarger",
"prefs.theme_option_tab_colours_help": "Bruk dette temaets panel- og visningsfarger for hver båndfane.",
"prefs.theme_option_tab_fade_ms": "Faneovergang",
"prefs.theme_option_tab_fade_ms_help": "Toner panel- og visningsfarger når du bytter fane. Null bytter umiddelbart.",
"prefs.theme_options_badge": "Alternativer",
"prefs.theme_options_more": "Flere · {count}",
"prefs.theme_options_reset": "Tilbakestill",
"prefs.theme_options_unavailable": "Ikke tilgjengelig på denne enheten",
"prefs.theme_paste": "Lim inn tema",
"prefs.theme_paste_none": "Utklippstavlen inneholder ikke noe SolidCraft-tema",
"prefs.timeline_half_hour": "−30 min",
@@ -2077,6 +2411,8 @@
"prefs.under_cursor": "Under pekeren",
"prefs.units_precision": "Enheter og presisjon",
"prefs.updates": "Oppdateringer",
"prefs.value_boxes_in_view": "Vis verdier ved siden av håndtakene i visningen",
"prefs.value_boxes_in_view_tip": "Verdien til en kommando (Avstand, Radius …) i en boks ved siden av håndtaket, over modellen. Av: du skriver den inn i kommandovinduet, som tar over tastaturet etter et valg, og ingenting dekker modellen.",
"prefs.view": "Visningsatferd",
"prefs.view_confirm_corner": "OK og Avbryt i hjørnet av visningen",
"prefs.view_confirm_corner_note": "Mens en dialog eller en skisse er åpen, gjør et hakemerke og et kryss øverst til høyre i visningen det samme som OK og Avbryt i dialogen, eller fullfører og avbryter skissen. Visningsnavigatoren flyttes ned under dem.",
@@ -2086,6 +2422,12 @@
"prefs.viewport_background": "Bakgrunn",
"prefs.viewport_background_colour": "Farge",
"prefs.viewport_background_theme": "Temaets gradient",
"prefs.viewport_section_status": "Vis snittstatus i visningsområdet",
"prefs.viewport_section_status_help": "Vis snittinnstillingen i visningsområdet. Escape og den aktive båndknappen slår den av. Slå av for å beholde de tidligere snittkontrollene.",
"prefs.viewport_status_details": "Live detaljer i visningsområdet",
"prefs.viewport_status_details_help": "Rediger aktive analyse- og snittinnstillinger i vanlige detaljkort. Slå av for å gjenopprette skrivebeskyttede tegnforklaringer for analyse og Snitt-dialogen.",
"prefs.viewport_status_summary": "Slå sammen statuselementer i visningsområdet",
"prefs.viewport_status_summary_help": "Slå sammen tre eller flere statuselementer i visningsområdet til ett oppsummeringsmerke. Slå av for å beholde hvert element i hele raden.",
"prefs.wheel": "Musehjul",
"prefs.wheel_trackpad": "Musehjul og styreflate",
"prefs.workspace": "Arbeidsområde",
@@ -2964,7 +3306,9 @@
"render.output_ready": "Klar til rendring",
"render.output_run_check": "Kjør sjekk",
"render.output_size_limit": "{method}: opptil {dimension} px per side og {pixels} piksler. Største størrelse som passer: {width} × {height}.",
"render.output_size_method_profile": "For å rendre {width} × {height}, velg {method} med CPU-ressursprofilen {profile}, eller en mindre størrelse.",
"render.output_size_ok": "Størrelse OK · {width} × {height} px",
"render.output_size_profile": "For å rendre {width} × {height}, velg CPU-ressursprofilen {profile}, eller en mindre størrelse.",
"render.output_swap_orientation": "Bytt bredde og høyde",
"render.output_tools_inspector": "Rediger størrelse og format i utdatainspektøren.",
"render.output_view_image": "Vis bilde",
@@ -3177,6 +3521,7 @@
"render.size_custom": "Egendefinert…",
"render.size_full_hd": "Full HD",
"render.size_hd": "HD",
"render.size_needs_profile": "{size} · trenger {profile}",
"render.size_presets": "Forhåndsinnstillinger for størrelse",
"render.size_presets_pending": "Kommer med utdataeditoren",
"render.size_preview": "Forhåndsvisning",
@@ -3464,6 +3809,24 @@
"sheet.flange_type_contour": "Kontur",
"sheet.flange_type_edge": "Kant",
"sheet.no_body": "det finnes ingen platemetallkropp: start en med Flens > Basis, eller gjør en plate om til platemetall med Konverter til platemetall (velg den store, flate siden)",
"sheet.personal_rules.confirm_delete": "Bekreft sletting",
"sheet.personal_rules.delete": "Slett",
"sheet.personal_rules.delete_prompt": "Slette denne personlige regelen? Regler som allerede ligger i design, endres ikke.",
"sheet.personal_rules.full": "Det personlige biblioteket inneholder allerede 64 regler.",
"sheet.personal_rules.invalid_name": "Skriv inn et kort navn uten linjeskift eller kontrolltegn.",
"sheet.personal_rules.invalid_values": "Fullfør verdiene i regelen: hver må kunne beregnes i dette designet, med positiv tykkelse og en K-faktor fra 0 til 1.",
"sheet.personal_rules.missing": "Den valgte personlige regelen er ikke lenger tilgjengelig.",
"sheet.personal_rules.name": "Regelnavn",
"sheet.personal_rules.name_exists": "Det finnes allerede en personlig regel med dette navnet. Bruk et annet navn.",
"sheet.personal_rules.name_hint": "Et unikt navn",
"sheet.personal_rules.overwrite": "Lagre endringer i valgt personlig regel",
"sheet.personal_rules.rename": "Gi nytt navn",
"sheet.personal_rules.rule": "Personlig regel",
"sheet.personal_rules.save": "Lagre som ny",
"sheet.personal_rules.scope": "Lagres i profilen din for alle design.",
"sheet.personal_rules.select": "Velg en regel",
"sheet.personal_rules.title": "Personlige regler",
"sheet.personal_rules.unsupported": "Denne regelen har verdier som denne versjonen ikke kan bruke.",
"shortcut.json_error": "parametere må være JSON: {error}",
"shortcut.no_command": "ingen kommando `{id}`; teksten før JSON må være en kommando-id",
"shortcut.pin": "Fest øverst i S-boksen",
@@ -3500,8 +3863,10 @@
"sketch_text.align_right": "Høyre",
"sketch_text.bold": "Fet",
"sketch_text.builtin_font": "{family} (innebygd)",
"sketch_text.formula": "Start med = for å bygge ordene fra parametere: ='W' + number(Width)",
"sketch_text.italic": "Kursiv",
"sketch_text.loading_fonts": "Ser etter installerte skrifter…",
"sketch_text.no_bold": "Den innebygde skriften har ingen fet utgave: velg en installert skrift",
"sketch_text.on_path": "Teksten følger banen og plasseres langs kurven",
"sketch_text.path_clear": "Ta teksten av kurven",
"sketch_text.path_hint": "Velg en kurve i skissen som teksten skal følge: klikk her og deretter på kurven",
@@ -3640,6 +4005,8 @@
"ui.3d_mouse_section": "3D-mus",
"ui.3d_mouse_show_in_view": "Vis 3D-musen i 3D-visningen",
"ui.3d_mouse_show_in_view_tip": "Et bilde av 3D-musen din i nedre venstre hjørne som beveger seg når du beveger den.",
"ui.3d_mouse_sketch_orbit": "Roter skisser med 3D-musen",
"ui.3d_mouse_sketch_orbit_tip": "3D-musen roterer også visningen mens en skisse er åpen og sett rett forfra, slik musen kan. Av: den panorerer og zoomer skissen til du heller visningen.",
"ui.3d_mouse_skip": "Enheten min kan ikke gjøre dette",
"ui.3d_mouse_skip_tip": "Hopper over denne bevegelsen i begge retninger, og kalibreringen utelater den.",
"ui.3d_mouse_speed": "3D-musehastighet",
@@ -3708,6 +4075,7 @@
"ui.agent_chat_auth_terminal": "Kjør dette i en terminal, og trykk deretter Koble til igjen:",
"ui.agent_chat_auth_title": "Logg inn på agenten",
"ui.agent_chat_cancel": "Avbryt",
"ui.agent_chat_cannot_start": "Installert, men starter ikke: {error}",
"ui.agent_chat_changes": "Endringer: {n}, ett angretrinn",
"ui.agent_chat_changes_n": "{n} endringer",
"ui.agent_chat_changes_of": "{n}/{limit} endringer",
@@ -3800,9 +4168,12 @@
"ui.agent_chat_queued_stopped": "I kø (stoppet, ikke sendt)",
"ui.agent_chat_refresh": "Oppdater",
"ui.agent_chat_refused": "Ikke tillatt for agenten: {reason}",
"ui.agent_chat_reinstall": "{agent} er installert ({program}), men startet ikke da SolidCraft sjekket den: {error}\nInstallasjonen kan være ufullstendig, eller laget for en annen type datamaskin. Installer den på nytt med `{install}`, kontroller at den skriver ut versjonen sin i en terminal, og trykk deretter Oppdater.",
"ui.agent_chat_remove": "Fjern fra køen",
"ui.agent_chat_remove_file": "Fjern vedlegget fra denne meldingen",
"ui.agent_chat_remove_imported": "Fjern vedlegget fra denne meldingen. Delen blir i designet (Angre fjerner den).",
"ui.agent_chat_reply_cut_off": "Svaret nådde lengdegrensen før det var ferdig, så det kan være ufullstendig. Be agenten fortsette, eller om et kortere svar.",
"ui.agent_chat_reply_declined": "Modellen avslo å svare på denne meldingen.",
"ui.agent_chat_retry": "Prøv igjen",
"ui.agent_chat_right": "Høyre",
"ui.agent_chat_save": "Lagre",
@@ -3861,12 +4232,17 @@
"ui.ai_copy_suffix": "kopi",
"ui.ai_custom_url": "Egendefinert URL",
"ui.ai_default": "Standard",
"ui.ai_edit": "Rediger",
"ui.ai_edit_agent_title": "Rediger agent",
"ui.ai_edit_gone": "Denne agenten ble fjernet, så det er ingenting å lagre.",
"ui.ai_edit_tip": "Endre navn, kommando eller endepunkt for denne agenten. En lagret nøkkel forblir skjult.",
"ui.ai_http_busy": "endepunktet er opptatt eller over grensen; prøv igjen senere",
"ui.ai_http_key": "endepunktet avviste nøkkelen: sjekk den i Innstillinger > AI",
"ui.ai_http_not_found": "endepunktet eller modellen finnes ikke; kontroller base-URL og modellnavn",
"ui.ai_http_too_large": "samtalen er for stor for dette endepunktet; start en ny chat",
"ui.ai_key": "API-nøkkel",
"ui.ai_key_hint": "valgfritt; lagres i systemets nøkkelring",
"ui.ai_key_keep_hint": "la stå tom for å beholde den lagrede nøkkelen",
"ui.ai_key_needs_https": "En nøkkel sendes bare over HTTPS, eller til denne datamaskinen.",
"ui.ai_key_note": "Lagres i systemets nøkkelring, aldri i SolidCrafts innstillinger. La den stå tom for en lokal server.",
"ui.ai_keychain_error": "Systemets nøkkelring avviste forespørselen: {error}",
@@ -3893,11 +4269,15 @@
"ui.ai_permissions": "Tillatelser",
"ui.ai_preset": "Forhåndsinnstilling",
"ui.ai_protocol": "Protokoll",
"ui.ai_reasoning_effort": "Resonneringsinnsats",
"ui.ai_reasoning_effort_field_hint": "tom = standard fra leverandøren",
"ui.ai_reasoning_effort_hint": "Valgfritt. Sendes til endepunktet som `reasoning_effort`; godkjente verdier varierer fra leverandør til leverandør (for eksempel `low`, `high` eller `max`). En verdi du angir her, blir aldri erstattet av SolidCraft. La feltet stå tomt for å ikke sende noe og beholde leverandørens standard.",
"ui.ai_remove": "Fjern",
"ui.ai_request_timed_out": "Modellen brukte lenger tid enn {seconds} s. Du kan øke tidsavbruddet for forespørsler til dette endepunktet i Innstillinger › Assistent.",
"ui.ai_request_timeout": "Tidsavbrudd for forespørsel",
"ui.ai_request_timeout_hint": "Hvor lang tid én modellforespørsel til dette endepunktet kan ta, fra 30 s til en time. Øk verdien for en treg lokal modell.",
"ui.ai_reset": "Tilbakestill",
"ui.ai_save": "Lagre",
"ui.ai_settings": "AI-innstillinger…",
"ui.ai_show_features": "Vis AI-funksjoner",
"ui.ai_show_features_note": "Agentchat er et panel der en kodeagent du allerede bruker, eller et modellendepunkt du velger, arbeider på det åpne designet. Når dette er av, vises ingen AI-knapp, snarvei, menypunkt eller panel, og ingen agenter søkes etter eller startes.",
@@ -4057,6 +4437,7 @@
"ui.dark": "Mørk",
"ui.default_modelling_orientation": "Standard modelleringsorientering",
"ui.delete": "Slett",
"ui.delete_select_first": "Velg først hva som skal slettes: funksjoner, kropper, komponenter eller skissegeometri",
"ui.depth": "Dybde",
"ui.design": "Design",
"ui.design_properties.author": "Forfatter",
@@ -4071,6 +4452,40 @@
"ui.design_properties.project": "Prosjekt",
"ui.design_properties.revision": "Revisjon",
"ui.design_saved": "Lagret i {path}",
"ui.details_access_caption": "Flatene viser om et verktøy kan nå dem fra den valgte retningen.",
"ui.details_angle": "Vinkel",
"ui.details_continuity_caption": "Rediger den valgte skjøten. Andre skjøter beholder sine egne innstillinger.",
"ui.details_continuity_stale": "Tidligere geometri: kjør analysen på nytt for å redigere eller innramme denne skjøten.",
"ui.details_copy_list": "Kopier listen",
"ui.details_curvature": "Krumningstoleranse",
"ui.details_curvature_caption": "Flatene fargelegges etter lokal krumningsradius.",
"ui.details_direction": "Verktøyretning",
"ui.details_draft_caption": "Flatene fargelegges etter vinkelen til trekkretningen.",
"ui.details_edit_seam": "Rediger skjøt",
"ui.details_fixture": "Komponenteksempel — bare eksempeldata",
"ui.details_fixture_caption": "Komponenteksempel med illustrerende verdier; dette er ikke et modellresultat.",
"ui.details_fixture_problem": "Eksempelfunn med et problem",
"ui.details_fixture_readout": "Eksempel på målt verdi",
"ui.details_flip": "Snu",
"ui.details_gap": "Mellomrom",
"ui.details_hatch": "Skraver snittflatene",
"ui.details_jump": "Krumningssprang",
"ui.details_key": "Tegnforklaring",
"ui.details_offset": "Offset",
"ui.details_plane": "Plan",
"ui.details_pull": "Trekkretning",
"ui.details_radius": "Radius",
"ui.details_readout": "Avlesning",
"ui.details_samples": "Prøver",
"ui.details_seam": "{body} · Kant {edge}",
"ui.details_settings": "Innstillinger",
"ui.details_sharp_gap": "Skarp eller mellomrom",
"ui.details_show_all": "Vis alle {count}",
"ui.details_smooth": "Jevn",
"ui.details_stripes": "Striper",
"ui.details_target": "Innram geometrien",
"ui.details_worst_seams": "Dårligste skjøter",
"ui.details_zebra_caption": "Reflekterte striper viser hvor jevnt flatene går sammen.",
"ui.diameter": "Diameter",
"ui.dimension": "Mål",
"ui.direct_interaction": "Direkte interaksjon",
@@ -4115,6 +4530,7 @@
"ui.edit_in_place_saved_elsewhere": "Delen ble lagret i en annen fil; sammenstillingen er fortsatt koblet til {name}",
"ui.edit_in_place_wait": "Vent til det som kjører i designet er ferdig",
"ui.edit_section_analysis": "Rediger snittanalyse",
"ui.edit_sketch_empty": "Ingen skisser å redigere",
"ui.ellipse": "Ellipse",
"ui.emboss_wrap_note": "Ortogonale linjeprofiler som tangerer én støttet sylinder, legges automatisk rundt den. Velg en vegg for å velge et mål.",
"ui.end_radius": "Sluttradius",
@@ -4125,12 +4541,15 @@
"ui.equation_explicit": "Eksplisitt",
"ui.equation_form": "Form",
"ui.equation_note": "Variabelen er et rent tall: sin(t) tolker det i radianer. Et resultat uten enhet er i designets enhet.",
"ui.equation_note_range": "Variabelen er en lengde, slik intervallet er: kombiner den med lengdeparametere, og del den på en lengde for sin(). Et resultat uten enhet er i designets enhet.",
"ui.equation_parametric": "Parametrisk",
"ui.equation_variable_unit": "Variabelen har intervallets enhet",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Ekvivalent radius",
"ui.expand": "Utvid",
"ui.explode_needs_two_components": "Eksplodert visning trekker komponenter fra hverandre, så designet må ha to eller flere av dem (Ny komponent, Sett inn design eller Opprett komponenter fra kropper)",
"ui.exportDxf": "Eksporter DXF…",
"ui.export_ellipsis_keymap": "Eksporter…",
"ui.export_keymap_tip": "Taster, S-boks-favoritter og verktøylinjen, som en fil",
@@ -4299,12 +4718,14 @@
"ui.joints": "Ledd",
"ui.keyboard_shortcuts": "Tastatursnarveier",
"ui.language": "Språk",
"ui.lasso_select": "Lasso (dra en frihåndssløyfe: velger alt som ligger helt innenfor)",
"ui.layout_compact": "Kompakt",
"ui.layout_floating": "Flytende",
"ui.length": "Lengde",
"ui.length_decimals": "Lengdedesimaler",
"ui.light": "Lys",
"ui.line": "Linje",
"ui.line_arc_hint": "Tangentbue: klikk på enden av buen. Hvil på det siste punktet igjen for linjer; høyreklikk eller Esc for å avslutte",
"ui.link_copies": "Lenk identiske kopier",
"ui.link_copies_keep": "Behold",
"ui.link_copies_link": "Lenk",
@@ -4393,6 +4814,7 @@
"ui.part_size_shared": "Bygger delen på nytt og erstatter eventuelle funksjoner som er lagt til. Alle forekomster av denne komponenten oppdateres.",
"ui.paste": "Lim inn",
"ui.path": "Bane",
"ui.pattern_object_type_tip": "Kropper: volumformer, valgt i visningen eller modelltreet; hver kopieres hel.\nFunksjoner: trinn i tidslinjen, som en ekstrudering eller et hull, valgt i tidslinjen eller på en flate de har laget; trinnet gjentas.\nEn skisse er ingen av delene: gjenta kurvene med skissens eget Mønster eller Speil, eller ekstruder den først.",
"ui.pattern_on_path": "Mønster på bane",
"ui.perforate_margin_default": "fra diameteren",
"ui.perforate_pitch": "Senteravstand",
@@ -4419,12 +4841,17 @@
"ui.plugins_skipped": "{count} mappe(r) kunne ikke leses.",
"ui.plugins_version": "{version}",
"ui.point": "Punkt",
"ui.point_cloud_add_filter": "Legg til filter…",
"ui.point_cloud_auto_range": "Automatisk område",
"ui.point_cloud_color_by": "Farge etter",
"ui.point_cloud_file_colors": "Filfarger",
"ui.point_cloud_filter_by": "Filtrer etter",
"ui.point_cloud_height_high": "Høyeste",
"ui.point_cloud_height_low": "Laveste",
"ui.point_cloud_legend_filter": "Vises og skjules i tegnforklaringen ovenfor",
"ui.point_cloud_no_file_colors": "Filen har ingen farger",
"ui.point_cloud_pause": "Pause",
"ui.point_cloud_play": "Spill av",
"ui.point_cloud_single_color": "Én farge",
"ui.point_cloud_size": "Punktstørrelse",
"ui.point_cloud_units": "Filenheter",
@@ -4433,9 +4860,9 @@
"ui.polygon": "Mangekant",
"ui.preferences": "Innstillinger",
"ui.press_a_key": "trykk på en tast…",
"ui.print_face_body_not_sent": "Legemet til den flaten sendes ikke: legg det til i Kropper først",
"ui.print_face_cleared": "{body}: utskriftsflate fjernet",
"ui.print_face_input": "Utskriftsflate",
"ui.print_face_one_body": "En utskriftsflate hører til ett legeme: send det legemet alene for å endre den",
"ui.print_face_pick": "Velg en plan flate på et massivt legeme for å gjøre den til utskriftsflaten",
"ui.print_face_set": "{body}: utskriftsflate satt; Send til slicer legger legemet på den",
"ui.profile": "Profil",
@@ -4453,6 +4880,7 @@
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Måler…",
"ui.properties.measuring_bodies": "Måler… {done} av {total} legemer",
"ui.properties.measuring_failed": "Målingen stoppet før den var ferdig.",
"ui.properties.principal_axis": "Hovedakse {number}",
"ui.properties.principal_moments": "Hovedtreghetsmomenter",
@@ -4520,6 +4948,7 @@
"ui.selectOther": "Velg annet…",
"ui.selectTangentChain": "Velg tangentkjede",
"ui.select_all": "Velg alle",
"ui.select_components_by_face": "Velg komponenter (en flate velger komponenten sin)",
"ui.selection": "Utvalg",
"ui.selection_modifiers": "Utvalgsmodifikatorer",
"ui.selection_shift_add_only": "Shift+klikk legger til uten å fjerne",
@@ -4561,6 +4990,11 @@
"ui.sketch_intersect_selection_filter": "Utvalgsfilter",
"ui.sketch_modifiers": "Skissemodifikatorer",
"ui.sketch_project_geometry": "Geometri",
"ui.sketch_report.all_constrained": "Alt er fullstendig bundet.",
"ui.sketch_report.dof": "Frihetsgrader",
"ui.sketch_report.loose": "Ikke fullstendig bundet",
"ui.sketch_report.status": "Status",
"ui.sketch_report.title": "Skisserapport",
"ui.sketch_scale": "Skisseskala",
"ui.sketches": "Skisser",
"ui.slice": "Snittvisning",
@@ -4656,12 +5090,15 @@
"ui.view_angles": "Visningsvinkler",
"ui.view_angles_convention": "Grader om oppaksen. Giring 0° er frontvisningen, 90° venstre, −90° høyre, 180° bak; helning 90° er toppvisningen; positiv rull dreier modellen med klokken.",
"ui.view_angles_help": "Viser visningens helning, giring og rull i grader og projeksjonen under orienteringsindikatoren. Klikk på avlesningen for å skrive inn nøyaktige vinkler.",
"ui.view_angles_lock": "Lås {axis}",
"ui.view_angles_ortho": "Orto",
"ui.view_angles_persp": "Persp.",
"ui.view_angles_pitch": "Helning",
"ui.view_angles_readout": "Helning {pitch} · Giring {yaw} · Rull {roll}",
"ui.view_angles_roll": "Rull",
"ui.view_angles_unlock": "Lås opp {axis}",
"ui.view_angles_yaw": "Giring",
"ui.view_angles_zero": "Sett {axis} til 0°",
"ui.view_centre": "Visningssenter",
"ui.viewport_status_clear": "Slå av {name}",
"ui.viewport_status_clear_hint": "Slå av {name} · Esc",
@@ -4670,7 +5107,14 @@
"ui.viewport_status_key": "Vis tegnforklaring for {name}",
"ui.viewport_status_minimum_radius": "Minimumsradius",
"ui.viewport_status_pairs": "{count} par",
"ui.viewport_status_section_hatch": "{setting} · skravur",
"ui.viewport_status_section_plane": "Gjeldende plan",
"ui.viewport_status_section_tilted": "skråstilt · {offset}",
"ui.viewport_status_stripes": "{count} striper",
"ui.viewport_status_summary_clear": "Slå av alt",
"ui.viewport_status_summary_heading": "I denne visningen",
"ui.viewport_status_summary_label": "{name} og {count} elementer til",
"ui.viewport_status_summary_more": "+{count}",
"ui.viewport_theme_follow": "Følg tema",
"ui.visual_shaded_hidden_edges": "Skyggelagt med skjulte kanter",
"ui.visual_shaded_with_edges": "Skyggelagt med kanter",
+444 -1
View File
@@ -60,6 +60,7 @@
"BLEND SURFACE": "SAMENVOEGOPPERVLAK",
"BOUNDARY SURFACE": "BEGRENZINGSOPPERVLAK",
"BROWSER": "BROWSER",
"Back to the original order": "Terug naar de oorspronkelijke volgorde",
"Ball": "Kogel",
"Bar": "Staaf",
"Base Center": "Basismiddelpunt",
@@ -595,6 +596,8 @@
"Snap to face and edge centres": "Snappen op middelpunten van vlakken en randen",
"SolidCraft cannot submit reports directly. Submit on GitHub; no token is needed in the app.": "SolidCraft kan rapporten niet rechtstreeks indienen. Dien ze in op GitHub; in de app is geen token nodig.",
"SolidCraft closed before these designs were saved. Their last autosave can be opened.": "SolidCraft is gesloten voordat deze ontwerpen zijn opgeslagen. Hun laatste automatische opslag kan worden geopend.",
"Sort A to Z": "Sorteren van A tot Z",
"Sort Z to A": "Sorteren van Z tot A",
"Spacing 2 must be a non-zero number": "Tussenruimte 2 moet een getal ongelijk aan nul zijn",
"Spacing must be a non-zero number": "De tussenruimte moet een getal ongelijk aan nul zijn",
"Specialise": "Specialiseren",
@@ -790,6 +793,13 @@
"browser.sketch_attachment_lost": "{name} (bevestiging kwijt)",
"browser.sketch_editing": "{name} (wordt bewerkt)",
"browser.sketch_name": "Schets{number}",
"browser.sketches_to_parts_already_in_part": "al in hun onderdeel",
"browser.sketches_to_parts_design_body": "op een lichaam van het ontwerp zelf",
"browser.sketches_to_parts_moved": "{moved} schetsen verplaatst naar het onderdeel waarop ze staan",
"browser.sketches_to_parts_no_exact_attachment": "op een vlak zonder exacte bevestiging",
"browser.sketches_to_parts_not_on_face": "niet op het vlak van een onderdeel",
"browser.sketches_to_parts_part_missing": "hun onderdeel bestaat niet meer",
"browser.sketches_to_parts_result": "{moved} schetsen verplaatst naar het onderdeel waarop ze staan; {stayed} bleven staan: {why}",
"browser.units": "Eenheden: {units}",
"cam.flat": "Plat vlak",
"cam.follower": "Volger",
@@ -819,6 +829,7 @@
"cmd.appearance_pick_up": "Uiterlijk oppakken",
"cmd.appearance_replace": "Uiterlijk vervangen",
"cmd.assembly_bom": "Stuklijst",
"cmd.assembly_mass_properties": "Massa-eigenschappen",
"cmd.body.print_face": "Printvlak",
"cmd.body_rename": "Lichaam hernoemen",
"cmd.browser_collapse_all": "Alles samenvouwen",
@@ -856,6 +867,7 @@
"cmd.component_move_bodies": "Lichamen naar component verplaatsen",
"cmd.component_move_features": "Kenmerken naar component verplaatsen",
"cmd.component_move_sketches": "Schetsen naar component verplaatsen",
"cmd.component_move_sketches_to_parts": "Schetsen naar hun onderdeel verplaatsen",
"cmd.component_paste_from_design": "Plakken uit een ander ontwerp",
"cmd.component_paste_new": "Nieuw plakken",
"cmd.component_properties": "Fysieke eigenschappen component",
@@ -1191,6 +1203,7 @@
"cmd.sketch_spline_control_point_5": "Spline met controlepunten (graad 5)",
"cmd.sketch_spline_fit_point": "Spline door punten",
"cmd.sketch_spline_insert_point": "Splinepunt toevoegen",
"cmd.sketch_spline_remove_point": "Splinepunt verwijderen",
"cmd.sketch_spline_reverse": "Splinerichting omkeren",
"cmd.sketch_spun_profile": "Gedraaid profiel",
"cmd.sketch_toggle_diameter": "Straal/diameter omschakelen",
@@ -1244,6 +1257,7 @@
"cmd.view.render_browser": "Renderbrowser",
"cmd.view.render_dock": "Renderdock verplaatsen",
"cmd.view.render_focus": "Renderfocusweergave",
"cmd.view.status_details": "Statusdetails in de viewport",
"cmd.view.status_items": "Statusitems in de viewport",
"cmd.view_ambient_occlusion": "Ambient occlusion",
"cmd.view_angle_readout": "Weergavehoeken",
@@ -1282,8 +1296,14 @@
"color.hex_hint": "#rrggbb",
"color.hue": "Tint",
"color.linear": "Kleurwaarden worden getoond in lineaire ruimte 0-1",
"color.recent": "Recente kleuren",
"color.recent_help": "Kleuren die je in een kleurveld kiest, verschijnen hier",
"color.saturation": "Verzadiging (procent)",
"color.saturation_value": "Verzadiging en waarde",
"color.selected": "Geselecteerde kleur",
"color.step_down": "Stap omlaag",
"color.step_up": "Stap omhoog",
"color.value": "Waarde, de helderheid (procent)",
"config.column_filter_empty": "Geen overeenkomende kolommen",
"contact.components_count": "{count} componenten",
"contact.enabled_label": "ingeschakeld",
@@ -1330,6 +1350,7 @@
"dialog.dimension_name": "Maat: {name}",
"dialog.edit_title": "{title} BEWERKEN",
"dialog.no_shown_body": "Geen zichtbaar lichaam om te wijzigen: toon er een of kies Nieuw lichaam",
"dialog.pattern_sketch_not_object": "Kies lichamen of kenmerken: een schets is geen van beide. Herhaal de curven ervan met het eigen Patroon of Spiegelen van de schets, of extrudeer de schets eerst.",
"dialog.select": "↖ Selecteren",
"dialog.selected_count": "↖ {count} geselecteerd",
"dialog.selection_guidance": "Selecteer een invoer om deze te wijzigen. Klik op geselecteerde objecten om ze te verwijderen; Ctrl/Cmd-klik schakelt ze ook om. Controleer het voorbeeld en druk daarna op OK.",
@@ -1387,21 +1408,168 @@
"from the rule": "uit de regel",
"help.apache": "Apache-licentie 2.0",
"help.appearance.assign": "Geeft de geselecteerde lichamen, vlakken of componenten een kleur of materiaaluiterlijk, zonder hun gewicht te wijzigen. Gebruik dit om onderdelen van elkaar te onderscheiden of een afwerking in voorbeeld te bekijken.",
"help.assembly.bom": "Toont de onderdelen van het ontwerp of van een component met hun aantallen, per onderdeelnummer, en kan de lijst opslaan als CSV of JSON. Gebruik dit als onderdelenlijst voor bestellen en monteren.",
"help.attributions": "Naamsvermeldingen (ATTRIBUTION.md)",
"help.build": "Versie {version} · commit {commit} · gebouwd {date}",
"help.canvas.decal": "Plaatst een afbeelding op een vlak van het model, als een sticker. Gebruik dit om een label, logo of opgedrukt patroon op een onderdeel te tonen.",
"help.canvas.edit": "Wijzigt een canvas: de positie, grootte, hoek, dekking, spiegeling, zichtbaarheid of naam. Gebruik dit om een referentieafbeelding uit te lijnen met de schets die je erover overtrekt.",
"help.canvas.insert": "Plaatst een PNG- of JPEG-afbeelding als doorzichtige referentie op een vlak. Gebruik dit om een foto of tekening in een schets over te trekken, met de afbeelding op een bekende maat geschaald.",
"help.component.break_link": "Maakt een gekoppeld component los van zijn ontwerpbestand en laat de lichamen ongewijzigd. Gebruik dit wanneer het onderdeel niet langer wijzigingen in het oorspronkelijke bestand hoeft te volgen.",
"help.component.capture_position": "Legt de posities vast van onderdelen die je met de hand hebt verplaatst, zodat die posities hun plaats worden. Gebruik dit nadat je onderdelen op hun plaats hebt gesleept die door geen enkele verbinding worden vastgehouden.",
"help.component.create": "Voegt een nieuw, leeg component toe aan het ontwerp, binnen het actieve component tenzij je een andere bovenliggende kiest. Gebruik dit om een nieuw onderdeel van een samenstelling een eigen plek te geven voor lichamen en schetsen.",
"help.component.finish_edit": "Slaat het ter plaatse bewerkte onderdeel op, keert terug naar de bijbehorende samenstelling en werkt de samenstelling ermee bij. Gebruik dit zodra de wijzigingen aan het gekoppelde onderdeel klaar zijn.",
"help.component.from_bodies": "Maakt van elk geselecteerd lichaam een eigen component, genoemd naar het lichaam. Gebruik dit wanneer een ontwerp van losse lichamen een samenstelling moet worden waarvan de onderdelen verbonden en verplaatst kunnen worden.",
"help.component.insert_design": "Voegt een ander opgeslagen ontwerp in als component, gekoppeld aan zijn bestand, met de massieve lichamen geplaatst zoals ze daar staan. Gebruik dit om een onderdeel in een samenstelling te hergebruiken en latere wijzigingen over te nemen met Koppelingen bijwerken.",
"help.component.properties": "Toont het volume, de massa, het zwaartepunt en de traagheidsmomenten van een component, op basis van de materialen van de lichamen. Gebruik dit om gewicht en balans van een samenstelling te controleren.",
"help.component.revert_position": "Zet onderdelen die je met de hand hebt verplaatst terug waar ze waren en laat verplaatsingen vervallen die niet zijn vastgelegd. Gebruik dit om proefverplaatsingen in een samenstelling ongedaan te maken.",
"help.component.update_links": "Leest de gekoppelde ontwerpbestanden opnieuw in en vervangt lichamen die zijn gewijzigd. Gebruik dit nadat je een onderdeel hebt bewerkt dat deze samenstelling gebruikt.",
"help.config.configure": "Voegt parameters, kenmerken, materialen of uiterlijken toe als kolommen van de configuratietabel. Gebruik dit om varianten van één ontwerp te maken, zoals maten van een onderdeel.",
"help.config.preview": "Controleert of een rij van de configuratietabel opnieuw opgebouwd kan worden, zonder het ontwerp of de geschiedenis te wijzigen. Gebruik dit voordat je overschakelt naar een variant waarvan je niet zeker bent.",
"help.config.rules": "Toont de regels van de configuratietabel, de rijen en welke rij actief is. Gebruik dit om te zien hoe de varianten van een ontwerp zijn ingesteld.",
"help.config.table": "Toont de configuratietabel: één rij per variant, één kolom per parameter of kenmerk, en of het ontwerp nog overeenkomt met de actieve rij. Gebruik dit om de varianten van een ontwerp door te nemen.",
"help.connect_note": "Start elke assistent opnieuw om de SolidCraft-server te laden. Van elk bestand is vóór de wijziging een back-up gemaakt met de extensie .bak.",
"help.connect_title": "AI-assistenten verbinden",
"help.construct.axis.edge": "Maakt een constructieas langs een rechte rand of schetslijn. Gebruik dit als as voor een revolve, een cirkelvormig patroon of een verbinding.",
"help.construct.axis.normal_to_face": "Maakt een constructieas door een punt, loodrecht op een vlak. Gebruik dit als as die recht uit een oppervlak steekt.",
"help.construct.axis.through_cylinder": "Maakt een constructieas door het midden van een cilinder-, kegel- of torusvlak, of van een cirkelvormige rand. Gebruik dit om kenmerken rond een rond onderdeel te draaien of te herhalen.",
"help.construct.axis.two_planes": "Maakt een constructieas waar twee vlakken samenkomen. Gebruik dit wanneer de benodigde as de lijn tussen twee vlakken is.",
"help.construct.axis.two_points": "Maakt een constructieas door twee punten, hoekpunten of schetspunten. Gebruik dit voor een as die tussen twee bekende posities loopt.",
"help.construct.plane.along_path": "Maakt een constructievlak loodrecht op een rand of curve, op een positie erlangs. Gebruik dit om een profiel voor een sweep of een doorsnede van een pad te schetsen.",
"help.construct.plane.at_angle": "Maakt een constructievlak dat onder een hoek is gedraaid ten opzichte van een vlak, om een as of rand. Gebruik dit voor schuine schetsen, zoals een hoekbeugel.",
"help.construct.plane.midplane": "Maakt een constructievlak halverwege twee vlakken, of dat de hoek tussen twee vlakken halveert waar ze onder een hoek samenkomen. Gebruik dit als symmetrievlak om te spiegelen.",
"help.construct.plane.offset": "Maakt een constructievlak evenwijdig aan een vlak, op een afstand of door een punt. Gebruik dit om op een vaste hoogte boven een vlak te schetsen.",
"help.construct.plane.perpendicular": "Maakt een constructievlak dat een lijn of rand bevat en loodrecht op een vlak staat. Gebruik dit om rechtop op een model te schetsen, langs een rand.",
"help.construct.plane.tangent": "Maakt een constructievlak dat een cilinder, kegel, bol of torus in een punt raakt. Gebruik dit om op de zijkant van een rond onderdeel te schetsen.",
"help.construct.plane.three_points": "Maakt een constructievlak door drie punten. Gebruik dit voor een vlak dat door posities op het model wordt bepaald, zoals drie hoeken.",
"help.construct.plane.two_edges": "Maakt een constructievlak door twee rechte randen of lijnen die in één vlak liggen. Gebruik dit voor een vlak door een onderdeel, bijvoorbeeld door twee tegenover elkaar liggende randen.",
"help.construct.point.along_path": "Maakt een constructiepunt op een positie langs een rand of curve. Gebruik dit als referentie ergens op een pad.",
"help.construct.point.center": "Maakt een constructiepunt in het midden van een cirkelvormige rand, een schetscirkel of boog, een bol of een torus. Gebruik dit als referentie voor gaten, assen en verbindingen.",
"help.construct.point.edge_plane": "Maakt een constructiepunt waar een rand of lijn door een vlak gaat. Gebruik dit om te markeren waar een pad een vlak kruist.",
"help.construct.point.three_planes": "Maakt een constructiepunt waar drie vlakken samenkomen. Gebruik dit als hoekreferentie, ook waar het model geen hoekpunt heeft.",
"help.construct.point.two_edges": "Maakt een constructiepunt waar twee randen of lijnen elkaar ontmoeten of het dichtst bij elkaar komen. Gebruik dit als referentie op een virtuele hoek.",
"help.construct.point.vertex": "Maakt een constructiepunt op een hoekpunt of schetspunt. Gebruik dit als referentie die blijft bestaan wanneer de schets of het lichaam eromheen verborgen is.",
"help.contact.check": "Toont de paren onderdelen in contactsets die in hun huidige positie door elkaar heen gaan. Gebruik dit om botsingen te vinden voordat je verbindingen aanstuurt of een bewegingsstudie uitvoert.",
"help.contact.create": "Groepeert twee of meer onderdelen in een contactset, waarvan de lichamen niet door elkaar heen kunnen gaan terwijl verbindingen bewegen. Gebruik dit voor onderdelen die moeten stoppen wanneer ze elkaar raken, zoals een hendel tegen zijn aanslag.",
"help.contact.disable_all": "Schakelt contact uit, zodat aangestuurde verbindingen en bewegingsstudies niet meer stoppen waar onderdelen elkaar raken. Gebruik dit om onderdelen weer vrij te verplaatsen, of om een grote samenstelling responsief te houden.",
"help.contact.edit": "Wijzigt een contactset: de onderdelen erin, de naam of de onderdrukking; de set kan ook worden verwijderd. Gebruik dit om aan te passen welke onderdelen niet door elkaar heen kunnen gaan.",
"help.contact.enable_all": "Zet elk onderdeel van de samenstelling in één contactset, zodat geen twee onderdelen door elkaar heen kunnen gaan terwijl verbindingen bewegen. Gebruik dit voor een snelle controle van een heel mechanisme.",
"help.contact.enable_sets": "Schakelt contact in voor de contactsets die je hebt gedefinieerd, zodat aangestuurde verbindingen en bewegingsstudies stoppen waar hun onderdelen door elkaar heen zouden gaan. Gebruik dit om je sets terug te halen nadat je contact hebt uitgeschakeld.",
"help.contact.list": "Toont de contactsets van het ontwerp, de onderdelen in elke set en of contact aan staat. Gebruik dit om te controleren hoe contact is ingesteld voordat je de samenstelling aanstuurt.",
"help.document.inspect": "Toont een overzicht van het ontwerp: de componenten, lichamen, schetsen, kenmerken en parameters. Gebruik dit om houvast te krijgen in een ontwerp dat je niet zelf hebt gebouwd.",
"help.document.units": "Wijzigt de eenheden waarin het ontwerp lengtes toont, zoals mm of inch. De geometrie behoudt zijn grootte; alleen de weergave en gewone getallen volgen.",
"help.edit.checkpoint": "Onthoudt het ontwerp, de actieve schets en de geschiedenis voor ongedaan maken zoals ze nu zijn. Gebruik dit voordat je iets riskants probeert waarvan je mogelijk wilt terugkeren.",
"help.edit.restore_checkpoint": "Keert terug naar een controlepunt, inclusief de geschiedenis voor ongedaan maken. Gebruik dit om alles wat sinds het controlepunt is gedaan in één stap te laten vervallen.",
"help.explode.create": "Maakt een explosieweergave die de onderdelen van het midden van de samenstelling af duwt, of volgens de verplaatsingen die je instelt. Gebruik dit om te laten zien hoe een samenstelling in elkaar zit, voor handleidingen of presentaties.",
"help.face.delete": "Verwijdert de geselecteerde vlakken en laat de aangrenzende vlakken de opening sluiten, of laat de opening open als oppervlak. Gebruik dit om een afgeronde rand, een gat of een nok die in de weg zit te verwijderen.",
"help.file.insert_mesh": "Voegt een 3MF-, STL-, OBJ-, PLY- of glTF-bestand als meshlichamen toe aan het ontwerp in een nieuw component. Gebruik dit om een gedownload of gescand model als referentie naast je ontwerp te plaatsen.",
"help.file.insert_step": "Voegt een STEP-, IGES-, FreeCAD- of Rhino-bestand als massieve lichamen toe aan het ontwerp in een nieuw component; de onderdelen van een samenstelling worden geneste componenten. Gebruik dit om modellen van leveranciers of andere CAD-programma's te importeren.",
"help.file.save_mesh": "Slaat lichamen op als STL-, 3MF- of OBJ-mesh, met de gladheid van gebogen vlakken die je kiest. Gebruik dit om onderdelen voor te bereiden voor 3D-printen of voor programma's die meshes lezen.",
"help.file.send_to_slicer": "Slaat de geselecteerde lichamen op als 3MF-bestand en opent het in de slicer die je kiest. Gebruik dit om in één stap van model naar printen te gaan.",
"help.font_details": "De interface gebruikt de ingebouwde lettertypen van egui (Ubuntu Light en Hack, onder de Ubuntu Font Licence en de MIT/Bitstream Vera-licentie; Noto Emoji en het emoji-pictogramlettertype, onder de OFL en MIT). Schetstekst gebruikt Liberation Sans (SIL OFL 1.1). Het optionele lettertypepakket van The Crafting Apps, craft-fonts (BIZ UDPGothic, Shippori Mincho, BIZ UDMincho, Noto Sans CJK SC, Noto Sans Arabic; SIL OFL 1.1), wordt niet meegeleverd in SolidCraft-builds.",
"help.fonts": "Lettertypen",
"help.frame.member": "Plaatst een profiel, zoals een buis of een aluminium extrusieprofiel, langs de lijnen van een kaderschets, één constructiedeel per lijn. Gebruik dit om kaders, rekken en gelaste constructies te bouwen.",
"help.inspect.accessibility": "Kleurt de vlakken die een gereedschap vanuit één richting kan bereiken, en die het niet kan bereiken. Gebruik dit om een onderdeel te controleren op bewerking of gieten vanaf die kant.",
"help.inspect.center_of_mass": "Toont het zwaartepunt van lichamen, elk afzonderlijk en allemaal samen, bij uniforme dichtheid. Gebruik dit om balans te controleren en te zien waar een onderdeel kantelt.",
"help.inspect.colored_components": "Geeft elk component een eigen tijdelijke kleur, zonder uiterlijken te wijzigen. Gebruik dit om de onderdelen van een samenstelling in één oogopslag te onderscheiden.",
"help.inspect.compare": "Vergelijkt twee lichamen en toont waar het ene materiaal heeft dat het andere niet heeft, met volume en afwijking. Gebruik dit om een gewijzigd of geïmporteerd onderdeel met het origineel te vergelijken.",
"help.inspect.continuity": "Controleert hoe vloeiend vlakken langs hun randen aansluiten: gaten, knikken of krommingssprongen, en kleurt de naden. Gebruik dit om te vinden waar oppervlakken niet netjes op elkaar aansluiten.",
"help.inspect.curvature_comb": "Tekent kammen langs curven, randen of vlakken waarvan de tanden tonen hoe sterk ze buigen. Gebruik dit om vlakke plekken, knikken en ongelijkmatige kromming op te sporen.",
"help.inspect.curvature_map": "Kleurt vlakken naar hoe sterk ze krommen, rood waar de straal klein is. Gebruik dit om krappe plekken te vinden en te beoordelen hoe glad een oppervlak is.",
"help.inspect.draft": "Kleurt vlakken naar hun hellingshoek ten opzichte van een trekrichting en markeert die met te weinig helling. Gebruik dit om een onderdeel te controleren vóór het spuitgieten of gieten.",
"help.inspect.environment_map": "Toont het model met een spiegelende, glanzende afwerking. Gebruik dit om het verloop van oppervlakken te beoordelen aan de hand van de weerspiegelingen die erover lopen.",
"help.inspect.interference": "Vindt lichamen die elkaar overlappen en toont elke overlap met zijn volume. Gebruik dit om een samenstelling te controleren op onderdelen die botsen.",
"help.inspect.isocurve": "Tekent de isoparametrische curven van vlakken, het raster waarop het oppervlak is opgebouwd. Gebruik dit om te zien hoe een oppervlak verloopt en waar het samenklontert.",
"help.inspect.measure": "Meet lengtes, afstanden, hoeken, oppervlakten en stralen tussen wat je kiest, of het volume en de massa van lichamen. Gebruik dit om maten en speling te controleren.",
"help.inspect.minimum_radius": "Zoekt de kleinste krommingsstraal van curven, randen of vlakken en waar die zit. Gebruik dit om te controleren of een gereedschap of spuitmond de vorm kan volgen.",
"help.inspect.section": "Snijdt de weergave open langs een vlak en arceert de snijvlakken, zonder het model te wijzigen. Gebruik dit om in onderdelen en samenstellingen te kijken.",
"help.inspect.zebra": "Toont zwart-witte strepen die op de vlakken van het model weerspiegelen. Gebruik dit om gladheid te beoordelen: strepen die bij een rand breken of knikken wijzen op een slechte overgang.",
"help.joint.as_built": "Verbindt twee onderdelen waar ze al staan, zonder er een te verplaatsen, en stelt in hoe ze nog mogen bewegen. Gebruik dit voor onderdelen die je al op hun definitieve plek hebt geplaatst.",
"help.joint.cam": "Koppelt een draaiende nok aan een volger, zodat de volger schuift of zwenkt terwijl de omtrek van de nok eronder doorgaat. Gebruik dit voor nokken, excenters en klepaandrijvingen.",
"help.joint.create": "Verbindt twee onderdelen op de verbindingsoorsprongen die je kiest en verplaatst het tweede onderdeel op zijn plaats; het verbindingstype bepaalt hoe ze nog mogen bewegen. Gebruik dit om een samenstelling te bouwen waarvan de onderdelen bewegen als het echte mechanisme.",
"help.joint.drive": "Stelt de hoek of afstand van een verbinding in en beweegt de onderdelen mee, binnen de limieten; gekoppelde verbindingen en gesloten lussen volgen. Gebruik dit om te controleren of een mechanisme beweegt zoals bedoeld.",
"help.joint.gear": "Koppelt twee draaiende verbindingen met een overbrengingsverhouding, zodat het aansturen van de ene de andere laat draaien. Gebruik dit voor recht vertande en inwendig vertande tandwielen, met de verhouding uit steekcirkelstralen of tandenaantallen.",
"help.joint.limits": "Stelt in hoever een verbinding mag draaien of schuiven, als minimum en maximum, of wist die limieten. Gebruik dit om een scharnier, schuifverbinding of hendel binnen zijn echte bewegingsbereik te houden.",
"help.joint.motion_link": "Koppelt twee verbindingen met een verhouding en een offset, zodat het aansturen van de ene de andere beweegt. Gebruik dit voor een vaste relatie tussen verbindingen die Tandwiel, Tandheugel en rondsel of Schroef niet dekken.",
"help.joint.origin": "Plaatst een benoemde verbindingsoorsprong op een onderdeel: in het midden van een vlak of rond uiteinde, het midden van een rand, een hoek of een punt. Gebruik dit om voor te bereiden waar verbindingen vastzitten; een oorsprong op een vlak volgt dat vlak wanneer het onderdeel van grootte verandert.",
"help.joint.rack_pinion": "Koppelt een draaiend rondsel aan een schuivende tandheugel, zodat de tandheugel verschuift over de lengte van de steekcirkel die het rondsel afrolt. Gebruik dit voor tandheugelaandrijvingen, besturingen en lineaire tafels.",
"help.joint.reach": "Beweegt een punt op een onderdeel naar een doel door de verbindingen in de keten ervan te wijzigen, binnen hun limieten. Gebruik dit om een mechanisme te positioneren aan de hand van waar het uiteinde moet komen, zoals de punt van een robotarm.",
"help.joint.rigid_group": "Vergrendelt de geselecteerde onderdelen zoals ze zijn, zodat ze als één geheel bewegen. Gebruik dit voor onderdelen die bij elkaar horen en waartussen geen beweging is.",
"help.joint.screw": "Koppelt draaien en schuiven via een spoed, zodat elke omwenteling over die afstand opschuift. Gebruik dit voor aandrijfspindels, bouten en schroefspindels.",
"help.library.apply": "Past een materiaal of uiterlijk uit een lokaal bibliotheekbestand toe op lichamen, vlakken of componenten. Gebruik dit om materialen die je uit een ander ontwerp hebt opgeslagen opnieuw te gebruiken.",
"help.library.export": "Slaat de materialen en uiterlijken van het ontwerp op in een bibliotheekbestand. Gebruik dit om ze te delen of in andere ontwerpen te hergebruiken.",
"help.library.inspect": "Controleert een bibliotheekbestand en toont de materialen en uiterlijken erin, zonder het ontwerp te wijzigen. Gebruik dit om te zien wat een bibliotheek bevat voordat je die toepast.",
"help.licences": "Licenties",
"help.material.assign": "Stelt in waarvan de geselecteerde lichamen gemaakt zijn, zoals staal, aluminium of ABS. Gebruik dit zodat massa en gewicht overeenkomen met het echte onderdeel.",
"help.material.properties.validate": "Controleert een materiaalgegevenskaart op consistente getallen en ontbrekende waarden. Gebruik dit voordat je op de gegevens vertrouwt voor massa of stijfheid.",
"help.mesh.convert": "Bouwt een meshlichaam, zoals een STL, opnieuw op als bewerkbaar massief lichaam met platte en cilindrische vlakken. Gebruik dit om geïmporteerde mechanische onderdelen te wijzigen als een gemodelleerd lichaam.",
"help.mit": "MIT-licentie",
"help.motion.study": "Stelt verbindingswaarden in op stappen langs een tijdlijn en speelt ze af als animatie. Gebruik dit om een mechanisme door een reeks bewegingen te zien gaan en onderweg de speling te controleren.",
"help.motion.trace": "Volgt het pad dat een punt op een onderdeel aflegt terwijl een bewegingsstudie wordt afgespeeld of een verbinding wordt aangestuurd, en bewaart het als 3D-schetscurve wanneer je bevestigt. Gebruik dit om te zien waar een mechanisme reikt, of om op het pad voort te bouwen.",
"help.notice": "NOTICE",
"help.occurrence.ground": "Zet een onderdeel vast, of maakt het weer vrij, zodat verbindingen de andere onderdelen eromheen bewegen. Gebruik dit voor het frame of de basis waarop de rest van de samenstelling is gebouwd.",
"help.occurrence.move": "Verplaatst een onderdeel van een samenstelling alleen langs de vrijheidsgraden die zijn verbindingen toestaan. Selecteer een vlak van het onderdeel en sleep dan een beschikbare pijl of boog.",
"help.parameters.change": "Opent de tabel met benoemde waarden en expressies die de maten van het ontwerp aansturen. Gebruik dit om een maat op één plek te wijzigen, zodat elk kenmerk dat die maat gebruikt vanzelf meegaat.",
"help.parameters.export": "Slaat de parameters van het ontwerp op als CSV of JSON. Gebruik dit om ze in een spreadsheet te bewerken of naar een ander ontwerp over te brengen.",
"help.parameters.graph": "Toont welke parameters en kenmerken welke andere gebruiken, en eventuele lussen of fouten daartussen. Gebruik dit om te zien wat een wijziging van een parameter beïnvloedt.",
"help.parameters.import": "Leest parameters uit CSV of JSON in het ontwerp, alle of geen. Gebruik dit om waarden uit een spreadsheet of een ander ontwerp over te nemen.",
"help.parameters.move": "Verplaatst een gebruikersparameter vóór of na een andere in de lijst. Gebruik dit om samenhangende parameters bij elkaar te houden.",
"help.parts.fastener": "Voegt een standaard schroef, bout, moer, ring, pen of lager toe in de maat die je kiest. Op een gat geplaatst, komt het met een verbinding in het gat te zitten, zodat je bevestigingsmiddelen niet zelf hoeft te modelleren.",
"help.parts.insert": "Voegt een standaardonderdeel in met de familie, maat en lengte die je kiest. Op de rand of wand van een gat geplaatst, komt het met een starre verbinding op het gat te zitten.",
"help.parts.library": "Opent de standaardonderdelen: schroeven, bouten, moeren, ringen, stelschroeven, paspennen en lagers in standaardmaten. Gebruik dit om een standaardonderdeel toe te voegen in plaats van het zelf te modelleren.",
"help.parts.resize": "Wijzigt de maat of lengte van een ingevoegd standaardonderdeel en bouwt het opnieuw op; de verbindingen houden het op zijn plaats. Gebruik dit wanneer een schroef te lang blijkt of een gat een andere maat nodig heeft.",
"help.plastic.assign_rule": "Wijst een kunststofregel toe aan lichamen, zodat hun kunststofkenmerken de aanzet en speling ervan als standaard overnemen. Gebruik dit om een spuitgegoten onderdeel één keer in te stellen voor al zijn kenmerken.",
"help.plastic.boss": "Voegt een schroefnok toe op een vlak: een pilaar met optioneel een gat, aanzet, wortelafronding en ondersteunende ribben. Gebruik dit voor schroefpunten in spuitgegoten of geprinte behuizingen.",
"help.plastic.lip": "Voegt een lip of een bijpassende groef toe langs de rand van een geschaald lichaam. Gebruik dit zodat twee behuizingshelften op elkaar passen en strak sluiten.",
"help.plastic.manage_rules": "Maakt en bewerkt kunststofregels: materiaal, wanddikte, stralen, speling en aanzet. Gebruik ze om de kenmerken van een spuitgegoten onderdeel consistent te houden.",
"help.plastic.rest": "Voegt een rustvlak toe op een vlak: een ronde of rechthoekige verhoging, massief of hol, met aanzet. Gebruik dit als steun of afstandhouder in een spuitgegoten behuizing.",
"help.plastic.snap_fit": "Voegt een snaphaak toe op een vlak, met lengte, dikte en klikrand. Gebruik dit om onderdelen zonder schroeven aan elkaar te klikken.",
"help.pointcloud.insert": "Voeg een PLY-, XYZ- of PTS-scan in als puntenwolk naast het model. Gebruik deze als referentie bij het bouwen van een model op basis van gemeten gegevens.",
"help.sheet.convert": "Maakt van een plaat of geschaald lichaam van gelijkmatige dikte een plaatwerklichaam, met buigingen op de randen die je kiest. Gebruik dit om een bestaand onderdeel ontvouwbaar te maken.",
"help.sheet.export_bend_table": "Slaat de buigtabel van een plaatwerklichaam op als CSV of JSON: hoeken, stralen en buigposities in de uitslag. Gebruik dit voor de kantbank of de werkplaats.",
"help.sheet.export_dxf": "Slaat de uitslag op als DXF, met contouren, buiglijnen en optionele buigopmerkingen. Gebruik dit voor laser-, plasma- of waterstraalsnijden.",
"help.sheet.flange": "Voegt een flens toe: een basisplaat uit een schets, een wand langs een open schetscontour, of een gebogen wand op plaatranden. Gebruik dit om plaatwerkonderdelen op te bouwen.",
"help.sheet.flat_pattern": "Maakt de uitslag van een plaatwerklichaam, met zijn afmetingen, uitsnijdingen en buiglijnen. Gebruik dit om de plano te controleren voordat je hem snijdt.",
"help.sheet.fold": "Vouwt een plaat langs een schetslijn onder een hoek en met een straal. Gebruik dit om een vlakke plaat te vouwen nadat je er kenmerken in hebt gesneden.",
"help.sheet.hem": "Vouwt een plaatrand terug op zichzelf. Gebruik dit voor veilige, stijve randen zonder scherpe bramen.",
"help.sheet.manage_rules": "Maakt en bewerkt plaatwerkregels: dikte, buigstraal, K-factor, vrijsnijdingen en spleten. Gebruik ze om af te stemmen op het materiaal en het gereedschap van je werkplaats.",
"help.sheet.path_flange": "Voegt een reeks flenzen toe langs een plaatrand, volgens een open keten van schetslijnen. Gebruik dit voor profielen zoals een U- of Z-vorm in één stap.",
"help.sheet.perforate": "Voegt een veld van gaten toe over de hele vlakke plaat, in een verspringend of vierkant patroon. Gebruik dit voor ventilatieopeningen, roosters en lichtere panelen.",
"help.sheet.refold": "Vouwt een ontvouwen plaatwerklichaam weer op. Gebruik dit nadat je kenmerken aan de vlakke plaat hebt toegevoegd.",
"help.sheet.unfold": "Ontvouwt alle buigingen van een plaatwerklichaam. Gebruik dit om gaten of sneden toe te voegen die over een buiging heen moeten lopen, en vouw daarna opnieuw.",
"help.sketch.arc.center_point": "Tekent een cirkelboog rond een middelpunt, van een beginpunt naar een eindpunt. Gebruik dit wanneer het middelpunt van de boog bekend is, zoals een straal rond een gat of een draaipunt.",
"help.sketch.arc.tangent": "Tekent een boog die begint op het uiteinde van een lijn of boog en er tangentieel op aansluit. Gebruik dit om een keten voort te zetten met een vloeiende bocht in plaats van een hoek.",
"help.sketch.arc.three_point": "Tekent een boog van een beginpunt naar een eindpunt door een derde punt. Gebruik dit wanneer de boog door gegeven punten moet gaan in plaats van rond een bekend middelpunt.",
"help.sketch.arc3d": "Tekent een exacte cirkelboog in de ruimte door drie punten, met 3D-schets aan. Gebruik dit voor bochten in paden en geleiders die het schetsvlak verlaten.",
"help.sketch.auto_constrain": "Voegt de beperkingen toe die de schets al bijna heeft, zoals horizontaal, evenwijdig of samenvallend, en voorziet hem daarna van maten tot hij volledig bepaald is. Gebruik dit om een ruw getekende schets in één stap vast te leggen.",
"help.sketch.auto_constrain_from_datum": "Werkt zoals Autom. beperken, maar meet de posities vanaf een referentiepunt dat je kiest in plaats van vanaf de oorsprong. Gebruik dit wanneer het onderdeel vanuit één referentiepunt is opgezet, zoals een hoek of een gat.",
"help.sketch.blend_curve": "Verbindt de uiteinden van twee curven met een vloeiende spline die tangentieel aansluit op beide, of ook krommingscontinu als je dat kiest. Gebruik dit om een opening tussen curven zonder knik te overbruggen.",
"help.sketch.break": "Splitst een curve in stukken waar andere curven hem kruisen, of op punten die je erop plaatst. Gebruik dit wanneer een deel van een curve een eigen beperking nodig heeft of apart moet worden verwijderd.",
"help.sketch.cancel": "Verlaat de schets en verwerpt alles wat is gewijzigd sinds hij is gemaakt of geopend voor bewerking. Met Ongedaan maken komen de wijzigingen terug.",
"help.sketch.centerline": "Schakelt lijnen om tussen gewone lijnen en hartlijnen, assen die profielen weglaten. Gebruik een hartlijn als as voor een revolve, een spiegeling of een symmetriebeperking.",
"help.sketch.chamfer.distance_angle": "Schuint de hoek tussen twee lijnen af, ingesteld met een afstand langs de eerste lijn en een hoek. Gebruik dit wanneer een tekening de afschuining opgeeft als lengte en hoek, zoals 2 mm × 30°.",
"help.sketch.chamfer.equal_distance": "Schuint de hoek tussen twee lijnen af met dezelfde afstand terug langs beide. Gebruik dit voor de gebruikelijke afschuining van 45° op een contour.",
"help.sketch.chamfer.two_distance": "Schuint de hoek tussen twee lijnen af, ingesteld met een aparte afstand langs elke lijn. Gebruik dit voor afschuiningen die niet 45° zijn, opgegeven als twee lengtes.",
"help.sketch.circle.center": "Tekent een cirkel vanuit zijn middelpunt en diameter. Gebruik dit voor gaten, nokken en andere ronde kenmerken waarvan het middelpunt bekend is.",
"help.sketch.circle.three_point": "Tekent een cirkel door drie punten. Gebruik dit wanneer de cirkel door gegeven punten moet gaan, bijvoorbeeld van bestaande geometrie.",
"help.sketch.circle.three_tangent": "Tekent een cirkel die drie lijnen, cirkels of bogen raakt. Gebruik dit om een cirkel in de ruimte tussen drie curven te passen, zoals de ingeschreven cirkel van een driehoek.",
"help.sketch.circle.two_point": "Tekent een cirkel vanuit de twee uiteinden van zijn diameter. Gebruik dit wanneer de randpunten van de cirkel bekend zijn in plaats van het middelpunt.",
"help.sketch.circle.two_tangent": "Tekent een cirkel van een opgegeven grootte die twee lijnen, cirkels of bogen raakt. Gebruik dit voor een afronding met vaste straal tussen twee curven.",
"help.sketch.conic": "Tekent een kegelsnede tussen twee eindpunten, gevormd door een toppunt en een rho-waarde. Gebruik dit voor vloeiende overgangen waarvan je de volheid wilt afstellen, van vlak tot bijna een scherpe hoek.",
"help.sketch.constrainer": "Past de beperking toe die een of twee gekozen curven al bijna hebben, zoals horizontaal, evenwijdig, tangentieel of gelijk. Gebruik dit om een met de hand getekende schets relatie voor relatie op te ruimen.",
"help.sketch.constraint.coincident": "Laat een punt samenvallen met een ander punt, een curve of een schetsas. Gebruik dit om openingen in een profiel te sluiten of een punt op een lijn te zetten.",
"help.sketch.constraint.collinear": "Laat twee lijnen op één rechte lijn liggen. Gebruik dit om onderbroken randen uit te lijnen, zoals beide zijden van een inkeping.",
"help.sketch.constraint.concentric": "Geeft twee cirkels of bogen hetzelfde middelpunt. Gebruik dit voor ringen, verzinkingen en assen met schouders.",
"help.sketch.constraint.curvature": "Laat twee curven die in een eindpunt samenkomen met dezelfde kromming (G2) doorlopen. Gebruik dit waar een tangentiële aansluiting niet vloeiend genoeg is, bijvoorbeeld op zichtbare oppervlakken.",
"help.sketch.constraint.equal": "Maakt lijnen even lang, of cirkels en bogen even groot van straal. Gebruik dit zodat één maat meerdere overeenkomende kenmerken aanstuurt.",
"help.sketch.constraint.fix": "Zet punten of curven vast waar ze zijn, of maakt ze weer los. Gebruik dit voor geometrie die niet mag bewegen wanneer je de schets sleept of oplost.",
"help.sketch.constraint.horizontal_vertical": "Maakt een lijn, of de lijn tussen twee punten, horizontaal of verticaal, afhankelijk van wat het dichtst bij ligt. Gebruik dit om een contour recht op de schetsassen te zetten.",
"help.sketch.constraint.midpoint": "Zet een punt op het midden van een lijn, of laat de middelpunten van twee lijnen samenvallen. Gebruik dit om geometrie op een rand te centreren.",
"help.sketch.constraint.parallel": "Maakt twee lijnen evenwijdig. Gebruik dit voor zijden die evenwijdig moeten blijven wanneer andere maten veranderen.",
"help.sketch.constraint.perpendicular": "Laat twee lijnen een rechte hoek maken. Gebruik dit voor rechte hoeken tussen lijnen die niet op de schetsassen liggen.",
"help.sketch.constraint.polygon": "Maakt van een gesloten keten van lijnen een regelmatige veelhoek: gelijke zijden, met elke hoek op één cirkel. Gebruik dit om een met de hand getekende veelhoek regelmatig te maken en te houden.",
"help.sketch.constraint.symmetry": "Laat twee punten of curven elkaars spiegelbeeld zijn ten opzichte van een lijn of rond een punt. Gebruik dit om een profiel symmetrisch te houden wanneer je één zijde wijzigt.",
"help.sketch.constraint.tangent": "Laat twee curven elkaar tangentieel raken, zoals een lijn en een boog. Gebruik dit voor vloeiende aansluitingen zonder knik.",
"help.sketch.construction": "Schakelt curven om tussen normale geometrie en constructiegeometrie, die profielen weglaten. Gebruik constructiecurven als hulp voor indeling, referenties en maten.",
"help.sketch.construction_line": "Maak een oneindige constructielijn door twee punten. Gebruik deze om een schets op te zetten zonder profielen te splitsen.",
"help.sketch.construction_line.angle": "Maak een oneindige constructielijn onder een hoek ten opzichte van de X-as van de schets. Kies het punt en typ de hoek, of kies de richting ervan.",
"help.sketch.construction_line.bisector": "Kies twee elkaar snijdende rechte schetslijnen en kies dan een van beide bissectrices. Het resultaat volgt zijn bronlijnen.",
@@ -1412,11 +1580,71 @@
"help.sketch.construction_line.tangent_external": "Kies een cirkel of cirkelboog en dan een extern punt en een oplossing voor de raaklijn. De voorbeelden tonen alleen raakpunten op de getekende boog.",
"help.sketch.construction_line.tangent_two": "Kies twee cirkels of cirkelbogen en kies dan een gemeenschappelijke raaklijn in het voorbeeld. De raakpunten moeten op de getekende krommen liggen.",
"help.sketch.construction_line.vertical": "Maak een oneindige verticale constructielijn door een punt. De verticale beperking blijft gelden bij latere bewerkingen.",
"help.sketch.copy": "Kopieert de geselecteerde schetscurven en -punten, samen met de beperkingen en maten daartussen. Plak ze in deze schets of in een andere.",
"help.sketch.create": "Start een nieuwe 2D-schets op een vlak of op een plat vlak van het model. Elke extrusie, revolve en sweep begint met een schets.",
"help.sketch.cut": "Kopieert de geselecteerde schetsgeometrie en verwijdert die uit de schets, in één stap om ongedaan te maken. Plak haar elders in deze schets of in een andere.",
"help.sketch.dimension": "Voegt een aandrijvende maat toe: een lengte, afstand, hoek, straal of diameter, afhankelijk van wat je kiest. Typ een waarde of een parameternaam en de schets volgt die.",
"help.sketch.edit": "Opent een bestaande schets voor bewerking. De kenmerken die erop zijn gebouwd worden bijgewerkt wanneer je de schets voltooit.",
"help.sketch.ellipse": "Tekent een ellips vanuit zijn middelpunt, het uiteinde van zijn lange as en een punt aan de korte zijde. Gebruik dit voor ovale openingen, nokken en andere langgerekte ronde vormen.",
"help.sketch.equation_curve": "Tekent een curve uit formules: x(t) en y(t), of y = f(x), over een bereik. De formules kunnen parameters gebruiken en de curve volgt ze: gebruik dit voor een sinusgolf, een spiraal of de evolvente van een tandwieltand.",
"help.sketch.extend": "Verlengt een lijn of boog tot de dichtstbijzijnde curve in de weg, of laat twee curven aangroeien tot ze elkaar ontmoeten. Gebruik dit om openingen in een profiel te sluiten na het trimmen of bewerken.",
"help.sketch.fillet": "Rondt de hoek waar twee lijnen of bogen samenkomen af met een boog met een opgegeven straal. Meerdere hoeken die samen worden afgerond delen één straal.",
"help.sketch.finish": "Verlaat de schets en keert terug naar het model. De gesloten profielen zijn dan klaar voor Extruderen, Revolve en andere kenmerken.",
"help.sketch.finish_auto_constrain": "Voert Autom. beperken uit op de schets en voltooit hem daarna. Gebruik dit om een schets in één stap volledig bepaald achter te laten.",
"help.sketch.fit_curves_to_section": "Snijdt een mesh- of massief lichaam met het schetsvlak en past lijnen en bogen aan op de doorsnede. Gebruik dit om een gescand of geïmporteerd onderdeel opnieuw op te bouwen als bewerkbare schets.",
"help.sketch.include_3d": "Brengt modelranden, hoekpunten en curven van andere schetsen als gekoppelde referenties in deze schets, waarbij wat buiten het schetsvlak ligt op dat vlak wordt afgeplat. Gebruik dit om voort te bouwen op geometrie die niet in het schetsvlak ligt.",
"help.sketch.infinite": "Schakelt lijnen om tussen normale lijnen en oneindige constructielijnen die door de hele weergave lopen. Gebruik ze als indelingsreferenties die nooit te kort zijn.",
"help.sketch.insert_dxf": "Leest de curven van een DXF-tekening in een schets, geschaald, gedraaid en geplaatst waar je instelt. Gebruik dit om voort te bouwen op een 2D-tekening uit een ander programma, zoals een lasersnijcontour.",
"help.sketch.insert_svg": "Leest de paden van een SVG-tekening in een schets, geschaald, gedraaid en geplaatst waar je instelt. Gebruik dit om een logo of vectorcontour om te zetten in curven die je kunt extruderen.",
"help.sketch.inspect": "Opent een rapport over de geopende schets: hoeveel vrijheidsgraden er nog over zijn en of hij volledig beperkt is. Gebruik dit om te zien wat nog beweegt voordat je de schets voltooit.",
"help.sketch.intersect": "Voegt de curven of punten toe waar lichamen, vlakken, randen of andere schetsen het schetsvlak kruisen. Ze blijven gekoppeld en volgen het model wanneer dat verandert.",
"help.sketch.intersection_curve": "Maakt 3D-curven waar twee lichamen of vlakken samenkomen, eraan gekoppeld. Gebruik ze als paden of geleiders die het model volgen.",
"help.sketch.isoparametric_curve": "Maakt een 3D-curve langs de U- of V-richting van een vlak door een punt dat je kiest, gekoppeld aan het vlak. Gebruik dit als pad of splitslijn die het oppervlak volgt.",
"help.sketch.line": "Tekent verbonden lijnen punt voor punt, als open keten of gesloten contour. Het is het basisgereedschap voor de meeste profielen.",
"help.sketch.line.midpoint": "Tekent een lijn vanuit zijn middelpunt naar één uiteinde, waarbij het andere uiteinde wordt gespiegeld. Gebruik dit voor lijnen die op een punt zijn gecentreerd, zoals een symmetrische rand.",
"help.sketch.line3d": "Tekent verbonden rechte lijnen tussen punten in de ruimte, met 3D-schets aan. Gebruik dit voor paden en kaders die het schetsvlak verlaten.",
"help.sketch.mirror": "Spiegelt schetscurven en -punten over een lijn of as en voegt symmetriebeperkingen toe. Gebruik dit om de helft van een symmetrisch profiel te tekenen en het aan te vullen.",
"help.sketch.move": "Verplaatst of draait schetscurven en -punten, of een kopie ervan. Gebruik dit om geometrie op een andere plek te zetten met behoud van vorm en beperkingen.",
"help.sketch.offset": "Maakt een kopie van een keten van curven op een opgegeven afstand, aan één kant of aan beide. Gebruik dit voor wanden, contouren en spelingen; de afstand blijft een bewerkbare maat.",
"help.sketch.paste": "Plakt schetsgeometrie die je hebt gekopieerd of geknipt in de actieve schets. Plaats haar op een punt of verschuif haar met een offset.",
"help.sketch.pattern.circular": "Kopieert schetsgeometrie rond een middelpunt, over een volledige cirkel of een opgegeven hoek. Gebruik dit voor steekcirkels van bouten, spaken en tanden.",
"help.sketch.pattern.rectangular": "Kopieert schetsgeometrie in rijen en kolommen met opgegeven tussenafstanden. Gebruik dit voor roosters van gaten, sleuven of ventilatieopeningen.",
"help.sketch.point": "Plaatst een schetspunt. Gebruik dit als referentie voor maten, beperkingen, gatmiddelpunten of latere kenmerken.",
"help.sketch.point3d": "Plaatst een punt in de ruimte, met 3D-schets aan. Gebruik dit als referentie voor 3D-curven en paden.",
"help.sketch.polygon.circumscribed": "Tekent een regelmatige veelhoek rond een cirkel, bepaald door de afstand van het midden tot het midden van een zijde. Gebruik dit wanneer de sleutelwijdte bekend is, zoals bij een zeskantmoer.",
"help.sketch.polygon.edge": "Tekent een regelmatige veelhoek vanuit de twee uiteinden van één zijde. Gebruik dit wanneer de lengte en positie van een zijde bekend zijn.",
"help.sketch.polygon.inscribed": "Tekent een regelmatige veelhoek binnen een cirkel, bepaald door de afstand van het midden tot een hoek. Gebruik dit wanneer de maat over de hoeken bekend is.",
"help.sketch.project": "Brengt modelranden, vlakken, hoekpunten en curven van andere schetsen in deze schets, geprojecteerd op het vlak ervan. Ze blijven gekoppeld en volgen het model wanneer dat verandert.",
"help.sketch.project_to_surface": "Projecteert curven van andere schetsen langs de normaal van deze schets op een vlak, als gekoppelde 3D-curven. Gebruik dit om een logo, splitslijn of pad op een gebogen oppervlak te zetten.",
"help.sketch.rectangle.center": "Tekent een rechthoek vanuit zijn middelpunt en één hoek. Gebruik dit voor contouren die op een punt zijn gecentreerd, zoals de oorsprong.",
"help.sketch.rectangle.rounded": "Tekent een rechthoek waarvan alle vier de hoeken met één straal zijn afgerond. Gebruik dit voor platen, deksels en openingen met afgeronde hoeken.",
"help.sketch.rectangle.three_point": "Tekent een rechthoek vanuit één rand en een punt aan de overliggende zijde. Gebruik dit voor rechthoeken onder een hoek met de schetsassen.",
"help.sketch.rectangle.two_point": "Tekent een rechthoek vanuit twee overliggende hoeken. Gebruik dit voor de contouren van platen, blokken en uitsparingen.",
"help.sketch.scale": "Schaalt schetscurven en -punten met een factor rond een basispunt. Gebruik dit om een deel van een schets van grootte te veranderen zonder het opnieuw te tekenen.",
"help.sketch.slot.arc_center": "Tekent een gebogen sleuf met een opgegeven breedte langs een boog die is bepaald door middelpunt, begin en einde. Gebruik dit voor stelsleuven rond een draaipunt.",
"help.sketch.slot.arc_three_point": "Tekent een gebogen sleuf met een opgegeven breedte langs een boog door drie punten. Gebruik dit wanneer het pad van de sleuf door gegeven punten moet gaan.",
"help.sketch.slot.center_point": "Tekent een rechte sleuf met een opgegeven breedte vanuit zijn midden tot het middelpunt van één eindboog. Gebruik dit voor sleuven die op een punt zijn gecentreerd.",
"help.sketch.slot.center_to_center": "Tekent een rechte sleuf met een opgegeven breedte tussen de middelpunten van zijn twee eindbogen. Gebruik dit voor sleuven met maatvoering hart-op-hart, zoals stelsleuven voor schroeven.",
"help.sketch.slot.overall": "Tekent een rechte sleuf met een opgegeven breedte van het ene buitenste uiteinde tot het andere. Gebruik dit wanneer de totale lengte van de sleuf telt.",
"help.sketch.spline.control_point": "Tekent een kubische spline die wordt gevormd door controlepunten waar hij niet doorheen gaat. Gebruik dit voor vloeiende, soepele curven die je vormgeeft door de punten te verplaatsen.",
"help.sketch.spline.control_point_5": "Tekent een spline van graad 5, gevormd door controlepunten. Gebruik dit waar curven met vloeiendere kromming moeten aansluiten, bijvoorbeeld op zichtbare vormgevingsoppervlakken.",
"help.sketch.spline.fit_point": "Tekent een vloeiende spline die door elk punt gaat dat je plaatst, open of gesloten. Gebruik dit om een vorm door bekende punten na te trekken.",
"help.sketch.spline3d": "Tekent een vloeiende curve in de ruimte door punten, met 3D-schets aan. Gebruik dit voor sweeppaden en kabeltrajecten die het schetsvlak verlaten.",
"help.sketch.spun_profile": "Maakt in het schetsvlak de contour die een lichaam doorloopt wanneer het om een as draait. Gebruik dit om het silhouet van een gedraaid onderdeel te krijgen voor een revolve of een tekening.",
"help.sketch.text": "Schrijft tekst in de schets in een gekozen lettertype, hoogte en hoek; de woorden kunnen parameters volgen. Gebruik Extruderen of Embossen voor labels en belettering.",
"help.sketch.transform": "Schaalt, draait en verplaatst schetsgeometrie rond een middelpunt in één stap. Gebruik dit om een selectie in één keer te verplaatsen en van grootte te veranderen.",
"help.sketch.trim": "Verwijdert het stuk van een curve tussen de dichtstbijzijnde snijpunten rond waar je klikt. Gebruik dit om overlappende lijnen op te ruimen tot een gesloten profiel.",
"help.solid.align": "Verplaatst de geselecteerde lichamen zodat een punt, vlak of werkvlak erop samenvalt met een punt, vlak of werkvlak elders. Gebruik dit om een onderdeel tegen een ander te plaatsen zonder de afstand te meten.",
"help.solid.boundary_fill": "Maakt massieve lichamen uit de gebieden die worden ingesloten door elkaar overlappende gereedschapslichamen, en vult alleen de gebieden die je kiest. Gebruik dit om een vorm op te bouwen uit de ruimte die meerdere lichamen samen begrenzen.",
"help.solid.bounding_solid": "Maakt een kubus die de geselecteerde lichamen omsluit, met een optionele marge. Gebruik dit om de totale afmetingen van een onderdeel te zien, of als het ruwe materiaal waaruit het wordt bewerkt.",
"help.solid.box": "Maakt een kubus uit een lengte, breedte en hoogte, vanaf een hoekpunt of gecentreerd op een punt. Gebruik dit voor een snel blok, een plaatshouder of een lichaam om kenmerken in te snijden.",
"help.solid.chamfer": "Snijdt de geselecteerde randen af met een vlakke afschuining van de ingestelde afstand. Gebruik dit om scherpe randen te breken of het inbrengen van een pen of schroef te vergemakkelijken.",
"help.solid.coil": "Maakt een schroeflijnvormig lichaam, zoals een veer, uit een diameter, windingen, hoogte of spoed en een ronde of vierkante doorsnede. Gebruik dit voor veren, spoelen en schroeflijnvormige ribbels.",
"help.solid.combine": "Voegt lichamen samen, snijdt ze uit een doellichaam of behoudt alleen het gedeelde volume, en kan de gereedschapslichamen behouden. Gebruik dit om onderdelen samen te voegen, een vorm met een andere uit te snijden of te vinden waar twee lichamen overlappen.",
"help.solid.cone": "Maakt een kegel uit een grondcirkel en een hoogte, of een afgeknotte kegel wanneer de top ook een straal heeft. Gebruik dit voor taps toelopende delen, trechters, verzinkingen en punten.",
"help.solid.cylinder": "Maakt een cilinder uit een straal of diameter en een hoogte, staand op een punt langs een as. Gebruik dit voor assen, pennen, nokken en ronde stukken ruw materiaal.",
"help.solid.draft": "Kantelt de geselecteerde vlakken met de ingestelde hoek, gemeten vanaf een neutraal vlak. Gebruik dit bij gegoten of gevormde onderdelen zodat ze uit de mal loskomen.",
"help.solid.emboss": "Verheft schetsprofielen, zoals tekst of een logo, uit een vlak, of verzinkt ze erin. Gebruik dit voor belettering, labels en markeringen op platte of ronde vlakken.",
"help.solid.extrude": "Duwt een schetsprofiel over een afstand de 3D in en voegt materiaal toe of verwijdert het. Gebruik dit om een vlakke contour om te zetten in een blok, een nok of een uitsparing.",
"help.solid.fillet": "Rondt de geselecteerde randen af met een vloeiende cirkelvormige overgang met de ingestelde straal. Gebruik dit om scherpe randen te verzachten voor sterkte, comfort of uiterlijk.",
"help.solid.hole": "Boort een rond gat met de ingestelde diameter op een gekozen punt van een vlak. Gebruik dit voor doorvoergaten voor schroeven, pennen en andere eenvoudige ronde openingen.",
@@ -1425,20 +1653,60 @@
"help.solid.move": "Verplaatst of draait de geselecteerde lichamen, of een kopie ervan, over de ingestelde afstand en hoek. Gebruik dit om een lichaam een nieuwe positie te geven of om een tweede lichaam op een andere plek te maken.",
"help.solid.offset_face": "Duwt de geselecteerde vlakken naar binnen of buiten over de ingestelde afstand, waarbij de omliggende vlakken meegaan. Gebruik dit om een wand dikker, een uitsparing dieper of een nok hoger te maken zonder de schets te bewerken.",
"help.solid.pattern.circular": "Herhaalt de geselecteerde objecten rond een as, met het ingestelde aantal en de ingestelde totaalhoek. Gebruik dit voor boutcirkels, spaken, koelribben en tanden.",
"help.solid.pattern.path": "Kopieert kenmerken of lichamen langs een schetspad, op aantal en tussenafstand. Gebruik dit voor gaten langs een gebogen rand of onderdelen langs een rail.",
"help.solid.pattern.rectangular": "Herhaalt de geselecteerde objecten in één of twee richtingen met het ingestelde aantal en de ingestelde afstand. Gebruik dit voor rijen en rasters van gaten, ribben, pennen of voeten.",
"help.solid.pipe": "Maakt een ronde buis langs een pad van schetscurven, massief of hol met een wanddikte. Gebruik dit voor buizen, draden, kabels en rails.",
"help.solid.press_pull": "Voegt materiaal toe of verwijdert het terwijl een vlak wordt gesleept, of rondt randen af terwijl ze worden gesleept. Gebruik dit voor snelle wijzigingen rechtstreeks op het model.",
"help.solid.remove": "Haalt de geselecteerde lichamen vanaf dit punt in de tijdlijn uit het ontwerp; eerdere stappen behouden ze. Gebruik dit om een hulplichaam te verwijderen, zoals een snijgereedschap dat niet meer nodig is.",
"help.solid.replace_face": "Verplaatst de geselecteerde platte vlakken naar een werkvlak of een evenwijdig vlak, waarbij het lichaam groeit of krimpt om aan te sluiten. Gebruik dit om een vlak gelijk te trekken met een ander onderdeel of een constructievlak.",
"help.solid.revolve": "Draait een schetsprofiel rond een as tot een rond solid. Gebruik dit voor assen, knoppen, kommen en elk onderdeel dat draaisymmetrisch is rond een hartlijn.",
"help.solid.rib": "Voegt een dunne wand toe langs een open schetscurve, uitgevuld tot de eerstvolgende vlakken van het lichaam. Gebruik dit om wanden en hoeken te verstijven, bijvoorbeeld in spuitgegoten of geprinte onderdelen.",
"help.solid.scale": "Maakt de geselecteerde lichamen groter of kleiner met een factor, in elke richting gelijk of per as een eigen factor. Gebruik dit om een geïmporteerde vorm te schalen of krimp te compenseren.",
"help.solid.shell": "Holt een solid uit, waarbij wanden van de ingestelde dikte overblijven, en kan de gekozen vlakken openen. Gebruik dit voor dozen, deksels en andere dunwandige onderdelen.",
"help.solid.sphere": "Maakt een bol uit een straal of diameter rond een middelpunt. Gebruik dit voor ballen, knoppen en afgeronde uiteinden.",
"help.solid.split_body": "Snijdt een lichaam met een vlak, het vlak van een ander lichaam of een schetslijn in afzonderlijke lichamen. Gebruik dit voor onderdelen die afzonderlijk worden geprint, bewerkt of gekleurd.",
"help.solid.split_face": "Verdeelt de geselecteerde vlakken langs een vlak, het vlak van een ander lichaam of schetscurven, zonder het lichaam te snijden. Gebruik dit om een deel van een vlak een eigen helling, kleur of offset te geven.",
"help.solid.sweep": "Sleept een schetsprofiel langs een pad tot een solid. Gebruik dit voor buizen, rails, handgrepen en elk onderdeel met een constante doorsnede dat een curve volgt.",
"help.solid.thread": "Voegt een ISO-metrische schroefdraad toe aan een cilindrisch vlak, als cosmetische schroefdraad of in het lichaam gesneden. Gebruik dit voor bouten, tapgaten en geprinte schroefonderdelen.",
"help.solid.torus": "Maakt een ring uit een grote straal rond zijn as en een kleine straal voor zijn ronde doorsnede. Gebruik dit voor O-ringen, handvatten en ronde kralen.",
"help.solid.web": "Voegt een dunne wand toe langs elke open schetscurve, elk uitgevuld tot de eerstvolgende vlakken van het lichaam. Gebruik dit voor een raster van ondersteunende wanden in behuizingen en bakken.",
"help.surface.blend": "Maakt een oppervlak dat de randen van twee lichamen overbrugt, tangentieel of krommingscontinu aan beide. Gebruik dit om twee oppervlakken vloeiend over een opening heen te verbinden.",
"help.surface.boundary": "Maakt een oppervlak dat een lus van twee tot vier schetscurven of een netwerk van curven vult. Gebruik dit voor vrije vormpanelen die door hun randen zijn bepaald.",
"help.surface.extend": "Verlengt een oppervlak voorbij zijn randen, met een afstand of tot een vlak. Gebruik dit zodat oppervlakken overlappen voordat je ze trimt of naait.",
"help.surface.extrude": "Duwt schetscurven of profielen over een afstand uit tot een oppervlak, alleen wanden, zonder afsluitvlakken. Gebruik dit voor dunne wanden en voor snij- of splitsgereedschap.",
"help.surface.fair": "Egaliseert de binnenkant van vrije vormvlakken terwijl hun randen op hun plaats blijven. Gebruik dit om bobbels en golvende reflecties in een oppervlak glad te strijken.",
"help.surface.loft": "Maakt een oppervlak dat in volgorde door twee of meer doorsneden gaat, zonder afsluitvlakken. Gebruik dit voor schalen en overgangen tussen verschillende vormen.",
"help.surface.match": "Bouwt de rand van een oppervlak opnieuw op zodat hij aansluit op de rand van een ander lichaam, met overeenkomende tangent of kromming. Gebruik dit om een naad tussen twee oppervlakken vloeiend te sluiten.",
"help.surface.offset": "Maakt een kopie van vlakken op een afstand langs hun normalen, als nieuw oppervlaklichaam. Gebruik dit voor huiden, spelingen of de andere kant van een wand.",
"help.surface.patch": "Vult een schetsgebied of een gesloten lus van randen met een vlak, plat of vloeiend gebogen. Gebruik dit om gaten in een oppervlaklichaam te dichten.",
"help.surface.reverse_normal": "Keert vlakken van een oppervlaklichaam om, zodat hun buitenkant de andere kant op wijst. Gebruik dit vóór het verdikken of naaien wanneer de vlakken naar binnen wijzen.",
"help.surface.revolve": "Draait schetscurven of profielen om een as tot een oppervlak, zonder afsluitvlakken. Gebruik dit voor ronde schalen zoals lampenkappen, kommen en mondstukken.",
"help.surface.ruled": "Maakt een strook van rechte lijnen vanuit een keten van randen, langs de normaal of tangent van het vlak of onder een hoek. Gebruik dit voor aanzetwanden, uitlopen en scheidingsvlakken.",
"help.surface.stitch": "Naait oppervlaklichamen aan elkaar langs hun gedeelde randen, tot een massief lichaam wanneer ze sluiten. Gebruik dit om een reeks oppervlakken tot één lichaam te maken.",
"help.surface.sweep": "Beweegt schetscurven of profielen langs een pad tot een oppervlak, zonder afsluitvlakken. Gebruik dit voor goten, lijsten en andere dunne vormen die een pad volgen.",
"help.surface.thicken": "Geeft een oppervlaklichaam een dikte, waardoor het een massief lichaam wordt. Gebruik dit om printbare of bewerkbare onderdelen uit oppervlakken te maken.",
"help.surface.trim": "Snijdt een oppervlak met een vlak, een ander oppervlak of schetscurven en behoudt de zijde die je kiest. Gebruik dit om oppervlakken op vorm te snijden voordat je ze naait.",
"help.surface.unstitch": "Scheidt vlakken van een lichaam in eigen oppervlaklichamen; een massief lichaam valt uiteen in oppervlakken. Gebruik dit om afzonderlijke vlakken van een lichaam te herwerken.",
"help.surface.untrim": "Verwijdert gaten uit een vlak, of herstelt de buitengrens ervan tot de natuurlijke grenzen van het oppervlak. Gebruik dit om na een trim het volledige oppervlak terug te krijgen.",
"help.third_party": "Licenties van derden",
"help.timeline.compute_all": "Bouwt elk kenmerk in de tijdlijn opnieuw op vanaf het begin. Gebruik dit om het model te vernieuwen en te zien welke kenmerken mislukken.",
"help.timeline.delete": "Verwijdert de geselecteerde kenmerken uit de tijdlijn; als een schets wordt verwijderd, gaan ook de kenmerken eruit die erop zijn gebouwd. Gebruik dit om een stap te verwijderen die niet meer gewenst is.",
"help.timeline.dependents": "Toont de kenmerken die met een kenmerk zouden worden verwijderd, en die zonder dat kenmerk zouden mislukken. Gebruik dit voordat je een kenmerk verwijdert of wijzigt.",
"help.timeline.play": "Speel de resterende kenmerken één voor één opnieuw af, met een pauze van een halve seconde na elke herberekening. Voer deze opdracht opnieuw uit of druk op Escape om te stoppen; Naar het einde springt direct.",
"help.view.apply": "Draait de weergave naar een standaardrichting zoals voor, boven of iso, of naar een opgeslagen benoemde weergave. Gebruik dit om het model vanuit een vaste hoek te bekijken.",
"help.view.delete": "Verwijdert een opgeslagen benoemde weergave. Het model wordt niet gewijzigd.",
"help.view.fit": "Zoomt en pant zodat het hele model, of de selectie, de weergave vult. Gebruik dit wanneer het model uit beeld is geraakt.",
"help.view.grid": "Toont of verbergt het raster in de viewport. Gebruik dit als hulp voor maat en oriëntatie tijdens het modelleren.",
"help.view.ground_shadow": "Toont of verbergt de schaduw van het model op de grond. Gebruik dit om hoogte en positie gemakkelijker te beoordelen.",
"help.view.home": "Draait de weergave terug naar de beginweergave en past het model in beeld. Gebruik dit om snel terug te keren naar een bekende weergave.",
"help.view.list": "Toont de benoemde weergaven die in het ontwerp zijn opgeslagen. Gebruik dit om een eerder opgeslagen weergave te vinden.",
"help.view.navigate": "Draait, pant of zoomt de weergave in stappen, zoals een kwartslag naar links. Gebruik dit om de camera nauwkeurig te bewegen in plaats van te slepen.",
"help.view.navigation_bar": "Toont of verbergt de navigatiebalk onderaan de viewport. Verberg hem voor meer ruimte, toon hem om de weergavegereedschappen met de muis te bereiken.",
"help.view.rename": "Geeft een opgeslagen benoemde weergave een nieuwe naam. De weergave zelf blijft hetzelfde.",
"help.view.save": "Slaat de huidige camerapositie op als benoemde weergave in het ontwerp. Gebruik dit om later naar dezelfde hoek terug te keren, bijvoorbeeld voor schermafbeeldingen.",
"help.view.spin": "Laat de weergave continu om het model draaien tot de volgende klik of toets. Gebruik dit om een model van alle kanten te presenteren.",
"help.view.tool": "Vergrendelt een cameragereedschap, roteren, pannen of zoomen, zodat slepen met de linkermuisknop de weergave beweegt tot je het uitschakelt. Gebruik dit op een trackpad of zonder middelste muisknop.",
"help.view.visual_style": "Wijzigt hoe het model wordt getekend: gearceerd met of zonder randen, draadmodel, of met verborgen randen. Gebruik draadmodel om naar binnen te kijken en gearceerd voor een nette weergave.",
"history.sketch_under_constrained": "Onderbeperkt ({count} vrijheidsgraden)",
"history.sketch_under_constrained_one": "Onderbeperkt ({count} vrijheidsgraad)",
"hole_presets.confirm_delete": "Verwijderen bevestigen",
@@ -1615,6 +1883,10 @@
"material.selection.mixed": "Verschillende materialen",
"measure.at": "Bij",
"measure.item": "Item {number}",
"measure.quick_copied": "Meting gekopieerd",
"measure.quick_copy": "Klik om de meting te kopiëren",
"measure.quick_edges": "{count} randen",
"measure.quick_faces": "{count} vlakken",
"messages.ago_h": "{n} u geleden",
"messages.ago_min": "{n} min geleden",
"messages.ago_s": "{n} s geleden",
@@ -1648,6 +1920,7 @@
"nav.hfss.help": "Alt+linkerknop slepen pant, Shift+Alt+linkerknop zoomt, Ctrl+linkerknop slepen op lege ruimte draait",
"nav.inventor.help": "Middenknop slepen pant, Shift+middenknop draait, Ctrl+middenknop zoomt, rechterknop slepen draait",
"nav.maya.help": "Alt+linkerknop slepen draait, Alt+middenknop pant, Alt+rechterknop zoomt; middenknop slepen pant ook",
"nav.nx.help": "Middenknop slepen draait, Shift+middenknop pant (middelste + rechterknop in NX), Ctrl+middenknop zoomt (middelste + linkerknop in NX); rechterknop slepen heeft geen invloed op de camera",
"nav.openscad.help": "Linkerknop slepen op lege ruimte draait, Shift+linkerknop slepen selecteert met een kader, schetsgeometrie slepen bewerkt die; rechter- of middenknop slepen pant, Shift+rechter- of Shift+middenknop slepen zoomt",
"nav.perspective.sketch": "Schetsbewerking gebruikt een orthografische weergave. Rond de schets af om naar perspectief te schakelen.",
"nav.right_drag_orbits.help": "Uit: rechts slepen laat de camera met rust en de rechtermuisknop opent alleen het contextmenu. Het kiezen van de SolidWorks-muistoewijzing schakelt dit uit.",
@@ -1767,6 +2040,11 @@
"not a move": "geen verplaatsing",
"not a number": "geen getal",
"open a sketch first": "open eerst een schets",
"parameters.apply_live": "Elke wijziging toepassen zodra je het veld verlaat",
"parameters.apply_live_tip": "Uit: wijzigingen wachten tot Toepassen of OK, daarna wordt het ontwerp één keer voor alle wijzigingen opnieuw opgebouwd. Annuleren of Escape verwerpt ze.",
"parameters.held": "{count} wijzigingen wachten op Toepassen",
"parameters.held_hint": "Bewerk expressies en eenheden. Wijzigingen wachten op Toepassen of OK.",
"parameters.held_one": "1 wijziging wacht op Toepassen",
"parts.automatic_name": "automatisch",
"parts.dimension.across_flats": "Sleutelwijdte",
"parts.dimension.bore": "Boring",
@@ -1864,6 +2142,8 @@
"prefs.ctrl_cmd": "Ctrl / Cmd",
"prefs.curved_surfaces": "Gebogen oppervlakken",
"prefs.curves": "Gebogen oppervlakken",
"prefs.dark_parts_shading": "Vorm van donkere onderdelen behouden",
"prefs.dark_parts_shading_help": "Schaduw de weergave in lineair licht met een zachte hemelvulling, zodat donkere vlakken een verloop houden in plaats van zwart te worden",
"prefs.dead_zone_note": "De gearceerde band is de dode zone: beweging daarbinnen wordt genegeerd.",
"prefs.default": "standaard",
"prefs.design": "Standaardwaarden voor ontwerpen",
@@ -1878,6 +2158,8 @@
"prefs.edges": "Randen en schaduwing",
"prefs.extend": "Verlengen",
"prefs.extra_navigation": "Ctrl+linkerknop slepen op lege ruimte roteert; houd Space ingedrukt om te pannen.",
"prefs.extrude_view_isometric": "De weergave isometrisch draaien wanneer Extruderen opent",
"prefs.extrude_view_return": "Terug naar de eerdere weergave wanneer Extruderen sluit",
"prefs.follows_os": "Volgt het besturingssysteem",
"prefs.font": "Lettertype",
"prefs.font_fallback": "Tekens die het gekozen lettertype mist, vallen terug op het ingebouwde lettertype, zodat geen enkel label een leeg vakje toont.",
@@ -1893,6 +2175,7 @@
"prefs.graphics_card_auto": "Automatisch",
"prefs.graphics_card_missing": "De opgeslagen grafische kaart is niet beschikbaar; Automatisch wordt gebruikt.",
"prefs.graphics_card_restart": "Wordt van kracht na het opnieuw starten van SolidCraft. WGPU_ADAPTER_NAME heeft voorrang op deze keuze.",
"prefs.graphics_card_unused": "De opgeslagen grafische kaart is niet gebruikt voor dit venster; de kaart die wel in gebruik is, staat in Help › Over SolidCraft en in de statusbalk. Probeer Automatisch, of stel WGPU_ADAPTER_NAME in op een uniek deel van de kaartnaam.",
"prefs.graphics_note": "Wissel snelheid in voor een gladder beeld. Elke keuze toont het effect op een voorbeeld.",
"prefs.graphics_presets_note": "Voorinstellingen stellen de onderstaande keuzes samen in.",
"prefs.hide_constraint_glyphs_zoomed_out": "Beperkingssymbolen verbergen bij uitzoomen",
@@ -1907,6 +2190,8 @@
"prefs.history_sketches_note": "Als Schetsen op Onder hun kenmerk staat, toont de geschiedenis links elke schets een niveau ingesprongen, onder het eerste kenmerk dat erop is gebouwd, zodra die breed genoeg is voor namen. De tijdlijn onderaan houdt altijd de aanmaakvolgorde aan.",
"prefs.history_sketches_under_feature": "Onder hun kenmerk",
"prefs.hold_stop_snapping": "Ingedrukt houden om snappen te stoppen",
"prefs.home_fit_size": "Grootte bij Beginweergave en Passend",
"prefs.home_fit_size_note": "Hoeveel van de weergave het model vult wanneer Beginweergave, Passend, een geopend ontwerp of een wijziging van de navigatorweergave het model in beeld brengt, ongeacht of de instelling hieronder aan staat. 100 %: vult de weergave tussen de panelen, het kompas en de navigatiebalk.",
"prefs.icons_only": "Alleen pictogrammen",
"prefs.imported_file": "Geïmporteerd bestand",
"prefs.in_browser": "In de browser",
@@ -1915,13 +2200,20 @@
"prefs.interface_language": "Interfacetaal",
"prefs.interface_note": "Hoe SolidCraft eruitziet en waar de onderdelen staan.",
"prefs.interval_minutes": "{n} min",
"prefs.invert_navigator_arrows": "De rotatiepijlen van de weergavekubus omkeren",
"prefs.invert_navigator_arrows_note": "De pijlen rond de kubus laten de camera roteren in de richting waarin ze wijzen, zoals in Fusion en Inventor: de pijl links wijst naar rechts en zwaait de camera naar rechts. Uit: een pijl draait de kubus naar de kant waar hij staat, dus de linkerpijl zwaait de camera naar links. De gebogen rolpijlen worden hierdoor niet beïnvloed.",
"prefs.keep_work_on_tab_switch": "Dialoogvensters en gereedschappen open houden bij het wisselen van ontwerp",
"prefs.keep_work_on_tab_switch_note": "Elk ontwerptabblad behoudt zijn geopende dialoogvenster of gereedschap, met wat je erin hebt gekozen en getypt, en zijn lint-tabblad. Ze zijn er weer als je terugkeert naar het ontwerp. Uit: wisselen van ontwerp breekt ze af en toont het tabblad Model.",
"prefs.labels": "Labels",
"prefs.language_system": "Systeem",
"prefs.layout": "Indeling",
"prefs.layout_note": "Compact plaatst panelen vast aan de vensterranden. Doorschijnendheid van de browser is beschikbaar in Zwevend. Wijzig de kant van de Assistent op de pagina Assistent.",
"prefs.left": "Links",
"prefs.left_click": "Linksklik",
"prefs.line_drag_draws_one": "Indrukken en slepen tekent één lijn",
"prefs.line_drag_draws_one_note": "In het lijngereedschap tekent indrukken, slepen en loslaten één lijn van het indrukpunt tot het loslaatpunt, en daar eindigt de lijn. Klikken tekent nog steeds een keten. Uit: slepen zet, net als een klik, een punt waar losgelaten wordt.",
"prefs.line_hover_tangent_arc": "Op het laatste punt van een lijn stilstaan om naar een tangentiële boog te wisselen",
"prefs.line_hover_tangent_arc_note": "Als je in het lijngereedschap een segment hebt getekend, beweeg je weg van het laatste punt van de keten, kom je terug en houd je de aanwijzer er stil: de volgende klik beëindigt een tangentiële boog, en hetzelfde gebaar schakelt terug naar lijnen. Uit: daar stilstaan doet niets.",
"prefs.linked_designs": "Gekoppelde ontwerpen",
"prefs.live_input": "Live invoer",
"prefs.live_preview": "Live voorbeeld",
@@ -1945,6 +2237,8 @@
"prefs.mouse_mapping": "Muistoewijzing",
"prefs.navigation": "Navigatie",
"prefs.navigation_note": "Hoe de muis, het trackpad en de 3D-muis de weergave verplaatsen.",
"prefs.navigator_fit": "Het model passend in beeld brengen na een wijziging van de navigatorweergave",
"prefs.navigator_fit_note": "Een vlak, hoek of pijl van de weergavekubus, of een as van de gizmo, kijkt ook naar het midden van het model, vanaf de ene afstand waarop het van alle kanten in beeld past (de omsluitende bol). Beginweergave gebruikt dezelfde zoom en hetzelfde middelpunt zolang dit aan staat, zodat weergaven die je daarna kiest alleen draaien. Uit: de weergave draait ter plaatse en behoudt het richtpunt en de zoom.",
"prefs.network_host_remove": "Verwijderen",
"prefs.network_locations": "Netwerklocaties in ontwerpen toestaan",
"prefs.network_locations_note": "Uit: gekoppelde bestanden van een ontwerp op een andere computer (\\\\server\\share) worden alleen geopend vanaf de servers in deze lijst, of nadat je er een toestaat wanneer erom wordt gevraagd.",
@@ -1957,6 +2251,8 @@
"prefs.origin_plane_names": "Namen van oorsprongsvlakken",
"prefs.origin_plane_names_note": "Namen die worden getoond in de browser, dialoogvensters en lijsten. {top} is XY, {front} is XZ en {right} is YZ, met Z omhoog. Opdrachten, scripts en opgeslagen ontwerpen blijven XY, XZ en YZ gebruiken.",
"prefs.overall_speed": "Totale snelheid",
"prefs.parameter_list_rows": "Rijen in de parameterlijst",
"prefs.parameter_list_rows_tip": "De pijl-omlaag in een leeg waardeveld toont de parameters, favorieten eerst, tot dit aantal. Minder houdt de lijst licht in een groot ontwerp.",
"prefs.persistent_ribbon_pressed": "Actieve lintopdrachten markeren",
"prefs.persistent_ribbon_pressed_help": "Lintopdrachten markeren zolang hun effect actief is. Zet dit uit om het vorige neutrale uiterlijk en de vorige opdrachthulp te behouden.",
"prefs.perspective_fov": "Gezichtsveld",
@@ -1986,9 +2282,13 @@
"prefs.quality_fastest": "snelste",
"prefs.quality_slowest": "langzaamste",
"prefs.quality_smoother": "gladder",
"prefs.quick_measure": "Snelle meting in de hoek van de weergave",
"prefs.quick_measure_note": "De grootte van de selectie rechtsonder in de weergave: de lengte van een rand, of Ø en R van een ronde rand, de oppervlakte van een vlak, de positie van een punt, de afstand en hoek van twee items, het totaal van meerdere randen of vlakken. Een klik kopieert hem.",
"prefs.render_previous_geometry_budget": "Vorig geometriebudget voor het rendervoorbeeld gebruiken",
"prefs.render_previous_geometry_budget_help": "De vorige vaste geometrielimiet herstellen (512 MiB op 64-bits desktops, elders 128 MiB) in plaats van het budget op basis van het apparaat.",
"prefs.reports_saved": "{n} opgeslagen",
"prefs.ribbon_click_ends_tool": "Klikken op de knop van het actieve gereedschap beëindigt het",
"prefs.ribbon_click_ends_tool_note": "Een klik op de verlichte lintknop van het schetsgereedschap dat in gebruik is, beëindigt het gereedschap, zodat klikken in de weergave weer selecteert. Uit: de klik start het gereedschap opnieuw.",
"prefs.ribbon_reveal": "Zoekresultaten in het lint tonen",
"prefs.ribbon_reveal_note": "Als je de aanwijzer op een resultaat in Opdrachten zoeken houdt, zie je waar de opdracht in het lint staat: het tabblad, de knop of de rij in de vervolgkeuzelijst van een paneel. Een opdracht die vanuit de zoekfunctie is gestart, knippert daar, en een actieve opdracht uit een vervolgkeuzelijst markeert het paneel.",
"prefs.right_click": "Rechtsklik",
@@ -2018,6 +2318,8 @@
"prefs.sketch_exit_view.previous": "Terug naar de vorige weergave",
"prefs.sketch_exit_view.unless_rotated": "Terug, tenzij geroteerd",
"prefs.sketch_exit_view_note": "Waar de weergave naartoe gaat na Schets afronden, Annuleren of een dubbele Esc.",
"prefs.sketch_face_activates_part": "Schetsen op het vlak van een onderdeel maakt dat onderdeel actief",
"prefs.sketch_face_activates_part_note": "Een schets die op een vlak van het lichaam van een andere component wordt gestart, activeert eerst die component, zodat de schets erbij hoort en in de browser bij dat onderdeel blijft. Het onderdeel blijft daarna actief. Uit: de schets hoort bij de actieve component.",
"prefs.sketch_open_look_at": "Naar een schets toe draaien wanneer die wordt geopend",
"prefs.sketch_open_look_at_note": "Uit: een schets maken of bewerken laat de weergave zoals die is. Kijken naar richt de weergave op de schets wanneer je dat wilt.",
"prefs.sketch_recent_snap": "Automatisch snappen op recente cirkelmiddens en middelpunten",
@@ -2031,6 +2333,8 @@
"prefs.sketch_tab_always_note": "De Schets-tab blijft in het lint staan, direct na Model, ook als er geen schets open is. Zijn tekentools beginnen dan een schets op het geselecteerde vlak, of op het vlak dat je daarna kiest, met de tool daarin klaar voor gebruik.",
"prefs.sketch_tracking_guides": "Uitlijnhulplijnen voor midden en middelpunt",
"prefs.sketch_tracking_guides_note": "Wijs naar het midden van een cirkel of het middelpunt van een rechte rand en beweeg dan horizontaal of verticaal om een tijdelijke gestippelde hulplijn te tonen.",
"prefs.sketch_tracking_points": "Uitlijnhulplijnen vanaf eindpunten en hoeken tijdens het tekenen",
"prefs.sketch_tracking_points_note": "Wanneer een tekengereedschap op een punt wacht, toont het aanwijzen van het uiteinde van een lijn of boog, een hoek van een rechthoek of een los punt dezelfde tijdelijke stippellijn als bij een middelpunt of midden. Uit: alleen middelpunten en middens.",
"prefs.sketching": "Schetsen",
"prefs.snap_drawing_note": "Tijdens het tekenen of slepen van een schetspunt.",
"prefs.source": "Bron",
@@ -2047,6 +2351,24 @@
"prefs.status_error": "Fout",
"prefs.status_selected": "Geselecteerd",
"prefs.status_warning": "Waarschuwing",
"prefs.structure.appearance": "Uiterlijk",
"prefs.structure.appearance_note": "Kleuren, tekst en toegankelijkheid.",
"prefs.structure.in_profile": "In profiel",
"prefs.structure.layout": "Indeling",
"prefs.structure.layout_note": "Waar de onderdelen van het venster staan.",
"prefs.structure.look": "Vormgeving",
"prefs.structure.measure_pointer": "Meten en aanwijzer",
"prefs.structure.mouse3d": "3D-muis",
"prefs.structure.mouse3d_note": "SpaceMouse en SpaceNavigator.",
"prefs.structure.navigation_note": "Muis en trackpad. De 3D-muis heeft een eigen pagina.",
"prefs.structure.profile": "Profiel",
"prefs.structure.profile_edited": "Gewijzigd sinds opslaan",
"prefs.structure.profile_hover": "Opgeslagen in instellingenprofielen",
"prefs.structure.scale_percent": "{percent}%",
"prefs.structure.sketch": "Schets",
"prefs.structure.tools": "Gereedschappen",
"prefs.structure.tools_note": "Hoe modelleergereedschappen zich gedragen.",
"prefs.structure.work": "Werk",
"prefs.supersampling_brief": "Tekent de weergave groter en filtert die omlaag: zeer scherp, maar zwaarder.",
"prefs.tab_accent_note": "De accentkleur volgt het actieve tabblad",
"prefs.theme_file": "themabestand",
@@ -2058,6 +2380,16 @@
"prefs.theme_follow_off": "Uit",
"prefs.theme_follow_stop": "Volgen stoppen",
"prefs.theme_import_hint": "Klik om een themabestand te kiezen, sleep er een hierheen of druk op Ctrl+V (Cmd+V op een Mac) met een gekopieerd thema",
"prefs.theme_option_opacity": "Dekking",
"prefs.theme_option_opacity_help": "Pas de dekking van zwevende panelen aan. Een minimum voor leesbaarheid beschermt tekst boven de kleuren van de viewport.",
"prefs.theme_option_tab_colours": "Tabbladkleuren",
"prefs.theme_option_tab_colours_help": "Gebruik de paneel- en viewportkleuren van dit thema voor elk tabblad van het lint.",
"prefs.theme_option_tab_fade_ms": "Tabbladovergang",
"prefs.theme_option_tab_fade_ms_help": "Laat paneel- en viewportkleuren vervagen bij het wisselen van tabblad. Nul schakelt direct om.",
"prefs.theme_options_badge": "Opties",
"prefs.theme_options_more": "Meer · {count}",
"prefs.theme_options_reset": "Herstellen",
"prefs.theme_options_unavailable": "Niet beschikbaar op dit apparaat",
"prefs.theme_paste": "Thema plakken",
"prefs.theme_paste_none": "Het klembord bevat geen SolidCraft-thema",
"prefs.timeline_half_hour": "−30 min",
@@ -2079,6 +2411,8 @@
"prefs.under_cursor": "Onder de cursor",
"prefs.units_precision": "Eenheden en precisie",
"prefs.updates": "Updates",
"prefs.value_boxes_in_view": "Waarden naast hun grepen in de weergave tonen",
"prefs.value_boxes_in_view_tip": "De waarde van een opdracht (Afstand, Straal…) in een vak naast de greep, boven het model. Uit: je typt de waarde in het opdrachtvenster, dat na een keuze het toetsenbord overneemt, en niets bedekt het model.",
"prefs.view": "Weergavegedrag",
"prefs.view_confirm_corner": "OK en Annuleren in de hoek van de weergave",
"prefs.view_confirm_corner_note": "Zolang een dialoogvenster of een schets open is, doen een vinkje en een kruisje rechtsboven in de weergave hetzelfde als OK en Annuleren van het dialoogvenster, of ze ronden de schets af of annuleren die. De weergavenavigator schuift daaronder naar beneden.",
@@ -2088,6 +2422,12 @@
"prefs.viewport_background": "Achtergrond",
"prefs.viewport_background_colour": "Kleur",
"prefs.viewport_background_theme": "Verloop van het thema",
"prefs.viewport_section_status": "Doorsnedestatus van de viewport tonen",
"prefs.viewport_section_status_help": "Toon de doorsnede-instelling in de viewport. Escape en de actieve lintknop schakelen hem uit. Schakel uit om de vorige doorsnedebediening te behouden.",
"prefs.viewport_status_details": "Live details van de viewport",
"prefs.viewport_status_details_help": "Bewerk actieve analyse- en doorsnede-instellingen in standaarddetailkaarten. Schakel uit om de alleen-lezen analysetoetsen en het dialoogvenster Doorsnede te herstellen.",
"prefs.viewport_status_summary": "Statusitems van de viewport samenvouwen",
"prefs.viewport_status_summary_help": "Vouw drie of meer statusitems van de viewport samen tot één overzichtsbadge. Schakel uit om elk item in de volledige rij te houden.",
"prefs.wheel": "Wiel",
"prefs.wheel_trackpad": "Wiel en trackpad",
"prefs.workspace": "Werkruimte",
@@ -2966,7 +3306,9 @@
"render.output_ready": "Gereed om te renderen",
"render.output_run_check": "Controle uitvoeren",
"render.output_size_limit": "{method}: tot {dimension} px per zijde en {pixels} pixels. Grootste passende formaat: {width} × {height}.",
"render.output_size_method_profile": "Kies voor het renderen van {width} × {height} de methode {method} met het CPU-resourceprofiel {profile}, of een kleiner formaat.",
"render.output_size_ok": "Grootte OK · {width} × {height} px",
"render.output_size_profile": "Kies voor het renderen van {width} × {height} het CPU-resourceprofiel {profile}, of een kleiner formaat.",
"render.output_swap_orientation": "Breedte en hoogte omwisselen",
"render.output_tools_inspector": "Bewerk grootte en bestandsindeling in de inspecteur Uitvoer.",
"render.output_view_image": "Afbeelding bekijken",
@@ -3179,6 +3521,7 @@
"render.size_custom": "Aangepast…",
"render.size_full_hd": "Full HD",
"render.size_hd": "HD",
"render.size_needs_profile": "{size} · vereist {profile}",
"render.size_presets": "Groottevoorinstellingen",
"render.size_presets_pending": "Komt met de Uitvoer-editor",
"render.size_preview": "Voorbeeld",
@@ -3466,6 +3809,24 @@
"sheet.flange_type_contour": "Contour",
"sheet.flange_type_edge": "Rand",
"sheet.no_body": "er is geen plaatwerklichaam: begin er een met Flens > Basis, of zet een plaat om in plaatwerk met Converteren naar plaatwerk (kies het grote platte vlak ervan)",
"sheet.personal_rules.confirm_delete": "Verwijderen bevestigen",
"sheet.personal_rules.delete": "Verwijderen",
"sheet.personal_rules.delete_prompt": "Deze persoonlijke regel verwijderen? Regels die al in ontwerpen staan, blijven ongewijzigd.",
"sheet.personal_rules.full": "De persoonlijke bibliotheek bevat al 64 regels.",
"sheet.personal_rules.invalid_name": "Voer een korte naam in zonder regeleinden of stuurtekens.",
"sheet.personal_rules.invalid_values": "Vul de waarden van de regel aan: elke waarde moet in dit ontwerp uitwerkbaar zijn, met een positieve dikte en een K-factor van 0 tot 1.",
"sheet.personal_rules.missing": "De geselecteerde persoonlijke regel is niet meer beschikbaar.",
"sheet.personal_rules.name": "Regelnaam",
"sheet.personal_rules.name_exists": "Er bestaat al een persoonlijke regel met deze naam. Gebruik een andere naam.",
"sheet.personal_rules.name_hint": "Een unieke naam",
"sheet.personal_rules.overwrite": "Wijzigingen in geselecteerde persoonlijke regel opslaan",
"sheet.personal_rules.rename": "Hernoemen",
"sheet.personal_rules.rule": "Persoonlijke regel",
"sheet.personal_rules.save": "Als nieuw opslaan",
"sheet.personal_rules.scope": "Opgeslagen in je profiel voor alle ontwerpen.",
"sheet.personal_rules.select": "Selecteer een regel",
"sheet.personal_rules.title": "Persoonlijke regels",
"sheet.personal_rules.unsupported": "Deze regel bevat waarden die deze versie niet kan gebruiken.",
"shortcut.json_error": "parameters moeten JSON zijn: {error}",
"shortcut.no_command": "geen opdracht `{id}`; de tekst vóór de JSON moet een opdracht-id zijn",
"shortcut.pin": "Bovenaan het S-vak vastpinnen",
@@ -3502,8 +3863,10 @@
"sketch_text.align_right": "Rechts",
"sketch_text.bold": "Vet",
"sketch_text.builtin_font": "{family} (ingebouwd)",
"sketch_text.formula": "Begin met = om de woorden uit parameters op te bouwen: ='W' + number(Width)",
"sketch_text.italic": "Cursief",
"sketch_text.loading_fonts": "Geïnstalleerde lettertypen zoeken…",
"sketch_text.no_bold": "Het ingebouwde lettertype heeft geen vette variant: kies een geïnstalleerd lettertype",
"sketch_text.on_path": "De tekst volgt zijn pad: de curve plaatst hem",
"sketch_text.path_clear": "De tekst van zijn curve halen",
"sketch_text.path_hint": "Een curve van de schets die de tekst volgt: klik hier en daarna op de curve",
@@ -3642,6 +4005,8 @@
"ui.3d_mouse_section": "3D-muis",
"ui.3d_mouse_show_in_view": "De 3D-muis tonen in de 3D-weergave",
"ui.3d_mouse_show_in_view_tip": "Een afbeelding van je 3D-muis in de linkerbenedenhoek, die meebeweegt als jij de muis beweegt.",
"ui.3d_mouse_sketch_orbit": "Schetsen roteren met de 3D-muis",
"ui.3d_mouse_sketch_orbit_tip": "De 3D-muis roteert de weergave ook terwijl een schets open is en recht van voren wordt bekeken, zoals de muis dat kan. Uit: hij pant en zoomt de schets totdat je de weergave kantelt.",
"ui.3d_mouse_skip": "Mijn apparaat kan dit niet",
"ui.3d_mouse_skip_tip": "Slaat deze beweging in beide richtingen over, en de kalibratie laat haar weg.",
"ui.3d_mouse_speed": "Snelheid van 3D-muis",
@@ -3710,6 +4075,7 @@
"ui.agent_chat_auth_terminal": "Voer dit uit in een terminal en druk daarna opnieuw op Verbinden:",
"ui.agent_chat_auth_title": "Aanmelden bij de agent",
"ui.agent_chat_cancel": "Annuleren",
"ui.agent_chat_cannot_start": "Geïnstalleerd, maar start niet: {error}",
"ui.agent_chat_changes": "Wijzigingen: {n}, één stap ongedaan maken",
"ui.agent_chat_changes_n": "{n} wijzigingen",
"ui.agent_chat_changes_of": "{n}/{limit} wijzigingen",
@@ -3802,9 +4168,12 @@
"ui.agent_chat_queued_stopped": "In wachtrij (gestopt, niet verzonden)",
"ui.agent_chat_refresh": "Vernieuwen",
"ui.agent_chat_refused": "Niet toegestaan voor de agent: {reason}",
"ui.agent_chat_reinstall": "{agent} is geïnstalleerd ({program}), maar is niet gestart toen SolidCraft het controleerde: {error}\nDe installatie is mogelijk onvolledig, of gemaakt voor een ander type computer. Installeer opnieuw met `{install}`, controleer in een terminal of de versie wordt afgedrukt en druk dan op Vernieuwen.",
"ui.agent_chat_remove": "Uit de wachtrij verwijderen",
"ui.agent_chat_remove_file": "Van dit bericht verwijderen",
"ui.agent_chat_remove_imported": "Van dit bericht verwijderen; het onderdeel blijft in het ontwerp (Ongedaan maken verwijdert het)",
"ui.agent_chat_reply_cut_off": "Het antwoord bereikte zijn lengtelimiet voordat het klaar was en is mogelijk onvolledig. Vraag de agent om door te gaan, of om een korter antwoord.",
"ui.agent_chat_reply_declined": "Het model weigerde dit bericht te beantwoorden.",
"ui.agent_chat_retry": "Opnieuw proberen",
"ui.agent_chat_right": "Rechts",
"ui.agent_chat_save": "Opslaan",
@@ -3863,12 +4232,17 @@
"ui.ai_copy_suffix": "kopie",
"ui.ai_custom_url": "Aangepaste URL",
"ui.ai_default": "Standaard",
"ui.ai_edit": "Bewerken",
"ui.ai_edit_agent_title": "Agent bewerken",
"ui.ai_edit_gone": "Deze agent is verwijderd, dus er valt niets op te slaan.",
"ui.ai_edit_tip": "Wijzig de naam, opdracht of het eindpunt van deze agent. Een opgeslagen sleutel blijft verborgen.",
"ui.ai_http_busy": "het eindpunt is bezet of boven zijn limiet; probeer het later opnieuw",
"ui.ai_http_key": "het eindpunt weigerde de sleutel: controleer deze in Voorkeuren > AI",
"ui.ai_http_not_found": "geen eindpunt of model gevonden: controleer de basis-URL en de modelnaam",
"ui.ai_http_too_large": "het gesprek is te groot voor dit endpoint; begin een nieuwe chat",
"ui.ai_key": "API-sleutel",
"ui.ai_key_hint": "optioneel; bewaard in de sleutelhanger van het systeem",
"ui.ai_key_keep_hint": "laat leeg om de opgeslagen sleutel te behouden",
"ui.ai_key_needs_https": "Een sleutel wordt alleen via HTTPS of naar deze computer verzonden.",
"ui.ai_key_note": "Bewaard in de sleutelhanger van het systeem, nooit in de instellingen van SolidCraft. Laat leeg voor een lokale server.",
"ui.ai_keychain_error": "De sleutelhanger van het systeem weigerde: {error}",
@@ -3895,11 +4269,15 @@
"ui.ai_permissions": "Machtigingen",
"ui.ai_preset": "Voorinstelling",
"ui.ai_protocol": "Protocol",
"ui.ai_reasoning_effort": "Redeneerinspanning",
"ui.ai_reasoning_effort_field_hint": "leeg = standaard van de provider",
"ui.ai_reasoning_effort_hint": "Optioneel. Wordt als `reasoning_effort` naar het eindpunt gestuurd; toegestane waarden verschillen per provider (bijvoorbeeld `low`, `high` of `max`). Een waarde die je hier instelt, wordt nooit door SolidCraft vervangen. Laat het veld leeg om niets te sturen en de standaard van de provider te behouden.",
"ui.ai_remove": "Verwijderen",
"ui.ai_request_timed_out": "Het model deed er langer dan {seconds} s over. Je kunt de time-out voor aanvragen van dit eindpunt verhogen in Voorkeuren › Assistent.",
"ui.ai_request_timeout": "Time-out voor aanvragen",
"ui.ai_request_timeout_hint": "Hoelang één modelaanvraag aan dit eindpunt mag duren, van 30 s tot een uur. Verhoog dit voor een traag lokaal model.",
"ui.ai_reset": "Herstellen",
"ui.ai_save": "Opslaan",
"ui.ai_settings": "AI-instellingen…",
"ui.ai_show_features": "AI-functies tonen",
"ui.ai_show_features_note": "De agentchat: een paneel waarin een codeeragent die u al gebruikt, of een modeleindpunt naar keuze, aan het geopende ontwerp werkt. Uit: geen AI-knop, sneltoets, menu-item of paneel, en er wordt niets gezocht of gestart.",
@@ -4059,6 +4437,7 @@
"ui.dark": "Donker",
"ui.default_modelling_orientation": "Standaard modelleeroriëntatie",
"ui.delete": "Verwijderen",
"ui.delete_select_first": "Selecteer eerst wat je wilt verwijderen: kenmerken, lichamen, componenten of schetsgeometrie",
"ui.depth": "Diepte",
"ui.design": "Ontwerp",
"ui.design_properties.author": "Auteur",
@@ -4073,6 +4452,40 @@
"ui.design_properties.project": "Project",
"ui.design_properties.revision": "Revisie",
"ui.design_saved": "Opgeslagen in {path}",
"ui.details_access_caption": "Vlakken tonen of een gereedschap ze vanuit de gekozen richting kan bereiken.",
"ui.details_angle": "Hoek",
"ui.details_continuity_caption": "Bewerk de geselecteerde naad. Andere naden behouden hun eigen instellingen.",
"ui.details_continuity_stale": "Eerdere geometrie: voer de analyse opnieuw uit om deze naad te bewerken of in beeld te brengen.",
"ui.details_copy_list": "Lijst kopiëren",
"ui.details_curvature": "Krommingstolerantie",
"ui.details_curvature_caption": "Vlakken worden gekleurd op hun lokale krommingsstraal.",
"ui.details_direction": "Gereedschapsrichting",
"ui.details_draft_caption": "Vlakken worden gekleurd op hun hoek ten opzichte van de trekrichting.",
"ui.details_edit_seam": "Naad bewerken",
"ui.details_fixture": "Voorbeeldcomponent — alleen voorbeeldgegevens",
"ui.details_fixture_caption": "Voorbeeldcomponent met illustratieve waarden; dit is geen modelresultaat.",
"ui.details_fixture_problem": "Voorbeeldbevinding met een probleem",
"ui.details_fixture_readout": "Voorbeeld van een gemeten waarde",
"ui.details_flip": "Omdraaien",
"ui.details_gap": "Opening",
"ui.details_hatch": "Snijvlakken arceren",
"ui.details_jump": "Krommingssprong",
"ui.details_key": "Legenda",
"ui.details_offset": "Offset",
"ui.details_plane": "Vlak",
"ui.details_pull": "Trekrichting",
"ui.details_radius": "Straal",
"ui.details_readout": "Uitlezing",
"ui.details_samples": "Samples",
"ui.details_seam": "{body} · Rand {edge}",
"ui.details_settings": "Instellingen",
"ui.details_sharp_gap": "Scherp of opening",
"ui.details_show_all": "Alle {count} tonen",
"ui.details_smooth": "Glad",
"ui.details_stripes": "Strepen",
"ui.details_target": "Geometrie in beeld brengen",
"ui.details_worst_seams": "Slechtste naden",
"ui.details_zebra_caption": "Weerspiegelde strepen tonen hoe vloeiend vlakken op elkaar aansluiten.",
"ui.diameter": "Diameter",
"ui.dimension": "Maat",
"ui.direct_interaction": "Directe interactie",
@@ -4117,6 +4530,7 @@
"ui.edit_in_place_saved_elsewhere": "Het onderdeel is in een ander bestand opgeslagen; de samenstelling is nog steeds gekoppeld aan {name}",
"ui.edit_in_place_wait": "Wacht tot wat in het ontwerp wordt uitgevoerd klaar is",
"ui.edit_section_analysis": "Doorsnedeanalyse bewerken",
"ui.edit_sketch_empty": "Geen schetsen om te bewerken",
"ui.ellipse": "Ellips",
"ui.emboss_wrap_note": "Orthogonale lijnprofielen die raken aan één ondersteunde cilinder worden automatisch omwikkeld. Kies een wand om een doel te kiezen.",
"ui.end_radius": "Eindstraal",
@@ -4127,12 +4541,15 @@
"ui.equation_explicit": "Expliciet",
"ui.equation_form": "Vorm",
"ui.equation_note": "De variabele is een gewoon getal: sin(t) neemt het in radialen. Een resultaat zonder eenheid is in de eenheid van het ontwerp.",
"ui.equation_note_range": "De variabele is een lengte, net als haar bereik: combineer haar met lengteparameters en deel haar voor sin() door een lengte. Een resultaat zonder eenheid is in de eenheid van het ontwerp.",
"ui.equation_parametric": "Parametrisch",
"ui.equation_variable_unit": "Variabele heeft de eenheid van het bereik",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Equivalente straal",
"ui.expand": "Uitvouwen",
"ui.explode_needs_two_components": "Explosieweergave trekt componenten uit elkaar, dus het ontwerp heeft er twee of meer nodig (Nieuw component, Ontwerp invoegen of Componenten maken van lichamen)",
"ui.exportDxf": "DXF exporteren…",
"ui.export_ellipsis_keymap": "Exporteren…",
"ui.export_keymap_tip": "Sneltoetsen, favorieten van het S-vak en de werkbalk, als bestand",
@@ -4293,6 +4710,7 @@
"ui.insert_design.saved_file": "{name} heeft niet-opgeslagen wijzigingen, dus is het opgeslagen bestand ingevoegd. Sla het op en gebruik daarna Koppelingen bijwerken om de wijzigingen over te nemen.",
"ui.insert_design.unsaved": "Niet-opgeslagen wijzigingen",
"ui.inspect": "Inspecteren",
"ui.instances": "Instanties",
"ui.intersect": "Snijden",
"ui.isolate": "Isoleren",
"ui.join": "Samenvoegen",
@@ -4301,12 +4719,14 @@
"ui.joints": "Verbindingen",
"ui.keyboard_shortcuts": "Sneltoetsen",
"ui.language": "Taal",
"ui.lasso_select": "Lasso (sleep een lus uit de vrije hand: neemt alles wat er helemaal binnen valt)",
"ui.layout_compact": "Compact",
"ui.layout_floating": "Zwevend",
"ui.length": "Lengte",
"ui.length_decimals": "Lengtedecimalen",
"ui.light": "Licht",
"ui.line": "Lijn",
"ui.line_arc_hint": "Tangentiële boog: klik op het eindpunt van de boog. Blijf opnieuw stilstaan op het laatste punt voor lijnen; klik met rechts of druk op Esc om te voltooien",
"ui.link_copies": "Identieke kopieën koppelen",
"ui.link_copies_keep": "Behouden",
"ui.link_copies_link": "Koppelen",
@@ -4395,6 +4815,7 @@
"ui.part_size_shared": "Bouwt het onderdeel opnieuw op en vervangt alle toegevoegde kenmerken. Alle voorkomens van dit component worden bijgewerkt.",
"ui.paste": "Plakken",
"ui.path": "Pad",
"ui.pattern_object_type_tip": "Lichamen: massieve vormen, gekozen in de weergave of de Browser; elk wordt in zijn geheel gekopieerd.\nKenmerken: stappen van de Geschiedenis, zoals een extrusie of een gat, gekozen in de Geschiedenis of op een vlak dat ze hebben gemaakt; de stap wordt herhaald.\nEen schets is geen van beide: herhaal de curven ervan met het eigen Patroon of Spiegelen van de schets, of extrudeer de schets eerst.",
"ui.pattern_on_path": "Patroon op pad",
"ui.perforate_margin_default": "vanaf de diameter",
"ui.perforate_pitch": "Steek",
@@ -4421,12 +4842,17 @@
"ui.plugins_skipped": "{count} map(pen) kon(den) niet worden gelezen.",
"ui.plugins_version": "{version}",
"ui.point": "Punt",
"ui.point_cloud_add_filter": "Filter toevoegen…",
"ui.point_cloud_auto_range": "Automatisch bereik",
"ui.point_cloud_color_by": "Kleuren op basis van",
"ui.point_cloud_file_colors": "Bestandskleuren",
"ui.point_cloud_filter_by": "Filteren op",
"ui.point_cloud_height_high": "Hoogste",
"ui.point_cloud_height_low": "Laagste",
"ui.point_cloud_legend_filter": "Getoond en verborgen in de legenda hierboven",
"ui.point_cloud_no_file_colors": "Het bestand bevat geen kleuren",
"ui.point_cloud_pause": "Pauzeren",
"ui.point_cloud_play": "Afspelen",
"ui.point_cloud_single_color": "Eén kleur",
"ui.point_cloud_size": "Puntgrootte",
"ui.point_cloud_units": "Bestandseenheden",
@@ -4435,9 +4861,9 @@
"ui.polygon": "Veelhoek",
"ui.preferences": "Voorkeuren",
"ui.press_a_key": "druk op een toets…",
"ui.print_face_body_not_sent": "Het lichaam van dat vlak wordt niet verstuurd: voeg het eerst toe aan Lichamen",
"ui.print_face_cleared": "{body}: printvlak gewist",
"ui.print_face_input": "Printvlak",
"ui.print_face_one_body": "Een printvlak hoort bij één lichaam: stuur dat lichaam alleen om het te wijzigen",
"ui.print_face_pick": "Selecteer één vlak van een massief lichaam om het het printvlak te maken",
"ui.print_face_set": "{body}: printvlak ingesteld; Naar slicer sturen legt het lichaam erop",
"ui.profile": "Profiel",
@@ -4455,6 +4881,7 @@
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Meten…",
"ui.properties.measuring_bodies": "Meten… {done} van {total} lichamen",
"ui.properties.measuring_failed": "Het meten is gestopt voordat het klaar was.",
"ui.properties.principal_axis": "Hoofdas {number}",
"ui.properties.principal_moments": "Hoofdtraagheidsmomenten",
@@ -4522,6 +4949,7 @@
"ui.selectOther": "Overige selecteren…",
"ui.selectTangentChain": "Tangentiële keten selecteren",
"ui.select_all": "Alles selecteren",
"ui.select_components_by_face": "Componenten selecteren (een vlak kiest zijn component)",
"ui.selection": "Selectie",
"ui.selection_modifiers": "Selectiemodificatoren",
"ui.selection_shift_add_only": "Shift+klik voegt toe zonder te verwijderen",
@@ -4563,6 +4991,11 @@
"ui.sketch_intersect_selection_filter": "Selectiefilter",
"ui.sketch_modifiers": "Schetsmodificatoren",
"ui.sketch_project_geometry": "Geometrie",
"ui.sketch_report.all_constrained": "Alles is volledig beperkt.",
"ui.sketch_report.dof": "Vrijheidsgraden",
"ui.sketch_report.loose": "Niet volledig beperkt",
"ui.sketch_report.status": "Status",
"ui.sketch_report.title": "Schetsrapport",
"ui.sketch_scale": "Schetsschaal",
"ui.sketches": "Schetsen",
"ui.slice": "Slicen",
@@ -4658,12 +5091,15 @@
"ui.view_angles": "Weergavehoeken",
"ui.view_angles_convention": "Graden rond de verticale as. Gieren 0° is het vooraanzicht, 90° het linkeraanzicht, −90° het rechteraanzicht, 180° het achteraanzicht; kanteling 90° is het bovenaanzicht; een positieve rol draait het model met de klok mee.",
"ui.view_angles_help": "Toont de stamp-, gier- en rolhoek van de weergave in graden en de projectie ervan onder de oriëntatiegizmo. Klik op de uitlezing om exacte hoeken in te typen.",
"ui.view_angles_lock": "{axis} vergrendelen",
"ui.view_angles_ortho": "Ortho",
"ui.view_angles_persp": "Persp.",
"ui.view_angles_pitch": "Kanteling",
"ui.view_angles_readout": "Kanteling {pitch} · Gieren {yaw} · Rollen {roll}",
"ui.view_angles_roll": "Rollen",
"ui.view_angles_unlock": "{axis} ontgrendelen",
"ui.view_angles_yaw": "Gieren",
"ui.view_angles_zero": "{axis} instellen op 0°",
"ui.view_centre": "Weergavemidden",
"ui.viewport_status_clear": "{name} uitschakelen",
"ui.viewport_status_clear_hint": "{name} uitschakelen · Esc",
@@ -4672,7 +5108,14 @@
"ui.viewport_status_key": "Legenda tonen voor {name}",
"ui.viewport_status_minimum_radius": "Minimale straal",
"ui.viewport_status_pairs": "{count} paren",
"ui.viewport_status_section_hatch": "{setting} · arcering",
"ui.viewport_status_section_plane": "Huidig vlak",
"ui.viewport_status_section_tilted": "gekanteld · {offset}",
"ui.viewport_status_stripes": "{count} strepen",
"ui.viewport_status_summary_clear": "Alles uitschakelen",
"ui.viewport_status_summary_heading": "In deze weergave",
"ui.viewport_status_summary_label": "{name} en {count} andere items",
"ui.viewport_status_summary_more": "+{count}",
"ui.viewport_theme_follow": "Thema volgen",
"ui.visual_shaded_hidden_edges": "Gearceerd met verborgen randen",
"ui.visual_shaded_with_edges": "Gearceerd met randen",
+4 -1
View File
@@ -817,6 +817,7 @@
"cmd.appearance_pick_up": "Pobierz wygląd",
"cmd.appearance_replace": "Zastąp wygląd",
"cmd.assembly_bom": "Zestawienie materiałowe",
"cmd.assembly_mass_properties": "Właściwości masowe",
"cmd.body.print_face": "Powierzchnia druku",
"cmd.body_rename": "Zmień nazwę bryły",
"cmd.browser_collapse_all": "Zwiń wszystko",
@@ -1189,6 +1190,7 @@
"cmd.sketch_spline_control_point_5": "Splajn z punktów kontrolnych (stopień 5)",
"cmd.sketch_spline_fit_point": "Splajn przez punkty",
"cmd.sketch_spline_insert_point": "Dodaj punkt splajnu",
"cmd.sketch_spline_remove_point": "Usuń punkt splajnu",
"cmd.sketch_spline_reverse": "Odwróć kierunek splajnu",
"cmd.sketch_spun_profile": "Profil obrotowy",
"cmd.sketch_toggle_diameter": "Przełącz promień / średnicę",
@@ -2997,6 +2999,7 @@
"ui.insert_design.saved_file": "{name} ma niezapisane zmiany, więc wstawiono jego zapisany plik. Zapisz go, a potem użyj Aktualizuj łącza, aby wprowadzić zmiany.",
"ui.insert_design.unsaved": "Niezapisane zmiany",
"ui.inspect": "Sprawdź",
"ui.instances": "Wystąpienia",
"ui.intersect": "Przytnij",
"ui.isolate": "Izoluj",
"ui.join": "Połącz",
@@ -3139,9 +3142,9 @@
"ui.polygon": "Wielokąt",
"ui.preferences": "Preferencje",
"ui.press_a_key": "naciśnij klawisz…",
"ui.print_face_body_not_sent": "Bryła tej powierzchni nie jest wysyłana: najpierw dodaj ją do Bryły",
"ui.print_face_cleared": "{body}: usunięto powierzchnię druku",
"ui.print_face_input": "Powierzchnia druku",
"ui.print_face_one_body": "Powierzchnia druku należy do jednej bryły: wyślij tę bryłę osobno, aby ją zmienić",
"ui.print_face_pick": "Wybierz płaską powierzchnię bryły, aby ustawić ją jako powierzchnię druku",
"ui.print_face_set": "{body}: ustawiono powierzchnię druku; Wyślij do slicera kładzie bryłę na niej",
"ui.profile": "Profil",
+3 -1
View File
@@ -606,6 +606,7 @@
"cmd.appearance_library": "Biblioteca de aparências",
"cmd.appearance_list": "Listar aparências",
"cmd.assembly_bom": "Lista de materiais",
"cmd.assembly_mass_properties": "Propriedades de massa",
"cmd.body.print_face": "Face de impressão",
"cmd.body_rename": "Renomear corpo",
"cmd.browser_group": "Novo grupo",
@@ -2091,6 +2092,7 @@
"ui.infinite": "Infinita",
"ui.insert": "Inserir",
"ui.inspect": "Inspecionar",
"ui.instances": "Instâncias",
"ui.intersect": "Interseção",
"ui.isolate": "Isolar",
"ui.join": "Unir",
@@ -2204,9 +2206,9 @@
"ui.polygon": "Polígono",
"ui.preferences": "Preferências",
"ui.press_a_key": "pressione uma tecla…",
"ui.print_face_body_not_sent": "O corpo dessa face não está sendo enviado: adicione-o primeiro a Corpos",
"ui.print_face_cleared": "{body}: face de impressão removida",
"ui.print_face_input": "Face de impressão",
"ui.print_face_one_body": "Uma face de impressão pertence a um único corpo: envie esse corpo sozinho para alterá-la",
"ui.print_face_pick": "Selecione uma face plana de um corpo sólido para torná-la a face de impressão",
"ui.print_face_set": "{body}: face de impressão definida; Enviar ao fatiador apoia o corpo sobre ela",
"ui.profile": "Perfil",
+445 -1
View File
@@ -60,6 +60,7 @@
"BLEND SURFACE": "SUPRAFAȚĂ DE RACORDARE",
"BOUNDARY SURFACE": "SUPRAFAȚĂ LIMITĂ",
"BROWSER": "NAVIGATOR",
"Back to the original order": "Înapoi la ordinea inițială",
"Ball": "Sferică",
"Bar": "Bară",
"Base Center": "Centrul bazei",
@@ -595,6 +596,8 @@
"Snap to face and edge centres": "Agățare la centrele fețelor și muchiilor",
"SolidCraft cannot submit reports directly. Submit on GitHub; no token is needed in the app.": "SolidCraft nu poate trimite rapoarte direct. Trimiteți raportul pe GitHub; nu este necesar niciun token în aplicație.",
"SolidCraft closed before these designs were saved. Their last autosave can be opened.": "SolidCraft s-a închis înainte ca aceste proiecte să fie salvate. Ultima lor salvare automată poate fi deschisă.",
"Sort A to Z": "Sortează de la A la Z",
"Sort Z to A": "Sortează de la Z la A",
"Spacing 2 must be a non-zero number": "Spațierea 2 trebuie să fie un număr nenul",
"Spacing must be a non-zero number": "Spațierea trebuie să fie un număr nenul",
"Specialise": "Specializează",
@@ -790,6 +793,13 @@
"browser.sketch_attachment_lost": "{name} (atașare pierdută)",
"browser.sketch_editing": "{name} (în editare)",
"browser.sketch_name": "Schița{number}",
"browser.sketches_to_parts_already_in_part": "deja în piesa lor",
"browser.sketches_to_parts_design_body": "pe un corp al proiectului însuși",
"browser.sketches_to_parts_moved": "Au fost mutate {moved} schițe în piesa pe care se află",
"browser.sketches_to_parts_no_exact_attachment": "pe o față fără atașare exactă",
"browser.sketches_to_parts_not_on_face": "nu pe fața unei piese",
"browser.sketches_to_parts_part_missing": "piesa lor nu mai există",
"browser.sketches_to_parts_result": "Au fost mutate {moved} schițe în piesa pe care se află; {stayed} au rămas pe loc: {why}",
"browser.units": "Unități: {units}",
"cam.flat": "Față plană",
"cam.follower": "Tachet",
@@ -819,6 +829,7 @@
"cmd.appearance_pick_up": "Preia aspectul",
"cmd.appearance_replace": "Înlocuiește aspectul",
"cmd.assembly_bom": "Listă de materiale",
"cmd.assembly_mass_properties": "Proprietăți de masă",
"cmd.body.print_face": "Față de imprimare",
"cmd.body_rename": "Redenumește corpul",
"cmd.browser_collapse_all": "Restrânge tot",
@@ -856,6 +867,7 @@
"cmd.component_move_bodies": "Mută corpurile în componentă",
"cmd.component_move_features": "Mută operațiile în componentă",
"cmd.component_move_sketches": "Mută schițele în componentă",
"cmd.component_move_sketches_to_parts": "Mută schițele în piesele lor",
"cmd.component_paste_from_design": "Lipește din alt proiect",
"cmd.component_paste_new": "Lipește ca nou",
"cmd.component_properties": "Proprietățile fizice ale componentei",
@@ -1191,6 +1203,7 @@
"cmd.sketch_spline_control_point_5": "Spline cu puncte de control (grad 5)",
"cmd.sketch_spline_fit_point": "Spline cu puncte de potrivire",
"cmd.sketch_spline_insert_point": "Adaugă punct la spline",
"cmd.sketch_spline_remove_point": "Elimină punct din spline",
"cmd.sketch_spline_reverse": "Inversează direcția spline-ului",
"cmd.sketch_spun_profile": "Profil rotit",
"cmd.sketch_toggle_diameter": "Comută rază / diametru",
@@ -1244,6 +1257,7 @@
"cmd.view.render_browser": "Navigator de randare",
"cmd.view.render_dock": "Mută panoul de randare",
"cmd.view.render_focus": "Vizualizare de randare concentrată",
"cmd.view.status_details": "Detalii de stare ale ferestrei de vizualizare",
"cmd.view.status_items": "Elemente de stare ale ferestrei de vizualizare",
"cmd.view_ambient_occlusion": "Ocluzie ambientală",
"cmd.view_angle_readout": "Unghiuri de vizualizare",
@@ -1282,8 +1296,14 @@
"color.hex_hint": "#rrggbb",
"color.hue": "Nuanță",
"color.linear": "Se afișează valorile culorii în spațiul liniar 0-1",
"color.recent": "Culori recente",
"color.recent_help": "Culorile pe care le alegeți în orice câmp de culoare apar aici",
"color.saturation": "Saturație (procente)",
"color.saturation_value": "Saturație și valoare",
"color.selected": "Culoare selectată",
"color.step_down": "Scade cu un pas",
"color.step_up": "Crește cu un pas",
"color.value": "Valoare, luminozitatea (procente)",
"config.column_filter_empty": "Nicio coloană potrivită",
"contact.components_count": "{count} componente",
"contact.enabled_label": "activat",
@@ -1330,6 +1350,7 @@
"dialog.dimension_name": "Cotă: {name}",
"dialog.edit_title": "EDITARE {title}",
"dialog.no_shown_body": "Niciun corp afișat de modificat: afișați unul sau alegeți Corp nou",
"dialog.pattern_sketch_not_object": "Alegeți corpuri sau operații: o schiță nu este niciuna dintre ele. Repetați curbele ei cu Matrice sau Oglindire din schiță, ori extrudați-o mai întâi.",
"dialog.select": "↖ Selectează",
"dialog.selected_count": "↖ {count} selectate",
"dialog.selection_guidance": "Selectați o intrare pentru a o modifica. Faceți clic pe obiectele selectate pentru a le elimina; Ctrl/Cmd-clic le comută de asemenea. Verificați previzualizarea, apoi apăsați OK.",
@@ -1387,21 +1408,168 @@
"from the rule": "din regulă",
"help.apache": "Licența Apache 2.0",
"help.appearance.assign": "Dă corpurilor, fețelor sau componentelor selectate o culoare sau un aspect de material, fără a le modifica greutatea. Folosiți-l pentru a deosebi piesele sau pentru a previzualiza un finisaj.",
"help.assembly.bom": "Listează piesele proiectului sau ale unei componente, cu cantitățile lor, pe numere de piesă, și poate salva lista ca CSV sau JSON. Folosiți-o ca listă de piese pentru comandă și asamblare.",
"help.attributions": "Atribuiri (ATTRIBUTION.md)",
"help.build": "Versiunea {version} · commit {commit} · construit {date}",
"help.canvas.decal": "Plasează o imagine pe o față plană a modelului, ca un autocolant. Folosiți-l pentru a arăta o etichetă, un logo sau un model imprimat pe o piesă.",
"help.canvas.edit": "Modifică o pânză: poziția, dimensiunea, unghiul, opacitatea, oglindirea, vizibilitatea sau numele. Folosiți-o pentru a alinia o imagine de referință cu schița trasată peste ea.",
"help.canvas.insert": "Plasează o imagine PNG sau JPEG pe un plan sau pe o față, ca referință transparentă. Folosiți-o pentru a copia o fotografie sau un desen într-o schiță, cu imaginea scalată la o dimensiune cunoscută.",
"help.component.break_link": "Desprinde o componentă legată de fișierul ei de proiect, păstrându-i corpurile așa cum sunt. Folosiți-o când piesa nu mai trebuie să urmeze modificările fișierului original.",
"help.component.capture_position": "Păstrează pozițiile pieselor mutate manual, astfel încât acestea să devină noile lor poziții. Folosiți-o după ce ați tras în loc piese pe care nu le ține nicio îmbinare.",
"help.component.create": "Adaugă în proiect o componentă nouă, goală, în componenta activă, dacă nu alegeți un alt părinte. Folosiți-o pentru a da unei piese noi a unui ansamblu propriul loc pentru corpuri și schițe.",
"help.component.finish_edit": "Salvează piesa pe care o editați pe loc, revine la ansamblul ei și actualizează ansamblul pe baza piesei. Folosiți-o când modificările piesei legate sunt gata.",
"help.component.from_bodies": "Transformă fiecare corp selectat într-o componentă proprie, cu numele corpului. Folosiți-o când un proiect construit din corpuri separate trebuie să devină un ansamblu ale cărui piese pot fi îmbinate și mutate.",
"help.component.insert_design": "Inserează un alt proiect salvat ca o componentă legată de fișierul său, cu corpurile solide plasate ca acolo. Folosiți-o pentru a reutiliza o piesă într-un ansamblu și a prelua modificările ulterioare cu Actualizează legăturile.",
"help.component.properties": "Arată volumul, masa, centrul de masă și momentele de inerție ale unei componente, pe baza materialelor corpurilor sale. Folosiți-o pentru a verifica greutatea și echilibrul unui ansamblu.",
"help.component.revert_position": "Readuce piesele mutate manual unde erau, renunțând la mutările necapturate. Folosiți-o pentru a anula mutările de probă dintr-un ansamblu.",
"help.component.update_links": "Citește din nou fișierele de proiect legate și înlocuiește corpurile care s-au modificat. Folosiți-o după editarea unei piese folosite de acest ansamblu.",
"help.config.configure": "Adaugă parametri, operații, materiale sau aspecte ca coloane ale tabelului de configurații. Folosiți-o pentru a crea variante ale unui proiect, de exemplu dimensiuni ale unei piese.",
"help.config.preview": "Verifică dacă un rând al tabelului de configurații se reconstruiește, fără a modifica proiectul sau istoricul lui. Folosiți-o înainte de a trece la o variantă de care nu sunteți sigur.",
"help.config.rules": "Arată regulile tabelului de configurații, rândurile lui și care rând este activ. Folosiți-o pentru a vedea cum sunt definite variantele unui proiect.",
"help.config.table": "Arată tabelul de configurații: un rând pentru fiecare variantă, o coloană pentru fiecare parametru sau operație și dacă proiectul se potrivește încă cu rândul activ. Folosiți-o pentru a revizui variantele unui proiect.",
"help.connect_note": "Reporniți fiecare asistent pentru a încărca serverul SolidCraft. Din fiecare fișier s-a făcut o copie de rezervă .bak înainte de modificare.",
"help.connect_title": "Conectare asistenți AI",
"help.construct.axis.edge": "Creează o axă de construcție de-a lungul unei muchii drepte sau a unei linii de schiță. Folosiți-o ca axă pentru o revoluție, o matrice circulară sau o îmbinare.",
"help.construct.axis.normal_to_face": "Creează o axă de construcție printr-un punct, perpendiculară pe o față. Folosiți-o ca axă care iese drept dintr-o suprafață.",
"help.construct.axis.through_cylinder": "Creează o axă de construcție prin centrul unei fețe cilindrice, conice sau toroidale ori al unei muchii circulare. Folosiți-o pentru a roti sau a multiplica operații în jurul unei piese rotunde.",
"help.construct.axis.two_planes": "Creează o axă de construcție acolo unde se întâlnesc două plane sau fețe plane. Folosiți-o când axa de care aveți nevoie este linia în care se întâlnesc două fețe.",
"help.construct.axis.two_points": "Creează o axă de construcție prin două puncte, vârfuri sau puncte de schiță. Folosiți-o pentru o axă care trece între două poziții cunoscute.",
"help.construct.plane.along_path": "Creează un plan de construcție perpendicular pe o muchie sau o curbă, într-o poziție de-a lungul ei. Folosiți-l pentru a schița un profil de baleiere sau o secțiune prin traseu.",
"help.construct.plane.at_angle": "Creează un plan de construcție rotit cu un unghi față de un plan sau o față, în jurul unei axe sau muchii. Folosiți-l pentru schițe înclinate, de exemplu un suport în unghi.",
"help.construct.plane.midplane": "Creează un plan de construcție la jumătatea distanței dintre două plane sau fețe plane ori care le bisectează acolo unde se întâlnesc sub un unghi. Folosiți-l ca plan de simetrie pentru oglindire.",
"help.construct.plane.offset": "Creează un plan de construcție paralel cu un plan sau o față plană, la o distanță sau printr-un punct. Folosiți-l pentru a schița la o înălțime stabilită deasupra unei fețe.",
"help.construct.plane.perpendicular": "Creează un plan de construcție care conține o linie sau o muchie și este perpendicular pe un plan sau o față. Folosiți-l pentru a schița vertical pe un model, de-a lungul unei muchii.",
"help.construct.plane.tangent": "Creează un plan de construcție care atinge un cilindru, un con, o sferă sau un tor într-un punct. Folosiți-l pentru a schița pe latura unei piese rotunde.",
"help.construct.plane.three_points": "Creează un plan de construcție prin trei puncte. Folosiți-l pentru un plan stabilit de poziții de pe model, de exemplu trei colțuri.",
"help.construct.plane.two_edges": "Creează un plan de construcție prin două muchii drepte sau linii care se află în același plan. Folosiți-l pentru un plan prin mijlocul unei piese, de exemplu prin două muchii opuse.",
"help.construct.point.along_path": "Creează un punct de construcție într-o poziție de-a lungul unei muchii sau curbe. Folosiți-l ca referință la o anumită distanță pe un traseu.",
"help.construct.point.center": "Creează un punct de construcție în centrul unei muchii circulare, al unui cerc sau arc de schiță, al unei sfere sau al unui tor. Folosiți-l ca referință pentru găuri, axe și îmbinări.",
"help.construct.point.edge_plane": "Creează un punct de construcție acolo unde o muchie sau o linie trece printr-un plan sau o față plană. Folosiți-l pentru a marca locul unde un traseu traversează un plan.",
"help.construct.point.three_planes": "Creează un punct de construcție acolo unde se întâlnesc trei plane sau fețe plane. Folosiți-l ca referință de colț, chiar și acolo unde modelul nu are vârf.",
"help.construct.point.two_edges": "Creează un punct de construcție acolo unde două muchii sau linii se întâlnesc sau se apropie cel mai mult. Folosiți-l ca referință la un colț virtual.",
"help.construct.point.vertex": "Creează un punct de construcție pe un vârf sau pe un punct de schiță. Folosiți-l ca referință care rămâne când schița sau corpul din jurul lui sunt ascunse.",
"help.contact.check": "Listează perechile de piese din seturile de contact care se întrepătrund în poziția lor curentă. Folosiți-o pentru a găsi coliziuni înainte de a acționa îmbinările sau de a rula un studiu de mișcare.",
"help.contact.create": "Grupează două sau mai multe piese într-un set de contact, ale cărui corpuri nu se pot întrepătrunde cât timp se mișcă îmbinările. Folosiți-o pentru piese care trebuie să se oprească la atingere, de exemplu o pârghie lângă opritorul ei.",
"help.contact.disable_all": "Dezactivează contactul, astfel încât îmbinările acționate și studiile de mișcare să nu se mai oprească acolo unde piesele se ating. Folosiți-o pentru a mișca din nou piesele liber sau pentru a menține receptiv un ansamblu mare.",
"help.contact.edit": "Modifică un set de contact: piesele pe care le conține, numele lui sau dacă este suprimat; poate și șterge setul. Folosiți-o pentru a ajusta ce piese nu se pot întrepătrunde.",
"help.contact.enable_all": "Pune toate piesele ansamblului într-un singur set de contact, astfel încât două piese să nu se poată întrepătrunde cât timp se mișcă îmbinările. Folosiți-o pentru o verificare rapidă a unui mecanism întreg.",
"help.contact.enable_sets": "Activează contactul pentru seturile de contact pe care le-ați definit, astfel încât îmbinările acționate și studiile de mișcare să se oprească acolo unde piesele lor s-ar întrepătrunde. Folosiți-o pentru a readuce seturile după dezactivarea contactului.",
"help.contact.list": "Listează seturile de contact ale proiectului, piesele din fiecare și dacă contactul este activ. Folosiți-o pentru a verifica cum este configurat contactul înainte de a acționa ansamblul.",
"help.document.inspect": "Arată o privire de ansamblu asupra proiectului: componentele, corpurile, schițele, operațiile și parametrii lui. Folosiți-o pentru a vă orienta într-un proiect pe care nu l-ați construit dumneavoastră.",
"help.document.units": "Schimbă unitățile în care proiectul afișează lungimile, de exemplu mm sau inchi. Geometria își păstrează dimensiunea; doar afișarea și numerele simple urmează unitatea.",
"help.edit.checkpoint": "Reține proiectul, schița activă și istoricul de anulare așa cum sunt acum. Folosiți-l înainte de a încerca ceva riscant, de la care s-ar putea să vreți să vă întoarceți.",
"help.edit.restore_checkpoint": "Revine la un punct de control, inclusiv la istoricul de anulare. Folosiți-o pentru a renunța dintr-un singur pas la tot ce s-a făcut de la punctul de control.",
"help.explode.create": "Creează o vedere explodată care îndepărtează piesele de centrul ansamblului sau după mutările stabilite de dumneavoastră. Folosiți-o pentru a arăta cum se asamblează un ansamblu, pentru instrucțiuni sau prezentări.",
"help.face.delete": "Elimină fețele selectate și lasă fețele vecine să închidă golul sau lasă golul deschis ca suprafață. Folosiți-l pentru a îndepărta o muchie rotunjită, o gaură sau un bosaj care incomodează.",
"help.file.insert_mesh": "Adaugă un fișier 3MF, STL, OBJ, PLY sau glTF în proiect ca corpuri plasă într-o componentă nouă. Folosiți-o pentru a plasa lângă proiectul dumneavoastră, ca referință, un model descărcat sau scanat.",
"help.file.insert_step": "Adaugă un fișier STEP, IGES, FreeCAD sau Rhino în proiect ca corpuri solide într-o componentă nouă; piesele unui ansamblu devin componente imbricate. Folosiți-o pentru a aduce modele de la furnizori sau din alte programe CAD.",
"help.file.save_mesh": "Salvează corpurile ca plasă STL, 3MF sau OBJ, cu netezimea fețelor curbe pe care o alegeți. Folosiți-o pentru a pregăti piese pentru imprimarea 3D sau pentru programe care citesc plase.",
"help.file.send_to_slicer": "Salvează corpurile selectate ca fișier 3MF și îl deschide în slicerul pe care îl alegeți. Folosiți-o pentru a trece de la model la imprimare într-un singur pas.",
"help.font_details": "Interfața folosește fonturile încorporate ale egui (Ubuntu Light și Hack, sub Ubuntu Font Licence și licența MIT/Bitstream Vera; Noto Emoji și fontul de pictograme emoji, sub OFL și MIT). Textul din schiță folosește Liberation Sans (SIL OFL 1.1). Pachetul opțional de fonturi al Crafting Apps, craft-fonts (BIZ UDPGothic, Shippori Mincho, BIZ UDMincho, Noto Sans CJK SC, Noto Sans Arabic; SIL OFL 1.1), nu este inclus în versiunile SolidCraft.",
"help.fonts": "Fonturi",
"help.frame.member": "Plasează un profil, de exemplu o țeavă sau un profil extrudat din aluminiu, de-a lungul liniilor unei schițe de cadru, câte un element pe linie. Folosiți-o pentru a construi cadre, rafturi și structuri sudate.",
"help.inspect.accessibility": "Colorează fețele pe care o sculă le poate atinge dintr-o direcție și pe cele pe care nu le poate atinge. Folosiți-o pentru a verifica o piesă pentru prelucrare sau matrițare din acea parte.",
"help.inspect.center_of_mass": "Arată centrul de masă al corpurilor, fiecare separat și toate împreună, la densitate uniformă. Folosiți-o pentru a verifica echilibrul și locul unde se răstoarnă o piesă.",
"help.inspect.colored_components": "Dă fiecărei componente propria culoare temporară, fără a modifica aspectele. Folosiți-o pentru a deosebi dintr-o privire piesele unui ansamblu.",
"help.inspect.compare": "Compară două corpuri și arată unde unul are material pe care celălalt nu îl are, cu volumul și abaterea. Folosiți-o pentru a verifica o piesă modificată sau importată față de original.",
"help.inspect.continuity": "Verifică cât de neted se întâlnesc fețele de-a lungul muchiilor: spații, frângeri sau salturi de curbură, și colorează cusăturile. Folosiți-o pentru a găsi unde suprafețele nu se îmbină curat.",
"help.inspect.curvature_comb": "Desenează piepteni de-a lungul curbelor, muchiilor sau fețelor, ai căror dinți arată cât de tare se curbează acestea. Folosiți-o pentru a depista porțiuni plate, frângeri și curbură neuniformă.",
"help.inspect.curvature_map": "Colorează fețele după cât de tare se curbează, cu roșu unde raza este mică. Folosiți-o pentru a găsi locurile strânse și a aprecia cât de netedă este o suprafață.",
"help.inspect.draft": "Colorează fețele după unghiul lor de înclinare față de o direcție de extragere, marcându-le pe cele cu prea puțină înclinare. Folosiți-o pentru a verifica o piesă înainte de matrițare sau turnare.",
"help.inspect.environment_map": "Arată modelul cu un finisaj reflectant, ca de oglindă. Folosiți-o pentru a aprecia curgerea suprafețelor după felul în care se desfășoară reflexiile pe ele.",
"help.inspect.interference": "Găsește corpurile care se suprapun și arată fiecare suprapunere cu volumul ei. Folosiți-o pentru a verifica dacă un ansamblu are piese care se ciocnesc.",
"help.inspect.isocurve": "Desenează curbele izoparametrice ale fețelor, adică grila pe care este construită suprafața. Folosiți-o pentru a vedea cum curge o suprafață și unde se îngrămădește.",
"help.inspect.measure": "Măsoară lungimi, distanțe, unghiuri, arii și raze între elementele alese sau volumul și masa corpurilor. Folosiți-o pentru a verifica dimensiuni și jocuri.",
"help.inspect.minimum_radius": "Găsește cea mai mică rază de curbură a curbelor, muchiilor sau fețelor și locul unde apare. Folosiți-o pentru a verifica dacă o sculă sau o duză poate urmări forma.",
"help.inspect.section": "Taie vizualizarea de-a lungul unui plan și hașurează fețele tăiate, fără a modifica modelul. Folosiți-o pentru a privi în interiorul pieselor și ansamblurilor.",
"help.inspect.zebra": "Arată dungi albe și negre reflectate pe fețele modelului. Folosiți-o pentru a aprecia netezimea: dungile care se rup sau se frâng la o muchie arată o tranziție slabă.",
"help.joint.as_built": "Îmbină două piese acolo unde se află deja, fără a muta niciuna, și stabilește cum se mai pot mișca. Folosiți-o pentru piese pe care le-ați plasat deja în poziția finală.",
"help.joint.cam": "Leagă o camă rotitoare de un tachet, astfel încât tachetul să alunece sau să oscileze pe măsură ce conturul camei trece pe sub el. Folosiți-o pentru came, excentrice și mecanisme de acționare a supapelor.",
"help.joint.create": "Îmbină două piese la originile îmbinării alese și mută a doua piesă la locul ei; tipul îmbinării stabilește cum se mai pot mișca. Folosiți-o pentru a construi un ansamblu ale cărui piese se mișcă precum mecanismul real.",
"help.joint.drive": "Stabilește unghiul sau distanța unei îmbinări și mută piesele odată cu ea, în limitele ei; îmbinările legate și buclele închise o urmează. Folosiți-o pentru a verifica dacă un mecanism se mișcă așa cum trebuie.",
"help.joint.gear": "Leagă două îmbinări rotitoare printr-un raport de transmisie, astfel încât acționarea uneia o rotește pe cealaltă. Folosiți-l pentru roți dințate cilindrice și interioare, cu raportul dat de razele cercurilor de divizare sau de numărul de dinți.",
"help.joint.limits": "Stabilește cât se poate roti sau aluneca o îmbinare, ca minim și maxim, sau șterge aceste limite. Folosiți-o pentru a ține o balama, un cursor sau o pârghie în cursa ei reală.",
"help.joint.motion_link": "Cuplează două îmbinări cu un raport și un decalaj, astfel încât acționarea uneia o mișcă pe cealaltă. Folosiți-o pentru o relație fixă între îmbinări pe care Angrenaj, Cremalieră și pinion sau Șurub nu o acoperă.",
"help.joint.origin": "Plasează pe o piesă o origine de îmbinare denumită: în centrul unei fețe sau al unui capăt rotund, la mijlocul unei muchii, într-un colț sau într-un punct. Folosiți-o pentru a pregăti locurile unde se prind îmbinările; una aleasă pe o față o urmează când piesa își schimbă dimensiunea.",
"help.joint.rack_pinion": "Leagă un pinion rotitor de o cremalieră glisantă, astfel încât cremaliera se mișcă pe lungimea cercului de divizare pe care se rostogolește pinionul. Folosiți-o pentru acționări cu cremalieră, mecanisme de direcție și module liniare.",
"help.joint.reach": "Mută un punct de pe o piesă spre o țintă schimbând îmbinările lanțului său, în limitele lor. Folosiți-o pentru a poziționa un mecanism după locul unde trebuie să ajungă capătul lui, de exemplu vârful unui braț de robot.",
"help.joint.rigid_group": "Blochează împreună piesele selectate așa cum sunt, astfel încât să se miște ca una singură. Folosiți-l pentru piese care aparțin laolaltă și între care nu există mișcare.",
"help.joint.screw": "Leagă rotirea și alunecarea printr-un pas, astfel încât fiecare rotație avansează cu acea distanță. Folosiți-o pentru șuruburi conducătoare, șuruburi și axe filetate.",
"help.library.apply": "Aplică un material sau un aspect dintr-un fișier de bibliotecă locală corpurilor, fețelor sau componentelor. Folosiți-o pentru a reutiliza materiale salvate dintr-un alt proiect.",
"help.library.export": "Salvează materialele și aspectele proiectului într-un fișier de bibliotecă. Folosiți-o pentru a le partaja sau a le reutiliza în alte proiecte.",
"help.library.inspect": "Verifică un fișier de bibliotecă și îi listează materialele și aspectele, fără a modifica proiectul. Folosiți-o pentru a vedea ce conține o bibliotecă înainte de a o aplica.",
"help.licences": "Licențe",
"help.material.assign": "Stabilește din ce sunt făcute corpurile selectate, de exemplu oțel, aluminiu sau ABS. Folosiți-l pentru ca masa și greutatea să corespundă piesei reale.",
"help.material.properties.validate": "Verifică dacă fișa de date a unui material are numere coerente și dacă îi lipsesc valori. Folosiți-o înainte de a vă baza pe date pentru masă sau rigiditate.",
"help.mesh.convert": "Reconstruiește un corp plasă, de exemplu un STL, ca solid editabil cu fețe plane și cilindrice. Folosiți-o pentru a modifica piese mecanice importate ca pe un corp modelat.",
"help.mit": "Licența MIT",
"help.motion.study": "Stabilește valorile îmbinărilor la pași pe o cronologie și le redă ca animație. Folosiți-l pentru a urmări un mecanism parcurgând o secvență și a verifica jocurile pe parcurs.",
"help.motion.trace": "Urmărește drumul parcurs de un punct al unei piese în timp ce rulează un studiu de mișcare sau se acționează o îmbinare și îl păstrează ca o curbă de schiță 3D când confirmați. Folosiți-o pentru a vedea unde ajunge un mecanism sau pentru a construi pe traseul lui.",
"help.notice": "NOTICE",
"help.occurrence.ground": "Fixează o piesă pe loc sau o eliberează din nou, astfel încât îmbinările să miște celelalte piese în jurul ei. Folosiți-o pentru cadrul sau baza pe care este construit restul ansamblului.",
"help.occurrence.move": "Mută o piesă din ansamblu doar pe direcțiile de mișcare permise de îmbinările sale. Selectați o față a piesei, apoi trageți o săgeată sau un arc disponibil.",
"help.parameters.change": "Deschide tabelul cu valori denumite și expresii care controlează cotele proiectului. Folosiți-l pentru a schimba o dimensiune într-un singur loc și a lăsa toate operațiile care o folosesc să o urmeze.",
"help.parameters.export": "Salvează parametrii proiectului ca CSV sau JSON. Folosiți-o pentru a-i edita într-o foaie de calcul sau a-i muta într-un alt proiect.",
"help.parameters.graph": "Arată ce parametri și ce operații le folosesc pe celelalte, precum și eventualele bucle sau erori dintre ele. Folosiți-l pentru a vedea ce va afecta modificarea unui parametru.",
"help.parameters.import": "Citește parametri din CSV sau JSON în proiect, pe toți sau deloc. Folosiți-o pentru a aduce valori dintr-o foaie de calcul sau dintr-un alt proiect.",
"help.parameters.move": "Mută un parametru utilizator înaintea sau după altul în listă. Folosiți-o pentru a ține împreună parametrii înrudiți.",
"help.parts.fastener": "Adaugă un șurub, un bolț, o piuliță, o șaibă, un știft sau un rulment standard, în dimensiunea aleasă. Plasat pe o gaură, se așază în gaură printr-o îmbinare, așa că nu trebuie să modelați singur elementele de fixare.",
"help.parts.insert": "Inserează o piesă standard din familia, dimensiunea și lungimea alese. Plasată pe marginea sau peretele unei găuri, se așază în gaură printr-o îmbinare rigidă.",
"help.parts.library": "Deschide piesele standard: șuruburi, bolțuri, piulițe, șaibe, șuruburi de fixare, știfturi de centrare și rulmenți, în dimensiuni standard. Folosiți-o pentru a adăuga o piesă standard în loc să o modelați singur.",
"help.parts.resize": "Schimbă dimensiunea sau lungimea unei piese standard inserate și o reconstruiește; îmbinările ei o păstrează așezată. Folosiți-o când un șurub se dovedește prea lung sau o gaură cere altă dimensiune.",
"help.plastic.assign_rule": "Atribuie o regulă pentru plastic unor corpuri, astfel încât operațiile lor pentru plastic să preia înclinarea și jocul ei ca valori implicite. Folosiți-o pentru a configura o singură dată o piesă matrițată pentru toate operațiile ei.",
"help.plastic.boss": "Adaugă pe o față un bosaj pentru șurub: un stâlp cu gaură opțională, înclinare, racordare la bază și nervuri de susținere. Folosiți-l pentru punctele de șurub din carcase matrițate sau imprimate.",
"help.plastic.lip": "Adaugă o buză sau o canelură potrivită pe marginea unui corp scobit. Folosiți-o pentru ca două jumătăți de carcasă să se centreze una pe alta și să se închidă strâns.",
"help.plastic.manage_rules": "Creează și editează reguli pentru plastic: materialul, grosimea peretelui, razele, jocul și înclinarea. Folosiți-le pentru a menține coerente operațiile unei piese matrițate.",
"help.plastic.rest": "Adaugă un reazem pe o față: o platformă rotundă sau dreptunghiulară, plină sau goală, cu înclinare. Folosiți-l ca sprijin sau distanțier într-o carcasă matrițată.",
"help.plastic.snap_fit": "Adaugă pe o față un cârlig de prindere cu clichet, cu lungimea, grosimea și zăvorul lui. Folosiți-o pentru a prinde piesele între ele fără șuruburi.",
"help.pointcloud.insert": "Inserați o scanare PLY, XYZ sau PTS ca nor de puncte alături de model. Folosiți-o ca referință la construirea unui model pe baza datelor măsurate.",
"help.sheet.convert": "Transformă o placă sau un corp scobit de grosime uniformă într-un corp din tablă, cu îndoiri la muchiile alese. Folosiți-o pentru a face desfășurabilă o piesă existentă.",
"help.sheet.export_bend_table": "Salvează tabelul de îndoire al unui corp din tablă ca CSV sau JSON: unghiuri, raze și poziții ale îndoirilor în desfășurată. Folosiți-o pentru presa de îndoit sau pentru atelier.",
"help.sheet.export_dxf": "Salvează desfășurata ca DXF, cu contururi, linii de îndoire și note de îndoire opționale. Folosiți-o pentru tăierea cu laser, cu plasmă sau cu jet de apă.",
"help.sheet.flange": "Adaugă o flanșă: o placă de bază dintr-o schiță, un perete de-a lungul unui contur deschis de schiță sau un perete îndoit pe muchii de tablă. Folosiți-o pentru a construi piese din tablă.",
"help.sheet.flat_pattern": "Creează desfășurata plană a unui corp din tablă, cu dimensiunea, decupările și liniile de îndoire. Folosiți-o pentru a verifica semifabricatul înainte de tăiere.",
"help.sheet.fold": "Îndoaie o tablă de-a lungul unei linii de schiță cu un unghi și o rază. Folosiți-o pentru a îndoi o tablă plană după ce ați adăugat în ea decupări.",
"help.sheet.hem": "Îndoaie o muchie de tablă peste ea însăși. Folosiți-o pentru muchii sigure și rigide, fără bavuri ascuțite.",
"help.sheet.manage_rules": "Creează și editează reguli pentru tablă: grosime, rază de îndoire, factor K, degajări și spații. Folosiți-le pentru a vă adapta la materialul și sculele atelierului dumneavoastră.",
"help.sheet.path_flange": "Adaugă un lanț de flanșe de-a lungul unei muchii de tablă, urmând un lanț deschis de linii de schiță. Folosiți-o pentru profile precum forma U sau Z dintr-un singur pas.",
"help.sheet.perforate": "Adaugă un câmp de găuri pe toată tabla desfășurată, într-un model decalat sau pătrat. Folosiți-o pentru ventilații, grilaje și panouri mai ușoare.",
"help.sheet.refold": "Îndoaie la loc un corp din tablă desfășurat. Folosiți-o după ce ați adăugat operații pe tabla plană.",
"help.sheet.unfold": "Desfășoară toate îndoirile unui corp din tablă. Folosiți-o pentru a adăuga găuri sau decupări care trebuie să traverseze o îndoire, apoi reîndoiți.",
"help.sketch.arc.center_point": "Desenează un arc de cerc în jurul unui punct central, de la un punct de început la unul de sfârșit. Folosiți-l când centrul arcului este cunoscut, de exemplu o rază în jurul unei găuri sau al unui pivot.",
"help.sketch.arc.tangent": "Desenează un arc care pornește de la capătul unei linii sau al unui arc și continuă tangent la acesta. Folosiți-l pentru a continua un lanț cu o curbă lină în loc de un colț.",
"help.sketch.arc.three_point": "Desenează un arc de la un punct de început la unul de sfârșit, printr-un al treilea punct. Folosiți-l când arcul trebuie să treacă prin puncte date, nu în jurul unui centru cunoscut.",
"help.sketch.arc3d": "Desenează un arc de cerc exact în spațiu prin trei puncte, cu Schiță 3D activată. Folosiți-l pentru curbe în traseele și ghidajele care ies din planul schiței.",
"help.sketch.auto_constrain": "Adaugă constrângerile pe care schița le are aproape deja, de exemplu orizontală, paralelă sau coincidentă, apoi o cotează până este complet definită. Folosiți-o pentru a bloca dintr-un singur pas o schiță desenată aproximativ.",
"help.sketch.auto_constrain_from_datum": "Funcționează ca Constrângere automată, dar măsoară pozițiile față de un reper ales de dumneavoastră, nu față de origine. Folosiți-o când piesa este trasată dintr-un singur punct de referință, de exemplu un colț sau o gaură.",
"help.sketch.blend_curve": "Unește capetele a două curbe cu un spline lin, tangent la amândouă sau, la alegere, și cu curbură continuă. Folosiți-o pentru a acoperi un spațiu dintre curbe fără frângere.",
"help.sketch.break": "Împarte o curbă în bucăți acolo unde o taie alte curbe sau în punctele pe care le plasați pe ea. Folosiți-o când o parte a unei curbe are nevoie de propria constrângere sau trebuie ștearsă separat.",
"help.sketch.cancel": "Părăsește schița și renunță la tot ce s-a schimbat de când a fost creată sau deschisă pentru editare. Anularea ultimei acțiuni readuce modificările.",
"help.sketch.centerline": "Comută liniile între linii normale și linii de axă, adică axe pe care profilurile le omit. Folosiți o linie de axă ca axă pentru o revoluție, o oglindire sau o constrângere de simetrie.",
"help.sketch.chamfer.distance_angle": "Teșește colțul dintre două linii, stabilit printr-o distanță pe prima linie și un unghi. Folosiți-o când un desen dă teșitura ca lungime și unghi, de exemplu 2 mm × 30°.",
"help.sketch.chamfer.equal_distance": "Teșește colțul dintre două linii cu aceeași distanță pe ambele. Folosiți-o pentru teșitura obișnuită de 45° pe un contur.",
"help.sketch.chamfer.two_distance": "Teșește colțul dintre două linii, stabilit printr-o distanță separată pe fiecare linie. Folosiți-o pentru teșituri care nu sunt de 45°, date ca două lungimi.",
"help.sketch.circle.center": "Desenează un cerc după centrul și diametrul lui. Folosiți-l pentru găuri, bosaje și alte elemente rotunde al căror centru este cunoscut.",
"help.sketch.circle.three_point": "Desenează un cerc prin trei puncte. Folosiți-l când cercul trebuie să treacă prin puncte date, de exemplu ale geometriei existente.",
"help.sketch.circle.three_tangent": "Desenează un cerc care atinge trei linii, cercuri sau arce. Folosiți-l pentru a potrivi un cerc în spațiul dintre trei curbe, de exemplu cercul înscris al unui triunghi.",
"help.sketch.circle.two_point": "Desenează un cerc din cele două capete ale diametrului său. Folosiți-l când sunt cunoscute punctele de pe marginea cercului, nu centrul.",
"help.sketch.circle.two_tangent": "Desenează un cerc de o dimensiune dată care atinge două linii, cercuri sau arce. Folosiți-l pentru o rotunjire de rază fixă între două curbe.",
"help.sketch.conic": "Desenează o curbă conică între două puncte finale, modelată de un punct de vârf și o valoare rho. Folosiți-o pentru tranziții line a căror plinătate o reglați, de la plată până aproape de un colț ascuțit.",
"help.sketch.constrainer": "Aplică constrângerea pe care una sau două curbe alese o au aproape deja, de exemplu orizontală, paralelă, tangentă sau egală. Folosiți-o pentru a pune în ordine o schiță desenată de mână, câte o relație pe rând.",
"help.sketch.constraint.coincident": "Face ca un punct să se afle pe alt punct, pe o curbă sau pe o axă a schiței. Folosiți-o pentru a închide spațiile dintr-un profil sau a pune un punct pe o linie.",
"help.sketch.constraint.collinear": "Face ca două linii să se afle pe aceeași dreaptă. Folosiți-o pentru a alinia muchii întrerupte, de exemplu ambele laturi ale unei crestături.",
"help.sketch.constraint.concentric": "Dă la două cercuri sau arce același centru. Folosiți-o pentru inele, lamaje și arbori cu umeri.",
"help.sketch.constraint.curvature": "Face ca două curbe care se întâlnesc într-un punct final să continue cu aceeași curbură (G2). Folosiți-o acolo unde un racord tangent nu este destul de neted, de exemplu pe suprafețe vizibile.",
"help.sketch.constraint.equal": "Face liniile de aceeași lungime sau cercurile și arcele de aceeași rază. Folosiți-o pentru ca o singură cotă să conducă mai multe elemente identice.",
"help.sketch.constraint.fix": "Fixează puncte sau curbe unde se află sau le eliberează din nou. Folosiți-o pentru geometria care nu trebuie să se miște când trageți sau rezolvați schița.",
"help.sketch.constraint.horizontal_vertical": "Face o linie, sau linia dintre două puncte, orizontală sau verticală, după care este mai apropiată. Folosiți-o pentru a aduce un contur în unghi drept pe axele schiței.",
"help.sketch.constraint.midpoint": "Pune un punct la mijlocul unei linii sau face ca mijloacele a două linii să coincidă. Folosiți-o pentru a centra geometria pe o muchie.",
"help.sketch.constraint.parallel": "Face două linii paralele. Folosiți-o pentru laturi care trebuie să rămână paralele când se schimbă alte cote.",
"help.sketch.constraint.perpendicular": "Face două linii să se întâlnească în unghi drept. Folosiți-o pentru colțuri drepte între linii care nu se află pe axele schiței.",
"help.sketch.constraint.polygon": "Face dintr-un lanț închis de linii un poligon regulat: laturi egale, cu fiecare colț pe același cerc. Folosiți-o pentru a face regulat un poligon desenat de mână și a-l menține așa.",
"help.sketch.constraint.symmetry": "Face două puncte sau curbe să fie în oglindă față de o linie sau în jurul unui punct. Folosiți-o pentru a menține un profil simetric când schimbați o parte.",
"help.sketch.constraint.tangent": "Face două curbe să se atingă tangent, de exemplu o linie și un arc. Folosiți-o pentru racorduri line, fără frângere.",
"help.sketch.construction": "Comută curbele între geometrie normală și geometrie de construcție, pe care profilurile o omit. Folosiți curbele de construcție ca ajutoare pentru trasare, referințe și cote.",
"help.sketch.construction_line": "Creați o dreaptă de construcție infinită prin două puncte. Folosiți-o pentru a structura o schiță fără a diviza profilurile.",
"help.sketch.construction_line.angle": "Creați o dreaptă de construcție infinită sub un unghi față de axa X a schiței. Alegeți punctul și tastați unghiul sau alegeți direcția acestuia.",
"help.sketch.construction_line.bisector": "Alegeți două linii drepte ale schiței care se intersectează, apoi una dintre cele două bisectoare. Rezultatul urmărește liniile sursă.",
@@ -1412,11 +1580,71 @@
"help.sketch.construction_line.tangent_external": "Alegeți un cerc sau un arc de cerc, apoi un punct exterior și o soluție de tangentă. Previzualizările arată doar punctele de tangență de pe arcul desenat.",
"help.sketch.construction_line.tangent_two": "Alegeți două cercuri sau arce de cerc, apoi o tangentă comună în previzualizare. Punctele de tangență trebuie să se afle pe curbele desenate.",
"help.sketch.construction_line.vertical": "Creați o dreaptă de construcție verticală infinită printr-un punct. Constrângerea verticală rămâne valabilă la editările ulterioare.",
"help.sketch.copy": "Copiază curbele și punctele de schiță selectate, împreună cu constrângerile și cotele dintre ele. Lipiți-le în această schiță sau în alta.",
"help.sketch.create": "Începe o schiță 2D nouă pe un plan sau pe o față plană a modelului. Orice extrudare, revoluție și baleiere începe cu o schiță.",
"help.sketch.cut": "Copiază geometria de schiță selectată și o șterge din schiță, într-un singur pas de anulare. Lipiți-o în altă parte din această schiță sau într-o alta.",
"help.sketch.dimension": "Adaugă o cotă conducătoare: o lungime, o distanță, un unghi, o rază sau un diametru, după ce alegeți. Tastați o valoare sau un nume de parametru, iar schița o urmează.",
"help.sketch.edit": "Deschide o schiță existentă pentru editare. Operațiile construite pe ea se actualizează când finalizați schița.",
"help.sketch.ellipse": "Desenează o elipsă după centrul ei, capătul axei mari și un punct pe latura mică. Folosiți-o pentru deschideri ovale, came și alte forme rotunde alungite.",
"help.sketch.equation_curve": "Desenează o curbă din formule: x(t) și y(t) sau y = f(x), pe un interval. Formulele pot folosi parametri, iar curba îi urmează: folosiți-o pentru o sinusoidă, o spirală sau evolventa unui dinte de roată dințată.",
"help.sketch.extend": "Prelungește o linie sau un arc până la cea mai apropiată curbă din calea lui sau extinde două curbe până se întâlnesc. Folosiți-o pentru a închide spațiile dintr-un profil după tăiere sau editare.",
"help.sketch.fillet": "Racordează colțul în care se întâlnesc două linii sau arce cu un arc de rază dată. Mai multe colțuri racordate împreună au aceeași rază.",
"help.sketch.finish": "Părăsește schița și revine la model. Profilurile ei închise sunt apoi gata pentru Extrudare, Revoluție și alte operații.",
"help.sketch.finish_auto_constrain": "Rulează Constrângere automată pe schiță, apoi o finalizează. Folosiți-o pentru a lăsa o schiță complet definită dintr-un singur pas.",
"help.sketch.fit_curves_to_section": "Taie un corp plasă sau solid cu planul schiței și potrivește linii și arce pe secțiune. Folosiți-o pentru a reconstrui o piesă scanată sau importată ca schiță editabilă.",
"help.sketch.include_3d": "Aduce în această schiță muchii ale modelului, vârfuri și curbe ale altor schițe, ca referințe legate, aplatizându-le pe plan pe cele aflate în afara lui. Folosiți-o pentru a construi pe geometrie care nu se află în planul schiței.",
"help.sketch.infinite": "Comută liniile între linii normale și linii infinite de construcție, care traversează toată vizualizarea. Folosiți-le ca referințe de trasare care nu se termină niciodată prea devreme.",
"help.sketch.insert_dxf": "Citește curbele unui desen DXF într-o schiță, scalate, rotite și plasate așa cum stabiliți. Folosiți-o pentru a construi pe un desen 2D din alt program, de exemplu un contur pentru tăiere cu laser.",
"help.sketch.insert_svg": "Citește traseele unui desen SVG într-o schiță, scalate, rotite și plasate așa cum stabiliți. Folosiți-o pentru a transforma un logo sau un contur vectorial în curbe pe care le puteți extruda.",
"help.sketch.inspect": "Deschide un raport despre schița deschisă: câte grade de libertate au rămas și dacă este complet constrânsă. Folosiți-l pentru a afla ce se mai mișcă înainte de a finaliza schița.",
"help.sketch.intersect": "Adaugă curbele sau punctele în care corpuri, fețe, muchii sau alte schițe taie planul schiței. Rămân legate și urmează modelul când acesta se schimbă.",
"help.sketch.intersection_curve": "Creează curbe 3D acolo unde se întâlnesc două corpuri sau fețe, legate de ele. Folosiți-le ca trasee sau ghidaje care urmează modelul.",
"help.sketch.isoparametric_curve": "Creează o curbă 3D pe direcția U sau V a unei fețe, printr-un punct ales de dumneavoastră, legată de față. Folosiți-o ca traseu sau linie de separare care urmează suprafața.",
"help.sketch.line": "Desenează linii conectate punct cu punct, ca lanț deschis sau contur închis. Este instrumentul de bază pentru majoritatea profilurilor.",
"help.sketch.line.midpoint": "Desenează o linie de la mijlocul ei spre un capăt, celălalt capăt fiind în oglindă. Folosiți-o pentru linii centrate pe un punct, de exemplu o muchie simetrică.",
"help.sketch.line3d": "Desenează linii drepte conectate între puncte din spațiu, cu Schiță 3D activată. Folosiți-o pentru traseele și cadrele care ies din planul schiței.",
"help.sketch.mirror": "Oglindește curbele și punctele de schiță față de o linie sau o axă și adaugă constrângeri de simetrie. Folosiți-o pentru a desena jumătate dintr-un profil simetric și a-l completa.",
"help.sketch.move": "Mută sau rotește curbe și puncte de schiță, ori o copie a lor. Folosiți-o pentru a repoziționa geometria, păstrându-i forma și constrângerile.",
"help.sketch.offset": "Creează o copie decalată a unui lanț de curbe, la o distanță dată, pe o parte sau pe ambele. Folosiți-o pentru pereți, contururi și jocuri; distanța rămâne o cotă editabilă.",
"help.sketch.paste": "Lipește în schița activă geometria de schiță pe care ați copiat-o sau decupat-o. Plasați-o într-un punct sau deplasați-o cu un decalaj.",
"help.sketch.pattern.circular": "Copiază geometria schiței în jurul unui punct central, pe un cerc complet sau pe un unghi dat. Folosiți-o pentru cercuri de șuruburi, spițe și dinți.",
"help.sketch.pattern.rectangular": "Copiază geometria schiței în rânduri și coloane, la distanțe stabilite. Folosiți-o pentru grile de găuri, canale sau ventilații.",
"help.sketch.point": "Plasează un punct de schiță. Folosiți-l ca referință pentru cote, constrângeri, centre de găuri sau operații ulterioare.",
"help.sketch.point3d": "Plasează un punct în spațiu, cu Schiță 3D activată. Folosiți-l ca referință pentru curbe și trasee 3D.",
"help.sketch.polygon.circumscribed": "Desenează un poligon regulat în jurul unui cerc, dimensionat de la centru până la mijlocul unei laturi. Folosiți-l când este cunoscută deschiderea cheii, ca la o piuliță hexagonală.",
"help.sketch.polygon.edge": "Desenează un poligon regulat din cele două capete ale unei laturi. Folosiți-l când sunt cunoscute lungimea și poziția unei laturi.",
"help.sketch.polygon.inscribed": "Desenează un poligon regulat în interiorul unui cerc, dimensionat de la centru până la un colț. Folosiți-l când este cunoscută dimensiunea între colțuri.",
"help.sketch.project": "Aduce în această schiță muchii ale modelului, fețe, vârfuri și curbe ale altor schițe, proiectate pe planul ei. Rămân legate și urmează modelul când acesta se schimbă.",
"help.sketch.project_to_surface": "Proiectează curbe ale altor schițe de-a lungul normalei acestei schițe pe o față, ca curbe 3D legate. Folosiți-o pentru a pune un logo, o linie de separare sau un traseu pe o suprafață curbă.",
"help.sketch.rectangle.center": "Desenează un dreptunghi după centrul și un colț al lui. Folosiți-l pentru contururi centrate pe un punct, de exemplu originea.",
"help.sketch.rectangle.rounded": "Desenează un dreptunghi cu toate cele patru colțuri rotunjite la aceeași rază. Folosiți-l pentru plăci, capace și deschideri cu colțuri rotunjite.",
"help.sketch.rectangle.three_point": "Desenează un dreptunghi dintr-o muchie și un punct de pe latura opusă. Folosiți-l pentru dreptunghiuri înclinate față de axele schiței.",
"help.sketch.rectangle.two_point": "Desenează un dreptunghi din două colțuri opuse. Folosiți-l pentru contururile plăcilor, blocurilor și buzunarelor.",
"help.sketch.scale": "Scalează curbe și puncte de schiță cu un factor față de un punct de bază. Folosiți-o pentru a redimensiona o parte a unei schițe fără a o desena din nou.",
"help.sketch.slot.arc_center": "Desenează un canal curbat, de lățime dată, de-a lungul unui arc stabilit prin centru, început și sfârșit. Folosiți-l pentru canale de reglaj în jurul unui pivot.",
"help.sketch.slot.arc_three_point": "Desenează un canal curbat, de lățime dată, de-a lungul unui arc prin trei puncte. Folosiți-l când traseul canalului trebuie să treacă prin puncte date.",
"help.sketch.slot.center_point": "Desenează un canal drept, de lățime dată, de la centrul lui până la centrul unui arc de capăt. Folosiți-l pentru canale centrate pe un punct.",
"help.sketch.slot.center_to_center": "Desenează un canal drept, de lățime dată, între centrele celor două arce de capăt. Folosiți-l pentru canale cotate de la centru la centru, de exemplu canale de reglaj pentru șuruburi.",
"help.sketch.slot.overall": "Desenează un canal drept, de lățime dată, de la un capăt exterior la celălalt. Folosiți-l când contează lungimea totală a canalului.",
"help.sketch.spline.control_point": "Desenează un spline cubic modelat de puncte de control prin care nu trece. Folosiți-l pentru curbe line și fluide pe care le modelați mutând punctele.",
"help.sketch.spline.control_point_5": "Desenează un spline de gradul 5 modelat de puncte de control. Folosiți-l unde curbele trebuie să se racordeze cu o curbură mai netedă, de exemplu pe suprafețe stilizate vizibile.",
"help.sketch.spline.fit_point": "Desenează un spline neted care trece prin fiecare punct plasat de dumneavoastră, deschis sau închis. Folosiți-l pentru a urmări o formă prin puncte cunoscute.",
"help.sketch.spline3d": "Desenează o curbă netedă în spațiu prin puncte, cu Schiță 3D activată. Folosiți-l pentru trasee de baleiere și trasee de cabluri care ies din planul schiței.",
"help.sketch.spun_profile": "Creează în planul schiței conturul pe care îl descrie un corp când se rotește în jurul unei axe. Folosiți-l pentru a obține silueta unei piese strunjite pentru o revoluție sau un desen.",
"help.sketch.text": "Scrie text în schiță, cu un font, o înălțime și un unghi alese; cuvintele pot urma parametri. Extrudați-l sau reliefați-l pentru etichete și inscripții.",
"help.sketch.transform": "Scalează, rotește și mută geometria schiței în jurul unui punct central, dintr-un singur pas. Folosiți-o pentru a repoziționa și redimensiona deodată o selecție.",
"help.sketch.trim": "Elimină bucata unei curbe dintre cele mai apropiate intersecții din jurul locului unde faceți clic. Folosiți-o pentru a curăța liniile suprapuse până obțineți un profil închis.",
"help.solid.align": "Mută corpurile selectate astfel încât un punct, o față sau un plan de pe ele să se întâlnească cu un punct, o față sau un plan din altă parte. Folosiți-l pentru a așeza o piesă lângă alta fără a măsura decalajul.",
"help.solid.boundary_fill": "Creează solide din regiunile închise de corpuri-sculă suprapuse, umplând doar regiunile pe care le alegeți. Folosiți-o pentru a construi o formă din spațiul delimitat împreună de mai multe corpuri.",
"help.solid.bounding_solid": "Creează o cutie care cuprinde corpurile selectate, cu o marjă opțională. Folosiți-l pentru a vedea dimensiunea generală a unei piese sau ca semifabricat din care se prelucrează.",
"help.solid.box": "Creează o cutie după lungime, lățime și înălțime, dintr-un punct de colț sau centrată pe un punct. Folosiți-o pentru un bloc rapid, un înlocuitor provizoriu sau un corp în care să tăiați operații.",
"help.solid.chamfer": "Teșește muchiile selectate cu o înclinare plană la distanța stabilită. Folosiți-l pentru a îndepărta muchiile ascuțite sau pentru a ușura introducerea unui pin sau a unui șurub.",
"help.solid.coil": "Creează un corp elicoidal, de exemplu un arc, după diametru, spire, înălțime sau pas și o secțiune rotundă sau pătrată. Folosiți-o pentru arcuri, bobine și nervuri elicoidale.",
"help.solid.combine": "Unește corpurile, le decupează dintr-un corp țintă sau păstrează doar volumul pe care îl au în comun și poate păstra corpurile-sculă. Folosiți-l pentru a îmbina piese, pentru a decupa o formă cu alta sau pentru a găsi unde se suprapun două corpuri.",
"help.solid.cone": "Creează un con după un cerc de bază și o înălțime sau un trunchi de con când și vârful are o rază. Folosiți-l pentru conicități, pâlnii, înfundări conice și vârfuri.",
"help.solid.cylinder": "Creează un cilindru după rază sau diametru și înălțime, așezat pe un punct de-a lungul unei axe. Folosiți-l pentru arbori, știfturi, bosaje și semifabricate rotunde.",
"help.solid.draft": "Înclină fețele selectate cu unghiul stabilit, măsurat de la un plan neutru. Folosiți-l la piese turnate sau matrițate pentru ca ele să iasă din matriță.",
"help.solid.emboss": "Ridică profile de schiță, de exemplu text sau un logo, dintr-o față sau le adâncește în ea. Folosiți-o pentru inscripții, etichete și marcaje pe fețe plane sau rotunde.",
"help.solid.extrude": "Împinge un profil de schiță în 3D pe o distanță, adăugând sau eliminând material. Folosiți-l pentru a transforma un contur plat într-un bloc, un bosaj sau un buzunar.",
"help.solid.fillet": "Racordează muchiile selectate cu un arc de cerc neted, de raza stabilită. Folosiți-l pentru a rotunji muchiile ascuțite din motive de rezistență, confort sau aspect.",
"help.solid.hole": "Execută o gaură rotundă de diametrul stabilit într-un punct ales al unei fețe. Folosiți-l pentru degajările șuruburilor, pentru pini și alte deschideri rotunde simple.",
@@ -1425,20 +1653,60 @@
"help.solid.move": "Mută sau rotește corpurile selectate, ori o copie a lor, cu distanța și unghiul stabilite. Se folosește pentru a repoziționa un corp sau pentru a crea un al doilea corp în alt loc.",
"help.solid.offset_face": "Împinge fețele selectate spre interior sau spre exterior cu distanța stabilită, iar fețele din jur le urmează. Se folosește pentru a îngroșa un perete, a adânci un buzunar sau a înălța un bosaj fără a edita schița.",
"help.solid.pattern.circular": "Repetă obiectele selectate în jurul unei axe, pentru numărul și unghiul total stabilite. Se folosește pentru cercuri de șuruburi, spițe, aripioare și dinți.",
"help.solid.pattern.path": "Copiază operații sau corpuri de-a lungul unui traseu de schiță, după număr și distanță. Folosiți-o pentru găuri de-a lungul unei muchii curbe sau piese de-a lungul unei șine.",
"help.solid.pattern.rectangular": "Repetă obiectele selectate pe una sau două direcții, cu numărul și spațierea stabilite. Se folosește pentru rânduri și grile de găuri, nervuri, știfturi sau picioare.",
"help.solid.pipe": "Creează un tub rotund de-a lungul unui traseu de curbe de schiță, plin sau gol, cu o grosime de perete. Folosiți-o pentru tuburi, fire, cabluri și șine.",
"help.solid.press_pull": "Adaugă sau elimină material pe măsură ce trageți o față sau racordează muchiile pe măsură ce le trageți. Se folosește pentru modificări rapide direct pe model.",
"help.solid.remove": "Elimină corpurile selectate din proiect începând de la acest punct al cronologiei; pașii anteriori le păstrează. Se folosește pentru a renunța la un corp auxiliar, de exemplu o sculă de tăiere de care nu mai aveți nevoie.",
"help.solid.replace_face": "Mută fețele plane selectate pe un plan sau pe o față paralelă, iar corpul crește sau se micșorează pentru a ajunge la ea. Se folosește pentru a aduce o față la același nivel cu o altă piesă sau cu un plan de construcție.",
"help.solid.revolve": "Rotește un profil de schiță în jurul unei axe pentru a crea un solid de revoluție. Se folosește pentru arbori, butoane, boluri și orice piesă rotundă în jurul unei linii de axă.",
"help.solid.rib": "Adaugă un perete subțire de-a lungul unei curbe de schiță deschise, extins până la fețele următoare ale corpului. Folosiți-o pentru a rigidiza pereți și colțuri, de exemplu în piese matrițate sau imprimate.",
"help.solid.scale": "Mărește sau micșorează corpurile selectate cu un factor, la fel în toate direcțiile sau câte unul pentru fiecare axă. Se folosește pentru a redimensiona o formă importată sau pentru a compensa contracția.",
"help.solid.shell": "Scobește un solid, lăsând pereți de grosimea stabilită, și poate deschide fețele alese. Se folosește pentru cutii, capace și alte piese cu pereți subțiri.",
"help.solid.sphere": "Creează o sferă după rază sau diametru în jurul unui punct central. Folosiți-o pentru bile, butoane și capete rotunjite.",
"help.solid.split_body": "Taie un corp în corpuri separate cu un plan, cu fața altui corp sau cu o linie de schiță. Se folosește pentru piese care sunt imprimate, prelucrate sau colorate separat.",
"help.solid.split_face": "Împarte fețele selectate de-a lungul unui plan, al feței altui corp sau al unor curbe de schiță, fără a tăia corpul. Se folosește pentru a da unei părți dintr-o față propria înclinare, culoare sau propriul decalaj.",
"help.solid.sweep": "Trage un profil de schiță de-a lungul unui traseu pentru a crea un solid. Se folosește pentru conducte, ghidaje, mânere și orice piesă cu secțiune constantă care urmează o curbă.",
"help.solid.thread": "Adaugă un filet metric ISO pe o față cilindrică, fie ca filet cosmetic, fie tăiat în corp. Folosiți-l pentru șuruburi, găuri filetate și piese imprimate cu filet.",
"help.solid.torus": "Creează un inel după o rază mare în jurul axei lui și o rază mică pentru secțiunea lui rotundă. Folosiți-l pentru garnituri O-ring, mânere și mărgele rotunde.",
"help.solid.web": "Adaugă un perete subțire de-a lungul fiecărei curbe de schiță deschise, fiecare extins până la fețele următoare ale corpului. Folosiți-o pentru o grilă de pereți de susținere în carcase și tăvi.",
"help.surface.blend": "Creează o suprafață care leagă muchiile a două corpuri, tangentă sau cu curbură continuă la ambele. Folosiți-o pentru a uni lin două suprafețe peste un spațiu.",
"help.surface.boundary": "Creează o suprafață care umple o buclă de două până la patru curbe de schiță sau o rețea de curbe. Folosiți-o pentru panouri cu formă liberă definite de muchiile lor.",
"help.surface.extend": "Prelungește o suprafață dincolo de muchiile ei, cu o distanță sau până la un plan ori o față. Folosiți-o pentru ca suprafețele să se suprapună înainte de a le tăia sau coase.",
"help.surface.extrude": "Împinge curbe sau profile de schiță pe o distanță într-o suprafață, doar pereți, fără capace. Folosiți-o pentru pereți subțiri și pentru scule de tăiere sau de împărțire.",
"help.surface.fair": "Netezește interiorul fețelor cu formă liberă, în timp ce muchiile lor rămân pe loc. Folosiți-o pentru a uniformiza denivelările și reflexiile ondulate dintr-o suprafață.",
"help.surface.loft": "Creează o suprafață care trece prin două sau mai multe secțiuni, în ordine, fără capace. Folosiți-l pentru carcase și tranziții între forme diferite.",
"help.surface.match": "Reconstruiește muchia unei suprafețe astfel încât să se întâlnească cu muchia altui corp, cu tangență sau curbură potrivită. Folosiți-o pentru a închide lin o cusătură între două suprafețe.",
"help.surface.offset": "Creează o copie a fețelor la o distanță, de-a lungul normalelor lor, ca nou corp suprafață. Folosiți-o pentru învelișuri, jocuri sau cealaltă parte a unui perete.",
"help.surface.patch": "Umple o regiune de schiță sau o buclă închisă de muchii cu o față, plană sau curbată lin. Folosiți-l pentru a închide găuri într-un corp suprafață.",
"help.surface.reverse_normal": "Întoarce fețele unui corp suprafață, astfel încât exteriorul lor să privească în cealaltă direcție. Folosiți-o înainte de îngroșare sau de coasere, când fețele sunt orientate spre interior.",
"help.surface.revolve": "Rotește curbe sau profile de schiță în jurul unei axe într-o suprafață, fără capace. Folosiți-o pentru carcase rotunde, cum sunt abajururile, vasele și duzele.",
"help.surface.ruled": "Creează o fâșie de linii drepte pornind dintr-un lanț de muchii, pe direcția normalei sau a tangentei fețelor ori sub un unghi. Folosiți-o pentru pereți înclinați, zone de ieșire și suprafețe de separare.",
"help.surface.stitch": "Coase corpurile suprafață între ele de-a lungul muchiilor comune, într-un solid când se închid. Folosiți-o pentru a transforma un set de suprafețe într-un singur corp.",
"help.surface.sweep": "Mută curbe sau profile de schiță de-a lungul unui traseu într-o suprafață, fără capace. Folosiți-o pentru jgheaburi, ornamente și alte forme subțiri care urmează un traseu.",
"help.surface.thicken": "Dă unui corp suprafață o grosime, transformându-l într-un solid. Folosiți-o pentru a face piese imprimabile sau prelucrabile din suprafețe.",
"help.surface.trim": "Taie o suprafață cu un plan, o altă suprafață sau curbe de schiță și păstrează partea pe care o alegeți. Folosiți-o pentru a tăia suprafețele la formă înainte de coasere.",
"help.surface.unstitch": "Separă fețele unui corp în corpuri suprafață proprii; un solid se desface în suprafețe. Folosiți-o pentru a reface fețe individuale ale unui corp.",
"help.surface.untrim": "Elimină găurile dintr-o față sau readuce conturul ei exterior la limitele naturale ale suprafeței. Folosiți-o pentru a recupera suprafața întreagă după o tăiere.",
"help.third_party": "Licențe terțe",
"help.timeline.compute_all": "Reconstruiește toate operațiile din cronologie, de la început. Se folosește pentru a reîmprospăta modelul și a vedea ce operații eșuează.",
"help.timeline.delete": "Șterge operațiile selectate din cronologie; ștergerea unei schițe șterge și operațiile construite din ea. Se folosește pentru a elimina un pas care nu mai este dorit.",
"help.timeline.dependents": "Listează operațiile care ar fi șterse odată cu o operație și pe cele care ar eșua fără ea. Folosiți-o înainte de a șterge sau a modifica o operație.",
"help.timeline.play": "Redă operațiile rămase pe rând, cu o pauză de o jumătate de secundă după fiecare reconstrucție. Rulați din nou această comandă sau apăsați Escape pentru a opri; Mergi la sfârșit sare imediat.",
"help.view.apply": "Rotește vizualizarea într-o direcție standard, de exemplu față, sus sau izometrică, sau într-o vizualizare numită salvată. Folosiți-o pentru a privi modelul dintr-un unghi fix.",
"help.view.delete": "Șterge o vizualizare numită salvată. Modelul nu este modificat.",
"help.view.fit": "Mărește și panoramează astfel încât tot modelul sau selecția să umple vizualizarea. Folosiți-o când modelul a ieșit din câmpul vizual.",
"help.view.grid": "Afișează sau ascunde grila din fereastra de vizualizare. Folosiți-o ca ghid de dimensiune și orientare în timpul modelării.",
"help.view.ground_shadow": "Afișează sau ascunde umbra modelului pe sol. Folosiți-o pentru a aprecia mai ușor înălțimea și poziția.",
"help.view.home": "Readuce vizualizarea la direcția de start și încadrează modelul. Folosiți-o pentru a reveni rapid la o vizualizare cunoscută.",
"help.view.list": "Listează vizualizările numite salvate în proiect. Folosiți-o pentru a găsi o vizualizare salvată mai devreme.",
"help.view.navigate": "Rotește, panoramează sau mărește vizualizarea în pași, de exemplu un sfert de rotație la stânga. Folosiți-o pentru a mișca precis camera în loc să trageți.",
"help.view.navigation_bar": "Afișează sau ascunde bara de navigare din partea de jos a ferestrei de vizualizare. Ascundeți-o pentru mai mult spațiu, afișați-o pentru a ajunge cu mouse-ul la instrumentele de vizualizare.",
"help.view.rename": "Dă un nume nou unei vizualizări numite salvate. Vizualizarea în sine rămâne neschimbată.",
"help.view.save": "Salvează poziția curentă a camerei ca vizualizare numită în proiect. Folosiți-o pentru a reveni mai târziu la același unghi, de exemplu pentru capturi de ecran.",
"help.view.spin": "Orbitează continuu vizualizarea în jurul modelului până la următorul clic sau la următoarea tastă. Folosiți-o pentru a prezenta un model din toate părțile.",
"help.view.tool": "Fixează un instrument de cameră, orbitare, panoramare sau zoom, astfel încât tragerea cu butonul stâng al mouse-ului să miște vizualizarea până îl dezactivați. Folosiți-l pe un trackpad sau fără buton de mijloc la mouse.",
"help.view.visual_style": "Schimbă modul în care este desenat modelul: umbrit cu sau fără muchii, cadru de sârmă sau cu muchii ascunse. Folosiți cadrul de sârmă pentru a vedea înăuntru, umbrirea pentru un aspect curat.",
"history.sketch_under_constrained": "Constrângeri insuficiente ({count} grade de libertate)",
"history.sketch_under_constrained_one": "Constrângeri insuficiente ({count} grad de libertate)",
"hole_presets.confirm_delete": "Confirmă ștergerea",
@@ -1615,6 +1883,10 @@
"material.selection.mixed": "Materiale diferite",
"measure.at": "La",
"measure.item": "Element {number}",
"measure.quick_copied": "Măsurătoare copiată",
"measure.quick_copy": "Clic pentru a copia măsurătoarea",
"measure.quick_edges": "{count} muchii",
"measure.quick_faces": "{count} fețe",
"messages.ago_h": "acum {n} h",
"messages.ago_min": "acum {n} min",
"messages.ago_s": "acum {n} s",
@@ -1648,6 +1920,7 @@
"nav.hfss.help": "Alt+tragere cu butonul stâng: panoramare, Shift+Alt+tragere cu butonul stâng: zoom, Ctrl+tragere cu butonul stâng pe spațiu gol: orbitare",
"nav.inventor.help": "Tragerea cu mijlocul panoramează, Shift+mijloc orbitează, Ctrl+mijloc face zoom, tragerea cu dreapta orbitează",
"nav.maya.help": "Alt+tragere cu butonul stâng: orbitare, Alt+butonul din mijloc: panoramare, Alt+butonul drept: zoom; tragerea cu butonul din mijloc face de asemenea panoramare",
"nav.nx.help": "Tragerea cu mijlocul orbitează, Shift+mijloc panoramează (mijloc + dreapta în NX), Ctrl+mijloc face zoom (mijloc + stânga în NX); tragerea cu dreapta nu mișcă camera",
"nav.openscad.help": "Tragerea cu stânga pe spațiu gol orbitează, Shift+tragere cu stânga selectează cu casetă, tragerea geometriei schiței o editează; tragerea cu dreapta sau cu mijlocul panoramează, Shift+tragere cu dreapta sau Shift+tragere cu mijlocul face zoom",
"nav.perspective.sketch": "Editarea schiței folosește vizualizarea ortografică. Finalizați schița pentru a comuta la perspectivă.",
"nav.right_drag_orbits.help": "Dezactivat: tragerea cu dreapta nu mișcă camera, iar butonul drept doar deschide meniul contextual. Alegerea mapării de mouse SolidWorks dezactivează această opțiune.",
@@ -1767,6 +2040,11 @@
"not a move": "nu este o mutare",
"not a number": "nu este un număr",
"open a sketch first": "deschideți mai întâi o schiță",
"parameters.apply_live": "Aplică fiecare modificare la ieșirea din câmpul ei",
"parameters.apply_live_tip": "Dezactivat: modificările așteaptă până la Aplică sau OK, apoi proiectul se reconstruiește o singură dată pentru toate. Anulează sau Escape le abandonează.",
"parameters.held": "{count} modificări în așteptare până la Aplică",
"parameters.held_hint": "Editați expresii și unități. Modificările așteaptă până la Aplică sau OK.",
"parameters.held_one": "1 modificare în așteptare până la Aplică",
"parts.automatic_name": "automat",
"parts.dimension.across_flats": "Deschidere cheie",
"parts.dimension.bore": "Alezaj",
@@ -1789,6 +2067,8 @@
"parts.family.set_screw": "Șurub de fixare cu locaș hexagonal, vârf plat",
"parts.family.socket_head_cap_screw": "Șurub cu cap cilindric și locaș hexagonal",
"parts.family.washer": "Șaibă plată",
"parts.holes": "Găuri (opțional)",
"parts.placement_hint": "alegeți una sau mai multe găuri pentru a așeza câte o piesă în fiecare, sau OK plasează piesa în origine",
"pattern.alignment_2": "Aliniere 2",
"pattern.alignment_hint": "Numărul include originalul. Centrat echilibrează copiile; Inversare alege partea suplimentară pentru totaluri pare.",
"pattern.direction_1": "Direcția 1",
@@ -1862,6 +2142,8 @@
"prefs.ctrl_cmd": "Ctrl / Cmd",
"prefs.curved_surfaces": "Suprafețe curbe",
"prefs.curves": "Suprafețe curbe",
"prefs.dark_parts_shading": "Păstrează forma pieselor întunecate",
"prefs.dark_parts_shading_help": "Umbrește vizualizarea în lumină liniară, cu o lumină de umplere moale de la cer, astfel încât fețele întunecate să păstreze un gradient în loc să devină negre",
"prefs.dead_zone_note": "Banda hașurată este zona moartă: mișcarea din interiorul ei este ignorată.",
"prefs.default": "implicit",
"prefs.design": "Valori implicite ale proiectului",
@@ -1876,6 +2158,8 @@
"prefs.edges": "Muchii și umbrire",
"prefs.extend": "Prelungește",
"prefs.extra_navigation": "Ctrl+tragere cu butonul stâng pe un spațiu gol orbitează; țineți apăsat Space pentru panoramare.",
"prefs.extrude_view_isometric": "Treci la vizualizarea izometrică la deschiderea Extrudării",
"prefs.extrude_view_return": "Revino la vizualizarea anterioară la închiderea Extrudării",
"prefs.follows_os": "Urmează sistemul de operare",
"prefs.font": "Font",
"prefs.font_fallback": "Glifele care lipsesc din fontul ales trec la fontul încorporat, astfel încât nicio etichetă să nu afișeze un pătrat gol.",
@@ -1891,6 +2175,7 @@
"prefs.graphics_card_auto": "Automat",
"prefs.graphics_card_missing": "Placa video salvată nu este disponibilă; se folosește Automat.",
"prefs.graphics_card_restart": "Intră în vigoare după repornirea SolidCraft. WGPU_ADAPTER_NAME suprascrie această alegere.",
"prefs.graphics_card_unused": "Placa video salvată nu a fost folosită pentru această fereastră; placa în uz este afișată în Ajutor › Despre și în bara de stare. Încercați Automat sau setați WGPU_ADAPTER_NAME la o parte unică din numele plăcii.",
"prefs.graphics_note": "Alegeți între viteză și netezime. Fiecare opțiune își arată efectul pe un eșantion.",
"prefs.graphics_presets_note": "Presetările stabilesc împreună opțiunile de mai jos.",
"prefs.hide_constraint_glyphs_zoomed_out": "Ascunde simbolurile de constrângere la micșorare",
@@ -1905,6 +2190,8 @@
"prefs.history_sketches_note": "Cu Schițe setat la Sub operația lor, Istoricul din stânga listează fiecare schiță cu un nivel mai în interior, sub prima operație construită din ea, ori de câte ori este suficient de lat pentru nume. Cronologia din partea de jos păstrează întotdeauna ordinea creării.",
"prefs.history_sketches_under_feature": "Sub operația lor",
"prefs.hold_stop_snapping": "Țineți apăsat pentru a opri agățarea",
"prefs.home_fit_size": "Dimensiunea pentru Acasă și Potrivire",
"prefs.home_fit_size_note": "Cât din vizualizare umple modelul când Acasă, Potrivire, un proiect deschis sau o schimbare de vizualizare din navigatorul de vizualizare îi stabilește încadrarea, indiferent dacă setarea de mai jos este activată sau nu. 100 %: umple vizualizarea dintre panouri, busolă și bara de navigare.",
"prefs.icons_only": "Doar pictograme",
"prefs.imported_file": "Fișier importat",
"prefs.in_browser": "În navigator",
@@ -1913,13 +2200,20 @@
"prefs.interface_language": "Limba interfeței",
"prefs.interface_note": "Cum arată SolidCraft și unde sunt așezate elementele sale.",
"prefs.interval_minutes": "{n} min",
"prefs.invert_navigator_arrows": "Inversează săgețile de rotație ale cubului de vizualizare",
"prefs.invert_navigator_arrows_note": "Săgețile din jurul cubului rotesc camera în jurul modelului în direcția în care indică, ca în Fusion și Inventor: săgeata din stânga indică spre dreapta și rotește camera spre dreapta. Dezactivat: o săgeată rotește cubul spre partea pe care se află, deci săgeata din stânga rotește camera spre stânga. Săgețile curbe de ruliu nu sunt afectate.",
"prefs.keep_work_on_tab_switch": "Păstrează deschise dialogurile și instrumentele la schimbarea proiectului",
"prefs.keep_work_on_tab_switch_note": "Fiecare filă de proiect își păstrează dialogul sau instrumentul deschis, cu ce ați ales și ați tastat în el, și fila ei din bara de instrumente. Le regăsiți când reveniți la proiect. Dezactivat: schimbarea proiectului le anulează și afișează fila Model.",
"prefs.labels": "Etichete",
"prefs.language_system": "Sistem",
"prefs.layout": "Dispunere",
"prefs.layout_note": "Compact fixează panourile la marginile ferestrei. Transparența navigatorului este disponibilă în modul Plutitor. Schimbați partea Asistentului în pagina Asistent.",
"prefs.left": "Stânga",
"prefs.left_click": "Clic stânga",
"prefs.line_drag_draws_one": "Apăsarea și tragerea desenează o singură linie",
"prefs.line_drag_draws_one_note": "În instrumentul Linie, apăsarea, tragerea și eliberarea desenează o singură linie de la punctul apăsării la cel al eliberării, iar linia se termină acolo. Clicurile desenează în continuare un lanț. Dezactivat: o tragere plasează un punct acolo unde este eliberată, la fel ca un clic.",
"prefs.line_hover_tangent_arc": "Oprește indicatorul pe ultimul punct al unei linii pentru a trece la un arc tangent",
"prefs.line_hover_tangent_arc_note": "În instrumentul Linie, după ce a fost desenat un segment, îndepărtați-vă de ultimul punct al lanțului, reveniți și țineți indicatorul nemișcat pe el: următorul clic încheie un arc tangent, iar același gest revine la linii. Dezactivat: oprirea acolo nu face nimic.",
"prefs.linked_designs": "Proiecte legate",
"prefs.live_input": "Intrare în timp real",
"prefs.live_preview": "Previzualizare în timp real",
@@ -1943,6 +2237,8 @@
"prefs.mouse_mapping": "Mapare mouse",
"prefs.navigation": "Navigare",
"prefs.navigation_note": "Cum mută vizualizarea mouse-ul, trackpadul și mouse-ul 3D.",
"prefs.navigator_fit": "Potrivește modelul după o schimbare de vizualizare din navigator",
"prefs.navigator_fit_note": "O față, un colț sau o săgeată a cubului de vizualizare ori o axă a reperului de orientare privește și spre mijlocul modelului, de la singura distanță care îl cuprinde din toate părțile (sfera lui de încadrare). Acasă folosește același zoom și același centru cât timp opțiunea este activată, așa că vizualizările alese după aceea doar se rotesc. Dezactivat: vizualizarea se rotește pe loc, păstrându-și ținta și zoomul.",
"prefs.network_host_remove": "Elimină",
"prefs.network_locations": "Permite locațiile de rețea în proiecte",
"prefs.network_locations_note": "Dezactivat: fișierele legate ale unui proiect aflate pe alt computer (\\\\server\\share) se deschid doar de pe serverele listate aici sau după ce permiteți unul, când vi se cere.",
@@ -1955,6 +2251,8 @@
"prefs.origin_plane_names": "Numele planelor de origine",
"prefs.origin_plane_names_note": "Nume afișate în navigator, în dialoguri și în liste. {top} este XY, {front} este XZ și {right} este YZ, cu Z în sus. Comenzile, scripturile și proiectele salvate păstrează XY, XZ și YZ.",
"prefs.overall_speed": "Viteză generală",
"prefs.parameter_list_rows": "Rânduri în lista de parametri",
"prefs.parameter_list_rows_tip": "Săgeata în jos dintr-un câmp de valoare gol listează parametrii, favoriții primii, până la acest număr. Un număr mai mic menține lista ușoară într-un proiect mare.",
"prefs.persistent_ribbon_pressed": "Evidențiază comenzile active din panglică",
"prefs.persistent_ribbon_pressed_help": "Evidențiază comenzile din panglică cât timp efectele lor sunt active. Dezactivați pentru a păstra aspectul neutru anterior și ajutorul pentru comenzi.",
"prefs.perspective_fov": "Câmp vizual",
@@ -1984,9 +2282,13 @@
"prefs.quality_fastest": "cel mai rapid",
"prefs.quality_slowest": "cel mai lent",
"prefs.quality_smoother": "mai neted",
"prefs.quick_measure": "Măsurătoare rapidă în colțul vizualizării",
"prefs.quick_measure_note": "Dimensiunea selecției în colțul din dreapta jos al vizualizării: lungimea unei muchii sau Ø și R pentru una rotundă, aria unei fețe, poziția unui punct, distanța și unghiul dintre două elemente, totalul mai multor muchii sau fețe. Un clic o copiază.",
"prefs.render_previous_geometry_budget": "Folosește bugetul anterior de geometrie pentru previzualizarea din Randare",
"prefs.render_previous_geometry_budget_help": "Restabilește limita fixă anterioară de geometrie (512 MiB pe desktop pe 64 de biți, 128 MiB în rest) în locul bugetului bazat pe dispozitiv.",
"prefs.reports_saved": "{n} salvate",
"prefs.ribbon_click_ends_tool": "Un clic pe butonul instrumentului în uz îl încheie",
"prefs.ribbon_click_ends_tool_note": "Un clic pe butonul evidențiat din panglică al instrumentului de schiță în uz încheie instrumentul, astfel încât clicurile din vizualizare selectează din nou. Dezactivat: clicul pornește din nou instrumentul.",
"prefs.ribbon_reveal": "Afișează rezultatele căutării în panglică",
"prefs.ribbon_reveal_note": "Trecerea cursorului peste un rezultat din Caută comenzi arată unde se află comanda în panglică: fila, butonul sau rândul ei din lista derulantă a unui panou. O comandă pornită din căutare clipește acolo, iar o comandă în curs pornită dintr-o listă derulantă îi marchează panoul.",
"prefs.right_click": "Clic dreapta",
@@ -2016,6 +2318,8 @@
"prefs.sketch_exit_view.previous": "Revino la vizualizarea anterioară",
"prefs.sketch_exit_view.unless_rotated": "Revino, dacă nu a fost rotită",
"prefs.sketch_exit_view_note": "Unde ajunge vizualizarea după Finalizează schița, Anulează sau un dublu Esc.",
"prefs.sketch_face_activates_part": "Schițarea pe fața unei piese activează acea piesă",
"prefs.sketch_face_activates_part_note": "O schiță începută pe fața unui corp al altei componente activează mai întâi acea componentă, astfel încât schița îi aparține și rămâne cu acea piesă în Navigator. Piesa rămâne activă după aceea. Dezactivat: schița aparține componentei active.",
"prefs.sketch_open_look_at": "Rotește vizualizarea spre schiță la deschiderea ei",
"prefs.sketch_open_look_at_note": "Dezactivat: crearea sau editarea unei schițe lasă vizualizarea neschimbată. Comanda Privește spre orientează vizualizarea spre schiță atunci când doriți.",
"prefs.sketch_recent_snap": "Agățare automată la centrele și punctele de mijloc recente",
@@ -2029,6 +2333,8 @@
"prefs.sketch_tab_always_note": "Fila Schiță rămâne în panglică, imediat după Model, cât timp nu este deschisă nicio schiță. Sculele ei de desenare pornesc atunci o schiță pe planul sau fața selectată ori pe planul pe care îl alegeți în continuare, cu scula deja activă în ea.",
"prefs.sketch_tracking_guides": "Ghiduri de aliniere pentru centru și punct de mijloc",
"prefs.sketch_tracking_guides_note": "Treceți cu cursorul peste centrul unui cerc sau peste mijlocul unei linii drepte, apoi deplasați-vă orizontal sau vertical pentru a afișa un ghid punctat temporar.",
"prefs.sketch_tracking_points": "Ghiduri de aliniere de la capete și colțuri în timpul desenării",
"prefs.sketch_tracking_points_note": "Cât timp un instrument de desen așteaptă un punct, trecerea cursorului peste capătul unei linii sau al unui arc, peste un colț de dreptunghi sau peste un punct liber arată același ghid punctat temporar ca la un centru sau un punct de mijloc. Dezactivat: doar centrele și punctele de mijloc.",
"prefs.sketching": "Schițare",
"prefs.snap_drawing_note": "În timp ce desenați sau trageți un punct de schiță.",
"prefs.source": "Sursă",
@@ -2045,6 +2351,24 @@
"prefs.status_error": "Eroare",
"prefs.status_selected": "Selectat",
"prefs.status_warning": "Avertisment",
"prefs.structure.appearance": "Aspect",
"prefs.structure.appearance_note": "Culori, text și accesibilitate.",
"prefs.structure.in_profile": "În profil",
"prefs.structure.layout": "Dispunere",
"prefs.structure.layout_note": "Unde se află părțile ferestrei.",
"prefs.structure.look": "Stil",
"prefs.structure.measure_pointer": "Măsurare și indicator",
"prefs.structure.mouse3d": "Mouse 3D",
"prefs.structure.mouse3d_note": "SpaceMouse și SpaceNavigator.",
"prefs.structure.navigation_note": "Mouse și trackpad. Mouse-ul 3D are propria pagină.",
"prefs.structure.profile": "Profil",
"prefs.structure.profile_edited": "Modificat de la salvare",
"prefs.structure.profile_hover": "Salvat în profilurile de setări",
"prefs.structure.scale_percent": "{percent}%",
"prefs.structure.sketch": "Schiță",
"prefs.structure.tools": "Instrumente",
"prefs.structure.tools_note": "Cum se comportă instrumentele de modelare.",
"prefs.structure.work": "Lucru",
"prefs.supersampling_brief": "Desenează vizualizarea mai mare și o filtrează la dimensiunea finală: foarte clar, dar mai solicitant.",
"prefs.tab_accent_note": "Accentul urmează fila activă",
"prefs.theme_file": "fișier de temă",
@@ -2056,6 +2380,16 @@
"prefs.theme_follow_off": "Dezactivat",
"prefs.theme_follow_stop": "Oprește urmărirea",
"prefs.theme_import_hint": "Faceți clic pentru a alege un fișier de temă, trageți unul aici sau apăsați Ctrl+V (Cmd+V pe Mac) cu o temă copiată",
"prefs.theme_option_opacity": "Opacitate",
"prefs.theme_option_opacity_help": "Reglați opacitatea panourilor flotante. Un prag de lizibilitate protejează textul de deasupra culorilor ferestrei de vizualizare.",
"prefs.theme_option_tab_colours": "Culorile filelor",
"prefs.theme_option_tab_colours_help": "Folosește culorile panourilor și ale ferestrei de vizualizare ale acestei teme pentru fiecare filă din panglică.",
"prefs.theme_option_tab_fade_ms": "Tranziția filelor",
"prefs.theme_option_tab_fade_ms_help": "Estompează culorile panourilor și ale ferestrei de vizualizare la schimbarea filelor. Zero comută instantaneu.",
"prefs.theme_options_badge": "Opțiuni",
"prefs.theme_options_more": "Mai multe · {count}",
"prefs.theme_options_reset": "Resetează",
"prefs.theme_options_unavailable": "Indisponibil pe acest dispozitiv",
"prefs.theme_paste": "Lipește tema",
"prefs.theme_paste_none": "Clipboardul nu conține nicio temă SolidCraft",
"prefs.timeline_half_hour": "−30 min",
@@ -2077,6 +2411,8 @@
"prefs.under_cursor": "Sub cursor",
"prefs.units_precision": "Unități și precizie",
"prefs.updates": "Actualizări",
"prefs.value_boxes_in_view": "Arată valorile lângă mânerele lor în vizualizare",
"prefs.value_boxes_in_view_tip": "Valoarea unei comenzi (Distanță, Rază…) într-o casetă lângă mânerul ei, deasupra modelului. Dezactivat: o tastați în fereastra comenzii, care preia tastatura după o alegere, și nimic nu acoperă modelul.",
"prefs.view": "Comportamentul vizualizării",
"prefs.view_confirm_corner": "OK și Anulează în colțul vizualizării",
"prefs.view_confirm_corner_note": "Cât timp este deschis un dialog sau o schiță, o bifă și o cruce în dreapta sus a vizualizării fac ce fac OK și Anulează din dialog, sau finalizează și anulează schița. Controlul de navigare al vizualizării se mută mai jos, sub ele.",
@@ -2086,6 +2422,12 @@
"prefs.viewport_background": "Fundal",
"prefs.viewport_background_colour": "Culoare",
"prefs.viewport_background_theme": "Gradientul temei",
"prefs.viewport_section_status": "Afișează starea secțiunii în fereastra de vizualizare",
"prefs.viewport_section_status_help": "Afișează setarea secțiunii în fereastra de vizualizare. Escape și butonul activ din panglică o dezactivează. Dezactivați pentru a păstra comenzile anterioare ale secțiunii.",
"prefs.viewport_status_details": "Detalii live ale ferestrei de vizualizare",
"prefs.viewport_status_details_help": "Editați setările active de analiză și de secțiune în carduri standard de detalii. Dezactivați pentru a restabili legendele de analiză doar în citire și dialogul Secțiune.",
"prefs.viewport_status_summary": "Restrânge elementele de stare ale ferestrei de vizualizare",
"prefs.viewport_status_summary_help": "Restrânge trei sau mai multe elemente de stare ale ferestrei de vizualizare într-o singură etichetă rezumat. Dezactivați pentru a păstra toate elementele în rândul complet.",
"prefs.wheel": "Rotiță",
"prefs.wheel_trackpad": "Rotiță și trackpad",
"prefs.workspace": "Spațiu de lucru",
@@ -2964,7 +3306,9 @@
"render.output_ready": "Gata de randare",
"render.output_run_check": "Rulează verificarea",
"render.output_size_limit": "{method}: până la {dimension} px pe latură și {pixels} pixeli. Cea mai mare dimensiune care încape: {width} × {height}.",
"render.output_size_method_profile": "Pentru a randa {width} × {height}, alegeți {method} cu profilul de resurse CPU {profile} sau o dimensiune mai mică.",
"render.output_size_ok": "Dimensiune OK · {width} × {height} px",
"render.output_size_profile": "Pentru a randa {width} × {height}, alegeți profilul de resurse CPU {profile} sau o dimensiune mai mică.",
"render.output_swap_orientation": "Interschimbă lățimea și înălțimea",
"render.output_tools_inspector": "Editați dimensiunea și formatul în inspectorul Ieșire.",
"render.output_view_image": "Vizualizează imaginea",
@@ -3177,6 +3521,7 @@
"render.size_custom": "Personalizat…",
"render.size_full_hd": "Full HD",
"render.size_hd": "HD",
"render.size_needs_profile": "{size} · necesită {profile}",
"render.size_presets": "Presetări de dimensiune",
"render.size_presets_pending": "Apare odată cu editorul de ieșire",
"render.size_preview": "Previzualizare",
@@ -3464,6 +3809,24 @@
"sheet.flange_type_contour": "Contur",
"sheet.flange_type_edge": "Muchie",
"sheet.no_body": "nu există un corp din tablă: începeți unul cu Flanșă > Bază sau transformați o placă în tablă cu Convertește în tablă (alegeți fața ei mare și plată)",
"sheet.personal_rules.confirm_delete": "Confirmă ștergerea",
"sheet.personal_rules.delete": "Șterge",
"sheet.personal_rules.delete_prompt": "Ștergeți această regulă personală? Regulile deja existente în proiecte rămân neschimbate.",
"sheet.personal_rules.full": "Biblioteca personală conține deja 64 de reguli.",
"sheet.personal_rules.invalid_name": "Introduceți un nume scurt, fără întreruperi de rând sau caractere de control.",
"sheet.personal_rules.invalid_values": "Completați valorile regulii: fiecare trebuie să poată fi calculată în acest proiect, cu o grosime pozitivă și un factor K între 0 și 1.",
"sheet.personal_rules.missing": "Regula personală selectată nu mai este disponibilă.",
"sheet.personal_rules.name": "Numele regulii",
"sheet.personal_rules.name_exists": "Există deja o regulă personală cu acest nume. Folosiți alt nume.",
"sheet.personal_rules.name_hint": "Un nume unic",
"sheet.personal_rules.overwrite": "Salvează modificările în regula personală selectată",
"sheet.personal_rules.rename": "Redenumește",
"sheet.personal_rules.rule": "Regulă personală",
"sheet.personal_rules.save": "Salvează ca nouă",
"sheet.personal_rules.scope": "Salvată în profil, pentru toate proiectele.",
"sheet.personal_rules.select": "Alegeți o regulă",
"sheet.personal_rules.title": "Reguli personale",
"sheet.personal_rules.unsupported": "Această regulă are valori pe care această versiune nu le poate folosi.",
"shortcut.json_error": "parametrii trebuie să fie JSON: {error}",
"shortcut.no_command": "nu există comanda `{id}`; textul dinaintea JSON trebuie să fie un id de comandă",
"shortcut.pin": "Fixează în partea de sus a casetei S",
@@ -3500,8 +3863,10 @@
"sketch_text.align_right": "Dreapta",
"sketch_text.bold": "Aldin",
"sketch_text.builtin_font": "{family} (încorporat)",
"sketch_text.formula": "Începeți cu = pentru a construi cuvintele din parametri: ='W' + number(Width)",
"sketch_text.italic": "Cursiv",
"sketch_text.loading_fonts": "Se caută fonturile instalate…",
"sketch_text.no_bold": "Fontul încorporat nu are variantă aldină: alegeți un font instalat",
"sketch_text.on_path": "Textul urmează traseul său: curba îl poziționează",
"sketch_text.path_clear": "Scoate textul de pe curbă",
"sketch_text.path_hint": "O curbă a schiței pe care o urmează textul: faceți clic aici, apoi pe curbă",
@@ -3640,6 +4005,8 @@
"ui.3d_mouse_section": "Mouse 3D",
"ui.3d_mouse_show_in_view": "Afișează mouse-ul 3D în vizualizarea 3D",
"ui.3d_mouse_show_in_view_tip": "O imagine a mouse-ului 3D în colțul din stânga jos, care se mișcă odată cu el.",
"ui.3d_mouse_sketch_orbit": "Rotește schițele cu mouse-ul 3D",
"ui.3d_mouse_sketch_orbit_tip": "Mouse-ul 3D rotește vizualizarea și când o schiță este deschisă și privită frontal, așa cum poate face mouse-ul. Dezactivat: panoramează și mărește schița până când înclinați vizualizarea.",
"ui.3d_mouse_skip": "Dispozitivul meu nu poate face asta",
"ui.3d_mouse_skip_tip": "Omite această mișcare în ambele sensuri, iar calibrarea o lasă deoparte.",
"ui.3d_mouse_speed": "Viteza mouse-ului 3D",
@@ -3708,6 +4075,7 @@
"ui.agent_chat_auth_terminal": "Rulați aceasta într-un terminal, apoi apăsați din nou Conectare:",
"ui.agent_chat_auth_title": "Autentificare la agent",
"ui.agent_chat_cancel": "Anulează",
"ui.agent_chat_cannot_start": "Instalat, dar nu pornește: {error}",
"ui.agent_chat_changes": "Modificări: {n}, un singur pas de anulare",
"ui.agent_chat_changes_n": "{n} modificări",
"ui.agent_chat_changes_of": "{n}/{limit} modificări",
@@ -3800,9 +4168,12 @@
"ui.agent_chat_queued_stopped": "În coadă (oprit, netrimis)",
"ui.agent_chat_refresh": "Reîmprospătare",
"ui.agent_chat_refused": "Nepermis pentru agent: {reason}",
"ui.agent_chat_reinstall": "{agent} este instalat ({program}), dar nu a pornit când SolidCraft l-a verificat: {error}\nInstalarea lui poate fi incompletă sau făcută pentru alt tip de calculator. Instalați-l din nou cu `{install}`, verificați într-un terminal că afișează versiunea, apoi apăsați Reîmprospătare.",
"ui.agent_chat_remove": "Elimină din coadă",
"ui.agent_chat_remove_file": "Scoate-l din acest mesaj",
"ui.agent_chat_remove_imported": "Scoate-l din acest mesaj; piesa rămâne în proiect (Anulare o elimină)",
"ui.agent_chat_reply_cut_off": "Răspunsul a atins limita de lungime înainte de a se termina, deci poate fi incomplet. Cereți agentului să continue sau să dea un răspuns mai scurt.",
"ui.agent_chat_reply_declined": "Modelul a refuzat să răspundă la acest mesaj.",
"ui.agent_chat_retry": "Reîncearcă",
"ui.agent_chat_right": "Dreapta",
"ui.agent_chat_save": "Salvează",
@@ -3861,12 +4232,17 @@
"ui.ai_copy_suffix": "copie",
"ui.ai_custom_url": "URL personalizat",
"ui.ai_default": "Implicit",
"ui.ai_edit": "Editează",
"ui.ai_edit_agent_title": "Editează agentul",
"ui.ai_edit_gone": "Acest agent a fost eliminat, deci nu este nimic de salvat.",
"ui.ai_edit_tip": "Schimbă numele, comanda sau endpointul acestui agent. O cheie salvată rămâne ascunsă.",
"ui.ai_http_busy": "endpointul este ocupat sau și-a depășit limita; încercați mai târziu",
"ui.ai_http_key": "endpointul a refuzat cheia: verificați-o în Preferințe > AI",
"ui.ai_http_not_found": "nu există un astfel de endpoint sau model: verificați URL-ul de bază și numele modelului",
"ui.ai_http_too_large": "conversația este prea mare pentru acest endpoint; începeți un chat nou",
"ui.ai_key": "Cheie API",
"ui.ai_key_hint": "opțional; păstrată în depozitul de chei al sistemului",
"ui.ai_key_keep_hint": "lăsați gol pentru a păstra cheia salvată",
"ui.ai_key_needs_https": "O cheie se trimite doar prin HTTPS sau către acest calculator.",
"ui.ai_key_note": "Stocată în depozitul de chei al sistemului, niciodată în setările SolidCraft. Lăsați gol pentru un server local.",
"ui.ai_keychain_error": "Depozitul de chei al sistemului a refuzat: {error}",
@@ -3893,11 +4269,15 @@
"ui.ai_permissions": "Permisiuni",
"ui.ai_preset": "Presetare",
"ui.ai_protocol": "Protocol",
"ui.ai_reasoning_effort": "Efort de raționament",
"ui.ai_reasoning_effort_field_hint": "gol = valoarea implicită a furnizorului",
"ui.ai_reasoning_effort_hint": "Opțional. Trimis către endpoint ca `reasoning_effort`; valorile acceptate diferă în funcție de furnizor (de exemplu `low`, `high` sau `max`). O valoare setată aici nu este niciodată înlocuită de SolidCraft. Lăsați gol pentru a nu trimite nimic și a păstra valoarea implicită a furnizorului.",
"ui.ai_remove": "Elimină",
"ui.ai_request_timed_out": "Modelul a durat mai mult de {seconds} s. Puteți mări timpul de expirare pentru acest endpoint în Preferințe › Asistent.",
"ui.ai_request_timeout": "Timp de expirare a cererii",
"ui.ai_request_timeout_hint": "Cât timp poate dura o cerere către model la acest endpoint, de la 30 s la o oră. Măriți-l pentru un model local lent.",
"ui.ai_reset": "Resetează",
"ui.ai_save": "Salvează",
"ui.ai_settings": "Setări AI…",
"ui.ai_show_features": "Afișează funcțiile AI",
"ui.ai_show_features_note": "Chatul cu agentul: un panou în care un agent de programare pe care îl folosiți deja sau un endpoint de model ales de dumneavoastră lucrează la proiectul deschis. Dezactivat: fără buton AI, scurtătură, intrare de meniu sau panou, și nu se caută și nu se pornește nimic.",
@@ -4057,6 +4437,7 @@
"ui.dark": "Întunecat",
"ui.default_modelling_orientation": "Orientarea implicită de modelare",
"ui.delete": "Șterge",
"ui.delete_select_first": "Selectați mai întâi ce doriți să ștergeți: operații, corpuri, componente sau geometrie de schiță",
"ui.depth": "Adâncime",
"ui.design": "Proiect",
"ui.design_properties.author": "Autor",
@@ -4071,6 +4452,40 @@
"ui.design_properties.project": "Proiect",
"ui.design_properties.revision": "Revizie",
"ui.design_saved": "Salvat în {path}",
"ui.details_access_caption": "Fețele arată dacă o sculă le poate atinge din direcția aleasă.",
"ui.details_angle": "Unghi",
"ui.details_continuity_caption": "Editați cusătura selectată. Celelalte cusături își păstrează propriile setări.",
"ui.details_continuity_stale": "Geometrie mai veche: rulați din nou analiza pentru a edita sau a încadra această cusătură.",
"ui.details_copy_list": "Copiază lista",
"ui.details_curvature": "Toleranța curburii",
"ui.details_curvature_caption": "Fețele sunt colorate după raza lor locală de curbură.",
"ui.details_direction": "Direcția sculei",
"ui.details_draft_caption": "Fețele sunt colorate după unghiul lor față de direcția de extragere.",
"ui.details_edit_seam": "Editează cusătura",
"ui.details_fixture": "Exemplar de componentă — doar date de exemplu",
"ui.details_fixture_caption": "Exemplar de componentă cu valori ilustrative; nu este un rezultat al modelului.",
"ui.details_fixture_problem": "Exemplu de constatare cu o problemă",
"ui.details_fixture_readout": "Exemplu de valoare măsurată",
"ui.details_flip": "Răstoarnă",
"ui.details_gap": "Spațiu",
"ui.details_hatch": "Hașurează fețele tăiate",
"ui.details_jump": "Salt de curbură",
"ui.details_key": "Legendă",
"ui.details_offset": "Decalaj",
"ui.details_plane": "Plan",
"ui.details_pull": "Direcția de extragere",
"ui.details_radius": "Rază",
"ui.details_readout": "Citire",
"ui.details_samples": "Eșantioane",
"ui.details_seam": "{body} · Muchia {edge}",
"ui.details_settings": "Setări",
"ui.details_sharp_gap": "Frângere sau spațiu",
"ui.details_show_all": "Afișează toate {count}",
"ui.details_smooth": "Neted",
"ui.details_stripes": "Dungi",
"ui.details_target": "Încadrează geometria",
"ui.details_worst_seams": "Cele mai slabe cusături",
"ui.details_zebra_caption": "Dungile reflectate arată cât de neted se îmbină fețele.",
"ui.diameter": "Diametru",
"ui.dimension": "Cotă",
"ui.direct_interaction": "Interacțiune directă",
@@ -4115,6 +4530,7 @@
"ui.edit_in_place_saved_elsewhere": "Piesa a fost salvată într-un alt fișier; ansamblul rămâne legat de {name}",
"ui.edit_in_place_wait": "Așteptați până se termină ce rulează în proiect",
"ui.edit_section_analysis": "Editează analiza secțiunii",
"ui.edit_sketch_empty": "Nicio schiță de editat",
"ui.ellipse": "Elipsă",
"ui.emboss_wrap_note": "Profilurile din linii ortogonale, tangente la un cilindru acceptat, se înfășoară automat. Alegeți un perete pentru a alege o țintă.",
"ui.end_radius": "Rază finală",
@@ -4125,12 +4541,15 @@
"ui.equation_explicit": "Explicită",
"ui.equation_form": "Formă",
"ui.equation_note": "Variabila este un număr simplu: sin(t) o primește în radiani. Un rezultat fără unitate este în unitatea proiectului.",
"ui.equation_note_range": "Variabila este o lungime, la fel ca intervalul ei: combinați-o cu parametri de lungime și împărțiți-o la o lungime pentru sin(). Un rezultat fără unitate este în unitatea proiectului.",
"ui.equation_parametric": "Parametrică",
"ui.equation_variable_unit": "Variabila are unitatea intervalului",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Rază echivalentă",
"ui.expand": "Extinde",
"ui.explode_needs_two_components": "Vedere explodată îndepărtează componentele una de alta, deci proiectul trebuie să aibă două sau mai multe (Componentă nouă, Inserează proiect sau Creează componente din corpuri)",
"ui.exportDxf": "Exportă DXF…",
"ui.export_ellipsis_keymap": "Exportă…",
"ui.export_keymap_tip": "Tastele, favoritele casetei S și bara de instrumente, ca fișier",
@@ -4299,12 +4718,14 @@
"ui.joints": "Îmbinări",
"ui.keyboard_shortcuts": "Scurtături de tastatură",
"ui.language": "Limbă",
"ui.lasso_select": "Lasou (trageți o buclă liberă: preia tot ce se află în întregime înăuntru)",
"ui.layout_compact": "Compact",
"ui.layout_floating": "Plutitor",
"ui.length": "Lungime",
"ui.length_decimals": "Zecimale lungime",
"ui.light": "Luminos",
"ui.line": "Linie",
"ui.line_arc_hint": "Arc tangent: faceți clic pe capătul arcului. Opriți-vă din nou pe ultimul punct pentru linii; clic dreapta sau Esc pentru a finaliza",
"ui.link_copies": "Leagă copiile identice",
"ui.link_copies_keep": "Păstrează",
"ui.link_copies_link": "Leagă",
@@ -4393,6 +4814,7 @@
"ui.part_size_shared": "Reconstruiește piesa, înlocuind orice operații adăugate. Toate aparițiile acestei componente se actualizează.",
"ui.paste": "Lipește",
"ui.path": "Traseu",
"ui.pattern_object_type_tip": "Corpuri: forme solide, alese în vizualizare sau în Navigator; fiecare este copiat întreg.\nOperații: pași ai Istoricului, de exemplu o extrudare sau o gaură, alese în Istoric sau pe o față creată de ei; pasul este repetat.\nO schiță nu este niciuna dintre ele: repetați curbele ei cu Matrice sau Oglindire din schiță, ori extrudați-o mai întâi.",
"ui.pattern_on_path": "Matrice pe traseu",
"ui.perforate_margin_default": "din diametru",
"ui.perforate_pitch": "Pas",
@@ -4419,12 +4841,17 @@
"ui.plugins_skipped": "{count} dosar(e) nu au putut fi citite.",
"ui.plugins_version": "{version}",
"ui.point": "Punct",
"ui.point_cloud_add_filter": "Adaugă filtru…",
"ui.point_cloud_auto_range": "Interval automat",
"ui.point_cloud_color_by": "Colorează după",
"ui.point_cloud_file_colors": "Culorile fișierului",
"ui.point_cloud_filter_by": "Filtrează după",
"ui.point_cloud_height_high": "Cel mai înalt",
"ui.point_cloud_height_low": "Cel mai de jos",
"ui.point_cloud_legend_filter": "Afișate și ascunse în legenda de mai sus",
"ui.point_cloud_no_file_colors": "Fișierul nu are culori",
"ui.point_cloud_pause": "Pauză",
"ui.point_cloud_play": "Redă",
"ui.point_cloud_single_color": "Culoare unică",
"ui.point_cloud_size": "Dimensiunea punctelor",
"ui.point_cloud_units": "Unitățile fișierului",
@@ -4433,9 +4860,9 @@
"ui.polygon": "Poligon",
"ui.preferences": "Preferințe",
"ui.press_a_key": "apăsați o tastă…",
"ui.print_face_body_not_sent": "Corpul acelei fețe nu este trimis: adăugați-l mai întâi la Corpuri",
"ui.print_face_cleared": "{body}: fața de imprimare a fost ștearsă",
"ui.print_face_input": "Față de imprimare",
"ui.print_face_one_body": "O față de imprimare aparține unui singur corp: trimiteți acel corp singur pentru a o schimba",
"ui.print_face_pick": "Selectați o față plană a unui corp solid pentru a o face fața de imprimare",
"ui.print_face_set": "{body}: fața de imprimare a fost setată; Trimite la slicer așază corpul pe ea",
"ui.profile": "Profil",
@@ -4453,6 +4880,7 @@
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Se măsoară…",
"ui.properties.measuring_bodies": "Se măsoară… {done} din {total} corpuri",
"ui.properties.measuring_failed": "Măsurarea s-a oprit înainte de a se termina.",
"ui.properties.principal_axis": "Axa principală {number}",
"ui.properties.principal_moments": "Momente principale",
@@ -4520,6 +4948,7 @@
"ui.selectOther": "Selectează altul…",
"ui.selectTangentChain": "Selectează lanțul tangent",
"ui.select_all": "Selectează tot",
"ui.select_components_by_face": "Selectați componente (o față alege componenta ei)",
"ui.selection": "Selecție",
"ui.selection_modifiers": "Modificatori de selecție",
"ui.selection_shift_add_only": "Shift+clic adaugă fără a elimina",
@@ -4561,6 +4990,11 @@
"ui.sketch_intersect_selection_filter": "Filtru de selecție",
"ui.sketch_modifiers": "Modificatori de schiță",
"ui.sketch_project_geometry": "Geometrie",
"ui.sketch_report.all_constrained": "Totul este complet constrâns.",
"ui.sketch_report.dof": "Grade de libertate",
"ui.sketch_report.loose": "Nu sunt complet constrânse",
"ui.sketch_report.status": "Stare",
"ui.sketch_report.title": "Raportul schiței",
"ui.sketch_scale": "Scara schiței",
"ui.sketches": "Schițe",
"ui.slice": "Felie",
@@ -4656,12 +5090,15 @@
"ui.view_angles": "Unghiuri de vizualizare",
"ui.view_angles_convention": "Grade în jurul axei verticale. Girația 0° este vizualizarea din față, 90° din stânga, −90° din dreapta, 180° din spate; înclinarea 90° este vizualizarea de sus; un ruliu pozitiv rotește modelul în sens orar.",
"ui.view_angles_help": "Afișează înclinarea, girația și ruliul vizualizării în grade, plus proiecția ei, sub reperul de orientare. Faceți clic pe valori pentru a introduce unghiuri exacte.",
"ui.view_angles_lock": "Blochează {axis}",
"ui.view_angles_ortho": "Ortog.",
"ui.view_angles_persp": "Persp.",
"ui.view_angles_pitch": "Înclinare",
"ui.view_angles_readout": "Înclinare {pitch} · Girație {yaw} · Ruliu {roll}",
"ui.view_angles_roll": "Ruliu",
"ui.view_angles_unlock": "Deblochează {axis}",
"ui.view_angles_yaw": "Girație",
"ui.view_angles_zero": "Setează {axis} la 0°",
"ui.view_centre": "Centrul vizualizării",
"ui.viewport_status_clear": "Dezactivează {name}",
"ui.viewport_status_clear_hint": "Dezactivează {name} · Esc",
@@ -4670,7 +5107,14 @@
"ui.viewport_status_key": "Afișează legenda pentru {name}",
"ui.viewport_status_minimum_radius": "Rază minimă",
"ui.viewport_status_pairs": "{count} perechi",
"ui.viewport_status_section_hatch": "{setting} · hașură",
"ui.viewport_status_section_plane": "Planul curent",
"ui.viewport_status_section_tilted": "înclinat · {offset}",
"ui.viewport_status_stripes": "{count} dungi",
"ui.viewport_status_summary_clear": "Dezactivează tot",
"ui.viewport_status_summary_heading": "În această vizualizare",
"ui.viewport_status_summary_label": "{name} și încă {count} elemente",
"ui.viewport_status_summary_more": "+{count}",
"ui.viewport_theme_follow": "Urmează tema",
"ui.visual_shaded_hidden_edges": "Umbrit cu muchii ascunse",
"ui.visual_shaded_with_edges": "Umbrit cu muchii",
+466 -2
View File
@@ -60,6 +60,7 @@
"BLEND SURFACE": "СОПРЯГАЮЩАЯ ПОВЕРХНОСТЬ",
"BOUNDARY SURFACE": "ГРАНИЧНАЯ ПОВЕРХНОСТЬ",
"BROWSER": "БРАУЗЕР",
"Back to the original order": "Вернуть исходный порядок",
"Ball": "Шаровое",
"Bar": "Полоса",
"Base Center": "Центр основания",
@@ -114,7 +115,7 @@
"Circular": "Круговой",
"Circumference": "Окружность",
"Clockwise": "По часовой стрелке",
"Close draft": "Закрыть анализ уклонов",
"Close draft": "Закрыть черновик",
"Collapse": "Свернуть",
"Collisions": "Столкновения",
"Colour": "Цвет",
@@ -593,6 +594,8 @@
"Snap to face and edge centres": "Привязка к центрам граней и рёбер",
"SolidCraft cannot submit reports directly. Submit on GitHub; no token is needed in the app.": "SolidCraft не может отправлять отчёты напрямую. Отправьте отчёт на GitHub; токен в приложении не нужен.",
"SolidCraft closed before these designs were saved. Their last autosave can be opened.": "SolidCraft закрылся до сохранения этих дизайнов. Можно открыть последнюю автосохранённую версию.",
"Sort A to Z": "Сортировать от А до Я",
"Sort Z to A": "Сортировать от Я до А",
"Spacing 2 must be a non-zero number": "Интервал 2 должен быть ненулевым числом",
"Spacing must be a non-zero number": "Интервал должен быть ненулевым числом",
"Specialise": "Специализировать",
@@ -772,6 +775,8 @@
"at the face": "у грани",
"bom.group_children": "Вложенные детали в строке своей детали",
"browser.body_name": "Тело{number}",
"browser.calibrate_click_a": "Щёлкните по изображению, чтобы задать точку A, или введите её координаты.",
"browser.calibrate_click_b": "Щёлкните по изображению, чтобы задать точку B, или введите её координаты.",
"browser.calibrate_title": "Калибровка: {name}",
"browser.capture_many": "Компоненты ({count}) перемещены, но их положения не зафиксированы.",
"browser.capture_note": "«Зафиксировать положение» сохраняет новое положение; «Вернуть положение» восстанавливает прежнее.",
@@ -784,6 +789,13 @@
"browser.sketch_attachment_lost": "{name} (привязка потеряна)",
"browser.sketch_editing": "{name} (редактируется)",
"browser.sketch_name": "Эскиз{number}",
"browser.sketches_to_parts_already_in_part": "уже в своей детали",
"browser.sketches_to_parts_design_body": "на теле самого дизайна",
"browser.sketches_to_parts_moved": "Перемещено эскизов в деталь, на которой они лежат: {moved}",
"browser.sketches_to_parts_no_exact_attachment": "на грани без точной привязки",
"browser.sketches_to_parts_not_on_face": "не на грани детали",
"browser.sketches_to_parts_part_missing": "их детали больше нет",
"browser.sketches_to_parts_result": "Перемещено эскизов в деталь, на которой они лежат: {moved}; остались на месте: {stayed} — {why}",
"browser.units": "Единицы: {units}",
"cam.flat": "Плоский",
"cam.follower": "Толкатель",
@@ -813,6 +825,7 @@
"cmd.appearance_pick_up": "Взять внешний вид",
"cmd.appearance_replace": "Заменить внешний вид",
"cmd.assembly_bom": "Спецификация",
"cmd.assembly_mass_properties": "Массовые характеристики",
"cmd.body.print_face": "Грань печати",
"cmd.body_rename": "Переименовать тело",
"cmd.browser_collapse_all": "Свернуть всё",
@@ -850,6 +863,7 @@
"cmd.component_move_bodies": "Переместить тела в компонент",
"cmd.component_move_features": "Переместить операции в компонент",
"cmd.component_move_sketches": "Переместить эскизы в компонент",
"cmd.component_move_sketches_to_parts": "Переместить эскизы в их детали",
"cmd.component_paste_from_design": "Вставить из другого дизайна",
"cmd.component_paste_new": "Вставить как новый",
"cmd.component_properties": "Физические свойства компонента",
@@ -1176,6 +1190,7 @@
"cmd.sketch_spline_control_point_5": "Сплайн по контрольным точкам (степень 5)",
"cmd.sketch_spline_fit_point": "Сплайн по точкам сглаживания",
"cmd.sketch_spline_insert_point": "Добавить точку сплайна",
"cmd.sketch_spline_remove_point": "Удалить точку сплайна",
"cmd.sketch_spline_reverse": "Обратить направление сплайна",
"cmd.sketch_spun_profile": "Профиль вращения",
"cmd.sketch_toggle_diameter": "Переключить радиус / диаметр",
@@ -1229,6 +1244,7 @@
"cmd.view.render_browser": "Браузер рендера",
"cmd.view.render_dock": "Переместить панель рендера",
"cmd.view.render_focus": "Режим фокуса рендера",
"cmd.view.status_details": "Подробности состояния видового экрана",
"cmd.view.status_items": "Элементы состояния видового экрана",
"cmd.view_ambient_occlusion": "Окружающее затенение",
"cmd.view_angle_readout": "Углы вида",
@@ -1267,8 +1283,14 @@
"color.hex_hint": "#rrggbb",
"color.hue": "Оттенок",
"color.linear": "Значения цвета показаны в линейном пространстве 0–1",
"color.recent": "Недавние цвета",
"color.recent_help": "Цвета, выбранные в любом поле цвета, появляются здесь",
"color.saturation": "Насыщенность (в процентах)",
"color.saturation_value": "Насыщенность и яркость",
"color.selected": "Выбранный цвет",
"color.step_down": "Уменьшить на шаг",
"color.step_up": "Увеличить на шаг",
"color.value": "Значение, то есть яркость (в процентах)",
"config.column_filter_empty": "Нет подходящих столбцов",
"contact.components_count": "Компонентов: {count}",
"contact.enabled_label": "включено",
@@ -1314,6 +1336,7 @@
"dialog.dimension_insert_hint": "Дважды щёлкните другой управляющий размер, чтобы вставить его имя",
"dialog.dimension_name": "Размер: {name}",
"dialog.edit_title": "ИЗМЕНИТЬ: {title}",
"dialog.pattern_sketch_not_object": "Выберите тела или операции: эскиз — ни то, ни другое. Повторите его кривые собственным инструментом «Массив» или «Зеркало» в эскизе либо сначала выдавите его.",
"dialog.select": "↖ Выбрать",
"dialog.selected_count": "↖ Выбрано: {count}",
"dialog.selection_guidance": "Щёлкните поле ввода, чтобы изменить его. Щелчок по выделенному объекту убирает его; Ctrl/Cmd+щелчок тоже переключает. Проверьте предпросмотр и нажмите OK.",
@@ -1371,25 +1394,242 @@
"from the rule": "из правила",
"help.apache": "Лицензия Apache 2.0",
"help.appearance.assign": "Задаёт выбранным телам, граням или компонентам цвет или вид материала, не меняя их вес. Используйте, чтобы различать детали или заранее увидеть отделку.",
"help.assembly.bom": "Перечисляет детали дизайна или компонента с их количеством по номерам деталей и может сохранить список в CSV или JSON. Используйте как список деталей для заказа и сборки.",
"help.attributions": "Сведения об авторстве (ATTRIBUTION.md)",
"help.build": "Версия {version} · коммит {commit} · сборка от {date}",
"help.canvas.decal": "Помещает изображение на плоскую грань модели, как наклейку. Используйте, чтобы показать на детали надпись, логотип или печатный рисунок.",
"help.canvas.edit": "Меняет подложку: её положение, размер, угол, непрозрачность, отражение, видимость или имя. Используйте, чтобы совместить образец с эскизом, который вы по нему обводите.",
"help.canvas.insert": "Помещает изображение PNG или JPEG на плоскость или грань как полупрозрачный образец. Используйте, чтобы обвести в эскизе фотографию или чертёж, масштабировав изображение до известного размера.",
"help.component.break_link": "Отсоединяет связанный компонент от файла дизайна, оставляя его тела как есть. Используйте, когда деталь больше не должна следовать изменениям исходного файла.",
"help.component.capture_position": "Сохраняет положения деталей, которые вы передвинули вручную, как их новые места. Используйте после перетаскивания деталей на место, если их не удерживает ни одно сопряжение.",
"help.component.create": "Добавляет в дизайн новый пустой компонент: внутрь активного, если вы не выберете другого родителя. Используйте, чтобы дать новой детали сборки собственное место для тел и эскизов.",
"help.component.finish_edit": "Сохраняет деталь, которую вы изменяете на месте, возвращается в её сборку и обновляет сборку по ней. Используйте, когда изменения связанной детали готовы.",
"help.component.from_bodies": "Превращает каждое выбранное тело в отдельный компонент с именем этого тела. Используйте, когда дизайн из разрозненных тел должен стать сборкой, детали которой можно соединять и перемещать.",
"help.component.insert_design": "Вставляет другой сохранённый дизайн как компонент, связанный со своим файлом; его твёрдые тела размещаются так же, как в оригинале. Используйте, чтобы повторно применить деталь в сборке и подхватывать последующие изменения командой «Обновить связи».",
"help.component.properties": "Показывает объём, массу, центр масс и моменты инерции компонента по материалам его тел. Используйте, чтобы проверить вес и баланс сборки.",
"help.component.revert_position": "Возвращает вручную перемещённые детали на прежние места, отбрасывая незафиксированные перемещения. Используйте, чтобы отменить пробные перемещения в сборке.",
"help.component.update_links": "Заново читает связанные файлы дизайнов и заменяет изменившиеся тела. Используйте после правки детали, которую применяет эта сборка.",
"help.config.configure": "Добавляет параметры, операции, материалы или внешние виды как столбцы таблицы конфигурации. Используйте, чтобы создавать варианты одного дизайна, например размеры детали.",
"help.config.preview": "Проверяет, что строка таблицы конфигурации пересобирается, не меняя дизайн и его историю. Используйте перед переключением на вариант, в котором вы не уверены.",
"help.config.rules": "Показывает правила таблицы конфигурации, её строки и активную строку. Используйте, чтобы увидеть, как настроены варианты дизайна.",
"help.config.table": "Показывает таблицу конфигурации: строка на вариант, столбец на параметр или операцию, и совпадает ли дизайн с активной строкой. Используйте, чтобы просмотреть варианты дизайна.",
"help.connect_note": "Перезапустите каждого ассистента, чтобы загрузить сервер SolidCraft. Перед изменением каждого файла создана резервная копия с расширением .bak.",
"help.connect_title": "Подключение ИИ-ассистентов",
"help.construct.axis.edge": "Создаёт вспомогательную ось вдоль прямого ребра или линии эскиза. Используйте как ось для вращения, кругового массива или сопряжения.",
"help.construct.axis.normal_to_face": "Создаёт вспомогательную ось через точку перпендикулярно грани. Используйте как ось, прямо выходящую из поверхности.",
"help.construct.axis.through_cylinder": "Создаёт вспомогательную ось через центр цилиндрической, конической или тороидальной грани либо круглого ребра. Используйте, чтобы вращать элементы или делать массив вокруг круглой детали.",
"help.construct.axis.two_planes": "Создаёт вспомогательную ось в месте пересечения двух плоскостей или плоских граней. Используйте, когда нужная ось — линия между двумя гранями.",
"help.construct.axis.two_points": "Создаёт вспомогательную ось через две точки, вершины или точки эскиза. Используйте для оси, идущей между двумя известными положениями.",
"help.construct.plane.along_path": "Создаёт вспомогательную плоскость, перпендикулярную ребру или кривой, в выбранном месте вдоль неё. Используйте, чтобы нарисовать профиль для операции «Сдвиг» или сечение траектории.",
"help.construct.plane.at_angle": "Создаёт вспомогательную плоскость, повёрнутую на угол от плоскости или грани вокруг оси или ребра. Используйте для наклонных эскизов, например для кронштейна под углом.",
"help.construct.plane.midplane": "Создаёт вспомогательную плоскость посередине между двумя плоскостями или плоскими гранями либо делящую пополам угол между ними. Используйте как плоскость симметрии для зеркального отражения.",
"help.construct.plane.offset": "Создаёт вспомогательную плоскость, параллельную плоскости или плоской грани, на заданном расстоянии или через точку. Используйте, чтобы рисовать на заданной высоте над гранью.",
"help.construct.plane.perpendicular": "Создаёт вспомогательную плоскость, содержащую линию или ребро и перпендикулярную плоскости или грани. Используйте, чтобы рисовать на модели вертикально вдоль ребра.",
"help.construct.plane.tangent": "Создаёт вспомогательную плоскость, касающуюся цилиндра, конуса, сферы или тора в точке. Используйте, чтобы рисовать на боковой стороне круглой детали.",
"help.construct.plane.three_points": "Создаёт вспомогательную плоскость через три точки. Используйте для плоскости, заданной положениями на модели, например тремя углами.",
"help.construct.plane.two_edges": "Создаёт вспомогательную плоскость через два прямых ребра или линии, лежащие в одной плоскости. Используйте для плоскости сквозь деталь, например через два противоположных ребра.",
"help.construct.point.along_path": "Создаёт вспомогательную точку в выбранном месте вдоль ребра или кривой. Используйте как ориентир на полпути вдоль траектории.",
"help.construct.point.center": "Создаёт вспомогательную точку в центре круглого ребра, окружности или дуги эскиза, сферы или тора. Используйте как ориентир для отверстий, осей и сопряжений.",
"help.construct.point.edge_plane": "Создаёт вспомогательную точку там, где ребро или линия пересекает плоскость или плоскую грань. Используйте, чтобы отметить, где траектория пересекает плоскость.",
"help.construct.point.three_planes": "Создаёт вспомогательную точку там, где сходятся три плоскости или плоские грани. Используйте как угловой ориентир, даже если у модели нет вершины.",
"help.construct.point.two_edges": "Создаёт вспомогательную точку там, где два ребра или линии пересекаются или подходят ближе всего друг к другу. Используйте как ориентир в воображаемом углу.",
"help.construct.point.vertex": "Создаёт вспомогательную точку в вершине или точке эскиза. Используйте как ориентир, который остаётся, когда окружающий эскиз или тело скрыты.",
"help.contact.check": "Перечисляет пары деталей в наборах контактов, которые в текущем положении проходят друг сквозь друга. Используйте, чтобы найти столкновения до привода сопряжений или исследования движения.",
"help.contact.create": "Объединяет две или более детали в набор контактов: их тела не проходят друг сквозь друга, пока двигаются сопряжения. Используйте для деталей, которые должны останавливаться при касании, например рычага у упора.",
"help.contact.disable_all": "Отключает контакт, так что приводимые сопряжения и исследования движения больше не останавливаются там, где детали соприкасаются. Используйте, чтобы снова свободно двигать детали или чтобы большая сборка отзывалась быстрее.",
"help.contact.edit": "Меняет набор контактов: входящие в него детали, имя или подавление; набор можно и удалить. Используйте, чтобы изменить, какие детали не должны проходить друг сквозь друга.",
"help.contact.enable_all": "Помещает все детали сборки в один набор контактов, так что никакие две детали не проходят друг сквозь друга, пока двигаются сопряжения. Используйте для быстрой проверки всего механизма.",
"help.contact.enable_sets": "Включает контакт для заданных вами наборов контактов, так что приводимые сопряжения и исследования движения останавливаются там, где их детали прошли бы друг сквозь друга. Используйте, чтобы вернуть свои наборы после отключения контакта.",
"help.contact.list": "Перечисляет наборы контактов дизайна, детали в каждом из них и включён ли контакт. Используйте, чтобы проверить настройку контактов перед приводом сборки.",
"help.document.inspect": "Показывает обзор дизайна: его компоненты, тела, эскизы, операции и параметры. Используйте, чтобы сориентироваться в дизайне, который вы создавали не сами.",
"help.document.units": "Меняет единицы, в которых дизайн показывает длины, например мм или дюймы. Размер геометрии не меняется; подстраиваются только отображение и числа без единиц.",
"help.edit.checkpoint": "Запоминает дизайн, активный эскиз и историю отмен в их текущем состоянии. Используйте перед рискованной попыткой, от которой, возможно, захочется вернуться.",
"help.edit.restore_checkpoint": "Возвращается к контрольной точке вместе с историей отмен. Используйте, чтобы одним шагом отбросить всё сделанное после контрольной точки.",
"help.explode.create": "Создаёт разобранный вид: детали отодвигаются от центра сборки или на заданные вами смещения. Используйте, чтобы показать, как собирается сборка, для инструкций или презентаций.",
"help.face.delete": "Удаляет выбранные грани, и соседние грани закрывают промежуток, либо промежуток остаётся открытым как поверхность. Используйте, чтобы убрать скруглённое ребро, отверстие или выступ, которые мешают.",
"help.file.insert_mesh": "Добавляет файл 3MF, STL, OBJ, PLY или glTF в дизайн как тела-меши в новом компоненте. Используйте, чтобы разместить рядом с дизайном скачанную или отсканированную модель как образец.",
"help.file.insert_step": "Добавляет файл STEP, IGES, FreeCAD или Rhino в дизайн как твёрдые тела в новом компоненте; детали сборки становятся вложенными компонентами. Используйте, чтобы подключать модели от поставщиков или из других CAD-программ.",
"help.file.save_mesh": "Сохраняет тела как меш STL, 3MF или OBJ с выбранной гладкостью криволинейных граней. Используйте для подготовки деталей к 3D-печати или для программ, читающих меши.",
"help.file.send_to_slicer": "Сохраняет выбранные тела как файл 3MF и открывает его в выбранном слайсере. Используйте, чтобы перейти от модели к печати одним шагом.",
"help.font_details": "Интерфейс использует встроенные шрифты egui (Ubuntu Light и Hack под лицензиями Ubuntu Font Licence и MIT/Bitstream Vera; Noto Emoji и шрифт значков эмодзи под лицензиями OFL и MIT). Для текста эскизов используется Liberation Sans (SIL OFL 1.1). Необязательный пакет шрифтов The Crafting Apps, craft-fonts (BIZ UDPGothic, Shippori Mincho, BIZ UDMincho, Noto Sans CJK SC, Noto Sans Arabic; SIL OFL 1.1), не входит в сборки SolidCraft.",
"help.fonts": "Шрифты",
"help.frame.member": "Размещает профиль, например трубу или алюминиевый экструзионный профиль, вдоль линий эскиза рамы, по одному элементу на линию. Используйте для рам, стеллажей и сварных конструкций.",
"help.inspect.accessibility": "Раскрашивает грани, до которых инструмент может дотянуться с одного направления, и те, до которых не может. Используйте, чтобы проверить деталь на обработку или формование с этой стороны.",
"help.inspect.center_of_mass": "Показывает центр масс тел, каждого по отдельности и всех вместе, при равномерной плотности. Используйте, чтобы проверить баланс и понять, куда деталь опрокинется.",
"help.inspect.colored_components": "Задаёт каждому компоненту свой временный цвет, не меняя внешний вид. Используйте, чтобы с первого взгляда различать детали сборки.",
"help.inspect.compare": "Сравнивает два тела и показывает, где у одного есть материал, которого нет у другого, с объёмом и отклонением. Используйте, чтобы сверить изменённую или импортированную деталь с оригиналом.",
"help.inspect.continuity": "Проверяет, насколько плавно грани стыкуются по рёбрам (зазоры, изломы или скачки кривизны), и закрашивает швы. Используйте, чтобы найти места, где поверхности стыкуются неаккуратно.",
"help.inspect.curvature_comb": "Рисует гребёнки вдоль кривых, рёбер или граней: их зубья показывают, насколько сильно они изгибаются. Используйте, чтобы заметить плоские участки, изломы и неравномерную кривизну.",
"help.inspect.curvature_map": "Раскрашивает грани по силе кривизны, красным там, где радиус мал. Используйте, чтобы находить тесные места и оценивать гладкость поверхности.",
"help.inspect.draft": "Раскрашивает грани по углу уклона относительно направления вытягивания и отмечает те, где он слишком мал. Используйте, чтобы проверить деталь перед формованием или литьём.",
"help.inspect.environment_map": "Показывает модель с отражающей, зеркальной отделкой. Используйте, чтобы оценить плавность поверхностей по тому, как по ним бегут отражения.",
"help.inspect.interference": "Находит перекрывающиеся тела и показывает каждое перекрытие с его объёмом. Используйте, чтобы проверить сборку на сталкивающиеся детали.",
"help.inspect.isocurve": "Рисует изопараметрические кривые граней: сетку, на которой построена поверхность. Используйте, чтобы увидеть, как течёт поверхность и где она сгущается.",
"help.inspect.measure": "Измеряет длины, расстояния, углы, площади и радиусы между выбранными элементами либо объём и массу тел. Используйте, чтобы проверить размеры и зазоры.",
"help.inspect.minimum_radius": "Находит наименьший радиус кривизны кривых, рёбер или граней и показывает, где он. Используйте, чтобы убедиться, что инструмент или сопло смогут пройти по форме.",
"help.inspect.section": "Разрезает вид по плоскости и штрихует срезанные грани, не меняя модель. Используйте, чтобы заглянуть внутрь деталей и сборок.",
"help.inspect.zebra": "Показывает чёрно-белые полосы, отражённые на гранях модели. Используйте для оценки гладкости: полосы, которые обрываются или ломаются на ребре, указывают на плохой переход.",
"help.joint.as_built": "Соединяет две детали там, где они уже стоят, не двигая ни одну, и задаёт, как они ещё могут двигаться. Используйте для деталей, которые вы уже поставили в окончательное положение.",
"help.joint.cam": "Связывает вращающийся кулачок с толкателем, так что толкатель скользит или качается, пока под ним проходит контур кулачка. Используйте для кулачков, эксцентриков и приводов клапанов.",
"help.joint.create": "Соединяет две детали в выбранных точках сопряжения и ставит вторую деталь на место; тип сопряжения задаёт, как они ещё могут двигаться. Используйте, чтобы собрать сборку, детали которой движутся как настоящий механизм.",
"help.joint.drive": "Задаёт угол или расстояние сопряжения и двигает вместе с ним детали в пределах ограничений; связанные сопряжения и замкнутые контуры следуют за ним. Используйте, чтобы проверить, что механизм движется как задумано.",
"help.joint.gear": "Связывает два вращающихся сопряжения передаточным отношением, так что поворот одного вращает другое. Используйте для цилиндрических и внутренних зубчатых колёс, задавая отношение по радиусам делительных окружностей или числам зубьев.",
"help.joint.limits": "Задаёт, насколько сопряжение может повернуться или сдвинуться, минимумом и максимумом, либо снимает эти пределы. Используйте, чтобы удерживать шарнир, ползун или рычаг в реальном диапазоне хода.",
"help.joint.motion_link": "Связывает два сопряжения отношением и смещением, так что приведение одного двигает другое. Используйте для фиксированной связи между сопряжениями, которую не охватывают «Зубчатая передача», «Реечная передача» и «Винт».",
"help.joint.origin": "Размещает именованную точку сопряжения на детали: в центре грани или круглого торца, в середине ребра, в углу или в точке. Используйте, чтобы подготовить места крепления сопряжений; точка, выбранная на грани, следует за ней при изменении размера детали.",
"help.joint.rack_pinion": "Связывает вращающуюся шестерню с движущейся рейкой, так что рейка смещается на длину делительной окружности, которую прокатывает шестерня. Используйте для реечных приводов, рулевых механизмов и линейных столов.",
"help.joint.reach": "Перемещает точку детали к цели, меняя сопряжения её цепи в пределах ограничений. Используйте, чтобы ставить механизм в позу по тому, где должен оказаться его конец, например кончик руки робота.",
"help.joint.rigid_group": "Жёстко скрепляет выбранные детали друг с другом как есть, так что они движутся как одно целое. Используйте для деталей, которые составляют единое целое и не должны двигаться друг относительно друга.",
"help.joint.screw": "Связывает вращение и скольжение шагом, так что каждый оборот смещает на это расстояние. Используйте для ходовых винтов, болтов и резьбовых шпинделей.",
"help.library.apply": "Применяет материал или внешний вид из файла локальной библиотеки к телам, граням или компонентам. Используйте, чтобы повторно применять материалы, сохранённые в другом дизайне.",
"help.library.export": "Сохраняет материалы и внешние виды дизайна в файл библиотеки. Используйте, чтобы поделиться ими или применять их в других дизайнах.",
"help.library.inspect": "Проверяет файл библиотеки и перечисляет её материалы и внешние виды, не меняя дизайн. Используйте, чтобы узнать, что содержит библиотека, перед применением.",
"help.licences": "Лицензии",
"help.material.assign": "Задаёт, из чего сделаны выбранные тела, например сталь, алюминий или ABS. Используйте, чтобы масса и вес соответствовали реальной детали.",
"help.material.properties.validate": "Проверяет карточку данных материала на согласованность чисел и пропущенные значения. Используйте перед тем, как полагаться на эти данные при расчёте массы или жёсткости.",
"help.mesh.convert": "Перестраивает тело-меш, например STL, в редактируемое твёрдое тело с плоскими и цилиндрическими гранями. Используйте, чтобы менять импортированные механические детали как смоделированное тело.",
"help.mit": "Лицензия MIT",
"help.motion.study": "Задаёт значения сопряжений по шагам вдоль временной шкалы и воспроизводит их как анимацию. Используйте, чтобы наблюдать движение механизма по последовательности и проверять зазоры по ходу.",
"help.motion.trace": "Прослеживает путь точки детали во время воспроизведения исследования движения или привода сопряжения и после подтверждения сохраняет его как кривую 3D-эскиза. Используйте, чтобы увидеть, куда достаёт механизм, или строить по его траектории.",
"help.notice": "NOTICE",
"help.occurrence.ground": "Закрепляет деталь на месте или снова освобождает её, так что сопряжения двигают остальные детали вокруг неё. Используйте для рамы или основания, на которых построена остальная сборка.",
"help.occurrence.move": "Перемещает деталь сборки только по степеням свободы, разрешённым её сопряжениями. Выберите грань детали, затем перетащите доступную стрелку или дугу.",
"help.parameters.change": "Открывает таблицу именованных значений и выражений, управляющих размерами дизайна. Используйте, чтобы изменить размер в одном месте, а все операции, которые его используют, обновились следом.",
"help.parameters.export": "Сохраняет параметры дизайна как CSV или JSON. Используйте, чтобы править их в электронной таблице или переносить в другой дизайн.",
"help.parameters.graph": "Показывает, какие параметры и операции используют какие другие, а также циклы и ошибки среди них. Используйте, чтобы увидеть, на что повлияет изменение параметра.",
"help.parameters.import": "Читает параметры из CSV или JSON в дизайн: все или ни одного. Используйте, чтобы подтянуть значения из электронной таблицы или другого дизайна.",
"help.parameters.move": "Перемещает пользовательский параметр в списке перед другим параметром или после него. Используйте, чтобы держать связанные параметры рядом.",
"help.parts.fastener": "Добавляет стандартный винт, болт, гайку, шайбу, штифт или подшипник выбранного размера. Поставленный на отверстие, он садится в него через сопряжение, так что крепёж не нужно моделировать самому.",
"help.parts.insert": "Вставляет стандартную деталь выбранного семейства, размера и длины. Поставленная на кромку или стенку отверстия, она садится на это отверстие через жёсткое сопряжение.",
"help.parts.library": "Открывает стандартные детали: винты, болты, гайки, шайбы, установочные винты, цилиндрические штифты и подшипники стандартных размеров. Используйте, чтобы добавить стандартную деталь, а не моделировать её самому.",
"help.parts.resize": "Меняет размер или длину вставленной стандартной детали и перестраивает её; сопряжения удерживают её на месте. Используйте, если винт оказался слишком длинным или отверстию нужен другой размер.",
"help.plastic.assign_rule": "Назначает правило пластика телам, так что их пластиковые операции берут из него уклон и зазор по умолчанию. Используйте, чтобы один раз настроить формованную деталь для всех её операций.",
"help.plastic.boss": "Добавляет бобышку под винт на грани: стойку с необязательным отверстием, уклоном, скруглением у основания и поддерживающими рёбрами жёсткости. Используйте для точек крепления винтов в формованных или печатных корпусах.",
"help.plastic.lip": "Добавляет выступ или ответный паз вдоль кромки тонкостенного тела. Используйте, чтобы две половины корпуса фиксировались друг на друге и плотно закрывались.",
"help.plastic.manage_rules": "Создаёт и изменяет правила пластика: материал, толщину стенки, радиусы, зазор и уклон. Используйте, чтобы операции формованной детали были согласованы.",
"help.plastic.rest": "Добавляет опору на грани: круглую или прямоугольную площадку, сплошную или полую, с уклоном. Используйте как опору или стойку в формованном корпусе.",
"help.plastic.snap_fit": "Добавляет защёлку-крючок на грани с заданными длиной, толщиной и зацепом. Используйте, чтобы скреплять детали без винтов.",
"help.sheet.convert": "Превращает пластину или оболочку одинаковой толщины в тело из листового металла с гибами на выбранных рёбрах. Используйте, чтобы сделать существующую деталь разворачиваемой.",
"help.sheet.export_bend_table": "Сохраняет таблицу гибов тела из листового металла как CSV или JSON: углы, радиусы и положения гибов на развёртке. Используйте для листогибочного пресса или мастерской.",
"help.sheet.export_dxf": "Сохраняет развёртку как DXF с контурами, линиями гибов и необязательными примечаниями о гибах. Используйте для лазерной, плазменной или гидроабразивной резки.",
"help.sheet.flange": "Добавляет фланец: пластину-основание из эскиза, стенку вдоль открытого контура эскиза или отогнутую стенку на рёбрах листа. Используйте для построения деталей из листового металла.",
"help.sheet.flat_pattern": "Создаёт развёртку тела из листового металла с её размером, вырезами и линиями гибов. Используйте, чтобы проверить заготовку перед резкой.",
"help.sheet.fold": "Сгибает лист вдоль линии эскиза на заданный угол с заданным радиусом. Используйте, чтобы согнуть плоский лист после того, как в нём вырезаны элементы.",
"help.sheet.hem": "Загибает кромку листа назад на себя. Используйте для безопасных жёстких кромок без острых заусенцев.",
"help.sheet.manage_rules": "Создаёт и изменяет правила листового металла: толщину, радиус гиба, коэффициент K, разгрузки и зазоры. Используйте, чтобы подогнать их под материал и инструменты вашей мастерской.",
"help.sheet.path_flange": "Добавляет цепочку фланцев вдоль кромки листа по открытой цепочке линий эскиза. Используйте для профилей вроде U- или Z-образного за один шаг.",
"help.sheet.perforate": "Добавляет поле отверстий по всему плоскому листу в шахматном или квадратном порядке. Используйте для вентиляционных отверстий, решёток и облегчённых панелей.",
"help.sheet.refold": "Снова сгибает разогнутое тело из листового металла. Используйте после добавления элементов на плоский лист.",
"help.sheet.unfold": "Разгибает все гибы тела из листового металла. Используйте, чтобы добавить отверстия или вырезы, которые должны пересекать гиб, а затем согните снова.",
"help.sketch.arc.center_point": "Рисует дугу окружности вокруг центральной точки от начальной точки до конечной. Используйте, когда центр дуги известен, например для радиуса вокруг отверстия или оси.",
"help.sketch.arc.tangent": "Рисует дугу, которая начинается в конце линии или дуги и продолжается по касательной к ней. Используйте, чтобы продолжить цепочку плавным изгибом вместо угла.",
"help.sketch.arc.three_point": "Рисует дугу от начальной точки до конечной через третью точку. Используйте, когда дуга должна проходить через заданные точки, а не вокруг известного центра.",
"help.sketch.arc3d": "Рисует точную дугу окружности в пространстве через три точки при включённом 3D-эскизе. Используйте для изгибов траекторий и направляющих, выходящих из плоскости эскиза.",
"help.sketch.auto_constrain": "Добавляет ограничения, которым эскиз уже почти соответствует (горизонтальность, параллельность, совпадение), а затем проставляет размеры, пока он не станет полностью определён. Используйте, чтобы зафиксировать грубо нарисованный эскиз за один шаг.",
"help.sketch.auto_constrain_from_datum": "Работает как «Автоограничения», но отсчитывает положения от выбранной базовой точки, а не от начала координат. Используйте, когда деталь размечена от одной опорной точки, например угла или отверстия.",
"help.sketch.blend_curve": "Соединяет концы двух кривых плавным сплайном, касательным к обеим, а при желании и с непрерывной кривизной. Используйте, чтобы перекрыть зазор между кривыми без излома.",
"help.sketch.break": "Разделяет кривую на части там, где её пересекают другие кривые, или в точках, которые вы на ней поставите. Используйте, когда часть кривой должна получить собственное ограничение или быть удалена отдельно.",
"help.sketch.cancel": "Выходит из эскиза и отбрасывает всё, что изменено с момента его создания или открытия для правки. Отмена последнего действия вернёт изменения.",
"help.sketch.centerline": "Переключает линии между обычными и осевыми: осями, которые профили не учитывают. Используйте осевую линию как ось для «Вращения», зеркала или ограничения симметрии.",
"help.sketch.chamfer.distance_angle": "Снимает фаску на углу между двумя линиями по расстоянию вдоль первой линии и углу. Используйте, когда на чертеже фаска задана длиной и углом, например 2 мм × 30°.",
"help.sketch.chamfer.equal_distance": "Снимает фаску на углу между двумя линиями на одинаковое расстояние по обеим. Используйте для обычной фаски 45° на контуре.",
"help.sketch.chamfer.two_distance": "Снимает фаску на углу между двумя линиями с отдельным расстоянием вдоль каждой линии. Используйте для фасок не под 45°, заданных двумя длинами.",
"help.sketch.circle.center": "Рисует окружность по центру и диаметру. Используйте для отверстий, бобышек и других круглых элементов с известным центром.",
"help.sketch.circle.three_point": "Рисует окружность через три точки. Используйте, когда окружность должна пройти через заданные точки, например существующей геометрии.",
"help.sketch.circle.three_tangent": "Рисует окружность, касающуюся трёх линий, окружностей или дуг. Используйте, чтобы вписать окружность в пространство между тремя кривыми, например вписанную окружность треугольника.",
"help.sketch.circle.two_point": "Рисует окружность по двум концам её диаметра. Используйте, когда известны точки на краю окружности, а не её центр.",
"help.sketch.circle.two_tangent": "Рисует окружность заданного размера, касающуюся двух линий, окружностей или дуг. Используйте для скругления фиксированного радиуса между двумя кривыми.",
"help.sketch.conic": "Рисует коническую кривую между двумя конечными точками; её форму задают вершина и значение rho. Используйте для плавных переходов, наполненность которых нужно подстроить: от плоской до почти острого угла.",
"help.sketch.constrainer": "Применяет ограничение, которому одна или две выбранные кривые уже почти соответствуют (горизонтальность, параллельность, касание или равенство). Используйте, чтобы привести в порядок нарисованный от руки эскиз по одному ограничению за раз.",
"help.sketch.constraint.coincident": "Помещает точку на другую точку, кривую или ось эскиза. Используйте, чтобы закрыть зазоры в профиле или поставить точку на линию.",
"help.sketch.constraint.collinear": "Располагает две линии на одной прямой. Используйте, чтобы выровнять прерванные рёбра, например обе стороны выемки.",
"help.sketch.constraint.concentric": "Задаёт двум окружностям или дугам общий центр. Используйте для колец, цековок и валов с уступами.",
"help.sketch.constraint.curvature": "Заставляет две кривые, встречающиеся в конечной точке, продолжаться с одинаковой кривизной (G2). Используйте там, где касательного стыка недостаточно для плавности, например на видимых поверхностях.",
"help.sketch.constraint.equal": "Делает линии одинаковой длины, а окружности и дуги — одинакового радиуса. Используйте, чтобы один размер управлял несколькими одинаковыми элементами.",
"help.sketch.constraint.fix": "Фиксирует точки или кривые на месте или снова освобождает их. Используйте для геометрии, которая не должна двигаться при перетаскивании или решении эскиза.",
"help.sketch.constraint.horizontal_vertical": "Делает линию, или линию между двумя точками, горизонтальной или вертикальной, в зависимости от того, что ближе. Используйте, чтобы выровнять контур по осям эскиза.",
"help.sketch.constraint.midpoint": "Ставит точку на середину линии или совмещает середины двух линий. Используйте, чтобы центрировать геометрию на ребре.",
"help.sketch.constraint.parallel": "Делает две линии параллельными. Используйте для сторон, которые должны оставаться параллельными при изменении других размеров.",
"help.sketch.constraint.perpendicular": "Делает так, чтобы две линии встречались под прямым углом. Используйте для прямых углов между линиями, не лежащими на осях эскиза.",
"help.sketch.constraint.polygon": "Превращает замкнутую цепочку линий в правильный многоугольник: равные стороны, все углы на одной окружности. Используйте, чтобы сделать нарисованный от руки многоугольник правильным и сохранить это.",
"help.sketch.constraint.symmetry": "Делает две точки или кривые зеркальными друг для друга относительно линии или центральной точки. Используйте, чтобы профиль оставался симметричным при изменении одной стороны.",
"help.sketch.constraint.tangent": "Заставляет две кривые касаться, например линию и дугу. Используйте для плавных стыков без излома.",
"help.sketch.construction": "Переключает кривые между обычной и вспомогательной геометрией, которую профили не учитывают. Используйте вспомогательные кривые как помощники для разметки, ориентиры и размеры.",
"help.sketch.construction_line": "Создайте бесконечную вспомогательную прямую через две точки. С её помощью можно разметить эскиз, не разделяя профили.",
"help.sketch.construction_line.angle": "Создайте бесконечную вспомогательную прямую под углом к оси X эскиза. Укажите точку и введите угол либо задайте направление.",
"help.sketch.construction_line.bisector": "Выберите две пересекающиеся прямые эскиза, затем одну из двух биссектрис. Результат изменяется вместе с исходными прямыми.",
"help.sketch.construction_line.horizontal": "Создайте бесконечную горизонтальную вспомогательную прямую через точку. Её горизонтальное ограничение сохраняется при последующих изменениях.",
"help.sketch.construction_line.parallel": "Выберите прямую эскиза, затем разместите параллельную бесконечную вспомогательную прямую. Щелчок правой кнопкой — выбрать другую исходную прямую.",
"help.sketch.construction_line.perpendicular": "Выберите прямую эскиза, затем разместите перпендикулярную бесконечную вспомогательную прямую. Щелчок правой кнопкой — выбрать другую исходную прямую.",
"help.sketch.construction_line.tangent_at": "Создайте касательную в точке окружности или дуги окружности либо в конечной точке открытого сплайна или коники. Выберите кривую, затем точку касания.",
"help.sketch.construction_line.tangent_external": "Выберите окружность или дугу, затем внешнюю точку и решение для касательной. В предпросмотре показаны только точки касания на нарисованной дуге.",
"help.sketch.construction_line.tangent_two": "Выберите две окружности или дуги, затем в предпросмотре выберите общую касательную. Точки касания должны лежать на нарисованных кривых.",
"help.sketch.construction_line.vertical": "Создайте бесконечную вертикальную вспомогательную прямую через точку. Её вертикальное ограничение сохраняется при последующих изменениях.",
"help.sketch.copy": "Копирует выбранные кривые и точки эскиза вместе с ограничениями и размерами между ними. Вставьте их в этот эскиз или в другой.",
"help.sketch.create": "Начинает новый 2D-эскиз на плоскости или плоской грани модели. Каждое «Выдавливание», «Вращение» и «Сдвиг» начинается с эскиза.",
"help.sketch.cut": "Копирует выбранную геометрию эскиза и удаляет её из эскиза одним шагом отмены. Вставьте её в другое место этого эскиза или в другой эскиз.",
"help.sketch.dimension": "Добавляет управляющий размер: длину, расстояние, угол, радиус или диаметр, в зависимости от выбранного. Введите значение или имя параметра, и эскиз последует за ним.",
"help.sketch.edit": "Открывает существующий эскиз для правки. Операции, построенные на нём, обновятся, когда вы завершите эскиз.",
"help.sketch.ellipse": "Рисует эллипс по центру, концу большой оси и точке на малой стороне. Используйте для овальных проёмов, кулачков и других вытянутых круглых форм.",
"help.sketch.equation_curve": "Рисует кривую по формулам: x(t) и y(t) либо y = f(x) на заданном интервале. В формулах можно использовать параметры, и кривая следует за ними. Используйте для синусоиды, спирали или эвольвенты зуба шестерни.",
"help.sketch.extend": "Удлиняет линию или дугу до ближайшей кривой на её пути либо наращивает две кривые, пока они не встретятся. Используйте, чтобы закрыть зазоры в профиле после обрезки или правки.",
"help.sketch.fillet": "Скругляет угол, где встречаются две линии или дуги, дугой заданного радиуса. Несколько углов, скруглённых вместе, получают один радиус.",
"help.sketch.finish": "Выходит из эскиза и возвращается к модели. Его замкнутые профили становятся готовы для «Выдавливания», «Вращения» и других операций.",
"help.sketch.finish_auto_constrain": "Запускает «Автоограничения» для эскиза, затем завершает его. Используйте, чтобы выйти из эскиза полностью определённым за один шаг.",
"help.sketch.fit_curves_to_section": "Разрезает меш или твёрдое тело плоскостью эскиза и подбирает линии и дуги по сечению. Используйте, чтобы воссоздать отсканированную или импортированную деталь как редактируемый эскиз.",
"help.sketch.include_3d": "Переносит рёбра модели, вершины и кривые других эскизов в этот эскиз как связанные ссылки, проецируя на его плоскость те, что лежат вне её. Используйте, чтобы строить по геометрии, не лежащей в плоскости эскиза.",
"help.sketch.infinite": "Переключает линии между обычными и бесконечными вспомогательными, идущими через весь вид. Используйте их как ориентиры разметки, которые никогда не оказываются слишком короткими.",
"help.sketch.insert_dxf": "Читает кривые чертежа DXF в эскиз, масштабируя, поворачивая и размещая их так, как вы зададите. Используйте, чтобы строить по 2D-чертежу из другой программы, например по контуру для лазерной резки.",
"help.sketch.insert_svg": "Читает контуры рисунка SVG в эскиз, масштабируя, поворачивая и размещая их так, как вы зададите. Используйте, чтобы превратить логотип или векторный контур в кривые, которые можно выдавить.",
"help.sketch.inspect": "Открывает отчёт об открытом эскизе: сколько осталось степеней свободы и определён ли он полностью. Используйте, чтобы выяснить, что ещё двигается, прежде чем завершить эскиз.",
"help.sketch.intersect": "Добавляет кривые или точки, где тела, грани, рёбра или другие эскизы пересекают плоскость эскиза. Они остаются связанными и следуют за моделью при её изменении.",
"help.sketch.intersection_curve": "Создаёт 3D-кривые там, где встречаются два тела или две грани, связанные с ними. Используйте как траектории или направляющие, следующие за моделью.",
"help.sketch.isoparametric_curve": "Создаёт 3D-кривую вдоль направления U или V грани через выбранную точку, связанную с гранью. Используйте как траекторию или линию разделения, следующую за поверхностью.",
"help.sketch.line": "Рисует соединённые линии точка за точкой, как открытую цепочку или замкнутый контур. Это основной инструмент для большинства профилей.",
"help.sketch.line.midpoint": "Рисует линию от её середины до одного конца, второй конец отражается зеркально. Используйте для линий с центром в точке, например симметричного ребра.",
"help.sketch.line3d": "Рисует соединённые прямые линии между точками в пространстве при включённом 3D-эскизе. Используйте для траекторий и рам, выходящих из плоскости эскиза.",
"help.sketch.mirror": "Отражает кривые и точки эскиза относительно линии или оси и добавляет ограничения симметрии. Используйте, чтобы нарисовать половину симметричного профиля и достроить его.",
"help.sketch.move": "Перемещает или поворачивает кривые и точки эскиза либо их копию. Используйте, чтобы переставить геометрию, сохранив её форму и ограничения.",
"help.sketch.offset": "Создаёт копию цепочки кривых на заданном расстоянии с одной или с обеих сторон. Используйте для стенок, контуров и зазоров; расстояние остаётся редактируемым размером.",
"help.sketch.paste": "Вставляет скопированную или вырезанную геометрию эскиза в активный эскиз. Поместите её в точку или сместите на заданную величину.",
"help.sketch.pattern.circular": "Копирует геометрию эскиза вокруг центральной точки на полный круг или заданный угол. Используйте для окружностей болтов, спиц и зубьев.",
"help.sketch.pattern.rectangular": "Копирует геометрию эскиза рядами и столбцами с заданным шагом. Используйте для сеток отверстий, пазов или вентиляционных прорезей.",
"help.sketch.point": "Ставит точку эскиза. Используйте как ориентир для размеров, ограничений, центров отверстий или последующих операций.",
"help.sketch.point3d": "Ставит точку в пространстве при включённом 3D-эскизе. Используйте как ориентир для 3D-кривых и траекторий.",
"help.sketch.polygon.circumscribed": "Рисует правильный многоугольник вокруг окружности; размер задаётся от центра до середины стороны. Используйте, когда известен размер под ключ, например у шестигранной гайки.",
"help.sketch.polygon.edge": "Рисует правильный многоугольник по двум концам одной стороны. Используйте, когда известны длина и положение стороны.",
"help.sketch.polygon.inscribed": "Рисует правильный многоугольник внутри окружности; размер задаётся от центра до угла. Используйте, когда известен размер между углами.",
"help.sketch.project": "Переносит рёбра, грани, вершины модели и кривые других эскизов в этот эскиз, проецируя их на его плоскость. Они остаются связанными и следуют за моделью при её изменении.",
"help.sketch.project_to_surface": "Проецирует кривые других эскизов по нормали этого эскиза на грань как связанные 3D-кривые. Используйте, чтобы нанести логотип, линию разделения или траекторию на изогнутую поверхность.",
"help.sketch.rectangle.center": "Рисует прямоугольник по центру и одному углу. Используйте для контуров с центром в точке, например в начале координат.",
"help.sketch.rectangle.rounded": "Рисует прямоугольник со всеми четырьмя углами, скруглёнными одним радиусом. Используйте для пластин, крышек и проёмов со скруглёнными углами.",
"help.sketch.rectangle.three_point": "Рисует прямоугольник по одной стороне и точке на противоположной. Используйте для прямоугольников под углом к осям эскиза.",
"help.sketch.rectangle.two_point": "Рисует прямоугольник по двум противоположным углам. Используйте для контуров пластин, блоков и карманов.",
"help.sketch.scale": "Масштабирует кривые и точки эскиза на коэффициент относительно базовой точки. Используйте, чтобы изменить размер части эскиза, не рисуя её заново.",
"help.sketch.slot.arc_center": "Рисует изогнутый паз заданной ширины вдоль дуги, заданной центром, началом и концом. Используйте для регулировочных пазов вокруг оси.",
"help.sketch.slot.arc_three_point": "Рисует изогнутый паз заданной ширины вдоль дуги через три точки. Используйте, когда траектория паза должна пройти через заданные точки.",
"help.sketch.slot.center_point": "Рисует прямой паз заданной ширины от его центра до центра одной торцевой дуги. Используйте для пазов с центром в точке.",
"help.sketch.slot.center_to_center": "Рисует прямой паз заданной ширины между центрами двух торцевых дуг. Используйте для пазов, размеры которых заданы от центра до центра, например регулировочных пазов под винты.",
"help.sketch.slot.overall": "Рисует прямой паз заданной ширины от одного внешнего конца до другого. Используйте, когда важна полная длина паза.",
"help.sketch.spline.control_point": "Рисует кубический сплайн по контрольным точкам, через которые он не проходит. Используйте для плавных текучих кривых, форму которых вы задаёте перемещением точек.",
"help.sketch.spline.control_point_5": "Рисует сплайн степени 5 по контрольным точкам. Используйте там, где кривые должны стыковаться с более плавной кривизной, например на видимых стилизованных поверхностях.",
"help.sketch.spline.fit_point": "Рисует плавный сплайн, проходящий через каждую поставленную вами точку, открытый или замкнутый. Используйте, чтобы обвести форму по известным точкам.",
"help.sketch.spline3d": "Рисует плавную кривую в пространстве через точки при включённом 3D-эскизе. Используйте для траекторий сдвига и трасс кабелей, выходящих из плоскости эскиза.",
"help.sketch.spun_profile": "Создаёт в плоскости эскиза контур, который тело заметает, вращаясь вокруг оси. Используйте, чтобы получить силуэт точёной детали для «Вращения» или чертежа.",
"help.sketch.text": "Пишет в эскизе текст выбранным шрифтом, высотой и под выбранным углом; слова могут следовать за параметрами. Выдавите его или нанесите «Тиснением» для надписей и маркировки.",
"help.sketch.transform": "Масштабирует, поворачивает и перемещает геометрию эскиза относительно центральной точки за один шаг. Используйте, чтобы сразу переставить и изменить размер выбранного.",
"help.sketch.trim": "Удаляет участок кривой между ближайшими пересечениями вокруг места щелчка. Используйте, чтобы превратить перекрывающиеся линии в замкнутый профиль.",
"help.solid.align": "Перемещает выбранные тела так, чтобы точка, грань или плоскость на них совпала с точкой, гранью или плоскостью в другом месте. Используйте, чтобы приставить деталь к другой, не измеряя смещение.",
"help.solid.boundary_fill": "Создаёт тела из областей, ограниченных перекрывающимися телами-инструментами, заполняя только выбранные области. Используйте, чтобы построить форму из пространства, которое совместно ограничивают несколько тел.",
"help.solid.bounding_solid": "Создаёт бокс, охватывающий выбранные тела, с необязательным запасом. Используйте, чтобы увидеть габариты детали или как заготовку, из которой её обрабатывают.",
"help.solid.box": "Создаёт бокс по длине, ширине и высоте от угловой точки или с центром в точке. Используйте для быстрого блока, заглушки или тела, в котором вырезают элементы.",
"help.solid.chamfer": "Срезает выбранные рёбра плоской фаской на заданное расстояние. Используйте, чтобы притупить острые кромки или облегчить вход штифта или винта.",
"help.solid.coil": "Создаёт винтовое тело, например пружину, по диаметру, числу витков, высоте или шагу и круглому либо квадратному сечению. Используйте для пружин, спиралей и винтовых гребней.",
"help.solid.combine": "Объединяет тела, вырезает их из целевого тела или оставляет только общий для них объём; тела-инструменты можно сохранить. Используйте, чтобы слить детали, вырезать одной формой другую или найти, где два тела пересекаются.",
"help.solid.cone": "Создаёт конус по окружности основания и высоте или усечённый конус, если у верхней части тоже есть радиус. Используйте для сужений, воронок, зенковок и острий.",
"help.solid.cylinder": "Создаёт цилиндр по радиусу или диаметру и высоте, стоящий на точке вдоль оси. Используйте для валов, штифтов, бобышек и круглых заготовок.",
"help.solid.draft": "Наклоняет выбранные грани на заданный угол, отсчитываемый от нейтральной плоскости. Используйте для литых и формованных деталей, чтобы они свободно извлекались из формы.",
"help.solid.emboss": "Выпячивает профили эскиза, например текст или логотип, из грани или вдавливает их в неё. Используйте для надписей, табличек и маркировки на плоских и круглых гранях.",
"help.solid.extrude": "Выдавливает профиль эскиза в 3D на заданное расстояние, добавляя или удаляя материал. Используйте, чтобы превратить плоский контур в брусок, выступ или карман.",
"help.solid.fillet": "Скругляет выбранные рёбра плавным круговым переходом заданного радиуса. Используйте, чтобы смягчить острые рёбра ради прочности, удобства или внешнего вида.",
"help.solid.hole": "Сверлит круглое отверстие заданного диаметра в выбранной точке грани. Используйте для отверстий под винты и штифты и других простых круглых проёмов.",
@@ -1398,20 +1638,60 @@
"help.solid.move": "Перемещает или поворачивает выбранные тела либо их копию на заданное расстояние и угол. Используйте, чтобы переставить тело или создать второе в другом месте.",
"help.solid.offset_face": "Смещает выбранные грани внутрь или наружу на заданное расстояние, а окружающие грани следуют за ними. Используйте, чтобы сделать стенку толще, карман глубже или выступ выше, не редактируя эскиз.",
"help.solid.pattern.circular": "Повторяет выбранные объекты вокруг оси с заданным количеством и общим углом. Используйте для болтов по окружности, спиц, рёбер и зубьев.",
"help.solid.pattern.path": "Копирует операции или тела вдоль траектории эскиза по числу и шагу. Используйте для отверстий вдоль изогнутого ребра или деталей вдоль направляющей.",
"help.solid.pattern.rectangular": "Повторяет выбранные объекты в одном или двух направлениях с заданным количеством и шагом. Используйте для рядов и сеток отверстий, рёбер жёсткости, штифтов или ножек.",
"help.solid.pipe": "Создаёт круглую трубу вдоль траектории из кривых эскиза, сплошную или полую с заданной толщиной стенки. Используйте для труб, проводов, кабелей и направляющих.",
"help.solid.press_pull": "Добавляет или удаляет материал при перетаскивании грани либо скругляет рёбра при их перетаскивании. Используйте для быстрых изменений прямо на модели.",
"help.solid.remove": "Убирает выбранные тела из дизайна начиная с этого места в истории; предыдущие шаги их сохраняют. Используйте, чтобы убрать вспомогательное тело, например режущий инструмент, который больше не нужен.",
"help.solid.replace_face": "Переносит выбранные плоские грани на плоскость или на параллельную грань, и тело растёт или уменьшается, чтобы достичь её. Используйте, чтобы совместить грань вровень с другой деталью или вспомогательной плоскостью.",
"help.solid.revolve": "Вращает профиль эскиза вокруг оси, создавая тело вращения. Используйте для валов, ручек, чаш и любых деталей, круглых относительно осевой линии.",
"help.solid.rib": "Добавляет ребро жёсткости: тонкую стенку вдоль открытой кривой эскиза, доведённую до ближайших граней тела. Используйте, чтобы усилить стенки и углы, например в формованных или печатных деталях.",
"help.solid.scale": "Увеличивает или уменьшает выбранные тела на коэффициент, одинаковый по всем направлениям или свой для каждой оси. Используйте, чтобы изменить размер импортированной формы или учесть усадку.",
"help.solid.shell": "Делает тело полым, оставляя стенки заданной толщины, и может открывать выбранные грани. Используйте для коробок, крышек и других тонкостенных деталей.",
"help.solid.sphere": "Создаёт сферу по радиусу или диаметру вокруг центральной точки. Используйте для шаров, ручек и скруглённых концов.",
"help.solid.split_body": "Разрезает тело на отдельные тела плоскостью, гранью другого тела или линией эскиза. Используйте, чтобы получить детали, которые печатаются, обрабатываются или окрашиваются отдельно.",
"help.solid.split_face": "Делит выбранные грани по плоскости, грани другого тела или кривым эскиза, не разрезая тело. Используйте, чтобы задать части грани собственный уклон, цвет или смещение.",
"help.solid.sweep": "Протягивает профиль эскиза вдоль траектории, создавая тело. Используйте для труб, направляющих, ручек и любых деталей постоянного сечения, следующих по кривой.",
"help.solid.thread": "Добавляет метрическую резьбу ISO на цилиндрическую грань: условную или вырезанную в теле. Используйте для болтов, резьбовых отверстий и печатных винтовых деталей.",
"help.solid.torus": "Создаёт кольцо по большому радиусу вокруг его оси и малому радиусу круглого сечения. Используйте для уплотнительных колец, ручек и круглых бусин.",
"help.solid.web": "Добавляет тонкую перегородку вдоль каждой открытой кривой эскиза, каждую доведённую до ближайших граней тела. Используйте для сетки поддерживающих перегородок внутри корпусов и лотков.",
"help.surface.blend": "Создаёт поверхность, соединяющую рёбра двух тел, касательную или с непрерывной кривизной к обоим. Используйте, чтобы плавно соединить две поверхности через зазор.",
"help.surface.boundary": "Создаёт поверхность, заполняющую контур из двух–четырёх кривых эскиза, или сеть кривых. Используйте для свободных панелей, заданных своими краями.",
"help.surface.extend": "Удлиняет поверхность за её кромки на расстояние или до плоскости или грани. Используйте, чтобы поверхности перекрывались перед обрезкой или сшиванием.",
"help.surface.extrude": "Выдавливает кривые или профили эскиза на расстояние в поверхность: только стенки, без торцов. Используйте для тонких стенок и режущих или разделяющих инструментов.",
"help.surface.fair": "Сглаживает внутреннюю часть свободных граней, пока их кромки остаются на месте. Используйте, чтобы выровнять бугры и волнистые отражения на поверхности.",
"help.surface.loft": "Создаёт поверхность, проходящую по порядку через два или более сечений, без торцов. Используйте для оболочек и переходов между разными формами.",
"help.surface.match": "Перестраивает кромку поверхности так, чтобы она стыковалась с кромкой другого тела, с согласованными касательными или кривизной. Используйте, чтобы плавно закрыть шов между двумя поверхностями.",
"help.surface.offset": "Создаёт копию граней на расстоянии по их нормалям как новое тело-поверхность. Используйте для оболочек, зазоров или другой стороны стенки.",
"help.surface.patch": "Заполняет область эскиза или замкнутый контур рёбер гранью, плоской или плавно изогнутой. Используйте, чтобы закрывать отверстия в теле-поверхности.",
"help.surface.reverse_normal": "Переворачивает грани тела-поверхности, так что их внешняя сторона смотрит в другую сторону. Используйте перед утолщением или сшиванием, если грани направлены внутрь.",
"help.surface.revolve": "Вращает кривые или профили эскиза вокруг оси в поверхность, без торцов. Используйте для круглых оболочек, таких как абажуры, чаши и сопла.",
"help.surface.ruled": "Создаёт полосу из прямых линий от цепочки рёбер вдоль нормали грани, по касательной или под углом. Используйте для стенок с уклоном, переходных участков и поверхностей разъёма.",
"help.surface.stitch": "Сшивает тела-поверхности по общим рёбрам, а если они замыкаются, получается твёрдое тело. Используйте, чтобы превратить набор поверхностей в одно тело.",
"help.surface.sweep": "Протягивает кривые или профили эскиза вдоль траектории в поверхность, без торцов. Используйте для желобов, накладок и других тонких форм, следующих за траекторией.",
"help.surface.thicken": "Придаёт телу-поверхности толщину, превращая его в твёрдое тело. Используйте, чтобы получать из поверхностей детали для печати или обработки.",
"help.surface.trim": "Обрезает поверхность плоскостью, другой поверхностью или кривыми эскиза и оставляет выбранную сторону. Используйте, чтобы подрезать поверхности по форме перед сшиванием.",
"help.surface.unstitch": "Разделяет грани тела на отдельные тела-поверхности; твёрдое тело распадается на поверхности. Используйте, чтобы переработать отдельные грани тела.",
"help.surface.untrim": "Удаляет отверстия из грани или возвращает её внешнюю границу к естественным границам поверхности. Используйте, чтобы вернуть полную поверхность после обрезки.",
"help.third_party": "Лицензии сторонних компонентов",
"help.timeline.compute_all": "Перестраивает все операции в истории с самого начала. Используйте, чтобы обновить модель и увидеть, какие операции завершаются с ошибкой.",
"help.timeline.delete": "Удаляет выбранные операции из истории; при удалении эскиза также удаляются операции, построенные на нём. Используйте, чтобы убрать шаг, который больше не нужен.",
"help.timeline.dependents": "Перечисляет операции, которые будут удалены вместе с выбранной, и те, что перестанут работать без неё. Используйте перед удалением или изменением операции.",
"help.timeline.play": "Воспроизводит оставшиеся операции по одной с паузой в полсекунды после каждой перестройки. Чтобы остановить, запустите эту команду снова или нажмите Esc; «Перейти в конец» переходит мгновенно.",
"help.view.apply": "Поворачивает вид к стандартному направлению, например спереди, сверху или изометрии, либо к сохранённому именованному виду. Используйте, чтобы смотреть на модель под фиксированным углом.",
"help.view.delete": "Удаляет сохранённый именованный вид. Модель не меняется.",
"help.view.fit": "Масштабирует и сдвигает вид так, чтобы вся модель или выделенное заполнили его. Используйте, когда модель ушла из поля зрения.",
"help.view.grid": "Показывает или скрывает сетку на видовом экране. Используйте как ориентир размера и направления при моделировании.",
"help.view.ground_shadow": "Показывает или скрывает тень модели на земле. Используйте, чтобы легче оценивать высоту и положение.",
"help.view.home": "Возвращает вид в главное направление и вписывает модель. Используйте, чтобы быстро вернуться к известному виду.",
"help.view.list": "Перечисляет именованные виды, сохранённые в дизайне. Используйте, чтобы найти вид, сохранённый ранее.",
"help.view.navigate": "Поворачивает, сдвигает или масштабирует вид шагами, например четверть оборота влево. Используйте, чтобы точно двигать камеру вместо перетаскивания.",
"help.view.navigation_bar": "Показывает или скрывает панель навигации внизу видового экрана. Скройте её, чтобы освободить место, и покажите, чтобы пользоваться инструментами вида мышью.",
"help.view.rename": "Даёт сохранённому именованному виду новое имя. Сам вид не меняется.",
"help.view.save": "Сохраняет текущее положение камеры как именованный вид в дизайне. Используйте, чтобы позже вернуться к тому же ракурсу, например для снимков экрана.",
"help.view.spin": "Непрерывно вращает вид вокруг модели до следующего щелчка или нажатия клавиши. Используйте, чтобы показать модель со всех сторон.",
"help.view.tool": "Закрепляет инструмент камеры (орбиту, панорамирование или масштаб), так что перетаскивание левой кнопкой мыши двигает вид, пока вы его не отключите. Используйте на трекпаде или без средней кнопки мыши.",
"help.view.visual_style": "Переключает способ отрисовки модели: тонированная с рёбрами или без них, каркас или со скрытыми рёбрами. Используйте каркас, чтобы заглянуть внутрь, а тонированный вид — для чистого вида.",
"hole_presets.confirm_delete": "Подтвердить удаление",
"hole_presets.delete": "Удалить",
"hole_presets.delete_prompt": "Удалить этот личный пресет? Существующие отверстия не изменятся.",
@@ -1586,6 +1866,10 @@
"material.selection.mixed": "Разные материалы",
"measure.at": "В точке",
"measure.item": "Элемент {number}",
"measure.quick_copied": "Измерение скопировано",
"measure.quick_copy": "Щёлкните, чтобы скопировать измерение",
"measure.quick_edges": "Рёбер: {count}",
"measure.quick_faces": "Граней: {count}",
"messages.ago_h": "{n} ч назад",
"messages.ago_min": "{n} мин назад",
"messages.ago_s": "{n} с назад",
@@ -1619,6 +1903,7 @@
"nav.hfss.help": "Alt+перетаскивание левой кнопкой панорамирует, Shift+Alt+левая кнопка меняет масштаб, Ctrl+перетаскивание левой кнопкой по пустому месту вращает",
"nav.inventor.help": "Перетаскивание средней кнопкой панорамирует, Shift+средняя вращает, Ctrl+средняя меняет масштаб, перетаскивание правой кнопкой вращает",
"nav.maya.help": "Alt+перетаскивание левой кнопкой вращает, Alt+средняя кнопка панорамирует, Alt+правая кнопка меняет масштаб; перетаскивание средней кнопкой тоже панорамирует",
"nav.nx.help": "Перетаскивание средней кнопкой вращает, Shift+средняя панорамирует (в NX — средняя + правая), Ctrl+средняя меняет масштаб (в NX — средняя + левая); перетаскивание правой кнопкой камеру не двигает",
"nav.openscad.help": "Перетаскивание левой кнопкой по пустому месту вращает, Shift+левая выделяет рамкой, перетаскивание геометрии эскиза изменяет её; правая или средняя кнопка панорамирует, Shift+правая или Shift+средняя меняет масштаб",
"nav.perspective.sketch": "При редактировании эскиза используется ортогональный вид. Завершите эскиз, чтобы включить перспективу.",
"nav.right_drag_orbits.help": "Выкл.: перетаскивание правой кнопкой не двигает камеру, а правая кнопка только открывает контекстное меню. Выбор назначения кнопок мыши SolidWorks отключает этот параметр.",
@@ -1738,6 +2023,11 @@
"not a move": "это не перемещение",
"not a number": "не число",
"open a sketch first": "сначала откройте эскиз",
"parameters.apply_live": "Применять каждое изменение при выходе из поля",
"parameters.apply_live_tip": "Выкл.: изменения ждут «Применить» или OK, после чего дизайн один раз пересобирается для всех сразу. «Отмена» или Esc отбрасывает их.",
"parameters.held": "Изменений в ожидании применения: {count}",
"parameters.held_hint": "Правьте выражения и единицы. Изменения ждут «Применить» или OK.",
"parameters.held_one": "1 изменение ждёт применения",
"parts.automatic_name": "автоматически",
"parts.dimension.across_flats": "Размер под ключ",
"parts.dimension.bore": "Диаметр отверстия",
@@ -1760,6 +2050,8 @@
"parts.family.set_screw": "Установочный винт с внутренним шестигранником и плоским концом",
"parts.family.socket_head_cap_screw": "Винт с цилиндрической головкой и внутренним шестигранником",
"parts.family.washer": "Плоская шайба",
"parts.holes": "Отверстия (необязательно)",
"parts.placement_hint": "выберите одно или несколько отверстий, чтобы посадить деталь в каждое, или OK поместит её в начало координат",
"pattern.alignment_2": "Выравнивание 2",
"pattern.alignment_hint": "Количество включает оригинал. Центрирование распределяет копии по обе стороны; при чётном количестве смена направления выбирает сторону с дополнительной копией.",
"pattern.direction_1": "Направление 1",
@@ -1829,6 +2121,8 @@
"prefs.ctrl_cmd": "Ctrl / Cmd",
"prefs.curved_surfaces": "Криволинейные поверхности",
"prefs.curves": "Криволинейные поверхности",
"prefs.dark_parts_shading": "Сохранять форму тёмных деталей",
"prefs.dark_parts_shading_help": "Затенять вид в линейном свете с мягкой заполняющей подсветкой неба, чтобы тёмные грани сохраняли градиент, а не становились чёрными",
"prefs.dead_zone_note": "Заштрихованная полоса — мёртвая зона: движение внутри неё игнорируется.",
"prefs.default": "по умолчанию",
"prefs.design": "Параметры дизайна по умолчанию",
@@ -1843,6 +2137,8 @@
"prefs.edges": "Рёбра и затенение",
"prefs.extend": "Удлинить",
"prefs.extra_navigation": "Ctrl+перетаскивание левой кнопкой по пустому месту вращает вид; удерживайте Space для панорамирования.",
"prefs.extrude_view_isometric": "Поворачивать вид в изометрию при открытии «Выдавливания»",
"prefs.extrude_view_return": "Возвращать прежний вид при закрытии «Выдавливания»",
"prefs.follows_os": "Как в системе",
"prefs.font": "Шрифт",
"prefs.font_fallback": "Символы, которых нет в выбранном шрифте, берутся из встроенного шрифта, поэтому ни одна подпись не показывает пустой квадрат.",
@@ -1858,6 +2154,7 @@
"prefs.graphics_card_auto": "Автоматически",
"prefs.graphics_card_missing": "Сохранённая видеокарта недоступна; используется «Автоматически».",
"prefs.graphics_card_restart": "Вступит в силу после перезапуска SolidCraft. WGPU_ADAPTER_NAME переопределяет этот выбор.",
"prefs.graphics_card_unused": "Сохранённая видеокарта для этого окна не использовалась; используемая видеокарта показана в меню Справка › О SolidCraft и в строке состояния. Попробуйте «Автоматически» или задайте для WGPU_ADAPTER_NAME уникальную часть названия видеокарты.",
"prefs.graphics_note": "Выбирайте между скоростью и плавностью изображения. Каждый вариант показывает свой эффект на образце.",
"prefs.graphics_presets_note": "Пресеты задают сразу все настройки ниже.",
"prefs.hide_constraint_glyphs_zoomed_out": "Скрывать знаки ограничений при уменьшении масштаба",
@@ -1872,6 +2169,8 @@
"prefs.history_sketches_note": "Если для эскизов выбрано «Под своей операцией», История слева показывает каждый эскиз на один уровень глубже, под первой операцией, построенной по нему, когда она достаточно широкая для названий. Шкала внизу всегда сохраняет порядок создания.",
"prefs.history_sketches_under_feature": "Под своей операцией",
"prefs.hold_stop_snapping": "Удерживайте, чтобы отключить привязку",
"prefs.home_fit_size": "Размер для «Главная» и «Вписать»",
"prefs.home_fit_size_note": "Какую часть вида занимает модель, когда её кадрируют «Главная», «Вписать», открытый дизайн или смена вида в навигаторе, независимо от того, включён ли параметр ниже. 100 %: заполняет вид между панелями, компасом и панелью навигации.",
"prefs.icons_only": "Только значки",
"prefs.imported_file": "Импортированный файл",
"prefs.input": "Ввод",
@@ -1879,13 +2178,20 @@
"prefs.interface_language": "Язык интерфейса",
"prefs.interface_note": "Как выглядит SolidCraft и где расположены его части.",
"prefs.interval_minutes": "{n} мин",
"prefs.invert_navigator_arrows": "Инвертировать стрелки вращения куба видов",
"prefs.invert_navigator_arrows_note": "Стрелки вокруг куба вращают камеру в ту сторону, куда указывают, как в Fusion и Inventor: стрелка слева указывает вправо и поворачивает камеру вправо. Выкл.: стрелка поворачивает куб в сторону, где она расположена, поэтому левая стрелка поворачивает камеру влево. Изогнутые стрелки крена не затрагиваются.",
"prefs.keep_work_on_tab_switch": "Сохранять открытые диалоги и инструменты при переключении между дизайнами",
"prefs.keep_work_on_tab_switch_note": "Каждая вкладка дизайна сохраняет свой открытый диалог или инструмент вместе с тем, что вы в нём выбрали и ввели, а также свою вкладку панели инструментов. Они снова на месте, когда вы возвращаетесь к дизайну. Выкл.: при переключении дизайнов они отменяются, и показывается вкладка «Модель».",
"prefs.labels": "Подписи",
"prefs.language_system": "Системный",
"prefs.layout": "Расположение",
"prefs.layout_note": "«Компактная» прикрепляет панели к краям окна. Прозрачность браузера доступна в режиме «Плавающая». Сторону ассистента можно изменить на странице «Ассистент».",
"prefs.left": "Слева",
"prefs.left_click": "Щелчок левой кнопкой",
"prefs.line_drag_draws_one": "Нажатие и перетаскивание рисует одну линию",
"prefs.line_drag_draws_one_note": "В инструменте «Линия» нажатие, перетаскивание и отпускание рисуют одну линию от места нажатия до места отпускания, и на этом она заканчивается. Щелчки по-прежнему рисуют цепочку. Выкл.: перетаскивание ставит точку там, где его отпустили, как и щелчок.",
"prefs.line_hover_tangent_arc": "Задержаться на последней точке линии, чтобы перейти к касательной дуге",
"prefs.line_hover_tangent_arc_note": "В инструменте «Линия» после того, как сегмент нарисован, отведите указатель от последней точки цепочки, вернитесь и удерживайте его на ней неподвижно: следующий щелчок завершит касательную дугу, а тот же жест вернёт к линиям. Выкл.: задержка там ничего не делает.",
"prefs.linked_designs": "Связанные дизайны",
"prefs.live_input": "Ввод в реальном времени",
"prefs.live_preview": "Предпросмотр в реальном времени",
@@ -1909,6 +2215,8 @@
"prefs.mouse_mapping": "Назначение кнопок мыши",
"prefs.navigation": "Навигация",
"prefs.navigation_note": "Как мышь, тачпад и 3D-мышь двигают вид.",
"prefs.navigator_fit": "Вписывать модель после смены вида в навигаторе",
"prefs.navigator_fit_note": "Грань, угол или стрелка куба видов либо ось гизмо также направляет взгляд на середину модели с единственного расстояния, с которого она целиком видна со всех сторон (её габаритная сфера). «Главная» при включённом параметре использует тот же масштаб и центр, поэтому выбранные после неё виды только поворачиваются. Выкл.: вид поворачивается на месте, сохраняя свою цель и масштаб.",
"prefs.network_host_remove": "Убрать",
"prefs.network_locations": "Разрешить сетевые расположения в дизайнах",
"prefs.network_locations_note": "Выкл.: связанные файлы дизайна на другом компьютере (\\\\server\\share) открываются только с перечисленных здесь серверов или после того, как вы разрешите сервер по запросу.",
@@ -1921,6 +2229,10 @@
"prefs.origin_plane_names": "Имена плоскостей начала координат",
"prefs.origin_plane_names_note": "Имена в браузере, диалогах и списках. {top} — это XY, {front} — XZ, {right} — YZ, ось Z направлена вверх. Команды, скрипты и сохранённые дизайны по-прежнему используют XY, XZ и YZ.",
"prefs.overall_speed": "Общая скорость",
"prefs.parameter_list_rows": "Строк в списке параметров",
"prefs.parameter_list_rows_tip": "Стрелка вниз в пустом поле значения открывает список параметров, сначала избранные, не больше этого числа. Меньшее число делает список лёгким в большом дизайне.",
"prefs.persistent_ribbon_pressed": "Подсвечивать активные команды на ленте",
"prefs.persistent_ribbon_pressed_help": "Подсвечивает команды на ленте, пока их действие включено. Отключите, чтобы сохранить прежний нейтральный вид и справку по командам.",
"prefs.perspective_fov": "Угол обзора",
"prefs.placement": "Размещение",
"prefs.prefer_free_sketch_points": "Предпочитать подвижные точки эскиза, когда точки перекрываются",
@@ -1948,9 +2260,13 @@
"prefs.quality_fastest": "быстрее всего",
"prefs.quality_slowest": "медленнее всего",
"prefs.quality_smoother": "глаже",
"prefs.quick_measure": "Быстрое измерение в углу вида",
"prefs.quick_measure_note": "Размер выделенного в правом нижнем углу вида: длина ребра, Ø и R для круглого, площадь грани, положение точки, расстояние и угол между двумя элементами, общее значение для нескольких рёбер или граней. Щелчок копирует его.",
"prefs.render_previous_geometry_budget": "Использовать прежний бюджет геометрии предпросмотра рендера",
"prefs.render_previous_geometry_budget_help": "Вернуть прежний фиксированный предел геометрии (512 МиБ на 64-разрядном настольном компьютере, 128 МиБ на остальных устройствах) вместо бюджета, зависящего от устройства.",
"prefs.reports_saved": "Сохранено: {n}",
"prefs.ribbon_click_ends_tool": "Щелчок по кнопке работающего инструмента завершает его",
"prefs.ribbon_click_ends_tool_note": "Щелчок по подсвеченной кнопке используемого инструмента эскиза на ленте завершает инструмент, и щелчки в виде снова выделяют объекты. Выкл.: щелчок снова запускает инструмент.",
"prefs.ribbon_reveal": "Показывать результаты поиска на ленте",
"prefs.ribbon_reveal_note": "Наведение на результат в «Поиске команд» показывает, где команда находится на ленте: её вкладку, кнопку или строку в раскрывающемся списке панели. Команда, запущенная из поиска, мигает там, а выполняемая команда из раскрывающегося списка отмечает свою панель.",
"prefs.right_click": "Правый щелчок",
@@ -1978,6 +2294,10 @@
"prefs.sketch_exit_view.previous": "Вернуться к прежнему виду",
"prefs.sketch_exit_view.unless_rotated": "Вернуться, если вид не повёрнут",
"prefs.sketch_exit_view_note": "Куда переходит вид после «Завершить эскиз», «Отмена» или двойного Esc.",
"prefs.sketch_face_activates_part": "Эскиз на грани детали делает эту деталь активной",
"prefs.sketch_face_activates_part_note": "Эскиз, начатый на грани тела другого компонента, сначала активирует этот компонент, поэтому эскиз принадлежит ему и в браузере остаётся с этой деталью. После этого деталь остаётся активной. Выкл.: эскиз принадлежит активному компоненту.",
"prefs.sketch_open_look_at": "Поворачивать камеру к эскизу при его открытии",
"prefs.sketch_open_look_at_note": "Выкл.: при создании или редактировании эскиза вид не меняется. «Взгляд на» поворачивает вид к эскизу, когда это нужно.",
"prefs.sketch_recent_snap": "Автопривязка к недавним центрам и серединам",
"prefs.sketch_recent_snap_note": "При рисовании курсор привязывается к месту пересечения направляющих двух последних центров окружностей или середин прямых отрезков. Выкл.: эти направляющие остаются только визуальными, а курсор не смещается.",
"prefs.sketch_selection": "Эскиз и выделение",
@@ -1987,6 +2307,8 @@
"prefs.sketch_tab_always_note": "Вкладка «Эскиз» остаётся на ленте сразу после «Модель», пока не открыт ни один эскиз. Её инструменты рисования создают эскиз на выбранной плоскости или грани либо на плоскости, которую вы выберете следом, и сразу включают нужный инструмент.",
"prefs.sketch_tracking_guides": "Направляющие выравнивания по центру и середине",
"prefs.sketch_tracking_guides_note": "Наведите курсор на центр окружности или середину прямого отрезка, затем двигайтесь по горизонтали или вертикали, чтобы показать временную пунктирную направляющую.",
"prefs.sketch_tracking_points": "Направляющие выравнивания от концов и углов при рисовании",
"prefs.sketch_tracking_points_note": "Пока инструмент рисования ждёт точку, наведение на конец линии или дуги, угол прямоугольника или свободную точку показывает ту же временную пунктирную направляющую, что и для центра или середины. Выкл.: только центры и середины.",
"prefs.sketching": "Эскизирование",
"prefs.snap_drawing_note": "При рисовании или перетаскивании точки эскиза.",
"prefs.source": "Источник",
@@ -1998,6 +2320,24 @@
"prefs.status_error": "Ошибка",
"prefs.status_selected": "Выбрано",
"prefs.status_warning": "Предупреждение",
"prefs.structure.appearance": "Внешний вид",
"prefs.structure.appearance_note": "Цвета, текст и специальные возможности.",
"prefs.structure.in_profile": "В профиле",
"prefs.structure.layout": "Расположение",
"prefs.structure.layout_note": "Где находятся части окна.",
"prefs.structure.look": "Оформление",
"prefs.structure.measure_pointer": "Измерение и указатель",
"prefs.structure.mouse3d": "3D-мышь",
"prefs.structure.mouse3d_note": "SpaceMouse и SpaceNavigator.",
"prefs.structure.navigation_note": "Мышь и тачпад. У 3D-мыши есть своя страница.",
"prefs.structure.profile": "Профиль",
"prefs.structure.profile_edited": "Изменено после сохранения",
"prefs.structure.profile_hover": "Сохранено в профилях настроек",
"prefs.structure.scale_percent": "{percent}%",
"prefs.structure.sketch": "Эскиз",
"prefs.structure.tools": "Инструменты",
"prefs.structure.tools_note": "Как ведут себя инструменты моделирования.",
"prefs.structure.work": "Работа",
"prefs.supersampling_brief": "Рисует вид в большем размере и уменьшает его: очень чётко, но тяжелее.",
"prefs.tab_accent_note": "Акцентный цвет следует за активной вкладкой",
"prefs.theme_file": "файл темы",
@@ -2009,6 +2349,16 @@
"prefs.theme_follow_off": "Выкл.",
"prefs.theme_follow_stop": "Прекратить отслеживание",
"prefs.theme_import_hint": "Щёлкните, чтобы выбрать файл темы, перетащите его сюда или нажмите Ctrl+V (Cmd+V на Mac) при скопированной теме",
"prefs.theme_option_opacity": "Непрозрачность",
"prefs.theme_option_opacity_help": "Настройте непрозрачность плавающих панелей. Нижний порог читаемости защищает текст поверх цветов видового экрана.",
"prefs.theme_option_tab_colours": "Цвета вкладок",
"prefs.theme_option_tab_colours_help": "Использовать цвета панелей и видового экрана этой темы для каждой вкладки ленты.",
"prefs.theme_option_tab_fade_ms": "Переход между вкладками",
"prefs.theme_option_tab_fade_ms_help": "Плавно менять цвета панелей и видового экрана при переключении вкладок. Ноль переключает мгновенно.",
"prefs.theme_options_badge": "Параметры",
"prefs.theme_options_more": "Ещё · {count}",
"prefs.theme_options_reset": "Сбросить",
"prefs.theme_options_unavailable": "Недоступно на этом устройстве",
"prefs.theme_paste": "Вставить тему",
"prefs.theme_paste_none": "В буфере обмена нет темы SolidCraft",
"prefs.timeline_half_hour": "−30 мин",
@@ -2029,6 +2379,8 @@
"prefs.under_cursor": "Под курсором",
"prefs.units_precision": "Единицы и точность",
"prefs.updates": "Обновления",
"prefs.value_boxes_in_view": "Показывать значения рядом с манипуляторами на виде",
"prefs.value_boxes_in_view_tip": "Значение команды (Расстояние, Радиус…) в рамке рядом с её манипулятором, поверх модели. Выкл.: вы вводите его в окне команды, которое получает клавиатуру после выбора, и ничто не закрывает модель.",
"prefs.view": "Поведение вида",
"prefs.view_confirm_corner": "OK и Отмена в углу вида",
"prefs.view_confirm_corner_note": "Пока открыт диалог или эскиз, галочка и крестик в правом верхнем углу вида делают то же, что OK и Отмена в диалоге, либо завершают и отменяют эскиз. Навигатор видов сдвигается вниз под ними.",
@@ -2038,6 +2390,12 @@
"prefs.viewport_background": "Фон",
"prefs.viewport_background_colour": "Цвет",
"prefs.viewport_background_theme": "Градиент темы",
"prefs.viewport_section_status": "Показывать состояние сечения на видовом экране",
"prefs.viewport_section_status_help": "Показывает настройку сечения на видовом экране. Esc и активная кнопка ленты отключают её. Выключите, чтобы сохранить прежние элементы управления сечением.",
"prefs.viewport_status_details": "Интерактивные сведения о видовом экране",
"prefs.viewport_status_details_help": "Редактируйте настройки активных анализов и сечения в стандартных карточках сведений. Выключите, чтобы вернуть клавиши анализа только для чтения и диалог «Сечение».",
"prefs.viewport_status_summary": "Сворачивать элементы состояния видового экрана",
"prefs.viewport_status_summary_help": "Сворачивать три и более элемента состояния видового экрана в один сводный значок. Выключите, чтобы показывать все элементы в полной строке.",
"prefs.wheel": "Колесо",
"prefs.wheel_trackpad": "Колесо и тачпад",
"prefs.workspace": "Рабочее пространство",
@@ -2047,6 +2405,10 @@
"properties.title": "Свойства: {name}",
"recovery.days_ago": "{count} дн. назад",
"recovery.detail": "{file} · операций: {features} · автосохранение {when}",
"recovery.discard_all": "Отбросить все",
"recovery.discard_all_detail": "Это действие нельзя отменить.",
"recovery.discard_all_title": "Отбросить автосохранения ({count})?",
"recovery.discard_all_title_one": "Отбросить 1 автосохранение?",
"recovery.hours_ago": "{count} ч назад",
"recovery.just_now": "только что",
"recovery.min_ago": "{count} мин назад",
@@ -2889,6 +3251,8 @@
"render.output_ratio_refused": "Связанный размер превышает предел для этого метода. Прежний размер сохранён; разблокируйте соотношение или укажите меньшее значение.",
"render.output_run_check": "Выполнить проверку",
"render.output_size_limit": "{method}: до {dimension} px по стороне и {pixels} пикселей. Наибольший подходящий размер: {width} × {height}.",
"render.output_size_method_profile": "Чтобы отрендерить {width} × {height}, выберите {method} с профилем ресурсов CPU {profile} или меньший размер.",
"render.output_size_profile": "Чтобы отрендерить {width} × {height}, выберите профиль ресурсов CPU {profile} или меньший размер.",
"render.output_swap_orientation": "Поменять местами ширину и высоту",
"render.output_tools_inspector": "Измените размер и формат в инспекторе «Вывод».",
"render.page_aging": "Старение и загрязнение",
@@ -3089,6 +3453,7 @@
"render.size_4k_uhd": "4K UHD",
"render.size_full_hd": "Full HD",
"render.size_hd": "HD",
"render.size_needs_profile": "{size} · требуется {profile}",
"render.size_presets": "Пресеты размера",
"render.size_presets_pending": "Появится в редакторе «Вывод»",
"render.sky_ground": "Земля · линейный RGB",
@@ -3370,6 +3735,24 @@
"sheet.flange_type_contour": "Контурный",
"sheet.flange_type_edge": "Краевой",
"sheet.no_body": "нет тела листового металла: создайте его командой Фланец > Базовый или преобразуйте пластину в листовой металл командой «Преобразовать в листовой металл» (выберите её большую плоскую грань)",
"sheet.personal_rules.confirm_delete": "Подтвердить удаление",
"sheet.personal_rules.delete": "Удалить",
"sheet.personal_rules.delete_prompt": "Удалить это личное правило? Правила, уже применённые в дизайнах, не меняются.",
"sheet.personal_rules.full": "В личной библиотеке уже 64 правила.",
"sheet.personal_rules.invalid_name": "Введите короткое имя без переводов строк и управляющих символов.",
"sheet.personal_rules.invalid_values": "Заполните значения правила: каждое должно вычисляться в этом дизайне, толщина должна быть положительной, а коэффициент K — от 0 до 1.",
"sheet.personal_rules.missing": "Выбранное личное правило больше недоступно.",
"sheet.personal_rules.name": "Имя правила",
"sheet.personal_rules.name_exists": "Личное правило с таким именем уже существует. Используйте другое имя.",
"sheet.personal_rules.name_hint": "Уникальное имя",
"sheet.personal_rules.overwrite": "Сохранить изменения в выбранном личном правиле",
"sheet.personal_rules.rename": "Переименовать",
"sheet.personal_rules.rule": "Личное правило",
"sheet.personal_rules.save": "Сохранить как новое",
"sheet.personal_rules.scope": "Сохраняется в вашем профиле для всех дизайнов.",
"sheet.personal_rules.select": "Выберите правило",
"sheet.personal_rules.title": "Личные правила",
"sheet.personal_rules.unsupported": "В этом правиле есть значения, которые эта версия не может использовать.",
"shortcut.json_error": "параметры должны быть в формате JSON: {error}",
"shortcut.no_command": "команда `{id}` не найдена; текст перед JSON должен быть ID команды",
"shortcut.pin": "Закрепить вверху поля S",
@@ -3406,8 +3789,10 @@
"sketch_text.align_right": "По правому краю",
"sketch_text.bold": "Полужирный",
"sketch_text.builtin_font": "{family} (встроенный)",
"sketch_text.formula": "Начните с =, чтобы составить слова из параметров: ='W' + number(Width)",
"sketch_text.italic": "Курсив",
"sketch_text.loading_fonts": "Поиск установленных шрифтов…",
"sketch_text.no_bold": "У встроенного шрифта нет полужирного начертания: выберите установленный шрифт",
"sketch_text.on_path": "Текст следует по траектории: кривая задаёт его положение",
"sketch_text.path_clear": "Снять текст с кривой",
"sketch_text.path_hint": "Кривая эскиза, вдоль которой идёт текст: щёлкните здесь, затем по кривой",
@@ -3544,6 +3929,8 @@
"ui.3d_mouse_section": "3D-мышь",
"ui.3d_mouse_show_in_view": "Показывать 3D-мышь в 3D-виде",
"ui.3d_mouse_show_in_view_tip": "Изображение вашей 3D-мыши в левом нижнем углу, которое двигается вместе с ней.",
"ui.3d_mouse_sketch_orbit": "Вращать эскизы 3D-мышью",
"ui.3d_mouse_sketch_orbit_tip": "3D-мышь вращает вид и при открытом эскизе, если смотреть на него прямо, как это умеет обычная мышь. Выкл.: она панорамирует и масштабирует эскиз, пока вы не наклоните вид.",
"ui.3d_mouse_skip": "Моё устройство так не умеет",
"ui.3d_mouse_skip_tip": "Пропускает это движение в обе стороны; калибровка его не учитывает.",
"ui.3d_mouse_speed": "Скорость 3D-мыши",
@@ -3612,6 +3999,7 @@
"ui.agent_chat_auth_terminal": "Выполните это в терминале, затем снова нажмите «Подключить»:",
"ui.agent_chat_auth_title": "Вход в агент",
"ui.agent_chat_cancel": "Отмена",
"ui.agent_chat_cannot_start": "Установлен, но не запускается: {error}",
"ui.agent_chat_changes": "Изменений: {n}, один шаг отмены",
"ui.agent_chat_changes_n": "Изменений: {n}",
"ui.agent_chat_changes_of": "Изменений: {n}/{limit}",
@@ -3704,9 +4092,12 @@
"ui.agent_chat_queued_stopped": "В очереди (остановлено, не отправлено)",
"ui.agent_chat_refresh": "Обновить",
"ui.agent_chat_refused": "Агенту не разрешено: {reason}",
"ui.agent_chat_reinstall": "{agent} установлен ({program}), но не запустился, когда SolidCraft его проверил: {error}\nВозможно, установка неполная или сделана для другого типа компьютера. Установите его заново командой `{install}`, убедитесь, что в терминале он выводит свою версию, затем нажмите «Обновить».",
"ui.agent_chat_remove": "Убрать из очереди",
"ui.agent_chat_remove_file": "Убрать из этого сообщения",
"ui.agent_chat_remove_imported": "Убрать из этого сообщения; деталь останется в дизайне (Отмена удалит её)",
"ui.agent_chat_reply_cut_off": "Ответ достиг предела длины, не закончившись, поэтому может быть неполным. Попросите агента продолжить или дать более короткий ответ.",
"ui.agent_chat_reply_declined": "Модель отказалась отвечать на это сообщение.",
"ui.agent_chat_retry": "Повторить",
"ui.agent_chat_right": "Справа",
"ui.agent_chat_save": "Сохранить",
@@ -3765,12 +4156,17 @@
"ui.ai_copy_suffix": "копия",
"ui.ai_custom_url": "Свой URL",
"ui.ai_default": "По умолчанию",
"ui.ai_edit": "Изменить",
"ui.ai_edit_agent_title": "Изменить агент",
"ui.ai_edit_gone": "Этот агент удалён, сохранять нечего.",
"ui.ai_edit_tip": "Измените имя, команду или конечную точку этого агента. Сохранённый ключ остаётся скрытым.",
"ui.ai_http_busy": "конечная точка занята или превысила лимит; повторите позже",
"ui.ai_http_key": "конечная точка отклонила ключ: проверьте его в Настройки > ИИ",
"ui.ai_http_not_found": "нет такой конечной точки или модели: проверьте базовый URL и имя модели",
"ui.ai_http_too_large": "разговор слишком велик для этой конечной точки; начните новый чат",
"ui.ai_key": "Ключ API",
"ui.ai_key_hint": "необязательно; хранится в системной связке ключей",
"ui.ai_key_keep_hint": "оставьте пустым, чтобы сохранить имеющийся ключ",
"ui.ai_key_needs_https": "Ключ отправляется только по HTTPS или на этот компьютер.",
"ui.ai_key_note": "Хранится в системной связке ключей, а не в настройках SolidCraft. Для локального сервера оставьте пустым.",
"ui.ai_keychain_error": "Системная связка ключей отказала: {error}",
@@ -3797,11 +4193,15 @@
"ui.ai_permissions": "Разрешения",
"ui.ai_preset": "Пресет",
"ui.ai_protocol": "Протокол",
"ui.ai_reasoning_effort": "Уровень рассуждений",
"ui.ai_reasoning_effort_field_hint": "пусто = значение поставщика по умолчанию",
"ui.ai_reasoning_effort_hint": "Необязательно. Отправляется на конечную точку как `reasoning_effort`; допустимые значения зависят от поставщика (например, `low`, `high` или `max`). Заданное здесь значение SolidCraft никогда не заменяет. Оставьте поле пустым, чтобы ничего не отправлять и сохранить значение поставщика по умолчанию.",
"ui.ai_remove": "Удалить",
"ui.ai_request_timed_out": "Модель отвечала дольше {seconds} с. Тайм-аут запроса для этой конечной точки можно увеличить в Настройки › Ассистент.",
"ui.ai_request_timeout": "Тайм-аут запроса",
"ui.ai_request_timeout_hint": "Сколько может длиться один запрос к модели на этой конечной точке: от 30 с до часа. Увеличьте для медленной локальной модели.",
"ui.ai_reset": "Сбросить",
"ui.ai_save": "Сохранить",
"ui.ai_settings": "Настройки ИИ…",
"ui.ai_show_features": "Показывать функции ИИ",
"ui.ai_show_features_note": "Чат с агентом: панель, в которой уже используемый вами кодирующий агент или выбранная конечная точка модели работает с открытым дизайном. Выключено: нет кнопки ИИ, сочетания клавиш, пункта меню и панели, ничего не ищется и не запускается.",
@@ -3959,6 +4359,7 @@
"ui.dark": "Тёмная",
"ui.default_modelling_orientation": "Ориентация моделирования по умолчанию",
"ui.delete": "Удалить",
"ui.delete_select_first": "Сначала выберите, что удалить: операции, тела, компоненты или геометрию эскиза",
"ui.depth": "Глубина",
"ui.design": "Дизайн",
"ui.design_properties.author": "Автор",
@@ -3973,6 +4374,40 @@
"ui.design_properties.project": "Проект",
"ui.design_properties.revision": "Редакция",
"ui.design_saved": "Сохранено: {path}",
"ui.details_access_caption": "Грани показывают, может ли инструмент достать до них с выбранного направления.",
"ui.details_angle": "Угол",
"ui.details_continuity_caption": "Правка выбранного шва. Остальные швы сохраняют свои настройки.",
"ui.details_continuity_stale": "Прежняя геометрия: повторите анализ, чтобы править или кадрировать этот шов.",
"ui.details_copy_list": "Копировать список",
"ui.details_curvature": "Допуск кривизны",
"ui.details_curvature_caption": "Грани окрашены по локальному радиусу кривизны.",
"ui.details_direction": "Направление инструмента",
"ui.details_draft_caption": "Грани окрашены по углу к направлению вытягивания.",
"ui.details_edit_seam": "Править шов",
"ui.details_fixture": "Образец компонента — только пример данных",
"ui.details_fixture_caption": "Образец компонента с иллюстративными значениями; это не результат по модели.",
"ui.details_fixture_problem": "Пример находки с проблемой",
"ui.details_fixture_readout": "Пример измеренного значения",
"ui.details_flip": "Перевернуть",
"ui.details_gap": "Зазор",
"ui.details_hatch": "Штриховать срезанные грани",
"ui.details_jump": "Скачок кривизны",
"ui.details_key": "Легенда",
"ui.details_offset": "Смещение",
"ui.details_plane": "Плоскость",
"ui.details_pull": "Направление вытягивания",
"ui.details_radius": "Радиус",
"ui.details_readout": "Показание",
"ui.details_samples": "Точки выборки",
"ui.details_seam": "{body} · Ребро {edge}",
"ui.details_settings": "Настройки",
"ui.details_sharp_gap": "Излом или зазор",
"ui.details_show_all": "Показать все {count}",
"ui.details_smooth": "Гладко",
"ui.details_stripes": "Полосы",
"ui.details_target": "Кадрировать геометрию",
"ui.details_worst_seams": "Худшие швы",
"ui.details_zebra_caption": "Отражённые полосы показывают, насколько плавно стыкуются грани.",
"ui.diameter": "Диаметр",
"ui.dimension": "Размер",
"ui.direct_interaction": "Прямое взаимодействие",
@@ -4017,6 +4452,7 @@
"ui.edit_in_place_saved_elsewhere": "Деталь сохранена в другой файл; сборка по-прежнему связана с {name}",
"ui.edit_in_place_wait": "Дождитесь завершения того, что выполняется в дизайне",
"ui.edit_section_analysis": "Изменить анализ сечения",
"ui.edit_sketch_empty": "Нет эскизов для редактирования",
"ui.ellipse": "Эллипс",
"ui.emboss_wrap_note": "Профили из ортогональных линий, касательные к одному поддерживаемому цилиндру, оборачиваются автоматически. Выберите стенку, чтобы задать цель.",
"ui.end_radius": "Конечный радиус",
@@ -4027,12 +4463,15 @@
"ui.equation_explicit": "Явная",
"ui.equation_form": "Форма",
"ui.equation_note": "Переменная — обычное число: sin(t) принимает её в радианах. Результат без единицы измерения задаётся в единицах дизайна.",
"ui.equation_note_range": "Переменная — длина, как и её диапазон: сочетайте её с параметрами длины, а для sin() делите её на длину. Результат без единицы измерения задаётся в единицах дизайна.",
"ui.equation_parametric": "Параметрическая",
"ui.equation_variable_unit": "Переменная имеет единицу измерения диапазона",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Эквивалентный радиус",
"ui.expand": "Развернуть",
"ui.explode_needs_two_components": "«Разобранный вид» раздвигает компоненты, поэтому в дизайне их должно быть два или больше («Новый компонент», «Вставить дизайн» или «Создать компоненты из тел»)",
"ui.exportDxf": "Экспорт DXF…",
"ui.export_ellipsis_keymap": "Экспорт…",
"ui.export_keymap_tip": "Сочетания клавиш, избранное панели S и панель инструментов — в файл",
@@ -4201,12 +4640,14 @@
"ui.joints": "Сопряжения",
"ui.keyboard_shortcuts": "Сочетания клавиш",
"ui.language": "Язык",
"ui.lasso_select": "Лассо (перетащите произвольный контур: выделяет всё, что целиком внутри)",
"ui.layout_compact": "Компактная",
"ui.layout_floating": "Плавающая",
"ui.length": "Длина",
"ui.length_decimals": "Знаков после запятой (длины)",
"ui.light": "Светлая",
"ui.line": "Линия",
"ui.line_arc_hint": "Касательная дуга: щёлкните в конце дуги. Снова задержитесь на последней точке, чтобы вернуться к линиям; щёлкните правой кнопкой или нажмите Esc, чтобы завершить",
"ui.link_copies": "Связать одинаковые копии",
"ui.link_copies_keep": "Оставить",
"ui.link_copies_link": "Связать",
@@ -4295,6 +4736,7 @@
"ui.part_size_shared": "Перестраивает деталь, заменяя все добавленные операции. Обновляются все вхождения этого компонента.",
"ui.paste": "Вставить",
"ui.path": "Траектория",
"ui.pattern_object_type_tip": "Тела: твёрдые формы, выбираемые в виде или в браузере; каждое копируется целиком.\nОперации: шаги Истории, например выдавливание или отверстие, выбираемые в Истории или на созданной ими грани; шаг повторяется.\nЭскиз — ни то, ни другое: повторите его кривые собственным инструментом «Массив» или «Зеркало» в эскизе либо сначала выдавите его.",
"ui.pattern_on_path": "Массив по траектории",
"ui.perforate_margin_default": "от диаметра",
"ui.perforate_pitch": "Шаг",
@@ -4321,14 +4763,19 @@
"ui.plugins_skipped": "Не удалось прочитать папок: {count}.",
"ui.plugins_version": "{version}",
"ui.point": "Точка",
"ui.point_cloud_add_filter": "Добавить фильтр…",
"ui.point_cloud_filter_by": "Фильтровать по",
"ui.point_cloud_legend_filter": "Показано и скрыто в легенде выше",
"ui.point_cloud_pause": "Пауза",
"ui.point_cloud_play": "Воспроизвести",
"ui.point_under_the_cursor": "Точка под курсором",
"ui.points": "Точки",
"ui.polygon": "Многоугольник",
"ui.preferences": "Настройки",
"ui.press_a_key": "нажмите клавишу…",
"ui.print_face_body_not_sent": "Тело этой грани не отправляется: сначала добавьте его в Тела",
"ui.print_face_cleared": "{body}: грань печати сброшена",
"ui.print_face_input": "Грань печати",
"ui.print_face_one_body": "Грань печати относится к одному телу: отправьте это тело отдельно, чтобы изменить её",
"ui.print_face_pick": "Выберите плоскую грань твёрдого тела, чтобы сделать её гранью печати",
"ui.print_face_set": "{body}: грань печати задана; «Отправить в слайсер» кладёт тело на неё",
"ui.profile": "Профиль",
@@ -4346,6 +4793,7 @@
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Измерение…",
"ui.properties.measuring_bodies": "Измерение… {done} из {total} тел",
"ui.properties.measuring_failed": "Измерение остановлено, не закончив работу.",
"ui.properties.principal_axis": "Главная ось {number}",
"ui.properties.principal_moments": "Главные моменты",
@@ -4411,6 +4859,7 @@
"ui.selectOther": "Выбрать другое…",
"ui.selectTangentChain": "Выбрать касательную цепочку",
"ui.select_all": "Выделить всё",
"ui.select_components_by_face": "Выбор компонентов (грань выбирает свой компонент)",
"ui.selection": "Выделение",
"ui.selection_modifiers": "Модификаторы выбора",
"ui.selection_shift_add_only": "Shift+щелчок добавляет без удаления",
@@ -4452,6 +4901,11 @@
"ui.sketch_intersect_selection_filter": "Фильтр выделения",
"ui.sketch_modifiers": "Модификаторы эскиза",
"ui.sketch_project_geometry": "Геометрия",
"ui.sketch_report.all_constrained": "Всё полностью определено.",
"ui.sketch_report.dof": "Степени свободы",
"ui.sketch_report.loose": "Определён не полностью",
"ui.sketch_report.status": "Состояние",
"ui.sketch_report.title": "Отчёт об эскизе",
"ui.sketch_scale": "Масштаб эскиза",
"ui.sketches": "Эскизы",
"ui.slice": "Срез",
@@ -4547,12 +5001,15 @@
"ui.view_angles": "Углы вида",
"ui.view_angles_convention": "Градусы вокруг вертикальной оси. Рыскание 0° — вид спереди, 90° — слева, −90° — справа, 180° — сзади; тангаж 90° — вид сверху; положительный крен поворачивает модель по часовой стрелке.",
"ui.view_angles_help": "Показывает тангаж, рыскание и крен вида в градусах, а также его проекцию под гизмо ориентации. Щёлкните по показанию, чтобы ввести точные углы.",
"ui.view_angles_lock": "Заблокировать {axis}",
"ui.view_angles_ortho": "Орто",
"ui.view_angles_persp": "Персп.",
"ui.view_angles_pitch": "Тангаж",
"ui.view_angles_readout": "Тангаж {pitch} · Рыскание {yaw} · Крен {roll}",
"ui.view_angles_roll": "Крен",
"ui.view_angles_unlock": "Разблокировать {axis}",
"ui.view_angles_yaw": "Рыскание",
"ui.view_angles_zero": "Установить {axis} в 0°",
"ui.view_centre": "Центр вида",
"ui.viewport_status_clear": "Выключить {name}",
"ui.viewport_status_clear_hint": "Выключить {name} · Esc",
@@ -4561,7 +5018,14 @@
"ui.viewport_status_key": "Показать легенду для {name}",
"ui.viewport_status_minimum_radius": "Минимальный радиус",
"ui.viewport_status_pairs": "Пар: {count}",
"ui.viewport_status_section_hatch": "{setting} · штриховка",
"ui.viewport_status_section_plane": "Текущая плоскость",
"ui.viewport_status_section_tilted": "наклонено · {offset}",
"ui.viewport_status_stripes": "Полос: {count}",
"ui.viewport_status_summary_clear": "Выключить всё",
"ui.viewport_status_summary_heading": "На этом виде",
"ui.viewport_status_summary_label": "{name} и ещё элементов: {count}",
"ui.viewport_status_summary_more": "+{count}",
"ui.viewport_theme_follow": "Следовать теме",
"ui.visual_shaded_hidden_edges": "Заполненный с невидимыми рёбрами",
"ui.visual_shaded_with_edges": "Заполненный с рёбрами",
+446 -1
View File
@@ -60,6 +60,7 @@
"BLEND SURFACE": "ПРЕЛАЗНА ПОВРШ",
"BOUNDARY SURFACE": "ГРАНИЧНА ПОВРШ",
"BROWSER": "СТАБЛО МОДЕЛА",
"Back to the original order": "Врати на првобитни редослед",
"Ball": "Кугласто",
"Bar": "Шипка",
"Base Center": "Центар основе",
@@ -595,6 +596,8 @@
"Snap to face and edge centres": "Привлачи на центре лица и ивица",
"SolidCraft cannot submit reports directly. Submit on GitHub; no token is needed in the app.": "SolidCraft не може директно да шаље извештаје. Пошаљите на GitHub; у апликацији није потребан токен.",
"SolidCraft closed before these designs were saved. Their last autosave can be opened.": "SolidCraft се затворио пре него што су ови дизајни сачувани. Може се отворити њихово последње аутоматско чување.",
"Sort A to Z": "Поређај од А до Ш",
"Sort Z to A": "Поређај од Ш до А",
"Spacing 2 must be a non-zero number": "Размак 2 мора бити број различит од нуле",
"Spacing must be a non-zero number": "Размак мора бити број различит од нуле",
"Specialise": "Специјализуј",
@@ -790,6 +793,13 @@
"browser.sketch_attachment_lost": "{name} (причвршћење изгубљено)",
"browser.sketch_editing": "{name} (у измени)",
"browser.sketch_name": "Скица{number}",
"browser.sketches_to_parts_already_in_part": "већ у свом делу",
"browser.sketches_to_parts_design_body": "на телу самог дизајна",
"browser.sketches_to_parts_moved": "Скице премештене у део на којем се налазе: {moved}",
"browser.sketches_to_parts_no_exact_attachment": "на лицу без тачног причвршћења",
"browser.sketches_to_parts_not_on_face": "не на лицу дела",
"browser.sketches_to_parts_part_missing": "њихов део више не постоји",
"browser.sketches_to_parts_result": "Скице премештене у део на којем се налазе: {moved}; остале на месту: {stayed} ({why})",
"browser.units": "Јединице: {units}",
"cam.flat": "Равно лице",
"cam.follower": "Пратилац",
@@ -819,6 +829,7 @@
"cmd.appearance_pick_up": "Преузми изглед",
"cmd.appearance_replace": "Замени изглед",
"cmd.assembly_bom": "Саставница",
"cmd.assembly_mass_properties": "Својства масе",
"cmd.body.print_face": "Површина за штампу",
"cmd.body_rename": "Преименуј тело",
"cmd.browser_collapse_all": "Скупи све",
@@ -856,6 +867,7 @@
"cmd.component_move_bodies": "Премести тела у компоненту",
"cmd.component_move_features": "Премести операције у компоненту",
"cmd.component_move_sketches": "Премести скице у компоненту",
"cmd.component_move_sketches_to_parts": "Премести скице у њихове делове",
"cmd.component_paste_from_design": "Налепи из другог дизајна",
"cmd.component_paste_new": "Налепи као ново",
"cmd.component_properties": "Физичка својства компоненте",
@@ -1191,6 +1203,7 @@
"cmd.sketch_spline_control_point_5": "Сплајн контролних тачака (степен 5)",
"cmd.sketch_spline_fit_point": "Сплајн кроз тачке",
"cmd.sketch_spline_insert_point": "Додај тачку сплајна",
"cmd.sketch_spline_remove_point": "Уклони тачку сплајна",
"cmd.sketch_spline_reverse": "Обрни смер сплајна",
"cmd.sketch_spun_profile": "Ротирани профил",
"cmd.sketch_toggle_diameter": "Пребаци полупречник / пречник",
@@ -1244,6 +1257,7 @@
"cmd.view.render_browser": "Стабло рендеровања",
"cmd.view.render_dock": "Премести панел рендеровања",
"cmd.view.render_focus": "Фокусни приказ рендеровања",
"cmd.view.status_details": "Детаљи статуса у прозору приказа",
"cmd.view.status_items": "Ставке статуса у прозору приказа",
"cmd.view_ambient_occlusion": "Амбијентална оклузија",
"cmd.view_angle_readout": "Углови приказа",
@@ -1282,8 +1296,14 @@
"color.hex_hint": "#rrggbb",
"color.hue": "Нијанса",
"color.linear": "Приказ вредности боје у линеарном простору 0-1",
"color.recent": "Недавне боје",
"color.recent_help": "Овде се појављују боје које изаберете у било ком пољу боје",
"color.saturation": "Засићеност (проценат)",
"color.saturation_value": "Засићеност и вредност",
"color.selected": "Изабрана боја",
"color.step_down": "Смањи за корак",
"color.step_up": "Повећај за корак",
"color.value": "Вредност, светлина (проценат)",
"config.column_filter_empty": "Нема одговарајућих колона",
"contact.components_count": "Компоненте: {count}",
"contact.enabled_label": "омогућено",
@@ -1330,6 +1350,7 @@
"dialog.dimension_name": "Кота: {name}",
"dialog.edit_title": "ИЗМЕНИ {title}",
"dialog.no_shown_body": "Нема приказаног тела за измену: прикажите једно или изаберите Ново тело",
"dialog.pattern_sketch_not_object": "Изаберите тела или операције: скица није ни једно ни друго. Поновите њене криве помоћу алата Низ или Пресликај у самој скици или је прво екструдирајте.",
"dialog.select": "↖ Изабери",
"dialog.selected_count": "↖ Изабрано: {count}",
"dialog.selection_guidance": "Изаберите улаз да га промените. Кликните изабране објекте да их уклоните; Ctrl/Cmd-клик их такође укључује и искључује. Погледајте преглед, а затим притисните У реду.",
@@ -1387,21 +1408,168 @@
"from the rule": "из правила",
"help.apache": "Apache лиценца 2.0",
"help.appearance.assign": "Даје изабраним телима, лицима или компонентама боју или изглед материјала, без промене њихове тежине. Користите га да разликујете делове или прегледате завршну обраду.",
"help.assembly.bom": "Наводи делове дизајна или компоненте са њиховим бројем комада, по броју дела, и може да сачува списак као CSV или JSON. Користите је као списак делова за наручивање и монтажу.",
"help.attributions": "Атрибуције (ATTRIBUTION.md)",
"help.build": "Верзија {version} · commit {commit} · изграђено {date}",
"help.canvas.decal": "Поставља слику на раван лице модела, као налепницу. Користите је да на делу прикажете ознаку, логотип или одштампан узорак.",
"help.canvas.edit": "Мења платно: његов положај, величину, угао, непрозирност, пресликавање, видљивост или назив. Користите га да референтну слику поравнате са скицом коју цртате преко ње.",
"help.canvas.insert": "Поставља PNG или JPEG слику на раван или лице као провидну референцу. Користите га да у скици прецртате фотографију или цртеж, са сликом скалираном на познату величину.",
"help.component.break_link": "Одваја повезану компоненту од њене датотеке дизајна, а њена тела остају каква јесу. Користите је када део више не треба да прати измене изворне датотеке.",
"help.component.capture_position": "Задржава положаје делова које сте ручно померили, па они постају нови положаји тих делова. Користите га након превлачења делова на место које ниједан спој не држи.",
"help.component.create": "Додаје нову, празну компоненту дизајну, унутар активне компоненте осим ако изаберете другу надређену компоненту. Користите је да нови део склопа добије своје место за тела и скице.",
"help.component.finish_edit": "Чува део који мењате на месту, враћа се у његов склоп и ажурира склоп према њему. Користите када завршите измене повезаног дела.",
"help.component.from_bodies": "Претвара свако изабрано тело у засебну компоненту, названу по телу. Користите га када дизајн направљен од појединачних тела треба да постане склоп чији се делови могу спајати и померати.",
"help.component.insert_design": "Умеће други сачувани дизајн као компоненту повезану са његовом датотеком, а његова пуна тела се постављају онако како су у њему. Користите га да поново употребите део у склопу и да касније измене преузмете командом Ажурирај везе.",
"help.component.properties": "Приказује запремину, масу, центар масе и моменте инерције компоненте, према материјалима њених тела. Користите га да проверите тежину и равнотежу склопа.",
"help.component.revert_position": "Враћа делове које сте ручно померили на њихова претходна места и одбацује померања која нису забележена. Користите га да поништите пробна померања у склопу.",
"help.component.update_links": "Поново чита повезане датотеке дизајна и замењује тела која су се променила. Користите га након измене дела који овај склоп користи.",
"help.config.configure": "Додаје параметре, операције, материјале или изгледе као колоне табеле конфигурација. Користите га да направите варијанте једног дизајна, на пример величине једног дела.",
"help.config.preview": "Проверава да ли се ред табеле конфигурација успешно поново гради, без промене дизајна или његове историје. Користите га пре преласка на варијанту у коју нисте сигурни.",
"help.config.rules": "Приказује правила табеле конфигурација, њене редове и који ред је активан. Користите га да видите како су подешене варијанте дизајна.",
"help.config.table": "Приказује табелу конфигурација: један ред по варијанти, једну колону по параметру или операцији и да ли дизајн још одговара активном реду. Користите је да прегледате варијанте дизајна.",
"help.connect_note": "Поново покрените сваки асистент да учита SolidCraft сервер. Свака датотека је безбедносно копирана као .bak пре промене.",
"help.connect_title": "Повежи AI асистенте",
"help.construct.axis.edge": "Прави помоћну осу дуж праве ивице или линије скице. Користите је као осу за ротацију, кружни низ или спој.",
"help.construct.axis.normal_to_face": "Прави помоћну осу кроз тачку, окомиту на лице. Користите је као осу која излази право из површине.",
"help.construct.axis.through_cylinder": "Прави помоћну осу кроз центар цилиндричног, конусног или торусног лица, или кружне ивице. Користите је да операције окрећете или распоређујете у низ око округлог дела.",
"help.construct.axis.two_planes": "Прави помоћну осу тамо где се састају две равни или равна лица. Користите је када је оса која вам треба линија између два лица.",
"help.construct.axis.two_points": "Прави помоћну осу кроз две тачке, врхове или тачке скице. Користите је за осу која пролази кроз два позната положаја.",
"help.construct.plane.along_path": "Прави помоћну раван окомиту на ивицу или криву, на положају дуж ње. Користите је да скицирате профил за повлачење или попречни пресек путање.",
"help.construct.plane.at_angle": "Прави помоћну раван заокренуту под углом у односу на раван или лице, око осе или ивице. Користите је за нагнуте скице, на пример за угаони носач.",
"help.construct.plane.midplane": "Прави помоћну раван на половини између две равни или равна лица, или раван која полови угао под којим се састају. Користите је као раван симетрије за пресликавање.",
"help.construct.plane.offset": "Прави помоћну раван паралелну равни или равном лицу, на задатом растојању или кроз тачку. Користите је да скицирате на одређеној висини изнад лица.",
"help.construct.plane.perpendicular": "Прави помоћну раван која садржи линију или ивицу и стоји окомито на раван или лице. Користите је да скицирате усправно на моделу дуж ивице.",
"help.construct.plane.tangent": "Прави помоћну раван која у једној тачки додирује цилиндар, конус, сферу или торус. Користите је да скицирате на боку округлог дела.",
"help.construct.plane.three_points": "Прави помоћну раван кроз три тачке. Користите је за раван одређену положајима на моделу, на пример за три угла.",
"help.construct.plane.two_edges": "Прави помоћну раван кроз две праве ивице или линије које леже у једној равни. Користите је за раван кроз део, на пример кроз две наспрамне ивице.",
"help.construct.point.along_path": "Прави помоћну тачку на положају дуж ивице или криве. Користите је као референцу негде на путањи.",
"help.construct.point.center": "Прави помоћну тачку у центру кружне ивице, круга или лука скице, сфере или торуса. Користите је као референцу за рупе, осе и спојеве.",
"help.construct.point.edge_plane": "Прави помоћну тачку где ивица или линија пролази кроз раван или равно лице. Користите је да означите где путања сече раван.",
"help.construct.point.three_planes": "Прави помоћну тачку где се састају три равни или равна лица. Користите је као референцу за угао, чак и тамо где модел нема врх.",
"help.construct.point.two_edges": "Прави помоћну тачку где се две ивице или линије састају или су најближе једна другој. Користите је као референцу у виртуелном углу.",
"help.construct.point.vertex": "Прави помоћну тачку на врху или тачки скице. Користите је као референцу која остаје и када су скица или тело око ње сакривени.",
"help.contact.check": "Наводи парове делова у скуповима контаката који у свом тренутном положају пролазе један кроз други. Користите га да пронађете сударе пре него што покренете спојеве или студију кретања.",
"help.contact.create": "Групише два или више делова у скуп контаката чија тела не могу да прођу један кроз други док се спојеви крећу. Користите га за делове који треба да стану када се додирну, као што је полуга уз свој граничник.",
"help.contact.disable_all": "Искључује контакт, па покренути спојеви и студије кретања више не стају тамо где се делови додирују. Користите га да поново слободно померате делове или да велики склоп остане брз.",
"help.contact.edit": "Мења скуп контаката: делове које садржи, његов назив или да ли је потиснут; може и да избрише скуп. Користите га да подесите који делови не могу да прођу један кроз други.",
"help.contact.enable_all": "Ставља сваки део склопа у један скуп контаката, па никоја два дела не могу да прођу један кроз други док се спојеви крећу. Користите га за брзу проверу целог механизма.",
"help.contact.enable_sets": "Укључује контакт за скупове контаката које сте дефинисали, па покренути спојеви и студије кретања стају тамо где би њихови делови прошли један кроз други. Користите га да вратите своје скупове након искључивања контакта.",
"help.contact.list": "Наводи скупове контаката дизајна, делове у сваком од њих и да ли је контакт укључен. Користите га да проверите како је контакт подешен пре него што покренете склоп.",
"help.document.inspect": "Приказује преглед дизајна: његове компоненте, тела, скице, операције и параметре. Користите га да се снађете у дизајну који нисте сами направили.",
"help.document.units": "Мења јединице у којима дизајн приказује дужине, на пример mm или инчи. Геометрија задржава своју величину; мењају се само приказ и обични бројеви.",
"help.edit.checkpoint": "Памти дизајн, активну скицу и историју поништавања онакве какви су сада. Користите је пре него што испробате нешто ризично од чега ћете се можда хтети вратити.",
"help.edit.restore_checkpoint": "Враћа се на контролну тачку, укључујући историју поништавања. Користите га да једним кораком одбаците све што је урађено од контролне тачке.",
"help.explode.create": "Прави растављени приказ који делове одгура од центра склопа, или за померања која зададете. Користите га да прикажете како се склоп саставља, за упутства или презентације.",
"help.face.delete": "Уклања изабрана лица и пушта да суседна лица затворе отвор, или оставља отвор отвореним као површ. Користите га да уклоните заобљену ивицу, рупу или испупчење које смета.",
"help.file.insert_mesh": "Додаје 3MF, STL, OBJ, PLY или glTF датотеку дизајну као мрежна тела у новој компоненти. Користите га да преузети или скенирани модел поставите поред свог дизајна као референцу.",
"help.file.insert_step": "Додаје STEP, IGES, FreeCAD или Rhino датотеку дизајну као пуна тела у новој компоненти; делови склопа постају угнежђене компоненте. Користите га да унесете моделе од добављача или из других CAD програма.",
"help.file.save_mesh": "Чува тела као STL, 3MF или OBJ мрежу, са глаткоћом закривљених лица коју изаберете. Користите је да припремите делове за 3D штампу или за програме који читају мреже.",
"help.file.send_to_slicer": "Чува изабрана тела као 3MF датотеку и отвара је у слајсеру који изаберете. Користите га да једним кораком пређете од модела до штампе.",
"help.font_details": "Интерфејс користи уграђене фонтове библиотеке egui (Ubuntu Light и Hack, под лиценцама Ubuntu Font Licence и MIT/Bitstream Vera; Noto Emoji и фонт емоџи икона, под лиценцама OFL и MIT). Текст скице користи Liberation Sans (SIL OFL 1.1). Необавезни пакет фонтова Crafting Apps, craft-fonts (BIZ UDPGothic, Shippori Mincho, BIZ UDMincho, Noto Sans CJK SC, Noto Sans Arabic; SIL OFL 1.1), није укључен у издања SolidCraft-а.",
"help.fonts": "Фонтови",
"help.frame.member": "Поставља профил, на пример цев или алуминијумски екструдирани профил, дуж линија скице оквира, по један елемент по линији. Користите га да направите оквире, регале и заварене конструкције.",
"help.inspect.accessibility": "Боји лица до којих алат може да допре из једног смера и она до којих не може. Користите је да проверите део за обраду или израду у калупу са те стране.",
"help.inspect.center_of_mass": "Приказује центар масе тела, сваког посебно и свих заједно, при уједначеној густини. Користите га да проверите равнотежу и где ће се део преврнути.",
"help.inspect.colored_components": "Даје свакој компоненти сопствену привремену боју, без промене изгледа. Користите га да на први поглед разликујете делове склопа.",
"help.inspect.compare": "Упоређује два тела и показује где једно има материјал којег друго нема, са запремином и одступањем. Користите га да проверите измењен или увезен део у односу на оригинал.",
"help.inspect.continuity": "Проверава колико глатко се лица спајају дуж својих ивица: размаке, прегибе или скокове закривљености, и осенчава шавове. Користите је да пронађете где се површи не спајају уредно.",
"help.inspect.curvature_comb": "Црта чешљеве дуж кривих, ивица или лица чији зуби показују колико су јако закривљени. Користите је да уочите равна места, прегибе и неуједначену закривљеност.",
"help.inspect.curvature_map": "Боји лица према јачини закривљености, црвено где је полупречник мали. Користите је да пронађете оштре кривине и да процените колико је површ глатка.",
"help.inspect.draft": "Боји лица према углу нагиба у односу на смер вађења из калупа и означава она са премало нагиба. Користите је да проверите део пре израде у калупу или ливења.",
"help.inspect.environment_map": "Приказује модел са рефлектујућом завршном обрадом налик огледалу. Користите је да процените ток површи по начину на који се одблесци простиру преко њих.",
"help.inspect.interference": "Проналази тела која се преклапају и приказује свако преклапање са његовом запремином. Користите га да проверите да ли у склопу има делова који се сударају.",
"help.inspect.isocurve": "Црта изопараметарске криве лица, мрежу на којој је површ изграђена. Користите је да видите како површ тече и где се згушњава.",
"help.inspect.measure": "Мери дужине, растојања, углове, површине и полупречнике између онога што изаберете, или запремину и масу тела. Користите га да проверите мере и зазоре.",
"help.inspect.minimum_radius": "Проналази најмањи полупречник закривљености кривих, ивица или лица и где се налази. Користите је да проверите да ли алат или млазница може да прати облик.",
"help.inspect.section": "Расеца приказ дуж равни и шрафира пресечена лица, без промене модела. Користите га да погледате унутрашњост делова и склопова.",
"help.inspect.zebra": "Приказује црне и беле пруге одбијене на лицима модела. Користите је да процените глаткоћу: пруге које се прекидају или ломе на ивици показују лош прелаз.",
"help.joint.as_built": "Спаја два дела тамо где већ јесу, не померајући ниједан, и одређује како се још могу кретати. Користите га за делове које сте већ поставили у њихов коначни положај.",
"help.joint.cam": "Повезује брег који се окреће са пратиоцем, па пратилац клизи или се њише док обрис брега пролази испод њега. Користите га за брегове, ексцентре и погоне вентила.",
"help.joint.create": "Спаја два дела у исходиштима споја која изаберете и помера други део на место; врста споја одређује како се још могу кретати. Користите га да направите склоп чији се делови крећу као прави механизам.",
"help.joint.drive": "Задаје угао или растојање споја и са њим помера делове, у оквиру његових граница; повезани спојеви и затворене петље га прате. Користите га да проверите да ли се механизам креће како је замишљено.",
"help.joint.gear": "Повезује два окретна споја преносним односом, па покретање једног окреће други. Користите га за чеоне и унутрашње зупчанике, са односом из полупречника подеоних кругова или броја зуба.",
"help.joint.limits": "Одређује докле спој сме да се окреће или клизи, као минимум и максимум, или брише те границе. Користите га да шарку, клизач или полугу задржите у њиховом стварном опсегу кретања.",
"help.joint.motion_link": "Спреже два споја односом и помаком, па покретање једног помера други. Користите је за сталну везу између спојева коју Зупчаник, Зупчаста летва и зупчаник или Завртањ не покривају.",
"help.joint.origin": "Поставља именовано исходиште споја на део: у центар лица или округлог краја, средину ивице, угао или тачку. Користите га да припремите места на која се спојеви причвршћују; исходиште изабрано на лицу прати лице када део промени величину.",
"help.joint.rack_pinion": "Повезује мали зупчаник који се окреће са зупчастом летвом која клизи, па се летва помера за дужину подеоног круга коју зупчаник пређе котрљањем. Користите га за погоне са зупчастом летвом, управљање и линеарне столове.",
"help.joint.reach": "Помера тачку на делу ка циљу променом спојева на њеном ланцу, у оквиру њихових граница. Користите га да механизам поставите према томе где би његов крај требало да буде, на пример врх руке робота.",
"help.joint.rigid_group": "Закључава изабране делове један за други онакве какви јесу, па се крећу као једно. Користите је за делове који припадају заједно и међу којима нема кретања.",
"help.joint.screw": "Повезује окретање и клизање кораком, па сваки окретај помера за то растојање. Користите га за навојна вретена, завртње и навојне осовине.",
"help.library.apply": "Примењује материјал или изглед из датотеке локалне библиотеке на тела, лица или компоненте. Користите га да поново употребите материјале које сте сачували из другог дизајна.",
"help.library.export": "Чува материјале и изгледе дизајна у датотеку библиотеке. Користите га да их делите или поново користите у другим дизајнима.",
"help.library.inspect": "Проверава датотеку библиотеке и наводи њене материјале и изгледе, без промене дизајна. Користите га да видите шта библиотека садржи пре него што је примените.",
"help.licences": "Лиценце",
"help.material.assign": "Одређује од чега су изабрана тела направљена, нпр. челик, алуминијум или ABS. Користите га да маса и тежина одговарају стварном делу.",
"help.material.properties.validate": "Проверава да ли су бројеви на картици података о материјалу међусобно усклађени и да ли недостају вредности. Користите га пре него што се ослоните на податке за масу или крутост.",
"help.mesh.convert": "Поново гради мрежно тело, на пример STL, као тело које се може мењати, са равним и цилиндричним лицима. Користите га да мењате увезене механичке делове као моделована тела.",
"help.mit": "MIT лиценца",
"help.motion.study": "Задаје вредности спојева у корацима дуж временске осе и репродукује их као анимацију. Користите је да гледате како се механизам креће кроз низ положаја и успут проверите зазоре.",
"help.motion.trace": "Прати путању којом иде тачка на делу док се студија кретања репродукује или спој покреће и, када потврдите, чува је као 3D криву скице. Користите га да видите докле механизам досеже или да на његовој путањи градите даље.",
"help.notice": "NOTICE",
"help.occurrence.ground": "Учвршћује део на месту или га поново ослобађа, тако да спојеви померају остале делове око њега. Користите га за оквир или основу на којој је изграђен остатак склопа.",
"help.occurrence.move": "Помера део склопа само дуж слобода које дозвољавају његови спојеви. Изаберите лице дела, а затим превуците доступну стрелицу или лук.",
"help.parameters.change": "Отвара табелу именованих вредности и израза који управљају котама дизајна. Користите је да промените меру на једном месту, а све операције које је користе је прате.",
"help.parameters.export": "Чува параметре дизајна као CSV или JSON. Користите га да их уређујете у табели или пренесете у други дизајн.",
"help.parameters.graph": "Показује који параметри и операције користе које друге, као и евентуалне петље или грешке међу њима. Користите га да видите на шта ће утицати промена параметра.",
"help.parameters.import": "Учитава параметре из CSV или JSON у дизајн, и то све или ниједан. Користите га да унесете вредности из табеле или другог дизајна.",
"help.parameters.move": "Помера кориснички параметар испред или иза другог на списку. Користите га да сродни параметри остану заједно.",
"help.parts.fastener": "Додаје стандардни завртањ, вијак, навртку, подлошку, клин или лежај у величини коју изаберете. Постављен на рупу, належе у рупу помоћу споја, па не морате сами да моделујете спојне елементе.",
"help.parts.insert": "Умеће стандардни део у породици, величини и дужини које изаберете. Постављен на обод или зид рупе, належе на рупу крутим спојем.",
"help.parts.library": "Отвара стандардне делове: завртње, вијке, навртке, подлошке, завртње без главе, паралелне клинове (колчиће) и лежајеве у стандардним величинама. Користите га да додате стандардни део уместо да га сами моделујете.",
"help.parts.resize": "Мења величину или дужину уметнутог стандардног дела и поново га гради; његови спојеви га држе на месту. Користите га када се покаже да је завртањ предугачак или када рупа захтева другу величину.",
"help.plastic.assign_rule": "Додељује правило за пластику телима, па њихове пластичне операције преузимају његов нагиб и зазор као подразумеване вредности. Користите га да једном подесите део израђен у калупу за све његове операције.",
"help.plastic.boss": "Додаје испуст за завртањ на лицу: стуб са необавезном рупом, нагибом, заобљењем у корену и потпорним ребрима. Користите га за места за завртње у кућиштима израђеним у калупу или штампаним.",
"help.plastic.lip": "Додаје усну или одговарајући жлеб дуж обода издубљеног тела. Користите је да се две половине кућишта позиционирају једна на другу и чврсто затворе.",
"help.plastic.manage_rules": "Прави и мења правила за пластику: материјал, дебљину зида, полупречнике, зазор и нагиб. Користите их да операције дела израђеног у калупу буду усклађене.",
"help.plastic.rest": "Додаје ослонац на лицу: округло или правоугаоно постоље, пуно или шупље, са нагибом. Користите га као подлогу или дистанцер у кућишту израђеном у калупу.",
"help.plastic.snap_fit": "Додаје куку шкљоцајућег споја на лицу, са њеном дужином, дебљином и зупцем. Користите га да делове спојите шкљоцањем, без завртања.",
"help.pointcloud.insert": "Уметните PLY, XYZ или PTS скенирање као облак тачака поред модела. Користите га као референцу при изради модела на основу измерених података.",
"help.sheet.convert": "Претвара плочу или издубљено тело једнаке дебљине у тело од лима, са савијањима на ивицама које изаберете. Користите га да постојећи део буде могуће развити.",
"help.sheet.export_bend_table": "Чува табелу савијања тела од лима као CSV или JSON: углове, полупречнике и положаје савијања у развијеном облику. Користите је за пресу за савијање или радионицу.",
"help.sheet.export_dxf": "Чува развијени облик као DXF, са обрисима, линијама савијања и необавезним белешкама о савијању. Користите га за ласерско, плазма или водено сечење.",
"help.sheet.flange": "Додаје прирубницу: основну плочу из скице, зид дуж отворене контуре скице или савијени зид на ивицама лима. Користите је да изградите делове од лима.",
"help.sheet.flat_pattern": "Прави развијени облик тела од лима, са његовом величином, изрезима и линијама савијања. Користите га да проверите заготовак пре сечења.",
"help.sheet.fold": "Савија лим дуж линије скице за задати угао и полупречник. Користите га да пресавијете раван лим након што сте у њега исекли изрезе.",
"help.sheet.hem": "Пресавија ивицу лима натраг на саму себе. Користите га за безбедне, круте ивице без оштрог грата.",
"help.sheet.manage_rules": "Прави и мења правила за лим: дебљину, полупречник савијања, K-фактор, растерећења и размаке. Користите их да ускладите материјал и алате своје радионице.",
"help.sheet.path_flange": "Додаје низ прирубница дуж ивице лима, пратећи отворени ланац линија скице. Користите је за профиле као што су U или Z облик у једном кораку.",
"help.sheet.perforate": "Додаје поље рупа преко целог равног лима, у помереном или квадратном распореду. Користите га за отворе за проветравање, решетке и лакше панеле.",
"help.sheet.refold": "Поново савија развијено тело од лима. Користите га након додавања операција на раван лим.",
"help.sheet.unfold": "Развија сва савијања тела од лима. Користите га да додате рупе или изрезе који морају да пређу преко савијања, а затим поново пресавијте.",
"help.sketch.arc.center_point": "Црта кружни лук око центра, од почетне до крајње тачке. Користите га када је центар лука познат, на пример за полупречник око рупе или осовине.",
"help.sketch.arc.tangent": "Црта лук који почиње на крају линије или лука и наставља тангентно на њега. Користите га да ланац наставите глатком кривином уместо углом.",
"help.sketch.arc.three_point": "Црта лук од почетне до крајње тачке кроз трећу тачку. Користите га када лук мора да прође кроз задате тачке, а не око познатог центра.",
"help.sketch.arc3d": "Црта тачан кружни лук у простору кроз три тачке, са укљученом 3D скицом. Користите га за кривине путања и водилица које напуштају раван скице.",
"help.sketch.auto_constrain": "Додаје ограничења која скица скоро већ има, као што су хоризонталност, паралелност или подударност, а затим је котира док није потпуно дефинисана. Користите ову команду да једним кораком учврстите грубо нацртану скицу.",
"help.sketch.auto_constrain_from_datum": "Ради као команда Аутоматска ограничења, али положаје мери од референтне тачке коју изаберете уместо од исходишта. Користите је када је део распоређен од једне референтне тачке, на пример угла или рупе.",
"help.sketch.blend_curve": "Спаја крајеве две криве глатким сплајном који је тангентан на обе, или и непрекидан по закривљености ако тако изаберете. Користите је да премостите размак између кривих без прегиба.",
"help.sketch.break": "Дели криву на делове тамо где је секу друге криве или у тачкама које поставите на њу. Користите га када део криве треба да има своје ограничење или да се сам избрише.",
"help.sketch.cancel": "Напушта скицу и одбацује све што је измењено откако је направљена или отворена за измену. Поништи враћа измене.",
"help.sketch.centerline": "Пребацује линије између обичних линија и средишњих линија, оса које профили изостављају. Користите средишњу линију као осу за ротацију, пресликавање или ограничење симетрије.",
"help.sketch.chamfer.distance_angle": "Скошава угао између две линије; задаје се растојањем дуж прве линије и углом. Користите га када цртеж даје скошење као дужину и угао, на пример 2 mm × 30°.",
"help.sketch.chamfer.equal_distance": "Скошава угао између две линије за исто растојање уназад дуж обе. Користите га за уобичајено скошење од 45° на обрису.",
"help.sketch.chamfer.two_distance": "Скошава угао између две линије; задаје се засебним растојањем дуж сваке линије. Користите га за скошења која нису од 45°, задата као две дужине.",
"help.sketch.circle.center": "Црта круг из његовог центра и пречника. Користите га за рупе, испусте и друге округле облике чији је центар познат.",
"help.sketch.circle.three_point": "Црта круг кроз три тачке. Користите га када круг мора да прође кроз задате тачке, на пример кроз тачке постојеће геометрије.",
"help.sketch.circle.three_tangent": "Црта круг који додирује три елемента: линије, кругове или лукове. Користите га да уклопите круг у простор између три криве, на пример као уписани круг троугла.",
"help.sketch.circle.two_point": "Црта круг из две крајње тачке његовог пречника. Користите га када су познате тачке на ивици круга, а не његов центар.",
"help.sketch.circle.two_tangent": "Црта круг задате величине који додирује два елемента: линије, кругове или лукове. Користите га за заобљење сталног полупречника између две криве.",
"help.sketch.conic": "Црта конику између две крајње тачке, обликовану теменом и параметром ρ. Користите је за глатке прелазе чију пуноћу желите да подесите, од равног до скоро оштрог угла.",
"help.sketch.constrainer": "Примењује ограничење које једна или две изабране криве већ скоро имају, као што су хоризонтално, паралелно, тангентно или једнако. Користите га да ручно нацртану скицу сређујете ограничење по ограничење.",
"help.sketch.constraint.coincident": "Поставља тачку на другу тачку, криву или осу скице. Користите је да затворите размаке у профилу или да поставите тачку на линију.",
"help.sketch.constraint.collinear": "Поставља две линије на једну праву. Користите је да поравнате прекинуте ивице, на пример обе стране зареза.",
"help.sketch.constraint.concentric": "Поставља два круга или лука на исти центар. Користите је за прстенове, цилиндрична упуштења и вратила са степеницама.",
"help.sketch.constraint.curvature": "Чини да две криве које се сусрећу у крајњој тачки настављају са истом закривљеношћу (G2). Користите је тамо где тангентни спој није довољно глатак, на пример на видљивим површинама.",
"help.sketch.constraint.equal": "Чини линије исте дужине, а кругове и лукове истог полупречника. Користите је да једна кота одређује неколико одговарајућих облика.",
"help.sketch.constraint.fix": "Фиксира тачке или криве где јесу или их поново ослобађа. Користите га за геометрију која се не сме померати када превлачите или решавате скицу.",
"help.sketch.constraint.horizontal_vertical": "Чини линију, или линију између две тачке, хоризонталном или вертикалном, зависно од тога која је ближа. Користите га да обрис поравнате са осама скице.",
"help.sketch.constraint.midpoint": "Поставља тачку на средину линије или чини да се средишње тачке две линије поклопе. Користите га да геометрију центрирате на ивици.",
"help.sketch.constraint.parallel": "Чини да две линије буду паралелне. Користите је за странице које морају остати паралелне када се друге коте промене.",
"help.sketch.constraint.perpendicular": "Чини да се две линије састају под правим углом. Користите је за праве углове између линија које нису на осама скице.",
"help.sketch.constraint.polygon": "Чини затворени ланац линија правилним полигоном: једнаких страница, са сваким теменом на једном кругу. Користите га да ручно нацртани полигон учините правилним и да такав остане.",
"help.sketch.constraint.symmetry": "Чини да две тачке или криве буду једна другој одраз преко линије или око тачке. Користите је да профил остане симетричан када мењате једну страну.",
"help.sketch.constraint.tangent": "Чини да се две криве додирују тангентно, на пример линија и лук. Користите га за глатке спојеве без прегиба.",
"help.sketch.construction": "Пребацује криве између обичне и помоћне геометрије, коју профили изостављају. Користите помоћне криве као помагала за распоред, референце и коте.",
"help.sketch.construction_line": "Направите бесконачну помоћну праву кроз две тачке. Користите је да распоредите скицу без раздвајања профила.",
"help.sketch.construction_line.angle": "Направите бесконачну помоћну праву под углом од осе X скице. Изаберите тачку и упишите угао или изаберите смер.",
"help.sketch.construction_line.bisector": "Изаберите две праве линије скице које се секу, па једну од две симетрале угла. Резултат прати изворне линије.",
@@ -1412,11 +1580,71 @@
"help.sketch.construction_line.tangent_external": "Изаберите круг или кружни лук, па спољашњу тачку и решење тангенте. Прегледи приказују само тачке додира на нацртаном луку.",
"help.sketch.construction_line.tangent_two": "Изаберите два круга или кружна лука, па у прегледу изаберите заједничку тангенту. Тачке додира морају лежати на нацртаним кривама.",
"help.sketch.construction_line.vertical": "Направите бесконачну вертикалну помоћну праву кроз тачку. Њено ограничење вертикалности остаје на снази при каснијим изменама.",
"help.sketch.copy": "Копира изабране криве и тачке скице, заједно са ограничењима и котама међу њима. Налепите их у ову или у другу скицу.",
"help.sketch.create": "Започиње нову 2D скицу на равни или на равном лицу модела. Свака екструзија, ротација и повлачење почиње скицом.",
"help.sketch.cut": "Копира изабрану геометрију скице и брише је из скице, у једном кораку поништавања. Налепите је на другом месту у овој скици или у другу.",
"help.sketch.dimension": "Додаје погонску коту: дужину, растојање, угао, полупречник или пречник, зависно од тога шта изаберете. Упишите вредност или назив параметра, а скица га прати.",
"help.sketch.edit": "Отвара постојећу скицу за измену. Операције изграђене на њој ажурирају се када завршите скицу.",
"help.sketch.ellipse": "Црта елипсу из њеног центра, краја велике осе и тачке на њеној малој оси. Користите је за овалне отворе, брегове и друге издужене округле облике.",
"help.sketch.equation_curve": "Црта криву из формула: x(t) и y(t), или y = f(x), у задатом опсегу. Формуле могу да користе параметре и крива их прати: користите је за синусоиду, спиралу или евольвенту зупца зупчаника.",
"help.sketch.extend": "Продужава линију или лук до најближе криве на свом путу или продужава две криве док се не сретну. Користите га да затворите размаке у профилу након одсецања или измене.",
"help.sketch.fillet": "Заобљује угао у којем се састају линије или лукови, луком задатог полупречника. Више углова заобљених заједно деле један полупречник.",
"help.sketch.finish": "Напушта скицу и враћа се на модел. Њени затворени профили су тада спремни за Екструдирај, Ротирај и друге операције.",
"help.sketch.finish_auto_constrain": "Покреће команду Аутоматска ограничења на скици, а затим је завршава. Користите га да једним кораком оставите потпуно дефинисану скицу.",
"help.sketch.fit_curves_to_section": "Пресеца мрежно или пуно тело равни скице и уклапа линије и лукове у пресек. Користите га да скенирани или увезени део поново направите као скицу која се може мењати.",
"help.sketch.include_3d": "Уноси ивице модела, врхове и криве других скица у ову скицу као повезане референце, а оне ван њене равни спљоштава на њу. Користите га да градите на геометрији која не лежи у равни скице.",
"help.sketch.infinite": "Пребацује линије између обичних линија и бесконачних помоћних линија које се пружају преко целог приказа. Користите је за референце распореда које никад не завршавају прерано.",
"help.sketch.insert_dxf": "Учитава криве DXF цртежа у скицу, скалиране, окренуте и постављене како зададете. Користите га да градите на 2D цртежу из другог програма, на пример на обрису за ласерско сечење.",
"help.sketch.insert_svg": "Учитава путање SVG цртежа у скицу, скалиране, окренуте и постављене како зададете. Користите га да логотип или векторски обрис претворите у криве које можете екструдирати.",
"help.sketch.inspect": "Отвара извештај о отвореној скици: колико је степени слободе остало и да ли је потпуно ограничена. Користите га да сазнате шта се још помера пре него што завршите скицу.",
"help.sketch.intersect": "Додаје криве или тачке у којима тела, лица, ивице или друге скице секу раван скице. Оне остају повезане и прате модел када се он промени.",
"help.sketch.intersection_curve": "Прави 3D криве тамо где се два тела или лица састају, повезане са њима. Користите их као путање или водилице које прате модел.",
"help.sketch.isoparametric_curve": "Прави 3D криву дуж U или V смера лица кроз тачку коју изаберете, повезану са лицем. Користите је као путању или линију поделе која прати површ.",
"help.sketch.line": "Црта повезане линије тачку по тачку, као отворени ланац или затворени обрис. То је основни алат за већину профила.",
"help.sketch.line.midpoint": "Црта линију од њене средишње тачке до једног краја, а други крај се пресликава. Користите је за линије центриране на тачки, на пример за симетричну ивицу.",
"help.sketch.line3d": "Црта повезане праве линије између тачака у простору, са укљученом 3D скицом. Користите је за путање и оквире који напуштају раван скице.",
"help.sketch.mirror": "Пресликава криве и тачке скице преко линије или осе и додаје ограничења симетрије. Користите га да нацртате половину симетричног профила и допуните га.",
"help.sketch.move": "Помера или ротира криве и тачке скице, или њихову копију. Користите га да промените положај геометрије уз задржавање њеног облика и ограничења.",
"help.sketch.offset": "Прави копију ланца кривих на задатом растојању, на једној или обе стране. Користите га за зидове, обрисе и зазоре; растојање остаје кота која се може мењати.",
"help.sketch.paste": "Налепљује геометрију скице коју сте копирали или исекли у активну скицу. Поставите је на тачку или је померите за задати помак.",
"help.sketch.pattern.circular": "Копира геометрију скице око централне тачке, преко пуног круга или задатог угла. Користите га за кружне распореде рупа за завртње, паоке и зубе.",
"help.sketch.pattern.rectangular": "Копира геометрију скице у редове и колоне на задатим размацима. Користите га за мреже рупа, жлебова или отвора за проветравање.",
"help.sketch.point": "Поставља тачку скице. Користите је као референцу за коте, ограничења, центре рупа или касније операције.",
"help.sketch.point3d": "Поставља тачку у простору, са укљученом 3D скицом. Користите је као референцу за 3D криве и путање.",
"help.sketch.polygon.circumscribed": "Црта правилан полигон око круга, чија се величина задаје од центра до средине странице. Користите га када је познат отвор кључа, као код шестоугаоне навртке.",
"help.sketch.polygon.edge": "Црта правилан полигон из два краја једне странице. Користите га када су познате дужина и положај странице.",
"help.sketch.polygon.inscribed": "Црта правилан полигон унутар круга, чија се величина задаје од центра до темена. Користите га када је позната мера преко темена.",
"help.sketch.project": "Уноси ивице, лица и врхове модела и криве других скица у ову скицу, пројектоване на њену раван. Оне остају повезане и прате модел када се он промени.",
"help.sketch.project_to_surface": "Пројектује криве других скица дуж нормале ове скице на лице, као повезане 3D криве. Користите га да логотип, линију поделе или путању ставите на закривљену површину.",
"help.sketch.rectangle.center": "Црта правоугаоник из његовог центра и једног угла. Користите га за обрисе центриране на тачки, на пример на исходишту.",
"help.sketch.rectangle.rounded": "Црта правоугаоник са сва четири угла заобљена истим полупречником. Користите га за плоче, поклопце и отворе са заобљеним угловима.",
"help.sketch.rectangle.three_point": "Црта правоугаоник из једне ивице и тачке на супротној страни. Користите га за правоугаонике под углом у односу на осе скице.",
"help.sketch.rectangle.two_point": "Црта правоугаоник из два супротна угла. Користите га за обрисе плоча, блокова и џепова.",
"help.sketch.scale": "Скалира криве и тачке скице задатим фактором око базне тачке. Користите га да промените величину дела скице без поновног цртања.",
"help.sketch.slot.arc_center": "Црта закривљени жлеб задате ширине дуж лука одређеног центром, почетком и крајем. Користите га за жлебове за подешавање око осовине.",
"help.sketch.slot.arc_three_point": "Црта закривљени жлеб задате ширине дуж лука кроз три тачке. Користите га када путања жлеба мора да прође кроз задате тачке.",
"help.sketch.slot.center_point": "Црта прави жлеб задате ширине од његовог центра до центра једног крајњег лука. Користите га за жлебове центриране на тачки.",
"help.sketch.slot.center_to_center": "Црта прави жлеб задате ширине између центара његова два крајња лука. Користите га за жлебове котиране од центра до центра, на пример за жлебове за подешавање завртња.",
"help.sketch.slot.overall": "Црта прави жлеб задате ширине од једног спољног краја до другог. Користите га када је важна укупна дужина жлеба.",
"help.sketch.spline.control_point": "Црта кубни сплајн обликован контролним тачкама кроз које не пролази. Користите га за глатке, течне криве које обликујете померањем тачака.",
"help.sketch.spline.control_point_5": "Црта сплајн степена 5 обликован контролним тачкама. Користите га тамо где се криве морају спојити са глаткијом закривљеношћу, на пример на видљивим дизајнерским површинама.",
"help.sketch.spline.fit_point": "Црта глатки сплајн који пролази кроз сваку тачку коју поставите, отворен или затворен. Користите га да пратите облик кроз познате тачке.",
"help.sketch.spline3d": "Црта глатку криву у простору кроз тачке, са укљученом 3D скицом. Користите га за путање повлачења и трасе каблова који напуштају раван скице.",
"help.sketch.spun_profile": "Прави у равни скице обрис који тело опише када се окреће око осе. Користите га да добијете силуету струганог дела за ротацију или цртеж.",
"help.sketch.text": "Уписује текст у скицу изабраним фонтом, висином и углом; његове речи могу да прате параметре. Екструдирајте га или направите рељеф за ознаке и натписе.",
"help.sketch.transform": "Скалира, окреће и помера геометрију скице око централне тачке у једном кораку. Користите га да истовремено промените положај и величину избора.",
"help.sketch.trim": "Уклања део криве између најближих пресека око места где кликнете. Користите га да преклапајуће линије средите у затворен профил.",
"help.solid.align": "Помера изабрана тела тако да се тачка, лице или раван на њима поклопи са тачком, лицем или равни негде другде. Користите га да поставите део уз други без мерења одмака.",
"help.solid.boundary_fill": "Прави тела од области затворених преклапајућим алатним телима, попуњавајући само области које изаберете. Користите је да направите облик од простора који заједно ограничава неколико тела.",
"help.solid.bounding_solid": "Прави кутију која обухвата изабрана тела, са необавезним додатком. Користите га да видите укупну величину дела или као комад материјала од којег се обрађује.",
"help.solid.box": "Прави кутију из дужине, ширине и висине, из угаоне тачке или центрирану на тачки. Користите је за брз блок, привремену замену или тело у које се секу облици.",
"help.solid.chamfer": "Одсеца изабране ивице равним скошењем задатог растојања. Користите га да ублажите оштре ивице или олакшате увођење чивије или завртња.",
"help.solid.coil": "Прави завојно тело, на пример опругу, из пречника, броја окретаја, висине или корака и округлог или квадратног пресека. Користите је за опруге, завојнице и завојне гребене.",
"help.solid.combine": "Спаја тела, одузима их од циљног тела или задржава само заједничку запремину, а може да задржи и алатна тела. Користите га да спојите делове, да једним обликом одсечете други или да пронађете где се два тела преклапају.",
"help.solid.cone": "Прави конус из основног круга и висине, или зарубљени конус када и врх има полупречник. Користите га за сужења, левкове, упуштања и шиљке.",
"help.solid.cylinder": "Прави цилиндар из полупречника или пречника и висине, постављен на тачку дуж осе. Користите га за вратила, клинове, испусте и округле заготовке.",
"help.solid.draft": "Нагиње изабрана лица за угао који задате, мерено од неутралне равни. Користите га на ливеним или бризганим деловима како би изашли из калупа.",
"help.solid.emboss": "Издиже профиле скице, на пример текст или логотип, из лица или их утискује у њега. Користите га за натписе, ознаке и обележја на равним или округлим лицима.",
"help.solid.extrude": "Извлачи профил скице у 3D дуж задатог растојања, додајући или уклањајући материјал. Користите га да раван обрис претворите у блок, испуст или џеп.",
"help.solid.fillet": "Заобљује изабране ивице глатким кружним прелазом задатог полупречника. Користите га да омекшате оштре ивице ради чврстоће, удобности или изгледа.",
"help.solid.hole": "Буши округлу рупу задатог пречника на изабраној тачки лица. Користите је за пролазе завртања, чивије и друге једноставне округле отворе.",
@@ -1425,20 +1653,60 @@
"help.solid.move": "Помера или ротира изабрана тела, или њихову копију, за растојање и угао које задате. Користите га да преместите тело или направите друго на другом месту.",
"help.solid.offset_face": "Гура изабрана лица унутра или напоље за растојање које задате, а околна лица их прате. Користите га да подебљате зид, продубите џеп или повисите испупчење без мењања скице.",
"help.solid.pattern.circular": "Понавља изабране објекте око осе, за задати број и укупни угао. Користите га за кругове завртања, жбице, ребра хладњака и зупце.",
"help.solid.pattern.path": "Копира операције или тела дуж путање скице, према броју и размаку. Користите га за рупе дуж закривљене ивице или делове дуж шине.",
"help.solid.pattern.rectangular": "Понавља изабране објекте у једном или два смера са задатим бројем и размаком. Користите га за редове и мреже рупа, ребара, чивија или ножица.",
"help.solid.pipe": "Прави округлу цев дуж путање кривих скице, пуну или шупљу са задатом дебљином зида. Користите је за цеви, жице, каблове и шине.",
"help.solid.press_pull": "Додаје или уклања материјал док превлачите лице, или заобљава ивице док их превлачите. Користите га за брзе измене директно на моделу.",
"help.solid.remove": "Уклања изабрана тела из дизајна од ове тачке временске траке надаље; ранији кораци их задржавају. Користите га да одбаците помоћно тело, нпр. алат за сечење који вам више не треба.",
"help.solid.replace_face": "Премешта изабрана равна лица на раван или на паралелно лице, а тело расте или се смањује да га досегне. Користите га да поравнате лице са другим делом или помоћном равни.",
"help.solid.revolve": "Окреће профил скице око осе и прави округло тело. Користите га за вратила, дугмад, посуде и сваки део који је округао око средишње линије.",
"help.solid.rib": "Додаје танак зид дуж отворене криве скице, испуњен до наредних лица тела. Користите га да ојачате зидове и углове, на пример код делова израђених у калупу или штампаних.",
"help.solid.scale": "Повећава или смањује изабрана тела за фактор, једнако у свим смеровима или посебно по оси. Користите га да промените величину увезеног облика или урачунате скупљање.",
"help.solid.shell": "Издубљује тело и оставља зидове задате дебљине, а може да отвори лица која изаберете. Користите га за кутије, поклопце и друге танкозидне делове.",
"help.solid.sphere": "Прави сферу из полупречника или пречника око централне тачке. Користите је за кугле, дугмад и заобљене крајеве.",
"help.solid.split_body": "Сече тело на засебна тела равни, лицем другог тела или линијом скице. Користите га за делове који се засебно штампају, обрађују или боје.",
"help.solid.split_face": "Дели изабрана лица по равни, лицу другог тела или кривама скице, без сечења тела. Користите га да делу лица дате сопствени нагиб, боју или одмак.",
"help.solid.sweep": "Повлачи профил скице дуж путање и прави тело. Користите га за цеви, шине, ручке и сваки део константног пресека који прати криву.",
"help.solid.thread": "Додаје ISO метрички навој на цилиндрично лице, као козметички навој или урезан у тело. Користите га за завртње, навојне рупе и штампане делове са навојем.",
"help.solid.torus": "Прави прстен из великог полупречника око његове осе и малог полупречника његовог округлог пресека. Користите га за О-прстенове, ручке и округле перле.",
"help.solid.web": "Додаје танак зид дуж сваке отворене криве скице, сваки испуњен до наредних лица тела. Користите је за мрежу потпорних зидова унутар кућишта и тацни.",
"help.surface.blend": "Прави површ која премошћује ивице два тела, тангентно или непрекидно по закривљености са оба. Користите је да глатко спојите две површи преко размака.",
"help.surface.boundary": "Прави површ која испуњава петљу од две до четири криве скице или мрежу кривих. Користите је за слободне панеле дефинисане њиховим ивицама.",
"help.surface.extend": "Продужава површ преко њених ивица, за растојање или до равни или лица. Користите га да се површи преклопе пре него што их одсечете или сашијете.",
"help.surface.extrude": "Извлачи криве или профиле скице дуж растојања у површ, само зидове, без поклопаца. Користите је за танке зидове и за алате за сечење или поделу.",
"help.surface.fair": "Углађује унутрашњост слободних лица док њихове ивице остају на месту. Користите га да изравнате избочине и таласасте одблеске на површи.",
"help.surface.loft": "Прави површ која редом пролази кроз два или више профила, без поклопаца. Користите је за љуске и прелазе између различитих облика.",
"help.surface.match": "Поново гради ивицу површи тако да се поклопи са ивицом другог тела, уз одговарајућу тангентност или закривљеност. Користите га да глатко затворите шав између две површи.",
"help.surface.offset": "Прави копију лица на растојању дуж њихових нормала, као ново површинско тело. Користите је за опне, зазоре или другу страну зида.",
"help.surface.patch": "Испуњава област скице или затворену петљу ивица лицем, равним или глатко закривљеним. Користите је да затворите рупе у површинском телу.",
"help.surface.reverse_normal": "Преврће лица површинског тела, тако да њихова спољна страна гледа на другу страну. Користите га пре подебљавања или сашивања када лица гледају ка унутра.",
"help.surface.revolve": "Окреће криве или профиле скице око осе у површ, без поклопаца. Користите је за округле љуске као што су абажури, посуде и млазнице.",
"help.surface.ruled": "Прави траку од правих линија из ланца ивица, дуж нормале лица, тангенте или под углом. Користите је за зидове са нагибом, прелазе и површи раздвајања.",
"help.surface.stitch": "Шије површинска тела заједно дуж њихових заједничких ивица, у тело када се затворе. Користите га да скуп површи претворите у једно тело.",
"help.surface.sweep": "Помера криве или профиле скице дуж путање у површ, без поклопаца. Користите је за олуке, лајсне и друге танке облике који прате путању.",
"help.surface.thicken": "Даје површинском телу дебљину и претвара га у пуно тело. Користите га да од површи направите делове погодне за штампу или обраду.",
"help.surface.trim": "Сече површ помоћу равни, друге површи или кривих скице и задржава страну коју изаберете. Користите га да површи обликујете сечењем пре сашивања.",
"help.surface.unstitch": "Раздваја лица тела у засебна површинска тела; пуно тело се распада на површи. Користите га да прерадите појединачна лица тела.",
"help.surface.untrim": "Уклања рупе са лица или враћа његову спољну границу на природне границе површи. Користите га да вратите целу површ након одсецања.",
"help.third_party": "Лиценце трећих страна",
"help.timeline.compute_all": "Поново гради сваку операцију на временској траци од почетка. Користите га да освежите модел и видите које операције не успевају.",
"help.timeline.delete": "Брише изабране операције са временске траке; брисање скице брише и операције направљене из ње. Користите га да уклоните корак који више не желите.",
"help.timeline.dependents": "Наводи операције које би биле избрисане заједно са једном операцијом и оне које не би успеле без ње. Користите га пре брисања или промене операције.",
"help.timeline.play": "Поново репродукује преостале операције једну по једну, са паузом од пола секунде након сваке обнове. Покрените ову команду поново или притисните Escape да зауставите; Иди на крај одмах скаче на крај.",
"help.view.apply": "Окреће приказ у стандардни смер, као што су предњи, горњи или изометријски, или на сачувани именовани приказ. Користите га да модел гледате из одређеног угла.",
"help.view.delete": "Брише сачувани именовани приказ. Модел се не мења.",
"help.view.fit": "Зумира и помера приказ тако да цео модел, или избор, испуни приказ. Користите га када је модел ван видног поља.",
"help.view.grid": "Приказује или сакрива мрежу у прозору приказа. Користите је као водич за величину и оријентацију током моделовања.",
"help.view.ground_shadow": "Приказује или сакрива сенку модела на подлози. Користите је да лакше процените висину и положај.",
"help.view.home": "Враћа приказ на почетни смер и уклапа модел. Користите га да се брзо вратите на познати приказ.",
"help.view.list": "Наводи именоване приказе сачуване у дизајну. Користите га да пронађете приказ који сте раније сачували.",
"help.view.navigate": "Окреће, помера или зумира приказ по корацима, на пример четвртином окрета улево. Користите га да прецизно померате камеру уместо превлачења.",
"help.view.navigation_bar": "Приказује или сакрива навигациону траку на дну прозора приказа. Сакријте је за више простора, а прикажите је да алатима приказа приступате мишем.",
"help.view.rename": "Даје сачуваном именованом приказу нови назив. Сам приказ остаје исти.",
"help.view.save": "Чува тренутни положај камере као именовани приказ у дизајну. Користите га да се касније вратите на исти угао, на пример за снимке екрана.",
"help.view.spin": "Непрекидно орбитира приказ око модела до следећег клика или тастера. Користите га да представите модел са свих страна.",
"help.view.tool": "Закључава алат камере, орбитирање, померање или зумирање, па превлачење левим дугметом миша помера приказ док га не искључите. Користите га на додирној табли или без средњег дугмета миша.",
"help.view.visual_style": "Мења начин на који се модел исцртава: осенчено са ивицама или без њих, жичани модел или са скривеним ивицама. Користите жичани модел да видите унутра, а осенчено за чист изглед.",
"history.sketch_under_constrained": "Недовољно ограничено ({count} степени слободе)",
"history.sketch_under_constrained_one": "Недовољно ограничено ({count} степен слободе)",
"hole_presets.confirm_delete": "Потврди брисање",
@@ -1615,6 +1883,10 @@
"material.selection.mixed": "Различити материјали",
"measure.at": "На",
"measure.item": "Ставка {number}",
"measure.quick_copied": "Мерење је копирано",
"measure.quick_copy": "Кликните да копирате мерење",
"measure.quick_edges": "Ивица: {count}",
"measure.quick_faces": "Лица: {count}",
"messages.ago_h": "пре {n} h",
"messages.ago_min": "пре {n} min",
"messages.ago_s": "пре {n} s",
@@ -1648,6 +1920,7 @@
"nav.hfss.help": "Alt+превлачење левим тастером помера, Shift+Alt+леви зумира, Ctrl+превлачење левим на празном простору орбитира",
"nav.inventor.help": "Превлачење средњим дугметом помера, Shift+средње орбитира, Ctrl+средње зумира, превлачење десним орбитира",
"nav.maya.help": "Alt+превлачење левим орбитира, Alt+средњи помера, Alt+десни зумира; превлачење средњим такође помера",
"nav.nx.help": "Превлачење средњим дугметом орбитира, Shift+средње помера (у NX-у средње + десно), Ctrl+средње зумира (у NX-у средње + лево); превлачење десним дугметом не дира камеру",
"nav.openscad.help": "Превлачење левим дугметом по празном простору орбитира, Shift+превлачење левим бира оквиром, превлачење геометрије скице је мења; превлачење десним или средњим дугметом помера, Shift+десно или Shift+средње зумира",
"nav.perspective.sketch": "Измена скице користи ортографски приказ. Завршите скицу да пребаците на перспективу.",
"nav.right_drag_orbits.help": "Искључено: превлачење десним дугметом не дира камеру, а десно дугме само отвара контекстни мени. Избор SolidWorks мапирања миша га искључује.",
@@ -1767,6 +2040,11 @@
"not a move": "није померање",
"not a number": "није број",
"open a sketch first": "прво отворите скицу",
"parameters.apply_live": "Примени сваку измену чим напустите њено поље",
"parameters.apply_live_tip": "Искључено: измене чекају на Примени или У реду, а затим се дизајн једном поново гради за све њих. Откажи или Esc их одбацује.",
"parameters.held": "Измена на чекању за Примени: {count}",
"parameters.held_hint": "Мењајте изразе и јединице. Измене чекају на Примени или У реду.",
"parameters.held_one": "1 измена на чекању за Примени",
"parts.automatic_name": "аутоматски",
"parts.dimension.across_flats": "Отвор кључа",
"parts.dimension.bore": "Отвор",
@@ -1789,6 +2067,8 @@
"parts.family.set_screw": "Завртањ без главе са унутрашњим шестоугаоником, равног врха",
"parts.family.socket_head_cap_screw": "Завртањ са цилиндричном главом и унутрашњим шестоугаоником",
"parts.family.washer": "Обична подлошка",
"parts.holes": "Рупе (необавезно)",
"parts.placement_hint": "изаберите једну или више рупа да у сваку поставите део, или У реду поставља део у исходиште",
"pattern.alignment_2": "Поравнање 2",
"pattern.alignment_hint": "Број укључује оригинал. Центар равномерно распоређује копије; Обрни бира додатну страну за парне укупне бројеве.",
"pattern.direction_1": "Смер 1",
@@ -1862,6 +2142,8 @@
"prefs.ctrl_cmd": "Ctrl / Cmd",
"prefs.curved_surfaces": "Закривљене површи",
"prefs.curves": "Закривљене површи",
"prefs.dark_parts_shading": "Задржи облик тамних делова",
"prefs.dark_parts_shading_help": "Сенчи приказ у линеарном светлу уз меко допунско светло неба, тако да тамна лица задрже градијент уместо да поцрне",
"prefs.dead_zone_note": "Шрафирана трака је мртва зона: кретање унутар ње се занемарује.",
"prefs.default": "подразумевано",
"prefs.design": "Подразумевана подешавања дизајна",
@@ -1876,6 +2158,8 @@
"prefs.edges": "Ивице и сенчење",
"prefs.extend": "Продужи",
"prefs.extra_navigation": "Ctrl + превлачење левим дугметом по празном простору орбитира; држите размакницу за померање.",
"prefs.extrude_view_isometric": "Окрени приказ у изометријски када се отвори Екструдирај",
"prefs.extrude_view_return": "Врати се на претходни приказ када се Екструдирај затвори",
"prefs.follows_os": "Прати оперативни систем",
"prefs.font": "Фонт",
"prefs.font_fallback": "Знакови који недостају изабраном фонту приказују се уграђеним фонтом, тако да ниједна ознака не приказује празан квадрат.",
@@ -1891,6 +2175,7 @@
"prefs.graphics_card_auto": "Аутоматски",
"prefs.graphics_card_missing": "Сачувана графичка картица није доступна; користи се Аутоматски.",
"prefs.graphics_card_restart": "Ступа на снагу након поновног покретања SolidCraft-а. WGPU_ADAPTER_NAME има предност над овим избором.",
"prefs.graphics_card_unused": "Сачувана графичка картица није коришћена за овај прозор; картица која се користи приказана је у Помоћ › О програму и у статусној траци. Покушајте са опцијом Аутоматски или поставите WGPU_ADAPTER_NAME на јединствени део назива картице.",
"prefs.graphics_note": "Жртвујте брзину за глаткоћу. Сваки избор показује свој учинак на примеру.",
"prefs.graphics_presets_note": "Унапред подешене вредности подешавају све изборе испод одједном.",
"prefs.hide_constraint_glyphs_zoomed_out": "Сакриј симболе ограничења када је приказ умањен",
@@ -1905,6 +2190,8 @@
"prefs.history_sketches_note": "Када је Скице подешено на Испод своје операције, временска трака лево приказује сваку скицу један ниво увучено, испод прве операције направљене из ње, кад год је довољно широка за називе. Временска трака на дну увек задржава редослед настанка.",
"prefs.history_sketches_under_feature": "Испод своје операције",
"prefs.hold_stop_snapping": "Држите да искључите привлачење",
"prefs.home_fit_size": "Величина за Почетни приказ и Уклопи",
"prefs.home_fit_size_note": "Колики део приказа модел испуњава када га уоквири Почетни приказ, Уклопи, отварање дизајна или промена приказа у навигатору, без обзира на то да ли је подешавање испод укључено. 100 %: испуњава приказ између панела, компаса и навигационе траке.",
"prefs.icons_only": "Само иконе",
"prefs.imported_file": "Увезена датотека",
"prefs.in_browser": "У стаблу модела",
@@ -1913,13 +2200,20 @@
"prefs.interface_language": "Језик интерфејса",
"prefs.interface_note": "Како SolidCraft изгледа и где су његови делови.",
"prefs.interval_minutes": "{n} min",
"prefs.invert_navigator_arrows": "Обрни стрелице за ротацију коцке приказа",
"prefs.invert_navigator_arrows_note": "Стрелице око коцке орбитирају камеру у смеру у којем показују, као у програмима Fusion и Inventor: стрелица са леве стране показује удесно и закреће камеру удесно. Искључено: стрелица окреће коцку ка страни на којој се налази, па лева стрелица закреће камеру улево. Подешавање не утиче на закривљене стрелице за ваљање.",
"prefs.keep_work_on_tab_switch": "Задржи дијалоге и алате отвореним при пребацивању између дизајна",
"prefs.keep_work_on_tab_switch_note": "Свака картица дизајна задржава свој отворени дијалог или алат, са оним што сте у њему изабрали и уписали, те своју картицу траке са алатима. Када се вратите на дизајн, поново су ту. Искључено: пребацивање између дизајна отказује их и приказује картицу Модел.",
"prefs.labels": "Ознаке",
"prefs.language_system": "Систем",
"prefs.layout": "Распоред",
"prefs.layout_note": "Компактно причвршћује панеле уз ивице прозора. Провидност стабла модела доступна је у опцији Плутајуће. Страну Асистента промените на страници Асистент.",
"prefs.left": "Лево",
"prefs.left_click": "Леви клик",
"prefs.line_drag_draws_one": "Притисак и превлачење цртају једну линију",
"prefs.line_drag_draws_one_note": "У алату Линија, притисак, превлачење и пуштање цртају једну линију од места притиска до места пуштања и ту се завршава. Кликови и даље цртају ланац. Искључено: превлачење поставља тачку где се пусти, као и клик.",
"prefs.line_hover_tangent_arc": "Задржите показивач на последњој тачки линије да пређете на тангентни лук",
"prefs.line_hover_tangent_arc_note": "У алату Линија, након што је нацртан сегмент, одмакните показивач од последње тачке ланца, вратите га на њу и држите га мирно: следећи клик завршава тангентни лук, а исти покрет враћа на линије. Искључено: задржавање на тој тачки не ради ништа.",
"prefs.linked_designs": "Повезани дизајни",
"prefs.live_input": "Улаз уживо",
"prefs.live_preview": "Преглед уживо",
@@ -1943,6 +2237,8 @@
"prefs.mouse_mapping": "Мапирање миша",
"prefs.navigation": "Навигација",
"prefs.navigation_note": "Како миш, додирна табла и 3D миш померају приказ.",
"prefs.navigator_fit": "Уклопи модел након промене приказа у навигатору",
"prefs.navigator_fit_note": "Лице, угао или стрелица коцке приказа, односно оса гизма оријентације, такође усмерава поглед на средину модела са једног растојања на којем се уклапа из сваког смера (његова гранична сфера). Почетни приказ користи исти зум и центар док је ова опција укључена, па се прикази које изаберете после њега само окрећу. Искључено: приказ се окреће на месту и задржава свој циљ и зум.",
"prefs.network_host_remove": "Уклони",
"prefs.network_locations": "Дозволи мрежне локације у дизајнима",
"prefs.network_locations_note": "Искључено: повезане датотеке дизајна на другом рачунару (\\\\server\\share) отварају се само са сервера наведених овде или након што га дозволите када се то затражи.",
@@ -1955,6 +2251,8 @@
"prefs.origin_plane_names": "Називи равни исходишта",
"prefs.origin_plane_names_note": "Називи приказани у стаблу модела, дијалозима и листама. {top} је XY, {front} је XZ, а {right} је YZ, са Z нагоре. Команде, скрипте и сачувани дизајни задржавају XY, XZ и YZ.",
"prefs.overall_speed": "Укупна брзина",
"prefs.parameter_list_rows": "Редови на списку параметара",
"prefs.parameter_list_rows_tip": "Стрелица надоле у празном пољу вредности наводи параметре, прво омиљене, до овог броја. Мањи број држи списак лаким у великом дизајну.",
"prefs.persistent_ribbon_pressed": "Истакни активне команде на траци",
"prefs.persistent_ribbon_pressed_help": "Истиче команде на траци док су њихови ефекти укључени. Искључите да бисте задржали претходни неутрални изглед и помоћ за команде.",
"prefs.perspective_fov": "Видно поље",
@@ -1984,9 +2282,13 @@
"prefs.quality_fastest": "најбрже",
"prefs.quality_slowest": "најспорије",
"prefs.quality_smoother": "глађе",
"prefs.quick_measure": "Брзо мерење у углу приказа",
"prefs.quick_measure_note": "Величина избора у доњем десном углу приказа: дужина ивице, или Ø и R за округлу, површина лица, положај тачке, растојање и угао две ставке, збир неколико ивица или лица. Клик га копира.",
"prefs.render_previous_geometry_budget": "Користи претходни буџет геометрије за преглед у Рендеровању",
"prefs.render_previous_geometry_budget_help": "Враћа претходно фиксно ограничење геометрије (512 MiB на 64-битним десктоп рачунарима, 128 MiB другде) уместо буџета према уређају.",
"prefs.reports_saved": "Сачувано: {n}",
"prefs.ribbon_click_ends_tool": "Клик на дугме активног алата завршава га",
"prefs.ribbon_click_ends_tool_note": "Клик на истакнуто дугме на траци алата за скицирање који је у употреби завршава тај алат, па кликови у приказу поново служе за избор. Искључено: клик поново покреће алат.",
"prefs.ribbon_reveal": "Прикажи резултате претраге на траци",
"prefs.ribbon_reveal_note": "Задржавање показивача изнад резултата у Претражи команде показује где се команда налази на траци: њену картицу, њено дугме или њен ред у падајућем менију панела. Команда покренута из претраге тамо трепери, а покренута команда из падајућег менија означава свој панел.",
"prefs.right_click": "Десни клик",
@@ -2016,6 +2318,8 @@
"prefs.sketch_exit_view.previous": "Врати се на претходни приказ",
"prefs.sketch_exit_view.unless_rotated": "Врати се осим ако је ротирано",
"prefs.sketch_exit_view_note": "Куда приказ иде након Заврши скицу, Откажи или двоструког Esc.",
"prefs.sketch_face_activates_part": "Скицирање на лицу дела чини тај део активним",
"prefs.sketch_face_activates_part_note": "Скица започета на лицу тела друге компоненте прво активира ту компоненту, па скица припада њој и у стаблу модела остаје уз тај део. Тај део након тога остаје активан. Искључено: скица припада активној компоненти.",
"prefs.sketch_open_look_at": "Окрени камеру према скици када се отвори",
"prefs.sketch_open_look_at_note": "Искључено: када направите или измените скицу, приказ остаје онакав какав јесте. Погледај окреће приказ према скици када то желите.",
"prefs.sketch_recent_snap": "Аутоматски привлачи на недавне центре и средишње тачке",
@@ -2029,6 +2333,8 @@
"prefs.sketch_tab_always_note": "Картица Скица остаје на траци, одмах после картице Модел, док ниједна скица није отворена. Њени алати за цртање тада започињу скицу на изабраној равни или лицу, или на равни коју следећу изаберете, са спремним алатом у њој.",
"prefs.sketch_tracking_guides": "Водичи за поравнање центра и средишње тачке",
"prefs.sketch_tracking_guides_note": "Задржите показивач изнад центра круга или средишта праве ивице, па се померите хоризонтално или вертикално да би се приказао привремени тачкасти водич.",
"prefs.sketch_tracking_points": "Водичи за поравнање од крајњих тачака и углова током цртања",
"prefs.sketch_tracking_points_note": "Док алат за цртање чека на тачку, задржавање показивача изнад краја линије или лука, угла правоугаоника или слободне тачке приказује исти привремени тачкасти водич као код центра или средишње тачке. Искључено: само центри и средишње тачке.",
"prefs.sketching": "Скицирање",
"prefs.snap_drawing_note": "Током цртања или превлачења тачке скице.",
"prefs.source": "Извор",
@@ -2045,6 +2351,24 @@
"prefs.status_error": "Грешка",
"prefs.status_selected": "Изабрано",
"prefs.status_warning": "Упозорење",
"prefs.structure.appearance": "Изглед",
"prefs.structure.appearance_note": "Боје, текст и приступачност.",
"prefs.structure.in_profile": "У профилу",
"prefs.structure.layout": "Распоред",
"prefs.structure.layout_note": "Где се налазе делови прозора.",
"prefs.structure.look": "Визуелно",
"prefs.structure.measure_pointer": "Мерење и показивач",
"prefs.structure.mouse3d": "3D миш",
"prefs.structure.mouse3d_note": "SpaceMouse и SpaceNavigator.",
"prefs.structure.navigation_note": "Миш и додирна табла. 3D миш има сопствену страницу.",
"prefs.structure.profile": "Профил",
"prefs.structure.profile_edited": "Промењено откако је сачувано",
"prefs.structure.profile_hover": "Сачувано у профилима подешавања",
"prefs.structure.scale_percent": "{percent}%",
"prefs.structure.sketch": "Скица",
"prefs.structure.tools": "Алати",
"prefs.structure.tools_note": "Како се понашају алати за моделовање.",
"prefs.structure.work": "Рад",
"prefs.supersampling_brief": "Исцртава приказ већим и смањује га филтрирањем: веома оштро и захтевније.",
"prefs.tab_accent_note": "Нагласна боја прати активну картицу",
"prefs.theme_file": "датотека теме",
@@ -2056,6 +2380,16 @@
"prefs.theme_follow_off": "Искључено",
"prefs.theme_follow_stop": "Престани да пратиш",
"prefs.theme_import_hint": "Кликните да изаберете датотеку теме, превуците је овде или притисните Ctrl+V (Cmd+V на Mac рачунару) када је тема копирана",
"prefs.theme_option_opacity": "Непрозирност",
"prefs.theme_option_opacity_help": "Подесите непрозирност плутајућих панела. Доња граница читљивости штити текст преко боја прозора приказа.",
"prefs.theme_option_tab_colours": "Боје картица",
"prefs.theme_option_tab_colours_help": "Користи боје панела и прозора приказа ове теме за сваку картицу на траци.",
"prefs.theme_option_tab_fade_ms": "Прелаз између картица",
"prefs.theme_option_tab_fade_ms_help": "Постепено мења боје панела и прозора приказа при промени картице. Нула прелази одмах.",
"prefs.theme_options_badge": "Опције",
"prefs.theme_options_more": "Више · {count}",
"prefs.theme_options_reset": "Ресетуј",
"prefs.theme_options_unavailable": "Није доступно на овом уређају",
"prefs.theme_paste": "Налепи тему",
"prefs.theme_paste_none": "Клипборд не садржи SolidCraft тему",
"prefs.timeline_half_hour": "−30 min",
@@ -2077,6 +2411,8 @@
"prefs.under_cursor": "Испод показивача",
"prefs.units_precision": "Јединице и прецизност",
"prefs.updates": "Ажурирања",
"prefs.value_boxes_in_view": "Прикажи вредности поред њихових ручица у приказу",
"prefs.value_boxes_in_view_tip": "Вредност команде (Растојање, Полупречник…) у пољу поред њене ручице, преко модела. Искључено: уносите је у прозору команде, који преузима тастатуру након избора, а ништа не прекрива модел.",
"prefs.view": "Понашање приказа",
"prefs.view_confirm_corner": "У реду и Откажи у углу приказа",
"prefs.view_confirm_corner_note": "Док је отворен дијалог или скица, квачица и крстић горе десно у приказу раде исто што и дугмад У реду и Откажи у дијалогу, односно завршавају и отказују скицу. Навигатор приказа помера се испод њих.",
@@ -2086,6 +2422,12 @@
"prefs.viewport_background": "Позадина",
"prefs.viewport_background_colour": "Боја",
"prefs.viewport_background_theme": "Градијент теме",
"prefs.viewport_section_status": "Прикажи статус пресека у прозору приказа",
"prefs.viewport_section_status_help": "Приказује подешавање пресека у прозору приказа. Esc и активно дугме на траци га искључују. Искључите да задржите претходне контроле пресека.",
"prefs.viewport_status_details": "Детаљи прозора приказа уживо",
"prefs.viewport_status_details_help": "Мењајте подешавања активне анализе и пресека у стандардним картицама са детаљима. Искључите да вратите легенде анализе само за читање и дијалог Пресек.",
"prefs.viewport_status_summary": "Сажми ставке статуса у прозору приказа",
"prefs.viewport_status_summary_help": "Сажима три или више ставки статуса у прозору приказа у једну збирну значку. Искључите да свака ставка остане у пуном реду.",
"prefs.wheel": "Точкић",
"prefs.wheel_trackpad": "Точкић и додирна табла",
"prefs.workspace": "Радни простор",
@@ -2964,7 +3306,9 @@
"render.output_ready": "Спремно за рендеровање",
"render.output_run_check": "Покрени проверу",
"render.output_size_limit": "{method}: до {dimension} px по страни и {pixels} пиксела. Највећа величина која стаје: {width} × {height}.",
"render.output_size_method_profile": "Да бисте рендеровали {width} × {height}, изаберите {method} са CPU профилом ресурса {profile}, или мању величину.",
"render.output_size_ok": "Величина је у реду · {width} × {height} px",
"render.output_size_profile": "Да бисте рендеровали {width} × {height}, изаберите CPU профил ресурса {profile}, или мању величину.",
"render.output_swap_orientation": "Замени ширину и висину",
"render.output_tools_inspector": "Величину и формат измените у инспектору Излаз.",
"render.output_view_image": "Прикажи слику",
@@ -3177,6 +3521,7 @@
"render.size_custom": "Прилагођено…",
"render.size_full_hd": "Full HD",
"render.size_hd": "HD",
"render.size_needs_profile": "{size} · захтева {profile}",
"render.size_presets": "Унапред подешене величине",
"render.size_presets_pending": "Стиже са уређивачем излаза",
"render.size_preview": "Преглед",
@@ -3464,6 +3809,24 @@
"sheet.flange_type_contour": "Контура",
"sheet.flange_type_edge": "Ивица",
"sheet.no_body": "нема лименог тела: направите га помоћу Прирубница > Основа или претворите плочу у лим помоћу Претвори у лим (изаберите њено велико равно лице)",
"sheet.personal_rules.confirm_delete": "Потврди брисање",
"sheet.personal_rules.delete": "Избриши",
"sheet.personal_rules.delete_prompt": "Избрисати ово лично правило? Правила која су већ у дизајнима остају непромењена.",
"sheet.personal_rules.full": "Лична библиотека већ садржи 64 правила.",
"sheet.personal_rules.invalid_name": "Унесите кратак назив без прелома реда или контролних знакова.",
"sheet.personal_rules.invalid_values": "Допуните вредности правила: свака мора да се израчуна у овом дизајну, са позитивном дебљином и K-фактором од 0 до 1.",
"sheet.personal_rules.missing": "Изабрано лично правило више није доступно.",
"sheet.personal_rules.name": "Назив правила",
"sheet.personal_rules.name_exists": "Лично правило са овим називом већ постоји. Користите други назив.",
"sheet.personal_rules.name_hint": "Јединствен назив",
"sheet.personal_rules.overwrite": "Сачувај промене у изабраном личном правилу",
"sheet.personal_rules.rename": "Преименуј",
"sheet.personal_rules.rule": "Лично правило",
"sheet.personal_rules.save": "Сачувај ново",
"sheet.personal_rules.scope": "Сачувано у вашем профилу за све дизајне.",
"sheet.personal_rules.select": "Изаберите правило",
"sheet.personal_rules.title": "Лична правила",
"sheet.personal_rules.unsupported": "Ово правило има вредности које ова верзија не може да користи.",
"shortcut.json_error": "параметри морају бити JSON: {error}",
"shortcut.no_command": "нема команде `{id}`; текст пре JSON-а мора бити id команде",
"shortcut.pin": "Прикачи на врх S оквира",
@@ -3500,8 +3863,10 @@
"sketch_text.align_right": "Десно",
"sketch_text.bold": "Подебљано",
"sketch_text.builtin_font": "{family} (уграђено)",
"sketch_text.formula": "Почните са = да речи саставите од параметара: ='W' + number(Width)",
"sketch_text.italic": "Курзив",
"sketch_text.loading_fonts": "Тражење инсталираних фонтова…",
"sketch_text.no_bold": "Уграђени фонт нема подебљану варијанту: изаберите инсталирани фонт",
"sketch_text.on_path": "Текст прати своју путању: крива га поставља",
"sketch_text.path_clear": "Скини текст са његове криве",
"sketch_text.path_hint": "Крива скице коју текст прати: кликните овде, а затим криву",
@@ -3640,6 +4005,8 @@
"ui.3d_mouse_section": "3D миш",
"ui.3d_mouse_show_in_view": "Прикажи 3D миш у 3D приказу",
"ui.3d_mouse_show_in_view_tip": "Слика вашег 3D миша у доњем левом углу, која се креће док га померате.",
"ui.3d_mouse_sketch_orbit": "Окрећи скице 3D мишем",
"ui.3d_mouse_sketch_orbit_tip": "3D миш окреће приказ и док је скица отворена и гледана под правим углом, као што то може и миш. Искључено: помера и зумира скицу док не нагнете приказ.",
"ui.3d_mouse_skip": "Мој уређај ово не може",
"ui.3d_mouse_skip_tip": "Прескаче ово кретање у оба смера, а калибрација га изоставља.",
"ui.3d_mouse_speed": "Брзина 3D миша",
@@ -3708,6 +4075,7 @@
"ui.agent_chat_auth_terminal": "Покрените ово у терминалу, а затим притисните Повежи поново:",
"ui.agent_chat_auth_title": "Пријави се код агента",
"ui.agent_chat_cancel": "Откажи",
"ui.agent_chat_cannot_start": "Инсталиран, али се не покреће: {error}",
"ui.agent_chat_changes": "Промене: {n}, један корак поништавања",
"ui.agent_chat_changes_n": "Промене: {n}",
"ui.agent_chat_changes_of": "Промене: {n}/{limit}",
@@ -3800,9 +4168,12 @@
"ui.agent_chat_queued_stopped": "У реду чекања (заустављено, није послато)",
"ui.agent_chat_refresh": "Освежи",
"ui.agent_chat_refused": "Није дозвољено агенту: {reason}",
"ui.agent_chat_reinstall": "{agent} је инсталиран ({program}), али се није покренуо када га је SolidCraft проверио: {error}\nЊегова инсталација је можда непотпуна или направљена за другу врсту рачунара. Инсталирајте га поново помоћу `{install}`, проверите да у терминалу исписује своју верзију, а затим притисните Освежи.",
"ui.agent_chat_remove": "Уклони из реда",
"ui.agent_chat_remove_file": "Скини са ове поруке",
"ui.agent_chat_remove_imported": "Скини са ове поруке; део остаје у дизајну (Поништи га уклања)",
"ui.agent_chat_reply_cut_off": "Одговор је достигао ограничење дужине пре него што је завршен, па је можда непотпун. Затражите од агента да настави или да одговори сажетије.",
"ui.agent_chat_reply_declined": "Модел је одбио да одговори на ову поруку.",
"ui.agent_chat_retry": "Покушај поново",
"ui.agent_chat_right": "Десно",
"ui.agent_chat_save": "Сачувај",
@@ -3861,12 +4232,17 @@
"ui.ai_copy_suffix": "копирај",
"ui.ai_custom_url": "Прилагођени URL",
"ui.ai_default": "Подразумевано",
"ui.ai_edit": "Измени",
"ui.ai_edit_agent_title": "Измени агента",
"ui.ai_edit_gone": "Овај агент је уклоњен, па нема шта да се сачува.",
"ui.ai_edit_tip": "Промените назив, команду или крајњу тачку овог агента. Сачувани кључ остаје скривен.",
"ui.ai_http_busy": "крајња тачка је заузета или је преко ограничења; покушајте поново касније",
"ui.ai_http_key": "крајња тачка је одбила кључ: проверите га у Подешавања > AI",
"ui.ai_http_not_found": "нема такве крајње тачке или модела: проверите основни URL и назив модела",
"ui.ai_http_too_large": "разговор је превелик за ову крајњу тачку; започните нови разговор",
"ui.ai_key": "API кључ",
"ui.ai_key_hint": "необавезно; чува се у системском привеску кључева",
"ui.ai_key_keep_hint": "оставите празно да задржите сачувани кључ",
"ui.ai_key_needs_https": "Кључ се шаље само преко HTTPS-а или на овај рачунар.",
"ui.ai_key_note": "Чува се у системском привеску кључева, никад у подешавањима SolidCraft-а. За локални сервер оставите празно.",
"ui.ai_keychain_error": "Системски привесак кључева је одбио: {error}",
@@ -3893,11 +4269,15 @@
"ui.ai_permissions": "Дозволе",
"ui.ai_preset": "Унапред подешено",
"ui.ai_protocol": "Протокол",
"ui.ai_reasoning_effort": "Ниво закључивања",
"ui.ai_reasoning_effort_field_hint": "празно = подразумевана вредност пружаоца",
"ui.ai_reasoning_effort_hint": "Необавезно. Шаље се крајњој тачки као `reasoning_effort`; прихваћене вредности се разликују од пружаоца до пружаоца (на пример `low`, `high` или `max`). SolidCraft никад не мења вредност коју овде поставите. Оставите празно да се ништа не шаље и да се задржи подразумевана вредност пружаоца.",
"ui.ai_remove": "Уклони",
"ui.ai_request_timed_out": "Модел је трајао дуже од {seconds} s. Временско ограничење захтева за ову крајњу тачку можете повећати у Подешавања › Асистент.",
"ui.ai_request_timeout": "Временско ограничење захтева",
"ui.ai_request_timeout_hint": "Колико дуго један захтев моделу на овој крајњој тачки сме да траје, од 30 s до једног сата. Повећајте за спори локални модел.",
"ui.ai_reset": "Ресетуј",
"ui.ai_save": "Сачувај",
"ui.ai_settings": "AI подешавања…",
"ui.ai_show_features": "Прикажи AI функције",
"ui.ai_show_features_note": "Разговор са агентом: панел у ком агент за кодирање који већ користите или крајња тачка модела коју изаберете ради на отвореном дизајну. Искључено: нема AI дугмета, пречице, ставке менија ни панела, и ништа се не тражи нити покреће.",
@@ -4057,6 +4437,7 @@
"ui.dark": "Тамна",
"ui.default_modelling_orientation": "Подразумевана оријентација моделовања",
"ui.delete": "Избриши",
"ui.delete_select_first": "Прво изаберите шта желите да избришете: операције, тела, компоненте или геометрију скице",
"ui.depth": "Дубина",
"ui.design": "Дизајн",
"ui.design_properties.author": "Аутор",
@@ -4071,6 +4452,40 @@
"ui.design_properties.project": "Пројекат",
"ui.design_properties.revision": "Ревизија",
"ui.design_saved": "Сачувано: {path}",
"ui.details_access_caption": "Лица показују да ли алат може да допре до њих из изабраног смера.",
"ui.details_angle": "Угао",
"ui.details_continuity_caption": "Измените изабрани шав. Остали шавови задржавају своја подешавања.",
"ui.details_continuity_stale": "Старија геометрија: поново покрените анализу да бисте изменили овај шав или га уклопили у приказ.",
"ui.details_copy_list": "Копирај списак",
"ui.details_curvature": "Толеранција закривљености",
"ui.details_curvature_caption": "Лица су обојена према локалном полупречнику закривљености.",
"ui.details_direction": "Смер алата",
"ui.details_draft_caption": "Лица су обојена према углу у односу на смер вађења из калупа.",
"ui.details_edit_seam": "Измени шав",
"ui.details_fixture": "Узорак компоненте — само пробни подаци",
"ui.details_fixture_caption": "Узорак компоненте са илустративним вредностима; ово није резултат модела.",
"ui.details_fixture_problem": "Пример налаза са проблемом",
"ui.details_fixture_readout": "Пример измерене вредности",
"ui.details_flip": "Обрни",
"ui.details_gap": "Размак",
"ui.details_hatch": "Шрафирај пресечена лица",
"ui.details_jump": "Скок закривљености",
"ui.details_key": "Легенда",
"ui.details_offset": "Одмак",
"ui.details_plane": "Раван",
"ui.details_pull": "Смер вађења из калупа",
"ui.details_radius": "Полупречник",
"ui.details_readout": "Очитавање",
"ui.details_samples": "Узорци",
"ui.details_seam": "{body} · Ивица {edge}",
"ui.details_settings": "Подешавања",
"ui.details_sharp_gap": "Оштро или са размаком",
"ui.details_show_all": "Прикажи свих {count}",
"ui.details_smooth": "Глатко",
"ui.details_stripes": "Пруге",
"ui.details_target": "Уклопи геометрију",
"ui.details_worst_seams": "Најгори шавови",
"ui.details_zebra_caption": "Одбијене пруге показују колико се глатко лица спајају.",
"ui.diameter": "Пречник",
"ui.dimension": "Кота",
"ui.direct_interaction": "Директна интеракција",
@@ -4115,6 +4530,7 @@
"ui.edit_in_place_saved_elsewhere": "Део је сачуван у другу датотеку; склоп и даље повезује {name}",
"ui.edit_in_place_wait": "Сачекајте док се оно што ради у дизајну не заврши",
"ui.edit_section_analysis": "Измени анализу пресека",
"ui.edit_sketch_empty": "Нема скица за измену",
"ui.ellipse": "Елипса",
"ui.emboss_wrap_note": "Профили од ортогоналних линија тангентни на један подржани цилиндар омотавају се аутоматски. Изаберите зид да бисте изабрали циљ.",
"ui.end_radius": "Крајњи полупречник",
@@ -4125,12 +4541,15 @@
"ui.equation_explicit": "Експлицитни",
"ui.equation_form": "Облик",
"ui.equation_note": "Променљива је обичан број: sin(t) је узима у радијанима. Резултат без јединице је у јединици дизајна.",
"ui.equation_note_range": "Променљива је дужина, као и њен опсег: комбинујте је са параметрима дужине, а за sin() је поделите дужином. Резултат без јединице је у јединици дизајна.",
"ui.equation_parametric": "Параметарски",
"ui.equation_variable_unit": "Променљива има јединицу опсега",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Еквивалентни полупречник",
"ui.expand": "Прошири",
"ui.explode_needs_two_components": "Растављени приказ раздваја компоненте, па дизајн мора имати две или више њих (Нова компонента, Уметни дизајн или Направи компоненте из тела)",
"ui.exportDxf": "Извези DXF…",
"ui.export_ellipsis_keymap": "Извези…",
"ui.export_keymap_tip": "Тастери, омиљено из оквира S и трака са алатима, као датотека",
@@ -4291,6 +4710,7 @@
"ui.insert_design.saved_file": "Дизајн {name} има несачуване промене, па је уметнута његова сачувана датотека. Сачувајте га, а затим покрените Ажурирај везе да бисте унели промене.",
"ui.insert_design.unsaved": "Несачуване промене",
"ui.inspect": "Прегледај",
"ui.instances": "Инстанце",
"ui.intersect": "Пресек",
"ui.isolate": "Изолуј",
"ui.join": "Споји",
@@ -4299,12 +4719,14 @@
"ui.joints": "Спојеви",
"ui.keyboard_shortcuts": "Пречице на тастатури",
"ui.language": "Језик",
"ui.lasso_select": "Ласо (превуците петљу слободном руком: узима све што је у целини унутра)",
"ui.layout_compact": "Компактно",
"ui.layout_floating": "Плутајуће",
"ui.length": "Дужина",
"ui.length_decimals": "Децимале дужине",
"ui.light": "Светла",
"ui.line": "Линија",
"ui.line_arc_hint": "Тангентни лук: кликните крај лука. Поново се задржите на последњој тачки за линије; десни клик или Esc за завршетак",
"ui.link_copies": "Повежи идентичне копије",
"ui.link_copies_keep": "Задржи",
"ui.link_copies_link": "Повежи",
@@ -4393,6 +4815,7 @@
"ui.part_size_shared": "Поново гради део, замењујући све додате операције. Сви примерци ове компоненте се ажурирају.",
"ui.paste": "Налепи",
"ui.path": "Путања",
"ui.pattern_object_type_tip": "Тела: пуни облици, бирају се у приказу или у стаблу модела; свако се копира у целини.\nОперације: кораци временске траке, као што су екструзија или рупа, бирају се на временској траци или на лицу које су направили; корак се понавља.\nСкица није ни једно ни друго: поновите њене криве помоћу алата Низ или Пресликај у самој скици или је прво екструдирајте.",
"ui.pattern_on_path": "Низ дуж путање",
"ui.perforate_margin_default": "из пречника",
"ui.perforate_pitch": "Корак",
@@ -4419,12 +4842,17 @@
"ui.plugins_skipped": "Фасцикле није било могуће прочитати: {count}.",
"ui.plugins_version": "{version}",
"ui.point": "Тачка",
"ui.point_cloud_add_filter": "Додај филтер…",
"ui.point_cloud_auto_range": "Аутоматски опсег",
"ui.point_cloud_color_by": "Боја према",
"ui.point_cloud_file_colors": "Боје из датотеке",
"ui.point_cloud_filter_by": "Филтрирај према",
"ui.point_cloud_height_high": "Највише",
"ui.point_cloud_height_low": "Најниже",
"ui.point_cloud_legend_filter": "Приказује се и сакрива у легенди изнад",
"ui.point_cloud_no_file_colors": "Датотека нема боје",
"ui.point_cloud_pause": "Паузирај",
"ui.point_cloud_play": "Репродукуј",
"ui.point_cloud_single_color": "Једна боја",
"ui.point_cloud_size": "Величина тачке",
"ui.point_cloud_units": "Јединице датотеке",
@@ -4433,9 +4861,9 @@
"ui.polygon": "Полигон",
"ui.preferences": "Подешавања",
"ui.press_a_key": "притисните тастер…",
"ui.print_face_body_not_sent": "Тело те површине се не шаље: прво га додајте у Тела",
"ui.print_face_cleared": "{body}: површина за штампу уклоњена",
"ui.print_face_input": "Површина за штампу",
"ui.print_face_one_body": "Површина за штампу припада једном телу: пошаљите то тело само да бисте је променили",
"ui.print_face_pick": "Изаберите равну површину пуног тела да постане површина за штампу",
"ui.print_face_set": "{body}: површина за штампу постављена; Пошаљи у слајсер полаже тело на њу",
"ui.profile": "Профил",
@@ -4453,6 +4881,7 @@
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Мерење…",
"ui.properties.measuring_bodies": "Мерење… {done} од {total} тела",
"ui.properties.measuring_failed": "Мерење је заустављено пре завршетка.",
"ui.properties.principal_axis": "Главна оса {number}",
"ui.properties.principal_moments": "Главни моменти",
@@ -4520,6 +4949,7 @@
"ui.selectOther": "Изабери друго…",
"ui.selectTangentChain": "Изабери тангентни ланац",
"ui.select_all": "Изабери све",
"ui.select_components_by_face": "Изабери компоненте (лице бира своју компоненту)",
"ui.selection": "Избор",
"ui.selection_modifiers": "Модификатори избора",
"ui.selection_shift_add_only": "Shift+клик додаје без уклањања",
@@ -4561,6 +4991,11 @@
"ui.sketch_intersect_selection_filter": "Филтер избора",
"ui.sketch_modifiers": "Модификатори скице",
"ui.sketch_project_geometry": "Геометрија",
"ui.sketch_report.all_constrained": "Све је потпуно ограничено.",
"ui.sketch_report.dof": "Степени слободе",
"ui.sketch_report.loose": "Није потпуно ограничено",
"ui.sketch_report.status": "Статус",
"ui.sketch_report.title": "Извештај о скици",
"ui.sketch_scale": "Скалирање скице",
"ui.sketches": "Скице",
"ui.slice": "Пресеци",
@@ -4656,12 +5091,15 @@
"ui.view_angles": "Углови приказа",
"ui.view_angles_convention": "Степени око осе нагоре. Скретање 0° је Поглед спреда, 90° слева, −90° здесна, 180° отпозади; корак 90° је Поглед одозго; позитивно ваљање окреће модел у смеру казаљке на сату.",
"ui.view_angles_help": "Приказује корак, скретање и ваљање приказа у степенима и његову пројекцију испод гизма оријентације. Кликните на очитање да унесете тачне углове.",
"ui.view_angles_lock": "Закључај {axis}",
"ui.view_angles_ortho": "Орто",
"ui.view_angles_persp": "Перс.",
"ui.view_angles_pitch": "Нагиб",
"ui.view_angles_readout": "Нагиб {pitch} · Скретање {yaw} · Ваљање {roll}",
"ui.view_angles_roll": "Ваљање",
"ui.view_angles_unlock": "Откључај {axis}",
"ui.view_angles_yaw": "Скретање",
"ui.view_angles_zero": "Постави {axis} на 0°",
"ui.view_centre": "Центар приказа",
"ui.viewport_status_clear": "Искључи {name}",
"ui.viewport_status_clear_hint": "Искључи {name} · Esc",
@@ -4670,7 +5108,14 @@
"ui.viewport_status_key": "Прикажи легенду за {name}",
"ui.viewport_status_minimum_radius": "Минимални полупречник",
"ui.viewport_status_pairs": "Парова: {count}",
"ui.viewport_status_section_hatch": "{setting} · шрафура",
"ui.viewport_status_section_plane": "Тренутна раван",
"ui.viewport_status_section_tilted": "нагнуто · {offset}",
"ui.viewport_status_stripes": "Пруга: {count}",
"ui.viewport_status_summary_clear": "Искључи све",
"ui.viewport_status_summary_heading": "У овом приказу",
"ui.viewport_status_summary_label": "{name} и још ставки: {count}",
"ui.viewport_status_summary_more": "+{count}",
"ui.viewport_theme_follow": "Прати тему",
"ui.visual_shaded_hidden_edges": "Осенчено са скривеним ивицама",
"ui.visual_shaded_with_edges": "Осенчено са ивицама",
+445 -1
View File
@@ -60,6 +60,7 @@
"BLEND SURFACE": "BLANDYTA",
"BOUNDARY SURFACE": "GRÄNSYTA",
"BROWSER": "WEBBLÄSARE",
"Back to the original order": "Tillbaka till ursprunglig ordning",
"Ball": "Kul",
"Bar": "Stång",
"Base Center": "Bascentrum",
@@ -595,6 +596,8 @@
"Snap to face and edge centres": "Snappa till ytors och kanters centrum",
"SolidCraft cannot submit reports directly. Submit on GitHub; no token is needed in the app.": "SolidCraft kan inte skicka in rapporter direkt. Skicka in dem på GitHub; ingen token behövs i appen.",
"SolidCraft closed before these designs were saved. Their last autosave can be opened.": "SolidCraft stängdes innan dessa konstruktioner sparades. Deras senaste autospar kan öppnas.",
"Sort A to Z": "Sortera A till Ö",
"Sort Z to A": "Sortera Ö till A",
"Spacing 2 must be a non-zero number": "Avstånd 2 måste vara ett tal skilt från noll",
"Spacing must be a non-zero number": "Avståndet måste vara ett tal skilt från noll",
"Specialise": "Specialisera",
@@ -790,6 +793,13 @@
"browser.sketch_attachment_lost": "{name} (fäste förlorat)",
"browser.sketch_editing": "{name} (redigeras)",
"browser.sketch_name": "Skiss{number}",
"browser.sketches_to_parts_already_in_part": "redan i sin del",
"browser.sketches_to_parts_design_body": "på en kropp i själva konstruktionen",
"browser.sketches_to_parts_moved": "Flyttade {moved} skisser till den del de ligger på",
"browser.sketches_to_parts_no_exact_attachment": "på en yta utan exakt fäste",
"browser.sketches_to_parts_not_on_face": "inte på en dels yta",
"browser.sketches_to_parts_part_missing": "deras del finns inte längre",
"browser.sketches_to_parts_result": "Flyttade {moved} skisser till den del de ligger på; {stayed} låg kvar: {why}",
"browser.units": "Enheter: {units}",
"cam.flat": "Plan yta",
"cam.follower": "Följare",
@@ -819,6 +829,7 @@
"cmd.appearance_pick_up": "Plocka upp utseende",
"cmd.appearance_replace": "Ersätt utseende",
"cmd.assembly_bom": "Stycklista",
"cmd.assembly_mass_properties": "Massegenskaper",
"cmd.body.print_face": "Utskriftsyta",
"cmd.body_rename": "Byt namn på kropp",
"cmd.browser_collapse_all": "Fäll ihop alla",
@@ -856,6 +867,7 @@
"cmd.component_move_bodies": "Flytta kroppar till komponent",
"cmd.component_move_features": "Flytta funktioner till komponent",
"cmd.component_move_sketches": "Flytta skisser till komponent",
"cmd.component_move_sketches_to_parts": "Flytta skisser till deras delar",
"cmd.component_paste_from_design": "Klistra in från en annan konstruktion",
"cmd.component_paste_new": "Klistra in ny",
"cmd.component_properties": "Komponentens fysiska egenskaper",
@@ -1191,6 +1203,7 @@
"cmd.sketch_spline_control_point_5": "Spline med kontrollpunkter (grad 5)",
"cmd.sketch_spline_fit_point": "Spline med passpunkter",
"cmd.sketch_spline_insert_point": "Lägg till splinepunkt",
"cmd.sketch_spline_remove_point": "Ta bort splinepunkt",
"cmd.sketch_spline_reverse": "Vänd splinens riktning",
"cmd.sketch_spun_profile": "Roterad profil",
"cmd.sketch_toggle_diameter": "Växla radie / diameter",
@@ -1244,6 +1257,7 @@
"cmd.view.render_browser": "Renderingswebbläsare",
"cmd.view.render_dock": "Flytta renderingspanel",
"cmd.view.render_focus": "Fokusvy för rendering",
"cmd.view.status_details": "Statusdetaljer i vyfönstret",
"cmd.view.status_items": "Statusobjekt i vyfönstret",
"cmd.view_ambient_occlusion": "Omgivningsocklusion",
"cmd.view_angle_readout": "Vyvinklar",
@@ -1282,8 +1296,14 @@
"color.hex_hint": "#rrggbb",
"color.hue": "Nyans",
"color.linear": "Visar färgvärden i linjär rymd 0–1",
"color.recent": "Senaste färger",
"color.recent_help": "Färger som du väljer i ett färgfält visas här",
"color.saturation": "Mättnad (procent)",
"color.saturation_value": "Mättnad och värde",
"color.selected": "Vald färg",
"color.step_down": "Ett steg ned",
"color.step_up": "Ett steg upp",
"color.value": "Värde, ljusstyrkan (procent)",
"config.column_filter_empty": "Inga matchande kolumner",
"contact.components_count": "{count} komponenter",
"contact.enabled_label": "aktiverad",
@@ -1330,6 +1350,7 @@
"dialog.dimension_name": "Mått: {name}",
"dialog.edit_title": "REDIGERA {title}",
"dialog.no_shown_body": "Ingen synlig kropp att ändra: visa en, eller välj Ny kropp",
"dialog.pattern_sketch_not_object": "Välj kroppar eller funktioner: en skiss är ingetdera. Upprepa dess kurvor med skissens egna Mönster eller Spegla, eller extrudera den först.",
"dialog.select": "↖ Markera",
"dialog.selected_count": "↖ {count} markerade",
"dialog.selection_guidance": "Markera en indata för att ändra den. Klicka på markerade objekt för att ta bort dem; Ctrl/Cmd-klick växlar dem också. Granska förhandsvisningen och tryck sedan på OK.",
@@ -1387,21 +1408,168 @@
"from the rule": "från regeln",
"help.apache": "Apache-licens 2.0",
"help.appearance.assign": "Ger de markerade kropparna, ytorna eller komponenterna en färg eller ett materialutseende, utan att ändra deras vikt. Använd det för att skilja delar åt eller förhandsgranska en ytfinish.",
"help.assembly.bom": "Listar delarna i konstruktionen eller i en komponent med deras antal, per artikelnummer, och kan spara listan som CSV eller JSON. Använd den som stycklista för beställning och montering.",
"help.attributions": "Erkännanden (ATTRIBUTION.md)",
"help.build": "Version {version} · commit {commit} · byggd {date}",
"help.canvas.decal": "Placerar en bild på en plan yta på modellen, som ett klistermärke. Använd det för att visa en etikett, en logotyp eller ett tryckt mönster på en del.",
"help.canvas.edit": "Ändrar en duk: dess läge, storlek, vinkel, opacitet, spegling, synlighet eller namn. Använd det för att passa in en referensbild mot skissen som du ritar av den i.",
"help.canvas.insert": "Placerar en PNG- eller JPEG-bild på ett plan eller en yta som en genomskinlig referens. Använd det för att rita av ett foto eller en ritning i en skiss, med bilden skalad till en känd storlek.",
"help.component.break_link": "Kopplar loss en länkad komponent från sin konstruktionsfil och behåller dess kroppar som de är. Använd det när delen inte längre ska följa ändringar i originalfilen.",
"help.component.capture_position": "Behåller lägena för delar som du flyttat för hand, så att de blir delarnas nya utgångsläge. Använd det efter att du dragit delar på plats som ingen led håller fast.",
"help.component.create": "Lägger till en ny, tom komponent i konstruktionen, i den aktiva komponenten om du inte väljer en annan överordnad komponent. Använd det för att ge en ny del av en sammanställning en egen plats för kroppar och skisser.",
"help.component.finish_edit": "Sparar delen du redigerar på plats, återgår till dess sammanställning och uppdaterar sammanställningen utifrån den. Använd det när dina ändringar i den länkade delen är klara.",
"help.component.from_bodies": "Gör varje markerad kropp till en egen komponent, uppkallad efter kroppen. Använd det när en konstruktion byggd av lösa kroppar ska bli en sammanställning vars delar kan fogas samman med leder och flyttas.",
"help.component.insert_design": "Infogar en annan sparad konstruktion som en komponent länkad till sin fil, med dess solida kroppar placerade som de är där. Använd det för att återanvända en del i en sammanställning och få med senare ändringar via Uppdatera länkar.",
"help.component.properties": "Visar volym, massa, masscentrum och tröghetsmoment för en komponent, utifrån kropparnas material. Använd det för att kontrollera vikt och balans hos en sammanställning.",
"help.component.revert_position": "Sätter tillbaka delar som du flyttat för hand där de var och förkastar flyttningar som inte fångats. Använd det för att ångra provflyttningar i en sammanställning.",
"help.component.update_links": "Läser de länkade konstruktionsfilerna igen och ersätter kroppar som har ändrats. Använd det efter att du redigerat en del som den här sammanställningen använder.",
"help.config.configure": "Lägger till parametrar, funktioner, material eller utseenden som kolumner i konfigurationstabellen. Använd det för att bygga varianter av en konstruktion, till exempel storlekar på en del.",
"help.config.preview": "Kontrollerar att en rad i konfigurationstabellen går att bygga om, utan att ändra konstruktionen eller dess historik. Använd det innan du byter till en variant som du är osäker på.",
"help.config.rules": "Visar konfigurationstabellens regler och rader och vilken rad som är aktiv. Använd det för att se hur en konstruktions varianter är uppsatta.",
"help.config.table": "Visar konfigurationstabellen: en rad per variant, en kolumn per parameter eller funktion, och om konstruktionen fortfarande stämmer med den aktiva raden. Använd det för att granska en konstruktions varianter.",
"help.connect_note": "Starta om varje assistent för att läsa in SolidCraft-servern. Varje fil säkerhetskopierades som .bak innan den ändrades.",
"help.connect_title": "Anslut AI-assistenter",
"help.construct.axis.edge": "Skapar en konstruktionsaxel längs en rak kant eller skisslinje. Använd den som axel för en rotation, ett cirkulärt mönster eller en led.",
"help.construct.axis.normal_to_face": "Skapar en konstruktionsaxel genom en punkt, vinkelrät mot en yta. Använd den som en axel som står rakt ut från en yta.",
"help.construct.axis.through_cylinder": "Skapar en konstruktionsaxel genom centrum av en cylinder-, kon- eller torusyta, eller en cirkulär kant. Använd den för att rotera eller mönstra funktioner runt en rund del.",
"help.construct.axis.two_planes": "Skapar en konstruktionsaxel där två plan eller plana ytor möts. Använd den när den axel du behöver är linjen mellan två ytor.",
"help.construct.axis.two_points": "Skapar en konstruktionsaxel genom två punkter, hörn eller skisspunkter. Använd den för en axel som löper mellan två kända lägen.",
"help.construct.plane.along_path": "Skapar ett konstruktionsplan vinkelrätt mot en kant eller kurva, på en position längs den. Använd det för att skissa en profil för en svepning eller ett tvärsnitt av en bana.",
"help.construct.plane.at_angle": "Skapar ett konstruktionsplan som är vridet i en vinkel från ett plan eller en yta, runt en axel eller kant. Använd det för lutande skisser, till exempel ett vinklat fäste.",
"help.construct.plane.midplane": "Skapar ett konstruktionsplan mitt emellan två plan eller plana ytor, eller som delar vinkeln där de möts i en vinkel. Använd det som symmetriplan vid spegling.",
"help.construct.plane.offset": "Skapar ett konstruktionsplan parallellt med ett plan eller en plan yta, på ett avstånd eller genom en punkt. Använd det för att skissa på en bestämd höjd över en yta.",
"help.construct.plane.perpendicular": "Skapar ett konstruktionsplan som innehåller en linje eller kant och står vinkelrätt mot ett plan eller en yta. Använd det för att skissa upprätt på en modell längs en kant.",
"help.construct.plane.tangent": "Skapar ett konstruktionsplan som tangerar en cylinder, kon, sfär eller torus i en punkt. Använd det för att skissa på sidan av en rund del.",
"help.construct.plane.three_points": "Skapar ett konstruktionsplan genom tre punkter. Använd det för ett plan som bestäms av lägen på modellen, till exempel tre hörn.",
"help.construct.plane.two_edges": "Skapar ett konstruktionsplan genom två raka kanter eller linjer som ligger i samma plan. Använd det för ett plan tvärs genom en del, till exempel genom två motstående kanter.",
"help.construct.point.along_path": "Skapar en konstruktionspunkt på en position längs en kant eller kurva. Använd den som referens en bit längs en bana.",
"help.construct.point.center": "Skapar en konstruktionspunkt i centrum av en cirkulär kant, en skisscirkel eller skissbåge, en sfär eller en torus. Använd den som referens för hål, axlar och leder.",
"help.construct.point.edge_plane": "Skapar en konstruktionspunkt där en kant eller linje går genom ett plan eller en plan yta. Använd den för att markera var en bana korsar ett plan.",
"help.construct.point.three_planes": "Skapar en konstruktionspunkt där tre plan eller plana ytor möts. Använd den som hörnreferens, även där modellen saknar hörn.",
"help.construct.point.two_edges": "Skapar en konstruktionspunkt där två kanter eller linjer möts eller kommer närmast varandra. Använd den som referens i ett virtuellt hörn.",
"help.construct.point.vertex": "Skapar en konstruktionspunkt på ett hörn eller en skisspunkt. Använd den som en referens som finns kvar när skissen eller kroppen runt den är dold.",
"help.contact.check": "Listar de par av delar i kontaktuppsättningar som går igenom varandra i sitt nuvarande läge. Använd det för att hitta kollisioner innan du driver leder eller kör en rörelsestudie.",
"help.contact.create": "Grupperar två eller fler delar i en kontaktuppsättning vars kroppar hindras från att gå igenom varandra medan lederna rör sig. Använd det för delar som ska stanna när de rör vid varandra, till exempel en spak mot sitt stopp.",
"help.contact.disable_all": "Stänger av kontakt, så att drivna leder och rörelsestudier inte längre stannar där delar rör vid varandra. Använd det för att kunna flytta delar fritt igen, eller för att hålla en stor sammanställning responsiv.",
"help.contact.edit": "Ändrar en kontaktuppsättning: vilka delar den innehåller, dess namn eller om den är undertryckt; den kan också ta bort uppsättningen. Använd det för att justera vilka delar som hindras från att gå igenom varandra.",
"help.contact.enable_all": "Lägger alla delar i sammanställningen i en enda kontaktuppsättning, så att inga två delar kan gå igenom varandra medan lederna rör sig. Använd det för en snabb kontroll av en hel mekanism.",
"help.contact.enable_sets": "Slår på kontakt för de kontaktuppsättningar du har definierat, så att drivna leder och rörelsestudier stannar där deras delar skulle gå igenom varandra. Använd det för att få tillbaka dina uppsättningar efter att du stängt av kontakt.",
"help.contact.list": "Listar konstruktionens kontaktuppsättningar, delarna i var och en och om kontakt är på. Använd det för att kontrollera hur kontakt är inställd innan du driver sammanställningen.",
"help.document.inspect": "Visar en översikt över konstruktionen: dess komponenter, kroppar, skisser, funktioner och parametrar. Använd det för att orientera dig i en konstruktion som du inte byggt själv.",
"help.document.units": "Ändrar enheterna som konstruktionen visar längder i, till exempel mm eller tum. Geometrin behåller sin storlek; bara visningen och tal utan enhet följer med.",
"help.edit.checkpoint": "Kommer ihåg konstruktionen, den aktiva skissen och ångrahistoriken som de är nu. Använd det innan du provar något riskabelt som du kanske vill gå tillbaka från.",
"help.edit.restore_checkpoint": "Går tillbaka till en kontrollpunkt, inklusive ångrahistoriken. Använd det för att förkasta allt som gjorts sedan kontrollpunkten i ett enda steg.",
"help.explode.create": "Skapar en sprängvy som skjuter delarna bort från sammanställningens centrum, eller enligt de förflyttningar du anger. Använd det för att visa hur en sammanställning sätts ihop, för instruktioner eller presentationer.",
"help.face.delete": "Tar bort de markerade ytorna och låter angränsande ytor sluta hålet, eller lämnar hålet öppet som en yta. Använd det för att ta bort en avrundad kant, ett hål eller ett nav som är i vägen.",
"help.file.insert_mesh": "Lägger till en 3MF-, STL-, OBJ-, PLY- eller glTF-fil i konstruktionen som meshkroppar i en ny komponent. Använd det för att placera en nedladdad eller skannad modell bredvid din konstruktion som referens.",
"help.file.insert_step": "Lägger till en STEP-, IGES-, FreeCAD- eller Rhino-fil i konstruktionen som solida kroppar i en ny komponent; en sammanställnings delar blir nästlade komponenter. Använd det för att hämta in modeller från leverantörer eller andra CAD-program.",
"help.file.save_mesh": "Sparar kroppar som mesh i formatet STL, 3MF eller OBJ, med den jämnhet för krökta ytor som du väljer. Använd det för att förbereda delar för 3D-utskrift eller för program som läser mesh.",
"help.file.send_to_slicer": "Sparar de markerade kropparna som en 3MF-fil och öppnar den i den slicer du väljer. Använd det för att gå från modell till utskrift i ett enda steg.",
"help.font_details": "Gränssnittet använder egui:s inbyggda teckensnitt (Ubuntu Light och Hack, under Ubuntu Font Licence och MIT/Bitstream Vera-licensen; Noto Emoji och emoji-ikonteckensnittet, under OFL och MIT). Skisstext använder Liberation Sans (SIL OFL 1.1). Crafting Apps valfria teckensnittspaket, craft-fonts (BIZ UDPGothic, Shippori Mincho, BIZ UDMincho, Noto Sans CJK SC, Noto Sans Arabic; SIL OFL 1.1), ingår inte i SolidCraft-byggen.",
"help.fonts": "Teckensnitt",
"help.frame.member": "Placerar en profil, till exempel ett rör eller en aluminiumprofil, längs linjerna i en ramskiss, en ramdel per linje. Använd det för att bygga ramar, ställ och svetsade konstruktioner.",
"help.inspect.accessibility": "Färgar de ytor som ett verktyg kan nå från en riktning, och de som det inte kan nå. Använd det för att kontrollera en del för bearbetning eller formsprutning från den sidan.",
"help.inspect.center_of_mass": "Visar masscentrum för kroppar, var för sig och alla tillsammans, vid jämn densitet. Använd det för att kontrollera balans och var en del tippar.",
"help.inspect.colored_components": "Ger varje komponent en egen tillfällig färg, utan att ändra utseenden. Använd det för att snabbt skilja delarna i en sammanställning åt.",
"help.inspect.compare": "Jämför två kroppar och visar var den ena har material som den andra saknar, med volym och avvikelse. Använd det för att kontrollera en ändrad eller importerad del mot originalet.",
"help.inspect.continuity": "Kontrollerar hur jämnt ytor möts längs sina kanter: spalter, knäckar eller krökningshopp, och färgar skarvarna. Använd det för att hitta var ytor inte fogas rent.",
"help.inspect.curvature_comb": "Ritar kammar längs kurvor, kanter eller ytor vars tänder visar hur kraftigt de kröker sig. Använd det för att hitta plana ställen, knäckar och ojämn krökning.",
"help.inspect.curvature_map": "Färgar ytor efter hur kraftigt de kröker sig, rött där radien är liten. Använd det för att hitta snäva ställen och bedöma hur jämn en yta är.",
"help.inspect.draft": "Färgar ytor efter deras släppvinkel mot en dragriktning och markerar de som har för lite. Använd det för att kontrollera en del före formsprutning eller gjutning.",
"help.inspect.environment_map": "Visar modellen med en reflekterande, spegelliknande yta. Använd det för att bedöma ytornas förlopp utifrån hur reflektionerna löper över dem.",
"help.inspect.interference": "Hittar kroppar som överlappar varandra och visar varje överlapp med dess volym. Använd det för att kontrollera om delar i en sammanställning kolliderar.",
"help.inspect.isocurve": "Ritar ytors isoparametriska kurvor, det rutnät som ytan är byggd på. Använd det för att se hur en yta flyter och var den packas ihop.",
"help.inspect.measure": "Mäter längder, avstånd, vinklar, areor och radier mellan det du väljer, eller volym och massa hos kroppar. Använd det för att kontrollera storlekar och frigångar.",
"help.inspect.minimum_radius": "Hittar den minsta krökningsradien hos kurvor, kanter eller ytor och var den finns. Använd det för att kontrollera att ett verktyg eller ett munstycke kan följa formen.",
"help.inspect.section": "Skär upp vyn längs ett plan och skrafferar snittytorna, utan att ändra modellen. Använd det för att titta in i delar och sammanställningar.",
"help.inspect.zebra": "Visar svarta och vita ränder som speglas i modellens ytor. Använd det för att bedöma jämnhet: ränder som bryts eller knäcks vid en kant visar en dålig övergång.",
"help.joint.as_built": "Förbinder två delar där de redan är, utan att flytta någon av dem, och anger hur de fortfarande får röra sig. Använd det för delar som du redan har placerat i sitt slutliga läge.",
"help.joint.cam": "Länkar en roterande kam till en följare, så att följaren glider eller svänger när kamens kontur passerar under den. Använd det för kammar, excentrar och ventilmekanismer.",
"help.joint.create": "Förbinder två delar vid de ledursprung du väljer och flyttar den andra delen på plats; ledtypen anger hur de fortfarande får röra sig. Använd det för att bygga en sammanställning vars delar rör sig som den verkliga mekanismen.",
"help.joint.drive": "Anger en leds vinkel eller avstånd och flyttar delarna med den, inom dess gränser; länkade leder och slutna slingor följer med. Använd det för att kontrollera att en mekanism rör sig som avsett.",
"help.joint.gear": "Länkar två roterande leder med ett utväxlingsförhållande, så att den andra vrids när du driver den ena. Använd det för raka kugghjul och kuggkransar, med förhållandet från delningsradier eller kuggantal.",
"help.joint.limits": "Anger hur långt en led får vridas eller glida, som ett minimum och ett maximum, eller tar bort dessa gränser. Använd det för att hålla ett gångjärn, en glidande led eller en spak inom sitt verkliga rörelseomfång.",
"help.joint.motion_link": "Kopplar ihop två leder med ett förhållande och en förskjutning, så att den andra rör sig när du driver den ena. Använd det för ett fast samband mellan leder som Kugghjul, Kuggstång och drev eller Skruv inte täcker.",
"help.joint.origin": "Placerar ett namngivet ledursprung på en del: i centrum av en yta eller en rund ände, mitt på en kant, i ett hörn eller i en punkt. Använd det för att förbereda var leder fäster; ett som väljs på en yta följer den när delen ändrar storlek.",
"help.joint.rack_pinion": "Länkar ett roterande drev till en glidande kuggstång, så att kuggstången rör sig lika långt som den del av delningscirkeln som drevet rullar över. Använd det för kuggstångsdrifter, styrning och linjärstyrningar.",
"help.joint.reach": "Flyttar en punkt på en del mot ett mål genom att ändra lederna i dess kedja, inom deras gränser. Använd det för att ställa in en mekanism utifrån var dess ände ska vara, till exempel spetsen på en robotarm.",
"help.joint.rigid_group": "Låser de markerade delarna ihop som de är, så att de rör sig som en enhet. Använd det för delar som hör ihop och inte har någon rörelse mellan sig.",
"help.joint.screw": "Länkar vridning och glidning med en stigning, så att varje varv förflyttar delen det avståndet. Använd det för ledskruvar, bultar och gängade spindlar.",
"help.library.apply": "Tillämpar ett material eller utseende från en lokal biblioteksfil på kroppar, ytor eller komponenter. Använd det för att återanvända material som du sparat från en annan konstruktion.",
"help.library.export": "Sparar konstruktionens material och utseenden i en biblioteksfil. Använd det för att dela dem eller återanvända dem i andra konstruktioner.",
"help.library.inspect": "Kontrollerar en biblioteksfil och listar dess material och utseenden, utan att ändra konstruktionen. Använd det för att se vad ett bibliotek innehåller innan du tillämpar det.",
"help.licences": "Licenser",
"help.material.assign": "Anger vad de markerade kropparna är gjorda av, till exempel stål, aluminium eller ABS. Använd det så att massa och vikt stämmer med den verkliga delen.",
"help.material.properties.validate": "Kontrollerar att ett materialkort har konsekventa tal och inga saknade värden. Använd det innan du förlitar dig på data för massa eller styvhet.",
"help.mesh.convert": "Bygger om en meshkropp, till exempel en STL, till en redigerbar solid med plana och cylindriska ytor. Använd det för att ändra importerade mekaniska delar som om de vore en modellerad kropp.",
"help.mit": "MIT-licens",
"help.motion.study": "Anger ledvärden vid steg längs en tidslinje och spelar upp dem som en animation. Använd det för att se en mekanism röra sig genom en sekvens och kontrollera frigångar längs vägen.",
"help.motion.trace": "Spårar den bana som en punkt på en del följer medan en rörelsestudie spelas upp eller en led drivs, och behåller den som en 3D-skisskurva när du bekräftar. Använd det för att se var en mekanism når, eller för att bygga vidare på dess bana.",
"help.notice": "NOTICE",
"help.occurrence.ground": "Fixerar en del på plats, eller frigör den igen, så att leder flyttar de andra delarna runt den. Använd det för ramen eller basen som resten av sammanställningen byggs på.",
"help.occurrence.move": "Flyttar en del i sammanställningen endast längs de frihetsgrader som dess leder tillåter. Markera en yta på delen och dra sedan en tillgänglig pil eller båge.",
"help.parameters.change": "Öppnar tabellen med namngivna värden och uttryck som styr konstruktionens mått. Använd den för att ändra en storlek på ett ställe och låta varje funktion som använder den följa med.",
"help.parameters.export": "Sparar konstruktionens parametrar som CSV eller JSON. Använd det för att redigera dem i ett kalkylblad eller flytta dem till en annan konstruktion.",
"help.parameters.graph": "Visar vilka parametrar och funktioner som använder vilka andra, och eventuella cirkulära beroenden eller fel bland dem. Använd det för att se vad en ändring av en parameter påverkar.",
"help.parameters.import": "Läser in parametrar från CSV eller JSON i konstruktionen, antingen alla eller inga. Använd det för att hämta in värden från ett kalkylblad eller en annan konstruktion.",
"help.parameters.move": "Flyttar en användarparameter före eller efter en annan i listan. Använd det för att hålla relaterade parametrar samlade.",
"help.parts.fastener": "Lägger till en standardiserad skruv, bult, mutter, bricka, stift eller ett lager i den storlek du väljer. Placeras den på ett hål sätts den fast i hålet med en led, så att du inte behöver modellera fästelement själv.",
"help.parts.insert": "Infogar en standarddel i den familj, storlek och längd du väljer. Placeras den på kanten eller väggen av ett hål sätts den fast mot hålet med en stel led.",
"help.parts.library": "Öppnar standarddelarna: skruvar, bultar, muttrar, brickor, stoppskruvar, passtift och lager i standardstorlekar. Använd det för att lägga till en standarddel i stället för att modellera den själv.",
"help.parts.resize": "Ändrar storleken eller längden på en infogad standarddel och bygger om den; dess leder håller den på plats. Använd det när en skruv visar sig vara för lång eller ett hål behöver en annan storlek.",
"help.plastic.assign_rule": "Tilldelar en plastregel till kroppar, så att deras plastfunktioner tar dess släppvinkel och frigång som standardvärden. Använd det för att ställa in en formsprutad del en gång för alla dess funktioner.",
"help.plastic.boss": "Lägger till ett skruvnav på en yta: en pelare med valfritt hål, släppvinkel, rotavrundning och stödjande revben. Använd det för skruvpunkter i formsprutade eller utskrivna höljen.",
"help.plastic.lip": "Lägger till en läpp eller ett matchande spår längs kanten på en urholkad kropp. Använd det så att två höljeshalvor centreras mot varandra och sluter tätt.",
"help.plastic.manage_rules": "Skapar och redigerar plastregler: material, väggtjocklek, radier, frigång och släppvinkel. Använd dem för att hålla funktionerna i en formsprutad del enhetliga.",
"help.plastic.rest": "Lägger till ett stöd på en yta: en rund eller rektangulär platta, massiv eller ihålig, med släppvinkel. Använd det som stöd eller distans i ett formsprutat hölje.",
"help.plastic.snap_fit": "Lägger till en snäppkrok på en yta, med angiven längd, tjocklek och hake. Använd det för att snäppa ihop delar utan skruvar.",
"help.pointcloud.insert": "Infoga en skanning i formatet PLY, XYZ eller PTS som ett punktmoln vid sidan av modellen. Använd den som referens när du bygger en modell från uppmätta data.",
"help.sheet.convert": "Gör en platta eller urholkad kropp med jämn tjocklek till en plåtkropp, med böjar vid de kanter du väljer. Använd det för att göra en befintlig del utvikbar.",
"help.sheet.export_bend_table": "Sparar böjtabellen för en plåtkropp som CSV eller JSON: vinklar, radier och böjlägen i det plana mönstret. Använd det för kantpressen eller verkstaden.",
"help.sheet.export_dxf": "Sparar det plana mönstret som en DXF, med konturer, böjlinjer och valfria böjanteckningar. Använd det för laser-, plasma- eller vattenskärning.",
"help.sheet.flange": "Lägger till en fläns: en grundplåt utifrån en skiss, en vägg längs en öppen skisskontur eller en böjd vägg på plåtkanter. Använd det för att bygga upp plåtdelar.",
"help.sheet.flat_pattern": "Skapar det plana mönstret för en plåtkropp, med dess storlek, utskärningar och böjlinjer. Använd det för att kontrollera plåtämnet innan du skär ut det.",
"help.sheet.fold": "Böjer en plåt längs en skisslinje med en vinkel och en radie. Använd det för att vika en plan plåt efter att du skurit ut funktioner i den.",
"help.sheet.hem": "Viker en plåtkant tillbaka mot sig själv. Använd det för säkra, styva kanter utan vassa grader.",
"help.sheet.manage_rules": "Skapar och redigerar plåtregler: tjocklek, böjradie, K-faktor, avlastningar och spalter. Använd dem för att anpassa efter materialet och verktygen i din verkstad.",
"help.sheet.path_flange": "Lägger till en kedja av flänsar längs en plåtkant, efter en öppen kedja av skisslinjer. Använd det för profiler som en U- eller Z-form i ett enda steg.",
"help.sheet.perforate": "Lägger till ett hålfält över hela den plana plåten, i ett förskjutet eller kvadratiskt mönster. Använd det för ventilation, galler och lättare paneler.",
"help.sheet.refold": "Viker ihop en utvikt plåtkropp igen. Använd det efter att du lagt till funktioner i den plana plåten.",
"help.sheet.unfold": "Viker ut alla böjar på en plåtkropp. Använd det för att lägga till hål eller skärningar som måste korsa en böj, och vik sedan ihop den igen.",
"help.sketch.arc.center_point": "Ritar en cirkelbåge runt en centrumpunkt, från en startpunkt till en slutpunkt. Använd det när bågens centrum är känt, till exempel en radie runt ett hål eller en vridpunkt.",
"help.sketch.arc.tangent": "Ritar en båge som börjar i änden av en linje eller båge och fortsätter tangentiellt mot den. Använd det för att fortsätta en kedja med en mjuk böj i stället för ett hörn.",
"help.sketch.arc.three_point": "Ritar en båge från en startpunkt till en slutpunkt genom en tredje punkt. Använd det när bågen ska gå genom givna punkter i stället för runt ett känt centrum.",
"help.sketch.arc3d": "Ritar en exakt cirkelbåge i rymden genom tre punkter, med 3D-skiss på. Använd det för böjar i banor och styrkurvor som lämnar skissplanet.",
"help.sketch.auto_constrain": "Lägger till de villkor som skissen nästan redan har, till exempel horisontell, parallell eller sammanfallande, och sätter sedan mått på den tills den är fullt definierad. Använd det för att låsa en grovt ritad skiss i ett enda steg.",
"help.sketch.auto_constrain_from_datum": "Fungerar som Autovillkor, men mäter lägena från en datumpunkt som du väljer i stället för origo. Använd det när delen läggs ut från en enda referenspunkt, till exempel ett hörn eller ett hål.",
"help.sketch.blend_curve": "Förbinder ändarna på två kurvor med en mjuk spline som tangerar båda, eller som även är krökningskontinuerlig om du väljer det. Använd det för att överbrygga ett glapp mellan kurvor utan knäck.",
"help.sketch.break": "Delar en kurva i bitar där andra kurvor korsar den, eller vid punkter som du placerar på den. Använd det när en del av en kurva behöver ett eget villkor eller ska tas bort för sig.",
"help.sketch.cancel": "Lämnar skissen och förkastar allt som ändrats sedan den skapades eller öppnades för redigering. Ångra tar tillbaka ändringarna.",
"help.sketch.centerline": "Växlar linjer mellan vanliga linjer och centrumlinjer, axlar som profiler utelämnar. Använd en centrumlinje som axel för en rotation, en spegling eller ett symmetrivillkor.",
"help.sketch.chamfer.distance_angle": "Fasar hörnet mellan två linjer, bestämt av ett avstånd längs den första linjen och en vinkel. Använd det när en ritning anger fasningen som en längd och en vinkel, till exempel 2 mm × 30°.",
"help.sketch.chamfer.equal_distance": "Fasar hörnet mellan två linjer lika långt bakåt längs båda. Använd det för den vanliga 45°-fasningen på en kontur.",
"help.sketch.chamfer.two_distance": "Fasar hörnet mellan två linjer, bestämt av ett separat avstånd längs varje linje. Använd det för fasningar som inte är 45°, angivna som två längder.",
"help.sketch.circle.center": "Ritar en cirkel utifrån dess centrum och diameter. Använd det för hål, nav och andra runda former vars centrum är känt.",
"help.sketch.circle.three_point": "Ritar en cirkel genom tre punkter. Använd det när cirkeln ska gå genom givna punkter, till exempel på befintlig geometri.",
"help.sketch.circle.three_tangent": "Ritar en cirkel som tangerar tre linjer, cirklar eller bågar. Använd det för att passa in en cirkel i utrymmet mellan tre kurvor, till exempel en triangels inskrivna cirkel.",
"help.sketch.circle.two_point": "Ritar en cirkel utifrån diameterns två ändpunkter. Använd det när cirkelns kantpunkter är kända i stället för dess centrum.",
"help.sketch.circle.two_tangent": "Ritar en cirkel med en given storlek som tangerar två linjer, cirklar eller bågar. Använd det för en avrundning med fast radie mellan två kurvor.",
"help.sketch.conic": "Ritar en konisk kurva mellan två ändpunkter, formad av en toppunkt och ett rho-värde. Använd det för mjuka övergångar vars fyllighet du vill finjustera, från platt till nästan ett skarpt hörn.",
"help.sketch.constrainer": "Tillämpar det villkor som en eller två valda kurvor nästan redan har, till exempel horisontell, parallell, tangent eller lika. Använd det för att städa upp en frihandsritad skiss ett samband i taget.",
"help.sketch.constraint.coincident": "Gör att en punkt ligger på en annan punkt, en kurva eller en skissaxel. Använd det för att täppa till glapp i en profil eller för att lägga en punkt på en linje.",
"help.sketch.constraint.collinear": "Gör att två linjer ligger på samma räta linje. Använd det för att rikta in avbrutna kanter, till exempel båda sidor av ett urtag.",
"help.sketch.constraint.concentric": "Ger två cirklar eller bågar samma centrum. Använd det för ringar, försänkningar och axlar med skuldror.",
"help.sketch.constraint.curvature": "Låter två kurvor som möts i en ändpunkt fortsätta med samma krökning (G2). Använd det där en tangentiell övergång inte är tillräckligt jämn, till exempel på synliga ytor.",
"help.sketch.constraint.equal": "Gör linjer lika långa, eller cirklar och bågar med samma radie. Använd det så att ett mått styr flera motsvarande former.",
"help.sketch.constraint.fix": "Fäster punkter eller kurvor där de är, eller lossar dem igen. Använd det för geometri som inte får flytta sig när du drar i eller löser skissen.",
"help.sketch.constraint.horizontal_vertical": "Gör en linje, eller linjen mellan två punkter, horisontell eller vertikal, beroende på vilket som ligger närmast. Använd det för att räta upp en kontur mot skissaxlarna.",
"help.sketch.constraint.midpoint": "Placerar en punkt på mitten av en linje, eller låter två linjers mittpunkter sammanfalla. Använd det för att centrera geometri på en kant.",
"help.sketch.constraint.parallel": "Gör två linjer parallella. Använd det för sidor som ska förbli parallella när andra mått ändras.",
"help.sketch.constraint.perpendicular": "Låter två linjer mötas i rät vinkel. Använd det för räta hörn mellan linjer som inte ligger längs skissaxlarna.",
"help.sketch.constraint.polygon": "Gör en sluten kedja av linjer till en regelbunden polygon: lika långa sidor, med varje hörn på samma cirkel. Använd det för att göra en frihandsritad polygon regelbunden och hålla den så.",
"help.sketch.constraint.symmetry": "Låter två punkter eller kurvor spegla varandra över en linje eller kring en punkt. Använd det för att hålla en profil symmetrisk när du ändrar ena sidan.",
"help.sketch.constraint.tangent": "Låter två kurvor tangera varandra, till exempel en linje och en båge. Använd det för mjuka övergångar utan knäck.",
"help.sketch.construction": "Växlar kurvor mellan normal geometri och konstruktionsgeometri, som profiler utelämnar. Använd konstruktionskurvor som hjälpmedel för layout, referenser och mått.",
"help.sketch.construction_line": "Skapa en oändlig konstruktionslinje genom två punkter. Använd den för att lägga upp en skiss utan att dela profilerna.",
"help.sketch.construction_line.angle": "Skapa en oändlig konstruktionslinje i en vinkel mot skissens X-axel. Välj punkten och skriv vinkeln, eller välj dess riktning.",
"help.sketch.construction_line.bisector": "Välj två skärande raka skisslinjer och välj sedan någon av vinkelbisektriserna. Resultatet följer sina källlinjer.",
@@ -1412,11 +1580,71 @@
"help.sketch.construction_line.tangent_external": "Välj en cirkel eller cirkelbåge, sedan en yttre punkt och en tangentlösning. Förhandsvisningarna visar bara beröringspunkter på den ritade bågen.",
"help.sketch.construction_line.tangent_two": "Välj två cirklar eller cirkelbågar och välj sedan en gemensam tangent i förhandsvisningen. Beröringspunkterna måste ligga på de ritade kurvorna.",
"help.sketch.construction_line.vertical": "Skapa en oändlig vertikal konstruktionslinje genom en punkt. Det vertikala villkoret gäller även efter senare ändringar.",
"help.sketch.copy": "Kopierar de markerade skisskurvorna och skisspunkterna, tillsammans med villkoren och måtten mellan dem. Klistra in dem i den här skissen eller i en annan.",
"help.sketch.create": "Startar en ny 2D-skiss på ett plan eller på en plan yta på modellen. Varje extrudering, rotation och svepning börjar med en skiss.",
"help.sketch.cut": "Kopierar den markerade skissgeometrin och tar bort den från skissen, i ett enda ångrasteg. Klistra in den någon annanstans i den här skissen eller i en annan.",
"help.sketch.dimension": "Lägger till ett styrande mått: en längd, ett avstånd, en vinkel, en radie eller en diameter, beroende på vad du väljer. Skriv ett värde eller ett parameternamn så följer skissen det.",
"help.sketch.edit": "Öppnar en befintlig skiss för redigering. Funktionerna som bygger på den uppdateras när du avslutar skissen.",
"help.sketch.ellipse": "Ritar en ellips utifrån dess centrum, änden av dess huvudaxel och en punkt på dess korta sida. Använd det för ovala öppningar, kammar och andra avlånga runda former.",
"help.sketch.equation_curve": "Ritar en kurva utifrån formler: x(t) och y(t), eller y = f(x), över ett intervall. Formlerna kan använda parametrar och kurvan följer dem: använd den för en sinusvåg, en spiral eller evolventen på en kugge.",
"help.sketch.extend": "Förlänger en linje eller båge till närmaste kurva i dess väg, eller förlänger två kurvor tills de möts. Använd det för att täppa till glapp i en profil efter trimning eller redigering.",
"help.sketch.fillet": "Rundar av hörnet där två linjer eller bågar möts med en båge med en given radie. Flera hörn som rundas av tillsammans delar samma radie.",
"help.sketch.finish": "Lämnar skissen och återgår till modellen. Dess slutna profiler är då redo för Extrudera, Rotation och andra funktioner.",
"help.sketch.finish_auto_constrain": "Kör Autovillkor på skissen och avslutar den sedan. Använd det för att lämna en skiss fullt definierad i ett enda steg.",
"help.sketch.fit_curves_to_section": "Skär en mesh- eller solidkropp med skissplanet och anpassar linjer och bågar till snittet. Använd det för att bygga om en skannad eller importerad del som en redigerbar skiss.",
"help.sketch.include_3d": "Tar in modellkanter, hörn och kurvor från andra skisser i den här skissen som länkade referenser och plattar ut sådana som ligger utanför dess plan på det. Använd det för att bygga vidare på geometri som inte ligger i skissplanet.",
"help.sketch.infinite": "Växlar linjer mellan vanliga linjer och oändliga konstruktionslinjer som löper över hela vyn. Använd dem som layoutreferenser som aldrig tar slut för tidigt.",
"help.sketch.insert_dxf": "Läser in kurvorna från en DXF-ritning i en skiss, skalade, vridna och placerade där du anger. Använd det för att bygga vidare på en 2D-ritning från ett annat program, till exempel en kontur för laserskärning.",
"help.sketch.insert_svg": "Läser in banorna från en SVG-ritning i en skiss, skalade, vridna och placerade där du anger. Använd det för att göra en logotyp eller en vektorkontur till kurvor som du kan extrudera.",
"help.sketch.inspect": "Öppnar en rapport om den öppna skissen: hur många frihetsgrader som återstår och om den är fullt definierad. Använd det för att ta reda på vad som fortfarande rör sig innan du avslutar skissen.",
"help.sketch.intersect": "Lägger till de kurvor eller punkter där kroppar, ytor, kanter eller andra skisser korsar skissplanet. De förblir länkade och följer modellen när den ändras.",
"help.sketch.intersection_curve": "Skapar 3D-kurvor där två kroppar eller ytor möts, länkade till dem. Använd dem som banor eller styrkurvor som följer modellen.",
"help.sketch.isoparametric_curve": "Skapar en 3D-kurva längs en ytas U- eller V-riktning genom en punkt som du väljer, länkad till ytan. Använd den som en bana eller delningslinje som följer ytan.",
"help.sketch.line": "Ritar sammanhängande linjer punkt för punkt, som en öppen kedja eller en sluten kontur. Det är det grundläggande verktyget för de flesta profiler.",
"help.sketch.line.midpoint": "Ritar en linje från dess mittpunkt ut till ena änden, med den andra änden speglad. Använd det för linjer centrerade på en punkt, till exempel en symmetrisk kant.",
"help.sketch.line3d": "Ritar sammanhängande raka linjer mellan punkter i rymden, med 3D-skiss på. Använd det för banor och ramar som lämnar skissplanet.",
"help.sketch.mirror": "Speglar skisskurvor och skisspunkter över en linje eller axel och lägger till symmetrivillkor. Använd det för att rita ena halvan av en symmetrisk profil och komplettera den.",
"help.sketch.move": "Flyttar eller roterar skisskurvor och skisspunkter, eller en kopia av dem. Använd det för att flytta om geometri och samtidigt behålla dess form och villkor.",
"help.sketch.offset": "Skapar en kopia av en kedja av kurvor på ett bestämt avstånd, på ena sidan eller båda. Använd det för väggar, konturer och frigångar; avståndet förblir ett redigerbart mått.",
"help.sketch.paste": "Klistrar in kopierad eller utklippt skissgeometri i den aktiva skissen. Placera den vid en punkt eller flytta den ett visst avstånd.",
"help.sketch.pattern.circular": "Kopierar skissgeometri runt en centrumpunkt, över ett helt varv eller en bestämd vinkel. Använd det för hålcirklar, ekrar och tänder.",
"help.sketch.pattern.rectangular": "Kopierar skissgeometri i rader och kolumner med bestämda avstånd. Använd det för rutnät av hål, spår eller ventilationsöppningar.",
"help.sketch.point": "Placerar en skisspunkt. Använd den som referens för mått, villkor, hålcentrum eller senare funktioner.",
"help.sketch.point3d": "Placerar en punkt i rymden, med 3D-skiss på. Använd den som referens för 3D-kurvor och banor.",
"help.sketch.polygon.circumscribed": "Ritar en regelbunden polygon runt en cirkel, med storleken bestämd från dess centrum till mitten av en sida. Använd det när nyckelvidden är känd, som för en sexkantsmutter.",
"help.sketch.polygon.edge": "Ritar en regelbunden polygon utifrån en sidas två ändpunkter. Använd det när längden och läget på en sida är kända.",
"help.sketch.polygon.inscribed": "Ritar en regelbunden polygon inuti en cirkel, med storleken bestämd från dess centrum till ett hörn. Använd det när måttet över hörnen är känt.",
"help.sketch.project": "Tar in modellkanter, ytor, hörn och kurvor från andra skisser i den här skissen, projicerade på dess plan. De förblir länkade och följer modellen när den ändras.",
"help.sketch.project_to_surface": "Projicerar kurvor från andra skisser längs den här skissens normal på en yta, som länkade 3D-kurvor. Använd det för att lägga en logotyp, delningslinje eller bana på en böjd yta.",
"help.sketch.rectangle.center": "Ritar en rektangel utifrån dess centrum och ett hörn. Använd det för konturer centrerade på en punkt, till exempel origo.",
"help.sketch.rectangle.rounded": "Ritar en rektangel med alla fyra hörn avrundade med samma radie. Använd det för plattor, lock och öppningar med rundade hörn.",
"help.sketch.rectangle.three_point": "Ritar en rektangel utifrån en kant och en punkt på motsatt sida. Använd det för rektanglar som ligger i vinkel mot skissaxlarna.",
"help.sketch.rectangle.two_point": "Ritar en rektangel utifrån två motstående hörn. Använd det för konturer av plattor, block och fickor.",
"help.sketch.scale": "Skalar skisskurvor och skisspunkter med en faktor kring en baspunkt. Använd det för att ändra storlek på en del av en skiss utan att rita om den.",
"help.sketch.slot.arc_center": "Ritar ett böjt spår med en given bredd längs en båge som bestäms av dess centrum, start och slut. Använd det för justerspår runt en vridpunkt.",
"help.sketch.slot.arc_three_point": "Ritar ett böjt spår med en given bredd längs en båge genom tre punkter. Använd det när spårets bana ska gå genom givna punkter.",
"help.sketch.slot.center_point": "Ritar ett rakt spår med en given bredd från dess centrum till centrum av ena ändbågen. Använd det för spår centrerade på en punkt.",
"help.sketch.slot.center_to_center": "Ritar ett rakt spår med en given bredd mellan centrum för dess två ändbågar. Använd det för spår som mäts centrum till centrum, till exempel justerspår för skruvar.",
"help.sketch.slot.overall": "Ritar ett rakt spår med en given bredd från ena yttre änden till den andra. Använd det när spårets totala längd är det som räknas.",
"help.sketch.spline.control_point": "Ritar en kubisk spline som formas av kontrollpunkter som den inte går genom. Använd det för mjuka, flytande kurvor som du formar genom att flytta punkterna.",
"help.sketch.spline.control_point_5": "Ritar en spline av grad 5 som formas av kontrollpunkter. Använd det där kurvor ska mötas med jämnare krökning, till exempel på synliga designytor.",
"help.sketch.spline.fit_point": "Ritar en mjuk spline som går genom varje punkt du placerar, öppen eller sluten. Använd det för att följa en form genom kända punkter.",
"help.sketch.spline3d": "Ritar en mjuk kurva i rymden genom punkter, med 3D-skiss på. Använd det för svepbanor och kabeldragningar som lämnar skissplanet.",
"help.sketch.spun_profile": "Skapar i skissplanet den kontur som en kropp sveper över när den vrids kring en axel. Använd det för att få silhuetten av en svarvad del till en rotation eller en ritning.",
"help.sketch.text": "Skriver text i skissen med valt teckensnitt, vald höjd och vinkel; orden kan följa parametrar. Extrudera eller prägla den för etiketter och märkning.",
"help.sketch.transform": "Skalar, vrider och flyttar skissgeometri kring en centrumpunkt i ett enda steg. Använd det för att flytta om och ändra storlek på en markering samtidigt.",
"help.sketch.trim": "Tar bort den bit av en kurva som ligger mellan de närmaste skärningarna runt den punkt du klickar på. Använd det för att städa upp överlappande linjer till en sluten profil.",
"help.solid.align": "Flyttar de markerade kropparna så att en punkt, yta eller ett plan på dem möter en punkt, yta eller ett plan någon annanstans. Använd det för att placera en del mot en annan utan att mäta förskjutningen.",
"help.solid.boundary_fill": "Skapar solider av de områden som omsluts av överlappande verktygskroppar, och fyller bara de områden du väljer. Använd det för att bygga en form av det utrymme som flera kroppar tillsammans avgränsar.",
"help.solid.bounding_solid": "Skapar ett block som omsluter de markerade kropparna, med valfri marginal. Använd det för att se en dels totala storlek, eller som det ämne den bearbetas ur.",
"help.solid.box": "Skapar ett block utifrån längd, bredd och höjd, från en hörnpunkt eller centrerat på en punkt. Använd det för ett snabbt block, en platshållare eller en kropp att skära funktioner i.",
"help.solid.chamfer": "Fasar de markerade kanterna med en plan fas på det avstånd du anger. Använd det för att bryta skarpa kanter eller underlätta införandet av ett stift eller en skruv.",
"help.solid.coil": "Skapar en spiralformad kropp, till exempel en fjäder, utifrån diameter, antal varv, höjd eller stigning och ett runt eller kvadratiskt tvärsnitt. Använd det för fjädrar, spolar och spiralformade åsar.",
"help.solid.combine": "Sammanfogar kroppar, skär bort dem från en målkropp eller behåller bara den volym de delar, och kan behålla verktygskropparna. Använd det för att slå ihop delar, skära en form med en annan eller hitta var två kroppar överlappar.",
"help.solid.cone": "Skapar en kon utifrån en bascirkel och en höjd, eller en stympad kon när toppen också har en radie. Använd det för avsmalningar, trattar, kägelsänkningar och spetsar.",
"help.solid.cylinder": "Skapar en cylinder utifrån en radie eller diameter och en höjd, stående på en punkt längs en axel. Använd det för axlar, stift, nav och runda ämnen.",
"help.solid.draft": "Lutar de markerade ytorna med den vinkel du anger, mätt från ett neutralt plan. Använd det på gjutna eller formsprutade delar så att de släpper ur formen.",
"help.solid.emboss": "Höjer skissprofiler, till exempel text eller en logotyp, upp ur en yta, eller sänker ned dem i den. Använd det för text, etiketter och markeringar på plana eller runda ytor.",
"help.solid.extrude": "Trycker en skissprofil ut i 3D över ett avstånd och lägger till eller tar bort material. Använd det för att göra en plan kontur till ett block, ett nav eller en ficka.",
"help.solid.fillet": "Avrundar de markerade kanterna med en jämn cirkulär övergång med den radie du anger. Använd det för att mjuka upp skarpa kanter för hållfasthet, bekvämlighet eller utseende.",
"help.solid.hole": "Borrar ett runt hål med den diameter du anger vid en vald punkt på en yta. Använd det för frigångshål till skruvar, stift och andra enkla runda öppningar.",
@@ -1425,20 +1653,60 @@
"help.solid.move": "Flyttar eller roterar de markerade kropparna, eller en kopia av dem, med det avstånd och den vinkel du anger. Använd den för att flytta om en kropp eller skapa en till på ett annat ställe.",
"help.solid.offset_face": "Skjuter de markerade ytorna inåt eller utåt med det avstånd du anger, och ytorna runt omkring följer med. Använd den för att göra en vägg tjockare, en ficka djupare eller ett nav högre utan att redigera skissen.",
"help.solid.pattern.circular": "Upprepar de markerade objekten runt en axel, med det antal och den totala vinkel du anger. Använd den för hålcirklar, ekrar, kylflänsar och tänder.",
"help.solid.pattern.path": "Kopierar funktioner eller kroppar längs en skissbana, med antal och avstånd. Använd det för hål längs en böjd kant eller delar längs en skena.",
"help.solid.pattern.rectangular": "Upprepar de markerade objekten i en eller två riktningar med det antal och det avstånd du anger. Använd den för rader och rutnät av hål, revben, stift eller fötter.",
"help.solid.pipe": "Skapar ett runt rör längs en bana av skisskurvor, massivt eller ihåligt med en väggtjocklek. Använd det för rör, trådar, kablar och skenor.",
"help.solid.press_pull": "Lägger till eller tar bort material när du drar i en yta, eller rundar av kanter när du drar i dem. Använd den för snabba ändringar direkt på modellen.",
"help.solid.remove": "Tar bort de markerade kropparna från konstruktionen från och med den här punkten i tidslinjen; tidigare steg behåller dem. Använd den för att bli av med en hjälpkropp, till exempel ett skärverktyg som du inte längre behöver.",
"help.solid.replace_face": "Flyttar de markerade plana ytorna till ett plan eller till en parallell yta, och kroppen växer eller krymper så att den når fram. Använd den för att få en yta i nivå med en annan del eller ett konstruktionsplan.",
"help.solid.revolve": "Roterar en skissprofil runt en axel och skapar en rund kropp. Använd den för axlar, vred, skålar och alla delar som är runda kring en mittlinje.",
"help.solid.rib": "Lägger till en tunn vägg längs en öppen skisskurva, som fylls ut till kroppens närmaste ytor. Använd det för att stärka väggar och hörn, till exempel i formsprutade eller utskrivna delar.",
"help.solid.scale": "Gör de markerade kropparna större eller mindre med en faktor, lika i alla riktningar eller en per axel. Använd den för att ändra storlek på en importerad form eller för att ta hänsyn till krympning.",
"help.solid.shell": "Urholkar en kropp så att väggar med den tjocklek du anger blir kvar, och kan öppna de ytor du väljer. Använd den för lådor, lock och andra tunnväggiga delar.",
"help.solid.sphere": "Skapar en sfär utifrån en radie eller diameter kring en centrumpunkt. Använd det för kulor, knoppar och rundade ändar.",
"help.solid.split_body": "Delar en kropp i separata kroppar med ett plan, ytan på en annan kropp eller en skisslinje. Använd den för att skapa delar som skrivs ut, bearbetas eller färgas var för sig.",
"help.solid.split_face": "Delar de markerade ytorna längs ett plan, ytan på en annan kropp eller skisskurvor, utan att skära i kroppen. Använd den för att ge en del av en yta egen släppvinkel, färg eller förskjutning.",
"help.solid.sweep": "Drar en skissprofil längs en bana och skapar en kropp. Använd den för rör, skenor, handtag och alla delar med konstant tvärsnitt som följer en kurva.",
"help.solid.thread": "Lägger till en ISO-metrisk gänga på en cylindrisk yta, antingen som en kosmetisk gänga eller skuren in i kroppen. Använd det för bultar, gängade hål och utskrivna skruvdelar.",
"help.solid.torus": "Skapar en ring utifrån en stor radie kring dess axel och en liten radie för dess runda tvärsnitt. Använd det för O-ringar, handtag och runda pärlor.",
"help.solid.web": "Lägger till en tunn vägg längs varje öppen skisskurva, var och en utfylld till kroppens närmaste ytor. Använd det för ett rutnät av stödväggar inuti höljen och brickor.",
"help.surface.blend": "Skapar en yta som överbryggar kanterna på två kroppar, tangent- eller krökningskontinuerlig mot båda. Använd det för att foga samman två ytor mjukt över ett glapp.",
"help.surface.boundary": "Skapar en yta som fyller en slinga av två till fyra skisskurvor, eller ett nät av kurvor. Använd det för friformade paneler som bestäms av sina kanter.",
"help.surface.extend": "Förlänger en yta förbi dess kanter, med ett avstånd eller upp till ett plan eller en yta. Använd det så att ytor överlappar innan du trimmar eller syr ihop dem.",
"help.surface.extrude": "Trycker skisskurvor eller profiler ett visst avstånd till en yta, bara väggar, utan lock. Använd det för tunna väggar och för skär- eller delningsverktyg.",
"help.surface.fair": "Jämnar ut det inre av friformade ytor medan deras kanter ligger kvar. Använd det för att jämna ut bulor och vågiga reflektioner i en yta.",
"help.surface.loft": "Skapar en yta som går genom två eller flera tvärsnitt i ordning, utan lock. Använd det för skal och övergångar mellan olika former.",
"help.surface.match": "Bygger om kanten på en yta så att den möter en annan kropps kant, med matchande tangent eller krökning. Använd det för att sluta en skarv mjukt mellan två ytor.",
"help.surface.offset": "Skapar en kopia av ytor på ett avstånd längs deras normaler, som en ny ytkropp. Använd det för ytskikt, frigångar eller andra sidan av en vägg.",
"help.surface.patch": "Fyller ett skissområde eller en sluten slinga av kanter med en yta, plan eller mjukt böjd. Använd det för att täppa till hål i en ytkropp.",
"help.surface.reverse_normal": "Vänder ytor på en ytkropp, så att deras utsida vetter åt andra hållet. Använd det före förtjockning eller ihopsyning när ytorna pekar inåt.",
"help.surface.revolve": "Vrider skisskurvor eller profiler kring en axel till en yta, utan lock. Använd det för runda skal som lampskärmar, skålar och munstycken.",
"help.surface.ruled": "Skapar ett band av raka linjer ut från en kedja av kanter, längs ytans normal, tangent eller i en vinkel. Använd det för väggar med släppvinkel, utlopp och delningsytor.",
"help.surface.stitch": "Syr ihop ytkroppar längs sina gemensamma kanter, till en solid när de sluter sig. Använd det för att göra en uppsättning ytor till en enda kropp.",
"help.surface.sweep": "Drar skisskurvor eller profiler längs en bana till en yta, utan lock. Använd det för hängrännor, lister och andra tunna former som följer en bana.",
"help.surface.thicken": "Ger en ytkropp en tjocklek och gör den till en solid. Använd det för att göra utskrivbara eller bearbetningsbara delar av ytor.",
"help.surface.trim": "Skär en yta med ett plan, en annan yta eller skisskurvor och behåller den sida du väljer. Använd det för att skära ytor till form före ihopsyning.",
"help.surface.unstitch": "Separerar ytorna på en kropp till egna ytkroppar; en solid faller isär i ytor. Använd det för att arbeta om enskilda ytor på en kropp.",
"help.surface.untrim": "Tar bort hål från en yta, eller återställer dess yttre gräns till ytans naturliga gränser. Använd det för att få tillbaka hela ytan efter en trimning.",
"help.third_party": "Licenser från tredje part",
"help.timeline.compute_all": "Bygger om alla funktioner i tidslinjen från början. Använd den för att uppdatera modellen och se vilka funktioner som misslyckas.",
"help.timeline.delete": "Tar bort de markerade funktionerna från tidslinjen; om du tar bort en skiss tas även funktionerna som bygger på den bort. Använd den för att ta bort ett steg som inte längre behövs.",
"help.timeline.dependents": "Listar de funktioner som skulle tas bort tillsammans med en funktion, och de som skulle misslyckas utan den. Använd det innan du tar bort eller ändrar en funktion.",
"help.timeline.play": "Spela upp de återstående funktionerna en i taget, med en halv sekunds paus efter varje ombyggnad. Kör kommandot igen eller tryck på Escape för att stoppa; Gå till slutet hoppar direkt.",
"help.view.apply": "Vrider vyn till en standardriktning som framifrån, ovanifrån eller iso, eller till en sparad namngiven vy. Använd det för att titta på modellen från en fast vinkel.",
"help.view.delete": "Tar bort en sparad namngiven vy. Modellen ändras inte.",
"help.view.fit": "Zoomar och panorerar så att hela modellen, eller markeringen, fyller vyn. Använd det när modellen har hamnat utom synhåll.",
"help.view.grid": "Visar eller döljer rutnätet i vyfönstret. Använd det som hjälp för storlek och orientering under modellering.",
"help.view.ground_shadow": "Visar eller döljer modellens skugga på marken. Använd det för att lättare bedöma höjd och läge.",
"help.view.home": "Vrider tillbaka vyn till hemvyn och anpassar den efter modellen. Använd det för att snabbt komma tillbaka till en känd vy.",
"help.view.list": "Listar de namngivna vyer som sparats i konstruktionen. Använd det för att hitta en vy som du sparat tidigare.",
"help.view.navigate": "Vrider, panorerar eller zoomar vyn i steg, till exempel ett kvarts varv åt vänster. Använd det för att flytta kameran exakt i stället för att dra.",
"help.view.navigation_bar": "Visar eller döljer navigeringsfältet längst ned i vyfönstret. Dölj det för mer utrymme, visa det för att nå vyverktygen med musen.",
"help.view.rename": "Ger en sparad namngiven vy ett nytt namn. Själva vyn förblir densamma.",
"help.view.save": "Sparar den aktuella kameraplaceringen som en namngiven vy i konstruktionen. Använd det för att komma tillbaka till samma vinkel senare, till exempel för skärmbilder.",
"help.view.spin": "Orbiterar vyn kring modellen kontinuerligt till nästa klick eller tangenttryckning. Använd det för att visa en modell från alla sidor.",
"help.view.tool": "Låser ett kameraverktyg, orbitera, panorera eller zooma, så att dragning med vänster musknapp flyttar vyn tills du stänger av det. Använd det på en styrplatta eller utan mittenmusknapp.",
"help.view.visual_style": "Växlar hur modellen ritas: skuggad med eller utan kanter, trådram, eller med dolda kanter. Använd trådram för att se in i modellen, skuggad för ett rent utseende.",
"history.sketch_under_constrained": "Underbestämd ({count} frihetsgrader)",
"history.sketch_under_constrained_one": "Underbestämd ({count} frihetsgrad)",
"hole_presets.confirm_delete": "Bekräfta borttagning",
@@ -1615,6 +1883,10 @@
"material.selection.mixed": "Olika material",
"measure.at": "Vid",
"measure.item": "Objekt {number}",
"measure.quick_copied": "Mätningen kopierad",
"measure.quick_copy": "Klicka för att kopiera mätningen",
"measure.quick_edges": "{count} kanter",
"measure.quick_faces": "{count} ytor",
"messages.ago_h": "för {n} h sedan",
"messages.ago_min": "för {n} min sedan",
"messages.ago_s": "för {n} s sedan",
@@ -1648,6 +1920,7 @@
"nav.hfss.help": "Alt+vänsterdrag panorerar, Shift+Alt+vänster zoomar, Ctrl+vänsterdrag på tom yta orbiterar",
"nav.inventor.help": "Mittdrag panorerar, Shift+mittdrag orbiterar, Ctrl+mittdrag zoomar, högerdrag orbiterar",
"nav.maya.help": "Alt+vänsterdrag orbiterar, Alt+mittknapp panorerar, Alt+högerknapp zoomar; mittknappsdrag panorerar också",
"nav.nx.help": "Mittdrag orbiterar, Shift+mittdrag panorerar (i NX: mitten + höger), Ctrl+mittdrag zoomar (i NX: mitten + vänster); högerdrag påverkar inte kameran",
"nav.openscad.help": "Vänsterdrag på tomt utrymme orbiterar, Shift+vänsterdrag markerar med ruta, drag på skissgeometri redigerar; höger- eller mittdrag panorerar, Shift+höger- eller Shift+mittdrag zoomar",
"nav.perspective.sketch": "Skissredigering använder ortografisk vy. Slutför skissen för att växla till perspektiv.",
"nav.right_drag_orbits.help": "Av: ett högerdrag påverkar inte kameran och högerknappen öppnar bara snabbmenyn. Om du väljer musmappningen SolidWorks stängs det av.",
@@ -1767,6 +2040,11 @@
"not a move": "inte en förflyttning",
"not a number": "inte ett tal",
"open a sketch first": "öppna en skiss först",
"parameters.apply_live": "Tillämpa varje ändring när du lämnar dess fält",
"parameters.apply_live_tip": "Av: ändringar väntar tills du trycker på Tillämpa eller OK, och sedan byggs konstruktionen om en gång för alla. Avbryt eller Escape förkastar dem.",
"parameters.held": "{count} ändringar väntar på Tillämpa",
"parameters.held_hint": "Redigera uttryck och enheter. Ändringar väntar på Tillämpa eller OK.",
"parameters.held_one": "1 ändring väntar på Tillämpa",
"parts.automatic_name": "automatisk",
"parts.dimension.across_flats": "Nyckelvidd",
"parts.dimension.bore": "Håldiameter",
@@ -1789,6 +2067,8 @@
"parts.family.set_screw": "Stoppskruv med insex, plan ände",
"parts.family.socket_head_cap_screw": "Cylinderskruv med insex",
"parts.family.washer": "Plan bricka",
"parts.holes": "Hål (valfritt)",
"parts.placement_hint": "välj ett eller flera hål för att sätta en del i varje, eller OK placerar den i origo",
"pattern.alignment_2": "Justering 2",
"pattern.alignment_hint": "Antalet inkluderar originalet. Centrera balanserar kopiorna; Vänd väljer den extra sidan för jämna totaler.",
"pattern.direction_1": "Riktning 1",
@@ -1862,6 +2142,8 @@
"prefs.ctrl_cmd": "Ctrl / Cmd",
"prefs.curved_surfaces": "Krökta ytor",
"prefs.curves": "Krökta ytor",
"prefs.dark_parts_shading": "Behåll formen på mörka delar",
"prefs.dark_parts_shading_help": "Skuggar vyn i linjärt ljus med en mjuk himmelsfyllnad, så att mörka ytor behåller en gradient i stället för att bli svarta",
"prefs.dead_zone_note": "Det skrafferade bandet är dödzonen: rörelse inom det ignoreras.",
"prefs.default": "standard",
"prefs.design": "Standardvärden för konstruktioner",
@@ -1876,6 +2158,8 @@
"prefs.edges": "Kanter och skuggning",
"prefs.extend": "Förläng",
"prefs.extra_navigation": "Ctrl+vänsterdrag på ett tomt område orbiterar; håll Blanksteg för att panorera.",
"prefs.extrude_view_isometric": "Vrid vyn till isometrisk när Extrudera öppnas",
"prefs.extrude_view_return": "Gå tillbaka till den tidigare vyn när Extrudera stängs",
"prefs.follows_os": "Följer operativsystemet",
"prefs.font": "Teckensnitt",
"prefs.font_fallback": "Tecken som det valda teckensnittet saknar ersätts av det inbyggda teckensnittet, så ingen etikett visar en tom ruta.",
@@ -1891,6 +2175,7 @@
"prefs.graphics_card_auto": "Automatisk",
"prefs.graphics_card_missing": "Det sparade grafikkortet är inte tillgängligt; Automatisk används.",
"prefs.graphics_card_restart": "Träder i kraft efter att SolidCraft startats om. WGPU_ADAPTER_NAME åsidosätter detta val.",
"prefs.graphics_card_unused": "Det sparade grafikkortet användes inte för det här fönstret. Kortet som används visas i Hjälp › Om och i statusfältet. Prova Automatisk, eller ange WGPU_ADAPTER_NAME som en unik del av kortets namn.",
"prefs.graphics_note": "Avväg hastighet mot jämnhet. Varje val visar sin effekt på ett exempel.",
"prefs.graphics_presets_note": "Förinställningar anger valen nedan tillsammans.",
"prefs.hide_constraint_glyphs_zoomed_out": "Dölj villkorssymboler vid utzoomning",
@@ -1905,6 +2190,8 @@
"prefs.history_sketches_note": "Med Skisser inställt på Under sin funktion listar historiken till vänster varje skiss en nivå in, under den första funktionen som byggts från den, så snart den är bred nog för namn. Tidslinjen längst ned behåller alltid skapandeordningen.",
"prefs.history_sketches_under_feature": "Under sin funktion",
"prefs.hold_stop_snapping": "Håll nedtryckt för att stoppa snappning",
"prefs.home_fit_size": "Storlek för Hem och Anpassa",
"prefs.home_fit_size_note": "Hur mycket av vyn modellen fyller när Hem, Anpassa, en öppnad konstruktion eller en vyändring i navigatorn ramar in den, oavsett om inställningen nedan är på eller inte. 100 %: fyller vyn mellan panelerna, kompassen och navigeringsfältet.",
"prefs.icons_only": "Endast ikoner",
"prefs.imported_file": "Importerad fil",
"prefs.in_browser": "I webbläsaren",
@@ -1913,13 +2200,20 @@
"prefs.interface_language": "Gränssnittsspråk",
"prefs.interface_note": "Hur SolidCraft ser ut och var dess delar placeras.",
"prefs.interval_minutes": "{n} min",
"prefs.invert_navigator_arrows": "Invertera rotationspilarna på vykuben",
"prefs.invert_navigator_arrows_note": "Pilarna runt kuben orbiterar kameran åt det håll de pekar, som i Fusion och Inventor: pilen till vänster pekar åt höger och svänger kameran åt höger. Av: en pil roterar kuben mot den sida den sitter på, så den vänstra pilen svänger kameran åt vänster. De böjda rullningspilarna påverkas inte.",
"prefs.keep_work_on_tab_switch": "Behåll dialoger och verktyg öppna när du byter konstruktion",
"prefs.keep_work_on_tab_switch_note": "Varje konstruktionsflik behåller sin öppna dialog eller sitt öppna verktyg, med det du har valt och skrivit i den, och sin flik i menyfliksområdet. De finns kvar när du kommer tillbaka till konstruktionen. Av: att byta konstruktion avbryter dem och visar fliken Modell.",
"prefs.labels": "Etiketter",
"prefs.language_system": "System",
"prefs.layout": "Layout",
"prefs.layout_note": "Kompakt dockar paneler mot fönsterkanterna. Genomskinlig webbläsare finns i Flytande. Ändra assistentens sida på sidan Assistent.",
"prefs.left": "Vänster",
"prefs.left_click": "Vänsterklick",
"prefs.line_drag_draws_one": "Tryck och dra ritar en linje",
"prefs.line_drag_draws_one_note": "I verktyget Linje ritar ett tryck, ett drag och ett släpp en linje från där du tryckte till där du släppte, och där slutar den. Klick ritar fortfarande en kedja. Av: ett drag placerar en punkt där det släpps, som ett klick gör.",
"prefs.line_hover_tangent_arc": "Vila på en linjes sista punkt för att växla till en tangentbåge",
"prefs.line_hover_tangent_arc_note": "I verktyget Linje: när ett segment har ritats, flytta pekaren bort från kedjans sista punkt, kom tillbaka och håll pekaren stilla på den: nästa klick avslutar en tangentbåge, och samma gest går tillbaka till linjer. Av: att vila där gör ingenting.",
"prefs.linked_designs": "Länkade konstruktioner",
"prefs.live_input": "Liveinmatning",
"prefs.live_preview": "Liveförhandsvisning",
@@ -1943,6 +2237,8 @@
"prefs.mouse_mapping": "Musmappning",
"prefs.navigation": "Navigering",
"prefs.navigation_note": "Hur musen, styrplattan och 3D-musen flyttar vyn.",
"prefs.navigator_fit": "Anpassa modellen efter en vyändring i navigatorn",
"prefs.navigator_fit_note": "En yta, ett hörn eller en pil på vykuben, eller en axel på orienteringsgizmot, tittar också mot modellens mitt från det enda avstånd som får den att rymmas från alla sidor (dess begränsningssfär). Hem använder samma zoom och centrum medan detta är på, så vyer som väljs efteråt bara vrids. Av: vyn vrids på stället och behåller sitt mål och sin zoom.",
"prefs.network_host_remove": "Ta bort",
"prefs.network_locations": "Tillåt nätverksplatser i konstruktioner",
"prefs.network_locations_note": "Av: en konstruktions länkade filer på en annan dator (\\\\server\\share) öppnas bara från de servrar som listas här, eller efter att du tillåtit en när du tillfrågas.",
@@ -1955,6 +2251,8 @@
"prefs.origin_plane_names": "Namn på origoplan",
"prefs.origin_plane_names_note": "Namn som visas i webbläsaren, dialoger och listor. {top} är XY, {front} är XZ och {right} är YZ, med Z uppåt. Kommandon, skript och sparade konstruktioner behåller XY, XZ och YZ.",
"prefs.overall_speed": "Total hastighet",
"prefs.parameter_list_rows": "Rader i parameterlistan",
"prefs.parameter_list_rows_tip": "Nedåtpil i ett tomt värdefält listar parametrarna, favoriter först, upp till så här många. Färre håller listan lätt i en stor konstruktion.",
"prefs.persistent_ribbon_pressed": "Framhäv aktiva kommandon i menyfliksområdet",
"prefs.persistent_ribbon_pressed_help": "Framhäv kommandon i menyfliksområdet medan deras effekter är aktiva. Stäng av för att behålla det tidigare neutrala utseendet och kommandohjälpen.",
"prefs.perspective_fov": "Synfält",
@@ -1984,9 +2282,13 @@
"prefs.quality_fastest": "snabbast",
"prefs.quality_slowest": "långsammast",
"prefs.quality_smoother": "jämnare",
"prefs.quick_measure": "Snabbmätning i vyns hörn",
"prefs.quick_measure_note": "Markeringens storlek i vyns nedre högra hörn: en kants längd, eller Ø och R för en rund kant, en ytas area, en punkts läge, avstånd och vinkel mellan två objekt, summan för flera kanter eller ytor. Ett klick kopierar värdet.",
"prefs.render_previous_geometry_budget": "Använd tidigare geometribudget för renderingsförhandsvisning",
"prefs.render_previous_geometry_budget_help": "Återställ den tidigare fasta geometrigränsen (512 MiB på 64-bitars dator, 128 MiB i övrigt) i stället för den enhetsbaserade budgeten.",
"prefs.reports_saved": "{n} sparade",
"prefs.ribbon_click_ends_tool": "Ett klick på knappen för det pågående verktyget avslutar det",
"prefs.ribbon_click_ends_tool_note": "Ett klick på den tända knappen i menyfliksområdet för skissverktyget som används avslutar verktyget, så att klick i vyn markerar igen. Av: klicket startar verktyget igen.",
"prefs.ribbon_reveal": "Visa sökresultat i menyfliksområdet",
"prefs.ribbon_reveal_note": "När du håller pekaren över ett resultat i Sök kommandon visas var kommandot finns i menyfliksområdet: dess flik, dess knapp eller dess rad i en panels rullgardinsmeny. Ett kommando som startas från sökningen blinkar där, och ett pågående kommando från en rullgardinsmeny markerar sin panel.",
"prefs.right_click": "Högerklick",
@@ -2016,6 +2318,8 @@
"prefs.sketch_exit_view.previous": "Återgå till föregående vy",
"prefs.sketch_exit_view.unless_rotated": "Återgå om inte roterad",
"prefs.sketch_exit_view_note": "Dit vyn går efter Slutför skiss, Avbryt eller en dubbel Esc-tryckning.",
"prefs.sketch_face_activates_part": "Att skissa på en dels yta gör delen aktiv",
"prefs.sketch_face_activates_part_note": "En skiss som påbörjas på en yta på en annan komponents kropp aktiverar först den komponenten, så att skissen tillhör den och stannar hos den delen i webbläsaren. Delen förblir aktiv efteråt. Av: skissen tillhör den aktiva komponenten.",
"prefs.sketch_open_look_at": "Vrid vyn mot en skiss när den öppnas",
"prefs.sketch_open_look_at_note": "Av: att skapa eller redigera en skiss lämnar vyn som den är. Titta på riktar vyn mot skissen när du vill.",
"prefs.sketch_recent_snap": "Snappa automatiskt till senaste centrum och mittpunkter",
@@ -2029,6 +2333,8 @@
"prefs.sketch_tab_always_note": "Fliken Skiss ligger kvar i menyfliksområdet, direkt efter Modell, medan ingen skiss är öppen. Dess ritverktyg startar då en skiss på det markerade planet eller den markerade ytan, eller på det plan du väljer härnäst, med verktyget redo i den.",
"prefs.sketch_tracking_guides": "Hjälplinjer för justering mot centrum och mittpunkt",
"prefs.sketch_tracking_guides_note": "Håll muspekaren över en cirkels centrum eller en rak kants mittpunkt och flytta sedan vågrätt eller lodrätt för att visa en tillfällig prickad hjälplinje.",
"prefs.sketch_tracking_points": "Hjälplinjer för justering från ändpunkter och hörn under ritning",
"prefs.sketch_tracking_points_note": "När ett ritverktyg väntar på en punkt och du pekar på änden av en linje eller båge, ett rektangelhörn eller en fri punkt visas samma tillfälliga prickade hjälplinje som för ett centrum eller en mittpunkt. Av: bara centrum och mittpunkter.",
"prefs.sketching": "Skissning",
"prefs.snap_drawing_note": "När du ritar eller drar en skisspunkt.",
"prefs.source": "Källa",
@@ -2045,6 +2351,24 @@
"prefs.status_error": "Fel",
"prefs.status_selected": "Markerad",
"prefs.status_warning": "Varning",
"prefs.structure.appearance": "Utseende",
"prefs.structure.appearance_note": "Färger, text och tillgänglighet.",
"prefs.structure.in_profile": "I profilen",
"prefs.structure.layout": "Layout",
"prefs.structure.layout_note": "Var fönstrets delar sitter.",
"prefs.structure.look": "Stil",
"prefs.structure.measure_pointer": "Mätning och pekare",
"prefs.structure.mouse3d": "3D-mus",
"prefs.structure.mouse3d_note": "SpaceMouse och SpaceNavigator.",
"prefs.structure.navigation_note": "Mus och styrplatta. 3D-musen har en egen sida.",
"prefs.structure.profile": "Profil",
"prefs.structure.profile_edited": "Ändrad sedan den sparades",
"prefs.structure.profile_hover": "Sparad i inställningsprofiler",
"prefs.structure.scale_percent": "{percent}%",
"prefs.structure.sketch": "Skiss",
"prefs.structure.tools": "Verktyg",
"prefs.structure.tools_note": "Hur modelleringsverktygen beter sig.",
"prefs.structure.work": "Arbete",
"prefs.supersampling_brief": "Ritar vyn större och filtrerar ned den: mycket skarp, och tyngre.",
"prefs.tab_accent_note": "Accentfärgen följer den aktiva fliken",
"prefs.theme_file": "temafil",
@@ -2056,6 +2380,16 @@
"prefs.theme_follow_off": "Av",
"prefs.theme_follow_stop": "Sluta följa",
"prefs.theme_import_hint": "Klicka för att välja en temafil, släpp en här eller tryck Ctrl+V (Cmd+V på Mac) med ett tema kopierat",
"prefs.theme_option_opacity": "Opacitet",
"prefs.theme_option_opacity_help": "Justera opaciteten för flytande paneler. En lägstanivå för läsbarhet skyddar text över färgerna i vyfönstret.",
"prefs.theme_option_tab_colours": "Flikfärger",
"prefs.theme_option_tab_colours_help": "Använd det här temats panel- och vyfönsterfärger för varje flik i menyfliksområdet.",
"prefs.theme_option_tab_fade_ms": "Flikövergång",
"prefs.theme_option_tab_fade_ms_help": "Tona över panel- och vyfönsterfärger när du byter flik. Noll byter direkt.",
"prefs.theme_options_badge": "Alternativ",
"prefs.theme_options_more": "Fler · {count}",
"prefs.theme_options_reset": "Återställ",
"prefs.theme_options_unavailable": "Inte tillgängligt på den här enheten",
"prefs.theme_paste": "Klistra in tema",
"prefs.theme_paste_none": "Urklippet innehåller inget SolidCraft-tema",
"prefs.timeline_half_hour": "−30 min",
@@ -2077,6 +2411,8 @@
"prefs.under_cursor": "Under markören",
"prefs.units_precision": "Enheter och precision",
"prefs.updates": "Uppdateringar",
"prefs.value_boxes_in_view": "Visa värden bredvid sina handtag i vyn",
"prefs.value_boxes_in_view_tip": "Ett kommandos värde (Avstånd, Radie…) i en ruta bredvid dess handtag, över modellen. Av: du skriver det i kommandofönstret, som tar över tangentbordet efter ett val, och ingenting täcker modellen.",
"prefs.view": "Vybeteende",
"prefs.view_confirm_corner": "OK och Avbryt i vyns hörn",
"prefs.view_confirm_corner_note": "Medan en dialog eller en skiss är öppen gör en bock och ett kryss uppe till höger i vyn samma sak som dialogens OK och Avbryt, eller slutför och avbryter skissen. Vynavigatorn flyttas ned under dem.",
@@ -2086,6 +2422,12 @@
"prefs.viewport_background": "Bakgrund",
"prefs.viewport_background_colour": "Färg",
"prefs.viewport_background_theme": "Temats gradient",
"prefs.viewport_section_status": "Visa sektionsstatus i vyfönstret",
"prefs.viewport_section_status_help": "Visa sektionsinställningen i vyfönstret. Escape och den aktiva knappen i menyfliksområdet stänger av den. Inaktivera för att behålla de tidigare sektionskontrollerna.",
"prefs.viewport_status_details": "Direkta detaljer i vyfönstret",
"prefs.viewport_status_details_help": "Redigera aktiva analys- och sektionsinställningar i vanliga detaljkort. Inaktivera för att återställa skrivskyddade teckenförklaringar för analys och dialogrutan Sektion.",
"prefs.viewport_status_summary": "Vik ihop statusobjekt i vyfönstret",
"prefs.viewport_status_summary_help": "Vik ihop tre eller fler statusobjekt i vyfönstret till en enda sammanfattningsbricka. Inaktivera för att behålla varje objekt i hela raden.",
"prefs.wheel": "Hjul",
"prefs.wheel_trackpad": "Hjul och styrplatta",
"prefs.workspace": "Arbetsyta",
@@ -2964,7 +3306,9 @@
"render.output_ready": "Redo att rendera",
"render.output_run_check": "Kör kontroll",
"render.output_size_limit": "{method}: upp till {dimension} px per sida och {pixels} pixlar. Största storlek som får plats: {width} × {height}.",
"render.output_size_method_profile": "För att rendera {width} × {height}, välj {method} med CPU-resursprofilen {profile}, eller en mindre storlek.",
"render.output_size_ok": "Storleken är OK · {width} × {height} px",
"render.output_size_profile": "För att rendera {width} × {height}, välj CPU-resursprofilen {profile}, eller en mindre storlek.",
"render.output_swap_orientation": "Byt bredd och höjd",
"render.output_tools_inspector": "Redigera storlek och format i inspektören Utdata.",
"render.output_view_image": "Visa bild",
@@ -3177,6 +3521,7 @@
"render.size_custom": "Egen…",
"render.size_full_hd": "Full HD",
"render.size_hd": "HD",
"render.size_needs_profile": "{size} · kräver {profile}",
"render.size_presets": "Storleksförinställningar",
"render.size_presets_pending": "Kommer med utdataredigeraren",
"render.size_preview": "Förhandsvisning",
@@ -3464,6 +3809,24 @@
"sheet.flange_type_contour": "Kontur",
"sheet.flange_type_edge": "Kant",
"sheet.no_body": "det finns ingen plåtkropp: starta en med Fläns > Bas, eller gör om en platta till plåt med Konvertera till plåt (markera dess stora plana yta)",
"sheet.personal_rules.confirm_delete": "Bekräfta borttagning",
"sheet.personal_rules.delete": "Ta bort",
"sheet.personal_rules.delete_prompt": "Ta bort den här personliga regeln? Regler som redan finns i konstruktioner ändras inte.",
"sheet.personal_rules.full": "Det personliga biblioteket innehåller redan 64 regler.",
"sheet.personal_rules.invalid_name": "Ange ett kort namn utan radbrytningar eller styrtecken.",
"sheet.personal_rules.invalid_values": "Fyll i regelns värden: varje värde måste gå att räkna ut i den här konstruktionen, med en positiv tjocklek och en K-faktor från 0 till 1.",
"sheet.personal_rules.missing": "Den valda personliga regeln finns inte längre.",
"sheet.personal_rules.name": "Regelnamn",
"sheet.personal_rules.name_exists": "Det finns redan en personlig regel med det här namnet. Använd ett annat namn.",
"sheet.personal_rules.name_hint": "Ett unikt namn",
"sheet.personal_rules.overwrite": "Spara ändringar i vald personlig regel",
"sheet.personal_rules.rename": "Byt namn",
"sheet.personal_rules.rule": "Personlig regel",
"sheet.personal_rules.save": "Spara som ny",
"sheet.personal_rules.scope": "Sparas i din profil för alla konstruktioner.",
"sheet.personal_rules.select": "Välj en regel",
"sheet.personal_rules.title": "Personliga regler",
"sheet.personal_rules.unsupported": "Den här regeln har värden som den här versionen inte kan använda.",
"shortcut.json_error": "parametrar måste vara JSON: {error}",
"shortcut.no_command": "inget kommando `{id}`; texten före JSON måste vara ett kommando-id",
"shortcut.pin": "Fäst överst i S-rutan",
@@ -3500,8 +3863,10 @@
"sketch_text.align_right": "Höger",
"sketch_text.bold": "Fet",
"sketch_text.builtin_font": "{family} (inbyggd)",
"sketch_text.formula": "Börja med = för att bygga orden av parametrar: ='W' + number(Width)",
"sketch_text.italic": "Kursiv",
"sketch_text.loading_fonts": "Söker efter installerade teckensnitt…",
"sketch_text.no_bold": "Det inbyggda teckensnittet har ingen fet variant: välj ett installerat teckensnitt",
"sketch_text.on_path": "Texten följer sin bana: kurvan placerar den",
"sketch_text.path_clear": "Ta bort texten från dess kurva",
"sketch_text.path_hint": "En kurva i skissen som texten följer: klicka här och sedan på kurvan",
@@ -3640,6 +4005,8 @@
"ui.3d_mouse_section": "3D-mus",
"ui.3d_mouse_show_in_view": "Visa 3D-musen i 3D-vyn",
"ui.3d_mouse_show_in_view_tip": "En bild av din 3D-mus i nedre vänstra hörnet som rör sig när du rör den.",
"ui.3d_mouse_sketch_orbit": "Vrid skisser med 3D-musen",
"ui.3d_mouse_sketch_orbit_tip": "3D-musen vrider också vyn medan en skiss är öppen och ses rakt framifrån, så som musen kan. Av: den panorerar och zoomar skissen tills du lutar vyn.",
"ui.3d_mouse_skip": "Min enhet kan inte göra det här",
"ui.3d_mouse_skip_tip": "Hoppar över den här rörelsen i båda riktningarna, och kalibreringen utelämnar den.",
"ui.3d_mouse_speed": "3D-musens hastighet",
@@ -3708,6 +4075,7 @@
"ui.agent_chat_auth_terminal": "Kör detta i en terminal och tryck sedan på Anslut igen:",
"ui.agent_chat_auth_title": "Logga in hos agenten",
"ui.agent_chat_cancel": "Avbryt",
"ui.agent_chat_cannot_start": "Installerad, men den startar inte: {error}",
"ui.agent_chat_changes": "Ändringar: {n}, ett ångrasteg",
"ui.agent_chat_changes_n": "{n} ändringar",
"ui.agent_chat_changes_of": "{n}/{limit} ändringar",
@@ -3800,9 +4168,12 @@
"ui.agent_chat_queued_stopped": "Köad (stoppad, ej skickad)",
"ui.agent_chat_refresh": "Uppdatera",
"ui.agent_chat_refused": "Inte tillåtet för agenten: {reason}",
"ui.agent_chat_reinstall": "{agent} är installerad ({program}), men startade inte när SolidCraft kontrollerade den: {error}\nInstallationen kan vara ofullständig, eller gjord för en annan typ av dator. Installera den igen med `{install}`, kontrollera att den skriver ut sin version i en terminal och tryck sedan på Uppdatera.",
"ui.agent_chat_remove": "Ta bort från kön",
"ui.agent_chat_remove_file": "Ta bort det från det här meddelandet",
"ui.agent_chat_remove_imported": "Ta bort det från det här meddelandet; delen finns kvar i konstruktionen (Ångra tar bort den)",
"ui.agent_chat_reply_cut_off": "Svaret nådde sin längdgräns innan det var klart och kan därför vara ofullständigt. Be agenten fortsätta, eller be om ett kortare svar.",
"ui.agent_chat_reply_declined": "Modellen avböjde att svara på det här meddelandet.",
"ui.agent_chat_retry": "Försök igen",
"ui.agent_chat_right": "Höger",
"ui.agent_chat_save": "Spara",
@@ -3861,12 +4232,17 @@
"ui.ai_copy_suffix": "kopia",
"ui.ai_custom_url": "Egen URL",
"ui.ai_default": "Standard",
"ui.ai_edit": "Redigera",
"ui.ai_edit_agent_title": "Redigera agent",
"ui.ai_edit_gone": "Den här agenten togs bort, så det finns inget att spara.",
"ui.ai_edit_tip": "Ändra den här agentens namn, kommando eller slutpunkt. En sparad nyckel förblir dold.",
"ui.ai_http_busy": "slutpunkten är upptagen eller över sin gräns; försök igen senare",
"ui.ai_http_key": "slutpunkten nekade nyckeln: kontrollera den under Inställningar > AI",
"ui.ai_http_not_found": "ingen sådan slutpunkt eller modell: kontrollera bas-URL:en och modellnamnet",
"ui.ai_http_too_large": "konversationen är för stor för den här slutpunkten; starta en ny chatt",
"ui.ai_key": "API-nyckel",
"ui.ai_key_hint": "valfritt; lagras i systemets nyckelring",
"ui.ai_key_keep_hint": "lämna tomt för att behålla den sparade nyckeln",
"ui.ai_key_needs_https": "En nyckel skickas endast via HTTPS, eller till den här datorn.",
"ui.ai_key_note": "Lagras i systemets nyckelring, aldrig i SolidCrafts inställningar. Lämna tomt för en lokal server.",
"ui.ai_keychain_error": "Systemets nyckelring nekade: {error}",
@@ -3893,11 +4269,15 @@
"ui.ai_permissions": "Behörigheter",
"ui.ai_preset": "Förinställning",
"ui.ai_protocol": "Protokoll",
"ui.ai_reasoning_effort": "Resonemangsnivå",
"ui.ai_reasoning_effort_field_hint": "tomt = leverantörens standard",
"ui.ai_reasoning_effort_hint": "Valfritt. Skickas till slutpunkten som `reasoning_effort`; vilka värden som accepteras skiljer sig mellan leverantörer (till exempel `low`, `high` eller `max`). Ett värde som du anger här ersätts aldrig av SolidCraft. Lämna fältet tomt för att inte skicka något och behålla leverantörens standard.",
"ui.ai_remove": "Ta bort",
"ui.ai_request_timed_out": "Modellen tog längre tid än {seconds} s. Du kan öka tidsgränsen för begäran för den här slutpunkten i Inställningar › Assistent.",
"ui.ai_request_timeout": "Tidsgräns för begäran",
"ui.ai_request_timeout_hint": "Hur lång tid en modellbegäran till den här slutpunkten får ta, från 30 s till en timme. Öka den för en långsam lokal modell.",
"ui.ai_reset": "Återställ",
"ui.ai_save": "Spara",
"ui.ai_settings": "AI-inställningar…",
"ui.ai_show_features": "Visa AI-funktioner",
"ui.ai_show_features_note": "Agentchatten: en panel där en kodningsagent du redan använder, eller en modellslutpunkt du väljer, arbetar med den öppna konstruktionen. Av: ingen AI-knapp, genväg, menypost eller panel, och inget söks eller startas.",
@@ -4057,6 +4437,7 @@
"ui.dark": "Mörkt",
"ui.default_modelling_orientation": "Standardorientering för modellering",
"ui.delete": "Ta bort",
"ui.delete_select_first": "Markera först vad som ska tas bort: funktioner, kroppar, komponenter eller skissgeometri",
"ui.depth": "Djup",
"ui.design": "Konstruktion",
"ui.design_properties.author": "Upphovsperson",
@@ -4071,6 +4452,40 @@
"ui.design_properties.project": "Projekt",
"ui.design_properties.revision": "Revision",
"ui.design_saved": "Sparad i {path}",
"ui.details_access_caption": "Ytorna visar om ett verktyg kan nå dem från den valda riktningen.",
"ui.details_angle": "Vinkel",
"ui.details_continuity_caption": "Redigera den markerade skarven. Andra skarvar behåller sina egna inställningar.",
"ui.details_continuity_stale": "Tidigare geometri: kör analysen igen för att redigera eller rama in den här skarven.",
"ui.details_copy_list": "Kopiera lista",
"ui.details_curvature": "Krökningstolerans",
"ui.details_curvature_caption": "Ytorna färgas efter sin lokala krökningsradie.",
"ui.details_direction": "Verktygsriktning",
"ui.details_draft_caption": "Ytorna färgas efter sin vinkel mot dragriktningen.",
"ui.details_edit_seam": "Redigera skarv",
"ui.details_fixture": "Komponentexemplar — endast exempeldata",
"ui.details_fixture_caption": "Komponentexemplar med illustrativa värden; det här är inte ett modellresultat.",
"ui.details_fixture_problem": "Exempelresultat med ett problem",
"ui.details_fixture_readout": "Exempel på mätvärde",
"ui.details_flip": "Vänd",
"ui.details_gap": "Spalt",
"ui.details_hatch": "Skraffera snittytor",
"ui.details_jump": "Krökningshopp",
"ui.details_key": "Teckenförklaring",
"ui.details_offset": "Förskjutning",
"ui.details_plane": "Plan",
"ui.details_pull": "Dragriktning",
"ui.details_radius": "Radie",
"ui.details_readout": "Avläsning",
"ui.details_samples": "Provpunkter",
"ui.details_seam": "{body} · Kant {edge}",
"ui.details_settings": "Inställningar",
"ui.details_sharp_gap": "Skarp eller spalt",
"ui.details_show_all": "Visa alla {count}",
"ui.details_smooth": "Jämn",
"ui.details_stripes": "Ränder",
"ui.details_target": "Rama in geometrin",
"ui.details_worst_seams": "Sämsta skarvarna",
"ui.details_zebra_caption": "Speglade ränder visar hur jämnt ytorna möts.",
"ui.diameter": "Diameter",
"ui.dimension": "Mått",
"ui.direct_interaction": "Direktinteraktion",
@@ -4115,6 +4530,7 @@
"ui.edit_in_place_saved_elsewhere": "Delen sparades i en annan fil; sammanställningen länkar fortfarande till {name}",
"ui.edit_in_place_wait": "Vänta tills det som körs i konstruktionen är klart",
"ui.edit_section_analysis": "Redigera sektionsanalys",
"ui.edit_sketch_empty": "Inga skisser att redigera",
"ui.ellipse": "Ellips",
"ui.emboss_wrap_note": "Ortogonala linjeprofiler som tangerar en stödd cylinder lindas automatiskt runt den. Välj en vägg för att välja ett mål.",
"ui.end_radius": "Slutradie",
@@ -4125,12 +4541,15 @@
"ui.equation_explicit": "Explicit",
"ui.equation_form": "Form",
"ui.equation_note": "Variabeln är ett vanligt tal: sin(t) tolkar den i radianer. Ett resultat utan enhet anges i konstruktionens enhet.",
"ui.equation_note_range": "Variabeln är en längd, liksom dess intervall: blanda den med längdparametrar och dividera den med en längd för sin(). Ett resultat utan enhet anges i konstruktionens enhet.",
"ui.equation_parametric": "Parametrisk",
"ui.equation_variable_unit": "Variabeln har intervallets enhet",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Ekvivalent radie",
"ui.expand": "Expandera",
"ui.explode_needs_two_components": "Sprängvy drar isär komponenter, så konstruktionen behöver två eller fler (Ny komponent, Infoga konstruktion eller Skapa komponenter från kroppar)",
"ui.exportDxf": "Exportera DXF…",
"ui.export_ellipsis_keymap": "Exportera…",
"ui.export_keymap_tip": "Tangenter, S-rutans favoriter och verktygsfältet, som en fil",
@@ -4299,12 +4718,14 @@
"ui.joints": "Leder",
"ui.keyboard_shortcuts": "Kortkommandon",
"ui.language": "Språk",
"ui.lasso_select": "Lasso (dra en frihandsslinga: markerar allt som ligger helt innanför)",
"ui.layout_compact": "Kompakt",
"ui.layout_floating": "Flytande",
"ui.length": "Längd",
"ui.length_decimals": "Längddecimaler",
"ui.light": "Ljust",
"ui.line": "Linje",
"ui.line_arc_hint": "Tangentbåge: klicka på bågens slut. Vila på den sista punkten igen för linjer; högerklicka eller Esc för att avsluta",
"ui.link_copies": "Länka identiska kopior",
"ui.link_copies_keep": "Behåll",
"ui.link_copies_link": "Länka",
@@ -4393,6 +4814,7 @@
"ui.part_size_shared": "Återbygger delen och ersätter eventuella tillagda funktioner. Alla förekomster av denna komponent uppdateras.",
"ui.paste": "Klistra in",
"ui.path": "Bana",
"ui.pattern_object_type_tip": "Kroppar: solida former som väljs i vyn eller webbläsaren; var och en kopieras hel.\nFunktioner: steg i historiken, till exempel en extrudering eller ett hål, som väljs i historiken eller på en yta som de har skapat; steget upprepas.\nEn skiss är ingetdera: upprepa dess kurvor med skissens egna Mönster eller Spegla, eller extrudera den först.",
"ui.pattern_on_path": "Mönster på bana",
"ui.perforate_margin_default": "från diametern",
"ui.perforate_pitch": "Stigning",
@@ -4419,12 +4841,17 @@
"ui.plugins_skipped": "{count} mapp(ar) kunde inte läsas.",
"ui.plugins_version": "{version}",
"ui.point": "Punkt",
"ui.point_cloud_add_filter": "Lägg till filter…",
"ui.point_cloud_auto_range": "Automatiskt intervall",
"ui.point_cloud_color_by": "Färglägg efter",
"ui.point_cloud_file_colors": "Filens färger",
"ui.point_cloud_filter_by": "Filtrera efter",
"ui.point_cloud_height_high": "Högst",
"ui.point_cloud_height_low": "Lägst",
"ui.point_cloud_legend_filter": "Visas och döljs i teckenförklaringen ovan",
"ui.point_cloud_no_file_colors": "Filen har inga färger",
"ui.point_cloud_pause": "Pausa",
"ui.point_cloud_play": "Spela upp",
"ui.point_cloud_single_color": "En färg",
"ui.point_cloud_size": "Punktstorlek",
"ui.point_cloud_units": "Filens enheter",
@@ -4433,9 +4860,9 @@
"ui.polygon": "Polygon",
"ui.preferences": "Inställningar",
"ui.press_a_key": "tryck på en tangent…",
"ui.print_face_body_not_sent": "Den ytans kropp skickas inte: lägg först till den i Kroppar",
"ui.print_face_cleared": "{body}: utskriftsyta rensad",
"ui.print_face_input": "Utskriftsyta",
"ui.print_face_one_body": "En utskriftsyta hör till en kropp: skicka den kroppen ensam för att ändra den",
"ui.print_face_pick": "Välj en plan yta på en solid kropp för att göra den till utskriftsytan",
"ui.print_face_set": "{body}: utskriftsyta angiven; Skicka till slicer lägger kroppen på den",
"ui.profile": "Profil",
@@ -4453,6 +4880,7 @@
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Mäter…",
"ui.properties.measuring_bodies": "Mäter… {done} av {total} kroppar",
"ui.properties.measuring_failed": "Mätningen avbröts innan den var klar.",
"ui.properties.principal_axis": "Huvudaxel {number}",
"ui.properties.principal_moments": "Huvudtröghetsmoment",
@@ -4520,6 +4948,7 @@
"ui.selectOther": "Markera annan…",
"ui.selectTangentChain": "Markera tangentkedja",
"ui.select_all": "Markera alla",
"ui.select_components_by_face": "Markera komponenter (en yta väljer sin komponent)",
"ui.selection": "Markering",
"ui.selection_modifiers": "Markeringsmodifierare",
"ui.selection_shift_add_only": "Shift+klick lägger till utan att ta bort",
@@ -4561,6 +4990,11 @@
"ui.sketch_intersect_selection_filter": "Markeringsfilter",
"ui.sketch_modifiers": "Skissmodifierare",
"ui.sketch_project_geometry": "Geometri",
"ui.sketch_report.all_constrained": "Allt är fullt definierat.",
"ui.sketch_report.dof": "Frihetsgrader",
"ui.sketch_report.loose": "Inte fullt definierade",
"ui.sketch_report.status": "Status",
"ui.sketch_report.title": "Skissrapport",
"ui.sketch_scale": "Skissskala",
"ui.sketches": "Skisser",
"ui.slice": "Skiva",
@@ -4656,12 +5090,15 @@
"ui.view_angles": "Vyvinklar",
"ui.view_angles_convention": "Grader runt uppaxeln. Girning 0° är vyn framifrån, 90° från vänster, −90° från höger, 180° bakifrån; lutning 90° är vyn ovanifrån; en positiv rullning vrider modellen medurs.",
"ui.view_angles_help": "Visar vyns lutning, girning och rullning i grader samt dess projektion under orienteringsgizmot. Klicka på avläsningen för att skriva in exakta vinklar.",
"ui.view_angles_lock": "Lås {axis}",
"ui.view_angles_ortho": "Ortog.",
"ui.view_angles_persp": "Persp.",
"ui.view_angles_pitch": "Lutning",
"ui.view_angles_readout": "Lutning {pitch} · Girning {yaw} · Rullning {roll}",
"ui.view_angles_roll": "Rullning",
"ui.view_angles_unlock": "Lås upp {axis}",
"ui.view_angles_yaw": "Girning",
"ui.view_angles_zero": "Sätt {axis} till 0°",
"ui.view_centre": "Vycentrum",
"ui.viewport_status_clear": "Stäng av {name}",
"ui.viewport_status_clear_hint": "Stäng av {name} · Esc",
@@ -4670,7 +5107,14 @@
"ui.viewport_status_key": "Visa teckenförklaring för {name}",
"ui.viewport_status_minimum_radius": "Minsta radie",
"ui.viewport_status_pairs": "{count} par",
"ui.viewport_status_section_hatch": "{setting} · skraffering",
"ui.viewport_status_section_plane": "Aktuellt plan",
"ui.viewport_status_section_tilted": "lutad · {offset}",
"ui.viewport_status_stripes": "{count} ränder",
"ui.viewport_status_summary_clear": "Stäng av allt",
"ui.viewport_status_summary_heading": "I den här vyn",
"ui.viewport_status_summary_label": "{name} och {count} objekt till",
"ui.viewport_status_summary_more": "+{count}",
"ui.viewport_theme_follow": "Följ tema",
"ui.visual_shaded_hidden_edges": "Skuggad med dolda kanter",
"ui.visual_shaded_with_edges": "Skuggad med kanter",
+445 -1
View File
@@ -60,6 +60,7 @@
"BLEND SURFACE": "GEÇİŞ YÜZEYİ",
"BOUNDARY SURFACE": "SINIR YÜZEYİ",
"BROWSER": "TARAYICI",
"Back to the original order": "Orijinal sıraya dön",
"Ball": "Küresel",
"Bar": "Çubuk",
"Base Center": "Taban Merkezi",
@@ -595,6 +596,8 @@
"Snap to face and edge centres": "Yüz ve kenar merkezlerine yapış",
"SolidCraft cannot submit reports directly. Submit on GitHub; no token is needed in the app.": "SolidCraft raporları doğrudan gönderemez. GitHub'da gönderin; uygulamada belirteç gerekmez.",
"SolidCraft closed before these designs were saved. Their last autosave can be opened.": "SolidCraft bu tasarımlar kaydedilmeden önce kapandı. Son otomatik kayıtları açılabilir.",
"Sort A to Z": "A'dan Z'ye sırala",
"Sort Z to A": "Z'den A'ya sırala",
"Spacing 2 must be a non-zero number": "Aralık 2 sıfırdan farklı bir sayı olmalıdır",
"Spacing must be a non-zero number": "Aralık sıfırdan farklı bir sayı olmalıdır",
"Specialise": "Özelleştir",
@@ -790,6 +793,13 @@
"browser.sketch_attachment_lost": "{name} (bağlama kayboldu)",
"browser.sketch_editing": "{name} (düzenleniyor)",
"browser.sketch_name": "Eskiz {number}",
"browser.sketches_to_parts_already_in_part": "zaten kendi parçalarında",
"browser.sketches_to_parts_design_body": "tasarımın kendi bir gövdesinde",
"browser.sketches_to_parts_moved": "{moved} eskiz, üzerinde oldukları parçaya taşındı",
"browser.sketches_to_parts_no_exact_attachment": "tam bağlaması olmayan bir yüzde",
"browser.sketches_to_parts_not_on_face": "bir parçanın yüzünde değil",
"browser.sketches_to_parts_part_missing": "parçaları artık yok",
"browser.sketches_to_parts_result": "{moved} eskiz, üzerinde oldukları parçaya taşındı; {stayed} yerinde kaldı: {why}",
"browser.units": "Birimler: {units}",
"cam.flat": "Düz yüz",
"cam.follower": "İzleyici",
@@ -819,6 +829,7 @@
"cmd.appearance_pick_up": "Görünümü Al",
"cmd.appearance_replace": "Görünümü Değiştir",
"cmd.assembly_bom": "Malzeme listesi",
"cmd.assembly_mass_properties": "Kütle özellikleri",
"cmd.body.print_face": "Baskı yüzeyi",
"cmd.body_rename": "Gövdeyi yeniden adlandır",
"cmd.browser_collapse_all": "Tümünü Daralt",
@@ -856,6 +867,7 @@
"cmd.component_move_bodies": "Gövdeleri bileşene taşı",
"cmd.component_move_features": "Özellikleri bileşene taşı",
"cmd.component_move_sketches": "Eskizleri bileşene taşı",
"cmd.component_move_sketches_to_parts": "Eskizleri kendi parçalarına taşı",
"cmd.component_paste_from_design": "Başka Bir Tasarımdan Yapıştır",
"cmd.component_paste_new": "Yeni olarak yapıştır",
"cmd.component_properties": "Bileşenin fiziksel özellikleri",
@@ -1191,6 +1203,7 @@
"cmd.sketch_spline_control_point_5": "Kontrol noktalı spline (derece 5)",
"cmd.sketch_spline_fit_point": "Uydurma noktalı spline",
"cmd.sketch_spline_insert_point": "Spline Noktası Ekle",
"cmd.sketch_spline_remove_point": "Spline Noktasını Kaldır",
"cmd.sketch_spline_reverse": "Spline yönünü ters çevir",
"cmd.sketch_spun_profile": "Döndürülmüş profil",
"cmd.sketch_toggle_diameter": "Yarıçap / Çap Arasında Geçiş Yap",
@@ -1244,6 +1257,7 @@
"cmd.view.render_browser": "Render tarayıcısı",
"cmd.view.render_dock": "Render panelini taşı",
"cmd.view.render_focus": "Render odak görünümü",
"cmd.view.status_details": "Görünüm Alanı Durum Ayrıntıları",
"cmd.view.status_items": "Görünüm Alanı Durum Öğeleri",
"cmd.view_ambient_occlusion": "Ortam tıkanması",
"cmd.view_angle_readout": "Görünüm açıları",
@@ -1282,8 +1296,14 @@
"color.hex_hint": "#rrggbb",
"color.hue": "Ton",
"color.linear": "Renk değerleri 0-1 doğrusal uzayda gösteriliyor",
"color.recent": "Son kullanılan renkler",
"color.recent_help": "Herhangi bir renk alanında seçtiğiniz renkler burada görünür",
"color.saturation": "Doygunluk (yüzde)",
"color.saturation_value": "Doygunluk ve değer",
"color.selected": "Seçili renk",
"color.step_down": "Bir adım aşağı",
"color.step_up": "Bir adım yukarı",
"color.value": "Değer, yani parlaklık (yüzde)",
"config.column_filter_empty": "Eşleşen sütun yok",
"contact.components_count": "{count} bileşen",
"contact.enabled_label": "etkin",
@@ -1330,6 +1350,7 @@
"dialog.dimension_name": "Ölçü: {name}",
"dialog.edit_title": "{title} düzenleniyor",
"dialog.no_shown_body": "Değiştirilecek görünür gövde yok: bir gövdeyi gösterin ya da Yeni gövde seçin",
"dialog.pattern_sketch_not_object": "Gövdeleri veya özellikleri seçin: eskiz bunlardan hiçbiri değildir. Eğrilerini eskizin kendi Dizi veya Aynala komutuyla tekrarlayın ya da önce ekstrüzyon yapın.",
"dialog.select": "↖ Seç",
"dialog.selected_count": "↖ {count} seçildi",
"dialog.selection_guidance": "Değiştirmek için bir girdi seçin. Kaldırmak için seçili nesnelere tıklayın; Ctrl/Cmd+tıklama ile de seçime ekleyip çıkarabilirsiniz. Önizlemeyi kontrol edin ve ardından OK'e basın.",
@@ -1387,21 +1408,168 @@
"from the rule": "kuraldan",
"help.apache": "Apache lisansı 2.0",
"help.appearance.assign": "Seçili gövdelere, yüzlere veya bileşenlere ağırlıklarını değiştirmeden bir renk veya malzeme görünümü verir. Parçaları ayırt etmek veya bir kaplamayı önizlemek için kullanın.",
"help.assembly.bom": "Tasarımın veya bir bileşenin parçalarını parça numarasına göre adetleriyle listeler ve listeyi CSV ya da JSON olarak kaydedebilir. Sipariş ve montaj için parça listesi olarak kullanın.",
"help.attributions": "Atıflar (ATTRIBUTION.md)",
"help.build": "Sürüm {version} · commit {commit} · derleme tarihi {date}",
"help.canvas.decal": "Bir görseli modelin düz bir yüzüne çıkartma gibi yerleştirir. Bir parça üzerinde etiket, logo veya baskılı desen göstermek için kullanın.",
"help.canvas.edit": "Bir tuvali değiştirir: konumunu, boyutunu, açısını, opaklığını, aynalamasını, görünürlüğünü veya adını. Referans görseli, üzerinden çizdiğiniz eskizle hizalamak için kullanın.",
"help.canvas.insert": "Bir PNG veya JPEG görseli, saydam bir referans olarak bir düzleme ya da yüze yerleştirir. Görsel bilinen bir ölçüye getirilmiş hâlde, bir fotoğrafın veya çizimin üzerinden eskiz çizmek için kullanın.",
"help.component.break_link": "Bağlı bir bileşeni tasarım dosyasından ayırır, gövdelerini olduğu gibi korur. Parça artık özgün dosyadaki değişiklikleri izlememeliyse kullanın.",
"help.component.capture_position": "Elle taşıdığınız parçaların bulunduğu konumları kalıcı olarak saklar. Hiçbir bağlantının tutmadığı parçaları sürükleyerek yerlerine getirdikten sonra kullanın.",
"help.component.create": "Tasarıma yeni, boş bir bileşen ekler; başka bir üst öğe seçmediğiniz sürece etkin bileşenin içine. Bir montajın yeni parçasına gövdeleri ve eskizleri için ayrı bir yer açmak amacıyla kullanın.",
"help.component.finish_edit": "Yerinde düzenlediğiniz parçayı kaydeder, montajına döner ve montajı bu parçadan günceller. Bağlı parçadaki değişiklikleriniz bittiğinde kullanın.",
"help.component.from_bodies": "Seçili her gövdeyi, gövdenin adını taşıyan kendi bileşenine dönüştürür. Ayrı gövdelerden kurulmuş bir tasarım, parçaları birbirine bağlanıp taşınabilen bir montaja dönüşecekse kullanın.",
"help.component.insert_design": "Kaydedilmiş başka bir tasarımı, dosyasına bağlı bir bileşen olarak ekler; katı gövdeleri oradaki gibi yerleştirilir. Bir parçayı montajda yeniden kullanmak ve sonraki değişiklikleri Bağları güncelle ile almak için kullanın.",
"help.component.properties": "Bir bileşenin hacmini, kütlesini, kütle merkezini ve eylemsizlik momentlerini gövdelerinin malzemelerine göre gösterir. Bir montajın ağırlığını ve dengesini kontrol etmek için kullanın.",
"help.component.revert_position": "Elle taşıdığınız parçaları eski yerlerine geri koyar; yakalanmamış taşımaları atar. Bir montajdaki deneme taşımalarını geri almak için kullanın.",
"help.component.update_links": "Bağlı tasarım dosyalarını yeniden okur ve değişen yerlerdeki gövdeleri değiştirir. Bu montajın kullandığı bir parçayı düzenledikten sonra kullanın.",
"help.config.configure": "Parametreleri, özellikleri, malzemeleri veya görünümleri konfigürasyon tablosuna sütun olarak ekler. Bir tasarımın, örneğin bir parçanın farklı boyutları gibi varyantlarını oluşturmak için kullanın.",
"help.config.preview": "Konfigürasyon tablosundaki bir satırın yeniden oluşturulabildiğini, tasarımı veya geçmişini değiştirmeden kontrol eder. Emin olmadığınız bir varyanta geçmeden önce kullanın.",
"help.config.rules": "Konfigürasyon tablosunun kurallarını, satırlarını ve hangi satırın etkin olduğunu gösterir. Bir tasarımın varyantlarının nasıl kurulduğunu görmek için kullanın.",
"help.config.table": "Konfigürasyon tablosunu gösterir: varyant başına bir satır, parametre veya özellik başına bir sütun ve tasarımın etkin satırla hâlâ uyuşup uyuşmadığı. Bir tasarımın varyantlarını gözden geçirmek için kullanın.",
"help.connect_note": "SolidCraft sunucusunu yüklemek için her asistanı yeniden başlatın. Değişmeden önce her dosya .bak olarak yedeklendi.",
"help.connect_title": "AI asistanlarını bağla",
"help.construct.axis.edge": "Düz bir kenar veya eskiz çizgisi boyunca bir yapı ekseni oluşturur. Döndürme, dairesel desen veya bağlantı için eksen olarak kullanın.",
"help.construct.axis.normal_to_face": "Bir noktadan geçen ve bir yüze dik duran bir yapı ekseni oluşturur. Bir yüzeyden dosdoğru çıkan bir eksen olarak kullanın.",
"help.construct.axis.through_cylinder": "Bir silindir, koni veya torus yüzünün ya da dairesel bir kenarın merkezinden geçen bir yapı ekseni oluşturur. Özellikleri yuvarlak bir parçanın etrafında döndürmek veya çoğaltmak için kullanın.",
"help.construct.axis.two_planes": "İki düzlemin veya düz yüzün buluştuğu yerde bir yapı ekseni oluşturur. İhtiyacınız olan eksen iki yüz arasındaki çizgiyse kullanın.",
"help.construct.axis.two_points": "İki noktadan, köşe noktasından veya eskiz noktasından geçen bir yapı ekseni oluşturur. Bilinen iki konum arasında uzanan bir eksen için kullanın.",
"help.construct.plane.along_path": "Bir kenara veya eğriye dik, onun boyunca bir konumda yapı düzlemi oluşturur. Süpürme için bir profili ya da bir yolun kesitini eskizlemek için kullanın.",
"help.construct.plane.at_angle": "Bir düzlemden veya yüzden, bir eksen ya da kenar etrafında belirli bir açıyla döndürülmüş yapı düzlemi oluşturur. Açılı bir köşebent gibi eğimli eskizler için kullanın.",
"help.construct.plane.midplane": "İki düzlemin veya düz yüzün tam ortasında, bir açıyla buluşuyorlarsa onları ikiye bölen yapı düzlemi oluşturur. Aynalama için simetri düzlemi olarak kullanın.",
"help.construct.plane.offset": "Bir düzleme veya düz yüze paralel, belirli bir mesafede ya da bir noktadan geçen yapı düzlemi oluşturur. Bir yüzün belirli bir yükseklik üstünde eskiz çizmek için kullanın.",
"help.construct.plane.perpendicular": "Bir çizgiyi veya kenarı içeren ve bir düzleme ya da yüze dik duran yapı düzlemi oluşturur. Bir modelde kenar boyunca dik duran eskizler çizmek için kullanın.",
"help.construct.plane.tangent": "Bir silindire, koniye, küreye veya torusa bir noktada değen yapı düzlemi oluşturur. Yuvarlak bir parçanın yan tarafına eskiz çizmek için kullanın.",
"help.construct.plane.three_points": "Üç noktadan geçen bir yapı düzlemi oluşturur. Modeldeki konumlarla, örneğin üç köşeyle belirlenen bir düzlem için kullanın.",
"help.construct.plane.two_edges": "Aynı düzlemde bulunan iki düz kenardan veya çizgiden geçen yapı düzlemi oluşturur. Bir parçayı boydan boya kesen, örneğin iki karşılıklı kenardan geçen bir düzlem için kullanın.",
"help.construct.point.along_path": "Bir kenar veya eğri boyunca bir konumda yapı noktası oluşturur. Bir yolun ara bir yerinde referans olarak kullanın.",
"help.construct.point.center": "Dairesel bir kenarın, eskiz dairesinin veya yayının, kürenin ya da torusun merkezinde yapı noktası oluşturur. Delikler, eksenler ve bağlantılar için referans olarak kullanın.",
"help.construct.point.edge_plane": "Bir kenarın veya çizginin bir düzlemden ya da düz yüzden geçtiği yerde yapı noktası oluşturur. Bir yolun düzlemi nerede kestiğini işaretlemek için kullanın.",
"help.construct.point.three_planes": "Üç düzlemin veya düz yüzün buluştuğu yerde yapı noktası oluşturur. Modelde köşe noktası olmasa bile köşe referansı olarak kullanın.",
"help.construct.point.two_edges": "İki kenarın veya çizginin buluştuğu ya da birbirine en çok yaklaştığı yerde yapı noktası oluşturur. Sanal bir köşede referans olarak kullanın.",
"help.construct.point.vertex": "Bir köşe noktası veya eskiz noktası üzerinde yapı noktası oluşturur. Çevresindeki eskiz ya da gövde gizlense bile kalan bir referans olarak kullanın.",
"help.contact.check": "Temas kümelerindeki parçalardan, mevcut konumlarında birbirinin içinden geçen çiftleri listeler. Bağlantıları tahrik etmeden veya hareket etüdü çalıştırmadan önce çarpışmaları bulmak için kullanın.",
"help.contact.create": "İki veya daha fazla parçayı, bağlantılar hareket ederken gövdelerinin birbirinin içinden geçmesi engellenen bir temas kümesinde toplar. Dokunduklarında durması gereken parçalar için kullanın, örneğin dayanağına dayanan bir kol.",
"help.contact.disable_all": "Teması kapatır; böylece tahrik edilen bağlantılar ve hareket etütleri parçaların dokunduğu yerde artık durmaz. Parçaları yeniden serbestçe hareket ettirmek veya büyük bir montajı akıcı tutmak için kullanın.",
"help.contact.edit": "Bir temas kümesini değiştirir: içerdiği parçaları, adını veya bastırılıp bastırılmadığını; kümeyi silebilir de. Hangi parçaların birbirinin içinden geçmesinin engelleneceğini ayarlamak için kullanın.",
"help.contact.enable_all": "Montajın her parçasını tek bir temas kümesine koyar; böylece bağlantılar hareket ederken hiçbir iki parça birbirinin içinden geçemez. Bütün bir mekanizmayı hızlıca denetlemek için kullanın.",
"help.contact.enable_sets": "Tanımladığınız temas kümeleri için teması açar; böylece tahrik edilen bağlantılar ve hareket etütleri, parçaların birbirinin içinden geçeceği yerde durur. Temas kapatıldıktan sonra kümelerinizi geri getirmek için kullanın.",
"help.contact.list": "Tasarımın temas kümelerini, her birindeki parçaları ve temasın açık olup olmadığını listeler. Montajı tahrik etmeden önce temasın nasıl kurulduğunu kontrol etmek için kullanın.",
"help.document.inspect": "Tasarıma genel bir bakış gösterir: bileşenlerini, gövdelerini, eskizlerini, özelliklerini ve parametrelerini. Kendinizin kurmadığı bir tasarımda yolunuzu bulmak için kullanın.",
"help.document.units": "Tasarımın uzunlukları hangi birimde göstereceğini değiştirir, örneğin mm veya inç. Geometri boyutunu korur; yalnızca görünüm ve düz sayılar buna uyar.",
"help.edit.checkpoint": "Tasarımı, etkin eskizi ve geri alma geçmişini şu anki hâliyle hatırlar. Geri dönmek isteyebileceğiniz riskli bir şey denemeden önce kullanın.",
"help.edit.restore_checkpoint": "Geri alma geçmişi dahil, bir kontrol noktasına geri döner. Kontrol noktasından beri yapılan her şeyi tek adımda atmak için kullanın.",
"help.explode.create": "Parçaları montajın merkezinden uzağa iten ya da belirlediğiniz taşımalarla ayıran bir patlatılmış görünüm oluşturur. Bir montajın nasıl birleştiğini talimatlarda veya sunumlarda göstermek için kullanın.",
"help.face.delete": "Seçili yüzleri kaldırır ve komşu yüzlerin boşluğu kapatmasını sağlar ya da boşluğu yüzey olarak açık bırakır. Yuvarlatılmış bir kenarı, bir deliği veya yolda duran bir çıkıntıyı gidermek için kullanın.",
"help.file.insert_mesh": "Bir 3MF, STL, OBJ, PLY veya glTF dosyasını tasarıma, yeni bir bileşende ağ gövdeleri olarak ekler. İndirilmiş veya taranmış bir modeli referans olarak tasarımınızın yanına koymak için kullanın.",
"help.file.insert_step": "Bir STEP, IGES, FreeCAD veya Rhino dosyasını tasarıma, yeni bir bileşende katı gövdeler olarak ekler; bir montajın parçaları iç içe bileşenler olur. Tedarikçilerden veya diğer CAD programlarından modeller getirmek için kullanın.",
"help.file.save_mesh": "Gövdeleri, eğri yüzlerin pürüzsüzlüğünü seçerek STL, 3MF veya OBJ ağı olarak kaydeder. Parçaları 3B baskıya ya da ağ okuyan programlara hazırlamak için kullanın.",
"help.file.send_to_slicer": "Seçili gövdeleri 3MF dosyası olarak kaydeder ve seçtiğiniz dilimleyicide açar. Modelden baskıya tek adımda geçmek için kullanın.",
"help.font_details": "Arayüz, egui'nin yerleşik yazı tiplerini kullanır (Ubuntu Font Licence ve MIT/Bitstream Vera lisansları altında Ubuntu Light ve Hack; OFL ve MIT altında Noto Emoji ve emoji simge yazı tipi). Eskiz metni Liberation Sans (SIL OFL 1.1) kullanır. The Crafting Apps'in isteğe bağlı yazı tipi paketi craft-fonts (BIZ UDPGothic, Shippori Mincho, BIZ UDMincho, Noto Sans CJK SC, Noto Sans Arabic; SIL OFL 1.1), SolidCraft derlemelerine dahil değildir.",
"help.fonts": "Yazı tipleri",
"help.frame.member": "Bir profili, örneğin bir boruyu veya alüminyum ekstrüzyon profilini, bir çerçeve eskizinin çizgileri boyunca, çizgi başına bir eleman olacak şekilde yerleştirir. Çerçeveler, raflar ve kaynaklı yapılar kurmak için kullanın.",
"help.inspect.accessibility": "Bir aletin tek bir yönden ulaşabildiği yüzleri ve ulaşamadıklarını renklendirir. Bir parçayı o taraftan işleme veya kalıplama açısından kontrol etmek için kullanın.",
"help.inspect.center_of_mass": "Gövdelerin kütle merkezini, tek tek ve hepsi birlikte, düzgün yoğunlukla gösterir. Dengeyi ve bir parçanın nereye devrileceğini kontrol etmek için kullanın.",
"help.inspect.colored_components": "Her bileşene, görünümleri değiştirmeden geçici kendi rengini verir. Bir montajın parçalarını bir bakışta ayırt etmek için kullanın.",
"help.inspect.compare": "İki gövdeyi karşılaştırır ve birinde olup diğerinde olmayan malzemenin nerede olduğunu hacim ve sapmayla gösterir. Değiştirilmiş veya içe aktarılmış bir parçayı orijinaliyle karşılaştırıp kontrol etmek için kullanın.",
"help.inspect.continuity": "Yüzlerin kenarları boyunca ne kadar düzgün buluştuğunu denetler: boşlukları, kırıkları veya eğrilik sıçramalarını; birleşim yerlerini renklendirir. Yüzeylerin nerede temiz birleşmediğini bulmak için kullanın.",
"help.inspect.curvature_comb": "Eğriler, kenarlar veya yüzler boyunca, dişleri ne kadar güçlü eğildiklerini gösteren taraklar çizer. Düzleşmiş yerleri, kırıkları ve düzensiz eğriliği fark etmek için kullanın.",
"help.inspect.curvature_map": "Yüzleri ne kadar güçlü eğrildiklerine göre renklendirir; yarıçapın küçük olduğu yerler kırmızıdır. Dar noktaları bulmak ve bir yüzeyin ne kadar pürüzsüz olduğunu değerlendirmek için kullanın.",
"help.inspect.draft": "Yüzleri, kalıptan çıkarma yönüne göre koniklik açılarına göre renklendirir ve yetersiz olanları işaretler. Bir parçayı kalıplamadan veya dökmeden önce kontrol etmek için kullanın.",
"help.inspect.environment_map": "Modeli yansıtıcı, ayna gibi bir yüzeyle gösterir. Yüzeylerin akışını, yansımaların üzerlerinden nasıl geçtiğine bakarak değerlendirmek için kullanın.",
"help.inspect.interference": "Örtüşen gövdeleri bulur ve her örtüşmeyi hacmiyle gösterir. Bir montajda çarpışan parçalar olup olmadığını kontrol etmek için kullanın.",
"help.inspect.isocurve": "Yüzlerin izoparametrik eğrilerini, yani yüzeyin üzerine kurulduğu ızgarayı çizer. Bir yüzeyin nasıl aktığını ve nerede sıkıştığını görmek için kullanın.",
"help.inspect.measure": "Seçtiğiniz öğeler arasındaki uzunlukları, mesafeleri, açıları, alanları ve yarıçapları ya da gövdelerin hacmini ve kütlesini ölçer. Boyutları ve boşlukları kontrol etmek için kullanın.",
"help.inspect.minimum_radius": "Eğrilerin, kenarların veya yüzlerin en küçük eğrilik yarıçapını ve nerede olduğunu bulur. Bir aletin veya nozulun şekli izleyip izleyemeyeceğini kontrol etmek için kullanın.",
"help.inspect.section": "Görünümü bir düzlem boyunca keserek açar ve kesilen yüzleri tarar; modeli değiştirmez. Parçaların ve montajların içine bakmak için kullanın.",
"help.inspect.zebra": "Modelin yüzlerinde yansıyan siyah beyaz şeritleri gösterir. Pürüzsüzlüğü değerlendirmek için kullanın: bir kenarda kopan veya kırılan şeritler zayıf bir geçişe işaret eder.",
"help.joint.as_built": "İki parçayı, ikisini de oynatmadan bulundukları yerde birbirine bağlar ve hâlâ nasıl hareket edebileceklerini belirler. Son konumlarına zaten yerleştirdiğiniz parçalar için kullanın.",
"help.joint.cam": "Dönen bir kamı bir izleyiciye bağlar; kamın dış hattı altından geçerken izleyici kayar veya salınır. Kamlar, eksantrikler ve supap tahrikleri için kullanın.",
"help.joint.create": "İki parçayı seçtiğiniz bağlantı orijinlerinde birleştirir ve ikinci parçayı yerine taşır; bağlantı türü, hâlâ nasıl hareket edebileceklerini belirler. Parçaları gerçek mekanizma gibi hareket eden bir montaj kurmak için kullanın.",
"help.joint.drive": "Bir bağlantının açısını veya mesafesini ayarlar ve parçaları sınırları içinde onunla birlikte hareket ettirir; bağlı bağlantılar ve kapalı döngüler de buna uyar. Bir mekanizmanın istendiği gibi hareket ettiğini kontrol etmek için kullanın.",
"help.joint.gear": "Dönen iki bağlantıyı bir dişli oranıyla bağlar; birini sürmek diğerini döndürür. Düz ve iç dişliler için kullanın; oran, adım yarıçaplarından veya diş sayılarından alınır.",
"help.joint.limits": "Bir bağlantının ne kadar dönebileceğini veya kayabileceğini en az ve en çok olarak belirler ya da bu sınırları temizler. Bir menteşeyi, kayar bağlantıyı veya kolu gerçek hareket aralığında tutmak için kullanın.",
"help.joint.motion_link": "İki bağlantıyı bir oran ve bir ofsetle eşler; birini sürmek diğerini hareket ettirir. Dişli, Kremayer ve pinyon veya Vida'nın kapsamadığı, bağlantılar arasındaki sabit bir ilişki için kullanın.",
"help.joint.origin": "Bir parça üzerine adlandırılmış bir bağlantı orijini yerleştirir: bir yüzün veya yuvarlak bir ucun merkezine, bir kenarın ortasına, bir köşeye ya da bir noktaya. Bağlantıların nereye tutunacağını hazırlamak için kullanın; bir yüzde seçilen orijin, parça boyut değiştirdiğinde yüzü izler.",
"help.joint.rack_pinion": "Dönen bir pinyonu kayan bir kremayere bağlar; kremayer, pinyonun üzerinde yuvarlandığı adım dairesi uzunluğu kadar hareket eder. Kremayer tahrikleri, direksiyon ve doğrusal tablalar için kullanın.",
"help.joint.reach": "Bir parça üzerindeki bir noktayı, zincirindeki bağlantıları sınırları içinde değiştirerek bir hedefe doğru taşır. Bir mekanizmayı, ucunun olması gereken yere göre konumlandırmak için kullanın, örneğin bir robot kolunun ucu.",
"help.joint.rigid_group": "Seçili parçaları olduğu gibi birbirine kilitler; böylece tek parça olarak hareket ederler. Birbirine ait olan ve aralarında hareket bulunmayan parçalar için kullanın.",
"help.joint.screw": "Dönmeyi ve kaymayı bir adımla bağlar; her tur o mesafe kadar ilerler. Hareket vidaları, cıvatalar ve dişli miller için kullanın.",
"help.library.apply": "Yerel bir kitaplık dosyasındaki bir malzemeyi veya görünümü gövdelere, yüzlere ya da bileşenlere uygular. Başka bir tasarımdan kaydettiğiniz malzemeleri tekrar uygulamak için kullanın.",
"help.library.export": "Tasarımın malzemelerini ve görünümlerini bir kitaplık dosyasına kaydeder. Bunları paylaşmanız ya da başka tasarımlarda yeniden kullanmanız gerekiyorsa kullanın.",
"help.library.inspect": "Bir kitaplık dosyasını denetler ve içindeki malzemeleri ile görünümleri, tasarımı değiştirmeden listeler. Uygulamadan önce kitaplığın neler içerdiğini görmek için kullanın.",
"help.licences": "Lisanslar",
"help.material.assign": "Seçili gövdelerin neyden yapıldığını belirler: çelik, alüminyum veya ABS gibi. Kütle ve ağırlığın gerçek parçayla uyuşması için kullanın.",
"help.material.properties.validate": "Bir malzeme veri kartını tutarlı sayılar ve eksik değerler açısından kontrol eder. Verilere kütle veya rijitlik için güvenmeden önce kullanın.",
"help.mesh.convert": "STL gibi bir ağ gövdesini, düz ve silindirik yüzlerden oluşan düzenlenebilir bir katı olarak yeniden kurar. İçe aktarılmış mekanik parçaları modellenmiş bir gövde gibi değiştirmek için kullanın.",
"help.mit": "MIT lisansı",
"help.motion.study": "Bağlantı değerlerini bir zaman çizelgesi boyunca adımlarda ayarlar ve animasyon olarak oynatır. Bir mekanizmanın bir dizi boyunca hareketini izlemek ve yol boyunca açıklıkları kontrol etmek için kullanın.",
"help.motion.trace": "Bir hareket etüdü oynatılırken veya bir bağlantı sürülürken bir parça üzerindeki bir noktanın izlediği yolu çizer ve onayladığınızda 3B eskiz eğrisi olarak saklar. Bir mekanizmanın nereye eriştiğini görmek veya yolu üzerine bir şey kurmak için kullanın.",
"help.notice": "NOTICE",
"help.occurrence.ground": "Bir parçayı yerine sabitler ya da yeniden serbest bırakır; böylece bağlantılar diğer parçaları onun etrafında hareket ettirir. Montajın geri kalanının üzerine kurulduğu çerçeve veya taban için kullanın.",
"help.occurrence.move": "Montaj parçasını yalnızca eklemlerinin izin verdiği serbestliklerde taşır. Bir parça yüzü seçtikten sonra kullanılabilir oku veya yayı sürükleyin.",
"help.parameters.change": "Tasarımın ölçülerini yöneten adlandırılmış değerlerin ve ifadelerin tablosunu açar. Bir ölçüyü tek yerden değiştirip onu kullanan her özelliğin buna uymasını sağlamak için kullanın.",
"help.parameters.export": "Tasarımın parametrelerini CSV veya JSON olarak kaydeder. Bunları bir elektronik tabloda düzenlemek veya başka bir tasarıma taşımak için kullanın.",
"help.parameters.graph": "Hangi parametrelerin ve özelliklerin hangilerini kullandığını, aralarındaki döngüleri veya hataları gösterir. Bir parametreyi değiştirmenin neleri etkileyeceğini görmek için kullanın.",
"help.parameters.import": "Parametreleri CSV veya JSON dosyasından tasarıma okur; ya hepsini ya hiçbirini. Değerleri bir elektronik tablodan veya başka bir tasarımdan getirmek için kullanın.",
"help.parameters.move": "Bir kullanıcı parametresini listede başka birinin önüne veya arkasına taşır. İlgili parametreleri bir arada tutmak için kullanın.",
"help.parts.fastener": "Seçtiğiniz boyutta standart bir vida, cıvata, somun, rondela, pim veya rulman ekler. Bir deliğe yerleştirildiğinde bir bağlantıyla deliğe oturur; böylece bağlantı elemanlarını kendiniz modellemeniz gerekmez.",
"help.parts.insert": "Seçtiğiniz ailede, boyutta ve uzunlukta standart bir parça ekler. Bir deliğin kenarına veya çeperine yerleştirildiğinde, rijit bir bağlantıyla deliğe oturur.",
"help.parts.library": "Standart parçaları açar: standart boyutlarda vidalar, cıvatalar, somunlar, rondelalar, tespit vidaları, silindirik pimler ve rulmanlar. Bir standart parçayı kendiniz modellemek yerine eklemek için kullanın.",
"help.parts.resize": "Eklenmiş bir standart parçanın boyutunu veya uzunluğunu değiştirir ve yeniden oluşturur; bağlantıları onu yerinde tutar. Bir vida çok uzun çıkarsa veya bir delik başka bir boyut gerektiriyorsa kullanın.",
"help.plastic.assign_rule": "Gövdelere bir plastik kuralı atar; böylece plastik özellikleri koniklik ve açıklık değerlerini varsayılan olarak ondan alır. Kalıplanmış bir parçayı tüm özellikleri için bir kez kurmak amacıyla kullanın.",
"help.plastic.boss": "Bir yüze vida göbeği ekler: isteğe bağlı delik, koniklik, kök yuvarlatması ve destek nervürleri olan bir direk. Kalıplanmış veya basılmış kasalardaki vida noktaları için kullanın.",
"help.plastic.lip": "İçi boşaltılmış bir gövdenin kenarı boyunca bir dudak veya buna uyan bir oluk ekler. İki kasa yarısının birbirine oturması ve sıkıca kapanması için kullanın.",
"help.plastic.manage_rules": "Plastik kurallarını oluşturur ve düzenler: malzeme, et kalınlığı, yarıçaplar, açıklık ve koniklik. Kalıplanmış bir parçanın özelliklerini tutarlı tutmak için kullanın.",
"help.plastic.rest": "Bir yüze dayanak ekler: yuvarlak veya dikdörtgen, dolu veya içi boş, konikliği olan bir ayak. Kalıplanmış bir kasada destek veya mesafe parçası olarak kullanın.",
"help.plastic.snap_fit": "Bir yüze, uzunluğu, kalınlığı ve tırnağıyla bir geçmeli bağlantı kancası ekler. Parçaları vidasız birbirine geçirmek için kullanın.",
"help.pointcloud.insert": "PLY, XYZ veya PTS taramasını modelin yanına nokta bulutu olarak ekler. Ölçülmüş verilerden model oluştururken referans olarak kullanın.",
"help.sheet.convert": "Eşit kalınlıkta bir plakayı veya içi boşaltılmış bir gövdeyi, seçtiğiniz kenarlarda bükümlerle sac metal gövdeye dönüştürür. Mevcut bir parçayı açılabilir hâle getirmek için kullanın.",
"help.sheet.export_bend_table": "Bir sac metal gövdenin büküm tablosunu CSV veya JSON olarak kaydeder: açılar, yarıçaplar ve açınımdaki büküm konumları. Abkant pres veya atölye için kullanın.",
"help.sheet.export_dxf": "Açınımı DXF olarak kaydeder; dış hatlar, büküm çizgileri ve isteğe bağlı büküm notlarıyla. Lazer, plazma veya su jeti ile kesim için kullanın.",
"help.sheet.flange": "Bir flanş ekler: bir eskizden taban plakası, açık bir eskiz konturu boyunca bir cidar ya da sac kenarlarında bükülmüş bir cidar. Sac metal parçaları oluşturmak için kullanın.",
"help.sheet.flat_pattern": "Bir sac metal gövdenin açınımını boyutu, kesik alanları ve büküm çizgileriyle oluşturur. Kesmeden önce ham parçayı kontrol etmek için kullanın.",
"help.sheet.fold": "Bir sacı, bir eskiz çizgisi boyunca belirli bir açı ve yarıçapla büker. İçine kesme özellikleri ekledikten sonra düz bir sacı katlamak için kullanın.",
"help.sheet.hem": "Bir sac kenarını kendi üzerine geri katlar. Keskin çapaklar içermeyen, güvenli ve sağlam kenarlar için kullanın.",
"help.sheet.manage_rules": "Sac metal kurallarını oluşturur ve düzenler: kalınlık, büküm yarıçapı, K faktörü, boşaltmalar ve boşluklar. Atölyenizin malzemesine ve takımlarına uyum sağlamak için kullanın.",
"help.sheet.path_flange": "Açık bir eskiz çizgisi zincirini izleyerek bir sac kenarı boyunca bir flanş zinciri ekler. U veya Z biçimi gibi profilleri tek adımda oluşturmak için kullanın.",
"help.sheet.perforate": "Tüm düz sac üzerine, kaydırmalı veya kare desende bir delik alanı ekler. Havalandırmalar, ızgaralar ve daha hafif paneller için kullanın.",
"help.sheet.refold": "Açılmış bir sac metal gövdeyi yeniden katlar. Düz sace özellikler ekledikten sonra kullanın.",
"help.sheet.unfold": "Bir sac metal gövdenin tüm bükümlerini açar. Bir bükümü kesmesi gereken delikler veya kesimler eklemek için kullanın, ardından yeniden katlayın.",
"help.sketch.arc.center_point": "Bir merkez noktası etrafında, bir başlangıç noktasından bir bitiş noktasına dairesel bir yay çizer. Yayın merkezi biliniyorsa kullanın; örneğin bir deliğin ya da bir dönme noktasının etrafındaki yarıçap.",
"help.sketch.arc.tangent": "Bir çizginin veya yayın ucunda başlayan ve ona teğet olarak devam eden bir yay çizer. Zinciri köşe yerine yumuşak bir dönüşle sürdürmek için kullanın.",
"help.sketch.arc.three_point": "Bir başlangıç noktasından bir bitiş noktasına, üçüncü bir noktadan geçen bir yay çizer. Yay, bilinen bir merkez etrafında değil de verilen noktalardan geçmek zorundaysa kullanın.",
"help.sketch.arc3d": "3B eskiz açıkken, uzayda üç noktadan geçen tam bir dairesel yay çizer. Eskiz düzleminden çıkan yolların ve kılavuz raylarının kıvrımları için kullanın.",
"help.sketch.auto_constrain": "Eskizin neredeyse zaten sahip olduğu kısıtlamaları, örneğin yatay, paralel veya çakışık gibi olanları ekler, ardından tam tanımlanana kadar ölçülendirir. Kabaca çizilmiş bir eskizi tek adımda kilitlemek için kullanın.",
"help.sketch.auto_constrain_from_datum": "Otomatik kısıtlama gibi çalışır, ancak konumları orijin yerine seçtiğiniz bir referans noktasından ölçer. Parça tek bir referans noktasından, örneğin bir köşeden veya bir delikten yerleştirilmişse kullanın.",
"help.sketch.blend_curve": "İki eğrinin uçlarını, ikisine de teğet, istenirse eğrilik sürekli de olan pürüzsüz bir spline ile birleştirir. Eğriler arasındaki boşluğu kırıksız kapatmak için kullanın.",
"help.sketch.break": "Bir eğriyi, başka eğrilerin onu kestiği yerlerde veya üzerine koyduğunuz noktalarda parçalara böler. Eğrinin bir bölümü kendi kısıtlamasına ihtiyaç duyuyorsa ya da tek başına silinecekse kullanın.",
"help.sketch.cancel": "Eskizden çıkar ve oluşturulduğundan ya da düzenleme için açıldığından beri yapılan her değişikliği atar. Geri al değişiklikleri geri getirir.",
"help.sketch.centerline": "Çizgileri normal çizgi ile merkez çizgisi, yani profillerin dışında bıraktığı bir eksen, arasında değiştirir. Merkez çizgisini döndürme, ayna veya simetri kısıtlaması için eksen olarak kullanın.",
"help.sketch.chamfer.distance_angle": "İki çizgi arasındaki köşeyi, ilk çizgi boyunca bir mesafe ve bir açıyla belirlenen şekilde pahlar. Bir çizim pahı uzunluk ve açı olarak veriyorsa, örneğin 2 mm × 30°, kullanın.",
"help.sketch.chamfer.equal_distance": "İki çizgi arasındaki köşeyi, her iki çizgi boyunca aynı mesafe geriden pahlar. Bir dış hatta uygulanan olağan 45° pah için kullanın.",
"help.sketch.chamfer.two_distance": "İki çizgi arasındaki köşeyi, her çizgi boyunca ayrı bir mesafeyle belirlenen şekilde pahlar. İki uzunluk olarak verilen, 45° olmayan pahlar için kullanın.",
"help.sketch.circle.center": "Bir daireyi merkezinden ve çapından çizer. Merkezi bilinen delikler, kabarıklıklar ve diğer yuvarlak özellikler için kullanın.",
"help.sketch.circle.three_point": "Üç noktadan geçen bir daire çizer. Dairenin verilen noktalardan, örneğin mevcut geometrinin noktalarından geçmesi gerekiyorsa kullanın.",
"help.sketch.circle.three_tangent": "Üç çizgiye, daireye veya yaya değen bir daire çizer. Bir daireyi üç eğri arasındaki boşluğa oturtmak için kullanın; örneğin bir üçgenin iç teğet çemberi.",
"help.sketch.circle.two_point": "Bir daireyi çapının iki ucundan çizer. Merkezi değil de dairenin kenar noktaları biliniyorsa kullanın.",
"help.sketch.circle.two_tangent": "İki çizgiye, daireye veya yaya değen, verilen boyutta bir daire çizer. İki eğri arasında sabit yarıçaplı bir yuvarlatma için kullanın.",
"help.sketch.conic": "İki uç nokta arasında, bir tepe noktası ve bir rho değeriyle biçimlenen konik bir eğri çizer. Doluluğunu düz bir hattan neredeyse keskin bir köşeye kadar ayarlamak istediğiniz yumuşak geçişler için kullanın.",
"help.sketch.constrainer": "Seçilen bir veya iki eğrinin neredeyse zaten sahip olduğu kısıtlamayı, örneğin yatay, paralel, teğet veya eşit gibi olanı uygular. Elle çizilmiş bir eskizi her seferinde bir ilişkiyle düzene sokmak için kullanın.",
"help.sketch.constraint.coincident": "Bir noktayı başka bir noktanın, bir eğrinin veya bir eskiz ekseninin üzerine oturtur. Bir profildeki boşlukları kapatmak veya bir noktayı çizgi üzerine koymak için kullanın.",
"help.sketch.constraint.collinear": "İki çizgiyi aynı doğru üzerine getirir. Kesintiye uğramış kenarları, örneğin bir çentiğin iki yanını hizalamak için kullanın.",
"help.sketch.constraint.concentric": "İki daireye veya yaya aynı merkezi verir. Halkalar, düz havşalar ve omuzlu miller için kullanın.",
"help.sketch.constraint.curvature": "Bir uç noktada buluşan iki eğrinin aynı eğrilikle devam etmesini sağlar (G2). Teğet bir birleşimin yeterince pürüzsüz olmadığı yerlerde, örneğin görünen yüzeylerde kullanın.",
"help.sketch.constraint.equal": "Çizgileri aynı uzunlukta, daireleri ve yayları aynı yarıçapta yapar. Tek bir ölçünün birbirine uyan birkaç özelliği yönetmesi için kullanın.",
"help.sketch.constraint.fix": "Noktaları veya eğrileri bulundukları yere sabitler ya da yeniden serbest bırakır. Eskizi sürüklediğinizde veya çözdüğünüzde hareket etmemesi gereken geometri için kullanın.",
"help.sketch.constraint.horizontal_vertical": "Bir çizgiyi ya da iki nokta arasındaki çizgiyi, hangisine daha yakınsa yatay veya dikey yapar. Bir dış hattı eskiz eksenlerine hizalamak için kullanın.",
"help.sketch.constraint.midpoint": "Bir noktayı bir çizginin ortasına yerleştirir ya da iki çizginin orta noktalarını çakıştırır. Geometriyi bir kenar üzerinde ortalamak için kullanın.",
"help.sketch.constraint.parallel": "İki çizgiyi paralel yapar. Diğer ölçüler değiştiğinde paralel kalması gereken kenarlar için kullanın.",
"help.sketch.constraint.perpendicular": "İki çizgiyi dik açıyla buluşturur. Eskiz eksenleri üzerinde olmayan çizgiler arasındaki dik köşeler için kullanın.",
"help.sketch.constraint.polygon": "Kapalı bir çizgi zincirini düzgün bir çokgen yapar: eşit kenarlar ve her köşe tek bir daire üzerinde. Elle çizilmiş bir çokgeni düzgün hâle getirmek ve öyle tutmak için kullanın.",
"help.sketch.constraint.symmetry": "İki noktanın veya eğrinin bir çizgiye göre ya da bir noktaya göre birbirinin aynası olmasını sağlar. Bir tarafı değiştirdiğinizde profilin simetrik kalması için kullanın.",
"help.sketch.constraint.tangent": "İki eğriyi, örneğin bir çizgiyi ve bir yayı, teğet olarak değdirir. Kırıksız, pürüzsüz birleşimler için kullanın.",
"help.sketch.construction": "Eğrileri normal geometri ile profillerin dışında bıraktığı yapı geometrisi arasında değiştirir. Yapı eğrilerini yerleşim, referans ve ölçüler için yardımcı olarak kullanın.",
"help.sketch.construction_line": "İki noktadan geçen sonsuz bir yardımcı doğru oluşturun. Profilleri bölmeden bir eskizi kurgulamak için kullanın.",
"help.sketch.construction_line.angle": "Eskizin X ekseninden belirli bir açıyla sonsuz bir yardımcı doğru oluşturun. Noktayı seçip açıyı yazın veya yönünü seçin.",
"help.sketch.construction_line.bisector": "Kesişen iki düz eskiz çizgisini seçin, ardından iki açıortaydan birini seçin. Sonuç, kaynak çizgilerini izler.",
@@ -1412,11 +1580,71 @@
"help.sketch.construction_line.tangent_external": "Bir daire veya dairesel yay seçin, ardından bir dış nokta ve bir teğet çözümü seçin. Önizlemeler yalnızca çizilen yay üzerindeki değme noktalarını gösterir.",
"help.sketch.construction_line.tangent_two": "İki daire veya dairesel yay seçin, ardından önizlemede ortak bir teğet seçin. Değme noktaları çizilen eğriler üzerinde olmalıdır.",
"help.sketch.construction_line.vertical": "Bir noktadan geçen sonsuz dikey bir yardımcı doğru oluşturun. Dikey kısıtlaması sonraki düzenlemelerde de korunur.",
"help.sketch.copy": "Seçili eskiz eğrilerini ve noktalarını, aralarındaki kısıtlamalar ve ölçülerle birlikte kopyalar. Bunları bu eskize veya başka bir eskize yapıştırın.",
"help.sketch.create": "Bir düzlemde veya modelin düz bir yüzünde yeni bir 2B eskiz başlatır. Her ekstrüzyon, döndürme ve süpürme bir eskizle başlar.",
"help.sketch.cut": "Seçili eskiz geometrisini kopyalar ve tek bir geri alma adımında eskizden siler. Bu eskizin başka bir yerine veya başka bir eskize yapıştırın.",
"help.sketch.dimension": "Sürücü bir ölçü ekler: seçtiğinize göre bir uzunluk, mesafe, açı, yarıçap veya çap. Bir değer ya da parametre adı yazın, eskiz onu izler.",
"help.sketch.edit": "Mevcut bir eskizi düzenlemek için açar. Üzerine kurulan özellikler, eskizi bitirdiğinizde güncellenir.",
"help.sketch.ellipse": "Bir elipsi merkezinden, büyük ekseninin ucundan ve küçük kenarındaki bir noktadan çizer. Oval açıklıklar, kamlar ve diğer uzamış yuvarlak biçimler için kullanın.",
"help.sketch.equation_curve": "Formüllerden bir eğri çizer: bir aralık boyunca x(t) ve y(t) ya da y = f(x). Formüller parametre kullanabilir ve eğri onları izler: sinüs dalgası, spiral veya bir dişli dişinin evolventi için kullanın.",
"help.sketch.extend": "Bir çizgiyi veya yayı yolundaki en yakın eğriye kadar uzatır ya da iki eğriyi buluşana kadar büyütür. Kırpma veya düzenlemeden sonra bir profildeki boşlukları kapatmak için kullanın.",
"help.sketch.fillet": "İki çizginin veya yayın buluştuğu köşeyi verilen yarıçaplı bir yayla yuvarlar. Birlikte yuvarlatılan birkaç köşe aynı yarıçapı paylaşır.",
"help.sketch.finish": "Eskizden çıkar ve modele döner. Kapalı profilleri artık Ekstrüzyon, Döndür ve diğer özellikler için hazırdır.",
"help.sketch.finish_auto_constrain": "Eskize Otomatik kısıtlama uygular, ardından eskizi bitirir. Bir eskizi tek adımda tam tanımlı bırakmak için kullanın.",
"help.sketch.fit_curves_to_section": "Bir ağ veya katı gövdeyi eskiz düzlemiyle keser ve kesite çizgiler ile yaylar uydurur. Taranmış veya içe aktarılmış bir parçayı düzenlenebilir bir eskiz olarak yeniden kurmak için kullanın.",
"help.sketch.include_3d": "Model kenarlarını, köşe noktalarını ve diğer eskizlerin eğrilerini bu eskize bağlı referanslar olarak getirir; düzleminin dışında kalanları ona düzleştirir. Eskiz düzleminde bulunmayan geometri üzerine kurmak için kullanın.",
"help.sketch.infinite": "Çizgileri normal çizgi ile tüm görünüm boyunca uzanan sonsuz yardımcı doğrular arasında değiştirir. Hiçbir zaman kısa kalmayan yerleşim referansları olarak kullanın.",
"help.sketch.insert_dxf": "Bir DXF çiziminin eğrilerini, belirlediğiniz ölçekte, açıda ve konumda bir eskize okur. Başka bir programdan gelen 2B çizim üzerine, örneğin lazerle kesilecek bir dış hat üzerine kurmak için kullanın.",
"help.sketch.insert_svg": "Bir SVG çiziminin yollarını, belirlediğiniz ölçekte, açıda ve konumda bir eskize okur. Bir logoyu veya vektör dış hattını ekstrüzyon yapabileceğiniz eğrilere dönüştürmek için kullanın.",
"help.sketch.inspect": "Açık eskiz için bir rapor açar: kaç serbestlik derecesi kaldığını ve tam kısıtlı olup olmadığını. Eskizi bitirmeden önce nelerin hâlâ hareket ettiğini öğrenmek için kullanın.",
"help.sketch.intersect": "Gövdelerin, yüzlerin, kenarların veya diğer eskizlerin eskiz düzlemini kestiği eğrileri ya da noktaları ekler. Bağlı kalır ve model değiştiğinde onu izler.",
"help.sketch.intersection_curve": "İki gövdenin veya yüzün buluştuğu yerde, onlara bağlı 3B eğriler oluşturur. Bunları modeli izleyen yollar veya kılavuz raylar olarak kullanın.",
"help.sketch.isoparametric_curve": "Bir yüzün U veya V yönü boyunca, seçtiğiniz bir noktadan geçen ve yüze bağlı bir 3B eğri oluşturur. Yüzeyi izleyen bir yol veya bölme çizgisi olarak kullanın.",
"help.sketch.line": "Bağlantılı çizgileri nokta nokta, açık bir zincir veya kapalı bir dış hat olarak çizer. Çoğu profil için temel araçtır.",
"help.sketch.line.midpoint": "Bir çizgiyi orta noktasından bir uca doğru çizer; diğer uç yansıtılır. Bir nokta etrafında ortalanmış çizgiler, örneğin simetrik bir kenar için kullanın.",
"help.sketch.line3d": "3B eskiz açıkken, uzaydaki noktalar arasında bağlantılı düz çizgiler çizer. Eskiz düzleminden çıkan yollar ve çerçeveler için kullanın.",
"help.sketch.mirror": "Eskiz eğrilerini ve noktalarını bir çizgi veya eksen boyunca aynalar ve simetri kısıtlamaları ekler. Simetrik bir profilin yarısını çizip tamamlamak için kullanın.",
"help.sketch.move": "Eskiz eğrilerini ve noktalarını ya da kopyalarını taşır veya döndürür. Geometrinin şeklini ve kısıtlamalarını koruyarak yerini değiştirmek için kullanın.",
"help.sketch.offset": "Bir eğri zincirinin kopyasını, bir tarafta ya da her iki tarafta belirli bir mesafede oluşturur. Cidarlar, dış hatlar ve açıklıklar için kullanın; mesafe düzenlenebilir bir ölçü olarak kalır.",
"help.sketch.paste": "Kopyaladığınız veya kestiğiniz eskiz geometrisini etkin eskize yapıştırır. Bir noktaya yerleştirin ya da bir ofsetle kaydırın.",
"help.sketch.pattern.circular": "Eskiz geometrisini bir merkez noktası etrafında, tam bir daire veya belirli bir açı boyunca kopyalar. Cıvata daireleri, kollar ve dişler için kullanın.",
"help.sketch.pattern.rectangular": "Eskiz geometrisini belirli aralıklarla satırlar ve sütunlar halinde kopyalar. Delik, yuva veya havalandırma ızgaraları için kullanın.",
"help.sketch.point": "Bir eskiz noktası yerleştirir. Ölçüler, kısıtlamalar, delik merkezleri veya sonraki özellikler için referans olarak kullanın.",
"help.sketch.point3d": "3B eskiz açıkken uzayda bir nokta yerleştirir. 3B eğriler ve yollar için referans olarak kullanın.",
"help.sketch.polygon.circumscribed": "Bir dairenin etrafına, merkezinden bir kenarın ortasına kadar olan mesafeye göre boyutlandırılmış düzgün bir çokgen çizer. Anahtar ağzı genişliği biliniyorsa, örneğin altıgen bir somun için kullanın.",
"help.sketch.polygon.edge": "Düzgün bir çokgeni bir kenarının iki ucundan çizer. Bir kenarın uzunluğu ve konumu biliniyorsa kullanın.",
"help.sketch.polygon.inscribed": "Bir dairenin içine, merkezinden bir köşeye kadar olan mesafeye göre boyutlandırılmış düzgün bir çokgen çizer. Köşeler arası ölçü biliniyorsa kullanın.",
"help.sketch.project": "Model kenarlarını, yüzlerini, köşe noktalarını ve diğer eskizlerin eğrilerini bu eskizin düzlemine yansıtarak getirir. Bağlı kalır ve model değiştiğinde onu izler.",
"help.sketch.project_to_surface": "Diğer eskizlerin eğrilerini bu eskizin normali boyunca bir yüze, bağlı 3B eğriler olarak yansıtır. Bir logoyu, bölme çizgisini veya yolu eğri bir yüzeye koymak için kullanın.",
"help.sketch.rectangle.center": "Bir dikdörtgeni merkezinden ve bir köşesinden çizer. Bir nokta, örneğin orijin, etrafında ortalanmış dış hatlar için kullanın.",
"help.sketch.rectangle.rounded": "Dört köşesi de tek bir yarıçapla yuvarlatılmış bir dikdörtgen çizer. Yuvarlatılmış köşeli plakalar, kapaklar ve açıklıklar için kullanın.",
"help.sketch.rectangle.three_point": "Bir dikdörtgeni bir kenarından ve karşı taraftaki bir noktadan çizer. Eskiz eksenlerine açılı duran dikdörtgenler için kullanın.",
"help.sketch.rectangle.two_point": "Bir dikdörtgeni iki karşılıklı köşesinden çizer. Plakaların, blokların ve ceplerin dış hatları için kullanın.",
"help.sketch.scale": "Eskiz eğrilerini ve noktalarını bir taban noktası etrafında bir çarpanla ölçekler. Bir eskizin bir bölümünü yeniden çizmeden boyutlandırmak için kullanın.",
"help.sketch.slot.arc_center": "Merkezi, başlangıcı ve bitişiyle belirlenen bir yay boyunca, verilen genişlikte eğri bir yuva çizer. Bir dönme noktası etrafındaki ayar yuvaları için kullanın.",
"help.sketch.slot.arc_three_point": "Üç noktadan geçen bir yay boyunca, verilen genişlikte eğri bir yuva çizer. Yuvanın yolunun verilen noktalardan geçmesi gerekiyorsa kullanın.",
"help.sketch.slot.center_point": "Verilen genişlikte düz bir yuvayı, merkezinden bir uç yayının merkezine kadar çizer. Bir nokta etrafında ortalanmış yuvalar için kullanın.",
"help.sketch.slot.center_to_center": "Verilen genişlikte düz bir yuvayı, iki uç yayının merkezleri arasında çizer. Merkezden merkeze ölçülendirilen yuvalar, örneğin vida ayar yuvaları için kullanın.",
"help.sketch.slot.overall": "Verilen genişlikte düz bir yuvayı, bir dış ucundan diğerine kadar çizer. Yuvanın toplam uzunluğu önemliyse kullanın.",
"help.sketch.spline.control_point": "Üzerinden geçmediği kontrol noktalarıyla biçimlenen kübik bir spline çizer. Noktaları oynatarak şekillendirdiğiniz pürüzsüz, akıcı eğriler için kullanın.",
"help.sketch.spline.control_point_5": "Kontrol noktalarıyla biçimlenen 5. dereceden bir spline çizer. Eğrilerin daha pürüzsüz bir eğrilikle birleşmesi gereken yerlerde, örneğin görünen stil yüzeylerinde kullanın.",
"help.sketch.spline.fit_point": "Yerleştirdiğiniz her noktadan geçen, açık veya kapalı pürüzsüz bir spline çizer. Bir şekli bilinen noktalardan geçirerek izlemek için kullanın.",
"help.sketch.spline3d": "3B eskiz açıkken, uzayda noktalardan geçen pürüzsüz bir eğri çizer. Eskiz düzleminden çıkan süpürme yolları ve kablo güzergâhları için kullanın.",
"help.sketch.spun_profile": "Bir gövde bir eksen etrafında dönerken taradığı dış hattı eskiz düzleminde oluşturur. Tornalanmış bir parçanın siluetini döndürme veya çizim için elde etmek amacıyla kullanın.",
"help.sketch.text": "Eskize seçilen yazı tipi, yükseklik ve açıyla metin yazar; kelimeleri parametreleri izleyebilir. Etiketler ve yazılar için ekstrüzyon yapın veya kabartın.",
"help.sketch.transform": "Eskiz geometrisini bir merkez noktası etrafında tek adımda ölçekler, döndürür ve taşır. Bir seçimin yerini ve boyutunu aynı anda değiştirmek için kullanın.",
"help.sketch.trim": "Bir eğrinin, tıkladığınız yerin çevresindeki en yakın kesişimler arasında kalan parçasını kaldırır. Üst üste binen çizgileri temizleyip kapalı bir profil elde etmek için kullanın.",
"help.solid.align": "Seçili gövdeleri, üzerlerindeki bir nokta, yüz veya düzlem başka bir yerdeki nokta, yüz veya düzlemle buluşacak şekilde taşır. Ofseti ölçmeden bir parçayı diğerinin yanına yerleştirmek için kullanın.",
"help.solid.boundary_fill": "Üst üste binen araç gövdelerinin çevrelediği bölgelerden katılar oluşturur; yalnızca seçtiğiniz bölgeleri doldurur. Bir şekli, birkaç gövdenin birlikte sınırladığı boşluktan oluşturmak için kullanın.",
"help.solid.bounding_solid": "Seçili gövdeleri çevreleyen, isteğe bağlı paylı bir kutu oluşturur. Bir parçanın toplam boyutunu görmek ya da işleneceği ham malzeme olarak ele almak için kullanın.",
"help.solid.box": "Uzunluk, genişlik ve yükseklikten, bir köşe noktasından veya bir noktaya ortalanmış bir kutu oluşturur. Hızlı bir blok, yer tutucu ya da içine özellikler kesilecek bir gövde için kullanın.",
"help.solid.chamfer": "Seçili kenarları, belirlediğiniz mesafede düz bir pahla keser. Keskin kenarları kırmak veya bir pim ya da vidanın girişini kolaylaştırmak için kullanın.",
"help.solid.coil": "Çap, tur sayısı, yükseklik veya adım ile yuvarlak ya da kare bir kesitten, yay gibi helezon bir gövde oluşturur. Yaylar, helezonlar ve helezon kabartmalar için kullanın.",
"help.solid.combine": "Gövdeleri birleştirir, bir hedef gövdeden çıkarır veya yalnızca paylaştıkları hacmi tutar ve araç gövdelerini tutabilir. Parçaları kaynaştırmak, bir şekli diğeriyle kesmek veya iki gövdenin örtüştüğü yeri bulmak için kullanın.",
"help.solid.cone": "Bir taban dairesi ve bir yükseklikten koni oluşturur; üstün de yarıçapı varsa kesik koni olur. Konik geçişler, huniler, havşalar ve sivri uçlar için kullanın.",
"help.solid.cylinder": "Yarıçap veya çap ile yükseklikten, bir eksen boyunca bir noktanın üzerinde duran bir silindir oluşturur. Miller, pimler, göbekler ve yuvarlak ham parçalar için kullanın.",
"help.solid.draft": "Seçili yüzleri, nötr bir düzlemden ölçülen belirlediğiniz açı kadar eğerek koniklik verir. Kalıplanan veya dökülen parçaların kalıptan kolayca çıkması için kullanın.",
"help.solid.emboss": "Metin veya logo gibi eskiz profillerini bir yüzden yukarı kaldırır ya da içine gömer. Düz veya yuvarlak yüzlerdeki yazılar, etiketler ve işaretler için kullanın.",
"help.solid.extrude": "Bir eskiz profilini, malzeme ekleyerek veya kaldırarak bir mesafe boyunca 3B'ye taşır. Düz bir konturu blok, kabarıklık veya cep haline getirmek için kullanın.",
"help.solid.fillet": "Seçili kenarları, belirlediğiniz yarıçapta pürüzsüz dairesel bir uyumla yuvarlatır. Keskin kenarları sağlamlık, konfor veya görünüm için yumuşatmak amacıyla kullanın.",
"help.solid.hole": "Bir yüzeyde seçtiğiniz noktada, belirlediğiniz çapta yuvarlak bir delik deler. Vida boşlukları, pimleri ve diğer basit yuvarlak açıklıklar için kullanın.",
@@ -1425,20 +1653,60 @@
"help.solid.move": "Seçili gövdeleri ya da kopyalarını, belirlediğiniz mesafe ve açıyla taşır veya döndürür. Bir gövdenin yerini değiştirmek ya da başka bir yerde ikincisini oluşturmak için kullanın.",
"help.solid.offset_face": "Seçili yüzleri belirlediğiniz mesafe kadar içeri veya dışarı iter, çevrelerindeki yüzler de buna uyar. Eskizi düzenlemeden bir duvarı kalınlaştırmak, bir cebi derinleştirmek veya bir çıkıntıyı yükseltmek için kullanın.",
"help.solid.pattern.circular": "Seçili nesneleri, belirlediğiniz adet ve toplam açı boyunca bir eksen etrafında yineler. Cıvata daireleri, jant kolları, kanatçıklar ve dişler için kullanın.",
"help.solid.pattern.path": "Özellikleri veya gövdeleri bir eskiz yolu boyunca adet ve aralıkla kopyalar. Eğri bir kenar boyunca delikler veya bir ray boyunca parçalar için kullanın.",
"help.solid.pattern.rectangular": "Seçili nesneleri, belirlediğiniz adet ve aralıkla bir veya iki yönde yineler. Delik, nervür, pim veya ayak dizileri ve ızgaraları için kullanın.",
"help.solid.pipe": "Eskiz eğrilerinden oluşan bir yol boyunca, dolu veya et kalınlıklı içi boş yuvarlak bir boru oluşturur. Borular, teller, kablolar ve raylar için kullanın.",
"help.solid.press_pull": "Bir yüzü sürüklerken malzeme ekler veya kaldırır, kenarları sürüklerken yuvarlatır. Doğrudan model üzerinde hızlı değişiklikler için kullanın.",
"help.solid.remove": "Seçili gövdeleri tasarımdan, zaman çizelgesindeki bu noktadan itibaren çıkarır; önceki adımlar onları korur. Artık gerekmeyen bir kesici araç gibi yardımcı bir gövdeyi atmak için kullanın.",
"help.solid.replace_face": "Seçili düz yüzleri bir düzleme veya paralel bir yüze taşır, gövde de onunla buluşmak için büyür veya küçülür. Bir yüzü başka bir parçayla ya da bir yapı düzlemiyle aynı hizaya getirmek için kullanın.",
"help.solid.revolve": "Bir eskiz profilini bir eksen etrafında döndürerek yuvarlak bir katı oluşturur. Miller, topuzlar, kaseler ve bir merkez çizgisi etrafında yuvarlak olan parçalar için kullanın.",
"help.solid.rib": "Açık bir eskiz eğrisi boyunca, gövdenin bir sonraki yüzlerine kadar uzanan ince bir cidar ekler. Cidarları ve köşeleri sağlamlaştırmak için, örneğin kalıplanmış veya basılmış parçalarda kullanın.",
"help.solid.scale": "Seçili gövdeleri bir çarpanla büyütür veya küçültür; her yönde aynı ya da eksen başına ayrı olabilir. İçe aktarılan bir şekli yeniden boyutlandırmak veya büzülme payı bırakmak için kullanın.",
"help.solid.shell": "Bir katıyı içini oyarak boşaltır, belirlediğiniz kalınlıkta duvarlar bırakır ve seçtiğiniz yüzleri açabilir. Kutular, kapaklar ve diğer ince cidarlı parçalar için kullanın.",
"help.solid.sphere": "Bir merkez noktası etrafında, yarıçap veya çaptan bir küre oluşturur. Toplar, topuzlar ve yuvarlatılmış uçlar için kullanın.",
"help.solid.split_body": "Bir gövdeyi bir düzlemle, başka bir gövdenin yüzüyle veya bir eskiz çizgisiyle ayrı gövdelere keser. Ayrı ayrı basılan, işlenen veya renklendirilen parçalar elde etmek için kullanın.",
"help.solid.split_face": "Seçili yüzleri, gövdeyi kesmeden bir düzlem, başka bir gövdenin yüzü veya eskiz eğrileri boyunca böler. Bir yüzün bir kısmına kendi koniklik, renk veya ofsetini vermek için kullanın.",
"help.solid.sweep": "Bir eskiz profilini bir yol boyunca sürükleyerek katı oluşturur. Borular, raylar, saplar ve bir eğriyi izleyen sabit kesitli parçalar için kullanın.",
"help.solid.thread": "Silindirik bir yüze, kozmetik diş olarak ya da gövdeye kesilmiş olarak bir ISO metrik diş ekler. Cıvatalar, dişli delikler ve basılmış vida parçaları için kullanın.",
"help.solid.torus": "Ekseni etrafındaki bir büyük yarıçap ve yuvarlak kesiti için bir küçük yarıçaptan halka oluşturur. O-ringler, saplar ve yuvarlak boncuklar için kullanın.",
"help.solid.web": "Her açık eskiz eğrisi boyunca, her biri gövdenin bir sonraki yüzlerine kadar uzanan ince bir cidar ekler. Kasaların ve tepsilerin içindeki destek cidarlarından oluşan bir ızgara için kullanın.",
"help.surface.blend": "İki gövdenin kenarları arasında köprü kuran, ikisine de teğet veya eğrilik sürekli bir yüzey oluşturur. İki yüzeyi bir boşluk boyunca pürüzsüzce birleştirmek için kullanın.",
"help.surface.boundary": "İki ila dört eskiz eğrisinden oluşan bir döngüyü veya bir eğri ağını dolduran bir yüzey oluşturur. Kenarlarıyla tanımlanan serbest biçimli paneller için kullanın.",
"help.surface.extend": "Bir yüzeyi kenarlarının ötesine, bir mesafe kadar ya da bir düzleme veya yüze kadar uzatır. Yüzeyleri kırpmadan veya dikmeden önce üst üste bindirmek için kullanın.",
"help.surface.extrude": "Eskiz eğrilerini veya profillerini bir mesafe boyunca iterek kapaksız, yalnızca cidarlardan oluşan bir yüzey elde eder. İnce cidarlar ile kesme veya bölme araçları için kullanın.",
"help.surface.fair": "Serbest biçimli yüzlerin içini düzgünleştirir; kenarları yerinde kalır. Bir yüzeydeki çıkıntıları ve dalgalı yansımaları gidermek için kullanın.",
"help.surface.loft": "İki veya daha fazla kesitten sırayla geçen, kapaksız bir yüzey oluşturur. Kabuklar ve farklı şekiller arasındaki geçişler için kullanın.",
"help.surface.match": "Bir yüzeyin kenarını, başka bir gövdenin kenarıyla teğet veya eğrilik uyumuyla buluşacak şekilde yeniden kurar. İki yüzey arasındaki bir birleşim yerini pürüzsüzce kapatmak için kullanın.",
"help.surface.offset": "Yüzlerin kopyasını, normalleri boyunca bir mesafede yeni bir yüzey gövdesi olarak oluşturur. Kaplamalar, açıklıklar veya bir cidarın öbür yüzü için kullanın.",
"help.surface.patch": "Bir eskiz bölgesini veya kapalı bir kenar döngüsünü, düz ya da pürüzsüzce eğri bir yüzle doldurur. Bir yüzey gövdesindeki delikleri kapatmak için kullanın.",
"help.surface.reverse_normal": "Bir yüzey gövdesinin yüzlerini ters çevirir; böylece dış tarafları diğer yöne bakar. Yüzler içe bakıyorsa kalınlaştırmadan veya dikmeden önce kullanın.",
"help.surface.revolve": "Eskiz eğrilerini veya profillerini bir eksen etrafında döndürerek kapaksız bir yüzey elde eder. Abajurlar, kaseler ve nozullar gibi yuvarlak kabuklar için kullanın.",
"help.surface.ruled": "Bir kenar zincirinden, yüzün normali veya teğeti boyunca ya da bir açıyla çıkan düz çizgilerden oluşan bir şerit oluşturur. Koniklikli cidarlar, taşma yüzeyleri ve ayrım yüzeyleri için kullanın.",
"help.surface.stitch": "Yüzey gövdelerini ortak kenarları boyunca birbirine diker; kapandıklarında katı olur. Bir yüzey kümesini tek bir gövdeye dönüştürmek için kullanın.",
"help.surface.sweep": "Eskiz eğrilerini veya profillerini bir yol boyunca hareket ettirerek kapaksız bir yüzey oluşturur. Oluklar, çıtalar ve bir yolu izleyen diğer ince şekiller için kullanın.",
"help.surface.thicken": "Bir yüzey gövdesine kalınlık vererek onu katıya dönüştürür. Yüzeylerden basılabilir veya işlenebilir parçalar elde etmek için kullanın.",
"help.surface.trim": "Bir yüzeyi bir düzlemle, başka bir yüzeyle veya eskiz eğrileriyle keser ve seçtiğiniz tarafı tutar. Yüzeyleri dikmeden önce şekle kesmek için kullanın.",
"help.surface.unstitch": "Bir gövdenin yüzlerini kendi yüzey gövdelerine ayırır; bir katı yüzeylere dağılır. Bir gövdenin tek tek yüzlerini yeniden işlemek için kullanın.",
"help.surface.untrim": "Bir yüzdeki delikleri kaldırır ya da dış sınırını yüzeyin doğal sınırlarına geri getirir. Kırpmadan sonra yüzeyin tamamını geri almak için kullanın.",
"help.third_party": "Üçüncü taraf lisansları",
"help.timeline.compute_all": "Zaman çizelgesindeki her özelliği baştan yeniden oluşturur. Modeli tazelemek ve hangi özelliklerin başarısız olduğunu görmek için kullanın.",
"help.timeline.delete": "Seçili özellikleri zaman çizelgesinden siler; bir eskizi silmek ondan oluşturulan özellikleri de siler. Artık istenmeyen bir adımı kaldırmak için kullanın.",
"help.timeline.dependents": "Bir özellikle birlikte silinecek özellikleri ve onsuz başarısız olacak özellikleri listeler. Bir özelliği silmeden veya değiştirmeden önce kullanın.",
"help.timeline.play": "Kalan özellikleri, her yeniden hesaplamadan sonra yarım saniye bekleyerek tek tek yeniden oynatır. Durdurmak için bu komutu yeniden çalıştırın veya Esc tuşuna basın; Sona git hemen atlar.",
"help.view.apply": "Görünümü ön, üst veya izometrik gibi standart bir yöne ya da kayıtlı adlandırılmış bir görünüme çevirir. Modele sabit bir açıdan bakmak için kullanın.",
"help.view.delete": "Kayıtlı bir adlandırılmış görünümü siler. Model değişmez.",
"help.view.fit": "Tüm modelin veya seçimin görünümü doldurması için yakınlaştırır ve kaydırır. Model görüş alanından çıktığında kullanın.",
"help.view.grid": "Görünüm alanındaki ızgarayı gösterir veya gizler. Modelleme sırasında boyut ve yön kılavuzu olarak kullanın.",
"help.view.ground_shadow": "Modelin zemindeki gölgesini gösterir veya gizler. Yüksekliği ve konumu daha kolay değerlendirmek için kullanın.",
"help.view.home": "Görünümü ana yöne geri çevirir ve modeli sığdırır. Bilinen bir görünüme hızla dönmek için kullanın.",
"help.view.list": "Tasarımda kayıtlı adlandırılmış görünümleri listeler. Daha önce kaydettiğiniz bir görünümü bulmak için kullanın.",
"help.view.navigate": "Görünümü adımlarla, örneğin sola çeyrek tur, döndürür, kaydırır veya yakınlaştırır. Kamerayı sürüklemek yerine hassas biçimde hareket ettirmek için kullanın.",
"help.view.navigation_bar": "Görünüm alanının altındaki gezinme çubuğunu gösterir veya gizler. Daha fazla yer için gizleyin, görünüm araçlarına fareyle ulaşmak için gösterin.",
"help.view.rename": "Kayıtlı bir adlandırılmış görünüme yeni bir ad verir. Görünümün kendisi aynı kalır.",
"help.view.save": "Geçerli kamera konumunu tasarımda adlandırılmış bir görünüm olarak kaydeder. Daha sonra aynı açıya, örneğin ekran görüntüleri için, dönmek amacıyla kullanın.",
"help.view.spin": "Görünümü, bir sonraki tıklamaya veya tuşa kadar modelin etrafında sürekli döndürür. Bir modeli her yönden sunmak için kullanın.",
"help.view.tool": "Döndürme, kaydırma veya yakınlaştırma gibi bir kamera aracını sabitler; böylece siz kapatana kadar sol fare tuşuyla sürüklemek görünümü hareket ettirir. Trackpad'de veya orta fare tuşu olmadan kullanın.",
"help.view.visual_style": "Modelin nasıl çizileceğini değiştirir: kenarlı ya da kenarsız gölgeli, tel kafes veya gizli kenarlı. İçini görmek için tel kafes, temiz bir görünüm için gölgeli kullanın.",
"history.sketch_under_constrained": "Eksik kısıtlanmış ({count} serbestlik derecesi)",
"history.sketch_under_constrained_one": "Eksik kısıtlanmış ({count} serbestlik derecesi)",
"hole_presets.confirm_delete": "Silmeyi onayla",
@@ -1615,6 +1883,10 @@
"material.selection.mixed": "Farklı malzemeler",
"measure.at": "Konum",
"measure.item": "Öğe {number}",
"measure.quick_copied": "Ölçüm kopyalandı",
"measure.quick_copy": "Ölçümü kopyalamak için tıklayın",
"measure.quick_edges": "{count} kenar",
"measure.quick_faces": "{count} yüz",
"messages.ago_h": "{n} sa. önce",
"messages.ago_min": "{n} dk. önce",
"messages.ago_s": "{n} sn. önce",
@@ -1648,6 +1920,7 @@
"nav.hfss.help": "Alt+sol sürükleme kaydırır, Shift+Alt+sol yakınlaştırır, boş alanda Ctrl+sol sürükleme döndürür",
"nav.inventor.help": "Orta sürükleme kaydırır, Shift+orta döndürür, Ctrl+orta yakınlaştırır, sağ sürükleme döndürür",
"nav.maya.help": "Alt+sol sürükleme döndürür, Alt+orta kaydırır, Alt+sağ yakınlaştırır; orta sürükleme ayrıca kaydırır",
"nav.nx.help": "Orta sürükleme döndürür, Shift+orta kaydırır (NX'te orta + sağ), Ctrl+orta yakınlaştırır (NX'te orta + sol); sağ sürükleme kameraya dokunmaz",
"nav.openscad.help": "Boşlukta sol sürükleme döndürür, Shift+sol sürükleme kutu seçimi yapar, eskiz geometrisi sürükleyerek düzenlenir; sağ veya orta sürükleme kaydırır, Shift+sağ veya Shift+orta sürükleme yakınlaştırır",
"nav.perspective.sketch": "Eskiz düzenleme dik görünüm kullanır. Perspektife geçmek için eskizi bitirin.",
"nav.right_drag_orbits.help": "Kapalı: sağ sürükleme kameraya dokunmaz ve sağ tuş yalnızca bağlam menüsünü açar. SolidWorks fare eşlemesini seçmek bunu kapatır.",
@@ -1767,6 +2040,11 @@
"not a move": "bir taşıma değil",
"not a number": "bir sayı değil",
"open a sketch first": "önce bir eskiz açın",
"parameters.apply_live": "Her değişikliği alanından çıkarken uygula",
"parameters.apply_live_tip": "Kapalıyken: değişiklikler Uygula veya Tamam'a kadar bekler, ardından tasarım hepsi için bir kez yeniden oluşturulur. İptal veya Esc onları atar.",
"parameters.held": "Uygula'yı bekleyen {count} değişiklik",
"parameters.held_hint": "İfadeleri ve birimleri düzenleyin. Değişiklikler Uygula veya Tamam'a kadar bekler.",
"parameters.held_one": "Uygula'yı bekleyen 1 değişiklik",
"parts.automatic_name": "otomatik",
"parts.dimension.across_flats": "Anahtar ağzı",
"parts.dimension.bore": "Delik çapı",
@@ -1789,6 +2067,8 @@
"parts.family.set_screw": "Alyan tespit vidası, düz uçlu",
"parts.family.socket_head_cap_screw": "Alyan başlı cıvata",
"parts.family.washer": "Düz rondela",
"parts.holes": "Delikler (isteğe bağlı)",
"parts.placement_hint": "her birine bir parça yerleştirmek için bir veya daha fazla delik seçin ya da OK ile orijine yerleştirin",
"pattern.alignment_2": "Hizalama 2",
"pattern.alignment_hint": "Adet, orijinali içerir. Ortala, kopyaları iki yana dağıtır; çift adetlerde yönü ters çevirme, fazladan kopyanın hangi tarafta olacağını belirler.",
"pattern.direction_1": "Yön 1",
@@ -1862,6 +2142,8 @@
"prefs.ctrl_cmd": "Ctrl / Cmd",
"prefs.curved_surfaces": "Eğri yüzeyler",
"prefs.curves": "Eğri yüzeyler",
"prefs.dark_parts_shading": "Koyu parçaların biçimini koru",
"prefs.dark_parts_shading_help": "Görünümü doğrusal ışıkta, yumuşak bir gökyüzü dolgusuyla gölgele; böylece koyu yüzler siyaha dönmek yerine degradelerini korur",
"prefs.dead_zone_note": "Taramalı bant ölü bölgedir: içindeki hareket yok sayılır.",
"prefs.default": "varsayılan",
"prefs.design": "Tasarım varsayılanları",
@@ -1876,6 +2158,8 @@
"prefs.edges": "Kenarlar ve gölgeleme",
"prefs.extend": "Uzat",
"prefs.extra_navigation": "Boşlukta Ctrl+sol sürükleme döndürür; kaydırmak için Space tuşunu basılı tutun.",
"prefs.extrude_view_isometric": "Ekstrüzyon açıldığında görünümü izometriğe çevir",
"prefs.extrude_view_return": "Ekstrüzyon kapandığında önceki görünüme dön",
"prefs.follows_os": "İşletim sistemini izler",
"prefs.font": "Yazı tipi",
"prefs.font_fallback": "Seçilen yazı tipinde bulunmayan glifler yerleşik yazı tipine düşer, böylece hiçbir etiket boş kutu göstermez.",
@@ -1891,6 +2175,7 @@
"prefs.graphics_card_auto": "Otomatik",
"prefs.graphics_card_missing": "Kaydedilen ekran kartı kullanılamıyor; Otomatik kullanılıyor.",
"prefs.graphics_card_restart": "SolidCraft'ı yeniden başlattıktan sonra etkili olur. WGPU_ADAPTER_NAME bu seçimi geçersiz kılar.",
"prefs.graphics_card_unused": "Kaydedilen ekran kartı bu pencere için kullanılmadı; kullanılan kart Yardım › SolidCraft hakkında içinde ve durum çubuğunda gösterilir. Otomatik seçeneğini deneyin veya WGPU_ADAPTER_NAME değerini kart adının benzersiz bir bölümüne ayarlayın.",
"prefs.graphics_note": "Hızdan ödün verip pürüzsüzlük kazanın. Her seçenek, etkisini bir örnek üzerinde gösterir.",
"prefs.graphics_presets_note": "Ön ayarlar aşağıdaki seçimleri birlikte belirler.",
"prefs.hide_constraint_glyphs_zoomed_out": "Uzaklaşıldığında kısıtlama simgelerini gizle",
@@ -1905,6 +2190,8 @@
"prefs.history_sketches_note": "Eskizler, Özelliklerinin altında ayarlıyken, soldaki Geçmiş, adlar için yeterince geniş olduğunda her eskizi, kendisinden oluşturulan ilk özelliğin altında bir seviye içeride listeler. Alttaki zaman çizelgesi her zaman oluşturma sırasını korur.",
"prefs.history_sketches_under_feature": "Özelliklerinin altında",
"prefs.hold_stop_snapping": "Yapışmayı durdurmak için basılı tutun",
"prefs.home_fit_size": "Ana görünüm ve Sığdır boyutu",
"prefs.home_fit_size_note": "Ana görünüm, Sığdır, açılan bir tasarım veya bir gezgin görünümü değişikliği modeli çerçevelediğinde modelin görünümün ne kadarını doldurduğu; aşağıdaki ayar açık olsa da olmasa da geçerlidir. %100: paneller, pusula ve gezinme çubuğu arasındaki görünümü doldurur.",
"prefs.icons_only": "Yalnızca simgeler",
"prefs.imported_file": "İçe aktarılan dosya",
"prefs.in_browser": "Tarayıcının içinde",
@@ -1913,13 +2200,20 @@
"prefs.interface_language": "Arayüz dili",
"prefs.interface_note": "SolidCraft'ın nasıl göründüğü ve parçalarının nerede durduğu.",
"prefs.interval_minutes": "{n} dk",
"prefs.invert_navigator_arrows": "Görünüm küpünün döndürme oklarını ters çevir",
"prefs.invert_navigator_arrows_note": "Küpün çevresindeki oklar kamerayı gösterdikleri yönde döndürür, tıpkı Fusion ve Inventor'daki gibi: soldaki ok sağı gösterir ve kamerayı sağa savurur. Kapalı: bir ok küpü bulunduğu tarafa doğru döndürür, yani sol ok kamerayı sola savurur. Kıvrık yuvarlanma okları bundan etkilenmez.",
"prefs.keep_work_on_tab_switch": "Tasarımlar arasında geçerken diyalogları ve araçları açık tut",
"prefs.keep_work_on_tab_switch_note": "Her tasarım sekmesi, açık diyaloğunu veya aracını, içinde seçtiklerinizi ve yazdıklarınızı ve şerit sekmesini korur. Tasarıma döndüğünüzde yeniden oradadırlar. Kapalı: tasarımlar arasında geçmek bunları iptal eder ve Model sekmesini gösterir.",
"prefs.labels": "Etiketler",
"prefs.language_system": "Sistem",
"prefs.layout": "Düzen",
"prefs.layout_note": "Sıkışık, panelleri pencere kenarlarına yerleştirir. Tarayıcı yarı saydamlığı Yüzen düzende kullanılabilir. Asistan tarafını Asistan sayfasından değiştirin.",
"prefs.left": "Sol",
"prefs.left_click": "Sol tıklama",
"prefs.line_drag_draws_one": "Basıp sürüklemek tek çizgi çizer",
"prefs.line_drag_draws_one_note": "Çizgi aracında basmak, sürüklemek ve bırakmak, basılan yerden bırakılan yere tek bir çizgi çizer ve çizim orada biter. Tıklamalar yine bir zincir çizer. Kapalı: sürükleme, tıklama gibi, bırakıldığı yere bir nokta koyar.",
"prefs.line_hover_tangent_arc": "Teğet yaya geçmek için bir çizginin son noktasında bekle",
"prefs.line_hover_tangent_arc_note": "Çizgi aracında bir çizgi parçası çizildikten sonra zincirin son noktasından uzaklaşın, geri gelin ve imleci üzerinde sabit tutun: sonraki tıklama bir teğet yayı bitirir, aynı hareket çizgilere geri döner. Kapalı: orada beklemek hiçbir şey yapmaz.",
"prefs.linked_designs": "Bağlı tasarımlar",
"prefs.live_input": "Canlı girdi",
"prefs.live_preview": "Canlı önizleme",
@@ -1943,6 +2237,8 @@
"prefs.mouse_mapping": "Fare eşlemesi",
"prefs.navigation": "Gezinme",
"prefs.navigation_note": "Farenin, trackpad'in ve 3B farenin görünümü nasıl hareket ettirdiği.",
"prefs.navigator_fit": "Gezgin görünümü değiştikten sonra modeli sığdır",
"prefs.navigator_fit_note": "Görünüm küpünün bir yüzü, köşesi veya oku ya da gizmonun bir ekseni, modelin ortasına da modeli her yönden sığdıran tek bir uzaklıktan (sınırlayıcı küresi) bakar. Bu açıkken Ana görünüm aynı yakınlaştırmayı ve merkezi kullanır; böylece sonrasında seçilen görünümler yalnızca döner. Kapalı: görünüm hedefini ve yakınlaştırmasını koruyarak yerinde döner.",
"prefs.network_host_remove": "Kaldır",
"prefs.network_locations": "Tasarımlarda ağ konumlarına izin ver",
"prefs.network_locations_note": "Kapalı: bir tasarımın başka bir bilgisayardaki bağlı dosyaları (\\\\server\\paylaşım) yalnızca burada listelenen sunuculardan veya sorulduğunda izin verdiklerinizden açılır.",
@@ -1955,6 +2251,8 @@
"prefs.origin_plane_names": "Orijin düzlemi adları",
"prefs.origin_plane_names_note": "Tarayıcıda, diyaloglarda ve listelerde gösterilen adlar. Z yukarı olmak üzere {top} XY, {front} XZ ve {right} YZ'dir. Komutlar, betikler ve kayıtlı tasarımlar XY, XZ ve YZ adlarını korur.",
"prefs.overall_speed": "Genel hız",
"prefs.parameter_list_rows": "Parametre listesi satırları",
"prefs.parameter_list_rows_tip": "Boş bir değer alanında Aşağı ok, parametreleri sık kullanılanlar önce olacak şekilde en fazla bu kadar satır listeler. Daha azı, büyük bir tasarımda listeyi hafif tutar.",
"prefs.persistent_ribbon_pressed": "Etkin şerit komutlarını vurgula",
"prefs.persistent_ribbon_pressed_help": "Şerit komutlarını, etkileri açık olduğu sürece vurgula. Önceki nötr görünümü ve komut yardımını korumak için kapatın.",
"prefs.perspective_fov": "Görüş alanı",
@@ -1984,9 +2282,13 @@
"prefs.quality_fastest": "en hızlı",
"prefs.quality_slowest": "en yavaş",
"prefs.quality_smoother": "daha pürüzsüz",
"prefs.quick_measure": "Görünümün köşesinde hızlı ölçüm",
"prefs.quick_measure_note": "Seçimin boyutu, görünümün sağ alt köşesinde: bir kenarın uzunluğu (yuvarlaksa Ø ve R), bir yüzün alanı, bir noktanın konumu, iki öğenin mesafesi ve açısı, birkaç kenarın veya yüzün toplamı. Tıklamak onu kopyalar.",
"prefs.render_previous_geometry_budget": "Önceki Render önizleme geometri bütçesini kullan",
"prefs.render_previous_geometry_budget_help": "Cihaza dayalı bütçe yerine önceki sabit geometri sınırını (64 bit masaüstünde 512 MiB, diğer yerlerde 128 MiB) geri getirir.",
"prefs.reports_saved": "{n} kayıtlı",
"prefs.ribbon_click_ends_tool": "Çalışan aracın düğmesine tıklamak onu bitirir",
"prefs.ribbon_click_ends_tool_note": "Kullanımdaki eskiz aracının yanan şerit düğmesine tıklamak aracı bitirir; böylece görünümdeki tıklamalar yeniden seçim yapar. Kapalı: tıklama aracı yeniden başlatır.",
"prefs.ribbon_reveal": "Arama sonuçlarını şeritte göster",
"prefs.ribbon_reveal_note": "Komutlarda ara içindeki bir sonucun üzerine gelmek, komutun şeritte nerede olduğunu gösterir: sekmesini, düğmesini veya bir panelin açılır menüsündeki satırını. Aramadan başlatılan bir komut orada yanıp söner ve bir açılır menüden çalışan bir komut panelini işaretler.",
"prefs.right_click": "Sağ tıklama",
@@ -2016,6 +2318,8 @@
"prefs.sketch_exit_view.previous": "Önceki görünüme dön",
"prefs.sketch_exit_view.unless_rotated": "Döndürülmediyse dön",
"prefs.sketch_exit_view_note": "Eskizi Bitir, İptal veya çift Esc sonrası görünümün nereye gittiği.",
"prefs.sketch_face_activates_part": "Bir parçanın yüzüne eskiz çizmek o parçayı etkin yapar",
"prefs.sketch_face_activates_part_note": "Başka bir bileşenin gövdesinin yüzünde başlatılan eskiz, önce o bileşeni etkinleştirir; böylece eskiz ona ait olur ve tarayıcıda o parçayla birlikte kalır. Parça sonrasında da etkin kalır. Kapalı: eskiz etkin bileşene ait olur.",
"prefs.sketch_open_look_at": "Eskiz açıldığında görünümü ona doğru döndür",
"prefs.sketch_open_look_at_note": "Kapalı: eskiz oluşturmak veya düzenlemek görünümü olduğu gibi bırakır. Bak komutu, istediğinizde görünümü eskize çevirir.",
"prefs.sketch_recent_snap": "Son merkezlere ve orta noktalara otomatik yapış",
@@ -2029,6 +2333,8 @@
"prefs.sketch_tab_always_note": "Hiçbir eskiz açık değilken Eskiz sekmesi şeritte, Model’den hemen sonra kalır. Çizim araçları bu durumda seçili düzlemde veya yüzde ya da bir sonra seçtiğiniz düzlemde, araç hazır olarak bir eskiz başlatır.",
"prefs.sketch_tracking_guides": "Merkez ve orta nokta hizalama kılavuzları",
"prefs.sketch_tracking_guides_note": "Bir dairenin merkezinin veya düz bir kenarın orta noktasının üzerine gelin, ardından geçici noktalı bir kılavuz görmek için yatay veya dikey hareket ettirin.",
"prefs.sketch_tracking_points": "Çizim sırasında uç noktalardan ve köşelerden hizalama kılavuzları",
"prefs.sketch_tracking_points_note": "Bir çizim aracı bir nokta beklerken, bir çizgi veya yay ucunun, bir dikdörtgen köşesinin ya da serbest bir noktanın üzerine gelmek, bir merkez veya orta noktadaki gibi geçici noktalı kılavuzu gösterir. Kapalıyken: yalnızca merkezler ve orta noktalar.",
"prefs.sketching": "Eskiz",
"prefs.snap_drawing_note": "Bir eskiz noktası çizerken veya sürüklerken.",
"prefs.source": "Kaynak",
@@ -2045,6 +2351,24 @@
"prefs.status_error": "Hata",
"prefs.status_selected": "Seçildi",
"prefs.status_warning": "Uyarı",
"prefs.structure.appearance": "Görünüm",
"prefs.structure.appearance_note": "Renkler, metin ve erişilebilirlik.",
"prefs.structure.in_profile": "Profilde",
"prefs.structure.layout": "Düzen",
"prefs.structure.layout_note": "Pencerenin parçalarının yeri.",
"prefs.structure.look": "Görünüş",
"prefs.structure.measure_pointer": "Ölçüm ve imleç",
"prefs.structure.mouse3d": "3B fare",
"prefs.structure.mouse3d_note": "SpaceMouse ve SpaceNavigator.",
"prefs.structure.navigation_note": "Fare ve trackpad. 3B farenin kendi sayfası var.",
"prefs.structure.profile": "Profil",
"prefs.structure.profile_edited": "Kaydedildikten sonra değiştirildi",
"prefs.structure.profile_hover": "Ayar profillerinde kaydedildi",
"prefs.structure.scale_percent": "%{percent}",
"prefs.structure.sketch": "Eskiz",
"prefs.structure.tools": "Araçlar",
"prefs.structure.tools_note": "Modelleme araçlarının nasıl davrandığı.",
"prefs.structure.work": "Çalışma",
"prefs.supersampling_brief": "Görünümü daha büyük çizip aşağı süzer: çok net, ama daha ağır.",
"prefs.tab_accent_note": "Vurgu rengi etkin sekmeyi izler",
"prefs.theme_file": "tema dosyası",
@@ -2056,6 +2380,16 @@
"prefs.theme_follow_off": "Kapalı",
"prefs.theme_follow_stop": "Takibi durdur",
"prefs.theme_import_hint": "Bir tema dosyası seçmek için tıklayın, buraya bırakın veya bir tema kopyalıyken Ctrl+V (Mac'te Cmd+V) tuşlarına basın",
"prefs.theme_option_opacity": "Opaklık",
"prefs.theme_option_opacity_help": "Kayan panellerin opaklığını ayarlayın. Bir okunabilirlik alt sınırı, görünüm alanı renkleri üzerindeki metni korur.",
"prefs.theme_option_tab_colours": "Sekme renkleri",
"prefs.theme_option_tab_colours_help": "Her şerit sekmesi için bu temanın panel ve görünüm alanı renklerini kullanın.",
"prefs.theme_option_tab_fade_ms": "Sekme geçişi",
"prefs.theme_option_tab_fade_ms_help": "Sekme değiştirirken panel ve görünüm alanı renkleri arasında yumuşak geçiş yapın. Sıfır, anında değiştirir.",
"prefs.theme_options_badge": "Seçenekler",
"prefs.theme_options_more": "Daha fazla · {count}",
"prefs.theme_options_reset": "Sıfırla",
"prefs.theme_options_unavailable": "Bu cihazda kullanılamıyor",
"prefs.theme_paste": "Temayı yapıştır",
"prefs.theme_paste_none": "Panoda SolidCraft teması yok",
"prefs.timeline_half_hour": "−30 dk",
@@ -2077,6 +2411,8 @@
"prefs.under_cursor": "İmlecin altında",
"prefs.units_precision": "Birimler ve hassasiyet",
"prefs.updates": "Güncellemeler",
"prefs.value_boxes_in_view": "Değerleri görünümde tutamaçlarının yanında göster",
"prefs.value_boxes_in_view_tip": "Bir komutun değeri (Mesafe, Yarıçap…), modelin üzerinde tutamacının yanındaki bir kutuda gösterilir. Kapalıyken: değeri, bir seçimden sonra klavyeyi alan komut penceresine yazarsınız ve hiçbir şey modeli örtmez.",
"prefs.view": "Görünüm davranışı",
"prefs.view_confirm_corner": "Görünümün köşesinde Tamam ve İptal",
"prefs.view_confirm_corner_note": "Bir diyalog veya eskiz açıkken, görünümün sağ üstündeki bir onay işareti ve çarpı işareti, diyalogun Tamam ve İptal düğmelerinin ya da eskizi bitirip iptal etmenin işini yapar. Görünüm yönlendiricileri bunların altına iner.",
@@ -2086,6 +2422,12 @@
"prefs.viewport_background": "Arka plan",
"prefs.viewport_background_colour": "Renk",
"prefs.viewport_background_theme": "Temanın degradesi",
"prefs.viewport_section_status": "Görünüm alanı kesit durumunu göster",
"prefs.viewport_section_status_help": "Kesit ayarını görünüm alanında gösterin. Esc ve etkin şerit düğmesi onu kapatır. Önceki kesit denetimlerini korumak için devre dışı bırakın.",
"prefs.viewport_status_details": "Canlı görünüm alanı ayrıntıları",
"prefs.viewport_status_details_help": "Etkin analiz ve kesit ayarlarını standart ayrıntı kartlarında düzenleyin. Salt okunur analiz göstergelerini ve Kesit diyaloğunu geri getirmek için devre dışı bırakın.",
"prefs.viewport_status_summary": "Görünüm alanı durum öğelerini daralt",
"prefs.viewport_status_summary_help": "Üç veya daha fazla görünüm alanı durum öğesini tek bir özet rozetinde toplayın. Her öğeyi tam satırda tutmak için devre dışı bırakın.",
"prefs.wheel": "Tekerlek",
"prefs.wheel_trackpad": "Tekerlek ve trackpad",
"prefs.workspace": "Çalışma alanı",
@@ -2964,7 +3306,9 @@
"render.output_ready": "Render için hazır",
"render.output_run_check": "Kontrolü çalıştır",
"render.output_size_limit": "{method}: kenar başına en fazla {dimension} px ve {pixels} piksel. Sığan en büyük boyut: {width} × {height}.",
"render.output_size_method_profile": "{width} × {height} boyutunu render etmek için {profile} CPU kaynak profiliyle {method} yöntemini seçin ya da daha küçük bir boyut kullanın.",
"render.output_size_ok": "Boyut uygun · {width} × {height} px",
"render.output_size_profile": "{width} × {height} boyutunu render etmek için {profile} CPU kaynak profilini seçin ya da daha küçük bir boyut kullanın.",
"render.output_swap_orientation": "Genişlik ve yüksekliği değiştir",
"render.output_tools_inspector": "Boyutu ve biçimi Çıktı denetçisinde düzenleyin.",
"render.output_view_image": "Görüntüyü göster",
@@ -3177,6 +3521,7 @@
"render.size_custom": "Özel…",
"render.size_full_hd": "Full HD",
"render.size_hd": "HD",
"render.size_needs_profile": "{size} · {profile} gerekir",
"render.size_presets": "Boyut ön ayarları",
"render.size_presets_pending": "Çıktı düzenleyicisiyle gelecek",
"render.size_preview": "Önizleme",
@@ -3464,6 +3809,24 @@
"sheet.flange_type_contour": "Kontur",
"sheet.flange_type_edge": "Kenar",
"sheet.no_body": "sac metal gövde yok: Flanş > Taban ile bir tane başlatın veya bir plakayı Sac Metale Dönüştür ile sac metale çevirin (büyük düz yüzünü seçin)",
"sheet.personal_rules.confirm_delete": "Silmeyi onayla",
"sheet.personal_rules.delete": "Sil",
"sheet.personal_rules.delete_prompt": "Bu kişisel kural silinsin mi? Tasarımlardaki mevcut kurallar değişmez.",
"sheet.personal_rules.full": "Kişisel kitaplık zaten 64 kural içeriyor.",
"sheet.personal_rules.invalid_name": "Satır sonu veya kontrol karakteri içermeyen kısa bir ad girin.",
"sheet.personal_rules.invalid_values": "Kuralın değerlerini tamamlayın: her biri bu tasarımda geçerli bir değere çıkmalı; kalınlık pozitif, K faktörü 0 ile 1 arasında olmalıdır.",
"sheet.personal_rules.missing": "Seçilen kişisel kural artık kullanılamıyor.",
"sheet.personal_rules.name": "Kural adı",
"sheet.personal_rules.name_exists": "Bu adda bir kişisel kural zaten var. Farklı bir ad kullanın.",
"sheet.personal_rules.name_hint": "Benzersiz bir ad",
"sheet.personal_rules.overwrite": "Değişiklikleri seçili kişisel kurala kaydet",
"sheet.personal_rules.rename": "Yeniden adlandır",
"sheet.personal_rules.rule": "Kişisel kural",
"sheet.personal_rules.save": "Yeni kaydet",
"sheet.personal_rules.scope": "Tüm tasarımlar için profilinize kaydedilir.",
"sheet.personal_rules.select": "Bir kural seçin",
"sheet.personal_rules.title": "Kişisel kurallar",
"sheet.personal_rules.unsupported": "Bu kural, bu sürümün kullanamadığı değerler içeriyor.",
"shortcut.json_error": "parametreler JSON biçiminde olmalıdır: {error}",
"shortcut.no_command": "`{id}` komutu yok; JSON'dan önceki metin bir komut kimliği olmalıdır",
"shortcut.pin": "S kutusunun üstüne sabitle",
@@ -3500,8 +3863,10 @@
"sketch_text.align_right": "Sağ",
"sketch_text.bold": "Kalın",
"sketch_text.builtin_font": "{family} (yerleşik)",
"sketch_text.formula": "Kelimeleri parametrelerden oluşturmak için = ile başlayın: ='W' + number(Width)",
"sketch_text.italic": "İtalik",
"sketch_text.loading_fonts": "Yüklü yazı tipleri aranıyor…",
"sketch_text.no_bold": "Yerleşik yazı tipinin kalın biçimi yok: yüklü bir yazı tipi seçin",
"sketch_text.on_path": "Metin eğrisini izler: konumunu eğri belirler",
"sketch_text.path_clear": "Metni eğriden ayır",
"sketch_text.path_hint": "Metnin izleyeceği eskiz eğrisi: önce buraya, ardından eğriye tıklayın",
@@ -3640,6 +4005,8 @@
"ui.3d_mouse_section": "3D fare",
"ui.3d_mouse_show_in_view": "3B fareyi 3B görünümde göster",
"ui.3d_mouse_show_in_view_tip": "Sol alt köşede, siz hareket ettirdikçe hareket eden bir 3B fare resmi.",
"ui.3d_mouse_sketch_orbit": "Eskizleri 3B fareyle döndür",
"ui.3d_mouse_sketch_orbit_tip": "Bir eskiz açıkken ve dik bakılırken 3B fare de, fare gibi, görünümü döndürür. Kapalıyken: görünümü eğene kadar eskizi kaydırır ve yakınlaştırır.",
"ui.3d_mouse_skip": "Cihazım bunu yapamıyor",
"ui.3d_mouse_skip_tip": "Bu hareketi iki yönde de atlar; kalibrasyon onu dışarıda bırakır.",
"ui.3d_mouse_speed": "3D fare hızı",
@@ -3708,6 +4075,7 @@
"ui.agent_chat_auth_terminal": "Bunu bir terminalde çalıştırın ve ardından tekrar Bağlan'a tıklayın:",
"ui.agent_chat_auth_title": "Ajan için oturum aç",
"ui.agent_chat_cancel": "İptal",
"ui.agent_chat_cannot_start": "Yüklü ama başlamıyor: {error}",
"ui.agent_chat_changes": "{n} değişiklik, tek geri alma adımı",
"ui.agent_chat_changes_n": "{n} değişiklik",
"ui.agent_chat_changes_of": "{n}/{limit} değişiklik",
@@ -3800,9 +4168,12 @@
"ui.agent_chat_queued_stopped": "Sırada (durduruldu, gönderilmedi)",
"ui.agent_chat_refresh": "Yenile",
"ui.agent_chat_refused": "Ajan için izin verilmiyor: {reason}",
"ui.agent_chat_reinstall": "{agent} yüklü ({program}), ancak SolidCraft denetlediğinde başlamadı: {error}\nKurulumu eksik olabilir veya başka türde bir bilgisayar için yapılmış olabilir. `{install}` ile yeniden yükleyin, bir terminalde sürümünü yazdırdığını doğrulayın, ardından Yenile'ye tıklayın.",
"ui.agent_chat_remove": "Sıradan kaldır",
"ui.agent_chat_remove_file": "Bu iletiden çıkar",
"ui.agent_chat_remove_imported": "Bu iletiden çıkar; parça tasarımda kalır (Geri al onu kaldırır)",
"ui.agent_chat_reply_cut_off": "Yanıt bitmeden uzunluk sınırına ulaştı, bu yüzden eksik olabilir. Ajandan devam etmesini veya daha kısa bir yanıt vermesini isteyin.",
"ui.agent_chat_reply_declined": "Model bu iletiyi yanıtlamayı reddetti.",
"ui.agent_chat_retry": "Yeniden dene",
"ui.agent_chat_right": "Sağ",
"ui.agent_chat_save": "Kaydet",
@@ -3861,12 +4232,17 @@
"ui.ai_copy_suffix": "Kopya",
"ui.ai_custom_url": "Özel URL",
"ui.ai_default": "Varsayılan",
"ui.ai_edit": "Düzenle",
"ui.ai_edit_agent_title": "Ajanı düzenle",
"ui.ai_edit_gone": "Bu ajan kaldırıldı, bu yüzden kaydedilecek bir şey yok.",
"ui.ai_edit_tip": "Bu ajanın adını, komutunu veya uç noktasını değiştirin. Kayıtlı bir anahtar gizli kalır.",
"ui.ai_http_busy": "uç nokta meşgul veya sınırda; daha sonra tekrar deneyin",
"ui.ai_http_key": "uç nokta anahtarı reddetti: Ayarlar > AI altında kontrol edin",
"ui.ai_http_not_found": "Uç nokta veya model bulunamadı: temel URL'yi ve model adını kontrol edin",
"ui.ai_http_too_large": "konuşma bu uç nokta için çok büyük; yeni bir sohbet başlatın",
"ui.ai_key": "API anahtarı",
"ui.ai_key_hint": "isteğe bağlı; sistem anahtar zincirinde saklanır",
"ui.ai_key_keep_hint": "kayıtlı anahtarı korumak için boş bırakın",
"ui.ai_key_needs_https": "Anahtar yalnızca HTTPS üzerinden veya bu bilgisayara gönderilir.",
"ui.ai_key_note": "SolidCraft ayarlarında değil, sistem anahtar zincirinde saklanır. Yerel bir sunucu için boş bırakın.",
"ui.ai_keychain_error": "Sistem anahtar zinciri reddetti: {error}",
@@ -3893,11 +4269,15 @@
"ui.ai_permissions": "İzinler",
"ui.ai_preset": "Şablon",
"ui.ai_protocol": "Protokol",
"ui.ai_reasoning_effort": "Akıl yürütme çabası",
"ui.ai_reasoning_effort_field_hint": "boş = sağlayıcının varsayılanı",
"ui.ai_reasoning_effort_hint": "İsteğe bağlı. Uç noktaya `reasoning_effort` olarak gönderilir; kabul edilen değerler sağlayıcıya göre değişir (örneğin `low`, `high` veya `max`). Burada belirlediğiniz değerin yerine SolidCraft hiçbir zaman başka bir değer koymaz. Hiçbir şey göndermemek ve sağlayıcının varsayılanını korumak için boş bırakın.",
"ui.ai_remove": "Kaldır",
"ui.ai_request_timed_out": "Model {seconds} sn'den uzun sürdü. Bu uç nokta için istek zaman aşımını Tercihler › Asistan altında yükseltebilirsiniz.",
"ui.ai_request_timeout": "İstek zaman aşımı",
"ui.ai_request_timeout_hint": "Bu uç noktaya tek bir model isteğinin 30 sn ile bir saat arasında ne kadar sürebileceği. Yavaş bir yerel model için yükseltin.",
"ui.ai_reset": "Sıfırla",
"ui.ai_save": "Kaydet",
"ui.ai_settings": "AI ayarları…",
"ui.ai_show_features": "AI özelliklerini göster",
"ui.ai_show_features_note": "Ajan sohbeti: zaten kullandığınız bir kodlama ajanının veya seçtiğiniz bir model uç noktasının açık tasarım üzerinde çalıştığı bir panel. Kapalı: AI düğmesi yok, kısayol yok, menü girişi yok, panel yok ve hiçbir şey aranmaz veya başlatılmaz.",
@@ -4057,6 +4437,7 @@
"ui.dark": "Koyu",
"ui.default_modelling_orientation": "Varsayılan modelleme yönü",
"ui.delete": "Sil",
"ui.delete_select_first": "Önce silinecekleri seçin: özellikler, gövdeler, bileşenler veya eskiz geometrisi",
"ui.depth": "Derinlik",
"ui.design": "Tasarım",
"ui.design_properties.author": "Yazar",
@@ -4071,6 +4452,40 @@
"ui.design_properties.project": "Proje",
"ui.design_properties.revision": "Revizyon",
"ui.design_saved": "{path} konumuna kaydedildi",
"ui.details_access_caption": "Yüzler, bir aletin onlara seçilen yönden ulaşıp ulaşamayacağını gösterir.",
"ui.details_angle": "Açı",
"ui.details_continuity_caption": "Seçili birleşim yerini düzenleyin. Diğer birleşim yerleri kendi ayarlarını korur.",
"ui.details_continuity_stale": "Önceki geometri: bu birleşim yerini düzenlemek veya çerçevelemek için analizi yeniden çalıştırın.",
"ui.details_copy_list": "Listeyi kopyala",
"ui.details_curvature": "Eğrilik toleransı",
"ui.details_curvature_caption": "Yüzler, yerel eğrilik yarıçaplarına göre renklendirilir.",
"ui.details_direction": "Alet yönü",
"ui.details_draft_caption": "Yüzler, kalıptan çıkarma yönüne olan açılarına göre renklendirilir.",
"ui.details_edit_seam": "Birleşim yerini düzenle",
"ui.details_fixture": "Arayüz bileşeni örneği — yalnızca örnek veri",
"ui.details_fixture_caption": "Açıklayıcı değerler içeren arayüz bileşeni örneği; bu bir model sonucu değildir.",
"ui.details_fixture_problem": "Sorunlu örnek bulgu",
"ui.details_fixture_readout": "Örnek ölçülen değer",
"ui.details_flip": "Ters çevir",
"ui.details_gap": "Boşluk",
"ui.details_hatch": "Kesilen yüzleri tara",
"ui.details_jump": "Eğrilik sıçraması",
"ui.details_key": "Gösterge",
"ui.details_offset": "Ofset",
"ui.details_plane": "Düzlem",
"ui.details_pull": "Kalıptan çıkarma yönü",
"ui.details_radius": "Yarıçap",
"ui.details_readout": "Okunan değer",
"ui.details_samples": "Örnekler",
"ui.details_seam": "{body} · Kenar {edge}",
"ui.details_settings": "Ayarlar",
"ui.details_sharp_gap": "Keskin veya boşluk",
"ui.details_show_all": "Tüm {count} öğeyi göster",
"ui.details_smooth": "Pürüzsüz",
"ui.details_stripes": "Şeritler",
"ui.details_target": "Geometriyi çerçevele",
"ui.details_worst_seams": "En kötü birleşim yerleri",
"ui.details_zebra_caption": "Yansıyan şeritler, yüzlerin ne kadar pürüzsüz birleştiğini gösterir.",
"ui.diameter": "Çap",
"ui.dimension": "Ölçü",
"ui.direct_interaction": "Doğrudan etkileşim",
@@ -4115,6 +4530,7 @@
"ui.edit_in_place_saved_elsewhere": "Parça başka bir dosyaya kaydedildi; montaj hâlâ {name} dosyasına bağlı",
"ui.edit_in_place_wait": "Tasarımda çalışan işlem bitene kadar bekleyin",
"ui.edit_section_analysis": "Kesit analizini düzenle",
"ui.edit_sketch_empty": "Düzenlenecek eskiz yok",
"ui.ellipse": "Elips",
"ui.emboss_wrap_note": "Desteklenen tek bir silindire teğet olan dik çizgi profilleri otomatik olarak sarılır. Hedef seçmek için bir cidar seçin.",
"ui.end_radius": "Bitiş yarıçapı",
@@ -4125,12 +4541,15 @@
"ui.equation_explicit": "Açık fonksiyon",
"ui.equation_form": "Biçim",
"ui.equation_note": "Değişken düz bir sayıdır: sin(t) onu radyan olarak alır. Birimi olmayan bir sonuç tasarımın birimindedir.",
"ui.equation_note_range": "Değişken, aralığı gibi bir uzunluktur: uzunluk parametreleriyle birleştirin ve sin() için bir uzunluğa bölün. Birimi olmayan bir sonuç tasarımın birimindedir.",
"ui.equation_parametric": "Parametrik",
"ui.equation_variable_unit": "Değişken, aralığın birimine sahiptir",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "Eşdeğer yarıçap",
"ui.expand": "Genişlet",
"ui.explode_needs_two_components": "Patlatılmış görünüm bileşenleri birbirinden ayırır, bu yüzden tasarımda iki veya daha fazla bileşen olmalıdır (Yeni bileşen, Tasarım ekle veya Gövdelerden bileşen oluştur)",
"ui.exportDxf": "DXF olarak dışa aktar…",
"ui.export_ellipsis_keymap": "Dışa aktar…",
"ui.export_keymap_tip": "Tuşları, S kutusu favorilerini ve araç çubuğunu dosya olarak dışa aktarır",
@@ -4299,12 +4718,14 @@
"ui.joints": "Bağlantılar",
"ui.keyboard_shortcuts": "Klavye kısayolları",
"ui.language": "Dil",
"ui.lasso_select": "Kement (serbest bir halka sürükleyin: tamamen içinde kalanları alır)",
"ui.layout_compact": "Kompakt",
"ui.layout_floating": "Kayan",
"ui.length": "Uzunluk",
"ui.length_decimals": "Uzunluk ondalık basamakları",
"ui.light": "Açık",
"ui.line": "Çizgi",
"ui.line_arc_hint": "Teğet yay: yayın ucuna tıklayın. Çizgilere dönmek için son noktada yeniden bekleyin; bitirmek için sağ tıklayın veya Esc tuşuna basın",
"ui.link_copies": "Aynı Kopyaları Bağla",
"ui.link_copies_keep": "Tut",
"ui.link_copies_link": "Bağla",
@@ -4393,6 +4814,7 @@
"ui.part_size_shared": "Parçayı yeniden oluşturur ve eklenen tüm özelliklerin yerine geçer. Bu bileşenin tüm örnekleri güncellenir.",
"ui.paste": "Yapıştır",
"ui.path": "Yol",
"ui.pattern_object_type_tip": "Gövdeler: katı biçimler, görünümde veya Tarayıcı'da seçilir; her biri bütün olarak kopyalanır.\nÖzellikler: Geçmiş'in adımları, örneğin bir ekstrüzyon veya delik; Geçmiş'te ya da oluşturdukları bir yüzde seçilir; adım tekrarlanır.\nEskiz bunlardan hiçbiri değildir: eğrilerini eskizin kendi Dizi veya Aynala komutuyla tekrarlayın ya da önce ekstrüzyon yapın.",
"ui.pattern_on_path": "Yol üzerinde desen",
"ui.perforate_margin_default": "çaptan",
"ui.perforate_pitch": "Adım",
@@ -4419,12 +4841,17 @@
"ui.plugins_skipped": "{count} klasör okunamadı.",
"ui.plugins_version": "{version}",
"ui.point": "Nokta",
"ui.point_cloud_add_filter": "Filtre ekle…",
"ui.point_cloud_auto_range": "Otomatik aralık",
"ui.point_cloud_color_by": "Renklendirme ölçütü",
"ui.point_cloud_file_colors": "Dosya renkleri",
"ui.point_cloud_filter_by": "Filtreleme ölçütü",
"ui.point_cloud_height_high": "En yüksek",
"ui.point_cloud_height_low": "En düşük",
"ui.point_cloud_legend_filter": "Yukarıdaki göstergede gösterilir ve gizlenir",
"ui.point_cloud_no_file_colors": "Dosyada renk yok",
"ui.point_cloud_pause": "Duraklat",
"ui.point_cloud_play": "Oynat",
"ui.point_cloud_single_color": "Tek renk",
"ui.point_cloud_size": "Nokta boyutu",
"ui.point_cloud_units": "Dosya birimleri",
@@ -4433,9 +4860,9 @@
"ui.polygon": "Çokgen",
"ui.preferences": "Ayarlar",
"ui.press_a_key": "bir tuşa basın…",
"ui.print_face_body_not_sent": "Bu yüzeyin gövdesi gönderilmiyor: önce onu Gövdeler'e ekleyin",
"ui.print_face_cleared": "{body}: baskı yüzeyi temizlendi",
"ui.print_face_input": "Baskı yüzeyi",
"ui.print_face_one_body": "Baskı yüzeyi tek bir gövdeye aittir: değiştirmek için o gövdeyi tek başına gönderin",
"ui.print_face_pick": "Baskı yüzeyi yapmak için katı bir gövdenin düz bir yüzeyini seçin",
"ui.print_face_set": "{body}: baskı yüzeyi ayarlandı; Dilimleyiciye gönder gövdeyi bu yüzeyin üzerine koyar",
"ui.profile": "Profil",
@@ -4453,6 +4880,7 @@
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Ölçülüyor…",
"ui.properties.measuring_bodies": "Ölçülüyor… {total} gövdeden {done} tanesi",
"ui.properties.measuring_failed": "Ölçüm tamamlanmadan durdu.",
"ui.properties.principal_axis": "Asal eksen {number}",
"ui.properties.principal_moments": "Asal momentler",
@@ -4520,6 +4948,7 @@
"ui.selectOther": "Diğerini seç…",
"ui.selectTangentChain": "Teğet zinciri seç",
"ui.select_all": "Tümünü seç",
"ui.select_components_by_face": "Bileşenleri seçin (bir yüz kendi bileşenini seçer)",
"ui.selection": "Seçim",
"ui.selection_modifiers": "Seçim değiştiricileri",
"ui.selection_shift_add_only": "Shift+tıklama kaldırmadan ekler",
@@ -4561,6 +4990,11 @@
"ui.sketch_intersect_selection_filter": "Seçim filtresi",
"ui.sketch_modifiers": "Eskiz değiştiricileri",
"ui.sketch_project_geometry": "Geometri",
"ui.sketch_report.all_constrained": "Her şey tam kısıtlı.",
"ui.sketch_report.dof": "Serbestlik dereceleri",
"ui.sketch_report.loose": "Tam kısıtlı değil",
"ui.sketch_report.status": "Durum",
"ui.sketch_report.title": "Eskiz raporu",
"ui.sketch_scale": "Eskiz ölçeği",
"ui.sketches": "Eskizler",
"ui.slice": "Dilim",
@@ -4656,12 +5090,15 @@
"ui.view_angles": "Görünüm açıları",
"ui.view_angles_convention": "Yukarı eksen etrafında derece cinsinden. Sapma 0° Ön görünümdür, 90° Sol, −90° Sağ, 180° Arka; yatıklık 90° Üst görünümdür; pozitif yuvarlanma modeli saat yönünde döndürür.",
"ui.view_angles_help": "Görünümün yatıklık, sapma ve yuvarlanma açılarını derece cinsinden ve izdüşüm türünü yönlendirme gizmosunun altında gösterir. Tam açıları yazmak için göstergeye tıklayın.",
"ui.view_angles_lock": "{axis} değerini kilitle",
"ui.view_angles_ortho": "Ortografik",
"ui.view_angles_persp": "Perspektif",
"ui.view_angles_pitch": "Yatıklık",
"ui.view_angles_readout": "Yatıklık {pitch} · Sapma {yaw} · Yuvarlanma {roll}",
"ui.view_angles_roll": "Yuvarlanma",
"ui.view_angles_unlock": "{axis} değerinin kilidini aç",
"ui.view_angles_yaw": "Sapma",
"ui.view_angles_zero": "{axis} değerini 0° yap",
"ui.view_centre": "Görünüm merkezi",
"ui.viewport_status_clear": "Kapat: {name}",
"ui.viewport_status_clear_hint": "Kapat: {name} · Esc",
@@ -4670,7 +5107,14 @@
"ui.viewport_status_key": "Göstergeyi göster: {name}",
"ui.viewport_status_minimum_radius": "Minimum yarıçap",
"ui.viewport_status_pairs": "{count} çift",
"ui.viewport_status_section_hatch": "{setting} · tarama",
"ui.viewport_status_section_plane": "Geçerli düzlem",
"ui.viewport_status_section_tilted": "eğik · {offset}",
"ui.viewport_status_stripes": "{count} şerit",
"ui.viewport_status_summary_clear": "Hepsini kapat",
"ui.viewport_status_summary_heading": "Bu görünümde",
"ui.viewport_status_summary_label": "{name} ve {count} öğe daha",
"ui.viewport_status_summary_more": "+{count}",
"ui.viewport_theme_follow": "Temayı izle",
"ui.visual_shaded_hidden_edges": "Gizli kenarlarla gölgeli",
"ui.visual_shaded_with_edges": "Kenarlarla gölgeli",
+422 -1
View File
@@ -60,6 +60,7 @@
"BLEND SURFACE": "ПОВЕРХНЯ ПЕРЕХОДУ",
"BOUNDARY SURFACE": "ПОВЕРХНЯ ЗА МЕЖАМИ",
"BROWSER": "БРАУЗЕР",
"Back to the original order": "Повернути початковий порядок",
"Ball": "Кульове",
"Bar": "Смуга",
"Base Center": "Центр основи",
@@ -595,6 +596,8 @@
"Snap to face and edge centres": "Прив'язка до центрів граней і ребер",
"SolidCraft cannot submit reports directly. Submit on GitHub; no token is needed in the app.": "SolidCraft не може надсилати звіти напряму. Надішліть їх на GitHub; токен у застосунку не потрібен.",
"SolidCraft closed before these designs were saved. Their last autosave can be opened.": "SolidCraft закрився до того, як ці проєкти було збережено. Можна відкрити їхнє останнє автозбереження.",
"Sort A to Z": "Сортувати від А до Я",
"Sort Z to A": "Сортувати від Я до А",
"Spacing 2 must be a non-zero number": "Крок 2 має бути ненульовим числом",
"Spacing must be a non-zero number": "Крок має бути ненульовим числом",
"Specialise": "Спеціалізувати",
@@ -790,6 +793,13 @@
"browser.sketch_attachment_lost": "{name} (прив'язку втрачено)",
"browser.sketch_editing": "{name} (редагується)",
"browser.sketch_name": "Ескіз{number}",
"browser.sketches_to_parts_already_in_part": "уже в своїй деталі",
"browser.sketches_to_parts_design_body": "на тілі самого проєкту",
"browser.sketches_to_parts_moved": "Переміщено ескізів у деталь, на якій вони лежать: {moved}",
"browser.sketches_to_parts_no_exact_attachment": "на грані без точної прив'язки",
"browser.sketches_to_parts_not_on_face": "не на грані деталі",
"browser.sketches_to_parts_part_missing": "їхньої деталі більше немає",
"browser.sketches_to_parts_result": "Переміщено ескізів у деталь, на якій вони лежать: {moved}; на місці залишилося: {stayed} — {why}",
"browser.units": "Одиниці: {units}",
"cam.flat": "Плоский",
"cam.follower": "Штовхач",
@@ -819,6 +829,7 @@
"cmd.appearance_pick_up": "Взяти вигляд",
"cmd.appearance_replace": "Замінити вигляд",
"cmd.assembly_bom": "Специфікація матеріалів",
"cmd.assembly_mass_properties": "Масові характеристики",
"cmd.body.print_face": "Грань друку",
"cmd.body_rename": "Перейменувати тіло",
"cmd.browser_collapse_all": "Згорнути все",
@@ -856,6 +867,7 @@
"cmd.component_move_bodies": "Перемістити тіла до компонента",
"cmd.component_move_features": "Перемістити операції до компонента",
"cmd.component_move_sketches": "Перемістити ескізи до компонента",
"cmd.component_move_sketches_to_parts": "Перемістити ескізи до їхніх деталей",
"cmd.component_paste_from_design": "Вставити з іншого проєкту як компонент",
"cmd.component_paste_new": "Вставити як новий",
"cmd.component_properties": "Фізичні властивості компонента",
@@ -1191,6 +1203,7 @@
"cmd.sketch_spline_control_point_5": "Сплайн за контрольними точками (5-й степінь)",
"cmd.sketch_spline_fit_point": "Сплайн за точками проходження",
"cmd.sketch_spline_insert_point": "Додати точку сплайна",
"cmd.sketch_spline_remove_point": "Видалити точку сплайна",
"cmd.sketch_spline_reverse": "Обернути напрямок сплайна",
"cmd.sketch_spun_profile": "Профіль обертання",
"cmd.sketch_toggle_diameter": "Перемкнути радіус / діаметр",
@@ -1244,6 +1257,7 @@
"cmd.view.render_browser": "Браузер рендерингу",
"cmd.view.render_dock": "Перемістити док рендерингу",
"cmd.view.render_focus": "Вид фокусу рендерингу",
"cmd.view.status_details": "Подробиці рядка стану",
"cmd.view.status_items": "Елементи рядка стану",
"cmd.view_ambient_occlusion": "Окружне затінення",
"cmd.view_angle_readout": "Кути виду",
@@ -1282,8 +1296,14 @@
"color.hex_hint": "#rrggbb або #rrggbbaa",
"color.hue": "Відтінок",
"color.linear": "Значення кольору в лінійному просторі 0-1",
"color.recent": "Недавні кольори",
"color.recent_help": "Кольори, які ви вибираєте в будь-якому полі кольору, з'являються тут",
"color.saturation": "Насиченість (у відсотках)",
"color.saturation_value": "Насиченість і яскравість",
"color.selected": "Вибраний колір",
"color.step_down": "Зменшити на крок",
"color.step_up": "Збільшити на крок",
"color.value": "Значення, тобто яскравість (у відсотках)",
"config.column_filter_empty": "Немає збігів",
"contact.components_count": "Компонентів: {count}",
"contact.enabled_label": "увімкнено",
@@ -1330,6 +1350,7 @@
"dialog.dimension_name": "Розмір: {name}",
"dialog.edit_title": "РЕДАГУВАННЯ {title}",
"dialog.no_shown_body": "Немає видимих тіл для виконання операції",
"dialog.pattern_sketch_not_object": "Виберіть тіла або операції: ескіз не є ні тим, ні іншим. Повторіть його криві власним інструментом «Масив» чи «Дзеркало» в ескізі або спершу видавіть його.",
"dialog.select": "↖ Вибрати",
"dialog.selected_count": "↖ Вибрано: {count}",
"dialog.selection_guidance": "Виберіть вхідні дані, щоб змінити їх. Клацніть вибрані об'єкти, щоб прибрати їх; натискання з Ctrl/Cmd також перемикає їх. Перегляньте попередній перегляд, а потім натисніть OK.",
@@ -1387,21 +1408,168 @@
"from the rule": "з правила",
"help.apache": "Ліцензія Apache 2.0",
"help.appearance.assign": "Надає вибраним тілам, граням або компонентам колір чи вигляд матеріалу, не змінюючи їхньої ваги. Використовуйте, щоб розрізнити деталі або переглянути оздоблення.",
"help.assembly.bom": "Перелічує деталі проєкту або компонента з їхньою кількістю за номером деталі й може зберегти перелік як CSV або JSON. Використовуйте як список деталей для замовлення та складання.",
"help.attributions": "Відомості про авторство (ATTRIBUTION.md)",
"help.build": "Версія {version} · коміт {commit} · зібрано {date}",
"help.canvas.decal": "Розміщує зображення на плоскій грані моделі, наче наклейку. Використовуйте, щоб показати етикетку, логотип чи надрукований візерунок на деталі.",
"help.canvas.edit": "Змінює полотно: його положення, розмір, кут, непрозорість, віддзеркалення, видимість або назву. Використовуйте, щоб сумістити опорне зображення з ескізом, який ви обводите по ньому.",
"help.canvas.insert": "Розміщує зображення PNG або JPEG на площині чи грані як прозорий орієнтир. Використовуйте, щоб обвести фото чи креслення в ескізі, задавши зображенню відомий розмір.",
"help.component.break_link": "Відокремлює пов'язаний компонент від файлу його проєкту, залишаючи його тіла без змін. Використовуйте, коли деталь більше не має слідувати за змінами в початковому файлі.",
"help.component.capture_position": "Фіксує положення деталей, які ви пересунули вручну, і вони стають їхнім новим положенням. Використовуйте після перетягування на місце деталей, яких не утримує жодне з'єднання.",
"help.component.create": "Додає до проєкту новий порожній компонент усередині активного компонента, якщо ви не вибрали іншого батьківського. Використовуйте, щоб дати новій частині збірки власне місце для тіл і ескізів.",
"help.component.finish_edit": "Зберігає деталь, яку ви редагуєте на місці, повертається до її збірки й оновлює збірку за цією деталлю. Використовуйте, коли зміни в пов'язаній деталі завершено.",
"help.component.from_bodies": "Перетворює кожне вибране тіло на окремий компонент із назвою цього тіла. Використовуйте, коли проєкт, збудований із окремих тіл, має стати збіркою, деталі якої можна з'єднувати й переміщувати.",
"help.component.insert_design": "Вставляє інший збережений проєкт як компонент, пов'язаний зі своїм файлом, із суцільними тілами в тому вигляді, як вони є там. Використовуйте, щоб повторно застосувати деталь у збірці й підхопити пізніші зміни через «Оновити зв'язки».",
"help.component.properties": "Показує об'єм, масу, центр мас і моменти інерції компонента за матеріалами його тіл. Використовуйте, щоб перевірити вагу й баланс збірки.",
"help.component.revert_position": "Повертає деталі, які ви пересунули вручну, на попередні місця, відкидаючи переміщення, що не були зафіксовані. Використовуйте, щоб скасувати пробні переміщення в збірці.",
"help.component.update_links": "Знову зчитує пов'язані файли проєктів і замінює тіла там, де вони змінилися. Використовуйте після редагування деталі, яку використовує ця збірка.",
"help.config.configure": "Додає параметри, операції, матеріали чи вигляди як стовпці таблиці конфігурацій. Використовуйте, щоб створити варіанти одного проєкту, наприклад розміри деталі.",
"help.config.preview": "Перевіряє, чи перебудовується рядок таблиці конфігурацій, не змінюючи проєкт чи його історію. Використовуйте перед перемиканням на варіант, у якому ви не впевнені.",
"help.config.rules": "Показує правила таблиці конфігурацій, її рядки та активний рядок. Використовуйте, щоб побачити, як налаштовано варіанти проєкту.",
"help.config.table": "Показує таблицю конфігурацій: по одному рядку на варіант, по одному стовпцю на параметр чи операцію, а також чи проєкт досі відповідає активному рядку. Використовуйте, щоб переглянути варіанти проєкту.",
"help.connect_note": "Перезапустіть кожного асистента, щоб завантажити сервер SolidCraft. Перед зміною кожен файл збережено як резервну копію .bak.",
"help.connect_title": "Підключення ШІ-асистентів",
"help.construct.axis.edge": "Створює допоміжну вісь уздовж прямого ребра або прямої ескізу. Використовуйте як вісь для обертання, кругового масиву чи з'єднання.",
"help.construct.axis.normal_to_face": "Створює допоміжну вісь через точку, перпендикулярну до грані. Використовуйте як вісь, що виходить прямо з поверхні.",
"help.construct.axis.through_cylinder": "Створює допоміжну вісь через центр грані циліндра, конуса чи тора або кругового ребра. Використовуйте, щоб обертати чи розмножувати операції навколо круглої деталі.",
"help.construct.axis.two_planes": "Створює допоміжну вісь там, де сходяться дві площини або плоскі грані. Використовуйте, коли потрібна вісь — лінія між двома гранями.",
"help.construct.axis.two_points": "Створює допоміжну вісь через дві точки, вершини або точки ескізу. Використовуйте для осі, що проходить між двома відомими положеннями.",
"help.construct.plane.along_path": "Створює допоміжну площину, перпендикулярну до ребра чи кривої, у вибраному місці вздовж неї. Використовуйте, щоб накреслити профіль для протягування або переріз траєкторії.",
"help.construct.plane.at_angle": "Створює допоміжну площину, повернуту на кут від площини чи грані навколо осі або ребра. Використовуйте для похилих ескізів, наприклад косого кронштейна.",
"help.construct.plane.midplane": "Створює допоміжну площину посередині між двома площинами чи плоскими гранями або таку, що ділить навпіл кут між ними. Використовуйте як площину симетрії для дзеркального відображення.",
"help.construct.plane.offset": "Створює допоміжну площину, паралельну площині чи плоскій грані, на відстані або через точку. Використовуйте, щоб креслити на заданій висоті над гранню.",
"help.construct.plane.perpendicular": "Створює допоміжну площину, що містить пряму чи ребро й стоїть перпендикулярно до площини або грані. Використовуйте, щоб креслити на моделі вздовж ребра в прямовисній площині.",
"help.construct.plane.tangent": "Створює допоміжну площину, що дотикається до циліндра, конуса, кулі чи тора в точці. Використовуйте, щоб креслити на боці круглої деталі.",
"help.construct.plane.three_points": "Створює допоміжну площину через три точки. Використовуйте для площини, заданої положеннями на моделі, наприклад трьома кутами.",
"help.construct.plane.two_edges": "Створює допоміжну площину через два прямі ребра чи прямі, що лежать в одній площині. Використовуйте для площини через деталь, наприклад через два протилежні ребра.",
"help.construct.point.along_path": "Створює допоміжну точку в певному місці вздовж ребра чи кривої. Використовуйте як орієнтир на півшляху вздовж траєкторії.",
"help.construct.point.center": "Створює допоміжну точку в центрі кругового ребра, кола чи дуги ескізу, кулі або тора. Використовуйте як орієнтир для отворів, осей і з'єднань.",
"help.construct.point.edge_plane": "Створює допоміжну точку там, де ребро чи пряма проходить крізь площину або плоску грань. Використовуйте, щоб позначити, де траєкторія перетинає площину.",
"help.construct.point.three_planes": "Створює допоміжну точку там, де сходяться три площини чи плоскі грані. Використовуйте як орієнтир кута, навіть якщо в моделі немає вершини.",
"help.construct.point.two_edges": "Створює допоміжну точку там, де два ребра чи прямі сходяться або підходять найближче одне до одного. Використовуйте як орієнтир у віртуальному куті.",
"help.construct.point.vertex": "Створює допоміжну точку на вершині або точці ескізу. Використовуйте як орієнтир, що залишається, коли навколишній ескіз чи тіло приховано.",
"help.contact.check": "Перелічує пари деталей у наборах контактів, що проходять одна крізь одну в поточному положенні. Використовуйте, щоб знайти зіткнення перед керуванням з'єднаннями чи запуском дослідження руху.",
"help.contact.create": "Об'єднує дві чи більше деталей у набір контактів, тіла якого не можуть проходити одне крізь одне, поки рухаються з'єднання. Використовуйте для деталей, що мають зупинятися при дотику, наприклад важеля біля свого упору.",
"help.contact.disable_all": "Вимикає контакт, тож керовані з'єднання та дослідження руху більше не зупиняються там, де деталі торкаються. Використовуйте, щоб знову вільно рухати деталі або щоб велика збірка швидко реагувала.",
"help.contact.edit": "Змінює набір контактів: деталі в ньому, його назву або те, чи його придушено; також може видалити набір. Використовуйте, щоб налаштувати, які деталі не можуть проходити одна крізь одну.",
"help.contact.enable_all": "Поміщає кожну деталь збірки в один набір контактів, тож жодні дві деталі не можуть проходити одна крізь одну, поки рухаються з'єднання. Використовуйте для швидкої перевірки всього механізму.",
"help.contact.enable_sets": "Вмикає контакт для заданих вами наборів контактів, тож керовані з'єднання та дослідження руху зупиняються там, де їхні деталі проходили б одна крізь одну. Використовуйте, щоб повернути ваші набори після вимкнення контакту.",
"help.contact.list": "Перелічує набори контактів проєкту, деталі в кожному з них і чи ввімкнено контакт. Використовуйте, щоб перевірити налаштування контакту перед керуванням збіркою.",
"help.document.inspect": "Показує огляд проєкту: його компоненти, тіла, ескізи, операції та параметри. Використовуйте, щоб зорієнтуватися в проєкті, який ви створювали не самі.",
"help.document.units": "Змінює одиниці, в яких проєкт показує довжини, наприклад mm або дюйми. Геометрія зберігає розмір; змінюються лише відображення й прості числа.",
"help.edit.checkpoint": "Запам'ятовує проєкт, активний ескіз і історію скасувань у поточному стані. Використовуйте перед ризикованою спробою, від якої, можливо, захочете повернутися.",
"help.edit.restore_checkpoint": "Повертається до контрольної точки разом з історією скасувань. Використовуйте, щоб відкинути все зроблене після контрольної точки одним кроком.",
"help.explode.create": "Створює рознесений вид, що розсовує деталі від центра збірки або на задані вами переміщення. Використовуйте, щоб показати, як збірку складають, для інструкцій чи презентацій.",
"help.face.delete": "Видаляє вибрані грані, а сусідні грані закривають проміжок, або залишає його відкритим як поверхню. Використовуйте, щоб прибрати заокруглене ребро, отвір чи бобишку, що заважають.",
"help.file.insert_mesh": "Додає файл 3MF, STL, OBJ, PLY або glTF до проєкту як тіла сітки в новому компоненті. Використовуйте, щоб розмістити завантажену чи відскановану модель поруч із проєктом як орієнтир.",
"help.file.insert_step": "Додає файл STEP, IGES, FreeCAD або Rhino до проєкту як суцільні тіла в новому компоненті; деталі збірки стають вкладеними компонентами. Використовуйте, щоб імпортувати моделі від постачальників чи з інших CAD-програм.",
"help.file.save_mesh": "Зберігає тіла як сітку STL, 3MF або OBJ із вибраною вами гладкістю криволінійних граней. Використовуйте, щоб підготувати деталі до 3D-друку або для програм, які читають сітки.",
"help.file.send_to_slicer": "Зберігає вибрані тіла як файл 3MF і відкриває його у вибраному вами слайсері. Використовуйте, щоб перейти від моделі до друку одним кроком.",
"help.font_details": "Інтерфейс використовує вбудовані шрифти egui (Ubuntu Light і Hack під ліцензіями Ubuntu Font Licence та MIT/Bitstream Vera; Noto Emoji та шрифт піктограм емодзі під ліцензіями OFL і MIT). Для тексту ескізів використовується Liberation Sans (SIL OFL 1.1). Необов’язковий пакет шрифтів The Crafting Apps, craft-fonts (BIZ UDPGothic, Shippori Mincho, BIZ UDMincho, Noto Sans CJK SC, Noto Sans Arabic; SIL OFL 1.1), не входить до збірок SolidCraft.",
"help.fonts": "Шрифти",
"help.frame.member": "Розміщує профіль, наприклад трубу чи алюмінієвий профіль, уздовж прямих ескізу рами, по одному елементу на пряму. Використовуйте, щоб будувати рами, стелажі та зварні конструкції.",
"help.inspect.accessibility": "Фарбує грані, до яких інструмент може дістатися з одного напрямку, і ті, до яких не може. Використовуйте, щоб перевірити деталь на можливість обробки чи формування з цього боку.",
"help.inspect.center_of_mass": "Показує центр мас тіл — кожного окремо й усіх разом — за однорідної густини. Використовуйте, щоб перевірити баланс і те, куди деталь перекинеться.",
"help.inspect.colored_components": "Надає кожному компоненту власний тимчасовий колір, не змінюючи вигляди. Використовуйте, щоб одразу розрізняти деталі збірки.",
"help.inspect.compare": "Порівнює два тіла й показує, де в одного є матеріал, якого немає в іншого, з об'ємом і відхиленням. Використовуйте, щоб порівняти змінену чи імпортовану деталь з оригіналом.",
"help.inspect.continuity": "Перевіряє, наскільки гладко грані сходяться вздовж ребер: проміжки, злами чи стрибки кривизни, і розфарбовує шви. Використовуйте, щоб знайти місця, де поверхні сполучаються нечисто.",
"help.inspect.curvature_comb": "Малює гребені вздовж кривих, ребер чи граней, зубці яких показують, наскільки сильно вони згинаються. Використовуйте, щоб помітити плоскі ділянки, злами та нерівномірну кривизну.",
"help.inspect.curvature_map": "Розфарбовує грані за силою їхньої кривизни: червоним там, де радіус малий. Використовуйте, щоб знайти тісні місця й оцінити, наскільки гладка поверхня.",
"help.inspect.draft": "Розфарбовує грані за кутом ухилу відносно напрямку витягування, позначаючи ті, де його замало. Використовуйте, щоб перевірити деталь перед формуванням чи литтям.",
"help.inspect.environment_map": "Показує модель із відбивним, дзеркальним оздобленням. Використовуйте, щоб оцінити перебіг поверхонь за тим, як по них біжать відбиття.",
"help.inspect.interference": "Знаходить тіла, що перетинаються, і показує кожен перетин з його об'ємом. Використовуйте, щоб перевірити збірку на деталі, які зіштовхуються.",
"help.inspect.isocurve": "Малює ізопараметричні криві граней — сітку, на якій побудована поверхня. Використовуйте, щоб побачити, як тече поверхня і де вона згущується.",
"help.inspect.measure": "Вимірює довжини, відстані, кути, площі та радіуси між вибраними об'єктами або об'єм і масу тіл. Використовуйте, щоб перевірити розміри й зазори.",
"help.inspect.minimum_radius": "Знаходить найменший радіус кривизни кривих, ребер чи граней і те, де він розташований. Використовуйте, щоб перевірити, чи може інструмент або сопло пройти за формою.",
"help.inspect.section": "Розрізає вид уздовж площини та штрихує перерізані грані, не змінюючи модель. Використовуйте, щоб зазирнути всередину деталей і збірок.",
"help.inspect.zebra": "Показує чорно-білі смуги, що відбиваються на гранях моделі. Використовуйте, щоб оцінити гладкість: смуги, які обриваються чи ламаються на ребрі, вказують на поганий перехід.",
"help.joint.as_built": "З'єднує дві деталі там, де вони вже є, не переміщуючи жодну з них, і задає, як вони ще можуть рухатися. Використовуйте для деталей, які ви вже поставили в остаточне положення.",
"help.joint.cam": "Зв'язує кулачок, що обертається, зі штовхачем, тож штовхач ковзає чи гойдається, коли контур кулачка проходить під ним. Використовуйте для кулачків, ексцентриків і приводів клапанів.",
"help.joint.create": "З'єднує дві деталі у вибраних початках з'єднання й переміщує другу деталь на місце; тип з'єднання задає, як вони ще можуть рухатися. Використовуйте, щоб створити збірку, деталі якої рухаються як справжній механізм.",
"help.joint.drive": "Задає кут чи відстань з'єднання й переміщує разом з ним деталі в межах його обмежень; пов'язані з'єднання та замкнені контури слідують за ним. Використовуйте, щоб перевірити, що механізм рухається як задумано.",
"help.joint.gear": "Зв'язує два обертові з'єднання передавальним числом, тож рух одного обертає інше. Використовуйте для прямозубих коліс і зубчастих вінців, із передавальним числом за радіусами ділильних кіл або кількістю зубів.",
"help.joint.limits": "Задає, наскільки далеко з'єднання може повернутися чи зсунутися, мінімумом і максимумом, або скасовує ці межі. Використовуйте, щоб утримати шарнір, повзун чи важіль у межах його справжнього ходу.",
"help.joint.motion_link": "Пов'язує два з'єднання співвідношенням і зсувом, тож рух одного рухає інше. Використовуйте для сталого зв'язку між з'єднаннями, якого не охоплюють «Зубчаста передача», «Рейкова передача» чи «Гвинт».",
"help.joint.origin": "Розміщує іменований початок з'єднання на деталі: у центрі грані чи круглого торця, на середині ребра, у куті або в точці. Використовуйте, щоб підготувати місця кріплення з'єднань; початок, вибраний на грані, слідує за нею, коли деталь змінює розмір.",
"help.joint.rack_pinion": "Зв'язує шестірню, що обертається, з рейкою, що ковзає, тож рейка переміщується на довжину ділильного кола, яку прокочує шестірня. Використовуйте для рейкових приводів, рульового керування й лінійних столиків.",
"help.joint.reach": "Переміщує точку на деталі до цілі, змінюючи з'єднання на її ланцюзі в межах їхніх обмежень. Використовуйте, щоб поставити механізм у позу за тим, де має бути його кінець, наприклад кінчик руки робота.",
"help.joint.rigid_group": "Скріплює вибрані деталі як є, тож вони рухаються як одне ціле. Використовуйте для деталей, що належать одна до одної й не мають руху між собою.",
"help.joint.screw": "Зв'язує обертання й ковзання кроком, тож кожен оберт зсуває на цю відстань. Використовуйте для ходових гвинтів, болтів і різьбових шпинделів.",
"help.library.apply": "Застосовує матеріал чи вигляд із файлу локальної бібліотеки до тіл, граней або компонентів. Використовуйте, щоб повторно застосувати матеріали, збережені з іншого проєкту.",
"help.library.export": "Зберігає матеріали та вигляди проєкту у файл бібліотеки. Використовуйте, щоб ділитися ними або повторно застосовувати в інших проєктах.",
"help.library.inspect": "Перевіряє файл бібліотеки та перелічує його матеріали й вигляди, не змінюючи проєкт. Використовуйте, щоб побачити, що містить бібліотека, перш ніж її застосовувати.",
"help.licences": "Ліцензії",
"help.material.assign": "Задає, з чого зроблено вибрані тіла, наприклад зі сталі, алюмінію чи ABS. Використовуйте, щоб маса й вага відповідали справжній деталі.",
"help.material.properties.validate": "Перевіряє картку даних матеріалу на узгодженість чисел і пропущені значення. Використовуйте перед тим, як покладатися на ці дані для маси чи жорсткості.",
"help.mesh.convert": "Перебудовує тіло сітки, наприклад STL, у суцільне тіло з плоскими й циліндричними гранями, яке можна редагувати. Використовуйте, щоб змінювати імпортовані механічні деталі як змодельоване тіло.",
"help.mit": "Ліцензія MIT",
"help.motion.study": "Задає значення з'єднань на кроках уздовж часової шкали й відтворює їх як анімацію. Використовуйте, щоб спостерігати рух механізму за послідовністю й перевіряти зазори по дорозі.",
"help.motion.trace": "Відстежує траєкторію, якою рухається точка деталі під час дослідження руху чи керування з'єднанням, і після підтвердження зберігає її як криву 3D-ескізу. Використовуйте, щоб побачити, куди сягає механізм, або щоб будувати на його траєкторії.",
"help.notice": "NOTICE",
"help.occurrence.ground": "Закріплює деталь на місці або знову звільняє її, тож з'єднання переміщують інші деталі навколо неї. Використовуйте для рами чи основи, на якій будується решта збірки.",
"help.occurrence.move": "Переміщує екземпляр компонента в збірці",
"help.parameters.change": "Відкриває таблицю іменованих значень і виразів, що керують розмірами проєкту. Використовуйте, щоб змінити розмір в одному місці, а всі операції, які його використовують, підлаштувалися.",
"help.parameters.export": "Зберігає параметри проєкту як CSV або JSON. Використовуйте, щоб редагувати їх у таблиці або перенести до іншого проєкту.",
"help.parameters.graph": "Показує, які параметри й операції використовують які інші, а також цикли чи помилки між ними. Використовуйте, щоб побачити, на що вплине зміна параметра.",
"help.parameters.import": "Зчитує параметри з CSV або JSON у проєкт: усі або жодного. Використовуйте, щоб імпортувати значення з таблиці чи іншого проєкту.",
"help.parameters.move": "Переміщує параметр користувача перед іншим або після нього в списку. Використовуйте, щоб тримати пов'язані параметри разом.",
"help.parts.fastener": "Додає стандартний гвинт, болт, гайку, шайбу, штифт чи підшипник вибраного розміру. Розміщений на отворі, він сідає в отвір із з'єднанням, тож вам не потрібно моделювати кріплення самостійно.",
"help.parts.insert": "Вставляє стандартну деталь вибраного сімейства, розміру й довжини. Розміщена на краю чи стінці отвору, вона сідає на отвір із жорстким з'єднанням.",
"help.parts.library": "Відкриває стандартні деталі: гвинти, болти, гайки, шайби, установчі гвинти, штифти та підшипники стандартних розмірів. Використовуйте, щоб додати стандартну деталь замість того, щоб моделювати її самостійно.",
"help.parts.resize": "Змінює розмір чи довжину вставленої стандартної деталі та перебудовує її; її з'єднання тримають її на місці. Використовуйте, коли гвинт виявився задовгим або отвору потрібен інший розмір.",
"help.plastic.assign_rule": "Призначає тілам правило пластику, тож їхні пластикові операції беруть з нього ухил і зазор за замовчуванням. Використовуйте, щоб один раз налаштувати формовану деталь для всіх її операцій.",
"help.plastic.boss": "Додає бобишку під гвинт на грані: стовпчик із необов'язковими отвором, ухилом, заокругленням біля основи та ребрами жорсткості. Використовуйте для точок кріплення гвинтів у формованих чи надрукованих корпусах.",
"help.plastic.lip": "Додає губку або відповідний паз уздовж краю порожнистого тіла. Використовуйте, щоб дві половини корпусу центрувалися одна на одній і щільно закривалися.",
"help.plastic.manage_rules": "Створює й редагує правила пластику: матеріал, товщину стінки, радіуси, зазор і ухил. Використовуйте їх, щоб операції формованої деталі були узгодженими.",
"help.plastic.rest": "Додає упор на грані: круглий чи прямокутний майданчик, суцільний або порожнистий, з ухилом. Використовуйте як опору чи стійку у формованому корпусі.",
"help.plastic.snap_fit": "Додає клацковий гачок на грані із заданими довжиною, товщиною та зачепом. Використовуйте, щоб скріпити деталі защіпкою без гвинтів.",
"help.pointcloud.insert": "Вставте скан у форматі PLY, XYZ або PTS як хмару точок поряд із моделлю. Використовуйте її як довідку під час побудови моделі за виміряними даними.",
"help.sheet.convert": "Перетворює пластину або порожнисте тіло рівномірної товщини на тіло листового металу зі згинами на вибраних ребрах. Використовуйте, щоб зробити наявну деталь придатною до розгортання.",
"help.sheet.export_bend_table": "Зберігає таблицю згинів тіла листового металу як CSV або JSON: кути, радіуси та положення згинів на розгортці. Використовуйте для листогибочного преса або цеху.",
"help.sheet.export_dxf": "Зберігає розгортку як DXF із контурами, лініями згинів і за бажанням примітками до згинів. Використовуйте для лазерного, плазмового чи гідроабразивного різання.",
"help.sheet.flange": "Додає фланець: основну пластину з ескізу, стінку вздовж розімкненого контуру ескізу або зігнуту стінку на краях листа. Використовуйте, щоб будувати деталі з листового металу.",
"help.sheet.flat_pattern": "Створює розгортку тіла листового металу з її розміром, вирізами та лініями згинів. Використовуйте, щоб перевірити заготовку перед різанням.",
"help.sheet.fold": "Згинає лист уздовж прямої ескізу на заданий кут і радіус. Використовуйте, щоб зігнути плоский лист після вирізання в ньому елементів.",
"help.sheet.hem": "Загинає край листа назад на себе. Використовуйте для безпечних, жорстких країв без гострих задирок.",
"help.sheet.manage_rules": "Створює й редагує правила листового металу: товщину, радіус згину, коефіцієнт K, полегшення та проміжки. Використовуйте їх, щоб узгодити матеріал та інструменти вашої майстерні.",
"help.sheet.path_flange": "Додає ланцюг фланців уздовж краю листа за розімкненим ланцюгом прямих ескізу. Використовуйте для профілів, таких як U- чи Z-подібний, одним кроком.",
"help.sheet.perforate": "Додає поле отворів по всьому плоскому листу в шаховому чи квадратному розташуванні. Використовуйте для вентиляційних отворів, решіток і полегшених панелей.",
"help.sheet.refold": "Знову згинає розгорнуте тіло листового металу. Використовуйте після додавання елементів до плоского листа.",
"help.sheet.unfold": "Розгортає всі згини тіла листового металу. Використовуйте, щоб додати отвори чи вирізи, які мають перетинати згин, а потім знову зігнути.",
"help.sketch.arc.center_point": "Малює кругову дугу навколо центральної точки від початкової до кінцевої точки. Використовуйте, коли відомий центр дуги, наприклад радіус навколо отвору чи осі повороту.",
"help.sketch.arc.tangent": "Малює дугу, що починається в кінці прямої чи дуги й продовжує її по дотичній. Використовуйте, щоб продовжити ланцюг плавним згином замість кута.",
"help.sketch.arc.three_point": "Малює дугу від початкової до кінцевої точки через третю точку. Використовуйте, коли дуга має проходити через задані точки, а не навколо відомого центра.",
"help.sketch.arc3d": "Малює точну кругову дугу в просторі через три точки за ввімкненого 3D-ескізу. Використовуйте для згинів траєкторій і напрямних, що виходять із площини ескізу.",
"help.sketch.auto_constrain": "Додає обмеження, які ескіз майже вже має, як-от горизонтальність, паралельність чи співпадання, а потім проставляє розміри, доки він не стане повністю визначеним. Використовуйте, щоб зафіксувати приблизно накреслений ескіз одним кроком.",
"help.sketch.auto_constrain_from_datum": "Працює як «Автообмеження», але вимірює положення від вибраної вами базової точки замість початку координат. Використовуйте, коли деталь розмічено від однієї опорної точки, наприклад кута чи отвору.",
"help.sketch.blend_curve": "З'єднує кінці двох кривих плавним сплайном, дотичним до обох, або також неперервним за кривизною, якщо ви так виберете. Використовуйте, щоб перекрити проміжок між кривими без зламу.",
"help.sketch.break": "Розбиває криву на частини там, де її перетинають інші криві, або в точках, які ви на ній розмістите. Використовуйте, коли частина кривої потребує власного обмеження або її слід видалити окремо.",
"help.sketch.cancel": "Виходить з ескізу й відкидає все, що змінено відтоді, як його створено чи відкрито для редагування. Скасування дії повертає зміни.",
"help.sketch.centerline": "Перемикає прямі між звичайними та осьовими лініями — осями, які профілі не враховують. Використовуйте осьову лінію як вісь для обертання, дзеркала чи обмеження симетрії.",
"help.sketch.chamfer.distance_angle": "Скошує кут між двома прямими, заданий відстанню вздовж першої прямої та кутом. Використовуйте, коли на кресленні фаску задано довжиною й кутом, наприклад 2 mm × 30°.",
"help.sketch.chamfer.equal_distance": "Скошує кут між двома прямими на однакову відстань уздовж обох. Використовуйте для звичайної фаски 45° на контурі.",
"help.sketch.chamfer.two_distance": "Скошує кут між двома прямими, заданий окремою відстанню вздовж кожної прямої. Використовуйте для фасок, що не є 45°, заданих двома довжинами.",
"help.sketch.circle.center": "Малює коло за центром і діаметром. Використовуйте для отворів, бобишок та інших круглих елементів, центр яких відомий.",
"help.sketch.circle.three_point": "Малює коло через три точки. Використовуйте, коли коло має проходити через задані точки, наприклад наявної геометрії.",
"help.sketch.circle.three_tangent": "Малює коло, що дотикається до трьох прямих, кіл або дуг. Використовуйте, щоб вписати коло в простір між трьома кривими, наприклад вписане коло трикутника.",
"help.sketch.circle.two_point": "Малює коло за двома кінцями його діаметра. Використовуйте, коли відомі точки на краю кола, а не його центр.",
"help.sketch.circle.two_tangent": "Малює коло заданого розміру, що дотикається до двох прямих, кіл або дуг. Використовуйте для заокруглення сталого радіуса між двома кривими.",
"help.sketch.conic": "Малює конічну криву між двома кінцевими точками, форма якої задається вершинною точкою та значенням rho. Використовуйте для плавних переходів, повноту яких потрібно налаштувати, — від плоскої до майже гострого кута.",
"help.sketch.constrainer": "Застосовує обмеження, яке вибрані одна чи дві криві майже вже мають, як-от горизонтальність, паралельність, дотичність чи рівність. Використовуйте, щоб упорядкувати накреслений від руки ескіз по одному зв'язку за раз.",
"help.sketch.constraint.coincident": "Розміщує точку на іншій точці, кривій чи осі ескізу. Використовуйте, щоб закрити проміжки в профілі або розмістити точку на прямій.",
"help.sketch.constraint.collinear": "Розміщує дві прямі на одній прямій. Використовуйте, щоб вирівняти перервані краї, наприклад обидві сторони виїмки.",
"help.sketch.constraint.concentric": "Надає двом колам чи дугам спільний центр. Використовуйте для кілець, цековок і валів з уступами.",
"help.sketch.constraint.curvature": "Змушує дві криві, що сходяться в кінцевій точці, продовжуватися з однаковою кривизною (G2). Використовуйте там, де дотичного сполучення замало для плавності, наприклад на видимих поверхнях.",
"help.sketch.constraint.equal": "Робить прямі однакової довжини, а кола й дуги — однакового радіуса. Використовуйте, щоб один розмір керував кількома однаковими елементами.",
"help.sketch.constraint.fix": "Закріплює точки чи криві там, де вони є, або знову звільняє їх. Використовуйте для геометрії, що не повинна зміщуватися під час перетягування чи розв'язування ескізу.",
"help.sketch.constraint.horizontal_vertical": "Робить пряму або лінію між двома точками горизонтальною чи вертикальною — залежно від того, що ближче. Використовуйте, щоб вирівняти контур за осями ескізу.",
"help.sketch.constraint.midpoint": "Ставить точку на середину прямої або поєднує середини двох прямих. Використовуйте, щоб відцентрувати геометрію відносно ребра.",
"help.sketch.constraint.parallel": "Робить дві прямі паралельними. Використовуйте для сторін, які мають залишатися паралельними, коли змінюються інші розміри.",
"help.sketch.constraint.perpendicular": "Змушує дві прямі сходитися під прямим кутом. Використовуйте для прямих кутів між прямими, що не лежать на осях ескізу.",
"help.sketch.constraint.polygon": "Робить замкнений ланцюг прямих правильним багатокутником: рівні сторони, а кожен кут лежить на одному колі. Використовуйте, щоб зробити накреслений від руки багатокутник правильним і зберегти це.",
"help.sketch.constraint.symmetry": "Робить дві точки чи криві дзеркальним відображенням одна одної відносно прямої або точки. Використовуйте, щоб профіль залишався симетричним, коли ви змінюєте одну зі сторін.",
"help.sketch.constraint.tangent": "Змушує дві криві дотикатися по дотичній, наприклад пряму й дугу. Використовуйте для плавних сполучень без зламу.",
"help.sketch.construction": "Перемикає криві між звичайною та конструкційною геометрією, яку профілі не враховують. Використовуйте конструкційні криві як допоміжні для розмітки, орієнтирів і розмірів.",
"help.sketch.construction_line": "Створює нескінченну допоміжну пряму через дві точки. Використовуйте її для розмітки ескізу без розбиття профілів.",
"help.sketch.construction_line.angle": "Створює нескінченну допоміжну пряму під кутом до осі X ескізу. Виберіть точку й введіть кут або виберіть її напрямок.",
"help.sketch.construction_line.bisector": "Виберіть дві прямі ескізу, що перетинаються, а потім одну з двох бісектрис. Результат змінюється разом із вихідними прямими.",
@@ -1412,12 +1580,71 @@
"help.sketch.construction_line.tangent_external": "Виберіть коло або кругову дугу, потім зовнішню точку й варіант дотичної. У попередніх переглядах показано лише точки дотику на намальованій дузі.",
"help.sketch.construction_line.tangent_two": "Виберіть два кола або кругові дуги, потім виберіть спільну дотичну в попередньому перегляді. Точки дотику мають лежати на намальованих кривих.",
"help.sketch.construction_line.vertical": "Створює нескінченну вертикальну допоміжну пряму через точку. Її вертикальне обмеження зберігається під час подальших змін.",
"help.sketch.copy": "Копіює вибрані криві й точки ескізу разом з обмеженнями та розмірами між ними. Вставте їх у цей ескіз або в інший.",
"help.sketch.create": "Починає новий 2D-ескіз на площині або на плоскій грані моделі. Кожне видавлювання, обертання й протягування починається з ескізу.",
"help.sketch.cut": "Копіює вибрану геометрію ескізу й видаляє її з ескізу одним кроком скасування. Вставте її в іншому місці цього ескізу або в інший.",
"help.sketch.dimension": "Додає керівний розмір: довжину, відстань, кут, радіус чи діаметр залежно від вибраного. Введіть значення або назву параметра, і ескіз підлаштується.",
"help.sketch.edit": "Відкриває наявний ескіз для редагування. Операції, побудовані на ньому, оновлюються, коли ви завершуєте ескіз.",
"help.sketch.ellipse": "Малює еліпс за його центром, кінцем великої осі та точкою на малій стороні. Використовуйте для овальних отворів, кулачків та інших видовжених округлих форм.",
"help.sketch.equation_curve": "Створює криву за параметричними рівняннями X(t), Y(t) у площині ескізу.",
"help.sketch.extend": "Подовжує пряму чи дугу до найближчої кривої на її шляху або нарощує дві криві, доки вони не зустрінуться. Використовуйте, щоб закрити проміжки в профілі після обрізання чи редагування.",
"help.sketch.fillet": "Заокруглює кут, де сходяться дві прямі чи дуги, дугою заданого радіуса. Кілька кутів, заокруглених разом, мають один радіус.",
"help.sketch.finish": "Виходить з ескізу й повертається до моделі. Його замкнені профілі стають готовими до «Видавлювання», «Обертання» й інших операцій.",
"help.sketch.finish_auto_constrain": "Виконує «Автообмеження» для ескізу, а потім завершує його. Використовуйте, щоб залишити ескіз повністю визначеним одним кроком.",
"help.sketch.fit_curves_to_section": "Розрізає тіло сітки чи суцільне тіло площиною ескізу й підганяє прямі та дуги до перерізу. Використовуйте, щоб відновити відскановану чи імпортовану деталь як ескіз, який можна редагувати.",
"help.sketch.include_3d": "Переносить ребра, вершини моделі й криві інших ескізів до цього ескізу як пов'язані посилання, сплющуючи ті, що поза його площиною, на неї. Використовуйте, щоб будувати на геометрії, яка не лежить у площині ескізу.",
"help.sketch.infinite": "Перемикає прямі між звичайними та нескінченними допоміжними прямими, що проходять через увесь вид. Використовуйте їх як орієнтири розмітки, які ніколи не виявляться закороткими.",
"help.sketch.insert_dxf": "Зчитує криві креслення DXF в ескіз, масштабовані, повернуті й розміщені так, як ви задасте. Використовуйте, щоб будувати на 2D-кресленні з іншої програми, наприклад на контурі для лазерного різання.",
"help.sketch.insert_svg": "Зчитує контури малюнка SVG в ескіз, масштабовані, повернуті й розміщені так, як ви задасте. Використовуйте, щоб перетворити логотип або векторний контур на криві, які можна видавити.",
"help.sketch.inspect": "Відкриває звіт про відкритий ескіз: скільки ступенів вільності залишилося і чи він повністю обмежений. Використовуйте його, щоб дізнатися, що ще рухається, перш ніж завершити ескіз.",
"help.sketch.intersect": "Додає криві чи точки, де тіла, грані, ребра або інші ескізи перетинають площину ескізу. Вони залишаються пов'язаними й слідують за моделлю, коли вона змінюється.",
"help.sketch.intersection_curve": "Створює 3D-криві там, де сходяться два тіла чи грані, пов'язані з ними. Використовуйте їх як траєкторії або напрямні, що слідують за моделлю.",
"help.sketch.isoparametric_curve": "Створює 3D-криву, пов'язану з гранню, вздовж напрямку U або V грані через вибрану вами точку. Використовуйте як траєкторію або лінію розділення, що слідує за поверхнею.",
"help.sketch.line": "Малює з'єднані прямі точка за точкою — як розімкнений ланцюг або замкнений контур. Це основний інструмент для більшості профілів.",
"help.sketch.line.midpoint": "Малює пряму від її середини до одного кінця, а другий кінець відображається дзеркально. Використовуйте для прямих, центрованих на точці, наприклад симетричного краю.",
"help.sketch.line3d": "Малює з'єднані прямі між точками в просторі за ввімкненого 3D-ескізу. Використовуйте для траєкторій і рам, що виходять із площини ескізу.",
"help.sketch.mirror": "Віддзеркалює криві й точки ескізу відносно прямої або осі та додає обмеження симетрії. Використовуйте, щоб накреслити половину симетричного профілю й доповнити його.",
"help.sketch.move": "Переміщує або повертає криві й точки ескізу чи їхню копію. Використовуйте, щоб змінити положення геометрії, зберігши її форму й обмеження.",
"help.sketch.offset": "Створює копію ланцюга кривих на заданій відстані з одного чи обох боків. Використовуйте для стінок, контурів і зазорів; відстань залишається розміром, який можна редагувати.",
"help.sketch.paste": "Вставляє в активний ескіз геометрію ескізу, яку ви скопіювали чи вирізали. Розмістіть її в точці або зсуньте на відстань.",
"help.sketch.pattern.circular": "Копіює геометрію ескізу навколо центральної точки по повному колу або на заданий кут. Використовуйте для кіл розташування болтів, спиць і зубів.",
"help.sketch.pattern.rectangular": "Копіює геометрію ескізу рядками й стовпцями із заданими проміжками. Використовуйте для сіток отворів, пазів чи вентиляційних прорізів.",
"help.sketch.point": "Ставить точку ескізу. Використовуйте як орієнтир для розмірів, обмежень, центрів отворів або пізніших операцій.",
"help.sketch.point3d": "Ставить точку в просторі за ввімкненого 3D-ескізу. Використовуйте як орієнтир для 3D-кривих і траєкторій.",
"help.sketch.polygon.circumscribed": "Малює правильний багатокутник навколо кола, розмір якого задано від центра до середини сторони. Використовуйте, коли відомий розмір під ключ, як для шестигранної гайки.",
"help.sketch.polygon.edge": "Малює правильний багатокутник за двома кінцями однієї сторони. Використовуйте, коли відомі довжина й положення сторони.",
"help.sketch.polygon.inscribed": "Малює правильний багатокутник усередині кола, розмір якого задано від центра до кута. Використовуйте, коли відомий розмір між протилежними кутами.",
"help.sketch.project": "Переносить ребра, грані, вершини моделі та криві інших ескізів до цього ескізу, спроєктовані на його площину. Вони залишаються пов'язаними й слідують за моделлю, коли вона змінюється.",
"help.sketch.project_to_surface": "Проєктує криві інших ескізів уздовж нормалі цього ескізу на грань як пов'язані 3D-криві. Використовуйте, щоб нанести логотип, лінію розділення чи траєкторію на криву поверхню.",
"help.sketch.rectangle.center": "Малює прямокутник за центром і одним кутом. Використовуйте для контурів, центрованих на точці, наприклад на початку координат.",
"help.sketch.rectangle.rounded": "Малює прямокутник із чотирма кутами, заокругленими одним радіусом. Використовуйте для пластин, кришок і отворів із заокругленими кутами.",
"help.sketch.rectangle.three_point": "Малює прямокутник за одним краєм і точкою на протилежній стороні. Використовуйте для прямокутників, повернутих під кутом до осей ескізу.",
"help.sketch.rectangle.two_point": "Малює прямокутник за двома протилежними кутами. Використовуйте для контурів пластин, блоків і кишень.",
"help.sketch.scale": "Масштабує криві й точки ескізу на коефіцієнт відносно базової точки. Використовуйте, щоб змінити розмір частини ескізу, не креслячи її знову.",
"help.sketch.slot.arc_center": "Малює дуговий паз заданої ширини вздовж дуги, заданої центром, початком і кінцем. Використовуйте для регулювальних пазів навколо осі повороту.",
"help.sketch.slot.arc_three_point": "Малює дуговий паз заданої ширини вздовж дуги через три точки. Використовуйте, коли траєкторія паза має проходити через задані точки.",
"help.sketch.slot.center_point": "Малює прямий паз заданої ширини від його центра до центра однієї кінцевої дуги. Використовуйте для пазів, центрованих на точці.",
"help.sketch.slot.center_to_center": "Малює прямий паз заданої ширини між центрами двох його кінцевих дуг. Використовуйте для пазів, розмір яких задано від центру до центру, наприклад регулювальних пазів для гвинтів.",
"help.sketch.slot.overall": "Малює прямий паз заданої ширини від одного зовнішнього кінця до іншого. Використовуйте, коли важлива загальна довжина паза.",
"help.sketch.spline.control_point": "Малює кубічний сплайн, форма якого задається контрольними точками, крізь які він не проходить. Використовуйте для плавних, текучих кривих, які ви формуєте переміщенням точок.",
"help.sketch.spline.control_point_5": "Малює сплайн 5-го степеня, форма якого задається контрольними точками. Використовуйте там, де криві мають сполучатися з плавнішою кривизною, наприклад на видимих дизайнерських поверхнях.",
"help.sketch.spline.fit_point": "Малює плавний сплайн, що проходить через кожну розміщену вами точку, розімкнений чи замкнений. Використовуйте, щоб обвести форму через відомі точки.",
"help.sketch.spline3d": "Малює плавну криву в просторі через точки за ввімкненого 3D-ескізу. Використовуйте для траєкторій протягування та прокладання кабелів, що виходять із площини ескізу.",
"help.sketch.spun_profile": "Створює в площині ескізу контур, який тіло описує, обертаючись навколо осі. Використовуйте, щоб отримати силует точеної деталі для обертання чи креслення.",
"help.sketch.text": "Пише текст в ескізі вибраним шрифтом, висотою та під вибраним кутом; його слова можуть залежати від параметрів. Видавіть його або витисніть для написів і підписів.",
"help.sketch.transform": "Масштабує, повертає й переміщує геометрію ескізу відносно центральної точки одним кроком. Використовуйте, щоб одразу змінити положення й розмір виділеного.",
"help.sketch.trim": "Видаляє частину кривої між найближчими перетинами навколо місця, де ви клацнули. Використовуйте, щоб очистити лінії, що накладаються, до замкненого профілю.",
"help.solid.align": "Переміщує вибрані тіла так, щоб точка, грань чи площина на них зійшлася з точкою, гранню чи площиною деінде. Використовуйте, щоб притиснути деталь до іншої, не вимірюючи зсуву.",
"help.solid.boundary_fill": "Створює суцільні тіла з областей, обмежених тілами-інструментами, що перекриваються, заповнюючи лише вибрані області. Використовуйте, щоб побудувати форму з простору, який разом обмежують кілька тіл.",
"help.solid.bounding_solid": "Створює прямокутний паралелепіпед, що охоплює вибрані тіла, за потреби із запасом. Використовуйте, щоб побачити габарити деталі або як заготовку, з якої її обробляють.",
"help.solid.box": "Створює куб (паралелепіпед) за довжиною, шириною й висотою від кутової точки або з центром у точці. Використовуйте для швидкого блока, заготовки-заповнювача чи тіла, у якому вирізають елементи.",
"help.solid.chamfer": "Зрізає вибрані ребра плоским скосом на заданій відстані. Використовуйте, щоб притупити гострі ребра або полегшити вставляння штифта чи гвинта.",
"help.solid.coil": "Створює гвинтове тіло, наприклад пружину, за діаметром, кількістю витків, висотою чи кроком і круглим або квадратним перерізом. Використовуйте для пружин, спіралей і гвинтових гребенів.",
"help.solid.combine": "Об'єднує тіла, вирізає їх із цільового тіла або залишає лише спільний для них об'єм, і може зберегти тіла-інструменти. Використовуйте, щоб з'єднати деталі, вирізати одну форму іншою або знайти, де два тіла перекриваються.",
"help.solid.cone": "Створює конус за колом основи та висотою або усічений конус, коли верх теж має радіус. Використовуйте для конічних звужень, лійок, зенківок і вістер.",
"help.solid.cylinder": "Створює циліндр за радіусом чи діаметром і висотою, що стоїть на точці вздовж осі. Використовуйте для валів, штифтів, бобишок і круглих заготовок.",
"help.solid.draft": "Нахиляє вибрані грані на заданий кут відносно нейтральної площини. Використовуйте для литих чи формованих деталей, щоб вони виймалися з форми.",
"help.solid.emboss": "Піднімає профілі ескізу, наприклад текст чи логотип, над гранню або заглиблює їх у неї. Використовуйте для написів, етикеток і маркування на плоских чи округлих гранях.",
"help.solid.extrude": "Витягує профіль ескізу в 3D на задану відстань, додаючи або видаляючи матеріал. Використовуйте, щоб перетворити плоский контур на брусок, бобишку або кишеню.",
"help.solid.fillet": "Закруглює вибрані ребра плавним круговим переходом заданого радіуса. Використовуйте, щоб пом'якшити гострі ребра для міцності, зручності чи вигляду.",
"help.solid.hole": "Просвердлює круглий отвір заданого діаметра в обраній точці на грані. Використовуйте для отворів під гвинти, штифтів та інших простих круглих отворів.",
@@ -1426,20 +1653,60 @@
"help.solid.move": "Переміщує або обертає вибрані тіла (чи їхню копію) на задану відстань і кут. Використовуйте, щоб змінити положення тіла або створити друге в іншому місці.",
"help.solid.offset_face": "Виштовхує або втягує вибрані грані на задану відстань, а навколишні грані слідують за ними. Використовуйте, щоб зробити стінку товщою, кишеню глибшою, а бобишку вищою без редагування ескізу.",
"help.solid.pattern.circular": "Повторює вибрані об'єкти навколо осі задану кількість разів на заданий повний кут. Використовуйте для кіл розташування болтів, спиць, оребрення та зубців.",
"help.solid.pattern.path": "Копіює операції чи тіла вздовж траєкторії ескізу за кількістю та кроком. Використовуйте для отворів уздовж криволінійного ребра чи деталей уздовж напрямної.",
"help.solid.pattern.rectangular": "Повторює вибрані об'єкти в одному або двох напрямках із заданими кількістю та кроком. Використовуйте для рядів і сіток отворів, ребер жорсткості, штифтів або ніжок.",
"help.solid.pipe": "Створює круглу трубу вздовж траєкторії з кривих ескізу, суцільну чи порожнисту із заданою товщиною стінки. Використовуйте для труб, дротів, кабелів і напрямних.",
"help.solid.press_pull": "Додає або видаляє матеріал, коли ви тягнете грань, або заокруглює ребра, коли тягнете їх. Використовуйте для швидких змін просто на моделі.",
"help.solid.remove": "Забирає вибрані тіла з проєкту, починаючи з цієї точки часового ланцюжка; попередні кроки їх зберігають. Використовуйте, щоб відкинути допоміжне тіло, наприклад інструмент різання, який уже не потрібен.",
"help.solid.replace_face": "Переносить вибрані плоскі грані на площину або на паралельну грань, і тіло зростає чи зменшується до неї. Використовуйте, щоб вирівняти грань урівень з іншою деталлю або допоміжною площиною.",
"help.solid.revolve": "Обертає профіль ескізу навколо осі, утворюючи кругле тіло. Використовуйте для валів, ручок, чаш та будь-яких деталей, круглих навколо осьової лінії.",
"help.solid.rib": "Додає тонку стінку вздовж розімкненої кривої ескізу, що сягає до найближчих граней тіла. Використовуйте, щоб зміцнити стінки й кути, наприклад у формованих чи надрукованих деталях.",
"help.solid.scale": "Збільшує або зменшує вибрані тіла на коефіцієнт: однаковий у всіх напрямках або окремий для кожної осі. Використовуйте, щоб змінити розмір імпортованої форми або врахувати усадку.",
"help.solid.shell": "Робить тіло порожнистим, залишаючи стінки заданої товщини, і може відкривати вибрані грані. Використовуйте для коробок, кришок та інших тонкостінних деталей.",
"help.solid.sphere": "Створює кулю за радіусом чи діаметром навколо центральної точки. Використовуйте для куль, ручок і заокруглених кінців.",
"help.solid.split_body": "Розрізає тіло на окремі тіла площиною, гранню іншого тіла або лінією ескізу. Використовуйте, щоб отримати деталі, які друкуються, обробляються чи фарбуються окремо.",
"help.solid.split_face": "Ділить вибрані грані за площиною, гранню іншого тіла або кривими ескізу, не розрізаючи тіла. Використовуйте, щоб надати частині грані власний ухил, колір чи зсув.",
"help.solid.sweep": "Протягує профіль ескізу вздовж траєкторії, утворюючи суцільне тіло. Використовуйте для труб, напрямних, ручок і будь-якої деталі зі сталим перерізом, що йде за кривою.",
"help.solid.thread": "Додає метричну різьбу ISO на циліндричну грань — або косметичну, або вирізану в тілі. Використовуйте для болтів, різьбових отворів і надрукованих гвинтових деталей.",
"help.solid.torus": "Створює кільце за великим радіусом навколо його осі та малим радіусом його круглого перерізу. Використовуйте для O-подібних кілець, ручок і круглих намистин.",
"help.solid.web": "Додає тонку стінку вздовж кожної розімкненої кривої ескізу, кожна з яких сягає до найближчих граней тіла. Використовуйте для сітки опорних стінок усередині корпусів і лотків.",
"help.surface.blend": "Створює поверхню, що з'єднує ребра двох тіл, дотичну або неперервну за кривизною до обох. Використовуйте, щоб плавно з'єднати дві поверхні через проміжок.",
"help.surface.boundary": "Створює поверхню, що заповнює контур із двох-чотирьох кривих ескізу або сітку кривих. Використовуйте для вільних панелей, заданих своїми краями.",
"help.surface.extend": "Подовжує поверхню за її краї на відстань або до площини чи грані. Використовуйте, щоб поверхні перекривалися перед обрізанням чи зшиванням.",
"help.surface.extrude": "Видавлює криві чи профілі ескізу на відстань у поверхню — лише стінки, без торців. Використовуйте для тонких стінок і для інструментів різання чи розділення.",
"help.surface.fair": "Згладжує внутрішню частину вільних граней, залишаючи їхні краї на місці. Використовуйте, щоб вирівняти горби й хвилясті відбиття на поверхні.",
"help.surface.loft": "Створює поверхню, що послідовно проходить через два чи більше перерізів, без торців. Використовуйте для оболонок і переходів між різними формами.",
"help.surface.match": "Перебудовує край поверхні так, щоб він сходився з краєм іншого тіла з відповідною дотичністю чи кривизною. Використовуйте, щоб плавно закрити шов між двома поверхнями.",
"help.surface.offset": "Створює копію граней на відстані вздовж їхніх нормалей як нове поверхневе тіло. Використовуйте для оболонок-шкірок, зазорів або іншого боку стінки.",
"help.surface.patch": "Заповнює область ескізу чи замкнений контур ребер гранню, плоскою або плавно вигнутою. Використовуйте, щоб закрити отвори в поверхневому тілі.",
"help.surface.reverse_normal": "Перевертає грані поверхневого тіла, тож їхній зовнішній бік дивиться в інший бік. Використовуйте перед потовщенням чи зшиванням, коли грані спрямовані всередину.",
"help.surface.revolve": "Обертає криві чи профілі ескізу навколо осі в поверхню, без торців. Використовуйте для круглих оболонок, як-от абажури, чаші й сопла.",
"help.surface.ruled": "Створює смугу з прямих ліній від ланцюга ребер уздовж нормалі грані, дотичної або під кутом. Використовуйте для стінок з ухилом, виходів і поверхонь рознімання.",
"help.surface.stitch": "Зшиває поверхневі тіла разом уздовж спільних ребер, утворюючи суцільне тіло, коли вони замикаються. Використовуйте, щоб перетворити набір поверхонь на одне тіло.",
"help.surface.sweep": "Переміщує криві чи профілі ескізу вздовж траєкторії в поверхню, без торців. Використовуйте для ринв, обкладок та інших тонких форм, що йдуть уздовж траєкторії.",
"help.surface.thicken": "Надає поверхневому тілу товщину, перетворюючи його на суцільне. Використовуйте, щоб створювати з поверхонь деталі для друку чи механічної обробки.",
"help.surface.trim": "Розрізає поверхню площиною, іншою поверхнею чи кривими ескізу й залишає вибраний бік. Використовуйте, щоб надати поверхням форми перед зшиванням.",
"help.surface.unstitch": "Розділяє грані тіла на окремі поверхневі тіла; суцільне тіло розпадається на поверхні. Використовуйте, щоб переробляти окремі грані тіла.",
"help.surface.untrim": "Прибирає отвори з грані або повертає її зовнішню межу до природних меж поверхні. Використовуйте, щоб повернути повну поверхню після обрізання.",
"help.third_party": "Ліцензії сторонніх компонентів",
"help.timeline.compute_all": "Перебудовує кожну операцію часового ланцюжка з початку. Використовуйте, щоб оновити модель і побачити, які операції завершуються помилкою.",
"help.timeline.delete": "Видаляє вибрані операції з часового ланцюжка; видалення ескізу видаляє й операції, побудовані на ньому. Використовуйте, щоб прибрати крок, який більше не потрібен.",
"help.timeline.dependents": "Перелічує операції, які буде видалено разом з операцією, і ті, що перестануть працювати без неї. Використовуйте перед видаленням чи зміною операції.",
"help.timeline.play": "Відтворює решту операцій по одній, із паузою в півсекунди після кожного перебудування. Виконайте цю команду ще раз або натисніть Esc, щоб зупинити; «Перейти в кінець» переходить одразу.",
"help.view.apply": "Повертає вид до стандартного напрямку, як-от спереду, зверху чи ізометрія, або до збереженого іменованого виду. Використовуйте, щоб дивитися на модель із фіксованого кута.",
"help.view.delete": "Видаляє збережений іменований вид. Модель не змінюється.",
"help.view.fit": "Масштабує й зсуває вид так, щоб уся модель або виділене заповнювала його. Використовуйте, коли модель зникла з поля зору.",
"help.view.grid": "Показує чи ховає сітку у вікні перегляду. Використовуйте як орієнтир розмірів і напрямків під час моделювання.",
"help.view.ground_shadow": "Показує чи ховає тінь моделі на землі. Використовуйте, щоб легше оцінювати висоту й положення.",
"help.view.home": "Повертає вид до головного напрямку й вміщує модель. Використовуйте, щоб швидко повернутися до відомого виду.",
"help.view.list": "Перелічує іменовані види, збережені в проєкті. Використовуйте, щоб знайти вид, який ви зберегли раніше.",
"help.view.navigate": "Повертає, панорамує чи масштабує вид кроками, наприклад на чверть оберту ліворуч. Використовуйте, щоб точно переміщувати камеру замість перетягування.",
"help.view.navigation_bar": "Показує чи ховає панель навігації внизу вікна перегляду. Сховайте її, щоб звільнити місце, або покажіть, щоб мати доступ до інструментів виду мишею.",
"help.view.rename": "Дає збереженому іменованому виду нову назву. Сам вид не змінюється.",
"help.view.save": "Зберігає поточне положення камери як іменований вид у проєкті. Використовуйте, щоб пізніше повернутися до того самого кута, наприклад для знімків екрана.",
"help.view.spin": "Безперервно обертає вид навколо моделі до наступного клацання чи натискання клавіші. Використовуйте, щоб показати модель з усіх боків.",
"help.view.tool": "Фіксує інструмент камери — обертання, панорамування чи масштаб, — тож перетягування лівою кнопкою миші рухає вид, доки ви його не вимкнете. Використовуйте на трекпаді або без середньої кнопки миші.",
"help.view.visual_style": "Перемикає спосіб відображення моделі: затінена з ребрами чи без них, каркас або з прихованими ребрами. Використовуйте каркас, щоб зазирнути всередину, а затінення — для чистого вигляду.",
"history.sketch_under_constrained": "Ескіз має {count} ступенів вільності",
"history.sketch_under_constrained_one": "Ескіз має {count} ступінь вільності",
"hole_presets.confirm_delete": "Підтвердити видалення",
@@ -1653,6 +1920,7 @@
"nav.hfss.help": "Alt+ліва панорамує, Shift+Alt+ліва масштабує, Ctrl+ліва з порожнього місця обертає",
"nav.inventor.help": "Середня панорамує, Shift+середня обертає, Ctrl+середня масштабує, права обертає",
"nav.maya.help": "Alt+ліва обертає, Alt+середня панорамує, Alt+права масштабує; середня також панорамує",
"nav.nx.help": "Середня обертає, Shift+середня панорамує (у NX — середня + права), Ctrl+середня масштабує (у NX — середня + ліва); права не рухає камеру",
"nav.openscad.help": "Ліва обертає по порожньому місцю, Shift+ліва виділяє рамкою, геометрію ескізу перетягують для редагування; права або середня панорамує, Shift+права або Shift+середня масштабує",
"nav.perspective.sketch": "Редагування ескізу використовує ортографічний вид. Завершіть ескіз, щоб увімкнути перспективу.",
"nav.right_drag_orbits.help": "Перетягування правою кнопкою миші обертає вид",
@@ -1772,6 +2040,11 @@
"not a move": "це не переміщення",
"not a number": "не число",
"open a sketch first": "спершу відкрийте ескіз",
"parameters.apply_live": "Застосовувати кожну зміну, коли ви залишаєте її поле",
"parameters.apply_live_tip": "Вимкнено: зміни чекають на «Застосувати» або OK, після чого проєкт один раз перебудовується для всіх. «Скасувати» чи Esc відкидає їх.",
"parameters.held": "Змін, що чекають на «Застосувати»: {count}",
"parameters.held_hint": "Змінюйте вирази та одиниці. Зміни чекають на «Застосувати» або OK.",
"parameters.held_one": "1 зміна чекає на «Застосувати»",
"parts.automatic_name": "автоматично",
"parts.dimension.across_flats": "Розмір під ключ",
"parts.dimension.bore": "Діаметр отвору",
@@ -1869,6 +2142,8 @@
"prefs.ctrl_cmd": "Ctrl / Cmd",
"prefs.curved_surfaces": "Криві поверхні",
"prefs.curves": "Криві поверхні",
"prefs.dark_parts_shading": "Зберігати форму темних деталей",
"prefs.dark_parts_shading_help": "Затінювати вид у лінійному світлі з м'яким заповнювальним світлом неба, щоб темні грані зберігали градієнт, а не ставали чорними",
"prefs.dead_zone_note": "Заштрихована смуга — це мертва зона: рух у її межах ігнорується.",
"prefs.default": "типово",
"prefs.design": "Типові параметри проєкту",
@@ -1883,6 +2158,8 @@
"prefs.edges": "Ребра та затінення",
"prefs.extend": "Розширення",
"prefs.extra_navigation": "Ctrl+перетягування лівою на порожньому місці обертає; утримуйте Space, щоб панорамувати.",
"prefs.extrude_view_isometric": "Повертати вид до ізометрії під час відкриття «Видавлювання»",
"prefs.extrude_view_return": "Повертати попередній вид під час закриття «Видавлювання»",
"prefs.follows_os": "Як у системі",
"prefs.font": "Шрифт",
"prefs.font_fallback": "Символи, яких немає у вибраному шрифті, беруться з вбудованого, тож жоден напис не показує порожній квадрат.",
@@ -1898,6 +2175,7 @@
"prefs.graphics_card_auto": "Автоматично",
"prefs.graphics_card_missing": "Збережена відеокарта недоступна; використовується режим «Автоматично».",
"prefs.graphics_card_restart": "Набуває чинності після перезапуску SolidCraft. Змінна WGPU_ADAPTER_NAME перевизначає цей вибір.",
"prefs.graphics_card_unused": "Збережену відеокарту для цього вікна не використано; використану відеокарту показано в меню Довідка › Про SolidCraft і в рядку стану. Спробуйте «Автоматично» або вкажіть для WGPU_ADAPTER_NAME унікальну частину назви відеокарти.",
"prefs.graphics_note": "Обміняйте швидкість на плавність. Кожен варіант показує свій ефект на зразку.",
"prefs.graphics_presets_note": "Набори задають наведені нижче параметри разом.",
"prefs.hide_constraint_glyphs_zoomed_out": "Ховати позначки обмежень на віддаленому виді",
@@ -1912,6 +2190,8 @@
"prefs.history_sketches_note": "Якщо для «Ескізи» вибрано «Під своєю операцією», Історія ліворуч показує кожен ескіз на один рівень глибше, під першою операцією, побудованою з нього, коли панель достатньо широка для назв. Часовий ланцюжок знизу завжди зберігає порядок створення.",
"prefs.history_sketches_under_feature": "Під своєю операцією",
"prefs.hold_stop_snapping": "Утримуйте, щоб вимкнути прив'язування",
"prefs.home_fit_size": "Розмір для «Головний вид» і «Вмістити»",
"prefs.home_fit_size_note": "Яку частину виду займає модель, коли її кадрують «Головний вид», «Вмістити», відкритий проєкт або зміна виду в навігаторі, незалежно від того, чи ввімкнено параметр нижче. 100 %: заповнює вид між панелями, компасом і панеллю навігації.",
"prefs.icons_only": "Лише піктограми",
"prefs.imported_file": "Імпортований файл",
"prefs.in_browser": "У браузері",
@@ -1920,13 +2200,20 @@
"prefs.interface_language": "Мова інтерфейсу",
"prefs.interface_note": "Як виглядає SolidCraft і де розташовані його частини.",
"prefs.interval_minutes": "{n} хв",
"prefs.invert_navigator_arrows": "Інвертувати стрілки обертання куба виду",
"prefs.invert_navigator_arrows_note": "Стрілки навколо куба обертають камеру в той бік, куди вказують, як у Fusion та Inventor: стрілка ліворуч вказує праворуч і повертає камеру праворуч. Вимк.: стрілка обертає куб у той бік, де вона розташована, тож ліва стрілка повертає камеру ліворуч. Вигнуті стрілки крену не змінюються.",
"prefs.keep_work_on_tab_switch": "Зберігати відкриті діалоги та інструменти під час перемикання між проєктами",
"prefs.keep_work_on_tab_switch_note": "Кожна вкладка проєкту зберігає свій відкритий діалог чи інструмент разом із тим, що ви в ньому вибрали й ввели, а також свою вкладку панелі інструментів. Вони знову на місці, коли ви повертаєтеся до проєкту. Вимк.: перемикання проєктів скасовує їх і показує вкладку «Модель».",
"prefs.labels": "Підписи",
"prefs.language_system": "Системна",
"prefs.layout": "Компонування",
"prefs.layout_note": "«Компактне» прикріплює панелі до країв вікна. Прозорість браузера доступна в режимі «Плаваюче». Сторону Асистента можна змінити на сторінці «Асистент».",
"prefs.left": "Ліворуч",
"prefs.left_click": "Клацання лівою",
"prefs.line_drag_draws_one": "Перетягування відрізка малює один елемент",
"prefs.line_drag_draws_one_note": "Замість безперервного малювання при перетягуванні",
"prefs.line_hover_tangent_arc": "Затриматися на останній точці прямої, щоб перейти до дотичної дуги",
"prefs.line_hover_tangent_arc_note": "В інструменті «Пряма» після того, як сегмент накреслено, відведіть вказівник від останньої точки ланцюжка, поверніться й утримуйте його на ній нерухомо: наступне клацання завершить дотичну дугу, а той самий жест поверне до прямих. Вимк.: затримка там нічого не робить.",
"prefs.linked_designs": "Пов'язані проєкти",
"prefs.live_input": "Поточне введення",
"prefs.live_preview": "Попередній перегляд у реальному часі",
@@ -1950,6 +2237,8 @@
"prefs.mouse_mapping": "Призначення кнопок миші",
"prefs.navigation": "Навігація",
"prefs.navigation_note": "Як миша, трекпад і 3D-миша рухають вид.",
"prefs.navigator_fit": "Вміщувати модель після зміни виду в навігаторі",
"prefs.navigator_fit_note": "Грань, кут або стрілка куба виду чи вісь гізмо також дивляться на середину моделі з єдиної відстані, з якої її видно цілком з усіх боків (її обмежувальна сфера). «Головний вид» за ввімкненого параметра використовує той самий масштаб і центр, тож види, вибрані після нього, лише повертаються. Вимк.: вид повертається на місці, зберігаючи свою ціль і масштаб.",
"prefs.network_host_remove": "Вилучити",
"prefs.network_locations": "Дозволяти мережеві розташування в проєктах",
"prefs.network_locations_note": "Вимкнено: пов'язані файли проєкту на іншому комп'ютері (\\\\server\\share) відкриваються лише з перелічених тут серверів або після того, як ви дозволите один, коли запитають.",
@@ -1962,6 +2251,8 @@
"prefs.origin_plane_names": "Назви площин початку координат",
"prefs.origin_plane_names_note": "Назви, що показуються в браузері, діалогах і списках. {top} — це XY, {front} — XZ, {right} — YZ, а Z спрямована вгору. Команди, скрипти й збережені проєкти зберігають XY, XZ і YZ.",
"prefs.overall_speed": "Загальна швидкість",
"prefs.parameter_list_rows": "Рядків у списку параметрів",
"prefs.parameter_list_rows_tip": "Стрілка вниз у порожньому полі значення показує список параметрів, спершу обрані, до цієї кількості. Менше число робить список легшим у великому проєкті.",
"prefs.persistent_ribbon_pressed": "Підсвічувати активні команди стрічки",
"prefs.persistent_ribbon_pressed_help": "Підсвічувати команди стрічки, поки їхні ефекти ввімкнені. Вимкніть, щоб зберегти попередній нейтральний вигляд і довідку команд.",
"prefs.perspective_fov": "Кут огляду перспективи",
@@ -1996,6 +2287,8 @@
"prefs.render_previous_geometry_budget": "Бюджет попередньої геометрії для візуалізації",
"prefs.render_previous_geometry_budget_help": "Максимальний обсяг пам'яті для кешу геометрії попереднього стану",
"prefs.reports_saved": "Збережено: {n}",
"prefs.ribbon_click_ends_tool": "Клацання кнопки запущеного інструмента завершує його",
"prefs.ribbon_click_ends_tool_note": "Клацання підсвіченої кнопки використовуваного інструмента ескізу на стрічці завершує інструмент, тож клацання на виді знову виділяють об'єкти. Вимк.: клацання знову запускає інструмент.",
"prefs.ribbon_reveal": "Показувати результати пошуку на стрічці",
"prefs.ribbon_reveal_note": "Наведення курсора на результат у «Пошуку команд» показує, де команда розташована на стрічці: її вкладку, кнопку або рядок у випадному меню панелі. Команда, запущена з пошуку, блимає там, а запущена команда з випадного меню позначає свою панель.",
"prefs.right_click": "Клацання правою",
@@ -2025,6 +2318,8 @@
"prefs.sketch_exit_view.previous": "Повернутися до попереднього виду",
"prefs.sketch_exit_view.unless_rotated": "Повернутися, якщо вид не оберталося",
"prefs.sketch_exit_view_note": "Куди переходить вид після «Завершити ескіз», «Скасувати» або подвійного Esc.",
"prefs.sketch_face_activates_part": "Ескіз на грані деталі робить цю деталь активною",
"prefs.sketch_face_activates_part_note": "Ескіз, розпочатий на грані тіла іншого компонента, спершу активує цей компонент, тож ескіз належить йому й у браузері залишається з цією деталлю. Після цього деталь залишається активною. Вимк.: ескіз належить активному компоненту.",
"prefs.sketch_open_look_at": "Повертати вид до ескізу під час його відкриття",
"prefs.sketch_open_look_at_note": "Вимкнено: створення чи редагування ескізу не змінює вид. «Наведення» повертає вид до ескізу, коли ви цього захочете.",
"prefs.sketch_recent_snap": "Автоприв'язка до нещодавніх центрів і середніх точок",
@@ -2038,6 +2333,8 @@
"prefs.sketch_tab_always_note": "Вкладка «Ескіз» залишається на стрічці одразу після вкладки «Модель», поки жоден ескіз не відкрито. Її інструменти креслення тоді запускають ескіз на вибраній площині чи грані або на площині, яку ви виберете далі, з уже готовим інструментом.",
"prefs.sketch_tracking_guides": "Допоміжні лінії вирівнювання за центром і середньою точкою",
"prefs.sketch_tracking_guides_note": "Наведіть курсор на центр кола або середню точку прямого відрізка, потім рухайте курсор горизонтально чи вертикально, щоб показати тимчасову пунктирну допоміжну лінію.",
"prefs.sketch_tracking_points": "Допоміжні лінії вирівнювання від кінцевих точок і кутів під час креслення",
"prefs.sketch_tracking_points_note": "Поки інструмент креслення очікує точку, наведення курсора на кінець прямої чи дуги, кут прямокутника або вільну точку показує таку саму тимчасову пунктирну допоміжну лінію, як і для центра чи середньої точки. Вимкнено: лише центри та середні точки.",
"prefs.sketching": "Ескізування",
"prefs.snap_drawing_note": "Під час малювання або перетягування точки ескізу.",
"prefs.source": "Джерело",
@@ -2054,6 +2351,24 @@
"prefs.status_error": "Помилка",
"prefs.status_selected": "Вибрано",
"prefs.status_warning": "Попередження",
"prefs.structure.appearance": "Вигляд",
"prefs.structure.appearance_note": "Кольори, текст і спеціальні можливості.",
"prefs.structure.in_profile": "У профілі",
"prefs.structure.layout": "Компонування",
"prefs.structure.layout_note": "Де розташовані частини вікна.",
"prefs.structure.look": "Оформлення",
"prefs.structure.measure_pointer": "Вимірювання та вказівник",
"prefs.structure.mouse3d": "3D-миша",
"prefs.structure.mouse3d_note": "SpaceMouse і SpaceNavigator.",
"prefs.structure.navigation_note": "Миша й трекпад. У 3D-миші є власна сторінка.",
"prefs.structure.profile": "Профіль",
"prefs.structure.profile_edited": "Змінено після збереження",
"prefs.structure.profile_hover": "Збережено в профілях налаштувань",
"prefs.structure.scale_percent": "{percent}%",
"prefs.structure.sketch": "Ескіз",
"prefs.structure.tools": "Інструменти",
"prefs.structure.tools_note": "Як поводяться інструменти моделювання.",
"prefs.structure.work": "Робота",
"prefs.supersampling_brief": "Малює вид у більшому розмірі й зменшує його: дуже чітко, але потребує більше ресурсів.",
"prefs.tab_accent_note": "Акцентний колір відповідає активній вкладці",
"prefs.theme_file": "файл теми",
@@ -2065,6 +2380,16 @@
"prefs.theme_follow_off": "Вимк.",
"prefs.theme_follow_stop": "Припинити відстеження",
"prefs.theme_import_hint": "Клацніть, щоб вибрати файл теми, перетягніть його сюди або натисніть Ctrl+V (Cmd+V на Mac) зі скопійованою темою",
"prefs.theme_option_opacity": "Непрозорість",
"prefs.theme_option_opacity_help": "Налаштуйте непрозорість плаваючих панелей. Нижня межа читабельності захищає текст на кольорах вікна перегляду.",
"prefs.theme_option_tab_colours": "Кольори вкладок",
"prefs.theme_option_tab_colours_help": "Використовувати кольори панелей і вікна перегляду цієї теми для кожної вкладки стрічки.",
"prefs.theme_option_tab_fade_ms": "Перехід між вкладками",
"prefs.theme_option_tab_fade_ms_help": "Плавно змінювати кольори панелей і вікна перегляду під час перемикання вкладок. Нуль перемикає миттєво.",
"prefs.theme_options_badge": "Параметри",
"prefs.theme_options_more": "Ще · {count}",
"prefs.theme_options_reset": "Скинути",
"prefs.theme_options_unavailable": "Недоступно на цьому пристрої",
"prefs.theme_paste": "Вставити тему",
"prefs.theme_paste_none": "У буфері обміну немає теми SolidCraft",
"prefs.timeline_half_hour": "−30 хв",
@@ -2086,6 +2411,8 @@
"prefs.under_cursor": "Під курсором",
"prefs.units_precision": "Одиниці й точність",
"prefs.updates": "Оновлення",
"prefs.value_boxes_in_view": "Показувати значення біля їхніх маркерів на виді",
"prefs.value_boxes_in_view_tip": "Значення команди (Відстань, Радіус…) у полі біля її маркера, поверх моделі. Вимкнено: ви вводите його у вікні команди, яке після вибору отримує клавіатуру, і ніщо не закриває модель.",
"prefs.view": "Поведінка виду",
"prefs.view_confirm_corner": "OK і Скасувати в куті виду",
"prefs.view_confirm_corner_note": "Поки відкрито діалог або ескіз, галочка й хрестик у правому верхньому куті виду роблять те саме, що OK і Скасувати в діалозі, або завершують і скасовують ескіз. Навігатор виду зсувається нижче.",
@@ -2097,6 +2424,10 @@
"prefs.viewport_background_theme": "Градієнт теми",
"prefs.viewport_section_status": "Показувати стан перерізу у вікні перегляду",
"prefs.viewport_section_status_help": "Показувати налаштування перерізу у вікні перегляду. Escape і активна кнопка стрічки вимикають його. Вимкніть, щоб зберегти попередні елементи керування перерізом.",
"prefs.viewport_status_details": "Інтерактивні подробиці вікна перегляду",
"prefs.viewport_status_details_help": "Редагуйте налаштування активного аналізу та перерізу в стандартних картках подробиць. Вимкніть, щоб повернути легенди аналізу лише для читання та діалог «Переріз».",
"prefs.viewport_status_summary": "Згортати елементи рядка стану",
"prefs.viewport_status_summary_help": "Згортати три й більше елементів рядка стану в один зведений значок. Вимкніть, щоб залишити всі елементи в повному рядку.",
"prefs.wheel": "Колесо",
"prefs.wheel_trackpad": "Колесо й трекпад",
"prefs.workspace": "Робоча область",
@@ -2975,7 +3306,9 @@
"render.output_ready": "Готово до рендерингу",
"render.output_run_check": "Запустити перевірку",
"render.output_size_limit": "{method}: до {dimension} px на сторону та {pixels} пікселів. Найбільший придатний розмір: {width} × {height}.",
"render.output_size_method_profile": "Щоб візуалізувати {width} × {height}, виберіть {method} із профілем ресурсів CPU {profile} або менший розмір.",
"render.output_size_ok": "Розмір допустимий · {width} × {height} px",
"render.output_size_profile": "Щоб візуалізувати {width} × {height}, виберіть профіль ресурсів CPU {profile} або менший розмір.",
"render.output_swap_orientation": "Поміняти місцями ширину та висоту",
"render.output_tools_inspector": "Змініть розмір і формат в інспекторі «Вивід».",
"render.output_view_image": "Переглянути зображення",
@@ -3188,6 +3521,7 @@
"render.size_custom": "Власний…",
"render.size_full_hd": "Full HD",
"render.size_hd": "HD",
"render.size_needs_profile": "{size} · потрібен {profile}",
"render.size_presets": "Набори розмірів",
"render.size_presets_pending": "З'явиться разом із редактором виведення",
"render.size_preview": "Попередній перегляд",
@@ -3475,6 +3809,24 @@
"sheet.flange_type_contour": "Контур",
"sheet.flange_type_edge": "Ребро",
"sheet.no_body": "немає листового тіла: створіть його через Фланець > Основа або перетворіть пластину на листовий метал командою «Перетворити на листовий метал» (виберіть її велику плоску грань)",
"sheet.personal_rules.confirm_delete": "Підтвердити видалення",
"sheet.personal_rules.delete": "Видалити",
"sheet.personal_rules.delete_prompt": "Видалити це особисте правило? Правила, що вже є в проєктах, не зміняться.",
"sheet.personal_rules.full": "Особиста бібліотека вже містить 64 правила.",
"sheet.personal_rules.invalid_name": "Введіть коротку назву без розривів рядка та керівних символів.",
"sheet.personal_rules.invalid_values": "Заповніть значення правила: кожне має обчислюватися в цьому проєкті, з додатною товщиною та коефіцієнтом K від 0 до 1.",
"sheet.personal_rules.missing": "Вибране особисте правило більше недоступне.",
"sheet.personal_rules.name": "Назва правила",
"sheet.personal_rules.name_exists": "Особисте правило з такою назвою вже існує. Використайте іншу назву.",
"sheet.personal_rules.name_hint": "Унікальна назва",
"sheet.personal_rules.overwrite": "Зберегти зміни у вибраному особистому правилі",
"sheet.personal_rules.rename": "Перейменувати",
"sheet.personal_rules.rule": "Особисте правило",
"sheet.personal_rules.save": "Зберегти як нове",
"sheet.personal_rules.scope": "Зберігається у вашому профілі для всіх проєктів.",
"sheet.personal_rules.select": "Виберіть правило",
"sheet.personal_rules.title": "Особисті правила",
"sheet.personal_rules.unsupported": "Це правило має значення, які ця версія не може використати.",
"shortcut.json_error": "параметри мають бути у форматі JSON: {error}",
"shortcut.no_command": "команду `{id}` не знайдено; текст перед JSON має бути ID команди",
"shortcut.pin": "Закріпити вгорі поля S",
@@ -3511,8 +3863,10 @@
"sketch_text.align_right": "Праворуч",
"sketch_text.bold": "Жирний",
"sketch_text.builtin_font": "{family} (вбудований)",
"sketch_text.formula": "Почніть із =, щоб скласти слова з параметрів: ='W' + number(Width)",
"sketch_text.italic": "Курсив",
"sketch_text.loading_fonts": "Пошук встановлених шрифтів…",
"sketch_text.no_bold": "Вбудований шрифт не має напівжирного накреслення: виберіть встановлений шрифт",
"sketch_text.on_path": "Текст дотримується своєї траєкторії: крива його розміщує",
"sketch_text.path_clear": "Зняти текст з його кривої",
"sketch_text.path_hint": "Крива ескізу, якої дотримується текст: клацніть тут, а потім на кривій",
@@ -3651,6 +4005,8 @@
"ui.3d_mouse_section": "3D-миша",
"ui.3d_mouse_show_in_view": "Показувати 3D-мишу в 3D-вигляді",
"ui.3d_mouse_show_in_view_tip": "Зображення вашої 3D-миші в лівому нижньому куті, що рухається разом із нею.",
"ui.3d_mouse_sketch_orbit": "Повертати ескізи 3D-мишею",
"ui.3d_mouse_sketch_orbit_tip": "3D-миша також повертає вид, поки ескіз відкрито й ви дивитеся на нього прямо, так само, як і звичайна миша. Вимкнено: вона панорамує та масштабує ескіз, доки ви не нахилите вид.",
"ui.3d_mouse_skip": "Мій пристрій так не вміє",
"ui.3d_mouse_skip_tip": "Пропускає цей рух в обидва боки; калібрування його не враховує.",
"ui.3d_mouse_speed": "Швидкість 3D-миші",
@@ -3719,6 +4075,7 @@
"ui.agent_chat_auth_terminal": "Виконайте це в терміналі, а потім знову натисніть «Під'єднатися»:",
"ui.agent_chat_auth_title": "Вхід до агента",
"ui.agent_chat_cancel": "Скасувати",
"ui.agent_chat_cannot_start": "Встановлено, але не запускається: {error}",
"ui.agent_chat_changes": "Зміни: {n}, один крок скасування",
"ui.agent_chat_changes_n": "Змін: {n}",
"ui.agent_chat_changes_of": "{n}/{limit} змін",
@@ -3811,9 +4168,12 @@
"ui.agent_chat_queued_stopped": "У черзі (зупинено, не надіслано)",
"ui.agent_chat_refresh": "Оновити",
"ui.agent_chat_refused": "Не дозволено для агента: {reason}",
"ui.agent_chat_reinstall": "{agent} встановлено ({program}), але він не запустився, коли SolidCraft його перевіряв: {error}\nЙого встановлення могло бути неповним або зробленим для іншого типу комп'ютера. Встановіть його знову командою `{install}`, перевірте в терміналі, що він виводить свою версію, а потім натисніть «Оновити».",
"ui.agent_chat_remove": "Прибрати з черги",
"ui.agent_chat_remove_file": "Прибрати з цього повідомлення",
"ui.agent_chat_remove_imported": "Прибрати з цього повідомлення; деталь залишається в проєкті (скасування її прибирає)",
"ui.agent_chat_reply_cut_off": "Відповідь досягла обмеження довжини, не закінчившись, тож вона може бути неповною. Попросіть агента продовжити або дати коротшу відповідь.",
"ui.agent_chat_reply_declined": "Модель відмовилася відповідати на це повідомлення.",
"ui.agent_chat_retry": "Повторити",
"ui.agent_chat_right": "Праворуч",
"ui.agent_chat_save": "Зберегти",
@@ -3872,12 +4232,17 @@
"ui.ai_copy_suffix": "копія",
"ui.ai_custom_url": "Власна URL-адреса",
"ui.ai_default": "Типовий",
"ui.ai_edit": "Редагувати",
"ui.ai_edit_agent_title": "Редагувати агента",
"ui.ai_edit_gone": "Цього агента видалено, тож зберігати нічого.",
"ui.ai_edit_tip": "Змініть назву, команду або кінцеву точку цього агента. Збережений ключ залишається прихованим.",
"ui.ai_http_busy": "кінцева точка зайнята або перевищила ліміт; спробуйте пізніше",
"ui.ai_http_key": "кінцева точка відхилила ключ: перевірте його в Налаштування > ШІ",
"ui.ai_http_not_found": "немає такої кінцевої точки чи моделі: перевірте базову URL-адресу й назву моделі",
"ui.ai_http_too_large": "розмова завелика для цієї кінцевої точки; почніть новий чат",
"ui.ai_key": "Ключ API",
"ui.ai_key_hint": "необов'язково; зберігається в системному сховищі ключів",
"ui.ai_key_keep_hint": "залиште порожнім, щоб зберегти наявний ключ",
"ui.ai_key_needs_https": "Ключ надсилається лише через HTTPS або на цей комп'ютер.",
"ui.ai_key_note": "Зберігається в системному сховищі ключів, ніколи в налаштуваннях SolidCraft. Залиште порожнім для локального сервера.",
"ui.ai_keychain_error": "Системне сховище ключів відмовило: {error}",
@@ -3904,11 +4269,15 @@
"ui.ai_permissions": "Дозволи",
"ui.ai_preset": "Набір",
"ui.ai_protocol": "Протокол",
"ui.ai_reasoning_effort": "Рівень міркувань",
"ui.ai_reasoning_effort_field_hint": "порожньо = типове значення постачальника",
"ui.ai_reasoning_effort_hint": "Необов'язково. Надсилається на кінцеву точку як `reasoning_effort`; допустимі значення залежать від постачальника (наприклад, `low`, `high` або `max`). Значення, яке ви тут задали, SolidCraft ніколи не замінює. Залиште поле порожнім, щоб нічого не надсилати й зберегти типове значення постачальника.",
"ui.ai_remove": "Видалити",
"ui.ai_request_timed_out": "Модель відповідала довше за {seconds} с. Тайм-аут запиту для цієї кінцевої точки можна збільшити в Налаштування › Асистент.",
"ui.ai_request_timeout": "Тайм-аут запиту",
"ui.ai_request_timeout_hint": "Скільки може тривати один запит до моделі через цю кінцеву точку: від 30 с до години. Збільште для повільної локальної моделі.",
"ui.ai_reset": "Скинути",
"ui.ai_save": "Зберегти",
"ui.ai_settings": "Налаштування ШІ…",
"ui.ai_show_features": "Показувати функції ШІ",
"ui.ai_show_features_note": "Чат з агентом: панель, де агент для програмування, яким ви вже користуєтеся, або обрана вами модельна кінцева точка працює з відкритим проєктом. Вимкнено: немає кнопки ШІ, комбінації клавіш, пункту меню чи панелі, і нічого не шукається та не запускається.",
@@ -4068,6 +4437,7 @@
"ui.dark": "Темна",
"ui.default_modelling_orientation": "Типова орієнтація моделювання",
"ui.delete": "Видалити",
"ui.delete_select_first": "Спершу виберіть, що видалити: операції, тіла, компоненти або геометрію ескізу",
"ui.depth": "Глибина",
"ui.design": "Проєкт",
"ui.design_properties.author": "Автор",
@@ -4082,6 +4452,40 @@
"ui.design_properties.project": "Проєкт",
"ui.design_properties.revision": "Редакція",
"ui.design_saved": "Збережено в {path}",
"ui.details_access_caption": "Грані показують, чи може інструмент дістатися до них із вибраного напрямку.",
"ui.details_angle": "Кут",
"ui.details_continuity_caption": "Редагуйте вибраний шов. Інші шви зберігають власні налаштування.",
"ui.details_continuity_stale": "Попередня геометрія: повторіть аналіз, щоб редагувати цей шов або показати його в кадрі.",
"ui.details_copy_list": "Копіювати список",
"ui.details_curvature": "Допуск кривизни",
"ui.details_curvature_caption": "Грані розфарбовано за їхнім локальним радіусом кривизни.",
"ui.details_direction": "Напрямок інструмента",
"ui.details_draft_caption": "Грані розфарбовано за їхнім кутом до напрямку витягування.",
"ui.details_edit_seam": "Редагувати шов",
"ui.details_fixture": "Зразок компонента — лише приклад даних",
"ui.details_fixture_caption": "Зразок компонента з ілюстративними значеннями; це не результат для моделі.",
"ui.details_fixture_problem": "Приклад результату з проблемою",
"ui.details_fixture_readout": "Приклад виміряного значення",
"ui.details_flip": "Перевернути",
"ui.details_gap": "Проміжок",
"ui.details_hatch": "Штрихувати перерізані грані",
"ui.details_jump": "Стрибок кривизни",
"ui.details_key": "Легенда",
"ui.details_offset": "Зсув",
"ui.details_plane": "Площина",
"ui.details_pull": "Напрямок витягування",
"ui.details_radius": "Радіус",
"ui.details_readout": "Показання",
"ui.details_samples": "Вибірки",
"ui.details_seam": "{body} · Ребро {edge}",
"ui.details_settings": "Налаштування",
"ui.details_sharp_gap": "Злам або проміжок",
"ui.details_show_all": "Показати всі: {count}",
"ui.details_smooth": "Плавний",
"ui.details_stripes": "Смуги",
"ui.details_target": "Вмістити геометрію",
"ui.details_worst_seams": "Найгірші шви",
"ui.details_zebra_caption": "Відбиті смуги показують, наскільки гладко сполучаються грані.",
"ui.diameter": "Діаметр",
"ui.dimension": "Розмір",
"ui.direct_interaction": "Пряма взаємодія",
@@ -4126,6 +4530,7 @@
"ui.edit_in_place_saved_elsewhere": "Деталь збережено в інший файл; збірка досі пов'язана з {name}",
"ui.edit_in_place_wait": "Зачекайте, поки завершиться те, що виконується в проєкті",
"ui.edit_section_analysis": "Редагувати аналіз перерізу",
"ui.edit_sketch_empty": "Немає ескізів для редагування",
"ui.ellipse": "Еліпс",
"ui.emboss_wrap_note": "Ортогональні профілі з ліній, дотичні до одного підтримуваного циліндра, обгортаються автоматично. Виберіть стінку, щоб задати ціль.",
"ui.end_radius": "Кінцевий радіус",
@@ -4136,12 +4541,15 @@
"ui.equation_explicit": "Явна",
"ui.equation_form": "Форма",
"ui.equation_note": "Змінна — звичайне число: sin(t) сприймає радіани. Результат без одиниць виміру береться в одиницях проєкту.",
"ui.equation_note_range": "Змінна — довжина, як і її діапазон: поєднуйте її з параметрами довжини, а для sin() діліть її на довжину. Результат без одиниць виміру береться в одиницях проєкту.",
"ui.equation_parametric": "Параметрична",
"ui.equation_variable_unit": "Змінна має одиниці виміру діапазону",
"ui.equation_x_of_t": "X(t)",
"ui.equation_y_of_t": "Y(t)",
"ui.equation_y_of_x": "Y(x)",
"ui.equivalent_radius": "Еквівалентний радіус",
"ui.expand": "Розгорнути",
"ui.explode_needs_two_components": "«Рознесений вид» розсовує компоненти, тож у проєкті має бути два чи більше з них («Новий компонент», «Вставити проєкт» або «Створити компоненти з тіл»)",
"ui.exportDxf": "Експорт DXF…",
"ui.export_ellipsis_keymap": "Експорт…",
"ui.export_keymap_tip": "Клавіші, обрані в полі S і панель інструментів як файл",
@@ -4302,6 +4710,7 @@
"ui.insert_design.saved_file": "{name} має незбережені зміни, тому вставлено його збережений файл. Збережіть його, потім оновіть зв'язки, щоб перенести зміни.",
"ui.insert_design.unsaved": "Незбережені зміни",
"ui.inspect": "Перевірити",
"ui.instances": "Екземпляри",
"ui.intersect": "Перетин",
"ui.isolate": "Ізолювати",
"ui.join": "З'єднати",
@@ -4310,12 +4719,14 @@
"ui.joints": "З'єднання",
"ui.keyboard_shortcuts": "Комбінації клавіш",
"ui.language": "Мова",
"ui.lasso_select": "Ласо (перетягніть довільний контур: виділяє все, що повністю всередині)",
"ui.layout_compact": "Компактне",
"ui.layout_floating": "Плаваюче",
"ui.length": "Довжина",
"ui.length_decimals": "Знаки після коми для довжин",
"ui.light": "Світла",
"ui.line": "Пряма",
"ui.line_arc_hint": "Дотична дуга: клацніть у кінці дуги. Знову затримайтеся на останній точці, щоб повернутися до прямих; клацніть правою кнопкою або натисніть Esc, щоб завершити",
"ui.link_copies": "Пов'язати однакові копії",
"ui.link_copies_keep": "Залишити",
"ui.link_copies_link": "Пов'язати",
@@ -4404,6 +4815,7 @@
"ui.part_size_shared": "Перебудовує деталь, замінюючи всі додані елементи. Усі входження цього компонента оновлюються.",
"ui.paste": "Вставити",
"ui.path": "Траєкторія",
"ui.pattern_object_type_tip": "Тіла: суцільні форми, які вибирають на виді або в браузері; кожне копіюється цілком.\nОперації: кроки Історії, як-от видавлювання чи отвір, які вибирають в Історії або на грані, створеній ними; крок повторюється.\nЕскіз не є ні тим, ні іншим: повторіть його криві власним інструментом «Масив» чи «Дзеркало» в ескізі або спершу видавіть його.",
"ui.pattern_on_path": "Масив на траєкторії",
"ui.perforate_margin_default": "від діаметра",
"ui.perforate_pitch": "Крок",
@@ -4449,9 +4861,9 @@
"ui.polygon": "Багатокутник",
"ui.preferences": "Налаштування",
"ui.press_a_key": "натисніть клавішу…",
"ui.print_face_body_not_sent": "Тіло цієї грані не надсилається: спершу додайте його до Тіла",
"ui.print_face_cleared": "{body}: грань друку скинуто",
"ui.print_face_input": "Грань друку",
"ui.print_face_one_body": "Грань друку належить одному тілу: надішліть це тіло окремо, щоб змінити її",
"ui.print_face_pick": "Виберіть плоску грань твердого тіла, щоб зробити її гранню друку",
"ui.print_face_set": "{body}: грань друку задано; «Надіслати в слайсер» кладе тіло на неї",
"ui.profile": "Профіль",
@@ -4469,6 +4881,7 @@
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "Вимірювання…",
"ui.properties.measuring_bodies": "Вимірювання… {done} з {total} тіл",
"ui.properties.measuring_failed": "Вимірювання перервано до завершення.",
"ui.properties.principal_axis": "Головна вісь {number}",
"ui.properties.principal_moments": "Головні моменти",
@@ -4536,6 +4949,7 @@
"ui.selectOther": "Вибрати інше…",
"ui.selectTangentChain": "Вибрати дотичний ланцюг",
"ui.select_all": "Виділити все",
"ui.select_components_by_face": "Вибрати компоненти (грань вибирає свій компонент)",
"ui.selection": "Виділення",
"ui.selection_modifiers": "Модифікатори вибору",
"ui.selection_shift_add_only": "Shift+клацання додає без вилучення",
@@ -4677,12 +5091,15 @@
"ui.view_angles": "Кути виду",
"ui.view_angles_convention": "Градуси навколо вертикальної осі. Рискання 0° — вид спереду, 90° — зліва, −90° — справа, 180° — ззаду; тангаж 90° — вид зверху; додатний крен повертає модель за годинниковою стрілкою.",
"ui.view_angles_help": "Показує тангаж, рискання та крен виду в градусах, а також його проєкцію під елементом орієнтації. Клацніть показник, щоб ввести точні кути.",
"ui.view_angles_lock": "Заблокувати {axis}",
"ui.view_angles_ortho": "Орто",
"ui.view_angles_persp": "Персп.",
"ui.view_angles_pitch": "Тангаж",
"ui.view_angles_readout": "Тангаж {pitch} · Рискання {yaw} · Крен {roll}",
"ui.view_angles_roll": "Крен",
"ui.view_angles_unlock": "Розблокувати {axis}",
"ui.view_angles_yaw": "Рискання",
"ui.view_angles_zero": "Встановити {axis} на 0°",
"ui.view_centre": "Центр виду",
"ui.viewport_status_clear": "Вимкнути {name}",
"ui.viewport_status_clear_hint": "Вимкнути {name} · Esc",
@@ -4695,6 +5112,10 @@
"ui.viewport_status_section_plane": "Поточна площина",
"ui.viewport_status_section_tilted": "нахилена · {offset}",
"ui.viewport_status_stripes": "Смуг: {count}",
"ui.viewport_status_summary_clear": "Вимкнути все",
"ui.viewport_status_summary_heading": "На цьому виді",
"ui.viewport_status_summary_label": "{name} і ще елементів: {count}",
"ui.viewport_status_summary_more": "+{count}",
"ui.viewport_theme_follow": "За темою",
"ui.visual_shaded_hidden_edges": "Затінений із прихованими ребрами",
"ui.visual_shaded_with_edges": "Затінений із ребрами",
+480 -11
View File
File diff suppressed because it is too large Load Diff
+448 -1
View File
@@ -60,6 +60,7 @@
"BLEND SURFACE": "混合曲面",
"BOUNDARY SURFACE": "邊界曲面",
"BROWSER": "瀏覽器",
"Back to the original order": "還原原始順序",
"Ball": "球",
"Bar": "扁鋼",
"Base Center": "底面中心",
@@ -595,6 +596,8 @@
"Snap to face and edge centres": "吸附到面和邊的中心",
"SolidCraft cannot submit reports directly. Submit on GitHub; no token is needed in the app.": "SolidCraft 無法直接提交報告。請在 GitHub 上提交;應用程式內不需要權杖。",
"SolidCraft closed before these designs were saved. Their last autosave can be opened.": "SolidCraft 在這些設計儲存前已關閉。可以開啟它們的上次自動儲存。",
"Sort A to Z": "A 到 Z 排序",
"Sort Z to A": "Z 到 A 排序",
"Spacing 2 must be a non-zero number": "間距 2 必須是非零數字",
"Spacing must be a non-zero number": "間距必須是非零數字",
"Specialise": "專用操作",
@@ -790,6 +793,13 @@
"browser.sketch_attachment_lost": "{name} (附著遺失)",
"browser.sketch_editing": "{name} (編輯中)",
"browser.sketch_name": "草圖{number}",
"browser.sketches_to_parts_already_in_part": "已在所屬零件中",
"browser.sketches_to_parts_design_body": "位於設計本身的實體上",
"browser.sketches_to_parts_moved": "已將 {moved} 個草圖移至其所在的零件",
"browser.sketches_to_parts_no_exact_attachment": "位於沒有精確附著的面上",
"browser.sketches_to_parts_not_on_face": "不在零件的面上",
"browser.sketches_to_parts_part_missing": "所屬零件已不存在",
"browser.sketches_to_parts_result": "已將 {moved} 個草圖移至其所在的零件;{stayed} 個未移動:{why}",
"browser.units": "單位: {units}",
"cam.flat": "平底",
"cam.follower": "從動件",
@@ -819,6 +829,7 @@
"cmd.appearance_pick_up": "吸取外觀",
"cmd.appearance_replace": "取代外觀",
"cmd.assembly_bom": "物料清單",
"cmd.assembly_mass_properties": "質量屬性",
"cmd.body.print_face": "列印底面",
"cmd.body_rename": "重新命名實體",
"cmd.browser_collapse_all": "全部摺疊",
@@ -856,6 +867,7 @@
"cmd.component_move_bodies": "將實體移至元件",
"cmd.component_move_features": "將特徵移至元件",
"cmd.component_move_sketches": "將草圖移至元件",
"cmd.component_move_sketches_to_parts": "將草圖移至所屬零件",
"cmd.component_paste_from_design": "從其他設計貼上",
"cmd.component_paste_new": "貼上為新物件",
"cmd.component_properties": "元件物理屬性",
@@ -1191,6 +1203,7 @@
"cmd.sketch_spline_control_point_5": "控制點雲形線(5 次)",
"cmd.sketch_spline_fit_point": "擬合點雲形線",
"cmd.sketch_spline_insert_point": "新增雲形線點",
"cmd.sketch_spline_remove_point": "刪除雲形線點",
"cmd.sketch_spline_reverse": "反向雲形線方向",
"cmd.sketch_spun_profile": "旋轉輪廓",
"cmd.sketch_toggle_diameter": "切換半徑 / 直徑",
@@ -1244,6 +1257,7 @@
"cmd.view.render_browser": "彩現瀏覽器",
"cmd.view.render_dock": "移動彩現停靠面板",
"cmd.view.render_focus": "彩現聚焦檢視",
"cmd.view.status_details": "視埠狀態詳細資料",
"cmd.view.status_items": "視埠狀態項目",
"cmd.view_ambient_occlusion": "環境光遮蔽",
"cmd.view_angle_readout": "檢視角度",
@@ -1282,8 +1296,14 @@
"color.hex_hint": "#rrggbb",
"color.hue": "色相",
"color.linear": "以 0–1 線性空間顯示顏色值",
"color.recent": "最近使用的顏色",
"color.recent_help": "您在任何顏色欄位中選擇的顏色會顯示於此",
"color.saturation": "飽和度(百分比)",
"color.saturation_value": "飽和度和明度",
"color.selected": "所選顏色",
"color.step_down": "減少",
"color.step_up": "增加",
"color.value": "明度,即亮度(百分比)",
"config.column_filter_empty": "沒有符合的欄",
"contact.components_count": "{count} 個元件",
"contact.enabled_label": "已啟用",
@@ -1330,6 +1350,7 @@
"dialog.dimension_name": "尺寸:{name}",
"dialog.edit_title": "編輯 {title}",
"dialog.no_shown_body": "沒有可變更的已顯示實體:請顯示一個,或選擇「新建實體」",
"dialog.pattern_sketch_not_object": "請選取實體或特徵:草圖兩者皆非。請用草圖自己的「陣列」或「鏡射」重複其曲線,或先將它擠出。",
"dialog.select": "↖ 選擇",
"dialog.selected_count": "↖ 已選擇 {count} 個",
"dialog.selection_guidance": "選擇輸入項進行修改。點擊已選物件可取消選擇;按住 Ctrl/Cmd 點擊也可切換選擇。檢查預覽後,再按「確定」。",
@@ -1387,21 +1408,168 @@
"from the rule": "來自規則",
"help.apache": "Apache 授權 2.0",
"help.appearance.assign": "為所選的實體、面或元件設定顏色或材質外觀,不改變其重量。用於區分零件或預覽表面處理效果。",
"help.assembly.bom": "依零件編號列出設計或元件的零件及其數量,也可將清單儲存為 CSV 或 JSON。用作訂購與組裝的零件清單。",
"help.attributions": "署名資訊 (ATTRIBUTION.md)",
"help.build": "版本 {version} · 提交 {commit} · 建置日期 {date}",
"help.canvas.decal": "將圖片像貼紙一樣貼在模型的平坦面上。用於在零件上顯示標籤、標誌或印刷圖案。",
"help.canvas.edit": "變更畫布的位置、大小、角度、不透明度、鏡射、可見性或名稱。用於讓參考圖片對齊要描摹的草圖。",
"help.canvas.insert": "將 PNG 或 JPEG 圖片作為半透明參考放置在平面或面上。用於在草圖中描摹照片或圖紙,圖片可縮放至已知尺寸。",
"help.component.break_link": "將已連結的元件從其設計檔案斷開,並保持其實體原樣。用於零件不再需要跟隨原始檔案的變更時。",
"help.component.capture_position": "擷取手動移動後的零件位置,使其成為這些零件的所在位置。用於將零件拖曳到定位,且沒有接頭固定它們之後。",
"help.component.create": "在設計中新增一個空元件,預設位於作用中元件內,也可選擇其他父元件。用於為組合件的新零件提供存放實體與草圖的專屬位置。",
"help.component.finish_edit": "儲存就地編輯的零件,返回其組合件,並以該零件更新組合件。連結零件的變更完成後使用。",
"help.component.from_bodies": "將每個所選實體轉成各自獨立的元件,並以該實體命名。用於將以零散實體建成的設計改為可接合、移動零件的組合件。",
"help.component.insert_design": "將另一個已儲存的設計作為連結到其檔案的元件插入,其實體維持原有的位置。用於在組合件中重複使用零件,並透過「更新連結」取得後續變更。",
"help.component.properties": "依元件實體的材質,顯示元件的體積、質量、質心與慣性矩。用於檢查組合件的重量與平衡。",
"help.component.revert_position": "將手動移動的零件放回原位,並捨棄尚未擷取的移動。用於還原組合件中的試移動。",
"help.component.update_links": "重新讀取已連結的設計檔案,並取代已變更的實體。用於編輯過此組合件所用的零件之後。",
"help.config.configure": "將參數、特徵、材質或外觀作為欄新增到組態表。用於建立同一設計的各種變體,例如零件的不同尺寸。",
"help.config.preview": "檢查組態表的某一列是否能重建,不更改設計或其歷程記錄。用於切換到沒有把握的變體之前。",
"help.config.rules": "顯示組態表的規則、各列,以及哪一列為作用中。用於了解設計的變體如何設定。",
"help.config.table": "顯示組態表:每個變體一列,每個參數或特徵一欄,並顯示設計是否仍與作用中的列相符。用於檢視設計的各個變體。",
"help.connect_note": "請重新啟動各個助理以載入 SolidCraft 伺服器。每個檔案在變更前都已備份為 .bak。",
"help.connect_title": "連接 AI 助理",
"help.construct.axis.edge": "沿直邊或草圖直線建立建構軸。用作旋轉、環形陣列或接頭的軸。",
"help.construct.axis.normal_to_face": "通過一點、垂直於面建立建構軸。用作從表面垂直伸出的軸。",
"help.construct.axis.through_cylinder": "通過圓柱面、圓錐面或圓環面的中心,或圓形邊,建立建構軸。用於讓特徵繞圓形零件旋轉或陣列。",
"help.construct.axis.two_planes": "在兩個平面或平坦的面相交處建立建構軸。用於所需的軸正是兩個面之間的交線時。",
"help.construct.axis.two_points": "通過兩點、頂點或草圖點建立建構軸。用於穿過兩個已知位置的軸。",
"help.construct.plane.along_path": "在邊或曲線上沿其某個位置,建立垂直於它的建構平面。用於為掃掠繪製輪廓草圖,或繪製路徑的剖面。",
"help.construct.plane.at_angle": "以某個軸或邊為基準,將平面或面旋轉一個角度,建立建構平面。用於傾斜的草圖,例如斜角支架。",
"help.construct.plane.midplane": "在兩個平面或平坦的面正中間建立建構平面;若兩者以一個角度相交,則平分該夾角。用作鏡射的對稱平面。",
"help.construct.plane.offset": "建立與平面或平坦的面平行的建構平面,可指定距離或通過一點。用於在面上方的指定高度繪製草圖。",
"help.construct.plane.perpendicular": "建立包含一條直線或邊、並垂直於某平面或面的建構平面。用於沿邊在模型上繪製直立的草圖。",
"help.construct.plane.tangent": "建立在某一點與圓柱、圓錐、球或圓環相切的建構平面。用於在圓形零件的側面繪製草圖。",
"help.construct.plane.three_points": "通過三點建立建構平面。用於由模型上的位置決定的平面,例如三個角。",
"help.construct.plane.two_edges": "通過位於同一平面內的兩條直邊或直線建立建構平面。用於橫跨零件的平面,例如通過兩條對邊。",
"help.construct.point.along_path": "在邊或曲線上沿其某個位置建立建構點。用作路徑中途的參考。",
"help.construct.point.center": "在圓形邊、草圖圓或圓弧、球或圓環的中心建立建構點。用作孔、軸和接頭的參考。",
"help.construct.point.edge_plane": "在邊或直線穿過平面或平坦的面之處建立建構點。用於標出路徑與平面相交的位置。",
"help.construct.point.three_planes": "在三個平面或平坦的面相交處建立建構點。用作角的參考,即使模型在該處沒有頂點。",
"help.construct.point.two_edges": "在兩條邊或直線相交或最接近之處建立建構點。用作虛擬角的參考。",
"help.construct.point.vertex": "在頂點或草圖點上建立建構點。用作參考,即使周圍的草圖或實體被隱藏,它也會保留。",
"help.contact.check": "列出接觸集中,在目前位置互相穿過的零件對。用於在驅動接頭或執行運動研究之前找出碰撞。",
"help.contact.create": "將兩個或多個零件組成一個接觸集,接頭移動時,其實體不會互相穿過。用於碰到就該停住的零件,例如槓桿與其擋塊。",
"help.contact.disable_all": "關閉接觸,使受驅動的接頭和運動研究不再於零件接觸處停止。用於讓零件重新自由移動,或讓大型組合件保持流暢。",
"help.contact.edit": "變更接觸集:其包含的零件、名稱,或是否抑制;也可以刪除該接觸集。用於調整哪些零件不可互相穿過。",
"help.contact.enable_all": "將組合件的所有零件放入同一個接觸集,使接頭移動時任何兩個零件都不會互相穿過。用於快速檢查整個機構。",
"help.contact.enable_sets": "為您定義的接觸集開啟接觸,使受驅動的接頭和運動研究在其零件即將互相穿過之處停止。用於關閉接觸後恢復您的接觸集。",
"help.contact.list": "列出設計的接觸集、各接觸集中的零件,以及接觸是否開啟。用於在驅動組合件之前確認接觸的設定。",
"help.document.inspect": "顯示設計的概覽:其元件、實體、草圖、特徵與參數。用於熟悉不是自己建立的設計。",
"help.document.units": "變更設計顯示長度所用的單位,例如 mm 或英吋。幾何尺寸不變,只有顯示的數值和未標單位的數字會跟著變。",
"help.edit.checkpoint": "記住設計、作用中的草圖與復原歷程目前的狀態。用於嘗試有風險、之後可能想退回的操作之前。",
"help.edit.restore_checkpoint": "回到某個檢查點,包括復原歷程。用於一步捨棄檢查點之後所做的一切。",
"help.explode.create": "建立爆炸圖,將零件從組合件中心向外推開,或依您設定的移動量推開。用於展示組合件如何組裝,供說明書或簡報使用。",
"help.face.delete": "刪除所選的面,並由相鄰的面封閉留下的缺口,也可以讓缺口保持開放、成為曲面。用於移除礙事的圓角、孔或凸座。",
"help.file.insert_mesh": "將 3MF、STL、OBJ、PLY 或 glTF 檔案作為網格實體加入設計的新元件中。用於把下載或掃描的模型放在設計旁作為參考。",
"help.file.insert_step": "將 STEP、IGES、FreeCAD 或 Rhino 檔案作為實體加入設計的新元件中;組合件的零件會成為巢狀元件。用於匯入供應商或其他 CAD 程式的模型。",
"help.file.save_mesh": "將實體儲存為 STL、3MF 或 OBJ 網格,弧形面的平滑度可自行選擇。用於準備 3D 列印的零件,或供讀取網格的程式使用。",
"help.file.send_to_slicer": "將所選實體儲存為 3MF 檔案,並在您選擇的切片軟體中開啟。用於一步從模型進入列印。",
"help.font_details": "介面使用 egui 的內建字型(Ubuntu Light 和 Hack,採用 Ubuntu Font Licence 和 MIT/Bitstream Vera 授權;Noto Emoji 和表情圖示字型,採用 OFL 和 MIT 授權)。草圖文字使用 Liberation Sans(SIL OFL 1.1)。The Crafting Apps 的可選字型包 craft-fonts(BIZ UDPGothic、Shippori Mincho、BIZ UDMincho、Noto Sans CJK SC、Noto Sans Arabic;SIL OFL 1.1)未隨 SolidCraft 建置版本隨附提供。",
"help.fonts": "字型",
"help.frame.member": "沿框架草圖的直線放置輪廓(例如管材或鋁擠型材),每條直線一個構件。用於建立框架、機架和焊接結構。",
"help.inspect.accessibility": "為刀具能從某一方向到達的面和無法到達的面上色。用於檢查零件能否從該側進行加工或成型。",
"help.inspect.center_of_mass": "在均勻密度下,顯示各實體各自及全部合計的質心。用於檢查平衡以及零件會在哪裡傾倒。",
"help.inspect.colored_components": "為每個元件指定各自的暫時顏色,不改變外觀。用於一眼分辨組合件的各個零件。",
"help.inspect.compare": "比較兩個實體,並顯示其中一個有而另一個沒有材料之處,附帶體積與偏差。用於對照已變更或匯入的零件與原件。",
"help.inspect.continuity": "檢查面沿其邊相接的平滑程度:間隙、折角或曲率跳變,並為接縫著色。用於找出曲面接合不順之處。",
"help.inspect.curvature_comb": "沿曲線、邊或面繪製曲率梳,其梳齒顯示彎曲的程度。用於發現平坦處、折角和曲率不均。",
"help.inspect.curvature_map": "依彎曲程度為面上色,半徑小處為紅色。用於找出緊縮處並評估曲面的平滑度。",
"help.inspect.draft": "依面與拔模方向的拔模角為面上色,並標出角度不足者。用於成型或鑄造之前檢查零件。",
"help.inspect.environment_map": "以反光、鏡面般的表面顯示模型。用於從反射掠過的方式判斷曲面的走勢。",
"help.inspect.interference": "找出重疊的實體,並顯示每處重疊及其體積。用於檢查組合件中是否有零件互相碰撞。",
"help.inspect.isocurve": "繪製面的等參線,即曲面所依據的網格。用於觀察曲面如何走向,以及哪裡變得密集。",
"help.inspect.measure": "測量所選項目之間的長度、距離、角度、面積和半徑,或實體的體積和質量。用於檢查尺寸和間隙。",
"help.inspect.minimum_radius": "找出曲線、邊或面的最小曲率半徑及其位置。用於檢查刀具或噴嘴是否能跟隨該形狀。",
"help.inspect.section": "沿平面將檢視剖開並為切面畫上剖面線,不更改模型。用於查看零件和組合件的內部。",
"help.inspect.zebra": "在模型的面上顯示反射的黑白條紋。用於判斷平滑度:條紋在邊處斷開或折彎,表示過渡不佳。",
"help.joint.as_built": "在兩個零件現有的位置接合它們,不移動其中任何一個,並設定它們仍可如何移動。用於已放置在最終位置的零件。",
"help.joint.cam": "將旋轉的凸輪與從動件連結,使從動件隨凸輪輪廓經過其下方而滑動或擺動。用於凸輪、偏心輪和氣門驅動。",
"help.joint.create": "在您選取的接頭原點接合兩個零件,並將第二個零件移到定位;接頭類型決定它們仍可如何移動。用於建立零件像真實機構一樣運動的組合件。",
"help.joint.drive": "設定接頭的角度或距離,並在其限制內帶動零件移動;連動的接頭和封閉迴路會跟著動。用於檢查機構是否如預期運動。",
"help.joint.gear": "以齒輪比連結兩個旋轉接頭,驅動其中一個會帶動另一個。用於正齒輪和內齒輪,齒輪比取自節圓半徑或齒數。",
"help.joint.limits": "以最小值和最大值設定接頭可旋轉或滑動的範圍,或清除這些限制。用於讓鉸鏈、滑塊或槓桿保持在實際的行程範圍內。",
"help.joint.motion_link": "以比率和偏移量耦合兩個接頭,使驅動其一時另一個也隨之移動。用於「齒輪」、「齒輪齒條」或「螺旋」未涵蓋的接頭間固定關係。",
"help.joint.origin": "在零件上放置具名的接頭原點:位於面或圓端的中心、邊的中點、角或某一點。用於預先決定接頭的附著位置;在面上選取的原點會在零件改變大小時跟隨該面。",
"help.joint.rack_pinion": "將旋轉的小齒輪與滑動的齒條連結,使齒條移動的長度等於小齒輪滾過的節圓長度。用於齒條傳動、轉向機構和線性平台。",
"help.joint.reach": "透過在限制範圍內改變其鏈上的接頭,將零件上的一點移向目標。用於依末端應到達的位置擺放機構,例如機械手臂的尖端。",
"help.joint.rigid_group": "將所選零件按現狀鎖在一起,使它們一起移動。用於屬於同一組、彼此之間沒有運動的零件。",
"help.joint.screw": "以螺距連結旋轉與滑動,每轉一圈前進該距離。用於導螺桿、螺栓和螺紋軸。",
"help.library.apply": "將本機零件庫檔案中的材質或外觀套用到實體、面或元件。用於重複使用在其他設計中儲存的材質。",
"help.library.export": "將設計的材質和外觀儲存到零件庫檔案。用於分享,或在其他設計中重複使用。",
"help.library.inspect": "檢查零件庫檔案並列出其中的材質和外觀,不更改設計。用於套用之前查看零件庫包含什麼。",
"help.licences": "授權",
"help.material.assign": "設定所選實體的材質,例如鋼、鋁或 ABS。用於讓質量和重量與實際零件一致。",
"help.material.properties.validate": "檢查材質資料卡的數值是否一致、有無缺漏。用於在依賴這些資料計算質量或剛度之前。",
"help.mesh.convert": "將 STL 等網格實體重建為具有平面和圓柱面的可編輯實體。用於像修改建模的實體一樣修改匯入的機械零件。",
"help.mit": "MIT 授權",
"help.motion.study": "在時間軸的各步驟設定接頭值,並以動畫播放。用於觀看機構依序運動,並沿途檢查間隙。",
"help.motion.trace": "描繪零件上某一點在運動研究播放或接頭被驅動時所走的路徑,確認後保留為 3D 草圖曲線。用於查看機構能到達哪裡,或以其路徑為基礎繼續建模。",
"help.notice": "NOTICE",
"help.occurrence.ground": "將零件固定在原位,或再次釋放,讓接頭帶動其周圍的其他零件。用於作為組合件其餘部分基礎的框架或底座。",
"help.occurrence.move": "僅沿接頭允許的自由度移動組合件零件。請選取零件的面,然後拖曳可用的箭頭或圓弧。",
"help.parameters.change": "開啟用於驅動設計尺寸的具名數值與運算式表。用於在同一處修改尺寸,讓所有使用該尺寸的特徵隨之更新。",
"help.parameters.export": "將設計的參數儲存為 CSV 或 JSON。用於在試算表中編輯,或移到其他設計。",
"help.parameters.graph": "顯示哪些參數和特徵使用了哪些其他項目,以及其中的迴圈或錯誤。用於了解變更某個參數會影響什麼。",
"help.parameters.import": "將 CSV 或 JSON 中的參數讀入設計,全部匯入或全不匯入。用於從試算表或其他設計帶入數值。",
"help.parameters.move": "將使用者參數移到清單中另一個參數之前或之後。用於讓相關參數放在一起。",
"help.parts.fastener": "依您選擇的尺寸新增標準螺絲、螺栓、螺帽、墊圈、銷或軸承。放在孔上時,會以接頭落入孔中,因此無需自行建模扣件。",
"help.parts.insert": "依您選擇的系列、尺寸和長度插入標準零件。放在孔的邊緣或孔壁上時,會以剛性接頭落在孔上。",
"help.parts.library": "開啟標準零件:標準尺寸的螺絲、螺栓、螺帽、墊圈、止付螺絲、圓柱銷和軸承。用於新增標準零件,而無需自行建模。",
"help.parts.resize": "變更已插入標準零件的尺寸或長度並重建;其接頭使它保持就位。用於螺絲太長或孔需要另一種尺寸時。",
"help.plastic.assign_rule": "將塑膠規則指定給實體,使其塑膠特徵以該規則的拔模和間隙為預設值。用於一次為成型件的所有特徵完成設定。",
"help.plastic.boss": "在面上新增螺絲凸座:一根柱,可選孔、拔模、根部圓角和支撐肋。用於射出成型或列印外殼中的螺絲固定點。",
"help.plastic.lip": "沿薄殼實體的邊緣新增唇緣或對應的凹槽。用於讓外殼的兩半互相定位並緊密閉合。",
"help.plastic.manage_rules": "建立和編輯塑膠規則:材質、壁厚、半徑、間隙和拔模。用於讓成型件的各特徵保持一致。",
"help.plastic.rest": "在面上新增墊塊:圓形或矩形的墊,實心或空心,帶拔模。用作成型外殼中的支撐或間隔柱。",
"help.plastic.snap_fit": "在面上新增卡扣鉤,可設定長度、厚度和卡榫。用於不用螺絲就能把零件夾在一起。",
"help.pointcloud.insert": "將 PLY、XYZ 或 PTS 掃描資料作為點雲插入模型旁。以實測資料建立模型時,可作為參考。",
"help.sheet.convert": "將厚度均勻的板或薄殼實體轉為鈑金實體,在您選取的邊處加入折彎。用於讓現有零件可以展開。",
"help.sheet.export_bend_table": "將鈑金實體的折彎表儲存為 CSV 或 JSON:展開狀態下的角度、半徑和折彎位置。用於折彎機或工廠。",
"help.sheet.export_dxf": "將展開圖儲存為 DXF,含輪廓、折彎線,以及可選的折彎註記。用於雷射、電漿或水刀切割。",
"help.sheet.flange": "新增凸緣:由草圖建立的底板、沿開放草圖輪廓的壁,或鈑金邊上的折彎壁。用於建立鈑金零件。",
"help.sheet.flat_pattern": "建立鈑金實體的展開圖,含其尺寸、切口和折彎線。用於切割之前檢查下料尺寸。",
"help.sheet.fold": "沿草圖直線以指定角度和半徑折彎鈑金。用於在平板上切出特徵後再將其摺疊。",
"help.sheet.hem": "將鈑金邊緣向內折回自身。用於得到安全、堅挺且沒有尖銳毛邊的邊緣。",
"help.sheet.manage_rules": "建立和編輯鈑金規則:厚度、折彎半徑、K 因子、止裂槽和間隙。用於配合您工廠的材料和工具。",
"help.sheet.path_flange": "沿鈑金邊新增一串凸緣,依循一串開放的草圖直線。用於一步做出 U 形或 Z 形等輪廓。",
"help.sheet.perforate": "在整片展開的鈑金上新增一片孔陣,採交錯或方形排列。用於通風口、格柵和減重面板。",
"help.sheet.refold": "將已展開的鈑金實體重新折起。用於在平板上加入特徵之後。",
"help.sheet.unfold": "展開鈑金實體的所有折彎。用於加入必須穿過折彎的孔或切口,之後再重新折彎。",
"help.sketch.arc.center_point": "繞圓心畫圓弧,從起點到終點。用於已知圓弧圓心時,例如繞孔或樞軸的半徑。",
"help.sketch.arc.tangent": "畫一段從直線或圓弧末端開始、並與其相切延續的圓弧。用於以平滑的彎曲而非轉角延續一串線條。",
"help.sketch.arc.three_point": "畫一段從起點經過第三點到終點的圓弧。用於圓弧必須通過給定的點,而非繞已知圓心時。",
"help.sketch.arc3d": "開啟「3D 草圖」時,通過三點在空間中畫出精確的圓弧。用於路徑和導軌中離開草圖平面的彎曲。",
"help.sketch.auto_constrain": "加入草圖幾乎已具備的拘束,例如水平、平行或重合,然後標註尺寸,直到完全定義。用於一步鎖定粗略畫出的草圖。",
"help.sketch.auto_constrain_from_datum": "與「自動拘束」相同,但從您選取的基準點而非原點量測位置。用於零件以某個參考點佈局時,例如角或孔。",
"help.sketch.blend_curve": "以與兩者相切的平滑雲形線連接兩條曲線的端點,若選擇,也可曲率連續。用於在曲線之間的缺口架橋而不產生折角。",
"help.sketch.break": "在其他曲線穿過處,或在您放置的點處,將曲線分割成多段。用於曲線的一部分需要自己的拘束,或需要單獨刪除時。",
"help.sketch.cancel": "離開草圖,並捨棄自建立或開啟編輯以來的所有變更。「復原」可找回這些變更。",
"help.sketch.centerline": "在一般直線與中心線之間切換,中心線是輪廓會略過的軸。可將中心線用作旋轉、鏡射或對稱拘束的軸。",
"help.sketch.chamfer.distance_angle": "為兩條直線之間的轉角倒斜角,由沿第一條線的距離和一個角度決定。用於圖紙以長度和角度給出倒角時,例如 2 mm × 30°。",
"help.sketch.chamfer.equal_distance": "沿兩條直線往回相同的距離,為兩條線之間的轉角倒斜角。用於輪廓上常見的 45° 倒角。",
"help.sketch.chamfer.two_distance": "為兩條直線之間的轉角倒斜角,沿每條線各有獨立的距離。用於非 45° 的倒角,以兩個長度給出。",
"help.sketch.circle.center": "以圓心和直徑畫圓。用於圓心已知的孔、凸座和其他圓形特徵。",
"help.sketch.circle.three_point": "通過三點畫圓。用於圓必須通過給定的點時,例如現有幾何上的點。",
"help.sketch.circle.three_tangent": "畫一個與三條直線、圓或圓弧相切的圓。用於讓圓落在三條曲線之間的空間內,例如三角形的內切圓。",
"help.sketch.circle.two_point": "以直徑的兩個端點畫圓。用於已知圓的邊緣點而非圓心時。",
"help.sketch.circle.two_tangent": "畫一個指定大小、與兩條直線、圓或圓弧相切的圓。用於兩條曲線之間固定半徑的圓角。",
"help.sketch.conic": "在兩個端點之間畫圓錐曲線,形狀由頂點和 rho 值決定。用於需要調整飽滿程度的平滑過渡,從平緩到近乎尖角。",
"help.sketch.constrainer": "為一條或兩條選取的曲線套用它們幾乎已具備的拘束,例如水平、平行、相切或相等。用於逐一整理手繪草圖的關係。",
"help.sketch.constraint.coincident": "使點落在另一個點、曲線或草圖軸上。用於封閉輪廓中的缺口,或將點放在直線上。",
"help.sketch.constraint.collinear": "使兩條直線位於同一條直線上。用於對齊中斷的邊,例如缺口的兩側。",
"help.sketch.constraint.concentric": "使兩個圓或圓弧具有相同的圓心。用於圓環、沉孔和階梯軸。",
"help.sketch.constraint.curvature": "使在端點相接的兩條曲線以相同的曲率(G2)延續。用於相切接合不夠平滑之處,例如在可見的曲面上。",
"help.sketch.constraint.equal": "使直線長度相同,或使圓與圓弧半徑相同。用於讓一個尺寸驅動多個相同的特徵。",
"help.sketch.constraint.fix": "將點或曲線固定在原位,或再次釋放。用於拖曳或求解草圖時不可移動的幾何。",
"help.sketch.constraint.horizontal_vertical": "使一條直線,或兩點之間的連線,成為水平或垂直,取較接近者。用於讓輪廓與草圖軸對齊。",
"help.sketch.constraint.midpoint": "將點放在直線的中間,或使兩條直線的中點重合。用於讓幾何居中於一條邊。",
"help.sketch.constraint.parallel": "使兩條直線平行。用於其他尺寸改變時必須保持平行的邊。",
"help.sketch.constraint.perpendicular": "使兩條直線以直角相交。用於不在草圖軸上的直線之間的方角。",
"help.sketch.constraint.polygon": "使一串封閉的直線成為正多邊形:各邊等長,每個角都在同一個圓上。用於讓手繪的多邊形變成正多邊形並保持如此。",
"help.sketch.constraint.symmetry": "使兩個點或曲線以一條直線為軸,或繞一點,互為鏡像。用於變更一側時保持輪廓對稱。",
"help.sketch.constraint.tangent": "使兩條曲線相切接觸,例如直線與圓弧。用於沒有折角的平滑接合。",
"help.sketch.construction": "在一般幾何與建構幾何之間切換曲線,輪廓會略過建構幾何。將建構曲線用作佈局、參考和尺寸的輔助。",
"help.sketch.construction_line": "建立通過兩點的無限長建構直線。可用來規劃草圖佈局,而不會分割輪廓。",
"help.sketch.construction_line.angle": "建立與草圖 X 軸夾指定角度的無限長建構直線。請選取點並輸入角度,或選取其方向。",
"help.sketch.construction_line.bisector": "選取兩條相交的草圖直線,再選擇其中一條角平分線。結果會跟隨其來源直線。",
@@ -1412,11 +1580,71 @@
"help.sketch.construction_line.tangent_external": "選取圓或圓弧,再選取外部點與一個切線解。預覽只會顯示位於所繪圓弧上的切點。",
"help.sketch.construction_line.tangent_two": "選取兩個圓或圓弧,再於預覽中選擇一條公切線。切點必須位於所繪曲線上。",
"help.sketch.construction_line.vertical": "建立通過某一點的鉛直無限長建構直線。其鉛直拘束會在後續編輯中持續維持。",
"help.sketch.copy": "複製所選的草圖曲線和點,連同它們之間的拘束與尺寸。可貼上到此草圖或另一個草圖。",
"help.sketch.create": "在平面或模型的平坦面上開始新的 2D 草圖。每個擠出、旋轉和掃掠都從草圖開始。",
"help.sketch.cut": "複製所選的草圖幾何並將其從草圖中刪除,作為一個復原步驟。可貼到此草圖的其他位置或另一個草圖。",
"help.sketch.dimension": "新增驅動尺寸:依所選項目為長度、距離、角度、半徑或直徑。輸入數值或參數名稱,草圖就會跟隨。",
"help.sketch.edit": "開啟現有的草圖進行編輯。完成草圖時,建立在其上的特徵會隨之更新。",
"help.sketch.ellipse": "由圓心、長軸末端和短軸側的一點畫橢圓。用於橢圓形開口、凸輪和其他細長的圓形形狀。",
"help.sketch.equation_curve": "依公式繪製曲線:在指定範圍內使用 x(t) 和 y(t),或 y = f(x)。公式可以使用參數,曲線會隨之更新:可用於正弦波、螺旋線或齒輪齒形的漸開線。",
"help.sketch.extend": "將直線或圓弧延長到擋在前方的最近曲線,或讓兩條曲線生長直到相遇。用於修剪或編輯後封閉輪廓中的缺口。",
"help.sketch.fillet": "以指定半徑的圓弧,將兩條直線或圓弧相接的轉角倒圓。同時倒圓的多個轉角共用一個半徑。",
"help.sketch.finish": "離開草圖並回到模型。其封閉輪廓隨即可用於擠出、旋轉和其他特徵。",
"help.sketch.finish_auto_constrain": "對草圖執行「自動拘束」,然後完成草圖。用於一步讓草圖在完全定義的狀態下離開。",
"help.sketch.fit_curves_to_section": "以草圖平面剖切網格或實體,並將直線和圓弧擬合到剖面上。用於把掃描或匯入的零件重建為可編輯的草圖。",
"help.sketch.include_3d": "將模型的邊、頂點和其他草圖的曲線作為連結的參考帶入此草圖,並把不在其平面上的壓平到平面上。用於以不位於草圖平面內的幾何為基礎建構。",
"help.sketch.infinite": "在一般直線與橫貫整個檢視的無限長建構直線之間切換。用作永遠不會過短的佈局參考。",
"help.sketch.insert_dxf": "將 DXF 圖紙的曲線讀入草圖,並依您的設定縮放、旋轉和放置。用於以其他程式的 2D 圖紙為基礎建構,例如雷射切割的輪廓。",
"help.sketch.insert_svg": "將 SVG 圖形的路徑讀入草圖,並依您的設定縮放、旋轉和放置。用於把標誌或向量輪廓轉成可擠出的曲線。",
"help.sketch.inspect": "開啟目前草圖的報告:還剩多少個自由度,以及是否已完全拘束。用於在完成草圖之前找出哪些部分仍會移動。",
"help.sketch.intersect": "加入實體、面、邊或其他草圖與草圖平面相交的曲線或點。它們保持連結,並在模型變更時跟隨。",
"help.sketch.intersection_curve": "在兩個實體或面相接處建立 3D 曲線,並與它們連結。用作跟隨模型的路徑或導軌。",
"help.sketch.isoparametric_curve": "通過您選取的點,沿面的 U 或 V 方向建立 3D 曲線,並與該面連結。用作跟隨曲面的路徑或分割線。",
"help.sketch.line": "逐點畫出相連的直線,可為開放的鏈或封閉的輪廓。這是大多數輪廓的基本工具。",
"help.sketch.line.midpoint": "從中點向一端畫直線,另一端對稱映射。用於以一點為中心的直線,例如對稱的邊。",
"help.sketch.line3d": "開啟「3D 草圖」時,在空間中的點之間畫相連的直線。用於離開草圖平面的路徑和框架。",
"help.sketch.mirror": "以直線或軸為對稱軸鏡射草圖曲線和點,並加入對稱拘束。用於畫出對稱輪廓的一半後將其補全。",
"help.sketch.move": "移動或旋轉草圖曲線和點,或它們的副本。用於重新定位幾何,同時保持其形狀和拘束。",
"help.sketch.offset": "以指定距離建立一串曲線的副本,可在一側或兩側。用於壁、輪廓和間隙;距離保持為可編輯的尺寸。",
"help.sketch.paste": "將複製或剪下的草圖幾何貼到作用中的草圖。可放在某一點,或以偏移量移位。",
"help.sketch.pattern.circular": "繞圓心複製草圖幾何,可為整圈或指定角度。用於螺栓圓、輪輻和齒。",
"help.sketch.pattern.rectangular": "以指定間距按行和列複製草圖幾何。用於孔、槽或通風口的網格。",
"help.sketch.point": "放置草圖點。用作尺寸、拘束、孔中心或後續特徵的參考。",
"help.sketch.point3d": "開啟「3D 草圖」時,在空間中放置點。用作 3D 曲線和路徑的參考。",
"help.sketch.polygon.circumscribed": "在圓外畫正多邊形,大小由中心到邊中點的距離決定。用於已知對邊寬度時,例如六角螺帽。",
"help.sketch.polygon.edge": "由一條邊的兩個端點畫正多邊形。用於已知邊的長度和位置時。",
"help.sketch.polygon.inscribed": "在圓內畫正多邊形,大小由中心到角的距離決定。用於已知對角寬度時。",
"help.sketch.project": "將模型的邊、面、頂點和其他草圖的曲線投影到此草圖的平面上並帶入。它們保持連結,並在模型變更時跟隨。",
"help.sketch.project_to_surface": "沿此草圖的法向將其他草圖的曲線投影到面上,成為連結的 3D 曲線。用於把標誌、分割線或路徑放到曲面上。",
"help.sketch.rectangle.center": "由中心和一個角畫矩形。用於以一點為中心的輪廓,例如原點。",
"help.sketch.rectangle.rounded": "畫四個角都以同一半徑倒圓的矩形。用於帶圓角的板、蓋和開口。",
"help.sketch.rectangle.three_point": "由一條邊和對側的一點畫矩形。用於與草圖軸成一角度的矩形。",
"help.sketch.rectangle.two_point": "由兩個對角畫矩形。用於板、方塊和凹槽的輪廓。",
"help.sketch.scale": "以基點為中心按倍數縮放草圖曲線和點。用於調整草圖一部分的大小,而無需重畫。",
"help.sketch.slot.arc_center": "沿由圓心、起點和終點決定的圓弧,畫指定寬度的弧形槽。用於繞樞軸的調整槽。",
"help.sketch.slot.arc_three_point": "沿通過三點的圓弧畫指定寬度的弧形槽。用於槽的路徑必須通過給定的點時。",
"help.sketch.slot.center_point": "從中心到一端圓弧的中心,畫指定寬度的直槽。用於以一點為中心的槽。",
"help.sketch.slot.center_to_center": "在兩端圓弧的中心之間畫指定寬度的直槽。用於以中心距標註尺寸的槽,例如螺絲的調整槽。",
"help.sketch.slot.overall": "從一個外端到另一個外端畫指定寬度的直槽。用於槽的總長最重要時。",
"help.sketch.spline.control_point": "畫由控制點塑形的三次雲形線,曲線不會通過控制點。用於透過移動控制點來塑形的平滑流暢曲線。",
"help.sketch.spline.control_point_5": "畫由控制點塑形的 5 次雲形線。用於曲線須以更平滑的曲率接合之處,例如可見的造型曲面。",
"help.sketch.spline.fit_point": "畫通過您放置的每一點的平滑雲形線,可為開放或封閉。用於通過已知點描摹形狀。",
"help.sketch.spline3d": "開啟「3D 草圖」時,通過空間中的點畫平滑曲線。用於離開草圖平面的掃掠路徑和線纜路線。",
"help.sketch.spun_profile": "在草圖平面中建立實體繞軸旋轉時掃出的輪廓。用於取得車削零件的外形,供旋轉或圖紙使用。",
"help.sketch.text": "以選定的字型、高度和角度在草圖中寫入文字;文字內容可跟隨參數。可擠出或浮雕,用於標籤和字樣。",
"help.sketch.transform": "一步以中心點為基準縮放、旋轉和移動草圖幾何。用於一次重新定位並調整所選項目的大小。",
"help.sketch.trim": "移除曲線上您按一下之處兩側最近交點之間的一段。用於把重疊的線條清理成封閉的輪廓。",
"help.solid.align": "移動所選實體,使其上的點、面或平面與別處的點、面或平面對齊。用於將一個零件貼靠到另一個零件上,而無需測量偏移量。",
"help.solid.boundary_fill": "由重疊的工具實體所圍成的區域建立實體,只填充您選取的區域。用於由多個實體共同圍出的空間建構形狀。",
"help.solid.bounding_solid": "建立包圍所選實體的長方體,可附邊距。用於查看零件的整體尺寸,或作為加工它的毛料。",
"help.solid.box": "由長、寬、高建立長方體,從一個角點開始或以一點為中心。用於快速建立方塊、佔位件,或作為要在其中切出特徵的實體。",
"help.solid.chamfer": "以指定的距離在所選邊上切出平直的斜面。用於去除銳邊,或使銷釘、螺絲更容易插入。",
"help.solid.coil": "由直徑、圈數、高度或螺距,以及圓形或方形斷面,建立螺旋狀實體,例如彈簧。用於彈簧、線圈和螺旋脊。",
"help.solid.combine": "結合多個實體、從目標實體中切除,或只保留它們共有的體積,還可以保留工具實體。用於合併零件、用一個形體切割另一個形體,或找出兩個實體重疊的位置。",
"help.solid.cone": "由底圓和高度建立圓錐體;若頂部也有半徑,則建立截頭圓錐。用於錐形、漏斗、錐孔和尖頭。",
"help.solid.cylinder": "由半徑或直徑和高度,沿軸立在一點上建立圓柱體。用於軸、銷、凸座和圓形毛料。",
"help.solid.draft": "將所選的面依指定角度傾斜,角度從中性面量起。用於射出成型件或鑄件,使零件能夠順利脫模。",
"help.solid.emboss": "將草圖輪廓(例如文字或標誌)從面上凸起,或壓入面內。用於平面或圓面上的字樣、標籤和標記。",
"help.solid.extrude": "將草圖輪廓依指定距離擠出為三維形體,可增加或移除材料。用於將平面輪廓變成方塊、凸座或凹槽。",
"help.solid.fillet": "以指定半徑的平滑圓弧將所選的邊倒圓。用於為了強度、手感或外觀而柔化銳邊。",
"help.solid.hole": "在面上的指定位置鑽出指定直徑的圓孔。用於螺絲過孔、銷孔及其他簡單的圓形開口。",
@@ -1425,20 +1653,60 @@
"help.solid.move": "依指定的距離和角度移動或旋轉所選實體,或其副本。用於調整實體位置,或在別處再建立一個。",
"help.solid.offset_face": "將所選的面依指定距離向內或向外推移,周圍的面隨之調整。用於在不編輯草圖的情況下加厚壁、加深凹槽或加高凸座。",
"help.solid.pattern.circular": "將所選物件依指定的數量和總角度繞軸重複排列。用於螺栓圓周分布、輻條、散熱片和輪齒。",
"help.solid.pattern.path": "沿草圖路徑依數量和間距複製特徵或實體。用於沿曲邊排列的孔,或沿導軌排列的零件。",
"help.solid.pattern.rectangular": "將所選物件依指定的數量和間距沿一個或兩個方向重複排列。用於成排或成網格的孔、肋、銷釘或支腳。",
"help.solid.pipe": "沿草圖曲線構成的路徑建立圓管,實心或帶壁厚的空心。用於管、線、纜和軌。",
"help.solid.press_pull": "拖曳面以增加或移除材料,或拖曳邊將其倒圓。用於直接在模型上快速修改。",
"help.solid.remove": "從時間軸的這個位置起,將所選實體從設計中移除;之前的步驟仍保留它們。用於移除輔助實體,例如不再需要的切割工具。",
"help.solid.replace_face": "將所選的平面移到某個平面或平行的面上,實體會隨之伸長或縮短以對接。用於讓某個面與另一個零件或建構平面齊平。",
"help.solid.revolve": "將草圖輪廓繞軸旋轉,生成圓形的實體。用於軸、旋鈕、碗,以及任何繞中心線呈圓形的零件。",
"help.solid.rib": "沿開放的草圖曲線新增薄壁,延伸填滿至實體的下一個面。用於加強壁和轉角,例如在成型或列印的零件中。",
"help.solid.scale": "依比例放大或縮小所選實體,可各方向相同,也可依軸分別設定。用於調整匯入形體的大小,或預留收縮量。",
"help.solid.shell": "將實體掏空,留下指定厚度的壁,還可以開啟所選的面。用於盒子、蓋子及其他薄壁零件。",
"help.solid.sphere": "由半徑或直徑繞中心點建立球體。用於球、旋鈕和圓端。",
"help.solid.split_body": "以平面、另一個實體的面或草圖直線,將實體切分為多個獨立的實體。用於製作分別列印、加工或上色的零件。",
"help.solid.split_face": "沿平面、另一個實體的面或草圖曲線分割所選的面,而不切開實體。用於為面的一部分單獨設定拔模、顏色或偏移。",
"help.solid.sweep": "沿路徑拖曳草圖輪廓以生成實體。用於管道、導軌、把手,以及任何截面恆定且沿曲線延伸的零件。",
"help.solid.thread": "在圓柱面上新增 ISO 公制螺紋,可為裝飾螺紋或切入實體。用於螺栓、螺紋孔和列印的螺絲零件。",
"help.solid.torus": "由繞其軸的大半徑和圓形斷面的小半徑建立圓環體。用於 O 形環、把手和圓珠。",
"help.solid.web": "沿每條開放的草圖曲線新增薄壁,各自延伸填滿至實體的下一個面。用於外殼和托盤內部的支撐壁格柵。",
"help.surface.blend": "建立橋接兩個實體邊的曲面,與兩者相切或曲率連續。用於在間隙兩側平滑接合兩個曲面。",
"help.surface.boundary": "建立填滿由二至四條草圖曲線構成的迴圈或曲線網格的曲面。用於由邊界定義的自由形狀面板。",
"help.surface.extend": "將曲面延長超出其邊,可指定距離或延伸到平面或面。用於在修剪或縫合前讓曲面互相重疊。",
"help.surface.extrude": "將草圖曲線或輪廓沿一段距離推成曲面,只有壁,沒有封口。用於薄壁,以及切割或分割工具。",
"help.surface.fair": "在邊保持不動的情況下,平滑自由形狀面的內部。用於撫平曲面上的凸起和起伏的反射。",
"help.surface.loft": "建立依序通過兩個或多個斷面的曲面,沒有封口。用於殼體以及不同形狀之間的過渡。",
"help.surface.match": "重建曲面的邊,使其與另一個實體的邊相接,並相切或曲率相符。用於在兩個曲面之間平滑地封閉接縫。",
"help.surface.offset": "沿法線方向距離一定處建立面的副本,成為新的曲面實體。用於外皮、間隙,或壁的另一側。",
"help.surface.patch": "以平坦或平滑彎曲的面填滿草圖區域或封閉的邊迴圈。用於封閉曲面實體上的孔。",
"help.surface.reverse_normal": "翻轉曲面實體的面,使其外側朝向另一邊。用於面朝內時,在加厚或縫合之前。",
"help.surface.revolve": "將草圖曲線或輪廓繞軸旋轉成曲面,沒有封口。用於燈罩、碗和噴嘴等圓形殼體。",
"help.surface.ruled": "從一串邊沿面的法向、切線方向或以某個角度,建立由直線構成的條帶。用於拔模壁、延伸面和分模面。",
"help.surface.stitch": "沿共用的邊縫合曲面實體;若閉合則成為實體。用於將一組曲面變成一個實體。",
"help.surface.sweep": "將草圖曲線或輪廓沿路徑移動成曲面,沒有封口。用於沿路徑的排水槽、飾條和其他薄形狀。",
"help.surface.thicken": "賦予曲面實體厚度,將其變成實體。用於由曲面製作可列印或可加工的零件。",
"help.surface.trim": "以平面、另一個曲面或草圖曲線切割曲面,並保留您選取的一側。用於縫合前把曲面切成形狀。",
"help.surface.unstitch": "將實體的面分離為各自獨立的曲面實體;實體會散開成曲面。用於重做實體的單個面。",
"help.surface.untrim": "移除面上的孔,或將其外邊界還原為曲面的自然邊界。用於修剪後取回完整的曲面。",
"help.third_party": "第三方授權",
"help.timeline.compute_all": "從頭重新計算時間軸中的所有特徵。用於重新整理模型,並查看哪些特徵失敗。",
"help.timeline.delete": "從時間軸中刪除所選特徵;刪除草圖時,由它建立的特徵也會一併刪除。用於移除不再需要的步驟。",
"help.timeline.dependents": "列出會隨某個特徵一起被刪除的特徵,以及沒有它就會失敗的特徵。用於刪除或變更特徵之前。",
"help.timeline.play": "逐一重播其餘特徵,每次重建後暫停半秒。再次執行此命令或按 Escape 可停止;「移至結尾」會立即跳到結尾。",
"help.view.apply": "將檢視轉到標準方向(例如前、上或等角),或轉到已儲存的命名檢視。用於從固定角度觀看模型。",
"help.view.delete": "刪除已儲存的命名檢視。不會更改模型。",
"help.view.fit": "縮放並平移,使整個模型或所選項目填滿檢視。用於模型跑出視野之外時。",
"help.view.grid": "顯示或隱藏視埠中的網格。用作建模時的尺寸與方向參考。",
"help.view.ground_shadow": "顯示或隱藏模型在地面上的陰影。用於更容易判斷高度和位置。",
"help.view.home": "將檢視轉回主方向,並使模型符合視圖。用於快速回到已知的檢視。",
"help.view.list": "列出設計中儲存的命名檢視。用於找出先前儲存的檢視。",
"help.view.navigate": "以步進方式旋轉、平移或縮放檢視,例如向左四分之一圈。用於精確移動相機,而不必拖曳。",
"help.view.navigation_bar": "顯示或隱藏視埠底部的導覽列。隱藏可獲得更多空間,顯示則可用滑鼠使用檢視工具。",
"help.view.rename": "為已儲存的命名檢視取新名稱。檢視本身保持不變。",
"help.view.save": "將目前的相機位置儲存為設計中的命名檢視。用於之後回到同一角度,例如截圖。",
"help.view.spin": "持續環繞模型轉動檢視,直到下一次按一下或按鍵。用於從各個方向展示模型。",
"help.view.tool": "鎖定相機工具(環繞、平移或縮放),讓以滑鼠左鍵拖曳時移動檢視,直到您將其關閉。用於觸控板或沒有滑鼠中鍵時。",
"help.view.visual_style": "切換模型的繪製方式:著色(含或不含邊線)、線框,或含隱藏線。用線框查看內部,用著色得到乾淨的外觀。",
"history.sketch_under_constrained": "拘束不足({count} 個自由度)",
"history.sketch_under_constrained_one": "拘束不足({count} 個自由度)",
"hole_presets.confirm_delete": "確認刪除",
@@ -1544,6 +1812,8 @@
"joint_move.blocked_hint": "請檢查接頭類型(例如剛性)、固定狀態、接頭限制,以及由參數驅動的值。",
"joint_move.blocked_title": "無法移動此零件",
"joint_move.coarse": "靠近軸心時的旋轉步距(°)",
"joint_move.conflict": "此零件的一個接頭與其他接頭衝突:{joint}。",
"joint_move.conflict_hint": "請編輯、抑制或刪除衝突的接頭,讓其他接頭可以放置此零件。",
"joint_move.distance": "與起點的距離",
"joint_move.done": "完成",
"joint_move.fine": "遠離軸心時的旋轉步距(°)",
@@ -1615,6 +1885,10 @@
"material.selection.mixed": "不同材質",
"measure.at": "位置",
"measure.item": "項目 {number}",
"measure.quick_copied": "已複製測量值",
"measure.quick_copy": "按一下以複製測量值",
"measure.quick_edges": "{count} 條邊",
"measure.quick_faces": "{count} 個面",
"messages.ago_h": "{n} 小時前",
"messages.ago_min": "{n} 分鐘前",
"messages.ago_s": "{n} 秒前",
@@ -1648,6 +1922,7 @@
"nav.hfss.help": "Alt+左鍵拖曳可平移,Shift+Alt+左鍵可縮放,在空白處按 Ctrl+左鍵拖曳可環轉",
"nav.inventor.help": "中鍵拖曳可平移,Shift+中鍵可環繞,Ctrl+中鍵可縮放,右鍵拖曳可環繞",
"nav.maya.help": "Alt+左鍵拖曳可環轉,Alt+中鍵可平移,Alt+右鍵可縮放;中鍵拖曳同樣可平移",
"nav.nx.help": "中鍵拖曳可環繞,Shift+中鍵可平移(NX 的中鍵 + 右鍵),Ctrl+中鍵可縮放(NX 的中鍵 + 左鍵);右鍵拖曳不會移動相機",
"nav.openscad.help": "在空白處以左鍵拖曳可環繞,Shift+左鍵拖曳可框選,拖曳草圖幾何可編輯;右鍵或中鍵拖曳可平移,Shift+右鍵或 Shift+中鍵拖曳可縮放",
"nav.perspective.sketch": "編輯草圖時會使用正交檢視。完成草圖後才能切換為透視。",
"nav.right_drag_orbits.help": "關閉:右鍵拖曳不會移動相機,右鍵只會開啟右鍵選單。選擇 SolidWorks 滑鼠對應會將其關閉。",
@@ -1767,6 +2042,11 @@
"not a move": "不是移動",
"not a number": "不是數字",
"open a sketch first": "請先開啟一個草圖",
"parameters.apply_live": "離開欄位時即套用每項變更",
"parameters.apply_live_tip": "關閉:變更會等到按下「套用」或「確定」,然後設計一次性為所有變更重建。「取消」或 Esc 會捨棄這些變更。",
"parameters.held": "{count} 項變更等待套用",
"parameters.held_hint": "編輯運算式和單位。變更會等到按下「套用」或「確定」。",
"parameters.held_one": "1 項變更等待套用",
"parts.automatic_name": "自動",
"parts.dimension.across_flats": "對邊寬度",
"parts.dimension.bore": "內徑",
@@ -1789,6 +2069,8 @@
"parts.family.set_screw": "內六角平端止付螺絲",
"parts.family.socket_head_cap_screw": "內六角圓柱頭螺絲",
"parts.family.washer": "平墊圈",
"parts.holes": "孔(可選)",
"parts.placement_hint": "選取一個或多個孔,將零件放入每個孔中,或按「確定」將其放在原點",
"pattern.alignment_2": "對齊 2",
"pattern.alignment_hint": "數量包含原始物件。置中時副本分佈在兩側;數量為偶數時,反轉可切換多一個副本的一側。",
"pattern.direction_1": "方向 1",
@@ -1862,6 +2144,8 @@
"prefs.ctrl_cmd": "Ctrl / Cmd",
"prefs.curved_surfaces": "曲面",
"prefs.curves": "曲面",
"prefs.dark_parts_shading": "保留深色零件的形狀",
"prefs.dark_parts_shading_help": "以線性光搭配柔和的天空補光對檢視進行著色,讓深色的面保有漸層,而不會變成全黑",
"prefs.dead_zone_note": "斜線區域為死區:此範圍內的移動會被忽略。",
"prefs.default": "預設",
"prefs.design": "設計預設值",
@@ -1876,6 +2160,8 @@
"prefs.edges": "邊與著色",
"prefs.extend": "延伸",
"prefs.extra_navigation": "在空白處按住 Ctrl 並以左鍵拖曳可環轉;按住空白鍵可平移。",
"prefs.extrude_view_isometric": "開啟「擠出」時將檢視轉為等角視圖",
"prefs.extrude_view_return": "關閉「擠出」時回到先前的檢視",
"prefs.follows_os": "跟隨作業系統",
"prefs.font": "字型",
"prefs.font_fallback": "所選字型缺少的字元會改用內建字型,因此標籤不會出現空白方框。",
@@ -1891,6 +2177,7 @@
"prefs.graphics_card_auto": "自動",
"prefs.graphics_card_missing": "已儲存的顯示卡無法使用;將改用自動選擇。",
"prefs.graphics_card_restart": "重新啟動 SolidCraft 後生效。WGPU_ADAPTER_NAME 會覆蓋此選擇。",
"prefs.graphics_card_unused": "已儲存的顯示卡未用於此視窗;實際使用的顯示卡顯示在「說明 › 關於」和狀態列中。請嘗試「自動」,或將 WGPU_ADAPTER_NAME 設為顯示卡名稱中的唯一部分。",
"prefs.graphics_note": "在速度與平滑度之間取捨。每個選項都會在範例上顯示其效果。",
"prefs.graphics_presets_note": "預設集會一併設定下列選項。",
"prefs.hide_constraint_glyphs_zoomed_out": "縮小檢視時隱藏拘束符號",
@@ -1905,6 +2192,8 @@
"prefs.history_sketches_note": "「草圖」設為「位於其特徵下」時,左側的歷程記錄在寬度足以顯示名稱時,會把每個草圖縮排一層,列在由它建立的第一個特徵之下。底部的時間軸一律保持建立順序。",
"prefs.history_sketches_under_feature": "位於其特徵下",
"prefs.hold_stop_snapping": "按住以停用鎖點",
"prefs.home_fit_size": "主檢視與符合檢視的大小",
"prefs.home_fit_size_note": "在主檢視、符合檢視、開啟設計或檢視導覽器切換檢視而為模型取景時,模型佔滿檢視的程度,不論下方的設定是否開啟。100 %:填滿面板、羅盤與導覽列之間的檢視區域。",
"prefs.icons_only": "僅圖示",
"prefs.imported_file": "已匯入的檔案",
"prefs.in_browser": "瀏覽器內",
@@ -1913,13 +2202,20 @@
"prefs.interface_language": "介面語言",
"prefs.interface_note": "SolidCraft 的外觀與各面板的位置。",
"prefs.interval_minutes": "{n} 分鐘",
"prefs.invert_navigator_arrows": "反轉檢視立方體的旋轉箭頭",
"prefs.invert_navigator_arrows_note": "立方體周圍的箭頭會依其所指方向環繞相機,與 Fusion 和 Inventor 相同:左側箭頭指向右方,並將相機向右擺動。關閉時:箭頭會將立方體轉向它所在的一側,因此左側箭頭會將相機向左擺動。彎曲的滾轉箭頭不受影響。",
"prefs.keep_work_on_tab_switch": "切換設計時保持對話方塊與工具開啟",
"prefs.keep_work_on_tab_switch_note": "每個設計分頁都會保留其開啟的對話方塊或工具、您在其中選取與輸入的內容,以及其工具列索引標籤。回到該設計時,它們會恢復原狀。關閉時:切換設計會取消它們,並顯示「模型」索引標籤。",
"prefs.labels": "標籤",
"prefs.language_system": "系統",
"prefs.layout": "配置",
"prefs.layout_note": "精簡模式會將面板停靠在視窗邊緣。瀏覽器半透明僅適用於浮動模式。助理的位置請在「助理」頁面中變更。",
"prefs.left": "左側",
"prefs.left_click": "左鍵點擊",
"prefs.line_drag_draws_one": "按下並拖曳繪製一條直線",
"prefs.line_drag_draws_one_note": "在「直線」工具中,按下、拖曳再放開,會從按下處到放開處繪製一條直線,並在該處結束。按一下仍會繪製連續線段。關閉:拖曳會在放開處放置一個點,與按一下相同。",
"prefs.line_hover_tangent_arc": "停在直線的最後一點上即可切換為相切圓弧",
"prefs.line_hover_tangent_arc_note": "在「直線」工具中繪製一段後,移離連續線段的最後一點,再回來並將指標停在該點上:下一次點擊會決定相切圓弧的終點,同樣的動作則會切回直線。關閉時:停在該處不會有任何作用。",
"prefs.linked_designs": "連結設計",
"prefs.live_input": "即時輸入",
"prefs.live_preview": "即時預覽",
@@ -1943,6 +2239,8 @@
"prefs.mouse_mapping": "滑鼠對應",
"prefs.navigation": "導覽",
"prefs.navigation_note": "滑鼠、觸控板和 3D 滑鼠移動檢視的方式。",
"prefs.navigator_fit": "變更導覽器檢視後使模型符合視圖",
"prefs.navigator_fit_note": "檢視立方體的面、角或箭頭,或方向控制器的某個軸,也會從能容納整個模型各側的單一距離(其邊界球)看向模型中心。啟用時,「主檢視」使用相同的縮放與中心,因此之後選擇的檢視只會旋轉。關閉時:檢視原地旋轉,保留其目標與縮放。",
"prefs.network_host_remove": "移除",
"prefs.network_locations": "允許設計中的網路位置",
"prefs.network_locations_note": "關閉:設計中位於其他電腦 (\\\\server\\share) 上的連結檔案,只會從此處列出的伺服器開啟,或在詢問時由您允許某個伺服器後才開啟。",
@@ -1955,6 +2253,8 @@
"prefs.origin_plane_names": "原點平面名稱",
"prefs.origin_plane_names_note": "顯示於瀏覽器、對話方塊和清單中的名稱。{top} 為 XY,{front} 為 XZ,{right} 為 YZ,Z 軸朝上。命令、指令碼和已儲存的設計仍使用 XY、XZ 和 YZ。",
"prefs.overall_speed": "整體速度",
"prefs.parameter_list_rows": "參數清單列數",
"prefs.parameter_list_rows_tip": "在空的數值欄位按向下鍵會列出參數,收藏的排在前面,最多列出這麼多列。列數較少可讓大型設計中的清單保持輕巧。",
"prefs.persistent_ribbon_pressed": "醒目顯示作用中的功能區命令",
"prefs.persistent_ribbon_pressed_help": "在功能區命令的效果開啟期間醒目顯示這些命令。關閉可維持先前的中性外觀與命令說明。",
"prefs.perspective_fov": "視角",
@@ -1984,9 +2284,13 @@
"prefs.quality_fastest": "最快",
"prefs.quality_slowest": "最慢",
"prefs.quality_smoother": "更平滑",
"prefs.quick_measure": "檢視角落的快速測量",
"prefs.quick_measure_note": "在檢視右下角顯示所選項目的大小:邊的長度(圓形邊則為 Ø 和 R)、面的面積、點的位置、兩個項目的距離和角度,或多條邊、多個面的總計。按一下即可複製。",
"prefs.render_previous_geometry_budget": "使用先前的彩現預覽幾何預算",
"prefs.render_previous_geometry_budget_help": "還原先前固定的幾何上限(64 位元桌面版為 512 MiB,其他平台為 128 MiB),而非依裝置決定的預算。",
"prefs.reports_saved": "已儲存 {n} 份",
"prefs.ribbon_click_ends_tool": "按一下執行中工具的按鈕即可結束該工具",
"prefs.ribbon_click_ends_tool_note": "按一下使用中草圖工具亮起的功能區按鈕會結束該工具,讓在檢視中的點擊恢復為選取。關閉時:點擊會重新啟動該工具。",
"prefs.ribbon_reveal": "在功能區中顯示搜尋結果",
"prefs.ribbon_reveal_note": "在「搜尋命令」中將指標停留在結果上,會顯示該命令在功能區中的位置:其索引標籤、按鈕,或面板下拉選單中的列。從搜尋啟動的命令會在該處閃爍,而從下拉選單執行中的命令會標示其所在面板。",
"prefs.right_click": "右鍵點擊",
@@ -2016,6 +2320,8 @@
"prefs.sketch_exit_view.previous": "返回先前的檢視",
"prefs.sketch_exit_view.unless_rotated": "未旋轉時返回",
"prefs.sketch_exit_view_note": "「完成草圖」、取消或連按兩次 Esc 後檢視的去向。",
"prefs.sketch_face_activates_part": "在零件的面上繪製草圖會使該零件成為作用中",
"prefs.sketch_face_activates_part_note": "在其他元件之實體的面上開始的草圖,會先啟用該元件,因此草圖屬於該元件,並在瀏覽器中與該零件放在一起。之後該零件仍保持作用中。關閉時:草圖屬於目前作用中的元件。",
"prefs.sketch_open_look_at": "開啟草圖時轉向正對草圖",
"prefs.sketch_open_look_at_note": "關閉:建立或編輯草圖時維持目前的檢視。需要時可用「注視」正對草圖。",
"prefs.sketch_recent_snap": "自動鎖點至最近使用的圓心與中點",
@@ -2029,6 +2335,8 @@
"prefs.sketch_tab_always_note": "沒有開啟草圖時,「草圖」索引標籤仍保留在功能區中,位於「模型」之後。使用其繪圖工具時,會在所選的平面或面上、或在你接著選取的平面上開始草圖,並直接啟用該工具。",
"prefs.sketch_tracking_guides": "圓心與中點對齊輔助線",
"prefs.sketch_tracking_guides_note": "游標停在圓心或直線邊的中點上,再水平或垂直移動,即可顯示暫時的點線輔助線。",
"prefs.sketch_tracking_points": "繪製時顯示來自端點和角的對齊輔助線",
"prefs.sketch_tracking_points_note": "繪圖工具等待指定點時,將游標停在直線或圓弧的端點、矩形的角或自由點上,會顯示與圓心或中點相同的暫時點線輔助線。關閉:僅限圓心和中點。",
"prefs.sketching": "草圖",
"prefs.snap_drawing_note": "繪製或拖曳草圖點時使用。",
"prefs.source": "來源",
@@ -2045,6 +2353,24 @@
"prefs.status_error": "錯誤",
"prefs.status_selected": "已選取",
"prefs.status_warning": "警告",
"prefs.structure.appearance": "外觀",
"prefs.structure.appearance_note": "顏色、文字與無障礙功能。",
"prefs.structure.in_profile": "在設定檔中",
"prefs.structure.layout": "配置",
"prefs.structure.layout_note": "視窗各部分的位置。",
"prefs.structure.look": "風格",
"prefs.structure.measure_pointer": "測量與指標",
"prefs.structure.mouse3d": "3D 滑鼠",
"prefs.structure.mouse3d_note": "SpaceMouse 與 SpaceNavigator。",
"prefs.structure.navigation_note": "滑鼠與觸控板。3D 滑鼠有專屬頁面。",
"prefs.structure.profile": "設定檔",
"prefs.structure.profile_edited": "儲存後已變更",
"prefs.structure.profile_hover": "儲存於設定檔中",
"prefs.structure.scale_percent": "{percent}%",
"prefs.structure.sketch": "草圖",
"prefs.structure.tools": "工具",
"prefs.structure.tools_note": "建模工具的行為方式。",
"prefs.structure.work": "工作",
"prefs.supersampling_brief": "以更高解析度繪製檢視再縮小:非常清晰,但負載較高。",
"prefs.tab_accent_note": "強調色跟隨目前的分頁",
"prefs.theme_file": "主題檔案",
@@ -2056,6 +2382,16 @@
"prefs.theme_follow_off": "關閉",
"prefs.theme_follow_stop": "停止跟隨",
"prefs.theme_import_hint": "按一下以選擇主題檔案、將檔案拖放到此處,或在已複製主題的情況下按 Ctrl+V(Mac 為 Cmd+V)",
"prefs.theme_option_opacity": "不透明度",
"prefs.theme_option_opacity_help": "調整浮動面板的不透明度。可讀性下限會保護視埠顏色上的文字。",
"prefs.theme_option_tab_colours": "索引標籤顏色",
"prefs.theme_option_tab_colours_help": "每個功能區索引標籤都使用此主題的面板和視埠顏色。",
"prefs.theme_option_tab_fade_ms": "索引標籤轉場",
"prefs.theme_option_tab_fade_ms_help": "切換索引標籤時,面板和視埠顏色會淡入淡出。設為零則立即切換。",
"prefs.theme_options_badge": "選項",
"prefs.theme_options_more": "更多 · {count}",
"prefs.theme_options_reset": "重設",
"prefs.theme_options_unavailable": "此裝置上無法使用",
"prefs.theme_paste": "貼上主題",
"prefs.theme_paste_none": "剪貼簿中沒有 SolidCraft 主題",
"prefs.timeline_half_hour": "−30 分鐘",
@@ -2077,6 +2413,8 @@
"prefs.under_cursor": "游標下方",
"prefs.units_precision": "單位與精度",
"prefs.updates": "更新",
"prefs.value_boxes_in_view": "在檢視中於控點旁顯示數值",
"prefs.value_boxes_in_view_tip": "命令的數值(距離、半徑…)會顯示在模型上方、控點旁的方框中。關閉:在命令視窗中輸入,選取後命令視窗會接手鍵盤,也不會有東西遮住模型。",
"prefs.view": "檢視行為",
"prefs.view_confirm_corner": "在檢視角落顯示「確定」與「取消」",
"prefs.view_confirm_corner_note": "開啟對話框或草圖時,檢視右上角的勾號與叉號,作用等同於對話框的「確定」與「取消」,或完成與取消草圖。檢視導覽器會下移到它們下方。",
@@ -2086,6 +2424,12 @@
"prefs.viewport_background": "背景",
"prefs.viewport_background_colour": "顏色",
"prefs.viewport_background_theme": "主題漸層",
"prefs.viewport_section_status": "顯示視埠剖面狀態",
"prefs.viewport_section_status_help": "在視埠中顯示剖面設定。按 Esc 或作用中的功能區按鈕可將其關閉。停用可保留先前的剖面控制項。",
"prefs.viewport_status_details": "即時視埠詳細資料",
"prefs.viewport_status_details_help": "在標準詳細資料卡中編輯作用中的分析和剖面設定。停用可還原唯讀的分析圖例和「剖面」對話方塊。",
"prefs.viewport_status_summary": "摺疊視埠狀態項目",
"prefs.viewport_status_summary_help": "將三個或更多視埠狀態項目摺疊成一個摘要徽章。停用可讓每個項目都留在完整的列中。",
"prefs.wheel": "滾輪",
"prefs.wheel_trackpad": "滾輪與觸控板",
"prefs.workspace": "工作區",
@@ -2964,7 +3308,9 @@
"render.output_ready": "可開始彩現",
"render.output_run_check": "執行檢查",
"render.output_size_limit": "{method}:每邊最多 {dimension} px,總計 {pixels} 像素。可容納的最大尺寸:{width} × {height}。",
"render.output_size_method_profile": "若要彩現 {width} × {height},請選擇搭配 {profile} CPU 資源設定檔的 {method},或選擇較小的尺寸。",
"render.output_size_ok": "大小正常 · {width} × {height} px",
"render.output_size_profile": "若要彩現 {width} × {height},請選擇 {profile} CPU 資源設定檔,或選擇較小的尺寸。",
"render.output_swap_orientation": "交換寬度與高度",
"render.output_tools_inspector": "請在「輸出」檢查器中編輯尺寸與格式。",
"render.output_view_image": "檢視影像",
@@ -3177,6 +3523,7 @@
"render.size_custom": "自訂…",
"render.size_full_hd": "Full HD",
"render.size_hd": "HD",
"render.size_needs_profile": "{size} · 需要 {profile}",
"render.size_presets": "尺寸預設",
"render.size_presets_pending": "將隨「輸出」編輯器推出",
"render.size_preview": "預覽",
@@ -3464,6 +3811,24 @@
"sheet.flange_type_contour": "輪廓",
"sheet.flange_type_edge": "邊線",
"sheet.no_body": "沒有鈑金實體:請用「凸緣 > Base」建立,或用「轉換為鈑金」將板材轉為鈑金(選取其較大的平面)",
"sheet.personal_rules.confirm_delete": "確認刪除",
"sheet.personal_rules.delete": "刪除",
"sheet.personal_rules.delete_prompt": "要刪除此個人規則嗎?已在設計中的規則不受影響。",
"sheet.personal_rules.full": "個人規則庫已包含 64 條規則。",
"sheet.personal_rules.invalid_name": "請輸入不含換行或控制字元的簡短名稱。",
"sheet.personal_rules.invalid_values": "請補全規則的數值:每個值都必須能在此設計中成立,厚度須為正,K 因子須介於 0 到 1。",
"sheet.personal_rules.missing": "所選的個人規則已無法使用。",
"sheet.personal_rules.name": "規則名稱",
"sheet.personal_rules.name_exists": "已有同名的個人規則。請使用其他名稱。",
"sheet.personal_rules.name_hint": "唯一的名稱",
"sheet.personal_rules.overwrite": "將變更儲存到所選的個人規則",
"sheet.personal_rules.rename": "重新命名",
"sheet.personal_rules.rule": "個人規則",
"sheet.personal_rules.save": "另存為新規則",
"sheet.personal_rules.scope": "儲存在您的設定檔中,適用於所有設計。",
"sheet.personal_rules.select": "選擇規則",
"sheet.personal_rules.title": "個人規則",
"sheet.personal_rules.unsupported": "此規則含有此版本無法使用的值。",
"shortcut.json_error": "參數必須採用 JSON 格式:{error}",
"shortcut.no_command": "沒有命令 `{id}`;JSON 前的文字必須是命令 ID",
"shortcut.pin": "固定到 S 框頂部",
@@ -3500,8 +3865,10 @@
"sketch_text.align_right": "靠右對齊",
"sketch_text.bold": "粗體",
"sketch_text.builtin_font": "{family}(內建)",
"sketch_text.formula": "以 = 開頭,可由參數組出文字:='W' + number(Width)",
"sketch_text.italic": "斜體",
"sketch_text.loading_fonts": "正在查詢已安裝字型…",
"sketch_text.no_bold": "內建字型沒有粗體:請選擇已安裝的字型",
"sketch_text.on_path": "文字沿路徑排列:由曲線放置",
"sketch_text.path_clear": "將文字移離其曲線",
"sketch_text.path_hint": "文字所跟隨的草圖曲線:先點擊此處,再選擇曲線",
@@ -3640,6 +4007,8 @@
"ui.3d_mouse_section": "3D 滑鼠",
"ui.3d_mouse_show_in_view": "在 3D 檢視中顯示 3D 滑鼠",
"ui.3d_mouse_show_in_view_tip": "在左下角顯示 3D 滑鼠的圖示,隨您的操作而移動。",
"ui.3d_mouse_sketch_orbit": "使用 3D 滑鼠旋轉草圖",
"ui.3d_mouse_sketch_orbit_tip": "開啟草圖且正對觀看時,3D 滑鼠也能像滑鼠一樣旋轉檢視。關閉:在您傾斜檢視之前,它只會平移和縮放草圖。",
"ui.3d_mouse_skip": "我的裝置做不到",
"ui.3d_mouse_skip_tip": "兩個方向都跳過此動作,校準時不包含它。",
"ui.3d_mouse_speed": "3D 滑鼠速度",
@@ -3708,6 +4077,7 @@
"ui.agent_chat_auth_terminal": "在終端中執行以下命令,然後再次點擊連線:",
"ui.agent_chat_auth_title": "登入代理",
"ui.agent_chat_cancel": "取消",
"ui.agent_chat_cannot_start": "已安裝,但無法啟動:{error}",
"ui.agent_chat_changes": "{n} 項變更,一步復原",
"ui.agent_chat_changes_n": "{n} 項變更",
"ui.agent_chat_changes_of": "變更 {n}/{limit}",
@@ -3800,9 +4170,12 @@
"ui.agent_chat_queued_stopped": "已加入佇列(已停止,未傳送)",
"ui.agent_chat_refresh": "重新整理",
"ui.agent_chat_refused": "不允許代理執行:{reason}",
"ui.agent_chat_reinstall": "{agent} 已安裝({program}),但 SolidCraft 檢查時它沒有啟動:{error}\n其安裝可能不完整,或是為另一種電腦製作的。請用 `{install}` 重新安裝,在終端機中確認它會印出版本,然後按「重新整理」。",
"ui.agent_chat_remove": "從佇列中移除",
"ui.agent_chat_remove_file": "從這條訊息中移除",
"ui.agent_chat_remove_imported": "從這條訊息中移除;零件仍保留在設計中(復原可將其刪除)",
"ui.agent_chat_reply_cut_off": "回覆在完成前就達到長度上限,因此可能不完整。請要求代理繼續,或給出較短的答案。",
"ui.agent_chat_reply_declined": "模型拒絕回答此訊息。",
"ui.agent_chat_retry": "重試",
"ui.agent_chat_right": "右側",
"ui.agent_chat_save": "儲存",
@@ -3861,12 +4234,17 @@
"ui.ai_copy_suffix": "副本",
"ui.ai_custom_url": "自訂 URL",
"ui.ai_default": "預設",
"ui.ai_edit": "編輯",
"ui.ai_edit_agent_title": "編輯代理",
"ui.ai_edit_gone": "此代理已被移除,因此沒有可儲存的內容。",
"ui.ai_edit_tip": "變更此代理的名稱、命令或端點。已儲存的金鑰會保持隱藏。",
"ui.ai_http_busy": "端點繁忙或已達上限,請稍後再試",
"ui.ai_http_key": "端點拒絕了金鑰:請在「偏好設定 > AI」中檢查",
"ui.ai_http_not_found": "找不到該端點或模型:請檢查基礎 URL 和模型名稱",
"ui.ai_http_too_large": "對話對此端點來說過大;請開始新的聊天",
"ui.ai_key": "API 金鑰",
"ui.ai_key_hint": "可選;儲存在系統鑰匙圈中",
"ui.ai_key_keep_hint": "留空以保留已儲存的金鑰",
"ui.ai_key_needs_https": "金鑰只會透過 HTTPS 傳送,或傳送到本機。",
"ui.ai_key_note": "儲存在系統鑰匙圈中,絕不儲存在 SolidCraft 的設定裡。本機伺服器可留空。",
"ui.ai_keychain_error": "系統鑰匙圈拒絕:{error}",
@@ -3893,11 +4271,15 @@
"ui.ai_permissions": "權限",
"ui.ai_preset": "預設",
"ui.ai_protocol": "通訊協定",
"ui.ai_reasoning_effort": "推理強度",
"ui.ai_reasoning_effort_field_hint": "留空 = 供應商預設值",
"ui.ai_reasoning_effort_hint": "可選。會以 `reasoning_effort` 傳送給端點;可接受的值因供應商而異(例如 `low`、`high` 或 `max`)。您在此設定的值絕不會被 SolidCraft 取代。留空則不傳送任何內容,並沿用供應商的預設值。",
"ui.ai_remove": "移除",
"ui.ai_request_timed_out": "模型耗時超過 {seconds} s。您可以在「偏好設定 › 助理」中調高此端點的請求逾時。",
"ui.ai_request_timeout": "請求逾時",
"ui.ai_request_timeout_hint": "對此端點的單次模型請求最多可花費的時間,從 30 s 到 1 小時。本機模型較慢時請調高。",
"ui.ai_reset": "重設",
"ui.ai_save": "儲存",
"ui.ai_settings": "AI 設定…",
"ui.ai_show_features": "顯示 AI 功能",
"ui.ai_show_features_note": "代理聊天:一個面板,由您已在使用的程式設計代理或您選擇的模型端點處理開啟的設計。關閉後:沒有 AI 按鈕、快捷鍵、選單項或面板,也不會查詢或啟動任何程式。",
@@ -4057,6 +4439,7 @@
"ui.dark": "深色",
"ui.default_modelling_orientation": "預設建模方向",
"ui.delete": "刪除",
"ui.delete_select_first": "請先選取要刪除的項目:特徵、實體、元件或草圖幾何",
"ui.depth": "深度",
"ui.design": "設計",
"ui.design_properties.author": "作者",
@@ -4071,6 +4454,40 @@
"ui.design_properties.project": "專案",
"ui.design_properties.revision": "修訂版本",
"ui.design_saved": "已儲存至 {path}",
"ui.details_access_caption": "面會顯示刀具能否從所選方向到達。",
"ui.details_angle": "角度",
"ui.details_continuity_caption": "編輯所選的接縫。其他接縫保留各自的設定。",
"ui.details_continuity_stale": "較早的幾何:請重新執行分析,才能編輯此接縫或縮放至該處。",
"ui.details_copy_list": "複製清單",
"ui.details_curvature": "曲率公差",
"ui.details_curvature_caption": "面依其局部曲率半徑上色。",
"ui.details_direction": "刀具方向",
"ui.details_draft_caption": "面依其與拔模方向的夾角上色。",
"ui.details_edit_seam": "編輯接縫",
"ui.details_fixture": "元件樣本——僅為範例資料",
"ui.details_fixture_caption": "帶有示意數值的元件樣本;這不是模型的結果。",
"ui.details_fixture_problem": "有問題的範例發現",
"ui.details_fixture_readout": "範例測量值",
"ui.details_flip": "翻轉",
"ui.details_gap": "間隙",
"ui.details_hatch": "為切面畫上剖面線",
"ui.details_jump": "曲率跳變",
"ui.details_key": "圖例",
"ui.details_offset": "偏移",
"ui.details_plane": "平面",
"ui.details_pull": "拔模方向",
"ui.details_radius": "半徑",
"ui.details_readout": "讀值",
"ui.details_samples": "取樣數",
"ui.details_seam": "{body} · 邊 {edge}",
"ui.details_settings": "設定",
"ui.details_sharp_gap": "尖銳或間隙",
"ui.details_show_all": "顯示全部 {count} 項",
"ui.details_smooth": "平滑",
"ui.details_stripes": "條紋",
"ui.details_target": "縮放至幾何",
"ui.details_worst_seams": "最差的接縫",
"ui.details_zebra_caption": "反射的條紋顯示面接合得有多平滑。",
"ui.diameter": "直徑",
"ui.dimension": "尺寸",
"ui.direct_interaction": "直接互動",
@@ -4115,6 +4532,7 @@
"ui.edit_in_place_saved_elsewhere": "零件已儲存到另一個檔案;組合件仍連結 {name}",
"ui.edit_in_place_wait": "請等待設計中正在執行的作業完成",
"ui.edit_section_analysis": "編輯截面分析",
"ui.edit_sketch_empty": "沒有可編輯的草圖",
"ui.ellipse": "橢圓",
"ui.emboss_wrap_note": "與受支援圓柱相切的正交線輪廓會自動纏繞。選取一個壁以指定目標。",
"ui.end_radius": "終點半徑",
@@ -4125,12 +4543,15 @@
"ui.equation_explicit": "顯式",
"ui.equation_form": "形式",
"ui.equation_note": "變數為純數字:sin(t) 以弧度計算。沒有單位的結果會使用設計的單位。",
"ui.equation_note_range": "變數為長度,其範圍亦同:可與長度參數混合運算,用於 sin() 時請除以一個長度。沒有單位的結果會使用設計的單位。",
"ui.equation_parametric": "參數式",
"ui.equation_variable_unit": "變數使用範圍的單位",
"ui.equation_x_of_t": "x(t)",
"ui.equation_y_of_t": "y(t)",
"ui.equation_y_of_x": "y(x)",
"ui.equivalent_radius": "等效半徑",
"ui.expand": "展開",
"ui.explode_needs_two_components": "「爆炸圖」會將元件拉開,因此設計需要有兩個或更多元件(新建元件、插入設計或由實體建立元件)",
"ui.exportDxf": "匯出 DXF…",
"ui.export_ellipsis_keymap": "匯出…",
"ui.export_keymap_tip": "將按鍵、S 框收藏和工具列匯出為檔案",
@@ -4291,6 +4712,7 @@
"ui.insert_design.saved_file": "{name} 有未儲存的變更,因此插入的是其已儲存的檔案。請儲存後執行「更新連結」以帶入變更。",
"ui.insert_design.unsaved": "未儲存的變更",
"ui.inspect": "檢查",
"ui.instances": "實例數",
"ui.intersect": "相交",
"ui.isolate": "隔離",
"ui.join": "接合",
@@ -4299,12 +4721,14 @@
"ui.joints": "接頭",
"ui.keyboard_shortcuts": "鍵盤快捷鍵",
"ui.language": "語言",
"ui.lasso_select": "套索(拖曳出手繪的封閉圈:選取完全位於圈內的項目)",
"ui.layout_compact": "精簡",
"ui.layout_floating": "浮動",
"ui.length": "長度",
"ui.length_decimals": "長度小數位數",
"ui.light": "淺色",
"ui.line": "直線",
"ui.line_arc_hint": "相切圓弧:點擊圓弧的終點。再次停在最後一點上可回到直線;按一下右鍵或按 Esc 結束",
"ui.link_copies": "連結相同的副本",
"ui.link_copies_keep": "保留",
"ui.link_copies_link": "連結",
@@ -4393,6 +4817,7 @@
"ui.part_size_shared": "重建零件並取代額外新增的特徵。此元件的所有實例都會更新。",
"ui.paste": "貼上",
"ui.path": "路徑",
"ui.pattern_object_type_tip": "實體:實心形狀,在檢視或瀏覽器中選取;每個都會整個複製。\n特徵:歷程記錄中的步驟,例如擠出或孔,在歷程記錄中或其所建立的面上選取;該步驟會被重複。\n草圖兩者皆非:請用草圖自己的「陣列」或「鏡射」重複其曲線,或先將它擠出。",
"ui.pattern_on_path": "路徑陣列",
"ui.perforate_margin_default": "依直徑決定",
"ui.perforate_pitch": "間距",
@@ -4419,12 +4844,17 @@
"ui.plugins_skipped": "有 {count} 個資料夾無法讀取。",
"ui.plugins_version": "{version}",
"ui.point": "點",
"ui.point_cloud_add_filter": "新增篩選…",
"ui.point_cloud_auto_range": "自動範圍",
"ui.point_cloud_color_by": "顏色依據",
"ui.point_cloud_file_colors": "檔案顏色",
"ui.point_cloud_filter_by": "篩選依據",
"ui.point_cloud_height_high": "最高",
"ui.point_cloud_height_low": "最低",
"ui.point_cloud_legend_filter": "在上方圖例中顯示與隱藏",
"ui.point_cloud_no_file_colors": "檔案沒有顏色",
"ui.point_cloud_pause": "暫停",
"ui.point_cloud_play": "播放",
"ui.point_cloud_single_color": "單一顏色",
"ui.point_cloud_size": "點大小",
"ui.point_cloud_units": "檔案單位",
@@ -4433,9 +4863,9 @@
"ui.polygon": "多邊形",
"ui.preferences": "偏好設定",
"ui.press_a_key": "按一個鍵…",
"ui.print_face_body_not_sent": "此面的實體不會傳送:請先將其加入實體",
"ui.print_face_cleared": "{body}:已清除列印底面",
"ui.print_face_input": "列印底面",
"ui.print_face_one_body": "列印底面屬於單一實體:請單獨傳送該實體以變更它",
"ui.print_face_pick": "選取實體的一個平面,將其設為列印底面",
"ui.print_face_set": "{body}:已設定列印底面;傳送到切片軟體時實體會放在此面上",
"ui.profile": "輪廓",
@@ -4453,6 +4883,7 @@
"ui.properties.inertia_y": "Iyx, Iyy, Iyz",
"ui.properties.inertia_z": "Izx, Izy, Izz",
"ui.properties.measuring": "正在測量…",
"ui.properties.measuring_bodies": "正在測量… 第 {done} 個,共 {total} 個實體",
"ui.properties.measuring_failed": "測量在完成前已停止。",
"ui.properties.principal_axis": "主軸 {number}",
"ui.properties.principal_moments": "主慣性矩",
@@ -4520,6 +4951,7 @@
"ui.selectOther": "選擇其他…",
"ui.selectTangentChain": "選擇相切鏈",
"ui.select_all": "全選",
"ui.select_components_by_face": "選擇元件(點選面即選取其元件)",
"ui.selection": "選擇",
"ui.selection_modifiers": "選擇修飾鍵",
"ui.selection_shift_add_only": "Shift+點擊僅新增、不取消選擇",
@@ -4561,6 +4993,11 @@
"ui.sketch_intersect_selection_filter": "選擇篩選",
"ui.sketch_modifiers": "草圖修飾鍵",
"ui.sketch_project_geometry": "幾何",
"ui.sketch_report.all_constrained": "全部都已完全拘束。",
"ui.sketch_report.dof": "自由度",
"ui.sketch_report.loose": "尚未完全拘束",
"ui.sketch_report.status": "狀態",
"ui.sketch_report.title": "草圖報告",
"ui.sketch_scale": "草圖比例",
"ui.sketches": "草圖",
"ui.slice": "切片",
@@ -4656,12 +5093,15 @@
"ui.view_angles": "檢視角度",
"ui.view_angles_convention": "以向上軸為準的角度(單位為度)。偏航 0° 為前視圖,90° 為左視圖,−90° 為右視圖,180° 為後視圖;俯仰 90° 為俯視圖;滾轉為正值時,模型順時針轉動。",
"ui.view_angles_help": "在方向控制器下方顯示檢視的俯仰、偏航與滾轉角度(單位為度)及其投影方式。按一下讀值即可輸入精確角度。",
"ui.view_angles_lock": "鎖定 {axis}",
"ui.view_angles_ortho": "正交",
"ui.view_angles_persp": "透視",
"ui.view_angles_pitch": "俯仰",
"ui.view_angles_readout": "俯仰 {pitch} · 偏航 {yaw} · 滾轉 {roll}",
"ui.view_angles_roll": "滾轉",
"ui.view_angles_unlock": "解鎖 {axis}",
"ui.view_angles_yaw": "偏航",
"ui.view_angles_zero": "將 {axis} 設為 0°",
"ui.view_centre": "檢視中心",
"ui.viewport_status_clear": "關閉 {name}",
"ui.viewport_status_clear_hint": "關閉 {name} · Esc",
@@ -4670,7 +5110,14 @@
"ui.viewport_status_key": "顯示 {name} 的圖例",
"ui.viewport_status_minimum_radius": "最小半徑",
"ui.viewport_status_pairs": "{count} 對",
"ui.viewport_status_section_hatch": "{setting} · 剖面線",
"ui.viewport_status_section_plane": "目前平面",
"ui.viewport_status_section_tilted": "傾斜 · {offset}",
"ui.viewport_status_stripes": "{count} 道條紋",
"ui.viewport_status_summary_clear": "全部關閉",
"ui.viewport_status_summary_heading": "此檢視中",
"ui.viewport_status_summary_label": "{name} 及另外 {count} 項",
"ui.viewport_status_summary_more": "+{count}",
"ui.viewport_theme_follow": "跟隨主題",
"ui.visual_shaded_hidden_edges": "含隱藏邊的著色",
"ui.visual_shaded_with_edges": "含邊線的著色",
+480 -11
View File
File diff suppressed because it is too large Load Diff
+127 -9
View File
@@ -20,6 +20,7 @@ struct U {
sel: vec4<f32>, // xyz a whole selected body's colour before lighting
product_lights_meta: vec4<f32>, // explicit preview flag and bounded count
product_lights: array<vec4<f32>,84>, // position/kind, radiance, axis/cone, attenuation
sky: vec4<f32>, // xyz = world up; w = 1: shade in linear light with a sky fill (#7974)
};
fn reversed() -> bool {
@@ -34,6 +35,7 @@ fn near_z(c: vec4<f32>) -> f32 {
@group(1) @binding(2) var acc_t: texture_2d<f32>;
@group(2) @binding(0) var ao_depth: texture_2d<u32>;
@group(2) @binding(1) var ao_map: texture_2d<f32>;
fn clipped(p: vec3<f32>) -> bool {
return length(u.clip.xyz) > 0.5 && dot(u.clip.xyz, p) > u.clip.w;
@@ -61,7 +63,7 @@ fn out_color(c: vec4<f32>) -> vec4<f32> {
}
struct TOut {
@builtin(position) pos: vec4<f32>,
@invariant @builtin(position) pos: vec4<f32>,
@location(0) n: vec3<f32>,
@location(1) c: vec4<f32>,
@location(2) wp: vec3<f32>,
@@ -106,7 +108,7 @@ fn vs_tri_inst(
/// stores every vertex's outputs: more of them cost more than the triangles' shared vertices
/// save).
struct FOut {
@builtin(position) pos: vec4<f32>,
@invariant @builtin(position) pos: vec4<f32>,
@location(0) rp: vec3<f32>,
@location(1) c: vec4<f32>,
};
@@ -208,6 +210,12 @@ fn fs_ao_depth_flat(i: FOut, @builtin(front_facing) front: bool) -> AoDepth {
return opaque_depth(t, front);
}
@fragment
fn fs_ao_term_flat(i: FOut, @builtin(front_facing) front: bool) -> @location(0) vec4<f32> {
let t = flat_fragment(i, front);
return ao_term(t, front);
}
/// Opaque model surfaces: cut by the section plane/// Opaque model surfaces: cut by the section plane, the inside shows as a flat cap colour.
@fragment
fn fs_solid(i: TOut, @builtin(front_facing) front: bool) -> @location(0) vec4<f32> {
@@ -345,11 +353,89 @@ fn opaque_depth(i: TOut, front: bool) -> AoDepth {
return AoDepth(depth, bitcast<u32>(depth));
}
/// The term for an opaque surface's fragment, on the prepass's depth. A section's cut face has none.
fn ao_term(i: TOut, front: bool) -> vec4<f32> {
if (clipped(i.wp) || length(i.n) < 0.5) { discard; }
if (!front && length(u.clip.xyz) > 0.5) { return vec4<f32>(1.0); }
return vec4<f32>(occlusion_term(i));
}
@fragment
fn fs_ao_term(i: TOut, @builtin(front_facing) front: bool) -> @location(0) vec4<f32> {
return ao_term(i, front);
}
@vertex
fn vs_ao_blur(@builtin(vertex_index) v: u32) -> @builtin(position) vec4<f32> {
let p = vec2<f32>(f32((v << 1u) & 2u), f32(v & 2u));
return vec4<f32>(p * 2.0 - 1.0, 0.0, 1.0);
}
/// The depth map at `p`, reading 0 near and 1 far whichever way the buffer runs.
fn map_depth(p: vec2<i32>) -> f32 {
let at = clamp(p, vec2<i32>(0), vec2<i32>(textureDimensions(ao_depth)) - vec2<i32>(1));
let d = bitcast<f32>(textureLoad(ao_depth, at, 0).x);
return select(d, 1.0 - d, reversed());
}
/// The raw term (`ao_map` in this pass) averaged over a 4 x 4 window, which holds every turn of
/// [`ao_turn`]'s pattern once. A neighbour counts when it lies on this pixel's plane, the slope
/// taken from the nearer side across each axis, so no surface's shade crosses an edge.
@fragment
fn fs_ao_blur(@builtin(position) pos: vec4<f32>) -> @location(0) vec4<f32> {
let c = vec2<i32>(pos.xy);
let d = map_depth(c);
if (d >= 1.0) { return vec4<f32>(1.0); }
let left = d - map_depth(c + vec2<i32>(-1, 0));
let right = map_depth(c + vec2<i32>(1, 0)) - d;
let above = d - map_depth(c + vec2<i32>(0, -1));
let below = map_depth(c + vec2<i32>(0, 1)) - d;
let dx = select(right, left, abs(left) < abs(right));
let dy = select(below, above, abs(above) < abs(below));
let tolerance = 1.5 * (abs(dx) + abs(dy)) + 1e-6;
let last = vec2<i32>(textureDimensions(ao_map)) - vec2<i32>(1);
var sum = 0.0;
var weight = 0.0;
for (var y = -2; y < 2; y = y + 1) {
for (var x = -2; x < 2; x = x + 1) {
let p = c + vec2<i32>(x, y);
let s = map_depth(p);
if (s < 1.0 && abs(s - (d + dx * f32(x) + dy * f32(y))) <= tolerance) {
sum = sum + textureLoad(ao_map, clamp(p, vec2<i32>(0), last), 0).x;
weight = weight + 1.0;
}
}
}
return vec4<f32>(sum / max(weight, 1.0));
}
/// A pixel's turn of the sample pattern: every 4 x 4 window holds each of 16 turns once.
fn ao_turn(pos: vec2<f32>) -> f32 {
let x = u32(pos.x) & 3u;
let y = u32(pos.y) & 3u;
// WGSL won't mix shifts and `|` without parentheses; naga takes it, browsers refuse it (#11080).
let v = (((x ^ y) & 1u) << 3u) | ((y & 1u) << 2u) | (((x ^ y) >> 1u) << 1u) | (y >> 1u);
return (f32(v) + 0.5) / 16.0;
}
/// The lit pass's occlusion: the blurred term where this point falls in the map, whatever the
/// window's viewport offset and supersampling.
fn occlusion(i: TOut) -> f32 {
let size = vec2<i32>(textureDimensions(ao_map));
// The maps are 1 × 1 stand-ins until a frame draws into them (the product preview draws no
// prepass, and AO off releases them): they tell nothing, so leave the surface unoccluded.
if (u.ao.x <= 0.0 || length(i.n) < 0.5 || size.x < 2 || size.y < 2) { return 1.0; }
let q = u.vp * vec4<f32>(i.wp, 1.0);
if (q.w <= 0.0) { return 1.0; }
let uv = vec2<f32>(q.x / q.w * 0.5 + 0.5, 0.5 - q.y / q.w * 0.5);
return textureLoad(ao_map, clamp(vec2<i32>(uv * vec2<f32>(size)), vec2<i32>(0), size - vec2<i32>(1)), 0).x;
}
// Cosine-weighted hemisphere samples, the pattern turned by a different angle at each pixel.
// Projecting the sample and a point one radius toward the eye supplies a depth range in both
// orthographic and perspective views; distant foreground geometry cannot cast a dark halo onto
// a background surface.
fn occlusion(i: TOut) -> f32 {
fn occlusion_term(i: TOut) -> f32 {
let radius = u.ao.x;
if (radius <= 0.0 || length(i.n) < 0.5) { return 1.0; }
var n = normalize(i.n);
@@ -363,10 +449,9 @@ fn occlusion(i: TOut) -> f32 {
if (size.x < 2 || size.y < 2) { return 1.0; }
// The same offsets at every pixel made each sample darken its own shifted copy of a nearby
// part's outline: faint ghosts of the part where the radius is large on screen (#4167),
// stepped bands along contacts where it is small (#3407). Turned by interleaved gradient
// noise (Jimenez 2014), neighbouring pixels sample different points and the copies break up
// into an even grain.
let turn = fract(52.9829189 * fract(dot(i.pos.xy, vec2<f32>(0.06711056, 0.00583715))));
// stepped bands along contacts where it is small (#3407). Turned, neighbouring pixels sample
// different points, the copies break up into grain, and the blur takes the grain out (#9327).
let turn = ao_turn(i.pos.xy);
let t = tangent * cos(turn * 6.28318531) + bitangent * sin(turn * 6.28318531);
let b = cross(n, t);
// One comparison for both depth directions: depths read as 0 near / 1 far (mirrored when
@@ -423,8 +508,13 @@ fn analysis(i: TOut, k: f32) -> vec4<f32> {
let r = reflect(-v, n);
var side = cross(v, vec3<f32>(0.0, 0.0, 1.0));
if (length(side) < 1e-3) { side = vec3<f32>(1.0, 0.0, 0.0); }
let s = sin(dot(r, normalize(side)) * u.ana.y * 3.14159265);
let c = select(0.08, 0.95, s > 0.0);
let x = dot(r, normalize(side));
let s = sin(x * u.ana.y * 3.14159265);
// A face whose normal lies in the upright plane through the view (every horizontal
// face) reflects straight ahead: its sideways part is zero, on the edge between a black
// and a white stripe, and rounding picked one or the other from frame to frame while
// the view turned (#2153). Straight ahead is white.
let c = select(0.08, 0.95, s > 0.0 || abs(x) < 1e-4);
return out_color(vec4<f32>(vec3<f32>(c), 1.0));
}
if (u.ana.x > 4.5) {
@@ -545,6 +635,31 @@ fn lit(i: TOut, visibility: f32) -> vec4<f32> {
return lit_color(i, visibility, i.c);
}
/// sRGB to linear light, exact (the straight segment too, which `to_linear` leaves out).
fn srgb_decode(c: vec3<f32>) -> vec3<f32> {
return select(c / 12.92, pow((c + vec3<f32>(0.055)) / vec3<f32>(1.055), vec3<f32>(2.4)), c > vec3<f32>(0.04045));
}
fn srgb_encode(c: vec3<f32>) -> vec3<f32> {
let l = clamp(c, vec3<f32>(0.0), vec3<f32>(1.0));
return select(l * 12.92, 1.055 * pow(l, vec3<f32>(1.0 / 2.4)) - vec3<f32>(0.055), l > vec3<f32>(0.0031308));
}
/// The studio light summed in linear light, encoded once (#7974): the key and the eye fill as in
/// [`lit_color`], over a sky fill that grows as the face turns up, and the 4% every dielectric
/// reflects of that sky (a little more toward grazing), so a near-black face keeps a gradient. The sky
/// and the fill are what ambient occlusion (`visibility`) takes away. sRGB out.
fn sky_lit(base: vec3<f32>, n: vec3<f32>, diff: f32, fill: f32, visibility: f32) -> vec3<f32> {
let up = dot(n, normalize(u.sky.xyz)) * 0.5 + 0.5;
let sky = mix(0.18, 0.42, up);
// Schlick's rise toward grazing, tempered so mid-tones only gain a soft rim.
let fresnel = 0.04 + 0.2 * pow(1.0 - fill, 5.0);
let albedo = srgb_decode(base);
// Scaled so light and mid-grey faces land near where the sRGB shading puts them.
let light = albedo * (0.41 * diff + (0.66 * sky + 0.2 * fill) * visibility) + vec3<f32>(fresnel * sky * visibility);
return srgb_encode(light);
}
/// [`lit`] in a colour of its own: a whole highlighted body is lit in its colour lifted by the
/// hover amount, or in the selection colour, from the model's own plan triangles.
fn lit_color(i: TOut, visibility: f32, base: vec4<f32>) -> vec4<f32> {
@@ -571,6 +686,9 @@ fn lit_color(i: TOut, visibility: f32, base: vec4<f32>) -> vec4<f32> {
let fill = max(dot(n, v), 0.0);
let h = normalize(key + v);
let spec = pow(max(dot(n, h), 0.0), 40.0) * 0.25;
if u.sky.w > 0.5 {
return out_color(vec4<f32>(min(sky_lit(base.rgb, n, diff, fill, visibility) + vec3<f32>(spec), vec3<f32>(1.0)), base.a));
}
let k = 0.42 + 0.38 * diff + 0.25 * fill - (0.42 + 0.25 * fill) * (1.0 - visibility);
return out_color(vec4<f32>(min(base.rgb * k + vec3<f32>(spec), vec3<f32>(1.0)), base.a));
}
+47
View File
@@ -75,6 +75,7 @@ impl Tokens {
font_compass: 13.5,
font_subtitle: 15.0,
font_intro: 16.0,
font_page_heading: 20.0,
font_article_heading: 17.0,
font_title: 22.0,
font_display: 26.0,
@@ -226,6 +227,31 @@ impl Tokens {
dialog_label: Color32::from_rgb(58, 70, 86),
selected_ink: Color32::from_rgb(26, 80, 127),
selected_bg: Color32::from_rgb(232, 241, 250),
figure_ground: Color32::from_rgb(247, 248, 250),
figure_line: Color32::from_rgb(111, 124, 143),
figure_highlight: Color32::WHITE,
figure_shadow: Color32::BLACK,
figure_face_top: Color32::from_rgb(255, 255, 255),
figure_face_left: Color32::from_rgb(228, 233, 240),
figure_face_right: Color32::from_rgb(201, 210, 222),
figure_card: Color32::from_rgb(255, 255, 255),
figure_white: Color32::WHITE,
figure_black: Color32::BLACK,
figure_accent: Color32::from_rgb(35, 110, 173),
figure_reference: Color32::from_rgb(138, 83, 0),
figure_axis_x: Color32::from_rgb(214, 69, 69),
figure_axis_y: Color32::from_rgb(46, 158, 91),
figure_axis_z: Color32::from_rgb(47, 111, 208),
figure_ok: Color32::from_rgb(47, 125, 91),
figure_warn: Color32::from_rgb(201, 138, 0),
figure_conflict: Color32::from_rgb(184, 74, 0),
pref_well: Color32::from_rgb(238, 241, 245),
pref_note: Color32::from_rgb(183, 74, 0),
pref_note_fill: Color32::from_rgb(251, 235, 221),
pref_on_accent: Color32::from_rgb(255, 255, 255),
pref_ok: Color32::from_rgb(39, 107, 44),
pref_ok_fill: Color32::from_rgb(229, 242, 230),
pref_disabled: Color32::from_rgb(138, 148, 163),
timeline_item: Color32::WHITE,
timeline_item_error: Color32::from_rgb(250, 220, 220),
timeline_marker: Color32::from_rgb(70, 76, 88),
@@ -345,6 +371,27 @@ impl Tokens {
t.dialog_label = t.text;
t.selected_ink = Color32::from_rgb(156, 199, 245);
t.selected_bg = Color32::from_rgb(42, 70, 110);
t.figure_ground = Color32::from_rgb(28, 31, 38);
t.figure_line = Color32::from_rgb(163, 174, 194);
t.figure_face_top = Color32::from_rgb(107, 119, 144);
t.figure_face_left = Color32::from_rgb(81, 91, 114);
t.figure_face_right = Color32::from_rgb(57, 66, 86);
t.figure_card = Color32::from_rgb(47, 52, 62);
t.figure_accent = Color32::from_rgb(140, 190, 245);
t.figure_reference = Color32::from_rgb(232, 194, 74);
t.figure_axis_x = Color32::from_rgb(242, 122, 122);
t.figure_axis_y = Color32::from_rgb(98, 212, 142);
t.figure_axis_z = Color32::from_rgb(108, 168, 247);
t.figure_ok = Color32::from_rgb(127, 209, 174);
t.figure_warn = Color32::from_rgb(232, 194, 74);
t.figure_conflict = Color32::from_rgb(240, 162, 122);
t.pref_well = Color32::from_rgb(47, 52, 62);
t.pref_note = Color32::from_rgb(240, 162, 122);
t.pref_note_fill = Color32::from_rgb(74, 51, 38);
t.pref_on_accent = Color32::from_rgb(15, 22, 32);
t.pref_ok = Color32::from_rgb(127, 209, 174);
t.pref_ok_fill = Color32::from_rgb(31, 58, 49);
t.pref_disabled = Color32::from_rgb(138, 148, 163);
t.construction_geom = icon_primary(crate::icon_svg::CONSTRUCTION_PRIMARY[1]);
t.error = Color32::from_rgb(240, 100, 96);
t.sketch_conflict = t.error;
@@ -1,171 +0,0 @@
{
"order": 20,
"provenance": "Original SolidCraft mapping of Gruvbox (MIT palette)",
"format": "solidcraft-theme/1",
"name": "Gruvbox Dark Hard",
"base": "dark",
"colors": {
"app_bar": "#141617",
"toolbar": "#1d2021",
"panel": "#1d2021",
"panel_header": "#3c3836",
"border": "#504945",
"text": "#ebdbb2",
"text_dim": "#a89984",
"accent": "#83a598",
"accent_soft": "#414f4b",
"sketch_accent": "#a1a322",
"error": "#fb4934",
"warning": "#fabd2f",
"icon": "#d5c4a1",
"timeline": "#141617",
"hover": "#46403e",
"sel_face": "#458588",
"sel_edge": "#83a598",
"sel_edge_rim": "#aec4bc",
"sel_profile": "#076678",
"sel_profile_edge": "#458588",
"hover_profile": "#83a59830",
"hover_profile_edge": "#83a598",
"sel_vertex": "#83a598",
"origin_plane": "#fe801950",
"origin_plane_edge": "#d65d0ec8",
"origin_plane_hover": "#83a59896",
"origin_point": "#d5c4a1",
"axis_x": "#fb4934",
"axis_y": "#b8bb26",
"axis_z": "#83a598",
"construction_plane": "#fe801940",
"construction_geom": "#e97926",
"body": "#a89984",
"body_edge": "#141617",
"manipulator": "#83a598",
"preview_add": "#83a598",
"preview_new": "#fabd2f",
"preview_sketch": "#b8bb26",
"preview_cut": "#fb49346e",
"cube_face": "#ebdbb2",
"cube_border": "#665c54",
"cube_text": "#282828",
"cube_hover": "#83a598",
"viewport_top": "#2c2c2c",
"viewport_bottom": "#2c2c2c",
"grid": "#443f3c",
"grid_major": "#504945",
"body_selected": "#83a598",
"sketch": "#83a598",
"sketch_fixed": "#ebdbb2",
"sketch_halo": "#141617",
"sketch_locked": "#b8bb26",
"dimension": "#fabd2f",
"dimension_driven": "#b57614",
"sketch_point": "#ebdbb2",
"sketch_point_free": "#83a598",
"dialog_bg": "#3c3836",
"dialog_border": "#504945",
"chip": "#458588",
"section_cap": "#d65d0e",
"profile_fill": "#83a59828",
"glyph_bg": "#2c2c2c",
"glyph_edge": "#fe614c",
"glyph_text": "#fe614c",
"overlay": "#1d2021f0",
"rubber_band": "#83a598",
"app_bar_text": "#ebdbb2",
"app_bar_hover": "#ebdbb21c",
"timeline_item": "#3c3836",
"timeline_item_error": "#63221f",
"timeline_marker": "#bdae93",
"field": "#141617",
"box_window": "#83a598",
"box_crossing": "#b8bb26",
"sketch_projected": "#d3869b",
"sketch_lost": "#fb4934",
"sketch_construction": "#fe8019",
"sketch_centerline": "#d65d0e",
"bend_up": "#b8bb26",
"bend_down": "#fe8019",
"interference": "#fb4934",
"icons.agent": "#d3869b",
"surface_fill": "#fe9755",
"surface_soft": "#382c20",
"surface_ink": "#fe8019",
"surface_accent": "#e97926",
"mesh_fill": "#e1ab32",
"mesh_soft": "#383323",
"mesh_ink": "#fabd2f",
"mesh_accent": "#c39429",
"form_fill": "#ea9bb0",
"form_soft": "#332c30",
"form_tab_ink": "#d3869b",
"form_accent": "#cf8297",
"sheet_fill": "#93c681",
"sheet_soft": "#2b332c",
"sheet_ink": "#8ec07c",
"render_fill": "#fc9483",
"render_soft": "#382523",
"render_ink": "#fb5d4a",
"render_accent": "#fe614c",
"sketch_soft": "#303322",
"sketch_ink": "#b8bb26",
"form_ink": "#ebdbb2",
"form_dim": "#bdae93",
"form_primary": "#83a598",
"form_error": "#fb4934",
"form_error_fill": "#63221f",
"form_success": "#b8bb26",
"form_success_fill": "#343a28",
"dialog_body": "#1d2021",
"dialog_footer": "#3c3836",
"dialog_rule": "#504945",
"control_fill": "#141617",
"control_border": "#7c6f64",
"dialog_label": "#ebdbb2",
"selected_ink": "#ebdbb2",
"selected_bg": "#414f4b",
"on_accent": "#1d2021"
},
"icon_palette": {
"ink": "#141617",
"line": "#d5c4a1",
"passive-1": "#c5c0b8",
"passive-2": "#9a948d",
"passive-3": "#706b64",
"guide": "#a89984",
"solid": [
"#b8dbcd",
"#9bbeb1",
"#83a598"
],
"surface": [
"#fcc4a3",
"#fe9755",
"#e97926"
],
"mesh": [
"#fbca67",
"#e1ab32",
"#c39429"
],
"form": [
"#fbbfce",
"#ea9bb0",
"#cf8297"
],
"sketch": [
"#d7db50",
"#babd2a",
"#a1a322"
],
"constraint": [
"#fcc2b7",
"#fc9483",
"#fe614c"
],
"construction": [
"#fcc4a3",
"#fe9755",
"#e97926"
]
}
}
@@ -1,172 +0,0 @@
{
"order": 30,
"provenance": "Original SolidCraft mapping of Gruvbox (MIT palette)",
"format": "solidcraft-theme/1",
"name": "Gruvbox Dark Soft",
"base": "dark",
"colors": {
"app_bar": "#1d2021",
"toolbar": "#32302f",
"panel": "#32302f",
"panel_header": "#3c3836",
"border": "#504945",
"text": "#ebdbb2",
"text_dim": "#a89984",
"accent": "#83a598",
"accent_soft": "#4e5954",
"selected_ink": "#ebdbb2",
"sketch_accent": "#a1a322",
"error": "#fb4934",
"warning": "#fabd2f",
"icon": "#d5c4a1",
"timeline": "#1d2021",
"hover": "#46403e",
"sel_face": "#458588",
"sel_edge": "#83a598",
"sel_edge_rim": "#aec4bc",
"sel_profile": "#076678",
"sel_profile_edge": "#458588",
"hover_profile": "#83a59830",
"hover_profile_edge": "#83a598",
"sel_vertex": "#83a598",
"origin_plane": "#fe801950",
"origin_plane_edge": "#d65d0ec8",
"origin_plane_hover": "#83a59896",
"origin_point": "#d5c4a1",
"axis_x": "#fb4934",
"axis_y": "#b8bb26",
"axis_z": "#83a598",
"construction_plane": "#fe801940",
"construction_geom": "#e97926",
"body": "#a89984",
"body_edge": "#1d2021",
"manipulator": "#83a598",
"preview_add": "#83a598",
"preview_new": "#fabd2f",
"preview_sketch": "#b8bb26",
"preview_cut": "#fb49346e",
"cube_face": "#ebdbb2",
"cube_border": "#665c54",
"cube_text": "#282828",
"cube_hover": "#83a598",
"viewport_top": "#373432",
"viewport_bottom": "#373432",
"grid": "#443f3c",
"grid_major": "#504945",
"body_selected": "#83a598",
"sketch": "#83a598",
"sketch_fixed": "#ebdbb2",
"sketch_halo": "#1d2021",
"sketch_locked": "#b8bb26",
"dimension": "#fabd2f",
"dimension_driven": "#b57614",
"sketch_point": "#ebdbb2",
"sketch_point_free": "#83a598",
"dialog_bg": "#3c3836",
"dialog_border": "#504945",
"chip": "#458588",
"section_cap": "#d65d0e",
"profile_fill": "#83a59828",
"glyph_bg": "#373432",
"glyph_edge": "#fe614c",
"glyph_text": "#fe614c",
"overlay": "#32302ff0",
"rubber_band": "#83a598",
"app_bar_text": "#ebdbb2",
"app_bar_hover": "#ebdbb21c",
"timeline_item": "#3c3836",
"timeline_item_error": "#702b28",
"timeline_marker": "#bdae93",
"field": "#1d2021",
"box_window": "#83a598",
"box_crossing": "#b8bb26",
"sketch_projected": "#d3869b",
"sketch_lost": "#fb4934",
"sketch_construction": "#fe8019",
"sketch_centerline": "#d65d0e",
"bend_up": "#b8bb26",
"bend_down": "#fe8019",
"interference": "#fb4934",
"icons.agent": "#d3869b",
"surface_fill": "#fe9755",
"surface_soft": "#4a3a2c",
"surface_ink": "#fe8b2e",
"surface_accent": "#e97926",
"mesh_fill": "#e1ab32",
"mesh_soft": "#4a412f",
"mesh_ink": "#fabd2f",
"mesh_accent": "#c39429",
"form_fill": "#ea9bb0",
"form_soft": "#453a3c",
"form_tab_ink": "#d996a8",
"form_accent": "#cf8297",
"sheet_fill": "#93c681",
"sheet_soft": "#3d4138",
"sheet_ink": "#8ec07c",
"render_fill": "#fc9483",
"render_soft": "#4a3330",
"render_ink": "#fc7e6f",
"render_accent": "#fe614c",
"sketch_soft": "#42412e",
"sketch_ink": "#b8bb26",
"form_ink": "#ebdbb2",
"form_dim": "#bdae93",
"form_primary": "#83a598",
"form_error": "#fb4934",
"form_error_fill": "#702b28",
"form_success": "#b8bb26",
"form_success_fill": "#343a28",
"dialog_body": "#32302f",
"dialog_footer": "#3c3836",
"dialog_rule": "#504945",
"control_fill": "#1d2021",
"control_border": "#7c6f64",
"dialog_label": "#ebdbb2",
"selected_ink": "#ebdbb2",
"selected_bg": "#4e5954",
"on_accent": "#1d2021"
},
"icon_palette": {
"ink": "#1d2021",
"line": "#d5c4a1",
"passive-1": "#c5c0b8",
"passive-2": "#9a948d",
"passive-3": "#706b64",
"guide": "#a89984",
"solid": [
"#b8dbcd",
"#9bbeb1",
"#83a598"
],
"surface": [
"#fcc4a3",
"#fe9755",
"#e97926"
],
"mesh": [
"#fbca67",
"#e1ab32",
"#c39429"
],
"form": [
"#fbbfce",
"#ea9bb0",
"#cf8297"
],
"sketch": [
"#d7db50",
"#babd2a",
"#a1a322"
],
"constraint": [
"#fcc2b7",
"#fc9483",
"#fe614c"
],
"construction": [
"#fcc4a3",
"#fe9755",
"#e97926"
]
}
}
+120 -2
View File
@@ -122,7 +122,6 @@
"control_fill": "#1d2021",
"control_border": "#7c6f64",
"dialog_label": "#ebdbb2",
"selected_ink": "#ebdbb2",
"selected_bg": "#48544f",
"on_accent": "#1d2021"
},
@@ -168,5 +167,124 @@
"#fe9755",
"#e97926"
]
}
},
"options": [
{
"id": "contrast",
"type": "choice",
"default": "standard",
"label": {
"de": "Kontrast",
"en": "Contrast",
"ja": "コントラスト",
"ko": "대비",
"zh": "对比度"
},
"help": {
"de": "Wähle die weiche, normale oder harte Gruvbox-Palette.",
"en": "Choose the soft, standard or hard Gruvbox palette.",
"ja": "Gruvboxのソフト・標準・ハードのパレットを選びます。",
"ko": "Gruvbox의 부드러운, 표준 또는 강한 팔레트를 선택합니다.",
"zh": "选择柔和、标准或强对比的 Gruvbox 配色。"
},
"values": [
{
"id": "soft",
"label": {
"de": "Weich",
"en": "Soft",
"ja": "ソフト",
"ko": "부드럽게",
"zh": "柔和"
}
},
{
"id": "standard",
"label": {
"de": "Standard",
"en": "Standard",
"ja": "標準",
"ko": "표준",
"zh": "标准"
}
},
{
"id": "hard",
"label": {
"de": "Hart",
"en": "Hard",
"ja": "ハード",
"ko": "강하게",
"zh": "强对比"
}
}
]
}
],
"overlays": [
{
"when": {
"opt": "contrast",
"eq": "soft"
},
"colors": {
"toolbar": "#32302f",
"panel": "#32302f",
"accent_soft": "#4e5954",
"viewport_top": "#373432",
"viewport_bottom": "#373432",
"glyph_bg": "#373432",
"overlay": "#32302ff0",
"timeline_item_error": "#702b28",
"surface_soft": "#4a3a2c",
"surface_ink": "#fe8b2e",
"mesh_soft": "#4a412f",
"form_soft": "#453a3c",
"form_tab_ink": "#d996a8",
"sheet_soft": "#3d4138",
"render_soft": "#4a3330",
"render_ink": "#fc7e6f",
"sketch_soft": "#42412e",
"form_error_fill": "#702b28",
"dialog_body": "#32302f",
"selected_bg": "#4e5954"
}
},
{
"when": {
"opt": "contrast",
"eq": "hard"
},
"colors": {
"app_bar": "#141617",
"toolbar": "#1d2021",
"panel": "#1d2021",
"accent_soft": "#414f4b",
"timeline": "#141617",
"body_edge": "#141617",
"viewport_top": "#2c2c2c",
"viewport_bottom": "#2c2c2c",
"sketch_halo": "#141617",
"glyph_bg": "#2c2c2c",
"overlay": "#1d2021f0",
"timeline_item_error": "#63221f",
"field": "#141617",
"surface_soft": "#382c20",
"mesh_soft": "#383323",
"form_soft": "#332c30",
"form_tab_ink": "#d3869b",
"sheet_soft": "#2b332c",
"render_soft": "#382523",
"render_ink": "#fb5d4a",
"sketch_soft": "#303322",
"form_error_fill": "#63221f",
"dialog_body": "#1d2021",
"control_fill": "#141617",
"selected_bg": "#414f4b"
},
"icon_palette": {
"ink": "#141617"
}
}
]
}
@@ -1,171 +0,0 @@
{
"order": 50,
"provenance": "Original SolidCraft mapping of Gruvbox (MIT palette)",
"format": "solidcraft-theme/1",
"name": "Gruvbox Light Hard",
"base": "light",
"colors": {
"app_bar": "#3c3836",
"toolbar": "#f9f5d7",
"panel": "#f9f5d7",
"panel_header": "#ebdbb2",
"border": "#d5c4a1",
"text": "#3c3836",
"text_dim": "#7c6f64",
"accent": "#076678",
"accent_soft": "#c9d8c4",
"sketch_accent": "#625e15",
"error": "#9d0006",
"warning": "#b57614",
"icon": "#504945",
"timeline": "#ebdbb2",
"hover": "#f1e5c1",
"sel_face": "#458588",
"sel_edge": "#076678",
"sel_edge_rim": "#83a598",
"sel_profile": "#076678",
"sel_profile_edge": "#458588",
"hover_profile": "#45858830",
"hover_profile_edge": "#458588",
"sel_vertex": "#076678",
"origin_plane": "#fe80195e",
"origin_plane_edge": "#d65d0ec8",
"origin_plane_hover": "#45858896",
"origin_point": "#d5c4a1",
"axis_x": "#cc241d",
"axis_y": "#98971a",
"axis_z": "#458588",
"construction_plane": "#fe801946",
"construction_geom": "#9b3407",
"body": "#bdae93",
"body_edge": "#3c3836",
"manipulator": "#076678",
"preview_add": "#458588",
"preview_new": "#d79921",
"preview_sketch": "#98971a",
"preview_cut": "#cc241d6e",
"cube_face": "#fbf1c7",
"cube_border": "#7c6f64",
"cube_text": "#3c3836",
"cube_hover": "#83a598",
"viewport_top": "#fbf8e3",
"viewport_bottom": "#ebdbb2",
"grid": "#d5c4a1",
"grid_major": "#bdae93",
"body_selected": "#83a598",
"sketch": "#076678",
"sketch_fixed": "#282828",
"sketch_halo": "#fbf8e3",
"sketch_locked": "#79740e",
"dimension": "#1f5c40",
"dimension_driven": "#4f7d64",
"sketch_point": "#282828",
"sketch_point_free": "#076678",
"dialog_bg": "#f9f5d7",
"dialog_border": "#d5c4a1",
"chip": "#458588",
"section_cap": "#d65d0e",
"profile_fill": "#fabd2f46",
"glyph_bg": "#fcfaeb",
"glyph_edge": "#a91714",
"glyph_text": "#a91714",
"overlay": "#f9f5d7eb",
"rubber_band": "#076678",
"app_bar_text": "#fbf1c7",
"app_bar_hover": "#fbf1c71c",
"timeline_item": "#f9f5d7",
"timeline_item_error": "#f0cbb2",
"timeline_marker": "#504945",
"field": "#fcfaeb",
"box_window": "#076678",
"box_crossing": "#79740e",
"sketch_projected": "#8f3f71",
"sketch_lost": "#9d0006",
"sketch_construction": "#af3a03",
"sketch_centerline": "#d65d0e",
"bend_up": "#79740e",
"bend_down": "#af3a03",
"interference": "#cc241d",
"icons.agent": "#8f3f71",
"surface_fill": "#df663c",
"surface_soft": "#f3e6c6",
"surface_ink": "#af3a03",
"surface_accent": "#9b3407",
"mesh_fill": "#c08024",
"mesh_soft": "#f4ebc7",
"mesh_ink": "#915e10",
"mesh_accent": "#7b5112",
"form_fill": "#c46fa2",
"form_soft": "#f1e6cf",
"form_tab_ink": "#8f3f71",
"form_accent": "#893a6c",
"sheet_fill": "#659f7a",
"sheet_soft": "#eaebcd",
"sheet_ink": "#3d7252",
"render_fill": "#e85a4d",
"render_soft": "#f2e1c6",
"render_ink": "#9d0006",
"render_accent": "#a91714",
"sketch_soft": "#efebc7",
"sketch_ink": "#6e6a0d",
"form_ink": "#3c3836",
"form_dim": "#665c54",
"form_primary": "#076678",
"form_error": "#9d0006",
"form_error_fill": "#f0cbb2",
"form_success": "#427b58",
"form_success_fill": "#dae3b6",
"dialog_body": "#f9f5d7",
"dialog_footer": "#ebdbb2",
"dialog_rule": "#d5c4a1",
"control_fill": "#fcfaeb",
"control_border": "#a89984",
"dialog_label": "#3c3836",
"selected_ink": "#3c3836",
"selected_bg": "#c9d8c4",
"on_accent": "#fbf1c7"
},
"icon_palette": {
"ink": "#3c3836",
"line": "#504945",
"passive-1": "#e9e3df",
"passive-2": "#b8b3af",
"passive-3": "#8a8581",
"guide": "#7c6f64",
"solid": [
"#87d5e9",
"#4e9caf",
"#076678"
],
"surface": [
"#feb299",
"#df663c",
"#9b3407"
],
"mesh": [
"#fcb864",
"#c08024",
"#7b5112"
],
"form": [
"#fbaad9",
"#c46fa2",
"#893a6c"
],
"sketch": [
"#d0cc73",
"#989439",
"#625e15"
],
"constraint": [
"#fab3a8",
"#e85a4d",
"#a91714"
],
"construction": [
"#feb299",
"#df663c",
"#9b3407"
]
}
}
@@ -1,171 +0,0 @@
{
"order": 60,
"provenance": "Original SolidCraft mapping of Gruvbox (MIT palette)",
"format": "solidcraft-theme/1",
"name": "Gruvbox Light Soft",
"base": "light",
"colors": {
"app_bar": "#3c3836",
"toolbar": "#f2e5bc",
"panel": "#f2e5bc",
"panel_header": "#ebdbb2",
"border": "#d5c4a1",
"text": "#3c3836",
"text_dim": "#7c6f64",
"accent": "#076678",
"accent_soft": "#c3ccae",
"sketch_accent": "#625e15",
"error": "#9d0006",
"warning": "#b57614",
"icon": "#504945",
"timeline": "#ebdbb2",
"hover": "#eedfb6",
"sel_face": "#458588",
"sel_edge": "#076678",
"sel_edge_rim": "#83a598",
"sel_profile": "#076678",
"sel_profile_edge": "#458588",
"hover_profile": "#45858830",
"hover_profile_edge": "#458588",
"sel_vertex": "#076678",
"origin_plane": "#fe80195e",
"origin_plane_edge": "#d65d0ec8",
"origin_plane_hover": "#45858896",
"origin_point": "#d5c4a1",
"axis_x": "#cc241d",
"axis_y": "#98971a",
"axis_z": "#458588",
"construction_plane": "#fe801946",
"construction_geom": "#9b3407",
"body": "#bdae93",
"body_edge": "#3c3836",
"manipulator": "#076678",
"preview_add": "#458588",
"preview_new": "#d79921",
"preview_sketch": "#98971a",
"preview_cut": "#cc241d6e",
"cube_face": "#fbf1c7",
"cube_border": "#7c6f64",
"cube_text": "#3c3836",
"cube_hover": "#83a598",
"viewport_top": "#f6edd0",
"viewport_bottom": "#ebdbb2",
"grid": "#d5c4a1",
"grid_major": "#bdae93",
"body_selected": "#83a598",
"sketch": "#076678",
"sketch_fixed": "#282828",
"sketch_halo": "#f6edd0",
"sketch_locked": "#79740e",
"dimension": "#1f5c40",
"dimension_driven": "#4f7d64",
"sketch_point": "#282828",
"sketch_point_free": "#076678",
"dialog_bg": "#f2e5bc",
"dialog_border": "#d5c4a1",
"chip": "#458588",
"section_cap": "#d65d0e",
"profile_fill": "#fabd2f46",
"glyph_bg": "#f8f2de",
"glyph_edge": "#a91714",
"glyph_text": "#a91714",
"overlay": "#f2e5bceb",
"rubber_band": "#076678",
"app_bar_text": "#fbf1c7",
"app_bar_hover": "#fbf1c71c",
"timeline_item": "#f2e5bc",
"timeline_item_error": "#eabe9c",
"timeline_marker": "#504945",
"field": "#f8f2de",
"box_window": "#076678",
"box_crossing": "#79740e",
"sketch_projected": "#8f3f71",
"sketch_lost": "#9d0006",
"sketch_construction": "#af3a03",
"sketch_centerline": "#d65d0e",
"bend_up": "#79740e",
"bend_down": "#af3a03",
"interference": "#cc241d",
"icons.agent": "#8f3f71",
"surface_fill": "#df663c",
"surface_soft": "#edd7ad",
"surface_ink": "#a83803",
"surface_accent": "#9b3407",
"mesh_fill": "#c08024",
"mesh_soft": "#eddcaf",
"mesh_ink": "#84560f",
"mesh_accent": "#7b5112",
"form_fill": "#c46fa2",
"form_soft": "#ead8b6",
"form_tab_ink": "#8f3f71",
"form_accent": "#893a6c",
"sheet_fill": "#659f7a",
"sheet_soft": "#e4ddb4",
"sheet_ink": "#38694b",
"render_fill": "#e85a4d",
"render_soft": "#ebd3ad",
"render_ink": "#9d0006",
"render_accent": "#a91714",
"sketch_soft": "#e8dcae",
"sketch_ink": "#66610c",
"form_ink": "#3c3836",
"form_dim": "#665c54",
"form_primary": "#076678",
"form_error": "#9d0006",
"form_error_fill": "#eabe9c",
"form_success": "#427b58",
"form_success_fill": "#dae3b6",
"dialog_body": "#f2e5bc",
"dialog_footer": "#ebdbb2",
"dialog_rule": "#d5c4a1",
"control_fill": "#f8f2de",
"control_border": "#a89984",
"dialog_label": "#3c3836",
"selected_ink": "#3c3836",
"selected_bg": "#c3ccae",
"on_accent": "#fbf1c7"
},
"icon_palette": {
"ink": "#3c3836",
"line": "#504945",
"passive-1": "#e9e3df",
"passive-2": "#b8b3af",
"passive-3": "#8a8581",
"guide": "#7c6f64",
"solid": [
"#87d5e9",
"#4e9caf",
"#076678"
],
"surface": [
"#feb299",
"#df663c",
"#9b3407"
],
"mesh": [
"#fcb864",
"#c08024",
"#7b5112"
],
"form": [
"#fbaad9",
"#c46fa2",
"#893a6c"
],
"sketch": [
"#d0cc73",
"#989439",
"#625e15"
],
"constraint": [
"#fab3a8",
"#e85a4d",
"#a91714"
],
"construction": [
"#feb299",
"#df663c",
"#9b3407"
]
}
}
+123 -1
View File
@@ -167,5 +167,127 @@
"#df663c",
"#9b3407"
]
}
},
"options": [
{
"id": "contrast",
"type": "choice",
"default": "standard",
"label": {
"de": "Kontrast",
"en": "Contrast",
"ja": "コントラスト",
"ko": "대비",
"zh": "对比度"
},
"help": {
"de": "Wähle die weiche, normale oder harte Gruvbox-Palette.",
"en": "Choose the soft, standard or hard Gruvbox palette.",
"ja": "Gruvboxのソフト・標準・ハードのパレットを選びます。",
"ko": "Gruvbox의 부드러운, 표준 또는 강한 팔레트를 선택합니다.",
"zh": "选择柔和、标准或强对比的 Gruvbox 配色。"
},
"values": [
{
"id": "soft",
"label": {
"de": "Weich",
"en": "Soft",
"ja": "ソフト",
"ko": "부드럽게",
"zh": "柔和"
}
},
{
"id": "standard",
"label": {
"de": "Standard",
"en": "Standard",
"ja": "標準",
"ko": "표준",
"zh": "标准"
}
},
{
"id": "hard",
"label": {
"de": "Hart",
"en": "Hard",
"ja": "ハード",
"ko": "강하게",
"zh": "强对比"
}
}
]
}
],
"overlays": [
{
"when": {
"opt": "contrast",
"eq": "soft"
},
"colors": {
"toolbar": "#f2e5bc",
"panel": "#f2e5bc",
"accent_soft": "#c3ccae",
"hover": "#eedfb6",
"viewport_top": "#f6edd0",
"sketch_halo": "#f6edd0",
"dialog_bg": "#f2e5bc",
"glyph_bg": "#f8f2de",
"overlay": "#f2e5bceb",
"timeline_item": "#f2e5bc",
"timeline_item_error": "#eabe9c",
"field": "#f8f2de",
"surface_soft": "#edd7ad",
"surface_ink": "#a83803",
"mesh_soft": "#eddcaf",
"mesh_ink": "#84560f",
"form_soft": "#ead8b6",
"sheet_soft": "#e4ddb4",
"sheet_ink": "#38694b",
"render_soft": "#ebd3ad",
"sketch_soft": "#e8dcae",
"sketch_ink": "#66610c",
"form_error_fill": "#eabe9c",
"dialog_body": "#f2e5bc",
"control_fill": "#f8f2de",
"selected_bg": "#c3ccae"
}
},
{
"when": {
"opt": "contrast",
"eq": "hard"
},
"colors": {
"toolbar": "#f9f5d7",
"panel": "#f9f5d7",
"accent_soft": "#c9d8c4",
"hover": "#f1e5c1",
"viewport_top": "#fbf8e3",
"sketch_halo": "#fbf8e3",
"dialog_bg": "#f9f5d7",
"glyph_bg": "#fcfaeb",
"overlay": "#f9f5d7eb",
"timeline_item": "#f9f5d7",
"timeline_item_error": "#f0cbb2",
"field": "#fcfaeb",
"surface_soft": "#f3e6c6",
"mesh_soft": "#f4ebc7",
"mesh_ink": "#915e10",
"form_soft": "#f1e6cf",
"sheet_soft": "#eaebcd",
"sheet_ink": "#3d7252",
"render_soft": "#f2e1c6",
"sketch_soft": "#efebc7",
"sketch_ink": "#6e6a0d",
"form_error_fill": "#f0cbb2",
"dialog_body": "#f9f5d7",
"control_fill": "#fcfaeb",
"selected_bg": "#c9d8c4"
}
}
]
}
+26 -2
View File
@@ -202,12 +202,16 @@ fn map_plane_ref(m: &Mat, p: &mut PlaneRef) {
}
// Named origin planes and construction planes are the component's own.
PlaneRef::Origin { .. } | PlaneRef::Construction { .. } => {}
PlaneRef::Tangent { face, at } => {
PlaneRef::Tangent { face, at, reference, .. } => {
*at = apply_point(m, *at);
map_geo_ref(m, face);
if let Some(r) = reference {
map_geo_ref(m, r);
}
}
PlaneRef::Midplane { .. }
| PlaneRef::TwoEdges { .. }
| PlaneRef::AxisPoint { .. }
| PlaneRef::ThreePoints { .. }
| PlaneRef::AlongPath { .. }
| PlaneRef::Perpendicular { .. } => {
@@ -418,6 +422,19 @@ impl Document {
false
}
/// Is `c` (or one of its ancestors) marked out of the History bar (#10393)? The root (0)
/// never is: its own features always show.
pub fn component_history_hidden(&self, mut c: u64) -> bool {
for _ in 0..1000 {
match self.components.iter().find(|x| x.id == c) {
Some(x) if x.history_hidden => return true,
Some(x) if x.parent != 0 => c = x.parent,
_ => return false,
}
}
false
}
/// Would putting a placement of `component` into `parent` put it inside itself: is `parent`
/// the component, or inside it, created in it or placed in it at any depth? Placements can sit
/// apart from where their component was created ([`Self::component_within`] follows only
@@ -456,7 +473,14 @@ impl Document {
let id = self.next_id.max(1);
self.next_id = id.checked_add(1).ok_or_else(|| DocError::Invalid("too many items in the design".into()))?;
let cname = self.components.iter().find(|c| c.id == component).map(|c| c.name.clone()).unwrap_or_default();
let k = self.occurrences.iter().filter(|o| o.component == component).count() + 1;
// The next number, or, when an occurrence already has that name (one before it was
// deleted, or of another component of that name), the first number none has (#9738).
let next = self.occurrences.iter().filter(|o| o.component == component).count() + 1;
let free = |k: &usize| {
let name = format!("{cname}:{k}");
!self.occurrences.iter().any(|o| o.name == name)
};
let k = std::iter::once(next).chain(1..).find(free).unwrap_or(next);
self.occurrences.push(crate::Occurrence { id, component, parent, name: format!("{cname}:{k}"), transform, grounded: false });
Ok(id)
}
+4 -2
View File
@@ -15,8 +15,10 @@ pub struct Canvas {
pub name: String,
/// `png` or `jpeg`.
pub format: String,
/// The image file, base64.
pub data: String,
/// The image file, base64. Shared rather than owned: every edit clones the document (the undo
/// history keeps the old one), and an image of up to 16 MiB copied into each of the 200 undo
/// states would hold gigabytes. Serialized as the same JSON string as before.
pub data: std::sync::Arc<str>,
/// Pixel size of the image.
pub pixels: [u32; 2],
pub plane: PlaneRef,
+7 -2
View File
@@ -316,7 +316,7 @@ fn checked_plane(p: &PlaneRef, depth: usize) -> crate::Result<()> {
checked_geo(g, depth + 1)?;
}
}
PlaneRef::Midplane { a, b } | PlaneRef::TwoEdges { a, b } => {
PlaneRef::Midplane { a, b } | PlaneRef::TwoEdges { a, b } | PlaneRef::AxisPoint { axis: a, point: b } => {
checked_geo(a, depth + 1)?;
checked_geo(b, depth + 1)?;
}
@@ -333,7 +333,12 @@ fn checked_plane(p: &PlaneRef, depth: usize) -> crate::Result<()> {
checked_geo(b, depth + 1)?;
checked_geo(c, depth + 1)?;
}
PlaneRef::Tangent { face, .. } => checked_geo(face, depth + 1)?,
PlaneRef::Tangent { face, reference, .. } => {
checked_geo(face, depth + 1)?;
if let Some(r) = reference {
checked_geo(r, depth + 1)?;
}
}
PlaneRef::AlongPath { path, .. } => checked_geo(path, depth + 1)?,
_ => {}
}
+113 -4
View File
@@ -116,6 +116,11 @@ pub struct Construct {
pub feature: u64,
pub name: String,
pub geom: ConstructGeom,
/// The bodies it was built from, when every pick it reads lies on a body
/// ([`source_bodies`]): a later Move of all of them carries it along (#10127). Empty when
/// it also reads something fixed (a point, a plane, a sketch), which keeps it in place.
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub bodies: Vec<String>,
}
/// Everything a reference needs to be resolved.
@@ -497,6 +502,48 @@ fn surface_normal(s: FaceSurface, p: Vec3) -> Option<(Vec3, Vec3)> {
}
}
/// A point over `s` where the face turns towards `towards` (a reference plane's normal): around
/// the axis of a cylinder, cone or torus, turned `angle` about it; straight at it on a sphere. Of
/// the two sides, the one `at` is on (#8822).
fn facing(s: FaceSurface, at: Vec3, towards: Vec3, angle: f64) -> Result<Vec3> {
let side = |d: Vec3, w: Vec3| if d.dot(w) < 0.0 { d * -1.0 } else { d };
let around = |axis: Vec3, w: Vec3| -> Result<(Vec3, f64)> {
let d = (towards - axis * towards.dot(axis))
.normalized()
.ok_or_else(|| bad("the reference is square to the face's axis: every plane tangent to the face meets it at a right angle"))?;
let d = d * angle.cos() + axis.cross(d) * angle.sin();
let r = w - axis * w.dot(axis);
Ok((side(d, r), r.len()))
};
if !angle.is_finite() {
return Err(bad("the angle is not a number"));
}
Ok(match s {
FaceSurface::Plane { .. } => at,
FaceSurface::Cylinder { origin, axis, radius } => {
let w = at - origin;
let (d, _) = around(axis.into(), w)?;
origin + axis * w.dot(axis) + d * radius
}
FaceSurface::Cone { apex, axis, .. } => {
let w = at - apex;
let (d, r) = around(axis.into(), w)?;
apex + axis * w.dot(axis) + d * r.max(1e-6)
}
// On the outer equator, where the tube faces away from the axis.
FaceSurface::Torus { center, axis, major, minor } => {
let (d, _) = around(axis.into(), at - center)?;
center + d * (major + minor)
}
FaceSurface::Sphere { center, radius } => {
if angle.abs() > 1e-12 {
return Err(bad("a sphere has no axis to turn the plane about: leave the angle out"));
}
center + side(towards, at - center) * radius
}
})
}
fn face_surface_at(ctx: &Ctx, g: &GeoRef) -> Result<(FaceSurface, Vec3)> {
match g {
GeoRef::Face { at, name } => {
@@ -538,6 +585,46 @@ fn line_line(a: (Vec3, Vec3), b: (Vec3, Vec3)) -> Option<Vec3> {
Some(((p + u * s) + (q + v * t)) * 0.5)
}
/// The bodies a construction built from `refs` lies on: each face, edge and vertex pick's body,
/// and the bodies of the constructions it is built from. Empty when any pick is not on a body
/// (a fixed point, the origin, a plane, a world axis, a sketch) or is not found: such a
/// construction is held by something a move of the bodies leaves where it is, so it stays.
pub(crate) fn source_bodies(ctx: &Ctx, refs: &[&GeoRef]) -> Vec<String> {
let mut out: Vec<String> = Vec::new();
for g in refs {
let found: Vec<String> = match g {
GeoRef::Face { at, name } => face_of(ctx.st, *at, name).map(|(b, ..)| vec![b.definition_name().to_string()]).unwrap_or_default(),
GeoRef::Edge { at, name } => edge_pick(ctx.st, *at, name).map(|(b, ..)| vec![b.definition_name().to_string()]).unwrap_or_default(),
GeoRef::Vertex { .. } => {
point(ctx, g).ok().and_then(|p| vertex_body(ctx.st, p)).map(|b| vec![b.definition_name().to_string()]).unwrap_or_default()
}
GeoRef::Axis { name } | GeoRef::ConstructPoint { name } => {
ctx.st.construct.iter().find(|c| c.name.as_str() == AsRef::<str>::as_ref(name)).map(|c| c.bodies.clone()).unwrap_or_default()
}
_ => Vec::new(),
};
if found.is_empty() {
return Vec::new();
}
for b in found {
if !out.contains(&b) {
out.push(b);
}
}
}
out
}
/// The body with a vertex (an end of one of its edges) at `p`.
fn vertex_body(st: &ModelState, p: Vec3) -> Option<&ModelBody> {
bodies(st).find(|b| {
let tol = (b.body.size() * 1e-3).max(1e-3);
b.body
.edges(tol)
.is_ok_and(|edges| edges.iter().flat_map(|e| [e.points.first(), e.points.last()]).flatten().any(|v| v.dist(p) <= 1e-6 * (1.0 + p.len())))
})
}
pub(crate) fn resolve_axis(ctx: &Ctx, d: &AxisDef) -> Result<(Vec3, Vec3)> {
match d {
AxisDef::ThroughFace { face } => line(ctx, face),
@@ -620,6 +707,16 @@ pub(crate) fn resolve_geo_plane(ctx: &Ctx, p: &PlaneRef) -> Result<Plane> {
};
Plane::new(o1, d1, n.cross(d1)).ok_or_else(degenerate)
}
PlaneRef::AxisPoint { axis, point: at } => {
let (origin, dir) = line(ctx, axis)?;
let dir = dir.normalized().ok_or_else(|| bad("the axis has no direction"))?;
let delta = point(ctx, at)? - origin;
let across = delta - dir * delta.dot(dir);
if !across.len().is_finite() || across.len() < 1e-9 {
return Err(bad("the point is on the axis: pick a point off the axis to define a unique plane"));
}
Plane::new(origin, dir, across).ok_or_else(degenerate)
}
PlaneRef::ThreePoints { a, b, c } => {
let (pa, pb, pc) = (point(ctx, a)?, point(ctx, b)?, point(ctx, c)?);
if (pb - pa).cross(pc - pa).len() < 1e-9 {
@@ -627,9 +724,17 @@ pub(crate) fn resolve_geo_plane(ctx: &Ctx, p: &PlaneRef) -> Result<Plane> {
}
Plane::new(pa, pb - pa, pc - pa).ok_or_else(degenerate)
}
PlaneRef::Tangent { face, at } => {
PlaneRef::Tangent { face, at, reference, angle } => {
let (s, _) = face_surface_at(ctx, face)?;
let (on, n) = surface_normal(s, *at).ok_or_else(|| bad("the point is on the face's axis"))?;
let at = match reference {
Some(r) => {
let towards = plane(ctx, r)?.normal().normalized().ok_or_else(degenerate)?;
let angle = angle.as_ref().map(|a| Document::eval_in(ctx.vals, a, Kind::Angle)).transpose()?.unwrap_or(0.0);
facing(s, *at, towards, angle)?
}
None => *at,
};
let (on, n) = surface_normal(s, at).ok_or_else(|| bad("the point is on the face's axis"))?;
Plane::from_normal(on, n).ok_or_else(degenerate)
}
PlaneRef::Perpendicular { plane: base, line: l } => {
@@ -768,10 +873,14 @@ impl PlaneRef {
/// The references of a plane built from model geometry.
pub fn refs_mut(&mut self) -> Vec<&mut GeoRef> {
match self {
PlaneRef::Midplane { a, b } | PlaneRef::TwoEdges { a, b } => vec![a.as_mut(), b.as_mut()],
PlaneRef::Midplane { a, b } | PlaneRef::TwoEdges { a, b } | PlaneRef::AxisPoint { axis: a, point: b } => vec![a.as_mut(), b.as_mut()],
PlaneRef::Perpendicular { plane, line } => vec![plane.as_mut(), line.as_mut()],
PlaneRef::ThreePoints { a, b, c } => vec![a.as_mut(), b.as_mut(), c.as_mut()],
PlaneRef::Tangent { face, .. } => vec![face.as_mut()],
PlaneRef::Tangent { face, reference, .. } => {
let mut v = vec![face.as_mut()];
v.extend(reference.as_deref_mut());
v
}
PlaneRef::AlongPath { path, .. } => vec![path.as_mut()],
PlaneRef::ThroughPoint { base, point } => {
let mut refs = base.refs_mut();
+284 -13
View File
@@ -97,10 +97,21 @@ pub enum PlaneRef {
Midplane { a: Box<GeoRef>, b: Box<GeoRef> },
/// Through two straight edges (lines) that lie in one plane.
TwoEdges { a: Box<GeoRef>, b: Box<GeoRef> },
/// Through a line (axis) and a point not on that line.
AxisPoint { axis: Box<GeoRef>, point: Box<GeoRef> },
/// Through three points.
ThreePoints { a: Box<GeoRef>, b: Box<GeoRef>, c: Box<GeoRef> },
/// Tangent to a face (cylinder, cone, sphere, torus) where the point `at` lies over it.
Tangent { face: Box<GeoRef>, at: Vec3 },
/// Tangent to a face (cylinder, cone, sphere, torus) where the point `at` lies over it. With
/// a `reference` (a plane or planar face), it touches where the face turns towards the
/// reference instead, turned by `angle` about the face's axis, on the side of `at` (#8822).
Tangent {
face: Box<GeoRef>,
at: Vec3,
#[serde(default, skip_serializing_if = "Option::is_none")]
reference: Option<Box<GeoRef>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
angle: Option<Expr>,
},
/// Square to an edge or sketch curve, a fraction `t` (expression, 0…1) of the way along it.
AlongPath { path: Box<GeoRef>, t: Expr },
/// Through a straight edge (or line, axis) and square to a plane (or planar face).
@@ -1083,6 +1094,11 @@ pub enum FeatureKind {
/// bodies follow. Replaces `to`.
#[serde(default, skip_serializing_if = "Option::is_none")]
to_plane: Option<PlaneRef>,
/// Point-to-point alignment: the directions the offset moves along (the chosen world
/// X/Y/Z axes in the frame of the bodies being moved). `None`: all three axes, the
/// offset in full.
#[serde(default, skip_serializing_if = "Option::is_none")]
axes: Option<Vec<Dir>>,
},
/// A helical coil: a circular or square section swept `turns` times about `axis`, rising
/// `pitch` per turn, on a helix of `diameter` (the section's centre, or its inside or outside).
@@ -1201,9 +1217,10 @@ pub enum FeatureKind {
body: Option<BodyName>,
},
/// A perforation field (#732): round holes of `diameter` on a staggered (60°) or square grid of `pitch` over the
/// whole flat sheet, kept `margin` (default: the diameter) clear of its edges, cut-outs and bend zones. Stored like
/// a cosmetic thread: the holes go to the flat pattern, the DXF and the measured volume, not into the B-rep, so a
/// panel can carry tens of thousands of them.
/// whole flat sheet, or inside the closed profiles of `sketch` when it is given, kept `margin` (default: the
/// diameter) clear of its edges, cut-outs, bend zones and the outline. Stored like a cosmetic thread: the holes go
/// to the flat pattern, the DXF and the measured volume, not into the B-rep, so a panel can carry tens of thousands
/// of them.
SheetPerforate {
#[walk(length = "Diameter")]
diameter: Expr,
@@ -1216,6 +1233,13 @@ pub enum FeatureKind {
pattern: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
body: Option<BodyName>,
/// The field's outline: a sketch on a face of the sheet. None: the whole sheet.
#[serde(default, skip_serializing_if = "Option::is_none")]
sketch: Option<SketchId>,
/// Which of the outline sketch's profiles bound the field. None: all of them.
#[serde(default, skip_serializing_if = "Option::is_none")]
#[walk(profiles_of = sketch)]
profiles: Option<ProfileSel>,
},
/// Fold a sheet along a line on its base face: a sketch line (followed when the sketch
/// changes), else the points `a`, `b`.
@@ -2014,7 +2038,7 @@ fn fair_keep_edges() -> bool {
/// Triangles of one imported mesh body (millimetres). The arrays are shared by clones: every
/// edit keeps the design as it was for undo, and a scanned part's triangles (hundreds of
/// megabytes) are not copied for that.
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct MeshData {
pub name: String,
/// x, y, z per vertex.
@@ -2025,6 +2049,20 @@ pub struct MeshData {
pub color: Option<[f32; 3]>,
}
/// The same mesh: shared arrays are the same without reading them, so the dirty check and
/// autosave after an edit elsewhere do not walk a scan's millions of coordinates. Arrays that
/// are not shared compare value by value, as before. Coordinates are finite (a design that
/// holds others does not load), so the shortcut only skips work.
impl PartialEq for MeshData {
fn eq(&self, other: &Self) -> bool {
use std::sync::Arc;
self.name == other.name
&& self.color == other.color
&& (Arc::ptr_eq(&self.triangles, &other.triangles) || self.triangles == other.triangles)
&& (Arc::ptr_eq(&self.positions, &other.positions) || self.positions == other.positions)
}
}
/// Points of a sketch, by id.
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, solidcraft_derive::Walk)]
pub struct SketchPoints {
@@ -2062,6 +2100,11 @@ pub struct Component {
/// Free text properties of the definition (material grade, finish, supplier…), by name.
#[serde(default, skip_serializing_if = "std::collections::BTreeMap::is_empty")]
pub properties: std::collections::BTreeMap<String, String>,
/// Keeps this component's features (and its children's) out of the History bar (#10393).
/// The features still rebuild and the component still shows in the Browser; imported copies
/// whose features only exist to rebuild the copy can carry this flag.
#[serde(default, skip_serializing_if = "std::ops::Not::not")]
pub history_hidden: bool,
}
/// One loft section: profiles of a sketch.
@@ -2197,7 +2240,11 @@ pub enum PatternKind {
reversed2: bool,
},
Circular {
origin: Position,
/// A point on the axis the copies turn about: numbers, or length expressions it follows
/// as the parameters change (#10852).
#[serde(with = "point_expr")]
#[walk(placement)]
origin: PointExpr,
axis: Dir,
#[walk(unitless = "Quantity")]
count: Expr,
@@ -2407,6 +2454,167 @@ impl FeatureKind {
FeatureKind::MeshConvert { .. } => "MeshConvertFeature",
}
}
/// Design-file variant key (e.g. `"extrude"`, `"box"`, `"sheet_flange"`).
pub fn kind_key(&self) -> &'static str {
match self {
FeatureKind::BodyTransfer { .. } => "body_transfer",
FeatureKind::Sketch { .. } => "sketch",
FeatureKind::Extrude { .. } => "extrude",
FeatureKind::Revolve { .. } => "revolve",
FeatureKind::Fillet { .. } => "fillet",
FeatureKind::Chamfer { .. } => "chamfer",
FeatureKind::Box { .. } => "box",
FeatureKind::Cylinder { .. } => "cylinder",
FeatureKind::Sphere { .. } => "sphere",
FeatureKind::Torus { .. } => "torus",
FeatureKind::Cone { .. } => "cone",
FeatureKind::Combine { .. } => "combine",
FeatureKind::Pattern { .. } => "pattern",
FeatureKind::Mirror { .. } => "mirror",
FeatureKind::Hole { .. } => "hole",
FeatureKind::Thread { .. } => "thread",
FeatureKind::Loft { .. } => "loft",
FeatureKind::Sweep { .. } => "sweep",
FeatureKind::Shell { .. } => "shell",
FeatureKind::Draft { .. } => "draft",
FeatureKind::ConstructionPlane { .. } => "construction_plane",
FeatureKind::Split { .. } => "split",
FeatureKind::ConstructionAxis { .. } => "construction_axis",
FeatureKind::ConstructionPoint { .. } => "construction_point",
FeatureKind::SplitFace { .. } => "split_face",
FeatureKind::Scale { .. } => "scale",
FeatureKind::OffsetFace { .. } => "offset_face",
FeatureKind::DeleteFace { .. } => "delete_face",
FeatureKind::BoundingSolid { .. } => "bounding_solid",
FeatureKind::Pipe { .. } => "pipe",
FeatureKind::FrameMember { .. } => "frame_member",
FeatureKind::Emboss { .. } => "emboss",
FeatureKind::Rib { .. } => "rib",
FeatureKind::ReplaceFace { .. } => "replace_face",
FeatureKind::Align { .. } => "align",
FeatureKind::Coil { .. } => "coil",
FeatureKind::SheetBase { .. } => "sheet_base",
FeatureKind::SheetContour { .. } => "sheet_contour",
FeatureKind::SheetFlange { .. } => "sheet_flange",
FeatureKind::SheetHem { .. } => "sheet_hem",
FeatureKind::SheetPerforate { .. } => "sheet_perforate",
FeatureKind::SheetFold { .. } => "sheet_fold",
FeatureKind::SheetPath { .. } => "sheet_path",
FeatureKind::SheetUnfold { .. } => "sheet_unfold",
FeatureKind::SheetConvert { .. } => "sheet_convert",
FeatureKind::Boss { .. } => "boss",
FeatureKind::Lip { .. } => "lip",
FeatureKind::SnapFit { .. } => "snap_fit",
FeatureKind::Rest { .. } => "rest",
FeatureKind::BoundaryFill { .. } => "boundary_fill",
FeatureKind::Remove { .. } => "remove",
FeatureKind::Patch { .. } => "patch",
FeatureKind::Stitch { .. } => "stitch",
FeatureKind::Thicken { .. } => "thicken",
FeatureKind::SurfaceExtrude { .. } => "surface_extrude",
FeatureKind::Unstitch { .. } => "unstitch",
FeatureKind::ReverseNormal { .. } => "reverse_normal",
FeatureKind::SurfaceUntrim { .. } => "surface_untrim",
FeatureKind::SurfaceRevolve { .. } => "surface_revolve",
FeatureKind::SurfaceSweep { .. } => "surface_sweep",
FeatureKind::SurfaceLoft { .. } => "surface_loft",
FeatureKind::SurfaceOffset { .. } => "surface_offset",
FeatureKind::SurfaceRuled { .. } => "surface_ruled",
FeatureKind::SurfaceExtend { .. } => "surface_extend",
FeatureKind::SurfaceBlend { .. } => "surface_blend",
FeatureKind::SurfaceBoundary { .. } => "surface_boundary",
FeatureKind::SurfaceNetwork { .. } => "surface_network",
FeatureKind::SurfaceMatch { .. } => "surface_match",
FeatureKind::SurfaceFair { .. } => "surface_fair",
FeatureKind::SurfaceTrim { .. } => "surface_trim",
FeatureKind::Move { .. } => "move",
FeatureKind::Import { .. } => "import",
FeatureKind::MeshConvert { .. } => "mesh_convert",
FeatureKind::MeshImport { .. } => "mesh_import",
}
}
/// Map a display or Rust type name (e.g. `"HoleFeature"`, `"EdgeFlangeFeature"`)
/// to the canonical design-file variant key (`"hole"`, `"sheet_flange"`).
pub fn type_name_to_kind_key(name: &str) -> Option<&'static str> {
Some(match name {
"BodyTransferFeature" => "body_transfer",
"Sketch" => "sketch",
"ExtrudeFeature" => "extrude",
"RevolveFeature" => "revolve",
"FilletFeature" => "fillet",
"ChamferFeature" => "chamfer",
"BoxFeature" => "box",
"CylinderFeature" => "cylinder",
"SphereFeature" => "sphere",
"TorusFeature" => "torus",
"ConeFeature" => "cone",
"CombineFeature" => "combine",
"RectangularPatternFeature" | "PathPatternFeature" | "CircularPatternFeature" => "pattern",
"MirrorFeature" => "mirror",
"ConstructionPlane" => "construction_plane",
"HoleFeature" => "hole",
"ThreadFeature" => "thread",
"LoftFeature" => "loft",
"SweepFeature" => "sweep",
"ShellFeature" => "shell",
"DraftFeature" => "draft",
"SplitBodyFeature" => "split",
"SplitFaceFeature" => "split_face",
"ConstructionAxis" => "construction_axis",
"ConstructionPoint" => "construction_point",
"MoveFeature" => "move",
"ScaleFeature" => "scale",
"OffsetFacesFeature" => "offset_face",
"DeleteFaceFeature" => "delete_face",
"OffsetSurfaceFeature" => "surface_offset",
"BoundingSolidFeature" => "bounding_solid",
"PipeFeature" => "pipe",
"FrameMemberFeature" => "frame_member",
"EmbossFeature" => "emboss",
"BossFeature" => "boss",
"LipFeature" | "GrooveFeature" => "lip",
"SnapFitFeature" => "snap_fit",
"RestFeature" => "rest",
"BoundaryFillFeature" => "boundary_fill",
"BaseFlangeFeature" => "sheet_base",
"ContourFlangeFeature" => "sheet_contour",
"EdgeFlangeFeature" => "sheet_flange",
"HemFeature" => "sheet_hem",
"PerforateFeature" => "sheet_perforate",
"FoldFeature" => "sheet_fold",
"PathFlangeFeature" => "sheet_path",
"UnfoldFeature" | "RefoldFeature" => "sheet_unfold",
"ConvertToSheetMetalFeature" => "sheet_convert",
"CoilFeature" => "coil",
"RibFeature" | "WebFeature" => "rib",
"ReplaceFaceFeature" => "replace_face",
"AlignFeature" => "align",
"RemoveFeature" => "remove",
"PatchFeature" => "patch",
"SurfaceExtrudeFeature" => "surface_extrude",
"SurfaceRevolveFeature" => "surface_revolve",
"SurfaceSweepFeature" => "surface_sweep",
"SurfaceLoftFeature" => "surface_loft",
"BlendFeature" => "surface_blend",
"BoundaryFeature" => "surface_boundary",
"MatchFeature" => "surface_match",
"FairFeature" => "surface_fair",
"StitchFeature" => "stitch",
"ThickenFeature" => "thicken",
"TrimFeature" => "surface_trim",
"ExtendFeature" => "surface_extend",
"RuledSurfaceFeature" => "surface_ruled",
"UnstitchFeature" => "unstitch",
"ReverseNormalFeature" => "reverse_normal",
"UntrimFeature" => "surface_untrim",
"BaseFeature" => "import",
"MeshFeature" => "mesh_import",
"MeshConvertFeature" => "mesh_convert",
_ => return None,
})
}
/// Default name prefix (`Extrude` → `Extrude1`).
pub fn base_name(&self) -> &'static str {
match self {
@@ -2628,6 +2836,19 @@ pub struct DesignLink {
/// local overrides and survive a source update. Older links start with no baseline.
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub inherited: Vec<LinkedBodyProperties>,
/// SHA-256 of the design file's bytes as this design last read them ([`Self::file_digest`]):
/// opened again, this design tells which linked files changed meanwhile (#9739). Links made
/// before it was kept have none and are taken as up to date.
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file_sha256: Option<String>,
}
impl DesignLink {
/// What [`Self::file_sha256`] keeps for a design file's `bytes`.
pub fn file_digest(bytes: &[u8]) -> String {
use sha2::{Digest, Sha256};
format!("{:x}", Sha256::digest(bytes))
}
}
/// The values last inherited by a linked body, not another editable material library.
@@ -3125,8 +3346,8 @@ impl Document {
/// The single body rename (old name, new name) that turns `previous` into this design,
/// when that is all that changed: the features' stored body names (`made` gives the names
/// each feature's bodies have now, by feature id) and what [`Document::rename_body_keys`]
/// renames. `None` for any other change.
/// each feature's bodies have now, by feature id), typed body references, participants and
/// what [`Document::rename_body_keys`] renames. `None` for any other change.
pub fn body_rename_from(&self, previous: &Document, made: impl Fn(u64) -> Vec<String>) -> Option<(String, String)> {
if self.features.len() != previous.features.len() {
return None;
@@ -3157,8 +3378,16 @@ impl Document {
}
let (old, new) = rename?;
let mut expected = previous.clone();
let bodies = std::collections::BTreeMap::from([(old.clone(), new.clone())]);
for (f, g) in expected.features.iter_mut().zip(&self.features) {
f.body_names.clone_from(&g.body_names);
// Updating references to the renamed body changes no feature input other than its
// name (#6287). Keep the full comparison below: geometry, expressions, sketch links
// and face anchors must still agree before the model may reuse its geometry.
f.kind.remap_bodies(&bodies);
for body in f.participants.iter_mut().filter(|body| **body == old) {
body.clone_from(&new);
}
}
expected.rename_body_keys(&old, &new);
(expected == *self).then_some((old, new))
@@ -3453,6 +3682,8 @@ impl Document {
}
pub fn feature(&self, id: u64) -> Option<&Feature> {
#[cfg(test)]
crate::eval::cost_tests::count_feature_search();
self.features.iter().find(|f| f.id == id)
}
pub fn feature_mut(&mut self, id: u64) -> Option<&mut Feature> {
@@ -3471,15 +3702,35 @@ impl Document {
self.features.iter().find(|f| f.name.eq_ignore_ascii_case(r))
}
/// Resolve a textual timeline reference. An exact name wins even when it looks like an id.
/// Older scripts also pass ids as strings or use a different case for a unique name.
pub fn resolve_feature_name(&self, name: &str) -> Result<&Feature> {
if let Some(feature) = self.features.iter().find(|f| f.name == name) {
return Ok(feature);
}
if let Ok(id) = name.parse::<u64>()
&& let Some(feature) = self.feature(id)
{
return Ok(feature);
}
let mut matches = self.features.iter().filter(|f| f.name.eq_ignore_ascii_case(name));
let feature = matches.next().ok_or_else(|| DocError::Invalid(format!("no feature `{name}`")))?;
if matches.next().is_some() {
return Err(DocError::Invalid(format!("ambiguous feature `{name}`. Use its exact name or numeric id")));
}
Ok(feature)
}
/// The feature a pattern or mirror seed names, resolved the way `replay()` resolved seed
/// names before seeds were keyed by id (#1134): an exact name match on a feature that is
/// not a sketch or a construction plane wins — a sketch and its extrude often share a
/// name, and the feature that makes geometry is the one to copy — else [`find_feature`].
/// name, and the feature that makes geometry is the one to copy. Other references use
/// the timeline lookup.
pub fn seed_feature(&self, name: &str) -> Option<&Feature> {
self.features
.iter()
.find(|x| x.name == name && !matches!(x.kind, FeatureKind::Sketch { .. } | FeatureKind::ConstructionPlane { .. }))
.or_else(|| self.find_feature(name))
.or_else(|| self.resolve_feature_name(name).ok())
}
fn unique_name(&self, base: &str) -> String {
@@ -3535,12 +3786,18 @@ impl Document {
} else {
0
};
let id = self.next_id.max(1);
self.next_id = id.checked_add(1).ok_or_else(|| DocError::Invalid("too many items in the design".into()))?;
let name = match name {
Some(n) if !n.trim().is_empty() => n.trim().to_string(),
_ => self.unique_name(kind.base_name()),
};
// Plane references share the feature namespace. A duplicate would silently select
// the first feature. Other shared names (a sketch and its extrude) remain supported.
let is_plane = matches!(kind, FeatureKind::ConstructionPlane { .. });
if self.features.iter().any(|f| f.name == name && (is_plane || matches!(f.kind, FeatureKind::ConstructionPlane { .. }))) {
return Err(DocError::Invalid(format!("another feature is called `{name}`")));
}
let id = self.next_id.max(1);
self.next_id = id.checked_add(1).ok_or_else(|| DocError::Invalid("too many items in the design".into()))?;
let f = Feature {
id,
name,
@@ -3938,6 +4195,7 @@ impl Document {
}
PlaneRef::Midplane { .. }
| PlaneRef::TwoEdges { .. }
| PlaneRef::AxisPoint { .. }
| PlaneRef::ThreePoints { .. }
| PlaneRef::Tangent { .. }
| PlaneRef::AlongPath { .. }
@@ -4135,6 +4393,11 @@ impl Document {
analysis: solidcraft_sketch::Analysis,
) -> Result<solidcraft_sketch::SolveReport> {
self.apply_dimension_values(vals, sk)?;
// A text built anew since it was stored (an expression gave it other words) has other
// outline entities: the stored sketch is taken with this sketch's, so the points still
// pair up for the side checks and the walk below.
let paired = moved_from.and_then(|from| sk.stored_with_rebuilt_texts(from));
let moved_from = paired.as_ref().or(moved_from);
let was = |sk: &Sketch| moved_from.and_then(|from| sk.positions_in(from));
let offsets = !sk.offsets.is_empty() || !sk.freeform_offsets.is_empty();
// Offsets always require another solve after refresh. Only that last report is
@@ -4173,6 +4436,14 @@ impl Document {
} else {
solidcraft_sketch::solve_after_edit_with_analysis(sk, stored, was(sk).as_deref(), analysis)
};
// An attachment to the old offset can prevent the source from moving at all.
// Retry from a source-only seed, adopting it only if every constraint still holds.
if !report.ok()
&& report.oversized.is_none()
&& let Some(retried) = sk.solve_after_offset_edit(stored, was(sk).as_deref(), analysis)
{
report = retried;
}
}
Ok(report)
}
+504 -71
View File
@@ -40,6 +40,11 @@ pub struct ModelBody {
joint_faces: Arc<OnceLock<JointFaces>>,
/// Lazy canonical reference triangles for a proper rigid occurrence placement.
mesh_placement: Option<Arc<placed_mesh::PlacedMesh>>,
/// For a mirrored copy: its faces as a world state shows them, a rigid move of the source's
/// [`placed_mesh::OppositeHand`]. Display only: the model reads the copy's own triangles.
mirrored_mesh: Option<Arc<placed_mesh::PlacedMesh>>,
/// The first mirrored copy made of this body, shared by its clones.
opposite_hand: Arc<OnceLock<placed_mesh::OppositeHand>>,
/// The display plan (none when the body has no plan: a mesh body, or one the planner
/// refuses), shared like the mesh. A GPU viewport draws it.
plan: Arc<[OnceLock<Option<Arc<TessPlan>>>; 4]>,
@@ -86,6 +91,8 @@ impl ModelBody {
mesh: Arc::new(OnceLock::new()),
joint_faces: Arc::new(OnceLock::new()),
mesh_placement: None,
mirrored_mesh: None,
opposite_hand: Arc::new(OnceLock::new()),
plan: Arc::new(Default::default()),
plan_mesh: Arc::new(Default::default()),
key: 0,
@@ -458,7 +465,12 @@ fn thread_on_impl(
let (body, cyl) = st
.bodies
.iter()
.filter_map(|b| kernel::cylinder_face_at(&b.body, p).map(|c| (b.name.clone(), c)))
.filter(|b| !more::beyond_cylinder_reach(b, p))
.filter_map(|b| {
#[cfg(test)]
cost_tests::count(|c| c.cylinder_search += 1);
kernel::cylinder_face_at(&b.body, p).map(|c| (b.name.clone(), c))
})
.min_by(|a, b| {
let dist = |c: &kernel::CylinderFace| ((p - c.axis_point - c.axis * (p - c.axis_point).dot(c.axis)).len() - c.radius).abs();
dist(&a.1).total_cmp(&dist(&b.1))
@@ -993,6 +1005,7 @@ impl ModelState {
&& let Some(lines) = olds.first().and_then(|x| x.body.split_lines())
{
b.body = b.body.clone().with_split_lines(Some(lines.clone()));
b.mirrored_mesh = None;
}
// An imported look outlives the operations on the body.
if b.body.paint().is_none()
@@ -1194,17 +1207,27 @@ impl ModelState {
/// to the budget keep only its last few states, so setting a parameter back recomputed what
/// had dropped out.
fn added_bytes(&self, before: &ModelState) -> usize {
// `before`'s bodies by solid, and its sketches by address: looked up per body and sketch,
// not searched (every feature's result is charged, so searching was bodies² per feature).
// Bodies sharing a solid are still told apart by `same_shape` (the mesh as well).
let mut solids: std::collections::HashMap<usize, Vec<&Body>> = std::collections::HashMap::with_capacity(before.bodies.len());
for o in &before.bodies {
solids.entry(o.body.solid_id()).or_default().push(&o.body);
}
let bodies: usize = self
.bodies
.iter()
.filter(|b| !before.bodies.iter().any(|o| o.body.same_shape(&b.body)))
.filter(|b| !solids.get(&b.body.solid_id()).is_some_and(|os| os.iter().any(|o| o.same_shape(&b.body))))
.map(|b| if b.bytes > 0 { b.bytes } else { b.body.retained_bytes() })
.sum();
let sketches: usize = self.sketches.iter().filter(|s| !before.sketches.iter().any(|o| Arc::ptr_eq(o, s))).map(|s| s.retained_bytes()).sum();
let kept: std::collections::HashSet<*const SolvedSketch> = before.sketches.iter().map(Arc::as_ptr).collect();
let sketches: usize = self.sketches.iter().filter(|s| !kept.contains(&Arc::as_ptr(s))).map(|s| s.retained_bytes()).sum();
bodies + sketches + self.sheets.len() * 4096 + self.threads.len() * 192 + self.construct.len() * 192
}
pub fn body(&self, name: &str) -> Option<&ModelBody> {
#[cfg(test)]
cost_tests::count(|c| c.body_searches += 1);
self.bodies.iter().find(|b| b.name == name)
}
@@ -1299,6 +1322,10 @@ pub struct Model {
kept: KeptSlot,
/// The imported texts' digests the last `evaluate` fingerprinted the features with.
step_digests: StepDigests,
/// The address of the shared document whose fingerprints the results were last given in
/// full, with [`fingerprints_digest`] of them then ([`Model::pinned_prefix`]). Only an
/// address: a reference to the document would make every in-place edit of it a copy.
fingerprinted: Option<(usize, u64)>,
/// The document context the last `evaluate` ran in ([`context_digest`]).
context: u64,
/// The last active result of each feature hidden by the history marker, with its document
@@ -1418,32 +1445,40 @@ fn quantize(sk: &mut solidcraft_sketch::Sketch) {
/// file's text by its digest.
/// Hash [`feature_json`] of `f` into `h`. Every evaluation fingerprints every feature, and in a
/// design built command by command almost all of them are the same as last time: the text of a
/// feature is kept (per thread, by id) with the feature it was written from, and written again
/// only when the feature differs. An Import's text also depends on its STEP digest, so it is
/// written each time as before.
/// feature is kept (by id) with the feature it was written from, and written again only when the
/// feature differs. An Import's text also depends on its STEP digest, so it is written each time
/// as before.
///
/// The texts are shared by every thread: a command evaluated ahead runs on a new worker thread
/// each time (the desktop's deferred commands and delete checks, the control channel's ahead
/// jobs), and a per-thread store started empty there, so every ahead run wrote out every
/// feature again. The lock is held only to look up or store an entry, never while a feature is
/// compared or written; an entry is the same whichever thread wrote it, since the text is a
/// function of the feature alone.
fn hash_feature_json(f: &Feature, steps: &StepDigests, h: &mut impl Hasher) {
type Written = std::collections::HashMap<u64, Arc<(Feature, String)>>;
static WRITTEN: std::sync::LazyLock<std::sync::Mutex<Written>> = std::sync::LazyLock::new(Default::default);
if matches!(f.kind, FeatureKind::Import { .. }) {
feature_json(f, steps).hash(h);
return;
}
thread_local! {
static WRITTEN: std::cell::RefCell<std::collections::HashMap<u64, (Feature, String)>> = std::cell::RefCell::new(std::collections::HashMap::new());
let seen = WRITTEN.lock().unwrap_or_else(|e| e.into_inner()).get(&f.id).cloned();
if let Some(seen) = seen
&& seen.0 == *f
{
seen.1.hash(h);
return;
}
WRITTEN.with(|written| {
let mut written = written.borrow_mut();
if let Some((seen, json)) = written.get(&f.id)
&& seen == f
{
json.hash(h);
return;
}
let json = feature_json(f, steps);
json.hash(h);
if written.len() >= 1 << 15 {
written.clear();
}
written.insert(f.id, (f.clone(), json));
});
#[cfg(test)]
cost_tests::count_written();
let json = feature_json(f, steps);
json.hash(h);
let entry = Arc::new((f.clone(), json));
let mut written = WRITTEN.lock().unwrap_or_else(|e| e.into_inner());
if written.len() >= 1 << 15 {
written.clear();
}
written.insert(f.id, entry);
}
fn feature_json(f: &Feature, steps: &StepDigests) -> String {
@@ -1788,6 +1823,8 @@ fn hash_placement(m: &Mat, h: &mut impl Hasher) {
fn mirror_placements_digest(doc: &Document, f: &Feature, placements: &[Vec<u64>], bodies: &[crate::BodyName]) -> u64 {
let mut h = std::collections::hash_map::DefaultHasher::new();
doc.component_transform(f.component).iter().flatten().for_each(|x| x.to_bits().hash(&mut h));
// A feature added after the mirror that builds on its copies needs them made for that.
placement_reuse::copies_only_shown(doc, f).hash(&mut h);
for placed in placements.iter().map(|path| mirror_copy_frame(doc, path)) {
placed.is_some().hash(&mut h);
if let Some((component, frame, picked)) = placed {
@@ -1938,13 +1975,7 @@ fn placement_digest(doc: &Document, f: &Feature, st: Option<&ModelState>) -> u64
None => u8::MAX.hash(&mut h),
}
}
for name in &reads.bodies {
name.hash(&mut h);
match st.and_then(|st| st.body(name)) {
Some(b) => hash_placement(&crate::mat_mul(&inverse, &body_world(doc, b)), &mut h),
None => u8::MAX.hash(&mut h),
}
}
hash_placed_bodies(doc, st, &reads.bodies, &inverse, &mut h);
// Legacy and component-wide reads still need the conservative offset dependency. Body
// reads above already include just their own offsets, in the frame that evaluates them.
if reads.all || !reads.components.is_empty() || !reads.paths.is_empty() {
@@ -1954,6 +1985,38 @@ fn placement_digest(doc: &Document, f: &Feature, st: Option<&ModelState>) -> u64
h.finish() | 1
}
/// The bodies part of [`placement_digest`]: each body read, in name order, and where it is placed
/// relative to the reading frame `inverse` (`u8::MAX` for one not in `st`), as [`body_world`]
/// places it. The bodies, their components and the components' frames are looked up once: a
/// join or cut without targets reads every body of its component, and searching the model, the
/// timeline and the placements again for each of them made every evaluation, even one served
/// from the cache, quadratic in the bodies.
fn hash_placed_bodies(doc: &Document, st: Option<&ModelState>, names: &std::collections::BTreeSet<String>, inverse: &Mat, h: &mut impl Hasher) {
let (Some(st), false) = (st, names.is_empty()) else {
names.iter().for_each(|name| (name, u8::MAX).hash(h));
return;
};
// The first body of a name, as `ModelState::body` finds it.
let mut index: std::collections::HashMap<&str, usize> = std::collections::HashMap::with_capacity(st.bodies.len());
for (i, b) in st.bodies.iter().enumerate() {
index.entry(b.name.as_str()).or_insert(i);
}
let components = doc.model_body_components(st);
let mut frames: std::collections::HashMap<u64, Mat> = std::collections::HashMap::new();
for name in names {
name.hash(h);
let found = index.get(name.as_str()).and_then(|&i| Some((st.bodies.get(i)?, *components.get(i)?)));
match found {
Some((b, component)) => {
let m = *frames.entry(component).or_insert_with(|| doc.component_transform(component));
let world = doc.model_body_offset(b).map(|offset| crate::mat_mul(&m, offset)).unwrap_or(m);
hash_placement(&crate::mat_mul(inverse, &world), h);
}
None => u8::MAX.hash(h),
}
}
}
/// Every occurrence's placement and every body offset (a feature read from a frame that cannot
/// be inverted).
fn placements_hash(doc: &Document) -> u64 {
@@ -2131,6 +2194,7 @@ impl Model {
/// Re-evaluate the document, reusing results up to the first changed feature.
pub fn evaluate(&mut self, doc: &Document) {
self.placement_inputs = None;
self.fingerprinted = None;
self.placement_local = true;
let (vals, perr) = evaluation_values(doc);
self.param_errors = perr;
@@ -2364,6 +2428,16 @@ impl Model {
_ => mats,
};
next.stamp(&state, f, key, mats);
// Evaluated again only for what came before it (a mirror moved by a drag).
if let Some(old) = self.results.get(i).filter(|old| old.id == f.id) {
let made = old.state.bodies.iter().filter(|b| b.feature == f.id).map(|b| (b.name.as_str(), b));
let made: std::collections::HashMap<&str, &ModelBody> = made.collect();
for b in next.bodies.iter_mut().filter(|b| b.feature == f.id) {
if let Some(old) = made.get(b.name.as_str()) {
b.keep_meshes_of(old);
}
}
}
for b in &mut next.bodies {
if !b.transferred {
b.component = match doc.body_components.get(&b.name) {
@@ -2532,19 +2606,76 @@ impl Model {
/// Set every result's fingerprint to `doc`'s, so the next evaluation reuses every result
/// (after a change that builds nothing differently).
pub fn refingerprint(&mut self, doc: &Document) {
self.refingerprint_from(doc, 0);
}
/// How many leading results keep their fingerprints when `doc` has the body names of the
/// features `renamed` pinned, and nothing else changed (see [`Model::refingerprint_shared`]).
/// Every command pins, and fingerprinting the whole timeline again for it cost as much as
/// the fingerprinting of the evaluation itself. When the results hold `doc`'s fingerprints
/// (the address and digest kept when they were given prove it), those before the first
/// renamed feature stand, since nothing they read changes, unless a pattern or mirror of
/// features among them replays a renamed one (it fingerprints its sources' definitions
/// wherever they are). Without that proof: none.
pub fn pinned_prefix(&self, doc: &Arc<Document>, renamed: &[u64]) -> usize {
let proven = self.fingerprinted.is_some_and(|(of, digest)| of == Arc::as_ptr(doc) as usize && digest == fingerprints_digest(&self.results));
if !proven {
return 0;
}
let Some(first) = doc.features.iter().position(|f| renamed.contains(&f.id)) else { return doc.features.len() };
let replays_renamed = |f: &Feature| match &f.kind {
FeatureKind::Pattern { features, bodies, .. } | FeatureKind::Mirror { features, bodies, .. } => {
bodies.is_empty() && !features.is_empty() && replayed_sources(doc, features).iter().any(|g| renamed.contains(&g.id))
}
_ => false,
};
doc.features.iter().take(first).position(replays_renamed).unwrap_or(first)
}
/// Drop the proof [`Model::pinned_prefix`] reads: the document at that address is about to
/// change in place.
pub fn forget_fingerprints(&mut self) {
self.fingerprinted = None;
}
/// Fingerprint the results from `start` on for `doc`, chained onto the fingerprint before.
pub(crate) fn refingerprint_from(&mut self, doc: &Document, start: usize) {
self.placement_inputs = None;
self.fingerprinted = None;
self.step_digests = StepDigests::of(doc, &self.step_digests);
let start = start.min(self.results.len()).min(doc.features.len());
if start == self.results.len().min(doc.features.len()) {
return;
}
let (vals, _) = evaluation_values(doc);
let marker = doc.marker.unwrap_or(usize::MAX);
self.step_digests = StepDigests::of(doc, &self.step_digests);
let mut prev = 0;
let last = start.checked_sub(1).and_then(|i| self.results.get(i));
let mut prev = last.map_or(0, |r| r.fingerprint);
// Each feature's fingerprint reads the model it starts from, as evaluating does.
let mut before = Arc::new(ModelState::default());
for (i, (r, f)) in self.results.iter_mut().zip(&doc.features).enumerate() {
let mut before = last.map_or_else(|| Arc::new(ModelState::default()), |r| r.state.clone());
for (i, (r, f)) in self.results.iter_mut().zip(&doc.features).enumerate().skip(start) {
prev = chain_fingerprint(doc, &vals, f, prev, i >= marker, &self.step_digests, Some(&before));
r.fingerprint = prev;
before = r.state.clone();
}
}
/// Note that the results now hold `doc`'s fingerprints (for [`Model::pinned_prefix`]).
pub(crate) fn mark_fingerprinted(&mut self, doc: &Arc<Document>) {
self.fingerprinted = Some((Arc::as_ptr(doc) as usize, fingerprints_digest(&self.results)));
}
}
/// A digest of the results' features and fingerprints, which proves they are still the ones
/// [`Model::mark_fingerprinted`] saw (whatever changed them since).
fn fingerprints_digest(results: &[FeatureResult]) -> u64 {
let mut h = std::collections::hash_map::DefaultHasher::new();
results.len().hash(&mut h);
for r in results {
r.id.hash(&mut h);
r.fingerprint.hash(&mut h);
}
h.finish()
}
/// Key of the design's length unit (mm per unit) among the values (no parameter can be named
@@ -3182,10 +3313,29 @@ fn apply_traced_with(
let affected: std::collections::BTreeMap<String, usize> =
target_idx.iter().filter_map(|i| state.bodies.get(*i)).map(|b| (b.name.clone(), b.body.lumps().map_or(1, |l| l.len()))).collect();
let mut remove = Vec::new();
// A cut hands a body its tools cannot reach back as it was, but only after a whole
// boolean: in a design of many bodies that was most of a hole's time (#10225). Such a
// body is left as it is. Its box and the tools' are their meshes' grown past how far
// the exact faces can curve out from them (a dome rises above the outline of its
// edges), so a tool that touches a body, or only comes near it, still meets it in the
// boolean. A body shown in another frame, and a mesh body, are cut as before; an
// intersect removes the bodies it misses, and is left as it was.
let reach: Option<Vec<Option<solidcraft_geom::Aabb3>>> =
(op == Operation::Cut && !tools.iter().any(|t| t.body.is_mesh())).then(|| tools.iter().map(|t| more::body_box(&t.body)).collect());
for &ti in &target_idx {
let Some(mut acc) = state.bodies.get(ti).map(|b| Some(b.traced())) else { continue };
// The tools meet the target where it is shown: in its frame (#3383).
let into = state.bodies.get(ti).and_then(|b| tool_frame(&b.name));
if let (Some(reach), None, Some(mb)) = (&reach, into, state.bodies.get(ti))
&& !reach.is_empty()
&& !mb.body.is_mesh()
&& let Some(target) = more::mesh_box(mb)
&& reach.iter().all(|tool| more::boxes_apart(&Some(target), tool))
{
continue;
}
#[cfg(test)]
cost_tests::count(|c| c.cut += 1);
for t in &tools {
let t = &tool_in(t, into)?;
acc = match acc {
@@ -3238,6 +3388,11 @@ fn apply_traced_with(
// Not yet: a cut that splits one piece of such a body still splits all of them; keeping
// the untouched ones together needs each new piece traced to the piece it came from.
let mut taken: std::collections::BTreeSet<String> = state.bodies.iter().map(|b| b.name.clone()).collect();
// The pieces past the first belong to this feature, like a split's pieces (#10123):
// `body.rename` stores their names in this feature's `body_names`, in this order, so a
// renamed piece keeps its own name through a rebuild instead of landing on a sibling
// of the body it was cut from.
let mut extra = 0usize;
let mut split: Vec<ModelBody> = Vec::new();
for mb in std::mem::take(&mut state.bodies) {
let Some(&had) = affected.get(&mb.name).filter(|_| !state.sheets.iter().any(|s| s.body == mb.name)) else {
@@ -3253,13 +3408,18 @@ fn apply_traced_with(
// (so pieces of one face in different bodies are told apart).
let lineages = crate::lineage::Lineage::lumps(&mb.body, mb.lineage().as_deref(), &pieces);
for (k, (p, lineage)) in pieces.into_iter().zip(lineages).enumerate() {
let name = if k == 0 {
mb.name.clone()
let (name, made_by) = if k == 0 {
(mb.name.clone(), mb.feature)
} else {
(k..=k + taken.len()).map(|j| format!("{} ({j})", mb.name)).find(|n| !taken.contains(n)).unwrap_or_default()
let stored = f.body_names.get(extra).filter(|n| !n.trim().is_empty() && !taken.contains(*n)).cloned();
extra += 1;
let name = stored.unwrap_or_else(|| {
(k..=k + taken.len()).map(|j| format!("{} ({j})", mb.name)).find(|n| !taken.contains(n)).unwrap_or_default()
});
(name, f.id)
};
taken.insert(name.clone());
split.push(ModelBody::new(name, p, mb.feature).with_lineage(lineage));
split.push(ModelBody::new(name, p, made_by).with_lineage(lineage));
}
}
state.bodies = split;
@@ -3776,8 +3936,9 @@ fn body_at(st: &ModelState, body: &Option<crate::BodyName>, points: &[Vec3]) ->
/// A hole stays on its face when the model changes: a position now inside a body moves back
/// against the drilling direction to the surface, one now above it moves down onto it. Only the
/// bodies in `scope` count (every body when it is empty, see [`hole_scope`]).
fn hole_on_surface(st: &ModelState, p: Vec3, dir: Vec3, scope: &[String]) -> Vec3 {
/// bodies in `scope` count (every body when it is empty, see [`hole_scope`]). Edit Hole seeds from
/// this point so the dialog's face pick matches where evaluation drills (#10689).
pub fn hole_on_surface(st: &ModelState, p: Vec3, dir: Vec3, scope: &[String]) -> Vec3 {
let size = st.bodies.iter().map(|b| b.body.size()).fold(1.0, f64::max);
let eps = size * 1e-6;
let mut best: Option<Vec3> = None;
@@ -3825,6 +3986,18 @@ fn faces_through(st: &ModelState, p: Vec3, reach: f64) -> Vec<(f64, Vec3, Option
((v - axis * v.dot(axis)).normalized(), None)
}
Some(kernel::FaceSurface::Sphere { center, .. }) => ((p - center).normalized(), None),
// Square to the line through the apex, not the nearest facet's normal (#10698).
Some(kernel::FaceSurface::Cone { apex, axis, half_angle }) => {
let v = p - apex;
let out = (v - axis * v.dot(axis)).normalized();
(out.and_then(|u| (u * half_angle.cos() - axis * half_angle.sin()).normalized()), None)
}
// Away from the nearest point of the ring the tube goes round.
Some(kernel::FaceSurface::Torus { center, axis, major, .. }) => {
let v = p - center;
let ring = (v - axis * v.dot(axis)).normalized().map(|u| center + u * major);
(ring.and_then(|q| (p - q).normalized()), None)
}
_ => (None, None),
};
let n = match exact {
@@ -4194,7 +4367,8 @@ fn blend_edges_on(mb: &ModelBody, f: &Feature, edges: &[crate::Position], idx: &
Some((_, Err(_))) | None => {
let mut w = None;
let refs: Vec<EdgeRef> = f.edge_refs.get(i).cloned().into_iter().collect();
let skipped = format!("edge `{}` no longer exists and was skipped", stored.map(String::as_str).unwrap_or("?"));
let skipped =
format!("edge `{}` no longer exists and was skipped", stored.map_or_else(|| "?".into(), |n| crate::name_lookup::quoted(n)));
// The name is gone. A pick on the axis of a round must not fall through to the
// tangency seam (#775). A sharp edge that moved still resolves from the point,
// which an edit relies on.
@@ -4203,7 +4377,7 @@ fn blend_edges_on(mb: &ModelBody, f: &Feature, edges: &[crate::Position], idx: &
} else if let Ok(q) = resolve_edges(&mb.body, &[p], &refs, &mut w) {
out.extend(q);
notes.push(match stored {
Some(n) => format!("edge `{n}` no longer exists; using the edge at the picked point"),
Some(n) => format!("edge `{}` no longer exists; using the edge at the picked point", crate::name_lookup::quoted(n)),
None => "an edge reference without a name was found by its point".into(),
});
} else {
@@ -4897,6 +5071,29 @@ pub fn revolve_extent_with_convention(
symmetric: bool,
to: Option<Vec3>,
convention: crate::RevolveConvention,
) -> Result<RevolveExtent> {
let extent = revolve_extent_for_handle(st, plane, regions, (origin, axis), (angle, angle2), symmetric, to, convention)?;
// A solid needs an open sweep inside one full turn. Zero and a turn past 360° keep a
// handle frame (`revolve_extent_for_handle`) and still fail here, with the same message.
if !(extent.sweep.abs() > 1e-9 && extent.sweep.abs() <= std::f64::consts::TAU + 1e-9) {
return Err(DocError::Invalid("the revolve angle must be more than 0 and at most 360°".into()));
}
Ok(extent)
}
/// Where the angle handle sits. A sweep of zero, or past a full turn, builds no solid and
/// [`revolve_extent_with_convention`] refuses it. The boundary is still a point on the circle,
/// and the grab point stays there so the angle can be dragged back into range.
#[allow(clippy::too_many_arguments)]
pub fn revolve_extent_for_handle(
st: &ModelState,
plane: &Plane,
regions: &[Region2],
(origin, axis): (Vec3, Vec3),
(angle, angle2): (f64, Option<f64>),
symmetric: bool,
to: Option<Vec3>,
convention: crate::RevolveConvention,
) -> Result<RevolveExtent> {
let (start, sweep) = match (to, angle2, symmetric) {
(Some(point), _, _) => {
@@ -4936,7 +5133,7 @@ pub fn revolve_extent_with_convention(
(None, None, true) => (-angle / 2.0, angle),
(None, None, false) => (0.0, angle),
};
if !(sweep.is_finite() && start.is_finite() && sweep.abs() > 1e-9 && sweep.abs() <= std::f64::consts::TAU + 1e-9) {
if !(sweep.is_finite() && start.is_finite()) {
return Err(DocError::Invalid("the revolve angle must be more than 0 and at most 360°".into()));
}
let points: Vec<Vec2> = regions.iter().flat_map(|r| r.outer.polyline(1e-2)).collect();
@@ -5137,11 +5334,15 @@ const APART_GAP: f64 = 1e-3;
/// The tool bodies a feature adds or removes (extrude, revolve, primitives), in the current state.
/// `to_body` is the body a To Object extent runs to (an extrude), when it found one.
/// `copy` builds the tool of a pattern's or mirror's source: the state already holds the source
/// feature's own material, so a join end that reads as buried in the target there may be bare
/// material where the copy lands — its ends are left as drawn (#6452).
fn feature_tools_with_constructor(
doc: &Document,
vals: &BTreeMap<String, Value>,
f: &Feature,
st: &ModelState,
copy: bool,
constructor: &mut Option<ExtrudeConstructor>,
to_body: &mut Option<String>,
) -> Result<Vec<Traced>> {
@@ -5328,7 +5529,26 @@ fn feature_tools_with_constructor(
let (mut lo, mut hi) = if a <= b { (a, b) } else { (b, a) };
// To a curved (or slanted) face: run right through the target body, then keep what
// lies before its surface (the tool less the body, the piece at the start).
let curved = curved_face(&tst, to_face, Some(n));
let mut curved = curved_face(&tst, to_face, Some(n));
// A Cut to the far side of a curved wall (a window through a duct's side): ending the
// tool on that face leaves it lying in the wall's face, where the boolean fails, and
// the tool less the body keeps only the air before the wall, which cuts nothing. Where
// the target's material ends at the face under the whole profile, the tool ends flat
// in the gap beyond it instead: it takes what lies before the face and meets no face.
if *operation == Operation::Cut
&& off == 0.0
&& let (Some(bi), Some((_, fi))) = (curved, to_face)
&& let Some(tb) = tst.bodies.get(bi)
&& let Some(end) = cut_end_past_face(tb, fi, &ss.plane, &regions, if hi > 0.0 { 1.0 } else { -1.0 })
&& (if hi > 0.0 { end > lo } else { end < hi })
{
if hi > 0.0 {
hi = end;
} else {
lo = end;
}
curved = None;
}
if let Some(bi) = curved
&& let Some(tb) = tst.bodies.get(bi)
{
@@ -5383,7 +5603,7 @@ fn feature_tools_with_constructor(
}
}
let surroundings = if exact_planar_cut || touching_batch { None } else { Surroundings::of(st, *operation, &plain_targets) };
let join_surroundings = if *operation == Operation::Join && !touching_batch {
let join_surroundings = if *operation == Operation::Join && !touching_batch && !copy {
// Trimming may discard a tool's material, so only bodies this feature
// actually joins can establish that the discarded end is already filled.
let participants = if plain_targets.is_empty() { &f.participants } else { &plain_targets };
@@ -6381,11 +6601,19 @@ fn pattern_transforms(doc: &Document, vals: &BTreeMap<String, Value>, st: &Model
}
}
crate::PatternKind::Circular { origin, axis, count: c, angle, alignment, reversed, axis_ref, axis_feature } => {
// On an edge or round face: about it as it is now; on a construction axis: where it is.
// On an edge or round face: about it as it is now; on a construction axis: where it is;
// else through its origin, whose expressions follow the parameters (#10852).
let (origin, axis) = match (axis_ref, axis_feature) {
(Some(g), _) => crate::construct::model_axis(&construction_state(doc, st, component), g)?,
(None, Some(name)) => construction_axis_in(Some(doc), st, name, component)?,
(None, None) => (origin.0, axis.0),
(None, None) => {
let [x, y, z] = origin;
let o = Vec3::new(val(vals, x, Kind::Length)?, val(vals, y, Kind::Length)?, val(vals, z, Kind::Length)?);
if ![o.x, o.y, o.z].iter().all(|c| c.is_finite() && c.abs() < 1e9) {
return Err(DocError::Invalid("the pattern's axis origin is out of range".into()));
}
(o, axis.0)
}
};
let n = count(c)?;
let total = val(vals, angle, Kind::Angle)?;
@@ -6460,6 +6688,35 @@ fn path_at(segs: &[kernel::PathSeg], d: f64) -> (Vec3, Vec3) {
}
/// Whether a copy has no material to cut in any of its eligible targets.
/// The bodies a hole cuts: those its feature names, else its component's and its own (as
/// `apply_traced` picks a cut's targets).
fn hole_targets<'a>(st: &'a ModelState, f: &Feature) -> Vec<&'a ModelBody> {
let all = f.participants.len() == 1 && f.participants.first().is_some_and(|t| t == "*");
st.bodies
.iter()
.filter(|b| all || if f.participants.is_empty() { b.component == f.component || b.feature == f.id } else { f.participants.contains(&b.name) })
.collect()
}
/// Whether hole tool `tool` is clear of every body the hole cuts, by their boxes (#10701). Boxes
/// only: a probe boolean for every hole of a large hole pattern would double its work, and the
/// bodies' meshes are there already (the hole found its face on them). A body of another
/// component is in another frame: the hole is then not known to miss.
fn hole_misses(st: &ModelState, f: &Feature, tool: &Body) -> bool {
let targets = hole_targets(st, f);
let bounds = tool.outline_bounds();
if targets.is_empty()
|| targets.iter().any(|b| b.component != f.component)
|| bounds.is_empty()
|| !bounds.min.is_finite()
|| !bounds.max.is_finite()
{
return false;
}
let tool_box = Some(bounds.inflated(1e-6));
targets.iter().all(|b| more::boxes_apart(&tool_box, &more::mesh_box(b)))
}
fn copy_misses(st: &ModelState, f: &Feature, targets: &[String], tools: &[Traced]) -> bool {
let targets = if targets.is_empty() { &f.participants } else { targets };
let all = targets.len() == 1 && targets.first().is_some_and(|t| t == "*");
@@ -6536,7 +6793,17 @@ fn with_named_face_points(doc: &Document, state: &ModelState, f: &Feature) -> Op
if n.is_empty() {
continue;
}
match crate::name_lookup::locate_face_on_body(&fst, f.kind.face_body(), n, *p) {
let hit = crate::name_lookup::locate_face_on_body(&fst, f.kind.face_body(), n, *p);
// A hole on one of two bodies with the same face name (two bodies of one extrude, the
// pieces of a split body) is on that body's face, whole: the name is not split there
// unless that body has pieces of it too (#10699).
let hit = match hit {
Some(h) if hole_axis.is_some() && h.split && h.on_point => {
fst.bodies.get(h.body).and_then(|b| crate::name_lookup::locate_face_on_body(&fst, Some(&b.name), n, *p)).or(Some(h))
}
other => other,
};
match hit {
Some(hit) => {
if let Some(note) = hit.note(n) {
notes.push(note);
@@ -6750,7 +7017,7 @@ fn replay(
// points follow their named faces, as the feature's own did (#2121): a To Object
// extrude's copies reach the face where it is now, not where it was picked.
let moved = with_named_face_points(doc, st, src).map(|(g, _)| g);
let tools = feature_tools_with_constructor(doc, vals, moved.as_ref().unwrap_or(src), st, &mut None, &mut None)?;
let tools = feature_tools_with_constructor(doc, vals, moved.as_ref().unwrap_or(src), st, true, &mut None, &mut None)?;
for (k, m) in mats.iter().enumerate() {
let start = copies.len();
for t in &tools {
@@ -6957,6 +7224,73 @@ fn trim_to_body(tools: Vec<Traced>, target: &ModelBody, dist_to_start: impl Fn(V
Ok(out)
}
/// For a Cut To the curved face `fi` of `target`: the height above `plane` (along its normal) at
/// which a flat-ended tool over `regions`, travelling along `travel` × the normal (±1), stops in
/// the gap beyond that face. Rays over the profiles must each cross the face once, with material
/// just before it and none just after; the end is halfway across the narrowest gap to the next
/// material (at most the usual run past a curved target). `None` when that does not hold.
fn cut_end_past_face(target: &ModelBody, fi: usize, plane: &Plane, regions: &[Region2], travel: f64) -> Option<f64> {
let m = target.mesh();
let n = plane.normal();
let dir = n * travel;
let size = target.body.size();
let eps = (size * 1e-4).max(1e-6);
let margin = size * 0.05 + 1.0;
// Sample points: the outline of each profile and a grid over its inside.
let mut samples: Vec<Vec2> = Vec::new();
for r in regions {
let ring: Vec<Vec2> = r.outer.polyline(1e-2).into_iter().collect();
let step = (ring.len() / 64).max(1);
samples.extend(ring.iter().step_by(step).copied());
let (mut lo, mut hi) = (Vec2::new(f64::MAX, f64::MAX), Vec2::new(f64::MIN, f64::MIN));
for q in &ring {
lo = Vec2::new(lo.x.min(q.x), lo.y.min(q.y));
hi = Vec2::new(hi.x.max(q.x), hi.y.max(q.y));
}
for i in 0..12 {
for j in 0..12 {
let q = Vec2::new(lo.x + (hi.x - lo.x) * (i as f64 + 0.5) / 12.0, lo.y + (hi.y - lo.y) * (j as f64 + 0.5) / 12.0);
if r.contains(q) {
samples.push(q);
}
}
}
}
let height = |q: Vec3| (q - plane.origin).dot(n);
let reach = size * 4.0 + 1.0;
let (mut face_end, mut gap_end) = (f64::MIN, f64::MAX);
for q2 in samples {
let q = plane.to_world(q2);
// Every crossing of the line through `q`, in travel order, from well before the body.
let back = travel * height(q) + reach + size;
let mut o = q - dir * back;
let mut hits: Vec<(f64, usize)> = Vec::new();
while let Some((t, tri)) = m.raycast(o, dir) {
let at = o + dir * t;
hits.push((travel * height(at), *m.tri_face.get(tri)? as usize));
o = at + dir * eps;
if hits.len() > 256 {
return None;
}
}
let on_face: Vec<usize> = (0..hits.len()).filter(|&k| hits[k].1 == fi).collect();
let [k] = on_face[..] else { return None };
let e = hits[k].0;
let at = |t: f64| plane.origin + n * (travel * t) + (q - plane.origin - n * height(q));
if !m.contains(at(e - eps * 10.0)) || m.contains(at(e + eps * 10.0)) {
return None;
}
face_end = face_end.max(e);
let next = hits.iter().map(|h| h.0).filter(|&t| t > e + eps * 10.0).fold(f64::MAX, f64::min);
gap_end = gap_end.min(next);
}
if face_end == f64::MIN || gap_end - face_end < eps * 100.0 {
return None;
}
let end = face_end + ((gap_end - face_end) * 0.5).min(margin);
Some(travel * end)
}
/// One point on each face of a body (a triangle centre, so it lies on the face).
fn face_samples(b: &ModelBody) -> Vec<Vec3> {
let m = b.mesh();
@@ -7099,10 +7433,10 @@ fn face_plane(st: &ModelState, picked: &Plane, at: Vec3, name: Option<&str>) ->
let note = if crate::naming::legacy_name(name).is_some() {
None
} else if !crate::naming::face_has_name(b, f.index, name) {
Some(format!("face `{name}` was split; using the piece nearest the picked point"))
Some(format!("face `{}` was split; using the piece nearest the picked point", crate::name_lookup::quoted(name)))
} else if !crate::naming::face_name_exact(b, f.index) && (f.centroid - at).dot(n).abs() > tol {
// Named from geometry and moved off the picked plane: geometry alone decided.
Some(format!("face `{name}` was found by geometry, not exact history; check it"))
Some(format!("face `{}` was found by geometry, not exact history; check it", crate::name_lookup::quoted(name)))
} else {
None
};
@@ -7282,7 +7616,7 @@ fn eval_feature(doc: &Document, vals: &BTreeMap<String, Value>, f: &Feature, st:
| FeatureKind::Sweep { operation, targets, .. } => {
let mut constructor = None;
let mut to_body = None;
let tools = feature_tools_with_constructor(doc, vals, f, st, &mut constructor, &mut to_body)?;
let tools = feature_tools_with_constructor(doc, vals, f, st, false, &mut constructor, &mut to_body)?;
// Cuts through sheet metal become cut-outs of its flat pattern.
if matches!(operation, Operation::Cut | Operation::Intersect) && matches!(f.kind, FeatureKind::Extrude { .. }) && !st.sheets.is_empty() {
let bodies: Vec<Body> = tools.iter().map(|t| t.body.clone()).collect();
@@ -7309,7 +7643,23 @@ fn eval_feature(doc: &Document, vals: &BTreeMap<String, Value>, f: &Feature, st:
let handled = sheet_hole_cut(st, f, &tools, warning)?;
let tools: Vec<Traced> = tools.into_iter().map(|(tool, _)| tool).collect();
if handled.is_empty() {
// A hole moved off the material (a changed position, parameter or sketch point)
// cuts nothing: it says so, as a pattern does of its copies (#10701).
let missed = tools.iter().filter(|tool| hole_misses(st, f, &tool.body)).count();
let total = tools.len();
let targets: Vec<String> = hole_targets(st, f).iter().map(|b| b.name.clone()).collect();
apply_traced(doc, st, f, tools, Operation::Cut, &[])?;
match (missed, total) {
(0, _) => {}
(_, 1) => append_warning(warning, "the hole removes no material".into()),
_ => append_warning(warning, format!("{missed} of {total} holes remove no material")),
}
// A hole wider than the part takes all of it away (#10702): almost never what a
// hole means, so it says which bodies are gone.
let gone: Vec<&str> = targets.iter().map(String::as_str).filter(|n| st.body(n).is_none()).collect();
if !gone.is_empty() {
append_warning(warning, format!("the hole removes all of {}", gone.join(", ")));
}
} else {
apply_beside_sheet_cut(doc, st, f, tools, Operation::Cut, &[], &handled)?;
}
@@ -7470,23 +7820,38 @@ fn eval_feature(doc: &Document, vals: &BTreeMap<String, Value>, f: &Feature, st:
// Picks on bodies of other (moved) components are where those bodies are shown.
None => doc.resolve_plane_in(vals, plane, 0, Some(&construction_state(doc, st, f.component)))?,
};
st.construct.push(crate::construct::Construct { feature: f.id, name: f.name.clone(), geom: crate::construct::ConstructGeom::Plane(pl) });
st.construct.push(crate::construct::Construct {
feature: f.id,
name: f.name.clone(),
geom: crate::construct::ConstructGeom::Plane(pl),
bodies: Vec::new(),
});
Ok(())
}
FeatureKind::ConstructionAxis { def } => {
let (origin, dir) =
crate::construct::resolve_axis(&crate::construct::Ctx { doc, vals, st: &construction_state(doc, st, f.component), depth: 0 }, def)?;
let cst = construction_state(doc, st, f.component);
let ctx = crate::construct::Ctx { doc, vals, st: &cst, depth: 0 };
let (origin, dir) = crate::construct::resolve_axis(&ctx, def)?;
let bodies = crate::construct::source_bodies(&ctx, &def.refs());
st.construct.push(crate::construct::Construct {
feature: f.id,
name: f.name.clone(),
geom: crate::construct::ConstructGeom::Axis { origin, dir },
bodies,
});
Ok(())
}
FeatureKind::ConstructionPoint { def } => {
let p =
crate::construct::resolve_point(&crate::construct::Ctx { doc, vals, st: &construction_state(doc, st, f.component), depth: 0 }, def)?;
st.construct.push(crate::construct::Construct { feature: f.id, name: f.name.clone(), geom: crate::construct::ConstructGeom::Point(p) });
let cst = construction_state(doc, st, f.component);
let ctx = crate::construct::Ctx { doc, vals, st: &cst, depth: 0 };
let p = crate::construct::resolve_point(&ctx, def)?;
let bodies = crate::construct::source_bodies(&ctx, &def.refs());
st.construct.push(crate::construct::Construct {
feature: f.id,
name: f.name.clone(),
geom: crate::construct::ConstructGeom::Point(p),
bodies,
});
Ok(())
}
FeatureKind::BoundaryFill { tools, cells, operation, remove_tools } => {
@@ -7659,6 +8024,9 @@ fn eval_feature(doc: &Document, vals: &BTreeMap<String, Value>, f: &Feature, st:
}
let m = mirror_matrix(&pl);
let mut output = 0;
// Copies evaluated on each frame a placement is dragged, which nothing cuts or joins:
// searching their revolved faces again was nearly all that took.
let shown_only = !*combine && !placements.is_empty() && placement_reuse::copies_only_shown(doc, f);
for (k, n) in bodies.iter().enumerate() {
let i = st.bodies.iter().position(|b| &b.name == n).ok_or_else(|| DocError::Unknown(format!("body `{n}`")))?;
let Some(mb) = st.bodies.get(i).cloned() else { continue };
@@ -7675,7 +8043,12 @@ fn eval_feature(doc: &Document, vals: &BTreeMap<String, Value>, f: &Feature, st:
}
None => (None, m, m),
};
let mirrored = moved_copy(&mb, kernel::transform_matrix(&mb.body, if *combine { own } else { copy })?, 1);
let copied = if shown_only {
kernel::place_matrix(&mb.body, copy)
} else {
kernel::transform_matrix(&mb.body, if *combine { own } else { copy })
};
let mirrored = moved_copy(&mb, copied?, 1);
if *combine {
let joined = kernel::boolean(&mb.body, &mirrored.body, BoolOp::Union)?
.ok_or_else(|| DocError::Invalid("the mirror join produced nothing".into()))?;
@@ -7697,6 +8070,9 @@ fn eval_feature(doc: &Document, vals: &BTreeMap<String, Value>, f: &Feature, st:
let name = copy_body_name(st, f, output, &mb.name);
copy_sheet(st, &mb.name, &name, &copy);
let mut body = ModelBody::traced_new(name, mirrored, f.id);
if !placements.is_empty() {
body.mirrored_mesh = placed_mesh::PlacedMesh::mirrored(&mb, &body.body, &copy).map(Arc::new);
}
if let Some(c) = component.filter(|c| *c != f.component) {
// Kept in that component as a moved body is (and through later features).
body.component = c;
@@ -7955,6 +8331,9 @@ fn eval_feature(doc: &Document, vals: &BTreeMap<String, Value>, f: &Feature, st:
*slot = ModelBody::traced_new(mb.name.clone(), Traced::step(nb, &[&mb.traced()]), mb.feature);
}
}
if !*copy {
move_constructions_with(doc, st, bodies, &crate::rigid(t, Vec3::ZERO, axis, ang));
}
Ok(())
}
FeatureKind::MeshConvert { body, tolerance } => {
@@ -8090,6 +8469,36 @@ fn construction_state<'a>(doc: &Document, st: &'a ModelState, comp: u64) -> std:
state_in_frame(doc, st, comp)
}
/// Construction axes and points built on bodies a Move moves go with them (#10127): an axis
/// through a cylinder turns with the cylinder, as its faces do. Only those built from the moved
/// bodies alone (`Construct::bodies`) follow; one also held by a fixed point, a plane or another
/// body stays. `m` is the move in the bodies' own frame; each construction is kept in its
/// component's frame (`construction_state`), so the move is carried over into that frame.
fn move_constructions_with(doc: &Document, st: &mut ModelState, moved: &[crate::BodyName], m: &Mat) {
let frame_of = |feature: u64| {
let comp = doc.feature(feature).map(|f| f.component).unwrap_or(0);
if comp == 0 && !doc.occurrences.is_empty() { crate::IDENTITY } else { doc.component_transform(comp) }
};
let world: BTreeMap<&str, Mat> =
st.bodies.iter().filter(|b| moved.iter().any(|n| *n == b.name)).map(|b| (b.name.as_str(), body_world(doc, b))).collect();
let mut placed = Vec::new();
for (k, c) in st.construct.iter().enumerate() {
let Some(body) = c.bodies.first().and_then(|b| world.get(b.as_str())) else { continue };
if !c.bodies.iter().all(|b| world.contains_key(b.as_str())) {
continue;
}
let frame = frame_of(c.feature);
let (Some(body_inv), Some(frame_inv)) = (crate::mat_inverse(body), crate::mat_inverse(&frame)) else { continue };
let in_frame = crate::mat_mul(&crate::mat_mul(&frame_inv, body), &crate::mat_mul(m, &crate::mat_mul(&body_inv, &frame)));
placed.push((k, c.geom.placed(&in_frame)));
}
for (k, geom) in placed {
if let Some(c) = st.construct.get_mut(k) {
c.geom = geom;
}
}
}
/// Whether `plane` is given by the origin planes and numbers alone.
fn plane_is_fixed(plane: &PlaneRef) -> bool {
match plane {
@@ -8110,6 +8519,7 @@ fn plane_reads_geometry(plane: &PlaneRef) -> bool {
PlaneRef::ThroughPoint { .. }
| PlaneRef::Midplane { .. }
| PlaneRef::TwoEdges { .. }
| PlaneRef::AxisPoint { .. }
| PlaneRef::ThreePoints { .. }
| PlaneRef::Tangent { .. }
| PlaneRef::AlongPath { .. }
@@ -8374,7 +8784,8 @@ impl PlacedBodies {
if let Some(placed) = self.taken(b, m, &name) {
return placed;
}
match kernel::place_matrix(&b.body, *m) {
let body = if crate::is_identity(m) { Ok(b.body.clone()) } else { kernel::place_matrix(&b.body, *m) };
match body {
Ok(body) => {
let mut fresh = ModelBody::new(name, body, b.feature);
fresh.mesh_placement = placed_mesh::PlacedMesh::new(b, m).map(Arc::new);
@@ -8480,6 +8891,12 @@ fn placed_key(b: &ModelBody, m: &crate::Mat) -> (usize, [u64; 16]) {
(Arc::as_ptr(&b.mesh) as usize, bits)
}
/// Whether a world state shows `b`, placed by `m`, apart from the model's body. A mirrored copy
/// always is: it is drawn from its source's opposite hand, and the model keeps its own triangles.
fn placed_apart(b: &ModelBody, m: &crate::Mat) -> bool {
!crate::is_identity(m) || b.mirrored_mesh.is_some()
}
/// [`world_state`], reusing the bodies `placed` holds from an earlier call and leaving it holding
/// this call's.
pub fn world_state_reusing(doc: &Document, st: &ModelState, placed_before: &mut PlacedBodies) -> ModelState {
@@ -8487,7 +8904,10 @@ pub fn world_state_reusing(doc: &Document, st: &ModelState, placed_before: &mut
return st.clone();
}
let mut placed_now = PlacedBodies::default();
let comp_of_feature = |id: u64| doc.feature(id).map(|f| f.component).unwrap_or(0);
// Looked up once: every sketch, construction and tap asked the timeline, and every placement
// went through all bodies, each time searching (a large assembly paid this every command).
let feature_components: std::collections::HashMap<u64, u64> = doc.features.iter().rev().map(|f| (f.id, f.component)).collect();
let comp_of_feature = |id: u64| feature_components.get(&id).copied().unwrap_or(0);
let first_path = |comp: u64| -> Vec<u64> {
let mut path = Vec::new();
let mut c = comp;
@@ -8510,11 +8930,28 @@ pub fn world_state_reusing(doc: &Document, st: &ModelState, placed_before: &mut
let mut jobs = Vec::new();
let owners = doc.model_body_components(st);
let names = crate::WorldNames::new(doc, st);
let bodies_of = |comp: u64| st.bodies.iter().zip(&owners).filter(move |(_, owner)| **owner == comp).map(|(b, _)| b);
let mut by_component: std::collections::HashMap<u64, Vec<&ModelBody>> = std::collections::HashMap::new();
for (b, owner) in st.bodies.iter().zip(&owners) {
by_component.entry(*owner).or_default().push(b);
}
let bodies_of = |comp: u64| by_component.get(&comp).into_iter().flatten().copied();
// Each tap's component and the offset of the body it is on (the first body of that name).
let mut first_body: std::collections::HashMap<&str, (&ModelBody, u64)> = std::collections::HashMap::new();
for (b, owner) in st.bodies.iter().zip(&owners).rev() {
first_body.insert(b.name.as_str(), (b, *owner));
}
let tap_frames: Vec<(u64, Option<&crate::Mat>)> = st
.threads
.iter()
.map(|t| match first_body.get(t.body.as_str()) {
Some((body, owner)) => (*owner, doc.model_body_offset(body)),
None => (comp_of_feature(t.feature), None),
})
.collect();
for (comp, path, m) in &placements {
for b in bodies_of(*comp) {
let bm = body_matrix(b, m);
if !crate::is_identity(&bm) {
if placed_apart(b, &bm) {
jobs.push((b, bm, names.name(&b.name, *comp, path)));
}
}
@@ -8532,7 +8969,7 @@ pub fn world_state_reusing(doc: &Document, st: &ModelState, placed_before: &mut
let bm = body_matrix(b, &m);
// Identical geometry also shares its display mesh cell with the definition.
// A changed placement keeps a distinct mesh, at that placement's coordinates.
let mut placed = if crate::is_identity(&bm) {
let mut placed = if !placed_apart(b, &bm) {
let mut placed = b.clone();
placed.name = names.name(&b.name, comp, &path);
placed
@@ -8590,14 +9027,10 @@ pub fn world_state_reusing(doc: &Document, st: &ModelState, placed_before: &mut
}
}
// Unlike editable sketch guides, cosmetic surfaces belong to every occurrence.
for t in st
.threads
.iter()
.filter(|t| st.body(&t.body).map(|body| doc.model_body_component(body)).unwrap_or_else(|| comp_of_feature(t.feature)) == comp)
{
for (t, (_, offset)) in st.threads.iter().zip(&tap_frames).filter(|(_, (owner, _))| *owner == comp) {
let mut t2 = t.clone();
t2.body = names.name(&t.body, comp, &path);
let frame = st.body(&t.body).and_then(|body| doc.model_body_offset(body)).map(|offset| crate::mat_mul(&m, offset)).unwrap_or(m);
let frame = offset.map(|offset| crate::mat_mul(&m, offset)).unwrap_or(m);
t2.axis_point = crate::apply_point(&frame, t.axis_point);
t2.axis = crate::apply_vector(&frame, *t.axis).unit().unwrap_or(t.axis);
out.threads.push(t2);
@@ -8782,7 +9215,7 @@ mod chain_tests {
#[cfg(test)]
#[path = "eval_cost_tests.rs"]
mod cost_tests;
pub(crate) mod cost_tests;
#[cfg(test)]
#[path = "eval_whole_face_tests.rs"]
+637 -2
View File
@@ -12,20 +12,37 @@ use solidcraft_geom::{Plane, Vec2, Vec3};
use solidcraft_kernel as kernel;
use solidcraft_sketch::Sketch;
use crate::eval::{PlacementReads, body_world, hash_placement, placement_digest};
use crate::*;
/// Work counted on this thread: bodies moved, STEP texts digested, joint faces and bodies
/// measured.
/// measured, bodies searched for by name, features searched for by id, bodies a cut (or
/// intersect) ran its booleans on, and bodies searched for the cylinder a tap marking lies on.
#[derive(Clone, Copy, Debug, Default, PartialEq)]
pub(super) struct Counts {
pub moved: usize,
pub digested: usize,
pub joint_faces: usize,
pub measures: usize,
pub body_searches: usize,
pub feature_searches: usize,
pub cut: usize,
pub cylinder_search: usize,
}
thread_local! {
static COUNTS: Cell<Counts> = const { Cell::new(Counts { moved: 0, digested: 0, joint_faces: 0, measures: 0 }) };
static COUNTS: Cell<Counts> = const {
Cell::new(Counts {
moved: 0,
digested: 0,
joint_faces: 0,
measures: 0,
body_searches: 0,
feature_searches: 0,
cut: 0,
cylinder_search: 0,
})
};
}
pub(super) fn count(f: impl FnOnce(&mut Counts)) {
@@ -36,6 +53,33 @@ pub(super) fn count(f: impl FnOnce(&mut Counts)) {
});
}
thread_local! {
static WRITTEN: Cell<usize> = const { Cell::new(0) };
}
/// A feature written out on this thread to be fingerprinted.
pub(super) fn count_written() {
WRITTEN.with(|c| c.set(c.get() + 1));
}
/// The features `f` writes out on this thread to fingerprint them.
fn written(f: impl FnOnce()) -> usize {
WRITTEN.with(|c| c.set(0));
f();
WRITTEN.with(Cell::get)
}
/// A search on this thread through all of a design's features for one.
pub(crate) fn count_feature_search() {
count(|c| c.feature_searches += 1);
}
/// The searches `f` makes on this thread through all features or all bodies.
fn searched(f: impl FnOnce()) -> usize {
let n = counted(f);
n.feature_searches + n.body_searches
}
/// The work `f` does on this thread.
fn counted(f: impl FnOnce()) -> Counts {
COUNTS.with(|c| c.set(Counts::default()));
@@ -143,6 +187,25 @@ fn joint_face_measurements_never_follow_a_replaced_body_or_stale_offset() {
assert_eq!(work.joint_faces, 0, "offsets are applied after the shared face measurements");
}
/// Every solve of a drag resolves its edge origins again: they share the joint faces' one
/// measurement, as a face origin does, instead of tessellating the whole body each time.
#[test]
fn an_edge_origin_measures_its_faces_once() {
use crate::joints::{JointOrigin, Snap};
let doc = Document::new("edge origin");
let mut state = ModelState::default();
state.bodies.push(ModelBody::new("Block".into(), kernel::box_solid(Vec3::ZERO, Vec3::new(10.0, 10.0, 10.0)).unwrap(), 0));
let pick = Vec3::new(5.0, 0.0, 10.0);
let origin = JointOrigin { occurrence: 0, snap: Snap::Edge { pick, edge: None, face: None, corner: None, axis: None } };
let work = counted(|| {
for _ in 0..8 {
let frame = joints::resolve_origin(&doc, &state.clone(), &origin).unwrap();
assert!(apply_point(&frame, Vec3::ZERO).dist(pick) < 1e-9);
}
});
assert_eq!(work.joint_faces, 1, "a solve must not measure the faces again: {work:?}");
}
/// `parts` imported files of two boxes each, every one in its own component placed away from
/// the origin (as inserted parts are).
fn placed_imports(parts: usize) -> Document {
@@ -358,6 +421,132 @@ fn an_imported_file_is_fingerprinted_by_its_text() {
assert_eq!(model.state().bodies.len(), 3);
}
/// Pinning body names fingerprints the timeline again only from the first renamed feature on
/// (`Model::pinned_prefix`), and gives the fingerprints the full pass gives: random pins
/// on a timeline of boxes, cuts, patterns of features (one placed before its source, as one made
/// with the timeline rolled back is), a suppressed feature and a history marker, after an
/// evaluation and after earlier pins.
#[test]
fn pinning_body_names_fingerprints_as_the_full_pass_does() {
let kind = |v: serde_json::Value| serde_json::from_value::<FeatureKind>(v).unwrap();
let mut doc = Document::new("pins");
let mut ids = Vec::new();
for i in 0..10 {
let x = 20.0 * i as f64;
let b =
kind(serde_json::json!({"type": "box", "corner": [x, 0.0, 0.0], "length": "10", "width": "10", "height": "10", "operation": "new_body"}));
ids.push(doc.add_feature(b, None).unwrap());
if i % 3 == 1 {
let c = kind(
serde_json::json!({"type": "cylinder", "axis": [0.0, 0.0, 1.0], "base": [x + 5.0, 5.0, -1.0], "height": "12", "radius": "2", "operation": "cut"}),
);
ids.push(doc.add_feature(c, None).unwrap());
}
}
let circular = |features: Vec<u64>| {
kind(serde_json::json!({"type": "pattern", "features": features, "bodies": [],
"pattern": {"type": "circular", "angle": "360 deg", "axis": [0.0, 0.0, 1.0], "count": "3", "origin": [0.0, -40.0, 0.0]}}))
};
ids.push(doc.add_feature(circular(vec![ids[2]]), None).unwrap());
// A pattern of a later feature, placed early in the timeline.
let early = doc.add_feature(circular(vec![ids[9]]), None).unwrap();
let at = doc.features.iter().position(|f| f.id == early).unwrap();
let f = doc.features.remove(at);
doc.features.insert(3, f);
ids.push(early);
doc.feature_mut(ids[5]).unwrap().suppressed = true;
let mut seed = 0x2545_f491_4f6c_dd1du64;
let mut next = |n: usize| {
seed ^= seed << 13;
seed ^= seed >> 7;
seed ^= seed << 17;
(seed % n as u64) as usize
};
let fps = |m: &Model| m.results.iter().map(|r| (r.id, r.fingerprint)).collect::<Vec<_>>();
let mut old = Arc::new(doc);
let mut model = Model::new();
model.evaluate_shared(&old);
let (mut proven, mut kept) = (0, 0);
for round in 0..60 {
if round % 20 == 10 {
// From an evaluation's fingerprints again, with the marker in some rounds.
let mut d = (*old).clone();
d.marker = (round == 30).then_some(d.features.len() - 2);
old = Arc::new(d);
model.evaluate_shared(&old);
}
let mut new = (*old).clone();
let mut renamed = Vec::new();
for _ in 0..1 + next(3) {
let f = &mut new.features[next(old.features.len())];
let slot = next(3);
f.body_names.resize(f.body_names.len().max(slot + 1), String::new());
f.body_names[slot] = format!("Pinned {round} {slot}");
renamed.push(f.id);
}
new.reserved_body_names.insert(format!("Body{}", 100 + round));
let new = Arc::new(new);
let start = model.pinned_prefix(&old, &renamed);
let first = new.features.iter().position(|f| renamed.contains(&f.id)).unwrap();
assert!(start <= first, "round {round}: kept {start} past the first renamed feature {first}");
proven += usize::from(start > 0);
kept += start;
let mut partial = model.clone();
partial.refingerprint_shared(&new, start);
let mut full = model.clone();
full.refingerprint_shared(&new, 0);
assert_eq!(fps(&partial), fps(&full), "round {round}");
assert_ne!(fps(&partial), fps(&model), "round {round}: the names are fingerprinted");
// The pinned fingerprints prove themselves for the next pin, as the full pass's do.
assert_eq!(partial.fingerprinted.as_ref().map(|(_, d)| *d), full.fingerprinted.as_ref().map(|(_, d)| *d));
model = partial;
old = new;
}
assert!(proven > 40 && kept > 0, "the stored fingerprints were reused: {proven} rounds, {kept} results");
// No proof, no reuse: results changed since, another design, or the design about to change
// in place.
let last = [*ids.last().unwrap()];
assert!(model.pinned_prefix(&old, &last) > 0);
let mut changed = model.clone();
changed.results[0].fingerprint ^= 1;
assert_eq!(changed.pinned_prefix(&old, &last), 0);
assert_eq!(model.pinned_prefix(&Arc::new((*old).clone()), &last), 0);
let mut forgot = model.clone();
forgot.forget_fingerprints();
assert_eq!(forgot.pinned_prefix(&old, &last), 0);
}
/// A design evaluated ahead, on a worker thread of its own, fingerprints its features from the
/// texts the window's evaluation wrote: none is written out again there (the store was per
/// thread, and every ahead run started it empty), and the fingerprints are the same.
#[test]
fn an_evaluation_on_another_thread_reuses_the_written_features() {
let mut doc = Document::new("ahead");
// Ids no other test's design uses: the store is shared by the tests running beside this one.
doc.next_id = 0x0007_e57a_4ead_0000;
for i in 0..40 {
let x = 20.0 * i as f64;
let b = serde_json::json!({"type": "box", "corner": [x, 0.0, 0.0], "length": "10", "width": "10", "height": "10", "operation": "new_body"});
doc.add_feature(serde_json::from_value(b).unwrap(), None).unwrap();
}
let mut window = Model::new();
let first = written(|| window.evaluate(&doc));
assert!(first >= doc.features.len(), "{first} written");
let fps = |m: &Model| m.results.iter().map(|r| r.fingerprint).collect::<Vec<_>>();
let (doc2, mut ahead) = (doc.clone(), window.clone());
ahead.no_cache = true;
let (work, ahead_fps) = std::thread::spawn(move || {
let work = written(|| ahead.evaluate(&doc2));
(work, fps(&ahead))
})
.join()
.unwrap();
assert_eq!(work, 0, "features written out again");
assert_eq!(ahead_fps, fps(&window));
}
/// A 10 mm square plate per hole along X, 4 mm thick, in component `comp`, with `holes` square
/// holes cut through it by boxes drawn in component `tools` (the plate's own, usually). The
/// plate's body name.
@@ -709,3 +898,449 @@ fn saved_states_read_back_their_sketch_keys() {
assert!(with_sets(sets).final_state().is_err(), "base {base}");
}
}
/// The dirty check and autosave compare the whole document after every edit; a scanned
/// part's shared triangles must not be read for that. A coordinate that equals nothing (not a
/// number) shows whether the shared arrays were read: only reading them makes a mesh differ
/// from its own copy.
#[test]
fn comparing_a_copied_mesh_does_not_read_its_shared_arrays() {
let mesh = MeshData {
name: "Scan".into(),
positions: Arc::from([0., 0., 0., 1., 0., 0., 0., 1., f64::NAN]),
triangles: Arc::from([0, 1, 2]),
color: None,
};
let copy = mesh.clone();
assert!(copy == mesh, "a copy shares the arrays and is the same mesh without reading them");
let mut renamed = mesh.clone();
renamed.name = "Other".into();
assert!(renamed != mesh);
let mut coloured = mesh.clone();
coloured.color = Some([0.2, 0.4, 0.6]);
assert!(coloured != mesh);
let unshared = MeshData { positions: Arc::from(mesh.positions.to_vec()), ..mesh.clone() };
assert!(unshared != mesh, "arrays that are not shared still compare value by value");
let finite = MeshData { positions: Arc::from([0., 0., 0., 1., 0., 0., 0., 1., 0.]), ..mesh.clone() };
let equal = MeshData { positions: Arc::from(finite.positions.to_vec()), triangles: Arc::from(finite.triangles.to_vec()), ..finite.clone() };
assert!(equal == finite, "equal values in other arrays are the same mesh");
let flipped = MeshData { triangles: Arc::from([0, 2, 1]), ..finite.clone() };
assert!(flipped != finite);
}
/// `blocks` boxes, each its own body, in component `comp`, then a cut box without targets
/// through each of the first `cuts` (it cuts every body of its component).
fn blocks_with_cuts(doc: &mut Document, comp: u64, blocks: usize, cuts: usize) {
let y = 100.0 * comp as f64;
for k in 0..blocks {
let corner = point_expr(Vec3::new(20.0 * k as f64, y, 0.0));
let kind = FeatureKind::Box { corner, length: "10".into(), width: "10".into(), height: "4".into(), operation: Operation::NewBody };
let id = doc.add_feature(kind, None).unwrap();
doc.feature_mut(id).unwrap().component = comp;
}
for k in 0..cuts {
let corner = point_expr(Vec3::new(20.0 * k as f64 + 4.0, y + 4.0, -1.0));
let kind = FeatureKind::Box { corner, length: "2".into(), width: "2".into(), height: "6".into(), operation: Operation::Cut };
let id = doc.add_feature(kind, None).unwrap();
doc.feature_mut(id).unwrap().component = comp;
}
}
#[test]
fn an_evaluation_from_the_cache_does_not_search_the_bodies_for_each_cut() {
// Each cut reads where every body of its component is placed; looking each one up by name
// made an evaluation quadratic in the bodies, even with every feature taken from the cache.
let searches = |blocks: usize| {
let mut doc = Document::new("blocks");
blocks_with_cuts(&mut doc, 0, blocks, 3);
let mut model = Model::new();
model.evaluate(&doc);
assert!(model.results.iter().all(|r| r.error.is_none()), "{:?}", model.results.iter().find(|r| r.error.is_some()));
let work = counted(|| model.evaluate(&doc));
assert_eq!(model.last_recomputed, 0);
work.body_searches
};
let (few, many) = (searches(4), searches(24));
assert_eq!(few, many, "searches grew with the bodies: {few} for 4 blocks, {many} for 24");
}
/// The bodies part of the placement digest as it was before the bodies were looked up once:
/// each body searched by name, placed through [`body_world`].
fn digest_searching_each_body(doc: &Document, f: &Feature, st: &ModelState) -> u64 {
use std::hash::{Hash, Hasher};
let mut reads = PlacementReads::default();
reads.drawn_targets(Some(st), f);
let inverse = mat_inverse(&doc.component_transform(f.component)).unwrap();
let mut h = std::collections::hash_map::DefaultHasher::new();
for name in &reads.bodies {
name.hash(&mut h);
match st.body(name) {
Some(b) => hash_placement(&mat_mul(&inverse, &body_world(doc, b)), &mut h),
None => u8::MAX.hash(&mut h),
}
}
h.finish() | 1
}
#[test]
fn looking_bodies_up_once_keeps_every_placement_digest() {
// Two parts placed apart, a body moved into the other part and one moved within its part:
// each cut's digest is the one searching each body gave, bit for bit, so saved caches stay
// valid.
let mut doc = Document::new("digests");
let a = doc.add_component(Some("A"), 0).unwrap();
let b = doc.add_component(Some("B"), 0).unwrap();
blocks_with_cuts(&mut doc, a, 5, 2);
blocks_with_cuts(&mut doc, b, 4, 2);
blocks_with_cuts(&mut doc, 0, 3, 1);
place(&mut doc, a, rigid(Vec3::new(3.0, -7.0, 1.5), Vec3::ZERO, Vec3::Z, 0.4));
place(&mut doc, b, rigid(Vec3::new(-20.0, 5.0, 0.0), Vec3::ZERO, Vec3::X, 0.25));
let mut model = Model::new();
model.evaluate(&doc);
let names: Vec<String> = model.state().bodies.iter().map(|b| b.name.clone()).collect();
assert_eq!(names.len(), 12);
doc.body_components.insert(names[1].clone(), b);
doc.body_offsets.insert(names[2].clone(), rigid(Vec3::new(0.0, 0.0, 2.0), Vec3::ZERO, Vec3::Y, 0.1));
doc.body_offsets.insert(names[6].clone(), rigid(Vec3::new(1.0, 1.0, 0.0), Vec3::ZERO, Vec3::Z, -0.3));
model.evaluate(&doc);
let st = model.state();
let cuts: Vec<&Feature> = doc.features.iter().filter(|f| matches!(f.kind, FeatureKind::Box { operation: Operation::Cut, .. })).collect();
assert_eq!(cuts.len(), 5);
for f in cuts {
let digest = placement_digest(&doc, f, Some(&st));
assert_ne!(digest, 0);
assert_eq!(digest, digest_searching_each_body(&doc, f, &st), "cut {}", f.id);
}
}
/// `comps` parts, each with `bodies` boxes, `sketches` sketches and `taps` taps, placed `copies`
/// times: a design and its state, made without evaluating it.
fn placed_parts(comps: usize, bodies: usize, sketches: usize, taps: usize, copies: usize) -> (Document, ModelState) {
let mut doc = Document::new("placed parts");
let mut one = Document::new("one sketch");
one.add_feature(line_sketch(PlaneRef::Origin { name: "XY".into() }, Vec2::new(3.0, 4.0)), None).unwrap();
let mut m = Model::new();
m.evaluate(&one);
let solved = m.state().sketches.first().unwrap().clone();
let mut st = ModelState::default();
let solid = kernel::box_solid(Vec3::ZERO, Vec3::new(2.0, 3.0, 4.0)).unwrap();
for c in 0..comps {
let comp = doc.add_component(Some(&format!("C{c}")), 0).unwrap();
let o = doc.occurrences.iter_mut().find(|o| o.component == comp).unwrap();
o.transform = rigid(Vec3::new(10.0 * c as f64, 0.0, 0.0), Vec3::ZERO, Vec3::Z, 0.01 * c as f64);
for k in 1..copies {
doc.add_occurrence(comp, 0, rigid(Vec3::new(10.0 * c as f64, 20.0 * k as f64, 0.0), Vec3::ZERO, Vec3::Z, 0.02 * k as f64)).unwrap();
}
let mut names = Vec::new();
for b in 0..bodies {
let kind =
serde_json::from_value(serde_json::json!({"type": "box", "corner": [0, 0, 0], "length": "2", "width": "3", "height": "4"})).unwrap();
let name = format!("B{c}_{b}");
let id = doc.add_feature(kind, Some(&name)).unwrap();
doc.feature_mut(id).unwrap().component = comp;
st.bodies.push(ModelBody::new(name.clone(), solid.clone(), id));
names.push((name, id));
}
for s in 0..sketches {
let id = doc.add_feature(line_sketch(PlaneRef::Origin { name: "XY".into() }, Vec2::new(1.0 + s as f64, 2.0)), None).unwrap();
doc.feature_mut(id).unwrap().component = comp;
let mut s2 = SolvedSketch::clone(&solved);
s2.feature = id;
st.sketches.push(Arc::new(s2));
}
for t in 0..taps {
let (body, feature) = names[t % names.len()].clone();
st.threads.push(ThreadInfo {
feature,
body,
designation: "M6".into(),
major_diameter: 6.0,
radius: 3.0,
pitch: 1.0,
internal: true,
handedness: Default::default(),
axis_point: Vec3::new(1.0, 1.0, 0.0),
axis: solidcraft_geom::UnitVec3::Z,
start: 0.0,
end: 4.0,
});
}
}
(doc, st)
}
#[test]
fn placing_parts_looks_each_sketch_and_tap_up_once() {
// A large assembly searched all features for every sketch and construction, and all bodies
// twice for every tap and placement, each time its world state was made (every command).
let searches = |sketches: usize, taps: usize| {
let (doc, state) = placed_parts(4, 2, sketches, taps, 3);
let mut world = ModelState::default();
let n = searched(|| world = world_state(&doc, &state));
assert_eq!(world.bodies.len(), 4 * 2 * 3);
assert_eq!(world.sketches.len(), 4 * sketches);
assert_eq!(world.threads.len(), 4 * taps * 3);
n
};
assert_eq!(searches(8, 6), searches(1, 1));
}
#[test]
fn a_placed_tap_follows_its_body_offset() {
let (mut doc, state) = placed_parts(1, 1, 0, 1, 1);
let comp = doc.components[0].id;
doc.body_offsets.insert("B0_0".into(), rigid(Vec3::new(0.0, 0.0, 7.0), Vec3::ZERO, Vec3::Z, 0.0));
let world = world_state(&doc, &state);
let tap = world.threads.first().unwrap();
let expected =
apply_point(&mat_mul(&doc.component_transform(comp), &rigid(Vec3::new(0.0, 0.0, 7.0), Vec3::ZERO, Vec3::Z, 0.0)), Vec3::new(1.0, 1.0, 0.0));
assert!(tap.axis_point.dist(expected) < 1e-9, "{:?} {expected:?}", tap.axis_point);
}
/// What adding a feature of `kind` at the end of `doc` did to the bodies already there: how many
/// its cut ran booleans on, and which it left exactly as they were (the same geometry, its name,
/// key and face names carried over). A cut that cannot reach a body hands it back as it was, and
/// must not pay a whole boolean to find that out (#10225); the sheet metal hole (#10226) and the
/// cosmetic thread (#10227) check their own shortcuts with it too.
pub(super) struct CutWork {
pub cut: usize,
pub kept: Vec<String>,
pub model: Model,
}
pub(super) fn cut_work(doc: &mut Document, kind: FeatureKind) -> CutWork {
let mut model = Model::new();
model.evaluate(doc);
let id = doc.add_feature(kind, None).unwrap();
let work = counted(|| model.evaluate(doc));
let result = model.result(id).unwrap();
assert_eq!(result.error, None, "the feature builds");
let before = model.state_before(id);
let kept = result
.state
.bodies
.iter()
.filter(|b| {
before
.body(&b.name)
.is_some_and(|old| old.body.same(&b.body) && old.key == b.key && crate::naming::face_names(old) == crate::naming::face_names(b))
})
.map(|b| b.name.clone())
.collect();
CutWork { cut: work.cut, kept, model }
}
/// A box body named `name`, `size` long on each side from `corner`.
fn block(doc: &mut Document, name: &str, corner: Vec3, size: [f64; 3]) {
let id = doc
.add_feature(
FeatureKind::Box {
corner: point_expr(corner),
length: size[0].to_string().into(),
width: size[1].to_string().into(),
height: size[2].to_string().into(),
operation: Operation::NewBody,
},
None,
)
.unwrap();
doc.feature_mut(id).unwrap().body_names = vec![name.into()];
}
/// A cylinder that cuts, standing on `base` along Z.
fn cutter(base: Vec3, radius: f64, height: f64) -> FeatureKind {
FeatureKind::Cylinder {
base: point_expr(base),
axis: Dir(Vec3::Z),
radius: radius.to_string().into(),
height: height.to_string().into(),
operation: Operation::Cut,
references: Vec::new(),
}
}
/// A cut leaves the bodies its tool cannot reach as they were, without a boolean on each: in a
/// design of many bodies those booleans were most of a hole's time (#10225).
#[test]
fn a_cut_leaves_bodies_it_cannot_reach_as_they_were() {
let mut doc = Document::new("far");
block(&mut doc, "Near", Vec3::ZERO, [50.0, 40.0, 30.0]);
// 0.5 mm clear of the tool, and far off.
block(&mut doc, "Beside", Vec3::new(13.5, 0.0, 0.0), [20.0, 40.0, 30.0]);
for i in 0..5 {
block(&mut doc, &format!("Far{i}"), Vec3::new(200.0 * (i + 1) as f64, 0.0, 0.0), [50.0, 40.0, 30.0]);
}
// Near and Beside overlap; the hole goes through Near only, beside Beside.
let work = cut_work(&mut doc, cutter(Vec3::new(10.0, 20.0, -5.0), 3.0, 40.0));
assert_eq!(work.cut, 1, "only the body the tool reaches goes through the boolean");
assert_eq!(work.kept, ["Beside", "Far0", "Far1", "Far2", "Far3", "Far4"]);
assert!(volume(&work.model, "Near") < 60_000.0 - 800.0, "and it is cut");
}
/// A cut still goes through the boolean wherever its tool reaches a body or comes close: on a
/// face, along a line, a hair beside it, into a dome above its edge circle. (Bodies its tool
/// cannot reach are left out of it: `a_cut_leaves_bodies_it_cannot_reach_as_they_were`.)
#[test]
fn a_cut_still_runs_where_its_tool_touches_grazes_or_meets_a_curved_face() {
// A cylinder whose side is tangent to the face x = 50, one a hair clear of it, one 0.1 mm in.
for (x, cuts) in [(53.0, false), (53.0005, false), (52.9, true)] {
let mut doc = Document::new("graze");
block(&mut doc, "A", Vec3::ZERO, [50.0, 40.0, 30.0]);
let work = cut_work(&mut doc, cutter(Vec3::new(x, 20.0, 0.0), 3.0, 30.0));
assert_eq!(work.cut, 1, "the tool at x = {x} goes through the boolean");
let v = volume(&work.model, "A");
assert_eq!(v < 60_000.0 - 1.0, cuts, "the tool at x = {x} cuts material: {v}");
assert!(!cuts || work.kept.is_empty(), "a body cut is a new body");
}
// A box meeting the block only along its top edge.
let mut doc = Document::new("edge");
block(&mut doc, "A", Vec3::ZERO, [50.0, 40.0, 30.0]);
let along = FeatureKind::Box {
corner: point_expr(Vec3::new(50.0, 0.0, 30.0)),
length: "10".into(),
width: "40".into(),
height: "10".into(),
operation: Operation::Cut,
};
assert_eq!(cut_work(&mut doc, along).cut, 1);
// A dome: a sphere's cap rising 10 mm above the circle it stands on. A thin tool drilled into
// its top near the apex, well above that circle, cuts it.
let mut doc = Document::new("dome");
doc.add_feature(FeatureKind::Sphere { center: point_expr(Vec3::new(0.0, 0.0, -10.0)), radius: "20".into(), operation: Operation::NewBody }, None)
.unwrap();
let below = FeatureKind::Box {
corner: point_expr(Vec3::new(-30.0, -30.0, -40.0)),
length: "60".into(),
width: "60".into(),
height: "40".into(),
operation: Operation::Cut,
};
doc.add_feature(below, None).unwrap();
let mut model = Model::new();
model.evaluate(&doc);
let dome = model.state().bodies[0].name.clone();
let whole = volume(&model, &dome);
let work = cut_work(&mut doc, cutter(Vec3::new(2.0, 1.0, 8.0), 1.0, 5.0));
assert_eq!(work.cut, 1);
assert!(volume(&work.model, &dome) < whole - 1.0, "the drill cuts into the dome");
assert!(work.kept.is_empty());
}
/// A cylinder body named `name` standing on `base` along Z.
fn shaft(doc: &mut Document, name: &str, base: Vec3, radius: f64, height: f64) {
let id = doc
.add_feature(
FeatureKind::Cylinder {
base: point_expr(base),
axis: Dir(Vec3::Z),
radius: radius.to_string().into(),
height: height.to_string().into(),
operation: Operation::NewBody,
references: Vec::new(),
},
None,
)
.unwrap();
doc.feature_mut(id).unwrap().body_names = vec![name.into()];
}
/// The work of adding `kind` at the end of `doc`, and the tap markings the design then has.
fn marking_work(doc: &mut Document, kind: FeatureKind) -> (Counts, Vec<ThreadInfo>) {
let mut model = Model::new();
model.evaluate(doc);
let id = doc.add_feature(kind, None).unwrap();
let work = counted(|| model.evaluate(doc));
assert_eq!(model.result(id).unwrap().error, None, "the feature builds");
(work, model.state().threads.clone())
}
/// A cosmetic tap marking at `p`.
fn marking(p: Vec3) -> FeatureKind {
FeatureKind::Thread { face: FacePick(p), designation: Some("M6".into()), length: None, modeled: false, handedness: ThreadHandedness::Right }
}
/// A tap marking looks for its cylinder in the bodies near it only: each body searched was
/// tessellated again, so many markings in a design of many bodies took quadratic time (#10227).
#[test]
fn a_tap_marking_searches_only_the_bodies_near_it() {
let mut doc = Document::new("far");
shaft(&mut doc, "Shaft", Vec3::ZERO, 3.0, 6.0);
for i in 0..5 {
block(&mut doc, &format!("Far{i}"), Vec3::new(200.0 * (i + 1) as f64, 0.0, 0.0), [50.0, 40.0, 30.0]);
}
let (work, threads) = marking_work(&mut doc, marking(Vec3::new(3.0, 0.0, 3.0)));
assert_eq!(work.cylinder_search, 1, "only the shaft is searched");
assert_eq!(threads.len(), 1);
assert_eq!(threads[0].body, "Shaft");
assert_eq!(threads[0].designation, "M6");
assert!((threads[0].radius - 3.0).abs() < 1e-6 && !threads[0].internal);
// A tapped hole in a plate among far bodies: only the plate is searched for its wall.
let mut doc = Document::new("tapped");
block(&mut doc, "Plate", Vec3::ZERO, [60.0, 60.0, 12.0]);
for i in 0..5 {
block(&mut doc, &format!("Far{i}"), Vec3::new(200.0 * (i + 1) as f64, 0.0, 0.0), [50.0, 40.0, 30.0]);
}
let hole = FeatureKind::Hole {
position: FacePick(Vec3::new(30.0, 30.0, 12.0)),
at: None,
direction: Dir(-Vec3::Z),
diameter: "5".into(),
depth: Some("10".into()),
hole: HoleKind::default(),
points: None,
thread: Some("M6".into()),
thread_depth: None,
handedness: ThreadHandedness::Right,
to: None,
references: Vec::new(),
};
let (work, threads) = marking_work(&mut doc, hole);
assert_eq!(work.cylinder_search, 1, "only the plate is searched");
assert_eq!(threads.len(), 1);
assert_eq!(threads[0].body, "Plate");
assert!(threads[0].internal && (threads[0].radius - 2.5).abs() < 1e-6);
}
/// Bodies within reach of a tap marking are still searched: the shaft it lies on, a block 3 mm
/// off (within a twentieth of the block's size, where the cylinder search itself looks), and one
/// 3.6 mm off (just past it, but within the margin the boxes keep); a block 4.5 mm off is not.
/// The marking stays on the shaft.
#[test]
fn a_tap_marking_still_searches_the_bodies_within_its_reach() {
let mut doc = Document::new("near");
shaft(&mut doc, "Shaft", Vec3::ZERO, 3.0, 6.0);
// Each block is 50 x 40 x 30 (a twentieth of its size is 3.54 mm), its face x = 3 + gap.
for (name, gap) in [("Close", 3.0), ("Edge", 3.6), ("Clear", 4.5)] {
block(&mut doc, name, Vec3::new(3.0 + gap, -20.0, 0.0), [50.0, 40.0, 30.0]);
}
let (work, threads) = marking_work(&mut doc, marking(Vec3::new(3.0, 0.0, 3.0)));
assert_eq!(work.cylinder_search, 3, "the shaft, Close and Edge are searched");
assert_eq!(threads.len(), 1);
assert_eq!(threads[0].body, "Shaft");
// A pin in a hole a hair wider: a marking on the pin, and one on the hole's wall.
for (p, body, internal) in [(Vec3::new(2.0, 0.0, 5.0), "Pin", false), (Vec3::new(2.5, 0.0, 5.0), "Plate", true)] {
let mut doc = Document::new("pin");
block(&mut doc, "Plate", Vec3::new(-20.0, -20.0, 0.0), [40.0, 40.0, 10.0]);
let bore = FeatureKind::Cylinder {
base: point_expr(Vec3::new(0.0, 0.0, -1.0)),
axis: Dir(Vec3::Z),
radius: "2.5".into(),
height: "12".into(),
operation: Operation::Cut,
references: Vec::new(),
};
doc.add_feature(bore, None).unwrap();
shaft(&mut doc, "Pin", Vec3::ZERO, 2.0, 10.0);
let mut kind = marking(p);
if let FeatureKind::Thread { designation, .. } = &mut kind {
*designation = None;
}
let (work, threads) = marking_work(&mut doc, kind);
assert_eq!(work.cylinder_search, 2, "both bodies are searched for {body}");
assert_eq!(threads.len(), 1);
assert_eq!(threads[0].body, body);
assert_eq!(threads[0].internal, internal);
}
}
+241 -169
View File
@@ -97,7 +97,7 @@ pub(super) fn eval(doc: &Document, vals: &BTreeMap<String, Value>, f: &Feature,
}
Ok(())
}
FeatureKind::Align { bodies, from, to, from_normal, to_normal, flip, from_plane, to_plane } => {
FeatureKind::Align { bodies, from, to, from_normal, to_normal, flip, from_plane, to_plane, axes } => {
// A plane on either side is worked out now, so the bodies follow it when it moves.
let (mut from, mut from_normal) = (from.0, from_normal.and_then(|n| n.normalized()));
if let Some(p) = from_plane {
@@ -126,6 +126,28 @@ pub(super) fn eval(doc: &Document, vals: &BTreeMap<String, Value>, f: &Feature,
(Some(_), Some(n)) => n * (to - from).dot(n),
_ => to - from,
};
// Point-to-point alignment can keep only the chosen world X/Y/Z directions,
// stored in the bodies' frame. A missing list means all three (the full offset).
let d = match axes {
None => d,
Some(dirs) if dirs.is_empty() => {
return Err(DocError::Invalid("the align axes enable none of X, Y and Z".into()));
}
Some(dirs) => {
let mut kept = Vec3::ZERO;
let mut used = false;
for a in dirs {
if let Some(a) = a.0.normalized() {
kept += a * d.dot(a);
used = true;
}
}
if !used {
return Err(DocError::Invalid("the align axes have no direction".into()));
}
kept
}
};
m[3][0] += d.x;
m[3][1] += d.y;
m[3][2] += d.z;
@@ -662,7 +684,7 @@ pub(super) fn sheet_eval(
tag_flanges(sh, n0, f.id);
rebuild_sheet(st, i)
}
FeatureKind::SheetPerforate { diameter, pitch, margin, pattern, body } => {
FeatureKind::SheetPerforate { diameter, pitch, margin, pattern, body, sketch, profiles } => {
// Without a body name the field goes on the newest sheet, as the command's own body lookup does.
let i = match body {
Some(_) => sheet_for(st, body, None)?,
@@ -684,8 +706,18 @@ pub(super) fn sheet_eval(
"perforation needs diameter > 0, pitch > diameter and margin >= 0 (diameter {d}, pitch {pitch}, margin {margin})"
)));
}
// The outline sketch's profiles, where they lie on the sheet now.
let outline = match sketch {
Some(sk) => {
let ss = st.sketch(sk.0).ok_or_else(|| DocError::Unknown(format!("sketch {sk}")))?;
let regions = select_profiles(ss, profiles.as_ref().unwrap_or(&ProfileSel::All))?;
let sh = st.sheets.get(i).ok_or_else(|| DocError::Invalid("sheet".into()))?;
Some(sh.perforation_outline(&ss.plane, &regions)?)
}
None => None,
};
let sh = st.sheets.get_mut(i).ok_or_else(|| DocError::Invalid("sheet".into()))?;
sh.perforations.push(crate::sheet::SheetPerforation { feature: f.id, diameter: d, pitch, margin, square, from_right: false });
sh.perforations.push(crate::sheet::SheetPerforation { feature: f.id, diameter: d, pitch, margin, square, from_right: false, outline });
Ok(())
}
FeatureKind::SheetHem { edges, length, gap, flip, body } => {
@@ -780,7 +812,10 @@ pub(super) fn sheet_eval(
hit.point
}
Some((n, Err(_))) => {
append_warning(warning, format!("edge `{n}` no longer exists; using the edge at the picked point"));
append_warning(
warning,
format!("edge `{}` no longer exists; using the edge at the picked point", crate::name_lookup::quoted(n)),
);
p.0
}
None => p.0,
@@ -821,12 +856,12 @@ pub(super) fn sheet_eval(
// (its outer level, `hi`) with z into the material, as with bend edges, so the sheet
// takes the plate's place: its thickness runs from `hi` back to `lo`.
let plane = Plane::from_normal(face.0 + n * hi, n * -1.0).ok_or_else(|| DocError::Invalid("face".into()))?;
let slice = FaceSlice { mesh: &mesh, plane, at: face.0, n, tol };
// Recesses in one face (an engraved label) become pockets; the outline is the other face's.
let recesses = plate_recesses(&mb.body, &mesh, &plane, face.0, n, (lo, hi), tol)?;
let recesses = slice.recesses(&mb.body, (lo, hi))?;
let mut walls = std::collections::HashMap::new();
let mut wall = |f: u32| *walls.entry(f).or_insert_with(|| sheet::round_wall(&mb.body, &plane, n, f));
let mut loops: Vec<Loop2> =
face_outline(&mesh, &plane, face.0, n, recesses.level, tol).iter().map(|l| sheet::outline_loop(l, &mut wall, tol * 1e-2)).collect();
let mut loops: Vec<Loop2> = slice.outline(recesses.level).iter().map(|l| sheet::outline_loop(l, &mut wall, tol * 1e-2)).collect();
loops.sort_by(|a, b| b.signed_area().abs().total_cmp(&a.signed_area().abs()));
let mut it = loops.into_iter();
let outer = it.next().ok_or_else(|| DocError::Invalid("no outline on that face".into()))?.ccw();
@@ -1534,13 +1569,13 @@ fn sheet_prism_cut(
/// A box around `body`, grown past its mesh's deflection from the exact faces (and a hair
/// more): bodies whose boxes are apart do not meet. None when it can't be worked out.
fn body_box(body: &Body) -> Option<Aabb3> {
pub(super) fn body_box(body: &Body) -> Option<Aabb3> {
let tol = (body.size() * 1e-3).max(1e-4);
padded_box(&body.tessellate(tol).ok()?, tol)
}
/// [`body_box`] of a model body, from the mesh it keeps.
fn mesh_box(mb: &ModelBody) -> Option<Aabb3> {
pub(super) fn mesh_box(mb: &ModelBody) -> Option<Aabb3> {
padded_box(&mb.mesh(), mb.display_tol())
}
@@ -1549,8 +1584,25 @@ fn padded_box(mesh: &solidcraft_geom::Mesh, tol: f64) -> Option<Aabb3> {
(!b.is_empty() && b.min.is_finite() && b.max.is_finite()).then(|| b.inflated(2.0 * tol + 1e-6))
}
/// Whether [`kernel::cylinder_face_at`] is known to find no face of `mb` at `p`. It takes a
/// face only when its own mesh of the body comes within a twentieth of the body's size of the
/// point. That mesh lies in the body's box ([`mesh_box`]) give or take its own deflection, which
/// the reach allows for, so a box farther away than that holds no face for it. Working that out from the mesh the body keeps
/// spares a tessellation of every body in the design for each tap marking (#10227). A mesh
/// body, and a body whose box is unknown, are searched as before.
pub(super) fn beyond_cylinder_reach(mb: &ModelBody, p: Vec3) -> bool {
if mb.body.is_mesh() {
return false;
}
let Some(b) = mesh_box(mb) else { return false };
let size = mb.body.size();
let reach = size * 0.05 + 2.0 * (size * 1e-3).max(1e-3);
let off = (b.min - p).max(p - b.max).max(Vec3::ZERO);
off.len() > reach
}
/// Whether two boxes are known to be apart (an unknown box is never apart).
fn boxes_apart(a: &Option<Aabb3>, b: &Option<Aabb3>) -> bool {
pub(super) fn boxes_apart(a: &Option<Aabb3>, b: &Option<Aabb3>) -> bool {
let (Some(a), Some(b)) = (a, b) else { return false };
a.max.x < b.min.x || b.max.x < a.min.x || a.max.y < b.min.y || b.max.y < a.min.y || a.max.z < b.min.z || b.max.z < a.min.z
}
@@ -1584,43 +1636,58 @@ fn parted_note(sh: &sheet::SheetBody, material: &[Region2], before: &sheet::Shee
})
}
/// Outline loops (in `plane` coordinates) of the mesh triangles lying in the plane at distance
/// `level` from `at` along `n`: the edges used by one of them only, chained.
fn face_loops(mesh: &solidcraft_geom::Mesh, plane: &Plane, at: Vec3, n: Vec3, level: f64, tol: f64) -> Vec<Ring<Vec2>> {
face_outline(mesh, plane, at, n, level, tol).into_iter().map(|l| l.into_iter().map(|(p, _)| p).collect()).collect()
/// The face that [`FaceSlice::loops`], [`FaceSlice::outline`] and [`FaceSlice::recesses`] measure:
/// the mesh, the plane the outline's coordinates live in, the point `at` and normal `n` that levels
/// are measured from, and the tolerance. Callers build it once and pass it on unchanged.
/// (`n` stays a `Vec3` until #2675 lands `UnitVec3` upstream.)
struct FaceSlice<'a> {
mesh: &'a Mesh,
plane: Plane,
at: Vec3,
n: Vec3,
tol: f64,
}
/// [`face_loops`] with each point's B-rep face across the outline from it to the next point (the
/// wall the outline runs along there): the face off the plane that meets both points.
fn face_outline(mesh: &solidcraft_geom::Mesh, plane: &Plane, at: Vec3, n: Vec3, level: f64, tol: f64) -> Vec<Vec<(Vec2, Option<u32>)>> {
let on_plane = |t: &[u32; 3]| t.iter().all(|k| mesh.positions.get(*k as usize).is_some_and(|p| ((*p - at).dot(n) - level).abs() < tol));
let on: Vec<[u32; 3]> = mesh.triangles.iter().copied().filter(on_plane).collect();
let pos = |k: u32| mesh.positions.get(k as usize).copied().unwrap_or_default();
let q = |p: Vec3| ((p.x * 1e6).round() as i64, (p.y * 1e6).round() as i64, (p.z * 1e6).round() as i64);
// The faces off the plane at each point on it, by position to a millionth of a millimetre
// either way (a neighbouring face's mesh may round a shared point differently).
let mut touch: std::collections::HashMap<(i64, i64, i64), Vec<u32>> = Default::default();
for (t, f) in mesh.triangles.iter().zip(&mesh.tri_face).filter(|(t, _)| !on_plane(t)) {
for p in t.iter().map(|k| pos(*k)).filter(|p| ((*p - at).dot(n) - level).abs() < tol) {
let faces = touch.entry(q(p)).or_default();
if !faces.contains(f) {
faces.push(*f);
impl FaceSlice<'_> {
/// Outline loops (in `plane` coordinates) of the mesh triangles lying in the plane at distance
/// `level` from `at` along `n`: the edges used by one of them only, chained.
fn loops(&self, level: f64) -> Vec<Ring<Vec2>> {
self.outline(level).into_iter().map(|l| l.into_iter().map(|(p, _)| p).collect()).collect()
}
/// [`FaceSlice::loops`] with each point's B-rep face across the outline from it to the next
/// point (the wall the outline runs along there): the face off the plane that meets both points.
fn outline(&self, level: f64) -> Vec<Vec<(Vec2, Option<u32>)>> {
let (mesh, plane, at, n, tol) = (self.mesh, &self.plane, self.at, self.n, self.tol);
let on_plane = |t: &[u32; 3]| t.iter().all(|k| mesh.positions.get(*k as usize).is_some_and(|p| ((*p - at).dot(n) - level).abs() < tol));
let on: Vec<[u32; 3]> = mesh.triangles.iter().copied().filter(on_plane).collect();
let pos = |k: u32| mesh.positions.get(k as usize).copied().unwrap_or_default();
let q = |p: Vec3| ((p.x * 1e6).round() as i64, (p.y * 1e6).round() as i64, (p.z * 1e6).round() as i64);
// The faces off the plane at each point on it, by position to a millionth of a millimetre
// either way (a neighbouring face's mesh may round a shared point differently).
let mut touch: std::collections::HashMap<(i64, i64, i64), Vec<u32>> = Default::default();
for (t, f) in mesh.triangles.iter().zip(&mesh.tri_face).filter(|(t, _)| !on_plane(t)) {
for p in t.iter().map(|k| pos(*k)).filter(|p| ((*p - at).dot(n) - level).abs() < tol) {
let faces = touch.entry(q(p)).or_default();
if !faces.contains(f) {
faces.push(*f);
}
}
}
let near = |p: Vec3| {
let (x, y, z) = q(p);
let cells = (-1..=1).flat_map(|i| (-1..=1).flat_map(move |j| (-1..=1).map(move |k| (x + i, y + j, z + k))));
let mut faces: Vec<u32> = cells.filter_map(|c| touch.get(&c)).flatten().copied().collect();
faces.sort_unstable();
faces.dedup();
faces
};
let across = |a: Vec3, b: Vec3| {
let at_b = near(b);
near(a).into_iter().find(|f| at_b.contains(f))
};
chain_loops(mesh, plane, &on, across)
}
let near = |p: Vec3| {
let (x, y, z) = q(p);
let cells = (-1..=1).flat_map(|i| (-1..=1).flat_map(move |j| (-1..=1).map(move |k| (x + i, y + j, z + k))));
let mut faces: Vec<u32> = cells.filter_map(|c| touch.get(&c)).flatten().copied().collect();
faces.sort_unstable();
faces.dedup();
faces
};
let across = |a: Vec3, b: Vec3| {
let at_b = near(b);
near(a).into_iter().find(|f| at_b.contains(f))
};
chain_loops(mesh, plane, &on, across)
}
/// The loops (in `plane` coordinates) that bound the triangles `on` of the mesh.
@@ -1710,138 +1777,142 @@ struct LevelFace {
tris: Vec<(Vec3, f64)>,
}
/// The recesses of a plate lying between levels `lo` and `hi` along `n` (measured from `at`),
/// whose sheet is built in `plane`. A recess's floor is a face parallel to the plate inside its
/// thickness, lying in an opening of the face it is cut into, and its walls are square to the
/// plate (walls that are not show as material the plate's volume doesn't account for). A body
/// that is no plate once its recesses are filled has none, so the plate check refuses it as
/// before: a bent part, whose legs' faces lie inside its extent. Recesses are taken in one face
/// only, up to half the thickness deep, and no larger than the face they are cut into (a plate
/// raised in places is no plate of the raised thickness).
fn plate_recesses(body: &Body, mesh: &Mesh, plane: &Plane, at: Vec3, n: Vec3, (lo, hi): (f64, f64), tol: f64) -> Result<Recesses> {
let t = hi - lo;
let eps = t * 1e-3;
let level = |p: Vec3| (p - at).dot(n);
let mut faces: BTreeMap<u32, Option<LevelFace>> = BTreeMap::new();
for (tri, f) in mesh.triangles.iter().zip(&mesh.tri_face) {
let Some([a, b, c]) = mesh.tri(tri) else { continue };
let cr = (b - a).cross(c - a);
let len = cr.len();
if !(len > 1e-12) {
continue;
}
let up = cr.dot(n) > 0.0;
let entry = faces.entry(*f).or_insert(Some(LevelFace { lo: f64::MAX, hi: f64::MIN, up, area: 0.0, at: a, tris: Vec::new() }));
match entry {
Some(face) if face.up == up && cr.dot(n).abs() >= len * (1.0 - 1e-6) => {
for p in [a, b, c] {
face.lo = face.lo.min(level(p));
face.hi = face.hi.max(level(p));
}
face.area += len / 2.0;
face.tris.push(((a + b + c) / 3.0, len / 2.0));
impl FaceSlice<'_> {
/// The recesses of a plate lying between levels `lo` and `hi` along `n` (measured from `at`),
/// whose sheet is built in `plane`. A recess's floor is a face parallel to the plate inside its
/// thickness, lying in an opening of the face it is cut into, and its walls are square to the
/// plate (walls that are not show as material the plate's volume doesn't account for). A body
/// that is no plate once its recesses are filled has none, so the plate check refuses it as
/// before: a bent part, whose legs' faces lie inside its extent. Recesses are taken in one face
/// only, up to half the thickness deep, and no larger than the face they are cut into (a plate
/// raised in places is no plate of the raised thickness).
fn recesses(&self, body: &Body, (lo, hi): (f64, f64)) -> Result<Recesses> {
let (mesh, plane, at, n, tol) = (self.mesh, &self.plane, self.at, self.n, self.tol);
let t = hi - lo;
let eps = t * 1e-3;
let level = |p: Vec3| (p - at).dot(n);
let mut faces: BTreeMap<u32, Option<LevelFace>> = BTreeMap::new();
for (tri, f) in mesh.triangles.iter().zip(&mesh.tri_face) {
let Some([a, b, c]) = mesh.tri(tri) else { continue };
let cr = (b - a).cross(c - a);
let len = cr.len();
if !(len > 1e-12) {
continue;
}
let up = cr.dot(n) > 0.0;
let entry = faces.entry(*f).or_insert(Some(LevelFace { lo: f64::MAX, hi: f64::MIN, up, area: 0.0, at: a, tris: Vec::new() }));
match entry {
Some(face) if face.up == up && cr.dot(n).abs() >= len * (1.0 - 1e-6) => {
for p in [a, b, c] {
face.lo = face.lo.min(level(p));
face.hi = face.hi.max(level(p));
}
face.area += len / 2.0;
face.tris.push(((a + b + c) / 3.0, len / 2.0));
}
_ => *entry = None,
}
_ => *entry = None,
}
}
// The floors (face index, level, the face), and the areas of the plate's two faces (at `lo`
// and at `hi`).
let mut floors: Vec<(usize, f64, &LevelFace)> = Vec::new();
let (mut bottom, mut top) = (0.0, 0.0);
for (f, face) in faces.iter().filter_map(|(f, face)| Some((*f as usize, face.as_ref()?))) {
let d = (face.lo + face.hi) / 2.0;
if face.hi - face.lo > eps {
continue;
} else if (d - hi).abs() <= eps && face.up {
top += face.area;
} else if (d - lo).abs() <= eps && !face.up {
bottom += face.area;
} else if d > lo + eps && d < hi - eps {
floors.push((f, d, face));
// The floors (face index, level, the face), and the areas of the plate's two faces (at `lo`
// and at `hi`).
let mut floors: Vec<(usize, f64, &LevelFace)> = Vec::new();
let (mut bottom, mut top) = (0.0, 0.0);
for (f, face) in faces.iter().filter_map(|(f, face)| Some((*f as usize, face.as_ref()?))) {
let d = (face.lo + face.hi) / 2.0;
if face.hi - face.lo > eps {
continue;
} else if (d - hi).abs() <= eps && face.up {
top += face.area;
} else if (d - lo).abs() <= eps && !face.up {
bottom += face.area;
} else if d > lo + eps && d < hi - eps {
floors.push((f, d, face));
}
}
}
let none = || Recesses { level: lo, pockets: Vec::new(), volume: 0.0 };
if floors.is_empty() {
return Ok(none());
}
// A floor is a recess's where (most of) it lies in an opening of the face it is cut into:
// inside that face's outline and in a hole of it, not on an island in the hole. (Its
// triangles are those at its level within `eps`: `tol` may exceed a recess's depth.)
let loops_at = |level: f64| -> Vec<Loop2> { face_loops(mesh, plane, at, n, level, eps).into_iter().map(|l| Loop2::polygon(&l)).collect() };
let (top_loops, bottom_loops) = (loops_at(hi), loops_at(lo));
floors.retain(|(_, _, face)| {
let loops = if face.up { &top_loops } else { &bottom_loops };
let open = |p: Vec2| {
let k = loops.iter().filter(|l| l.contains(p)).count();
k >= 2 && k.is_multiple_of(2)
};
face.tris.iter().filter(|(c, _)| open(plane.to_local(*c))).map(|(_, a)| a).sum::<f64>() > face.area / 2.0
});
let Some(&(_, _, first)) = floors.first() else { return Ok(none()) };
// Filled, the recesses leave a plate: its outline as large at `lo` as at `hi` once their
// openings count, and its volume with theirs the outline times the thickness. Else (a bent
// part) they are none.
let depth_in = |d: f64, up: bool| if up { hi - d } else { d - lo };
let opened = |up: bool| floors.iter().filter(|f| f.2.up == up).map(|f| f.2.area).sum::<f64>();
let outline = bottom + opened(false);
let removed: f64 = floors.iter().map(|f| f.2.area * depth_in(f.1, f.2.up)).sum();
let volume = kernel::measure(body)?.volume;
if (outline - top - opened(true)).abs() > 1e-3 * outline || (outline * t - volume - removed).abs() > 1e-3 * volume.max(1.0) {
return Ok(none());
}
let pt = |p: Vec3| format!("({:.3}, {:.3}, {:.3})", p.x, p.y, p.z);
let up = first.up;
if let Some(other) = floors.iter().find(|f| f.2.up != up) {
return Err(DocError::Invalid(format!(
"not supported yet: converting a plate with recesses in both faces (at {} and {}); recesses in one face become pockets",
pt(first.at),
pt(other.2.at)
)));
}
let depth_of = |d: f64| depth_in(d, up);
if let Some(deep) = floors.iter().find(|f| depth_of(f.1) > t / 2.0 + eps) {
return Err(DocError::Invalid(format!(
"not supported yet: the recess at {} is {:.3} mm deep, more than half the plate's {:.3} mm; shallower recesses (an engraving, a label) become pockets",
pt(deep.2.at),
depth_of(deep.1),
t
)));
}
let face_area = if up { top } else { bottom };
if floors.iter().map(|f| f.2.area).sum::<f64>() > face_area {
return Err(DocError::Invalid(format!(
"not supported yet: converting a plate whose recesses are larger than the face they are in (a plate thinner than {t:.3} mm, raised in places)"
)));
}
// The floors' outlines, from a mesh fine enough to mark them by.
let fine = body.tessellate((t * 1e-2).min(tol).max(1e-4))?;
floors.sort_by(|a, b| depth_of(a.1).total_cmp(&depth_of(b.1)));
// Floors at one depth are one pocket where they meet.
let mut groups: Vec<(f64, Vec<Region2>)> = Vec::new();
for (f, d, ..) in &floors {
let on: Vec<[u32; 3]> = fine.triangles.iter().zip(&fine.tri_face).filter(|(_, g)| **g as usize == *f).map(|(tri, _)| *tri).collect();
let mut loops = boundary_loops(&fine, plane, &on);
loops.sort_by(|a, b| b.signed_area().abs().total_cmp(&a.signed_area().abs()));
let mut it = loops.into_iter();
let Some(outline) = it.next() else { continue };
let region = Region2 { outer: Loop2::polygon(&outline).ccw(), holes: it.map(|l| Loop2::polygon(&l).ccw().reversed()).collect() };
match groups.last_mut() {
Some((depth, regions)) if depth_of(*d) - *depth <= eps => regions.push(region),
_ => groups.push((depth_of(*d), vec![region])),
let none = || Recesses { level: lo, pockets: Vec::new(), volume: 0.0 };
if floors.is_empty() {
return Ok(none());
}
}
// The sheet's z starts from the picked face when its plane faces away from that face.
let from_zero = up == (plane.normal().dot(n) < 0.0);
let mut work = sheet::FlatWork::new();
let (mut pockets, mut volume) = (Vec::new(), 0.0);
for (depth, regions) in groups {
let (z0, z1) = if from_zero { (0.0, depth) } else { (t - depth, t) };
for region in sheet::material_union(regions, &mut work)? {
volume += region.area().abs() * depth;
pockets.push((region, z0, z1));
// A floor is a recess's where (most of) it lies in an opening of the face it is cut into:
// inside that face's outline and in a hole of it, not on an island in the hole. (Its
// triangles are those at its level within `eps`: `tol` may exceed a recess's depth.)
let probe = FaceSlice { mesh, plane: self.plane, at, n, tol: eps };
let loops_at = |level: f64| -> Vec<Loop2> { probe.loops(level).into_iter().map(|l| Loop2::polygon(&l)).collect() };
let (top_loops, bottom_loops) = (loops_at(hi), loops_at(lo));
floors.retain(|(_, _, face)| {
let loops = if face.up { &top_loops } else { &bottom_loops };
let open = |p: Vec2| {
let k = loops.iter().filter(|l| l.contains(p)).count();
k >= 2 && k.is_multiple_of(2)
};
face.tris.iter().filter(|(c, _)| open(plane.to_local(*c))).map(|(_, a)| a).sum::<f64>() > face.area / 2.0
});
let Some(&(_, _, first)) = floors.first() else { return Ok(none()) };
// Filled, the recesses leave a plate: its outline as large at `lo` as at `hi` once their
// openings count, and its volume with theirs the outline times the thickness. Else (a bent
// part) they are none.
let depth_in = |d: f64, up: bool| if up { hi - d } else { d - lo };
let opened = |up: bool| floors.iter().filter(|f| f.2.up == up).map(|f| f.2.area).sum::<f64>();
let outline = bottom + opened(false);
let removed: f64 = floors.iter().map(|f| f.2.area * depth_in(f.1, f.2.up)).sum();
let volume = kernel::measure(body)?.volume;
if (outline - top - opened(true)).abs() > 1e-3 * outline || (outline * t - volume - removed).abs() > 1e-3 * volume.max(1.0) {
return Ok(none());
}
let pt = |p: Vec3| format!("({:.3}, {:.3}, {:.3})", p.x, p.y, p.z);
let up = first.up;
if let Some(other) = floors.iter().find(|f| f.2.up != up) {
return Err(DocError::Invalid(format!(
"not supported yet: converting a plate with recesses in both faces (at {} and {}); recesses in one face become pockets",
pt(first.at),
pt(other.2.at)
)));
}
let depth_of = |d: f64| depth_in(d, up);
if let Some(deep) = floors.iter().find(|f| depth_of(f.1) > t / 2.0 + eps) {
return Err(DocError::Invalid(format!(
"not supported yet: the recess at {} is {:.3} mm deep, more than half the plate's {:.3} mm; shallower recesses (an engraving, a label) become pockets",
pt(deep.2.at),
depth_of(deep.1),
t
)));
}
let face_area = if up { top } else { bottom };
if floors.iter().map(|f| f.2.area).sum::<f64>() > face_area {
return Err(DocError::Invalid(format!(
"not supported yet: converting a plate whose recesses are larger than the face they are in (a plate thinner than {t:.3} mm, raised in places)"
)));
}
// The floors' outlines, from a mesh fine enough to mark them by.
let fine = body.tessellate((t * 1e-2).min(tol).max(1e-4))?;
floors.sort_by(|a, b| depth_of(a.1).total_cmp(&depth_of(b.1)));
// Floors at one depth are one pocket where they meet.
let mut groups: Vec<(f64, Vec<Region2>)> = Vec::new();
for (f, d, ..) in &floors {
let on: Vec<[u32; 3]> = fine.triangles.iter().zip(&fine.tri_face).filter(|(_, g)| **g as usize == *f).map(|(tri, _)| *tri).collect();
let mut loops = boundary_loops(&fine, plane, &on);
loops.sort_by(|a, b| b.signed_area().abs().total_cmp(&a.signed_area().abs()));
let mut it = loops.into_iter();
let Some(outline) = it.next() else { continue };
let region = Region2 { outer: Loop2::polygon(&outline).ccw(), holes: it.map(|l| Loop2::polygon(&l).ccw().reversed()).collect() };
match groups.last_mut() {
Some((depth, regions)) if depth_of(*d) - *depth <= eps => regions.push(region),
_ => groups.push((depth_of(*d), vec![region])),
}
}
// The sheet's z starts from the picked face when its plane faces away from that face.
let from_zero = up == (plane.normal().dot(n) < 0.0);
let mut work = sheet::FlatWork::new();
let (mut pockets, mut volume) = (Vec::new(), 0.0);
for (depth, regions) in groups {
let (z0, z1) = if from_zero { (0.0, depth) } else { (t - depth, t) };
for region in sheet::material_union(regions, &mut work)? {
volume += region.area().abs() * depth;
pockets.push((region, z0, z1));
}
}
Ok(Recesses { level: if up { lo } else { hi }, pockets, volume })
}
Ok(Recesses { level: if up { lo } else { hi }, pockets, volume })
}
/// The body a placed plastic feature joins: by name, else the one under the point.
@@ -2033,7 +2104,8 @@ pub(super) fn plastic_eval(doc: &Document, vals: &BTreeMap<String, Value>, f: &F
let plane = Plane::from_normal(face.0, n).ok_or_else(|| DocError::Invalid("rim plane".into()))?;
let tol = (mb.body.size() * 1e-3).max(1e-3);
let mesh = mb.body.tessellate(tol)?;
let mut loops = face_loops(&mesh, &plane, face.0, n, 0.0, tol);
let slice = FaceSlice { mesh: &mesh, plane, at: face.0, n, tol };
let mut loops = slice.loops(0.0);
loops.sort_by(|a, b| b.signed_area().abs().total_cmp(&a.signed_area().abs()));
let ccw = |l: &Ring<Vec2>| if l.signed_area() < 0.0 { l.iter().rev().copied().collect::<Ring<_>>() } else { l.clone() };
// The inner edge is an opening (the cavity under a rim): not the foot of a boss or a
+69 -1
View File
@@ -304,6 +304,28 @@ pub fn value_in_unit(v: Value, unit: &str) -> f64 {
}
}
/// The number a reply reports for a value: millimetres for a length, degrees for an angle,
/// as-is for a unit-less or compound value. One meaning of `value` in every reply (#10747).
pub fn reported_value(v: Value) -> f64 {
match v.kind() {
Some(Kind::Angle) => v.v.to_degrees(),
_ => v.v,
}
}
/// The number a person would read for `v`: the shortest decimal that reads back after
/// rounding off the last few bits (12 significant digits), so `30 deg` stored as
/// 29.999999999999996 reports 30 and `0.1 + 0.2` reports 0.3. Only what is *reported*
/// is rounded; stored values and evaluation keep full precision (#10747).
pub fn round_reported(v: f64) -> f64 {
if !v.is_finite() {
return v;
}
// `:.11e` keeps 12 significant digits; parsing back gives the f64 nearest that decimal,
// which serializes as the shortest form that reads back to it.
format!("{v:.11e}").parse().unwrap_or(v)
}
fn unit(name: &str) -> Option<Value> {
UNITS.iter().find(|(n, _, _)| *n == name).map(|(_, k, s)| match k {
Kind::Angle => Value::angle(*s),
@@ -950,7 +972,11 @@ fn call(f: &str, args: &[Value], d: Defaults) -> Result<Value, DocError> {
let a = one()?;
unit_fn(a.v.abs(), a)
}
"sign" => Value::num(one()?.v.signum()),
"sign" => {
let x = one()?.v;
// `f64::signum` gives 1 for +0 and -1 for -0; the sign of zero is 0.
Value::num(if x == 0.0 { 0.0 } else { x.signum() })
}
"floor" | "ceil" | "round" | "trunc" => {
let a = one()?;
// Round in the value's own default unit (round(2.4 in) = 2 in for an inch parameter).
@@ -1408,6 +1434,16 @@ mod tests {
}
}
/// `sign(0)` is 0, not 1 (Rust's `signum` takes the sign bit, so it calls zero positive).
#[test]
fn sign_of_zero_is_zero() {
for (e, want) in
[("sign(0)", 0.0), ("sign(-0)", 0.0), ("sign(0 mm)", 0.0), ("sign(5)", 1.0), ("sign(-2 mm)", -1.0), ("sign(width - 40)", 0.0)]
{
assert_eq!(ev(e, Kind::Unitless).unwrap(), want, "{e}");
}
}
/// A count from a length (`(L - 20) / 210`, the 210 read as unit-less) names the fix (#5901).
#[test]
fn a_length_where_a_count_is_expected_says_to_divide_by_a_length() {
@@ -1637,4 +1673,36 @@ mod tests {
defs[2].expr = "bad +".into();
assert!(eval_params(&defs, 1.0).1.contains_key("c"));
}
/// #10747: reported numbers are the shortest decimals that read back after rounding off
/// the last few bits (12 significant digits); stored values keep full precision.
#[test]
fn round_reported_reads_as_a_person_would() {
for (noisy, read) in [
(30f64.to_radians().to_degrees(), 30.0),
(0.1 + 0.2, 0.3),
(3.0 * 25.4, 76.2),
(1.2 * 25.4, 30.48),
(29.999999999999996, 30.0),
(0.30000000000000004, 0.3),
(-0.1 - 0.2, -0.3),
] {
assert_eq!(round_reported(noisy), read, "{noisy}");
}
// A number with real digits of its own keeps them up to 12 significant digits.
assert_eq!(round_reported(1.234567890123), 1.23456789012);
assert_eq!(round_reported(1.0000000000001), 1.0);
// Zero and non-finite values pass through.
assert_eq!(round_reported(0.0), 0.0);
assert!(round_reported(f64::INFINITY).is_infinite());
assert!(round_reported(f64::NAN).is_nan());
}
/// #10747: `value` means millimetres and degrees in every reply.
#[test]
fn reported_value_is_mm_and_degrees() {
assert_eq!(reported_value(Value::length(50.8)), 50.8);
assert_eq!(round_reported(reported_value(Value::angle(30f64.to_radians()))), 30.0);
assert_eq!(reported_value(Value::num(4.0)), 4.0);
}
}
+92 -9
View File
@@ -13,12 +13,30 @@ pub struct FaceAnchor {
pub component: u64,
pub path: Vec<u64>,
pub author_path: Vec<u64>,
/// Source component to author component at capture, for an independently placed part.
/// Body offsets and source geometry remain live; later assembly moves do not reshape it.
/// Older attachments without this field retain their live placement relationship.
#[serde(default, skip_serializing_if = "Option::is_none")]
pub placement: Option<crate::Mat>,
/// Origin and x direction in the exact canonical face plane's coordinates.
pub coordinates: [f64; 2],
pub x_axis: [f64; 2],
}
impl FaceAnchor {
/// Re-express a captured context when definitions (not their occurrences) change frames.
pub fn reframe_placement(&mut self, author: &crate::Mat, source: &crate::Mat) -> Result<()> {
if let Some(placement) = self.placement {
let inverse = crate::mat_inverse(source).ok_or_else(|| DocError::Invalid("attached source frame is invalid".into()))?;
let placement = crate::mat_mul(&crate::mat_mul(author, &placement), &inverse);
if !crate::valid_transfer_matrix(&placement) {
return Err(DocError::Invalid("invalid captured face placement".into()));
}
self.placement = Some(placement);
}
Ok(())
}
pub fn remap_target(
&mut self,
features: &std::collections::BTreeMap<u64, u64>,
@@ -47,6 +65,7 @@ impl FaceAnchor {
|| self.path.iter().chain(&self.author_path).any(|id| *id == 0)
|| (self.component == 0 && !self.path.is_empty())
|| (self.component != 0 && self.path.is_empty())
|| self.placement.as_ref().is_some_and(|m| !crate::valid_transfer_matrix(m))
|| self.coordinates.iter().any(|value| !value.is_finite() || value.abs() > 1e9)
|| self.x_axis.iter().any(|value| !value.is_finite())
|| (self.x_axis[0].hypot(self.x_axis[1]) - 1.).abs() > 1e-6
@@ -70,13 +89,11 @@ impl FaceAnchor {
}
let inverse = crate::mat_inverse(&self.author_frame(doc, author)?)
.ok_or_else(|| DocError::Invalid("attached sketch author frame is invalid".into()))?;
let source = EmbossFace {
body: self.target.body.clone().into(),
at: crate::FacePick(self.target.point),
path: self.path.clone(),
author_path: self.author_path.clone(),
};
Ok(crate::mat_mul(&inverse, &source.body_frame(doc, body)?))
// Resolve both paths even with a captured placement: a missing or reparented source
// must still fail explicitly rather than silently reusing an unrelated definition.
let source = EmbossFace::component_frame(doc, self.component, &self.path)?;
let relative = self.placement.unwrap_or_else(|| crate::mat_mul(&inverse, &source));
Ok(doc.model_body_offset(body).map_or(relative, |offset| crate::mat_mul(&relative, offset)))
}
}
@@ -181,6 +198,7 @@ impl Document {
component: self.model_body_component(body),
path: target_path.to_vec(),
author_path: author_path.to_vec(),
placement: None,
coordinates: [0., 0.],
x_axis: [1., 0.],
};
@@ -191,6 +209,15 @@ impl Document {
let delta = picked.origin - canonical.origin;
anchor.coordinates = [delta.dot(canonical.x), delta.dot(canonical.y)];
anchor.x_axis = [picked.x.dot(canonical.x), picked.x.dot(canonical.y)];
// A part built against another component uses that assembly context to define its
// own shape. Moving either occurrence later must not move the sketch inside the part.
// Root sketches and references inside the same component keep their live placements.
if author != 0 && author != anchor.component {
let inverse = crate::mat_inverse(&anchor.author_frame(self, author)?)
.ok_or_else(|| DocError::Invalid("attached sketch author frame is invalid".into()))?;
let source = EmbossFace::component_frame(self, anchor.component, &anchor.path)?;
anchor.placement = Some(crate::mat_mul(&inverse, &source));
}
anchor.validate()?;
Ok(anchor)
}
@@ -211,8 +238,16 @@ impl Document {
let indices = self.configuration_face_indices(body, &target)?;
// A copy a pattern or mirror made on the same body carries its seed's certificate,
// which finds the seed's face: the copy is attached by its own history name below.
// A face that is no copy, on the plane of the pieces the certificate finds, is
// another piece of that face (a piece a later join left bordering another body,
// and named after it): the certificate stands for it too (#9465).
if !indices.contains(&index) {
return Err(DocError::Invalid("this face has no supported construction certificate; choose a fixed plane instead".into()));
let names = crate::naming::names(body);
let copy = names.faces.get(index).is_none_or(|name| crate::persistent_name::is_copy(name));
let all: Vec<usize> = indices.iter().copied().chain([index]).collect();
if copy || self.coplanar_pieces(body, &all, |_| true).is_err() {
return Err(DocError::Invalid("this face has no supported construction certificate; choose a fixed plane instead".into()));
}
}
self.coplanar_pieces(body, &indices, |_| true)?;
Ok(target)
@@ -381,7 +416,8 @@ impl Document {
pub fn validate_face_anchor_json(value: &Value) -> Result<()> {
let fields = value.as_object().ok_or_else(|| DocError::Invalid("face anchor must be an object".into()))?;
if fields.len() != 6 || fields.keys().any(|key| !["target", "component", "path", "author_path", "coordinates", "x_axis"].contains(&key.as_str()))
if !(6..=7).contains(&fields.len())
|| fields.keys().any(|key| !["target", "component", "path", "author_path", "placement", "coordinates", "x_axis"].contains(&key.as_str()))
{
return Err(DocError::Invalid("unknown or missing face anchor fields".into()));
}
@@ -415,6 +451,15 @@ pub fn validate_face_anchor_json(value: &Value) -> Result<()> {
return Err(DocError::Invalid("face anchor basis must be normalized".into()));
}
}
if let Some(placement) = fields.get("placement").filter(|v| !v.is_null()) {
if placement.as_array().is_none_or(|rows| rows.len() != 4 || rows.iter().any(|row| row.as_array().is_none_or(|row| row.len() != 4))) {
return Err(DocError::Invalid("face anchor placement requires a 4x4 matrix".into()));
}
let matrix: crate::Mat = serde_json::from_value(placement.clone()).map_err(|_| DocError::Invalid("invalid face anchor placement".into()))?;
if !crate::valid_transfer_matrix(&matrix) {
return Err(DocError::Invalid("face anchor placement must be a finite rigid transform".into()));
}
}
Ok(())
}
@@ -523,6 +568,44 @@ mod tests {
.unwrap();
assert!(doc.resolve_face_anchor(&anchor, 0, &state).is_err(), "reused name cannot replace the producer");
}
#[test]
fn captured_component_placement_is_rigid_and_legacy_anchors_stay_live() {
let (mut doc, body, index, picked) = fixture();
let author = doc.add_component(Some("Part"), 0).unwrap();
let path = doc.first_path(author);
let anchor = doc.capture_face_anchor(&body, index, &picked, &[], author, &path).unwrap();
assert_eq!(anchor.placement, Some(crate::IDENTITY));
let raw = serde_json::to_value(&anchor).unwrap();
assert!(validate_face_anchor_json(&raw).is_ok());
let restored: FaceAnchor = serde_json::from_value(raw.clone()).unwrap();
assert_eq!(restored, anchor);
for placement in [
serde_json::json!([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0]]),
serde_json::json!([[2, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]),
serde_json::json!([[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]),
serde_json::json!([[1, 0, 0, 1], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]),
serde_json::json!([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1e10, 0, 0, 1]]),
] {
let mut invalid = raw.clone();
invalid["placement"] = placement;
assert!(validate_face_anchor_json(&invalid).is_err(), "{invalid}");
if let Ok(invalid) = serde_json::from_value::<FaceAnchor>(invalid) {
assert!(invalid.validate().is_err());
}
}
let mut legacy = raw;
legacy.as_object_mut().unwrap().remove("placement");
assert!(validate_face_anchor_json(&legacy).is_ok());
let legacy: FaceAnchor = serde_json::from_value(legacy).unwrap();
doc.occurrences.iter_mut().find(|o| o.component == author).unwrap().transform[3][0] = 40.;
let mut state = ModelState::default();
state.bodies.push(body);
assert!(doc.resolve_face_anchor(&anchor, author, &state).unwrap().origin.dist(picked.origin) < 1e-9);
assert!(doc.resolve_face_anchor(&legacy, author, &state).unwrap().origin.dist(picked.origin - Vec3::X * 40.) < 1e-9);
doc.occurrences.clear();
assert!(doc.resolve_face_anchor(&anchor, author, &state).is_err(), "a captured context still validates its paths");
}
#[test]
fn nested_anchor_offset_tracks_source_and_raw_budgets_precede_decode() {
let (doc, body, index, picked) = fixture();
+1
View File
@@ -202,6 +202,7 @@ fn construction_names_follow_renames_in_every_definition() {
let planes = [
json!({"type": "midplane", "a": plane, "b": plane}),
json!({"type": "two_edges", "a": axis, "b": axis}),
json!({"type": "axis_point", "axis": axis, "point": point}),
json!({"type": "three_points", "a": point, "b": point, "c": point}),
json!({"type": "tangent", "face": plane, "at": [0, 0, 0]}),
json!({"type": "along_path", "path": axis, "t": "0.5"}),
@@ -148,7 +148,10 @@ pub(super) fn fixtures() -> Vec<(&'static str, Value)> {
("sheet_hem", json!({"type": "sheet_hem", "edges": [o], "length": "hem.length", "gap": "hem.gap"})),
(
"sheet_perforate",
json!({"type": "sheet_perforate", "diameter": "perforate.diameter", "pitch": "perforate.pitch", "margin": "perforate.margin"}),
json!({
"type": "sheet_perforate", "diameter": "perforate.diameter", "pitch": "perforate.pitch", "margin": "perforate.margin",
"sketch": 1, "profiles": {"type": "all"}
}),
),
(
"sheet_fold",
@@ -107,7 +107,7 @@ pattern_circular
inputs:
Quantity = circ.count (Unitless)
Total angle = circ.angle (Angle)
expressions: circ.count, circ.angle
expressions: circ.count, circ.angle, 0, 0, 0
pattern_path
inputs:
Quantity = path.count (Unitless)
@@ -47,6 +47,7 @@ pattern_rectangular
moves: pattern.dir1[0], pattern.dir1[1], pattern.dir2[1], pattern.dir2[2]
pattern_circular
moves: pattern.axis[0], pattern.axis[2], pattern.origin[0], pattern.origin[1], pattern.origin[2]
placement: 0, 0, 0
pattern_path
mirror
moves: plane.axis_dir[0], plane.axis_dir[1], plane.axis_origin[0], plane.axis_origin[1], plane.axis_origin[2]
@@ -133,6 +134,7 @@ sheet_flange
sheet_hem
moves: edges[0][0], edges[0][1], edges[0][2]
sheet_perforate
profiles: 1 all
sheet_fold
moves: a[0], a[1], a[2], b[1], b[2], fixed[0], fixed[1], fixed[2]
sheet_path
@@ -143,6 +143,8 @@ sheet_flange
sheet_hem
remap_bodies: body
sheet_perforate
sketches: [1]
remap_refs: sketch
remap_bodies: body
sheet_fold
sketches: [7]
+7 -6
View File
@@ -724,6 +724,13 @@ pub fn read(s: &str) -> Result<Document> {
let mut grouped_features = std::collections::BTreeSet::new();
let joint_ids: std::collections::BTreeSet<_> = d.assembly.joints.iter().map(|joint| joint.id).collect();
let mut grouped_joints = std::collections::BTreeSet::new();
// A folder entry naming a feature or joint the design doesn't have, or one a folder already
// holds, is dropped, and the design opens: folders only group the timeline, so nothing else
// is lost. Editing a feature inside a folder used to leave such entries (#9373).
for group in &mut d.timeline_groups {
group.joints.retain(|joint| joint_ids.contains(joint) && grouped_joints.insert(*joint));
group.features.retain(|feature| feature_ids.contains(feature) && grouped_features.insert(*feature));
}
for group in &d.timeline_groups {
if group.name.trim().is_empty() || group.name.len() > 128 || !group_ids.insert(group.id) {
return Err(DocError::Invalid("damaged design: invalid timeline folder".into()));
@@ -731,12 +738,6 @@ pub fn read(s: &str) -> Result<Document> {
if group.parent.is_some_and(|parent| parent == group.id) {
return Err(DocError::Invalid("damaged design: timeline folder cannot contain itself".into()));
}
if group.joints.iter().any(|joint| !joint_ids.contains(joint) || !grouped_joints.insert(*joint)) {
return Err(DocError::Invalid("damaged design: invalid joint in a timeline folder".into()));
}
if group.features.iter().any(|feature| !feature_ids.contains(feature) || !grouped_features.insert(*feature)) {
return Err(DocError::Invalid("damaged design: invalid feature in a timeline folder".into()));
}
}
for group in &d.timeline_groups {
if let Some(parent) = group.parent {
@@ -0,0 +1,5 @@
//! A point-to-point Align can save `axes`: the directions it moves along, as the chosen world
//! X/Y/Z axes in the frame of the bodies being moved (if it is absent, all three axes are used and
//! the offset is applied in full). Older designs need no transformation: they align on all three
//! axes as before. The last release refuses a design that has this (it refuses the newer format
//! number) rather than moving the bodies on all three axes.
@@ -0,0 +1,5 @@
//! An equation curve can save `variable_unit: "range"`: its variable is a length, as its range is,
//! instead of a plain number (#9333). An older design has none, and its variable stays a plain
//! number, as before; a curve with a plain variable saves nothing new. The last release refuses a
//! design with this change and asks for an update, instead of opening it and losing the key on the
//! next save.
@@ -0,0 +1,5 @@
//! A linked component's link saves `file_sha256`, the SHA-256 of the linked design file's bytes
//! as the assembly last read them, so an assembly opened again knows which linked designs changed
//! while it was closed (#9739). Older designs read unchanged: their links have no digest and are
//! taken as up to date until Update Links reads them. The last release refuses the newer format
//! and asks for an update instead of dropping the digests.
@@ -0,0 +1,5 @@
//! A component marked out of the History bar saves `history_hidden: true` on its component
//! entry, so its features (and its children's) stay out of the History bar while still
//! rebuilding. Older designs carry no such flag and every component shows its features, which
//! is exactly the flag's default; the last release refuses this newer format and asks for an
//! update instead of silently dropping the flag on the next save.
@@ -0,0 +1,5 @@
//! Cross-component face anchors in a part save the source-to-author component placement at
//! creation, so assembly moves do not reshape the part. Source geometry and body offsets stay
//! associative. Older anchors without `placement` retain their live placement relationship;
//! redefining their sketch plane captures a new context. The last release refuses this newer
//! format and asks for an update instead of dropping the captured placement.
@@ -0,0 +1,3 @@
//! Construction planes can store an associative axis and off-axis point reference.
//! Older designs keep their existing plane definitions unchanged. The last release
//! asks for an update rather than opening a design with this new plane definition.
@@ -0,0 +1,4 @@
//! A circular pattern's axis `origin` can hold length expressions (strings) as well as numbers,
//! so a pattern about a parameter-driven point follows the parameter (#10852). An origin of
//! plain numbers is saved as before, and older designs need no transformation. The last release
//! refuses this newer format and asks for an update instead of failing to read the origin.
@@ -0,0 +1,4 @@
//! A perforation field can be bounded by a sketch: a `sheet_perforate` feature saves an optional `sketch` and
//! `profiles` (its outline), and a sheet's perforation the outline in flat coordinates (`outline`). Holes go only
//! inside the outline. Older designs need no transformation: a field without an outline covers the whole sheet as
//! before. The last release refuses a design saved with this (the newer format number).
@@ -0,0 +1,5 @@
//! A tangent construction plane can save a `reference` (a plane or planar face) and an `angle`
//! (#8822): the plane touches the face where it turns towards the reference, turned by the angle
//! about the face's axis. An older design has neither, and its tangent planes touch where they
//! were picked, as before. The last release refuses a design that has them (it asks for an
//! update) instead of opening those planes at the picked point, away from their reference.
+1 -1
View File
@@ -50,7 +50,7 @@ fn edge_index(b: &ModelBody, name: Option<&str>, pick: Vec3) -> Option<usize> {
fn face_of(b: &ModelBody, i: usize, name: Option<&str>, pick: Vec3) -> Result<(usize, Vec3, Vec3)> {
let m = b.mesh();
let beside: Vec<usize> = m.edge_faces.get(i).map(|fs| fs.iter().map(|f| *f as usize).collect()).unwrap_or_default();
let infos = b.body.faces(tol(b))?;
let infos = b.joint_faces()?;
let planar = |f: usize| infos.iter().find(|x| x.index == f).and_then(|x| x.plane_normal.map(|n| (x.index, n, x.centroid, x.area)));
let chosen = match name {
Some(n) => {
+4 -7
View File
@@ -16,14 +16,11 @@ const TURNS: [f64; 4] = [0.0, std::f64::consts::FRAC_PI_2, std::f64::consts::PI,
/// Starts tried at most (angle values beyond the first three start at 0).
const MAX_STARTS: usize = 64;
/// The values of relation `j` that move B least from where it is now: B's joint frame as it sits
/// in A's, met as nearly as the relation allows (its origin as near as it can be to where it is,
/// and its axes, each weighed as a point a part's size along it). `None` for a joint that is not a relation, or whose
/// origins can't be found.
/// The values of joint `j` that move B least from where it is now: B's joint frame as it sits
/// in A's, met as nearly as the joint allows (its origin as near as it can be to where it is,
/// and its axes, each weighed as a point a part's size along it). Used for relations and for
/// typed joints that close a loop. `None` when the origins or finite values can't be found.
pub fn relation_values(doc: &Document, st: &ModelState, j: &Joint) -> Option<Vec<f64>> {
if !j.kind.is_relation() {
return None;
}
let world = |occ: u64| if occ == 0 { IDENTITY } else { occurrence_world(doc, occ) };
let fa = mat_mul(&world(j.a.occurrence), &resolve_origin(doc, st, &j.a).ok()?);
let fb = mat_mul(&world(j.b.occurrence), &resolve_origin(doc, st, &j.b).ok()?);
+4 -4
View File
@@ -86,10 +86,10 @@ pub use assembly::{
pub use document::*;
pub use eval::{
EdgeRef, FeatureResult, Model, ModelBody, ModelState, PlacedBodies, RevolveExtent, SavedModel, SolvedSketch, ThreadInfo, curve_pick_error,
edge_names_for, edge_refs, face_point_names, face_point_state, hole_direction_at, import_body_names, join_pieces_added, map_wire,
metric_thread_sizes, object_height, parse_metric_thread, pattern_matrices, revolve_extent, revolve_extent_with_convention, select_profiles,
sketch_hole_direction, sketch_line_plane, state_in_frame, state_in_frame_at, suggested_thread, tangent_face_chain, through_all_distance,
world_state, world_state_reusing,
edge_names_for, edge_refs, face_point_names, face_point_state, hole_direction_at, hole_on_surface, import_body_names, join_pieces_added,
map_wire, metric_thread_sizes, object_height, parse_metric_thread, pattern_matrices, revolve_extent, revolve_extent_for_handle,
revolve_extent_with_convention, select_profiles, sketch_hole_direction, sketch_line_plane, state_in_frame, state_in_frame_at, suggested_thread,
tangent_face_chain, through_all_distance, world_state, world_state_reusing,
};
pub use eval::{EvalCache, KeptResults};
pub use expr::Expr;
+12 -3
View File
@@ -571,7 +571,12 @@ pub(crate) fn order_lumps(bodies: &mut [crate::ModelBody], origin: &Arc<crate::n
}
for (_, members) in families.into_iter().filter(|(_, m)| m.len() > 1) {
let feature = members.first().and_then(|i| bodies.get(*i)).map(|b| b.feature);
if members.iter().any(|i| bodies.get(*i).map(|b| b.feature) != feature) {
// A cut's pieces past the first belong to the cut itself (#10123), so its family spans
// two features: the piece that kept the body's name comes from the body's own feature
// and the rest from this feature. Any other mix is not a split's family: leave it be.
let same = members.iter().all(|i| bodies.get(*i).map(|b| b.feature) == feature);
let foreign = members.iter().filter(|i| bodies.get(**i).map(|b| b.feature) != Some(origin.feature.id)).count();
if !same && foreign > 1 {
continue;
}
let least = |b: &crate::ModelBody| {
@@ -582,10 +587,14 @@ pub(crate) fn order_lumps(bodies: &mut [crate::ModelBody], origin: &Arc<crate::n
let keys: Option<Vec<(String, usize)>> = members.iter().map(|i| bodies.get(*i).and_then(least).map(|k| (k, *i))).collect();
let Some(mut keys) = keys else { continue };
keys.sort();
let names: Vec<String> = members.iter().filter_map(|i| bodies.get(*i).map(|b| b.name.clone())).collect();
for (name, (_, i)) in names.into_iter().zip(keys) {
// A name moves with the feature it belongs to: in a cut's family the first name is the
// cut body's own feature's and the rest are the cut's, and `body.rename` stores a name in
// the `body_names` of the feature a body says made it (#10438).
let names: Vec<(String, u64)> = members.iter().filter_map(|i| bodies.get(*i).map(|b| (b.name.clone(), b.feature))).collect();
for ((name, feature), (_, i)) in names.into_iter().zip(keys) {
if let Some(b) = bodies.get_mut(i) {
b.name = name;
b.feature = feature;
}
}
}
+6 -2
View File
@@ -223,11 +223,15 @@ impl Writer {
}
fn sheet(&mut self, sheet: &crate::sheet::SheetBody) -> Option<usize> {
let record = serde_json::to_value(sheet).ok()?;
let key = record.to_string();
// Keyed by the sheet written as text, straight from the sheet: every state asks for each
// of its sheets, and building the record (a JSON tree) each time only to find it written
// already took most of a sheet-metal design's save (906 states, 300 sheets: 0.8 s). Two
// sheets are the same text exactly when they are the same record.
let key = serde_json::to_string(sheet).ok()?;
if let Some(i) = self.sheet_index.get(&key) {
return Some(*i);
}
let record = serde_json::to_value(sheet).ok()?;
self.sheets.push(record);
self.sheet_index.insert(key, self.sheets.len() - 1);
Some(self.sheets.len() - 1)
+20 -4
View File
@@ -203,11 +203,11 @@ impl FaceHit {
/// What a feature says about how it found a face by its stored name `name` (`None`: exactly).
pub fn note(&self, name: &str) -> Option<String> {
if self.split {
Some(format!("face `{name}` was split; using the piece nearest the picked point"))
Some(format!("face `{}` was split; using the piece nearest the picked point", quoted(name)))
} else if self.merged {
Some(format!("face `{name}` was merged into another face; using that face"))
} else if !self.verified && !self.on_point && !self.legacy {
Some(format!("face `{name}` was found by geometry, not exact history; check it"))
Some(format!("face `{}` was found by geometry, not exact history; check it", quoted(name)))
} else {
None
}
@@ -243,13 +243,29 @@ impl FaceHit {
}
}
/// A stored name as a message quotes it: whole up to about 80 characters, else its start and
/// end around an ellipsis. Generated names grow with the history (a split edge's name holds both
/// its faces' names), and a chamfer's warning that quoted fourteen of them in full ran to 122,701
/// characters (#8541).
pub(crate) fn quoted(name: &str) -> String {
const HEAD: usize = 48;
const TAIL: usize = 24;
let n = name.chars().count();
if n <= HEAD + TAIL + 8 {
return name.to_string();
}
let head: String = name.chars().take(HEAD).collect();
let tail: String = name.chars().skip(n - TAIL).collect();
format!("{head}…{tail}")
}
impl EdgeHit {
/// What a feature says about how it found an edge by its stored name `name` (`None`: exactly).
pub fn note(&self, name: &str) -> Option<String> {
if self.split {
Some(format!("edge `{name}` was split; using the piece nearest the picked point"))
Some(format!("edge `{}` was split; using the piece nearest the picked point", quoted(name)))
} else if !self.verified && !self.on_point && !self.legacy {
Some(format!("edge `{name}` was found by geometry, not exact history; check it"))
Some(format!("edge `{}` was found by geometry, not exact history; check it", quoted(name)))
} else {
None
}
+55 -32
View File
@@ -90,7 +90,11 @@ pub struct ParamRow {
pub name: String,
pub expression: String,
pub unit: String,
/// Always millimetres for a length, degrees for an angle, whatever the parameter's own
/// unit — the same meaning `value` has in every reply (#10747).
pub value: Option<f64>,
/// The value in the parameter's own `unit`, as the Parameters window shows it.
pub display_value: Option<f64>,
pub error: Option<String>,
pub comment: String,
/// "user", "sketch" (a dimension) or "feature".
@@ -367,14 +371,20 @@ impl Document {
}
}
let used_by = |n: &str| -> Vec<String> { users.get(n).cloned().unwrap_or_default() };
let value = |n: &str, k: Kind| vals.get(n).and_then(|v| v.to_kind(k).ok()).map(|x| if k == Kind::Angle { x.to_degrees() } else { x });
let value = |n: &str, k: Kind| {
vals.get(n).and_then(|v| v.to_kind(k).ok()).map(|x| if k == Kind::Angle { x.to_degrees() } else { x }).map(expr::round_reported)
};
// `value` is mm / degrees in every row (#10747); the parameter's own unit goes to
// `display_value`. Both carry the number a person would read, not the float noise.
let unified = |n: &str| vals.get(n).map(|v| expr::round_reported(expr::reported_value(*v)));
let mut rows = Vec::new();
for p in &self.params {
rows.push(ParamRow {
name: p.name.clone(),
expression: p.expr.clone(),
unit: p.unit.clone(),
value: self.param_display_value(&vals, &p.name),
value: unified(&p.name),
display_value: self.param_display_value(&vals, &p.name).map(expr::round_reported),
error: errs.get(&p.name).cloned(),
comment: p.comment.clone(),
source: if p.model { "sketch" } else { "user" },
@@ -396,6 +406,8 @@ impl Document {
expression: e,
unit: unit_of(k).into(),
value: value(name, k),
// A feature input's own unit is mm / deg, so its display value is its value.
display_value: value(name, k),
error: errs.get(name).cloned(),
comment: self.param_comments.get(name).cloned().unwrap_or_default(),
source: "feature",
@@ -415,6 +427,7 @@ impl Document {
expression: p.text.clone(),
unit: crate::text_params::TEXT_UNIT.into(),
value: None,
display_value: None,
error: None,
comment: p.comment.clone(),
source: "user",
@@ -460,9 +473,10 @@ impl Document {
Ok(())
}
/// User parameters as CSV (`name,unit,expression,value,comment`).
/// User parameters as CSV (`name,unit,expression,value,comment`). The `value` column is the
/// number in the `unit` column, rounded for reading (#10747); import reads `expression`.
pub fn params_csv(&self) -> String {
let q = |s: &str| if s.contains([',', '"', '\n']) { format!("\"{}\"", s.replace('"', "\"\"")) } else { s.to_string() };
let q = |s: &str| if s.contains([',', '"', '\r', '\n']) { format!("\"{}\"", s.replace('"', "\"\"")) } else { s.to_string() };
let mut out = String::from("name,unit,expression,value,comment,favorite\n");
for r in self.param_rows().into_iter().filter(|r| r.source == "user") {
out += &format!(
@@ -470,7 +484,7 @@ impl Document {
q(&r.name),
q(&r.unit),
q(&r.expression),
r.value.map(|v| format!("{v}")).unwrap_or_default(),
r.display_value.or(r.value).map(|v| format!("{v}")).unwrap_or_default(),
q(&r.comment),
r.favorite
);
@@ -497,23 +511,25 @@ impl Document {
})
.collect::<Result<_>>()?
} else {
let mut lines = text.lines();
let header: Vec<String> = parse_csv_line(lines.next().unwrap_or_default()).into_iter().map(|h| h.trim().to_ascii_lowercase()).collect();
let col = |n: &str| header.iter().position(|h| h == n);
let mut records = split_csv(text.strip_prefix('\u{feff}').unwrap_or(text), '\n');
let header = csv_fields(records.next().unwrap_or_default())?;
let col = |n: &str| header.iter().position(|h| h.trim().eq_ignore_ascii_case(n));
let (Some(ni), Some(ei)) = (col("name"), col("expression").or(col("value"))) else {
return Err(DocError::Invalid("the CSV needs `name` and `expression` columns".into()));
};
let (ui, ci) = (col("unit"), col("comment"));
lines
.filter(|l| !l.trim().is_empty())
.map(|l| {
let c = parse_csv_line(l);
records
.filter(|record| !record.trim().is_empty())
.take(MAX_PARAMS + 1)
.map(|record| {
let c = csv_fields(record)?;
let get = |i: Option<usize>| i.and_then(|i| c.get(i)).map(|s| s.trim().to_string());
(get(Some(ni)).unwrap_or_default(), get(Some(ei)).unwrap_or_default(), get(ui), get(ci))
let comment = ci.and_then(|i| c.get(i)).cloned();
Ok((get(Some(ni)).unwrap_or_default(), get(Some(ei)).unwrap_or_default(), get(ui), comment))
})
.collect()
.collect::<Result<_>>()?
};
if rows.len() > 10_000 {
if rows.len() > MAX_PARAMS {
return Err(DocError::Invalid("too many parameters".into()));
}
// Each row is checked and applied as `change_param` would, but the parameters are
@@ -1069,25 +1085,32 @@ impl Document {
}
}
/// One CSV line with quoted fields.
fn parse_csv_line(l: &str) -> Vec<String> {
let mut out = Vec::new();
let mut cur = String::new();
/// Split records or fields only outside quotes. A doubled quote toggles twice
/// before the next separator, leaving it inside the same field.
fn split_csv(text: &str, separator: char) -> impl Iterator<Item = &str> {
let mut quoted = false;
let mut chars = l.chars().peekable();
while let Some(c) = chars.next() {
match (c, quoted) {
('"', true) if chars.peek() == Some(&'"') => {
cur.push('"');
chars.next();
}
('"', _) => quoted = !quoted,
(',', false) => out.push(std::mem::take(&mut cur)),
(c, _) => cur.push(c),
text.split(move |c| {
if c == '"' {
quoted = !quoted;
}
}
out.push(cur);
out
c == separator && !quoted
})
}
fn csv_fields(record: &str) -> Result<Vec<String>> {
split_csv(record, ',')
.map(|raw| {
let field = raw.trim();
if !field.contains('"') {
return Ok(field.to_string());
}
let inner = field.strip_prefix('"').and_then(|s| s.strip_suffix('"'));
match inner {
Some(s) if s.split("\"\"").all(|part| !part.contains('"')) => Ok(s.replace("\"\"", "\"")),
_ => Err(DocError::Invalid("invalid quoting in parameter CSV".into())),
}
})
.collect()
}
/// Parameters whose definitions depend on each other in a loop.
+59 -1
View File
@@ -16,23 +16,57 @@ pub(super) struct PlacedMesh {
/// each placement draws them moved, so a part is planned once however often it is placed.
plans: Arc<[OnceLock<Option<Arc<TessPlan>>>; 4]>,
plan_meshes: Arc<[OnceLock<Option<Arc<Mesh>>>; 4]>,
/// The definition's own opposite hand: a copy of a copy is a rigid move of that.
opposite_hand: Arc<OnceLock<OppositeHand>>,
transform: crate::Mat,
pub(super) tolerance: f64,
}
/// A body's opposite hand: the first mirrored copy made of it, and the matrix that made it. A
/// reflection reverses each face's edge walk, so a copy can't be drawn from its source's triangles.
/// Two reflections do cancel, though: every later mirrored copy of the body, wherever dragging a
/// placement puts it, is a proper rigid move of this one, whose triangles are made once.
#[derive(Debug)]
pub(super) struct OppositeHand {
/// The body it mirrors, to tell a holder whose body was replaced.
source: Body,
definition: ModelBody,
matrix: crate::Mat,
}
impl PlacedMesh {
/// Where `copy` (`source` transformed by `matrix`) stands relative to `source`'s opposite
/// hand. `None` shows it from its own mesh: a matrix that isn't a reflection of the first.
/// A copy of a copy goes by what its source is drawn from, which outlives that source.
pub(super) fn mirrored(source: &ModelBody, copy: &Body, matrix: &crate::Mat) -> Option<Self> {
let (cell, body, matrix) = match source.mirrored_mesh.as_deref() {
Some(drawn) => (&drawn.opposite_hand, &drawn.body, crate::mat_mul(matrix, &drawn.transform)),
None => (&source.opposite_hand, &source.body, *matrix),
};
let hand = cell.get_or_init(|| OppositeHand {
source: body.clone(),
definition: ModelBody::new(String::new(), copy.clone(), source.feature),
matrix,
});
if !same_triangles(&hand.source, body) {
return None;
}
Self::new(&hand.definition, &crate::mat_mul(&matrix, &crate::mat_inverse(&hand.matrix)?))
}
/// Share the original definition, never a chain of previously placed meshes. A source's
/// OnceLock lives with its immutable geometry, so edits get a new source automatically.
pub(super) fn new(source: &ModelBody, transform: &crate::Mat) -> Option<Self> {
if !proper_rigid(transform) {
return None;
}
Some(match source.mesh_placement.as_deref() {
Some(match source.mesh_placement.as_deref().or(source.mirrored_mesh.as_deref()) {
Some(original) => Self {
body: original.body.clone(),
mesh: original.mesh.clone(),
plans: original.plans.clone(),
plan_meshes: original.plan_meshes.clone(),
opposite_hand: original.opposite_hand.clone(),
transform: crate::mat_mul(transform, &original.transform),
tolerance: original.tolerance,
},
@@ -41,6 +75,7 @@ impl PlacedMesh {
mesh: source.mesh.clone(),
plans: source.plan.clone(),
plan_meshes: source.plan_mesh.clone(),
opposite_hand: source.opposite_hand.clone(),
transform: *transform,
tolerance: source.display_tol(),
},
@@ -98,6 +133,29 @@ impl PlacedMesh {
}
}
/// Whether two bodies mesh to the same triangles: the same shape, split along the same lines.
fn same_triangles(a: &Body, b: &Body) -> bool {
a.same_shape(b)
&& match (a.split_lines(), b.split_lines()) {
(Some(x), Some(y)) => Arc::ptr_eq(x, y),
(None, None) => true,
_ => false,
}
}
impl ModelBody {
/// Keep the meshes `old` holds when this body is the same shape: a feature evaluated again
/// that gives the same solids (an import, from its shared file) doesn't mesh them again.
pub(super) fn keep_meshes_of(&mut self, old: &ModelBody) {
if same_triangles(&self.body, &old.body) {
self.mesh = old.mesh.clone();
self.plan = old.plan.clone();
self.plan_mesh = old.plan_mesh.clone();
self.opposite_hand = old.opposite_hand.clone();
}
}
}
/// The display plan of a definition `body` at quality `q`, made once in `cell`.
pub(super) fn definition_plan(
body: &Body,
+22 -3
View File
@@ -31,6 +31,7 @@ impl Model {
return false;
}
self.evaluate(doc);
self.mark_fingerprinted(doc);
if !self.no_cache && self.primed.is_none() && self.placement_local {
self.placement_inputs = Some(Inputs { document: doc.clone(), state: Arc::downgrade(&self.state()) });
}
@@ -38,13 +39,16 @@ impl Model {
}
/// [`Model::refingerprint`] for a shared document: a proof that held for the results before
/// is kept for `doc`, since nothing was built differently (pinned body names, say).
pub fn refingerprint_shared(&mut self, doc: &Arc<Document>) {
/// is kept for `doc`, since nothing was built differently (pinned body names, say). The
/// first `keep` results keep their fingerprints: [`Model::pinned_prefix`] of the document
/// before the pins, or 0.
pub fn refingerprint_shared(&mut self, doc: &Arc<Document>, keep: usize) {
let proven = !self.no_cache
&& self.primed.is_none()
&& self.placement_inputs.as_ref().is_some_and(|inputs| inputs.state.upgrade().is_some_and(|state| Arc::ptr_eq(&state, &self.state())))
&& !self.is_stale();
self.refingerprint(doc);
self.refingerprint_from(doc, keep);
self.mark_fingerprinted(doc);
if proven && self.placement_local {
self.placement_inputs = Some(Inputs { document: doc.clone(), state: Arc::downgrade(&self.state()) });
}
@@ -64,6 +68,21 @@ fn local_plane(plane: &PlaneRef, depth: usize) -> bool {
}
}
/// Whether no feature after the mirror `f` can cut, join or otherwise build on bodies: only
/// features that read none, and further mirrors, which copy them. A boolean depends on how a
/// copy's revolved faces are turned, so a copy it may reach is made with
/// [`solidcraft_kernel::transform_matrix`]; one that is only shown needs no search for that. It
/// depends on the design alone, so a design evaluates the same however it was reached.
pub(super) fn copies_only_shown(doc: &Document, f: &Feature) -> bool {
let mut later = doc.features.iter().skip_while(|g| g.id != f.id).skip(1);
let mut components = std::collections::HashMap::with_capacity(doc.features.len());
for g in &doc.features {
components.entry(g.id).or_insert(g.component);
}
let copies = |g: &Feature| matches!(&g.kind, FeatureKind::Mirror { features, combine: false, .. } if features.is_empty());
later.all(|g| copies(g) || local_geometry(g, &components))
}
pub(super) fn local_geometry(f: &Feature, components: &std::collections::HashMap<u64, u64>) -> bool {
// Persistent picked-face/edge attachments can move an otherwise literal input.
if !f.face_names.is_empty() || !f.edge_names.is_empty() || !f.edge_refs.is_empty() {
+260 -33
View File
@@ -148,7 +148,7 @@ fn resolve_uncached(
let mesh = b.mesh();
match kind {
LinkKind::Intersect => section(plane, &mesh, None),
_ => silhouette(plane, &mesh),
_ => silhouette(plane, &mesh, Some(&b.body)),
}
}
LinkSource::Vertex { body, at } => {
@@ -208,7 +208,7 @@ fn resolve_uncached(
LinkSource::Intersection { a, b } => {
let (ma, fa) = crate::project3d::mesh_of(st, a).ok_or_else(|| lost(&a.describe()))?;
let (mb, fb) = crate::project3d::mesh_of(st, b).ok_or_else(|| lost(&b.describe()))?;
wires = crate::project3d::mesh_intersection(&ma, fa, &mb, fb);
wires = crate::project3d::mesh_intersection(&ma, fa.as_deref(), &mb, fb.as_deref());
Vec::new()
}
LinkSource::Iso { body, at, dir } => {
@@ -302,9 +302,78 @@ fn edge_geom(plane: &Plane, kind: LinkKind, exact: Option<Vec<LinkGeom>>, pts: V
/// Edges `edges` of `body` (indices into its mesh's `edges`) on `plane` as their exact curves:
/// lines, circles and arcs, and the Bézier pieces of a free-form curve. `None` for an edge that
/// doesn't lie in a plane parallel to `plane` or isn't read exactly (a mesh body's): it is
/// fitted to its polyline instead.
/// fitted to its polyline instead. An edge read as spline pieces, or not read, that runs along
/// a circle in a plane parallel to `plane` comes in as that circle ([`circular`]): a round's
/// edge is a spline that only follows its circle.
fn exact_edges(body: &crate::ModelBody, plane: &Plane, edges: &[usize]) -> Vec<Option<Vec<LinkGeom>>> {
body.body.planar_edges(plane, edges).into_iter().map(|segs| segs?.iter().map(link_geom).collect()).collect()
let mut mesh = None;
body.body
.planar_edges(plane, edges)
.into_iter()
.zip(edges)
.map(|(segs, e)| match segs {
Some(segs) if !segs.iter().any(|s| matches!(s, Seg2::Cubic { .. } | Seg2::Bezier { .. })) => segs.iter().map(link_geom).collect(),
Some(segs) => {
let samples: Vec<Vec2> =
segs.iter().flat_map(|s| (0..=CIRCLE_SAMPLES).map(move |i| s.point_at(f64::from(i) / f64::from(CIRCLE_SAMPLES)))).collect();
match circular(&samples) {
Some((g, _)) => Some(vec![g]),
None => segs.iter().map(link_geom).collect(),
}
}
None if body.body.is_mesh() => None,
None => {
// Not read: its polyline lies on the curve, but only many points of it show a circle.
let pts = mesh.get_or_insert_with(|| body.mesh()).edges.get(*e).filter(|pts| pts.len() > 8)?;
let level = plane.height(*pts.first()?);
let (g, radius) = circular(&pts.iter().map(|p| plane.to_local(*p)).collect::<Vec<_>>())?;
pts.iter().all(|p| (plane.height(*p) - level).abs() <= radius * CIRCLE_TOL).then(|| vec![g])
}
})
.collect()
}
/// Points sampled along each Bézier piece of an edge to see whether it runs along a circle.
const CIRCLE_SAMPLES: u16 = 16;
/// How far round (radians) a curve turns at least to be taken for a circle: a letter's nearly
/// straight stroke lies near a large circle too.
const CIRCLE_MIN_TURN: f64 = 0.1;
/// How far (a fraction of its radius) a curve may stray from a circle and still be that circle:
/// a round's edge keeps to it within 3e-7, a curve that merely looks round (a letter's bowl of
/// four cubic spans) only within 3e-4.
const CIRCLE_TOL: f64 = 1e-5;
/// The circle (closing points) or arc through `samples`, taken in order along a curve, with
/// its radius: when they all lie on one within [`CIRCLE_TOL`]. The arc ends at the first and
/// last sample, so it meets what the curve met.
fn circular(samples: &[Vec2]) -> Option<(LinkGeom, f64)> {
let (first, last) = (*samples.first()?, *samples.last()?);
let (c, radius) = ls_circle(samples)?;
let tol = radius * CIRCLE_TOL;
if !(radius.is_finite() && tol > 0.0) || samples.iter().any(|p| (p.dist(c) - radius).abs() > tol) {
return None;
}
let mut sweep = 0.0;
for w in samples.windows(2) {
let (Some(a), Some(b)) = (w.first(), w.get(1)) else { continue };
let mut d = (*b - c).angle() - (*a - c).angle();
if d > std::f64::consts::PI {
d -= std::f64::consts::TAU;
} else if d < -std::f64::consts::PI {
d += std::f64::consts::TAU;
}
sweep += d;
}
let turn = sweep.abs();
if turn > std::f64::consts::TAU + 1e-6 || turn < CIRCLE_MIN_TURN {
return None;
}
if first.dist(last) <= tol {
return (turn > std::f64::consts::TAU - 1e-6).then_some((LinkGeom::Circle(c, radius), radius));
}
// Counter-clockwise from `a` to `b`.
let (a, b) = if sweep > 0.0 { (first, last) } else { (last, first) };
Some((LinkGeom::Arc { c, a, b }, radius))
}
/// `edges` of `body` projected on `plane`: each exactly ([`exact_edges`]) or fitted to its
@@ -669,7 +738,7 @@ fn refresh_links_in(
*at = p;
named_face = Some((body.clone(), index, p));
if split {
warn.push(format!("projected face `{name}` was split; using the nearest piece"));
warn.push(format!("projected face `{}` was split; using the nearest piece", crate::name_lookup::quoted(name)));
}
} else {
sk.set_link_lost(&l.id, true);
@@ -1058,36 +1127,171 @@ fn section_of_polyline(plane: &Plane, pts: &[Vec3]) -> Vec<LinkGeom> {
}
/// The outline of a body seen along the sketch normal: mesh edges between triangles facing the
/// sketch and triangles facing away (or edge-on), projected and fitted.
fn silhouette(plane: &Plane, m: &Mesh) -> Vec<LinkGeom> {
/// sketch and triangles facing away (or edge-on), projected and fitted. A face of `body` that
/// faces one way all over ([`face_facing`]) does so in every triangle, though they lean a hair
/// either way: a round wall seen edge-on joins its two rims at different angles, and thin
/// slivers of a narrow chamfer can point the other way.
fn silhouette(plane: &Plane, m: &Mesh, body: Option<&solidcraft_kernel::Body>) -> Vec<LinkGeom> {
let n = plane.normal();
let size = m.bounds().diagonal().max(1e-9);
let q = size * 1e-7;
let key = |p: Vec3| ((p.x / q).round() as i64, (p.y / q).round() as i64, (p.z / q).round() as i64);
// Undirected mesh edge → facing flags of the triangles using it.
let mut edges: BTreeMap<((i64, i64, i64), (i64, i64, i64)), (Vec3, Vec3, Vec<bool>)> = BTreeMap::new();
for t in &m.triangles {
let Some([a, b, c]) = m.tri(t) else { continue };
let fnrm = (b - a).cross(c - a);
let Some(un) = fnrm.normalized() else { continue };
let front = un.dot(n) > 1e-6;
for (p, r) in [(a, b), (b, c), (c, a)] {
let (kp, kr) = (key(p), key(r));
let k = if kp <= kr { (kp, kr) } else { (kr, kp) };
edges.entry(k).or_insert_with(|| (p, r, Vec::new())).2.push(front);
// Vertices welded within this: the copies of a vertex on the seam between two faces can lie
// a few 1e-7 apart, and an edge used by one triangle only is outline.
let weld = size * 1e-6;
let cell = |p: Vec3| ((p.x / weld).floor() as i64, (p.y / weld).floor() as i64, (p.z / weld).floor() as i64);
let mut grid: BTreeMap<(i64, i64, i64), Vec<usize>> = BTreeMap::new();
let mut verts: Vec<Vec3> = Vec::new();
let mut vertex = |p: Vec3| -> usize {
let (x, y, z) = cell(p);
for dx in -1..=1 {
for dy in -1..=1 {
for dz in -1..=1 {
let found = grid
.get(&(x + dx, y + dy, z + dz))
.and_then(|ids| ids.iter().copied().find(|i| verts.get(*i).is_some_and(|v| v.dist(p) <= weld)));
if let Some(i) = found {
return i;
}
}
}
}
verts.push(p);
grid.entry((x, y, z)).or_default().push(verts.len() - 1);
verts.len() - 1
};
let tris: Vec<([Vec3; 3], Vec3, Option<u32>)> = m
.triangles
.iter()
.enumerate()
.filter_map(|(ti, t)| {
let [a, b, c] = m.tri(t)?;
Some(([a, b, c], (b - a).cross(c - a), m.tri_face.get(ti).copied()))
})
.collect();
// Each face's area-weighted facing, and whether any triangle of it is in doubt: near
// edge-on, or facing against the rest of its face. Only those faces ask what they are.
let mut faces: BTreeMap<u32, (f64, bool)> = BTreeMap::new();
for (_, w, f) in &tris {
if let Some(f) = f {
faces.entry(*f).or_default().0 += w.dot(n);
}
}
let segs: Vec<(Vec2, Vec2)> = edges
for (_, w, f) in &tris {
let (Some(f), Some(un)) = (f, w.normalized()) else { continue };
if let Some(face) = faces.get_mut(f) {
face.1 |= un.dot(n).abs() < 0.5 || (un.dot(n) > 0.0) != (face.0 > 0.0);
}
}
let facing: BTreeMap<u32, Facing> = match body {
Some(body) => faces.iter().filter(|(_, (_, doubt))| *doubt).filter_map(|(f, (sum, _))| Some((*f, face_facing(body, *f, n, *sum)?))).collect(),
None => BTreeMap::new(),
};
// Undirected mesh edge → facing flags of the triangles using it.
let ids: Vec<[usize; 3]> = tris.iter().map(|([a, b, c], _, _)| [vertex(*a), vertex(*b), vertex(*c)]).collect();
let mut edges: BTreeMap<(usize, usize), (Vec3, Vec3, Vec<(bool, Option<u32>)>)> = BTreeMap::new();
for ((_, w, f), [ia, ib, ic]) in tris.iter().zip(ids) {
let Some(un) = w.normalized() else { continue };
let front = match f.and_then(|f| facing.get(&f)) {
Some(Facing::Front) => true,
Some(Facing::Away) => false,
None => un.dot(n) > 1e-6,
};
for (p, r) in [(ia, ib), (ib, ic), (ic, ia)] {
if p == r {
continue;
}
let (Some(vp), Some(vr)) = (verts.get(p).copied(), verts.get(r).copied()) else { continue };
edges.entry((p.min(r), p.max(r))).or_insert((vp, vr, Vec::new())).2.push((front, *f));
}
}
let mut segs: Vec<(Vec2, Vec2)> = edges
.values()
.filter(|(_, _, f)| {
let fronts = f.iter().filter(|x| **x).count();
fronts > 0 && fronts < f.len() || (f.len() == 1 && fronts == 1)
let fronts = f.iter().filter(|x| x.0).count();
fronts > 0 && fronts < f.len()
})
.map(|(a, b, _)| (plane.to_local(*a), plane.to_local(*b)))
.collect();
let singles: Vec<(Vec3, Vec3, bool, Option<u32>)> = edges
.values()
.filter_map(|(a, b, f)| match f.as_slice() {
[(front, face)] => Some((*a, *b, *front, *face)),
_ => None,
})
.collect();
segs.extend(open_edges(&singles, size).into_iter().map(|(a, b)| (plane.to_local(a), plane.to_local(b))));
fit_segments(&segs, size, true)
}
/// Of the mesh edges used by one triangle each (`a`, `b`, whether the triangle faces the sketch,
/// its face), those facing the sketch that are outline: an open sheet's border. Where two faces
/// meet, one face's triangles can split the seam at a vertex the other's run straight past, and
/// both sides are then used once; a seam whose other side faces the sketch too is no outline.
fn open_edges(singles: &[(Vec3, Vec3, bool, Option<u32>)], size: f64) -> Vec<(Vec3, Vec3)> {
// The two sides of a seam stray from each other by at most a chord's sag.
let seam = size * 2e-3;
let cell = seam * 8.0;
let at = |p: Vec3| ((p.x / cell).floor() as i64, (p.y / cell).floor() as i64, (p.z / cell).floor() as i64);
let mut grid: BTreeMap<(i64, i64, i64), Vec<usize>> = BTreeMap::new();
let mut long: Vec<usize> = Vec::new();
for (i, (a, b, front, _)) in singles.iter().enumerate() {
if !front {
continue;
}
let (lo, hi) = (at(a.min(*b) - Vec3::new(seam, seam, seam)), at(a.max(*b) + Vec3::new(seam, seam, seam)));
let cells = (hi.0 - lo.0 + 1).saturating_mul(hi.1 - lo.1 + 1).saturating_mul(hi.2 - lo.2 + 1);
if cells > 512 {
long.push(i);
continue;
}
for x in lo.0..=hi.0 {
for y in lo.1..=hi.1 {
for z in lo.2..=hi.2 {
grid.entry((x, y, z)).or_default().push(i);
}
}
}
}
singles
.iter()
.enumerate()
.filter(|(i, (a, b, front, face))| {
let m = (*a + *b) * 0.5;
*front
&& !grid
.get(&at(m))
.into_iter()
.flatten()
.chain(&long)
.any(|j| singles.get(*j).is_some_and(|(p, q, _, other)| j != i && other != face && m.dist_to_segment(*p, *q) <= seam))
})
.map(|(_, (a, b, _, _))| (*a, *b))
.collect()
}
/// Which way a whole face of a body faces, seen along a sketch normal.
#[derive(Clone, Copy)]
enum Facing {
Front,
/// Away from the sketch or edge-on.
Away,
}
/// Which way face `face` of `body` faces seen along `n`, when it faces one way all over: a
/// plane (edge-on when it contains `n`), a cylinder about `n` (edge-on), a cone about `n`.
/// `sum` is the face's triangles' normals weighted by their areas, dotted with `n`: the side a
/// plane or such a cone faces. `None` for any other face: each triangle says.
fn face_facing(body: &solidcraft_kernel::Body, face: u32, n: Vec3, sum: f64) -> Option<Facing> {
use solidcraft_kernel::FaceSurface;
let side = if sum > 0.0 { Facing::Front } else { Facing::Away };
match solidcraft_kernel::face_surface(body, face as usize)? {
FaceSurface::Plane { normal, .. } if normal.vec().dot(n).abs() < 1e-9 => Some(Facing::Away),
FaceSurface::Plane { .. } => Some(side),
FaceSurface::Cylinder { axis, .. } if axis.vec().dot(n).abs() > 1.0 - 1e-12 => Some(Facing::Away),
FaceSurface::Cone { axis, .. } if axis.vec().dot(n).abs() > 1.0 - 1e-12 => Some(side),
_ => None,
}
}
/// Section of a mesh (or one of its faces) with the sketch plane.
pub(crate) fn section(plane: &Plane, m: &Mesh, face: Option<u32>) -> Vec<LinkGeom> {
let size = m.bounds().diagonal().max(1e-9);
@@ -1339,8 +1543,9 @@ fn snap_tangent_arcs(out: &mut [LinkGeom], tol: f64) {
for i in 0..out.len() {
let Some(LinkGeom::Arc { c, a, b }) = out.get(i).cloned() else { continue };
let r = (c.dist(a) + c.dist(b)) / 2.0;
// (arc end, line index, line end index, tangent point, unit normal towards the centre, centre distance)
let mut hits: Vec<(usize, usize, usize, Vec2, Vec2, f64)> = Vec::new();
// Per arc end: (gap to the line's end, line index, line end index, tangent point, unit
// normal towards the centre, centre distance)
let mut hits: [Vec<(f64, usize, usize, Vec2, Vec2, f64)>; 2] = [Vec::new(), Vec::new()];
for (end, e) in [a, b].into_iter().enumerate() {
for (j, g) in out.iter().enumerate() {
let LinkGeom::Line(p, q) = g else { continue };
@@ -1358,17 +1563,39 @@ fn snap_tangent_arcs(out: &mut [LinkGeom], tol: f64) {
if (foot - far).dot(near_pt - far) <= 0.0 || near_pt.dist(foot) > 0.25 * r {
continue;
}
hits.push((end, j, near, foot, n, d));
// When this end of the arc already meets another piece of the outline and the line
// doesn't end there, the line lies further along (past that piece, as along a
// conic fitted with several arcs): moving the end onto it would leave a gap.
let gap = near_pt.dist(e);
let meets = |g: &LinkGeom| match *g {
LinkGeom::Line(s, t) | LinkGeom::Arc { a: s, b: t, .. } => s.dist(e) <= tol || t.dist(e) <= tol,
_ => false,
};
if gap > tol && out.iter().enumerate().any(|(k, g)| k != i && k != j && meets(g)) {
continue;
}
if let Some(h) = hits.get_mut(end) {
h.push((gap, j, near, foot, n, d));
}
}
}
let mut hits_by_end: [Option<(usize, usize, Vec2, Vec2, f64)>; 2] = [None, None];
for (end, j, near, foot, n, d) in hits {
if let Some(slot) = hits_by_end.get_mut(end)
&& slot.is_none()
{
*slot = Some((j, near, foot, n, d));
}
for h in &mut hits {
h.sort_by(|x, y| x.0.total_cmp(&y.0));
}
// Each end takes the line ending nearest it. Both ends on one line would pull the arc down
// to a point: the end nearer that line's end keeps it, the other takes its next line.
let [ha, hb] = &hits;
let (ta, tb) = match (ha.first(), hb.first()) {
(Some(x), Some(y)) if x.1 == y.1 => {
if x.0 <= y.0 {
(Some(x), hb.iter().find(|h| h.1 != x.1))
} else {
(ha.iter().find(|h| h.1 != y.1), Some(y))
}
}
pair => pair,
};
let hits_by_end: [Option<(usize, usize, Vec2, Vec2, f64)>; 2] = [ta, tb].map(|h| h.map(|&(_, j, near, foot, n, d)| (j, near, foot, n, d)));
let (mut c, mut r) = (c, r);
if let [Some((_, _, _, n1, d1)), Some((_, _, _, n2, d2))] = hits_by_end {
// One circle tangent to both lines: equal distance to each.
+11 -8
View File
@@ -12,15 +12,17 @@ use crate::eval::ModelState;
/// Most triangle pairs examined by one intersection.
const MAX_PAIRS: usize = 20_000_000;
/// The mesh (and face, for a face source) of a body or face reference.
pub(crate) fn mesh_of(st: &ModelState, src: &LinkSource) -> Option<(Arc<Mesh>, Option<u32>)> {
/// The mesh of a body or face reference and, for a face, the faces of its surface patch: the B-rep
/// pieces joined across hidden seams, as the viewport picks and highlights it (#9009).
pub(crate) fn mesh_of(st: &ModelState, src: &LinkSource) -> Option<(Arc<Mesh>, Option<Vec<u32>>)> {
match src {
LinkSource::Body { body } => Some((st.body(body)?.mesh(), None)),
LinkSource::Face { body, at } => {
let b = st.body(body).or_else(|| st.bodies.iter().min_by(|x, y| dist_to(&x.mesh(), *at).total_cmp(&dist_to(&y.mesh(), *at))))?;
let m = b.mesh();
let (f, _, _) = crate::project::nearest_face(&m, *at)?;
Some((m, Some(f)))
let patch: Vec<u32> = m.surface_patch(f as usize).into_iter().filter_map(|i| u32::try_from(i).ok()).collect();
Some((m, Some(patch)))
}
_ => None,
}
@@ -30,8 +32,9 @@ fn dist_to(m: &Mesh, p: Vec3) -> f64 {
crate::project::nearest_face(m, p).map(|x| x.2).unwrap_or(f64::INFINITY)
}
fn tris(m: &Mesh, face: Option<u32>) -> Vec<[Vec3; 3]> {
m.triangles.iter().zip(&m.tri_face).filter(|(_, f)| face.is_none_or(|x| x == **f)).filter_map(|(t, _)| m.tri(t)).collect()
/// The triangles of the faces in `faces` (sorted ascending), or of the whole mesh for `None`.
fn tris(m: &Mesh, faces: Option<&[u32]>) -> Vec<[Vec3; 3]> {
m.triangles.iter().zip(&m.tri_face).filter(|(_, f)| faces.is_none_or(|fs| fs.binary_search(f).is_ok())).filter_map(|(t, _)| m.tri(t)).collect()
}
/// Ray–triangle hit parameter (Möller–Trumbore), any sign.
@@ -60,7 +63,7 @@ fn ray_hit(o: Vec3, d: Vec3, t: &[Vec3; 3]) -> Option<f64> {
/// miss the face split the result.
pub(crate) fn onto_face(m: &Mesh, f: u32, pts: &[Vec3], dir: Vec3) -> Vec<Vec<Vec3>> {
let Some(d) = dir.normalized() else { return Vec::new() };
let ts = tris(m, Some(f));
let ts = tris(m, Some(std::slice::from_ref(&f)));
let size = m.bounds().diagonal().max(1e-9);
// Resample so the projected curve follows the surface.
let step = size / 200.0;
@@ -138,8 +141,8 @@ fn tri_tri(a: &[Vec3; 3], b: &[Vec3; 3]) -> Option<(Vec3, Vec3)> {
(pr(hi) - pr(lo) > 1e-12).then_some((lo, hi))
}
/// Where two meshes (or faces of them) meet, as polylines.
pub(crate) fn mesh_intersection(ma: &Mesh, fa: Option<u32>, mb: &Mesh, fb: Option<u32>) -> Vec<Vec<Vec3>> {
/// Where two meshes (or face patches of them) meet, as polylines.
pub(crate) fn mesh_intersection(ma: &Mesh, fa: Option<&[u32]>, mb: &Mesh, fb: Option<&[u32]>) -> Vec<Vec<Vec3>> {
let (ta, tb) = (tris(ma, fa), tris(mb, fb));
let bbox = |t: &[Vec3; 3]| (t[0].min(t[1]).min(t[2]), t[0].max(t[1]).max(t[2]));
// Uniform grid over B.
+111
View File
@@ -235,6 +235,117 @@ mod tests {
let (Some(LinkGeom::Arc { a, .. }), Some(LinkGeom::Line(p, _))) = (out.get(1), out.get(2)) else { panic!("{out:?}") };
assert!(a.dist(*p) < 1e-9, "{out:?}");
}
#[test]
fn tangent_snapping_leaves_a_line_further_along_alone() {
use solidcraft_geom::Vec2;
use solidcraft_sketch::LinkGeom;
let v = Vec2::new;
let y = |x: f64| 2.0 - (4.0 - x * x).sqrt();
// The arc's end at x = 0.5 already meets the next piece; the line along y = 0 ends at
// x = 0.3, further along the outline the other way. Snapping onto it would pull the end
// off the piece it meets.
let mut out = vec![
LinkGeom::Arc { c: v(0., 2.), a: v(0.5, y(0.5)), b: v(-1.5, y(-1.5)) },
LinkGeom::Line(v(0.3, 0.), v(10., 0.)),
LinkGeom::Line(v(0.5, y(0.5)), v(3., 3.)),
];
let before = out.clone();
super::super::snap_tangent_arcs(&mut out, 0.05);
assert_eq!(out.get(1), before.get(1), "{out:?}");
let (Some(LinkGeom::Arc { a, .. }), Some(LinkGeom::Line(p, _))) = (out.first(), out.get(2)) else { panic!("{out:?}") };
assert!(a.dist(*p) < 1e-9, "{out:?}");
}
#[test]
fn tangent_snapping_gives_one_line_to_one_end_of_an_arc() {
use solidcraft_geom::Vec2;
use solidcraft_sketch::LinkGeom;
let v = Vec2::new;
let y = |x: f64| 2.0 - (4.0 - x * x).sqrt();
// A short arc whose two ends both lie near the end of one line: both snapping onto it
// would shrink the arc to the tangent point.
let mut out = vec![LinkGeom::Arc { c: v(0., 2.), a: v(-0.2, y(-0.2)), b: v(0.2, y(0.2)) }, LinkGeom::Line(v(-10., 0.), v(0., 0.))];
super::super::snap_tangent_arcs(&mut out, 0.05);
let Some(LinkGeom::Arc { a, b, .. }) = out.first() else { panic!("{out:?}") };
assert!(a.dist(*b) > 0.1, "{out:?}");
}
#[test]
fn tangent_snapping_moves_the_other_end_of_an_arc_to_its_next_line() {
use solidcraft_geom::Vec2;
use solidcraft_sketch::LinkGeom;
let v = Vec2::new;
let y = |x: f64| 2.0 - (4.0 - x * x).sqrt();
let (a, b) = (v(-0.2, y(-0.2)), v(0.2, y(0.2)));
// The line along y = 0 ends nearest both ends of the arc but nearer b, which keeps it; a
// takes the next line, tangent to the circle at a and ending a little past it.
let back = (v(0., 2.) - a).normalized().map(|n| v(-n.y, n.x)).unwrap_or(Vec2::X);
let mut out =
vec![LinkGeom::Arc { c: v(0., 2.), a, b }, LinkGeom::Line(v(0.1, 0.), v(10., 0.)), LinkGeom::Line(a + back * 10., a + back * 0.35)];
super::super::snap_tangent_arcs(&mut out, 0.05);
let (Some(LinkGeom::Arc { a, b, .. }), Some(LinkGeom::Line(p, _)), Some(LinkGeom::Line(_, q))) = (out.first(), out.get(1), out.get(2)) else {
panic!("{out:?}")
};
assert!(b.dist(*p) < 1e-9 && a.dist(*q) < 1e-9 && a.dist(*b) > 0.1, "{out:?}");
}
#[test]
fn tangent_snapping_closes_a_conic_corner_in_any_order() {
use solidcraft_geom::Vec2;
use solidcraft_sketch::LinkGeom;
// A square of side 150 with a conic round of 10 mm legs at each corner, fitted with lines
// and arcs the way a silhouette is, then snapped with the pieces in each order.
for rho in [0.1, 0.15, 0.5, 0.8, 0.9] {
let w = rho / (1. - rho);
let conic = |s: Vec2, apex: Vec2, e: Vec2, t: f64| {
let (b0, b1, b2) = ((1. - t) * (1. - t), 2. * t * (1. - t) * w, t * t);
(s * b0 + apex * b1 + e * b2) * (1. / (b0 + b1 + b2))
};
let v = Vec2::new;
let corners = [
(v(-75., 65.), v(-75., 75.), v(-65., 75.)),
(v(65., 75.), v(75., 75.), v(75., 65.)),
(v(75., -65.), v(75., -75.), v(65., -75.)),
(v(-65., -75.), v(-75., -75.), v(-75., -65.)),
];
let mut chain = Vec::new();
for (s, apex, e) in corners {
chain.extend((0..=40).map(|k| conic(s, apex, e, f64::from(k) / 40.)));
}
if let Some(&first) = chain.first() {
chain.push(first);
}
let mut fitted = Vec::new();
super::super::fit_chain_with_arcs(&chain, Some(212. * 1e-5), &mut fitted, true);
assert!(fitted.iter().any(|g| matches!(g, LinkGeom::Arc { .. })), "{fitted:?}");
let ends = |g: &LinkGeom| match *g {
LinkGeom::Line(s, t) | LinkGeom::Arc { a: s, b: t, .. } => vec![s, t],
_ => Vec::new(),
};
for k in 0..fitted.len() {
let mut out = fitted.clone();
out.rotate_left(k);
super::super::snap_tangent_arcs(&mut out, 212. * 1e-3);
// Every end still meets another piece's end. An end left without a line moves a little
// when the arc's radius is set from the lines (well under 0.01 mm here); before, ends
// pulled onto lines further along left gaps of 0.25 to 0.55 mm.
for (i, g) in out.iter().enumerate() {
for e in ends(g) {
let gap = out
.iter()
.enumerate()
.filter(|(j, _)| *j != i)
.flat_map(|(_, h)| ends(h))
.map(|x| x.dist(e))
.fold(f64::INFINITY, f64::min);
assert!(gap < 212. * 1e-3 * 0.02, "rho {rho}, rotation {k}: gap {gap} at {e:?}: {out:?}");
}
}
}
}
}
#[test]
fn boundaries_touching_at_a_vertex_project() {
// Two squares of one face family meet only at the corner (1, 1): four boundary edges meet

Some files were not shown because too many files have changed in this diff Show More