Isolate command breaking my toolbar button macro?

I have made a script (pasted below), and it doesn’t work. It works if I don’t include isolate as the first line, but when isolate is there, the macro just ends up deleting everything when it’s done running…
I have tried running the commands one by one and in the same order by pasting each line and it works exactly as I want it.
In some circumstances when I paste several lines, the command line throws up “Unknown command: $$Isolate$$”
Am I doing something wrong?

_Isolate
_Ungroup
_Explode
_SelNone
_SelDup
_Delete
_SelAll
_Unisolate
_Join
_SimplifyCrv
_-Properties _Object _Layer "Line Engrave" _Color _Layer _PrintColor _Layer _PrintLineWidth _ByLayer _EnterEnd

Hello - I see that, I’ll get it on the pile for a developer to look at.

-Pascal

Thank you

this still seems to be a problem, is there any update one when it might be fixed?

you may be able to replace isolate with two commands, invert and then hide (does the same thing as isolate, but may not break the string like isolate does.)

1 Like

Does not, actually, quite, - but it may do, here. I’ll see about how Isolate might be fixable - a similar request came up the other day to remind me of all of this - the Isolate command is a little peculiar in that I believe it basically is a script of -Hide and the hide buckets, so it may or may not be ‘fixable’ as is.

-Pascal

1 Like

for my purposes, that works great, although I guess it’s only lacking the ability to only show the items that were hidden by this macro, as my solution is to show all at the end of the script, but that’s a very minor inconvenience vs. not working at all :slight_smile:

thank you for continuing to look into it!

Although I’ve now realised it breaks if the script is run when everything is selected. Invert selects nothing, and hide breaks the macro, even if I tack an _Enter after it…

should I be looking into naming groups to make this macro work?

Hello - What is the goal exactly? I think isolating is part of your process here but not actually needed in the result, correct?

-Pascal

yes, correct.

I am making a set of buttons to allow students to use a laser cutter via a piece of software called JobControl. It detects vectors via a print driver and only recognises specific RGB values and line weights. I have template layers on a template file set to the correct values. I am trying to make buttons that will take the student’s imported curves and place them on the correct plane while also doing a bit of cleaning up (duplicates, exploded lines, lines that aren’t on the construction plane etc.)

workflow for them should be to select which curves to send to the “line engrave layer” and press the button.

I was using isolate/unisolate to make it easy to run commands that change the selection (SelDup) and being easily able to come back to the original selection.

I’m now understanding how to use named groups a bit better, so I might be able to get to a solution that way.

Hello - are all the curves always polylines?

@Donat - see if this helps at all - a quick hack of a thing that (I think) does what you need.

JobControlPrep.py (1.3 KB)

To use the Python script use RunPythonScript, or a macro:

_-RunPythonScript "Full path to py file inside double-quotes"

You will want the macro version, for a button. Naturally the students will need to have the py file in a known location…

-Pascal

thanks, I’ll look into this, and yes we have a remote location they all have access to where the templates are kept, so that shouldn’t be a problem.

the curves and lines may be anything tbh, the students never cease to amaze in how they use rhino, and what they expect from a laser cutter. very few assumptions are safe.

just looking at https://developer.rhino3d.com/api/rhinoscript/selection_methods/getobject.htm and in that list, curves is a sufficient fit. I’ll try changing that number depending on what’s needed. Thanks