Frames: state-following ribbon list, DWF/DGN frames, image frame encoding and profile, frame-only picking

- The Frames list shows the drawing's frame state (hide / display and plot /
  display but not plot / frames vary), follows commands, undo and document
  switches, and lists the mixed state as a disabled item.
- DWFFRAME and DGNFRAME are frame variables of their own, kept in the header,
  and FRAME sets them with the others.
- Out-of-range frame values say "Requires an integer between 0 and 2." and
  ask again; a set value reports "Regenerating model.".
- IMAGEFRAME is stored in the image variables as bits (2 is written as 3) and
  a drawing without them uses the profile value, which setting IMAGEFRAME
  updates and the settings file keeps.
- Raster images, PDF underlays and wipeouts are picked on their frame only;
  underlay snap geometry is never picked.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
ramox81andClaude Opus 5.5 committed 2026-09-28 10:53:53 +03:00
1 parent 801882314f
commit 7f8f8457c7
72 files changed
+451 -65

No files matched your search

+2
View File
@@ -340,6 +340,7 @@ impl CadCommand for AlignedDimensionCommand {
world_width: 0.0,
depth_override: None,
display_visible: true,
snap_only: false,
plot_visible: true,
fill_is_3d: false,
fill_is_2d_solid: false,
@@ -432,6 +433,7 @@ fn preview_aligned(p1: DVec3, p2: DVec3, dim_pt: DVec3) -> WireModel {
world_width: 0.0,
depth_override: None,
display_visible: true,
snap_only: false,
plot_visible: true,
fill_is_3d: false,
fill_is_2d_solid: false,
+1
View File
@@ -1249,6 +1249,7 @@ fn preview_wire(points: Vec<DVec3>) -> WireModel {
world_width: 0.0,
depth_override: None,
display_visible: true,
snap_only: false,
plot_visible: true,
fill_is_3d: false,
fill_is_2d_solid: false,
+1
View File
@@ -108,6 +108,7 @@ impl DataLinkPlaceCommand {
world_width: 0.0,
depth_override: None,
display_visible: true,
snap_only: false,
plot_visible: true,
fill_is_3d: false,
fill_is_2d_solid: false,
+1
View File
@@ -332,6 +332,7 @@ fn preview_line(far_chord: Vec3, chord: Vec3, text: Vec3) -> WireModel {
world_width: 0.0,
depth_override: None,
display_visible: true,
snap_only: false,
plot_visible: true,
fill_is_3d: false,
fill_is_2d_solid: false,
+1
View File
@@ -729,6 +729,7 @@ fn preview_for_dimension(dimension: &Dimension) -> WireModel {
world_width: 0.0,
depth_override: None,
display_visible: true,
snap_only: false,
plot_visible: true,
fill_is_3d: false,
fill_is_2d_solid: false,
@@ -480,6 +480,7 @@ fn preview_wire(points: Vec<Vec3>) -> WireModel {
world_width: 0.0,
depth_override: None,
display_visible: true,
snap_only: false,
plot_visible: true,
fill_is_3d: false,
fill_is_2d_solid: false,
+1
View File
@@ -444,6 +444,7 @@ fn preview_wire(pts: &[Vec3], arrow_size: f32) -> WireModel {
world_width: 0.0,
depth_override: None,
display_visible: true,
snap_only: false,
plot_visible: true,
fill_is_3d: false,
fill_is_2d_solid: false,
+1
View File
@@ -561,6 +561,7 @@ fn preview_wire(points: Vec<DVec3>) -> WireModel {
world_width: 0.0,
depth_override: None,
display_visible: true,
snap_only: false,
plot_visible: true,
fill_is_3d: false,
fill_is_2d_solid: false,
+1
View File
@@ -773,6 +773,7 @@ fn preview_wire(pts: &[Vec3], arrow_size: f32) -> WireModel {
world_width: 0.0,
depth_override: None,
display_visible: true,
snap_only: false,
plot_visible: true,
fill_is_3d: false,
fill_is_2d_solid: false,
+1
View File
@@ -497,6 +497,7 @@ fn preview_wire(pts: &[Vec3]) -> WireModel {
world_width: 0.0,
depth_override: None,
display_visible: true,
snap_only: false,
plot_visible: true,
fill_is_3d: false,
fill_is_2d_solid: false,
+1
View File
@@ -289,6 +289,7 @@ fn preview_wire(points: Vec<Vec3>) -> WireModel {
world_width: 0.0,
depth_override: None,
display_visible: true,
snap_only: false,
plot_visible: true,
fill_is_3d: false,
fill_is_2d_solid: false,
+1
View File
@@ -350,6 +350,7 @@ fn preview_wire(points: Vec<Vec3>) -> WireModel {
world_width: 0.0,
depth_override: None,
display_visible: true,
snap_only: false,
plot_visible: true,
fill_is_3d: false,
fill_is_2d_solid: false,
+1
View File
@@ -315,6 +315,7 @@ impl TableCommand {
world_width: 0.0,
depth_override: None,
display_visible: true,
snap_only: false,
plot_visible: true,
fill_is_3d: false,
fill_is_2d_solid: false,
+1
View File
@@ -88,6 +88,7 @@ impl CadCommand for ToleranceCommand {
world_width: 0.0,
depth_override: None,
display_visible: true,
snap_only: false,
plot_visible: true,
fill_is_3d: false,
fill_is_2d_solid: false,
+1
View File
@@ -206,6 +206,7 @@ impl CadCommand for AttdefCommand {
world_width: 0.0,
depth_override: None,
display_visible: true,
snap_only: false,
plot_visible: true,
fill_is_3d: false,
fill_is_2d_solid: false,
+1
View File
@@ -187,6 +187,7 @@ impl MlineCommand {
world_width: 0.0,
depth_override: None,
display_visible: true,
snap_only: false,
plot_visible: true,
fill_is_3d: false,
fill_is_2d_solid: true,
+1
View File
@@ -176,6 +176,7 @@ impl CadCommand for ImageCommand {
world_width: 0.0,
depth_override: None,
display_visible: true,
snap_only: false,
plot_visible: true,
fill_is_3d: false,
fill_is_2d_solid: false,
+2
View File
@@ -93,6 +93,7 @@ impl CadCommand for RayCommand {
world_width: 0.0,
depth_override: None,
display_visible: true,
snap_only: false,
plot_visible: true,
fill_is_3d: false,
fill_is_2d_solid: false,
@@ -378,6 +379,7 @@ impl CadCommand for XLineCommand {
world_width: 0.0,
depth_override: None,
display_visible: true,
snap_only: false,
plot_visible: true,
fill_is_3d: false,
fill_is_2d_solid: false,
+1
View File
@@ -375,6 +375,7 @@ impl CadCommand for AreaCommand {
world_width: 0.0,
depth_override: None,
display_visible: true,
snap_only: false,
plot_visible: true,
fill_is_3d: false,
fill_is_2d_solid: false,
+1
View File
@@ -95,6 +95,7 @@ impl CadCommand for DistCommand {
world_width: 0.0,
depth_override: None,
display_visible: true,
snap_only: false,
plot_visible: true,
fill_is_3d: false,
fill_is_2d_solid: false,
+1
View File
@@ -77,6 +77,7 @@ impl MeasureGeomCommand {
world_width: 0.0,
depth_override: None,
display_visible: true,
snap_only: false,
plot_visible: true,
fill_is_3d: false,
fill_is_2d_solid: false,
+1
View File
@@ -4151,6 +4151,7 @@ fn preview_wire(points: Vec<[f32; 3]>, color: [f32; 4], name: &str) -> WireModel
world_width: 0.0,
depth_override: None,
display_visible: true,
snap_only: false,
plot_visible: true,
fill_is_3d: false,
fill_is_2d_solid: false,
+6 -3
View File
@@ -62,9 +62,12 @@ impl CadModule for InsertModule {
label: "",
icon: FRAMES_ICON,
items: vec![
("FRAMES0", "Frames Off", FRAMES_ICON),
("FRAMES1", "Frames On", FRAMES_ICON),
("FRAMES2", "Frames On, Not Plotted", FRAMES_ICON),
("FRAMES0", "Hide frames", FRAMES_ICON),
("FRAMES1", "Display and plot frames", FRAMES_ICON),
("FRAMES2", "Display but don't plot frames", FRAMES_ICON),
// Shown (not selectable) while the frame
// variables differ from each other.
("FRAMES3", "*Frames vary*", FRAMES_ICON),
],
default: "FRAMES1",
},
+1
View File
@@ -3647,6 +3647,7 @@ fn wire(name: &str, points: Vec<[f32; 3]>) -> WireModel {
world_width: 0.0,
depth_override: None,
display_visible: true,
snap_only: false,
plot_visible: true,
fill_is_3d: false,
fill_is_2d_solid: false,
+1
View File
@@ -61,6 +61,7 @@ impl CadCommand for PlotWindowCommand {
world_width: 0.0,
depth_override: None,
display_visible: true,
snap_only: false,
plot_visible: true,
fill_is_3d: false,
fill_is_2d_solid: false,
+1
View File
@@ -143,6 +143,7 @@ impl CadCommand for ZoomWindowCommand {
world_width: 0.0,
depth_override: None,
display_visible: true,
snap_only: false,
plot_visible: true,
fill_is_3d: false,
fill_is_2d_solid: false,