Feat: JOIN command — merge collinear Lines or co-circular Arcs

Selection-gathering mode: select objects, press Enter to apply.
- Lines: checks collinearity + no-gap, merges into single line span
- Arcs: checks same center/radius + contiguous angles, merges to Arc or Circle
- Uses CmdResult::JoinEntities; geometry computed in cmd_result from document

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Hakan SevenandClaude Sonnet 4.6 committed 2026-04-02 23:41:53 +03:00
1 parent 4b8ae08a19
commit 641cc2d70b
5 files changed
+246 -2

No files matched your search

+9 -2
View File
@@ -970,7 +970,14 @@ impl H7CAD {
}
}
// ── Break ────────────────────────────────────────────────────────
// ── Break / Join ─────────────────────────────────────────────────
"JOIN"|"J" => {
use crate::modules::home::modify::join::JoinCommand;
let cmd = JoinCommand::new();
self.command_line.push_info(&cmd.prompt());
self.tabs[i].active_cmd = Some(Box::new(cmd));
}
"BREAK"|"BR" => {
use crate::modules::home::modify::break_cmd::BreakInteractiveCommand;
let cmd = BreakInteractiveCommand::new();
@@ -1003,7 +1010,7 @@ impl H7CAD {
"HELP"|"?" => {
self.command_line.push_output(
"Draw: LINE CIRCLE ARC PLINE RECT POLY POINT ELLIPSE SPLINE RAY XLINE HATCH | \
Modify: MOVE COPY ROTATE SCALE MIRROR ERASE OFFSET EXTEND FILLET CHAMFER STRETCH EXPLODE TRIM BREAK | \
Modify: MOVE COPY ROTATE SCALE MIRROR ERASE OFFSET EXTEND FILLET CHAMFER STRETCH EXPLODE TRIM BREAK JOIN | \
Array: ARRAY ARRAYRECT ARRAYPOLAR ARRAYPATH | \
Text: TEXT MTEXT LEADER MLEADER | \
Dimension: DIMLINEAR DIMANGULAR DIMRADIUS | \