Repository navigation
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Merging this PR will not alter performance
Comparing Footnotes
|
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Distance annotations between two parallel planar faces now choose a display plane containing their common normal automatically. Point-and-click users can select both faces, invoke GDT Distance, and leave Frame Plane on Automatic. The generated KCL preserves both face references and omits framePlane, allowing the runtime to recalculate the orientation as the model changes.
Pair this with engine #5249, which corrects the measured endpoints: a 12 mm sideways offset plus a 5 mm plane separation displays 5 mm, rather than 13 mm. Deploy the engine correction before shipping this app behavior. There are no new engine commands, fields, or schema changes; KCL uses existing FaceIsPlanar and hidden MakePlane commands with its existing internal Plane type.
Explicit display planes must contain the measurement direction; incompatible planes produce a diagnostic. Nonparallel/curved face pairs and edge measurements retain their existing measurement semantics. The command handles primitive face/edge selections, permits omitted tolerance, preserves Automatic when editing, and uses centered model-scaled distance placement. The placement work overlaps #14285 and should be reconciled before merging. #14308 remains independent and is not a prerequisite.
Regression coverage includes generated KCL through the real command codemod, edit round trips without tolerance, automatic/explicit planes, opposite normals, and rotated normals. All 127 targeted app tests and 28 Rust GD&T tests passed; the updated WebAssembly built and these app tests ran against it. Engine-backed visual validation remains pending a dev engine with #5249 and a Zoo dev token; the C++ engine tests have not been run locally.
For a point-and-click smoke check, paste the following without its final gdt::distance call, select lowerTop and upperBottom in the scene (rotate between selections if needed), and apply GDT Distance with Automatic and no tolerance. Expect 5.000 mm. Move the upper circle sideways or reverse the selection order; the value must remain 5 mm. The complete snippet also tests the direct KCL path:
@settings(defaultLengthUnit = mm, kclVersion = 2) lowerSketch = sketch(on = XY) { perimeter = circle(start = [5mm, 0mm], center = [0mm, 0mm]) } lower = extrude(region(segments = [lowerSketch.perimeter]), length = 2mm, tagEnd = $lowerTop) upperPlane = offsetPlane(XY, offset = 7mm) upperSketch = sketch(on = upperPlane) { perimeter = circle(start = [15mm, 0mm], center = [12mm, 0mm]) } upper = extrude(region(segments = [upperSketch.perimeter]), length = 2mm, tagStart = $upperBottom) gdt::distance(from = lowerTop, to = upperBottom, fontSize = 1mm)Addresses #11623 together with engine #5249. The display plane is kept distinct from measurement semantics, as discussed in #10607.
Product documentation: documentation #1069.