Bug: Boolean Difference select objects by layer also selects hidden

Using “select objects” by layer typically only selects visible and unlocked objects.
However, when I select objects by layer to select cutters in the middle of a Boolean Difference operation, it will also select hidden objects on the same layer, which is not desired.

SystemInfo:
Rhino 8 SR12 2024-9-10 (Rhino 8, 8.12.24254.14002, Git hash:master @ 0d47d84f9f61613cef2cb442b9de0cc5f9f727de)
License type: Educational Lab License, build 2024-09-10
License details: Cloud Zoo

Apple macOS Version 14.6.1 (Build 23G93) (Physical RAM: 16GB)
Mac Model Identifier: MacBookPro17,1
Language: en-US (MacOS default)
.NET 7.0.0

Metal GPU Family Apple 7
Metal GPU Family Common 3
Metal GPU Family Mac 2
Graphics processors
Apple M1
Color LCD (1440 x 900 @ 60.00Hz)
C24F390 (1920 x 1080 @ 60.00Hz)
GPU Vendor: Apple

USB devices
Lenovo: Lenovo Mini Dock
VIA Labs, Inc. : Lenovo USB-C Mini Dock
Generic: Lenovo USB-C Mini Dock
VIA Labs, Inc. : 40AU

Bluetooth devices
None

Third party kernel extensions
None

Third party plugins
/usr/lib/swift/libswiftCore.dylib
/usr/lib/swift/libswiftCoreFoundation.dylib
/usr/lib/swift/libswiftCoreGraphics.dylib
/usr/lib/swift/libswiftCoreImage.dylib
/usr/lib/swift/libswiftDarwin.dylib
/usr/lib/swift/libswiftDispatch.dylib
/usr/lib/swift/libswiftIOKit.dylib
/usr/lib/swift/libswiftMetal.dylib
/usr/lib/swift/libswiftOSLog.dylib
/usr/lib/swift/libswiftObjectiveC.dylib
/usr/lib/swift/libswiftQuartzCore.dylib
/usr/lib/swift/libswiftUniformTypeIdentifiers.dylib
/usr/lib/swift/libswiftXPC.dylib
/usr/lib/swift/libswift_Concurrency.dylib
/usr/lib/swift/libswiftos.dylib
/usr/lib/swift/libswiftsimd.dylib
/usr/lib/swift/libswift_StringProcessing.dylib
/usr/lib/swift/libswift_RegexParser.dylib
/usr/lib/swift/libswiftCryptoTokenKit.dylib
/usr/lib/usd/libusd_ms.dylib
/usr/lib/swift/libswiftCoreAudio.dylib
/usr/lib/swift/libswiftCoreLocation.dylib
/usr/lib/swift/libswiftCoreMedia.dylib
/usr/lib/swift/libswiftCompression.dylib
/usr/lib/swift/libswiftCoreMIDI.dylib
/usr/lib/swift/libswiftAVFoundation.dylib
/usr/lib/swift/libswiftCoreML.dylib
/usr/lib/swift/libswiftFileProvider.dylib
/usr/lib/swift/libswiftIntents.dylib
/usr/lib/swift/libswiftAccelerate.dylib
/usr/lib/swift/libswiftGLKit.dylib
/usr/lib/swift/libswiftGameplayKit.dylib
/usr/lib/swift/libswiftMetalKit.dylib
/usr/lib/swift/libswiftModelIO.dylib
/usr/lib/swift/libswiftSceneKit.dylib
/usr/lib/swift/libswiftSpriteKit.dylib
/usr/lib/swift/libswiftVision.dylib
/usr/lib/swift/libswiftRegexBuilder.dylib
/usr/lib/swift/libswiftDemangle.dylib
/usr/lib/swift/libswiftShazamKit.dylib
/usr/lib/swift/libswiftObservation.dylib
/usr/lib/swift/libswiftVideoToolbox.dylib
/usr/lib/swift/libswiftWebKit.dylib
/usr/lib/swift/libswiftNaturalLanguage.dylib
/usr/lib/swift/libswiftSystem.dylib
/usr/lib/swift/libswiftMapKit.dylib
/usr/lib/log/liblog_network.dylib

Rhino plugins that do not ship with Rhino

Rhino plugins that ship with Rhino
/Applications/Rhino 8.app/Contents/Frameworks/RhMaterialEditor.framework “Renderer Development Kit” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/Commands.rhp “Commands” 8.12.24254.14002
/Applications/Rhino 8.app/Contents/PlugIns/NamedSnapshots.rhp “Snapshots” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/Import_OBJ.rhp “Import_OBJ” 8.12.24254.14002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/export_XAML.rhp “export_xaml” 8.12.24254.14002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/QuadRemesh.rhp “QuadRemesh” 8.12.24254.14002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/Export_OBJ.rhp “export_OBJ” 8.12.24254.14002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RDK_EtoUI.rhp “RDK_EtoUI” 8.12.24254.14002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/Import_glTF.rhp “Import glTF” 8.12.24254.14002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/ShrinkWrap.rhp “ShrinkWrap” 8.12.24254.14002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/export_SVG.rhp “Export SVG” 8.12.24254.14002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/Export_glTF.rhp “Export glTF” 8.12.24254.14002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/MeshCommands.rhp “MeshCommands” 8.12.24254.14002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/Export_DAE.rhp “Export_DAE” 8.12.24254.14002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/export_PDF.rhp “PDF Export” 8.12.24254.14002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/export_IGES.rhp “IGES Export Plug-in” 8.12.24254.14002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/Import_SVG.rhp “Import_SVG” 8.12.24254.14002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/BlockEdit.rhp “BlockEdit” 8.12.24254.14002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/Export_AMF.rhp “Export_AMF” 8.12.24254.14002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RhinoRenderCycles.rhp “Rhino Render” 8.12.24254.14002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/import_DST.rhp “Import_DST” 8.12.24254.14002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/export_PLY.rhp “PLY - Polygon File Format Export” 8.12.24254.14002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/Import_AMF.rhp “Import_AMF” 8.12.24254.14002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RhinoCycles.rhp “RhinoCycles” 8.12.24254.14002
/Applications/Rhino 8.app/Contents/PlugIns/export_SKP.rhp “SketchUp Export” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/Export_UDO.rhp “Moray Export” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/import_RAW.rhp “RAW Triangle Import” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/export_USD.rhp “Export USD” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/Import_DGN.rhp “MicroStation file import: import_DGN” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/import_E57.rhp “E57 Import” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/import_VRML.rhp “VRML Import” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/AnimationTools.rhp “AnimationTools” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/import_modelio_macos.rhp “Model IO Import” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/Import_WAMIT.rhp “WAMIT import” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/NamedPositions.rhp “Named Position” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/import_SKP.rhp “SketchUp Import” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/SectionTools.rhp “SectionTools” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/Export_RAW.rhp “Raw Triangles Export” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/MPlane.rhp “MPlane” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/Export_XGL.rhp “XGL Export” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/RhinoRender.rhp “Legacy Rhino Render” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/Export_CD.rhp “Cult3D Export” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/export_LWO.rhp “Lightwave Export” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/export_SLC.rhp “SLC Export” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/import_3MF.rhp “import_3MF” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/export_STEP.rhp “STEP Export” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/export_3MF.rhp “export_3MF” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/Export_WAMIT.rhp “WAMIT Export” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/Import_SLC.rhp “SLC Import” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/Import_OFF.rhp “OFF Import” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/Squish.rhp “Squish” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/Export_X_T.rhp “Parasolid Export” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/RhinoBonusTools.rhp “Rhino Bonus Tools” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/RhinoLabsTools.rhp “Rhino Labs Tools” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/Import_M.rhp “Import_M” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/Import_X.rhp “X Import” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/import_IGES.rhp “IGES Import Plug-in” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/export_AI.rhp “Adobe Illustrator Export” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/export_ACAD.rhp “AutoCAD file export : export_ACAD” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/Displacement.rhp “Displacement” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/import_LWO.rhp “Lightwave Import” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/export_SAT.rhp “ACIS Export” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/Export_CSV.rhp “Comma Separated Value Export” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/import_PDF.rhp “PDFReader” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/export_STL.rhp “STL Export” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/import_VDA.rhp “VDA Import” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/import_STEP.rhp “STEP Import” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/export_FBX.rhp “Export_FBX” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/Import_SolidWorks.rhp “Solidworks Import” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/import_STL.rhp “STL Import” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/Export_RIB.rhp “Renderman Export” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/import_FBX.rhp “Import_FBX” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/export_Points.rhp “Points Export” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/export_VDA.rhp “VDA Export” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/import_ACAD.rhp “AutoCAD file import: import_ACAD” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/Export_X.rhp “X Export” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/CreaseAngle.rhp “CreaseAngle” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/export_3DS.rhp “3D Studio Export” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/import_PLY.rhp “PLY - Polygon File Format Import” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/MeshTools.rhp “MeshTools” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/import_Points.rhp “Points Import” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/PanelingTools.rhp “PanelingTools” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/MeshFromPoints.rhp “MeshFromPoints” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/export_VRML.rhp “VRML/X3D Export” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/Import_GTS.rhp “GTS Triangle Import” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/SolidTools.rhp “SolidTools” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/Export_GTS.rhp “GTS Export” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/PlugIns/Export_POV.rhp “POV-Ray Export” 8.12.24254.1002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RhinoDLR_Python.rhp “IronPython” 8.12.24254.14002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/GrasshopperPlugin.rhp “Grasshopper” 8.12.24254.14002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RhinoCodePlugin.rhp “RhinoCodePlugin” 8.12.24254.14002

Selecting objects by layer during the Boolean Difference command also selects locked objects, which is not desirable.

Ok, looking further this seems to not affect the function of the boolean at all. The hidden and locked cutters are not actually used in the boolean difference and are not deleted when “DeleteCutters=Yes”. It just looks like it has selected the locked or hidden objects.

Hi Mike -

I’m not seeing that here.
I start with this scene:
image

I then hide one of the red objects, run BooleanDifference, and select the gray object as the first set. When asked for objects to subtract with, I run SelLayer and select the red layer.

image

Preselecting the gray object before running the command doesn’t make a difference. I’m not seeing a hidden or locked object ever being drawn as selected.
-wim

Thanks for looking into this @wim. I tried a simplified version like the one you made, and it works as expected. However, I’m still getting the same odd results in my ring file. I’ll upload it here.
JDT PQ03 v3 Boolean Test.3dm (6.0 MB)

Please try to do a boolean difference cutting the ring shank (on Metal 04) and select the cutters by layer. Any of these cutter layers give me the same odd result:
Cutter 02:: Straight Through Cutter
Cutter 02:: Microprong Side Cutter
Cutter 02:: Microprong Split Cutter