Feat: BREAK command (BR) — split Line/Arc/Circle/LwPolyline at two points
3-step interactive flow: 1. Entity pick (first break point recorded at click location) 2. Optional first point refinement 3. Second break point → CmdResult::BreakEntity applied in cmd_result Geometry: - Line: project p1/p2 onto line parameter space → two line fragments - Arc: project p1/p2 to arc angles → trim CCW from p1 to p2 - Circle: same as Arc, converts Circle → Arc - LwPolyline: nearest-vertex split → two polyline fragments Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
a3bb2714c1
commit
4b8ae08a19
5 changed files with 330 additions and 1 deletions
|
|
@ -970,6 +970,14 @@ impl H7CAD {
|
|||
}
|
||||
}
|
||||
|
||||
// ── Break ────────────────────────────────────────────────────────
|
||||
"BREAK"|"BR" => {
|
||||
use crate::modules::home::modify::break_cmd::BreakInteractiveCommand;
|
||||
let cmd = BreakInteractiveCommand::new();
|
||||
self.command_line.push_info(&cmd.prompt());
|
||||
self.tabs[i].active_cmd = Some(Box::new(cmd));
|
||||
}
|
||||
|
||||
// ── Inquiry ──────────────────────────────────────────────────────
|
||||
"DIST"|"DI" => {
|
||||
use crate::modules::home::inquiry::dist::DistCommand;
|
||||
|
|
@ -995,7 +1003,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 | \
|
||||
Modify: MOVE COPY ROTATE SCALE MIRROR ERASE OFFSET EXTEND FILLET CHAMFER STRETCH EXPLODE TRIM BREAK | \
|
||||
Array: ARRAY ARRAYRECT ARRAYPOLAR ARRAYPATH | \
|
||||
Text: TEXT MTEXT LEADER MLEADER | \
|
||||
Dimension: DIMLINEAR DIMANGULAR DIMRADIUS | \
|
||||
|
|
|
|||
Loading…
Reference in a new issue