Skip to main content
subieguy2
Inspiring
November 27, 2018
Question

Function to control page specific layers

  • November 27, 2018
  • 2 replies
  • 411 views

I am running this at the document level and it is being executed by a bookmark calling the function.

function oneFourOne() {

    var ocgSchematicArray = this.getOCGs(this.pageNum);

    // Look through all the layers on this page

    for (var i = 0; i < ocgSchematicArray.length; i++) {

        // Find the layer name that matches the defined wire color

        if (ocgSchematicArray.name == "141 (Lt Orange)") {

            // If the layer is turned on...

            if (ocgSchematicArray.state == true) {

                // Turn the layer off

                ocgSchematicArray.state = false;

            }

            // If the layer is turned off...

            else if (ocgSchematicArray.state == false) {

                // Turn the layer on

                ocgSchematicArray.state = true;

            }

        }

    }

}

If I have 2 different bookmarks and this layer exist on 2 different pages... can I make it so the function is only controlling the specific page the layer is on?

So in the picture above the 141 - Page 2 and 141 - Page 4 currently run the function oneFourOne();

I know my script is allowing it to currently turn layers on and off no matter what page. I am wanting to make it specific.

If I am on page 4 and click the 141 - Page 2 button... I don't want it to turn off the layer on that page.

This topic has been closed for replies.

2 replies

Bernd Alheit
Community Expert
Community Expert
November 27, 2018

You use this.getOCGs(this.pageNum);

This returns all layers on the current page. Looks like that you must change your function.

try67
Community Expert
Community Expert
November 27, 2018

Your script doesn't turn layers on or off no matter what page they're on. It does so to the current page that is being viewed.

That's done by the parameter you provide to the getOCGs method (line #2).

If you want it to be a specific page number, instead of the current page, then change it from:

this.getOCGs(this.pageNum);

To something like:

this.getOCGs(1);

The code above will only retrieve the layers on page 2 (note the numbers are zero-based).

You might want to pass that value as an argument to the function itself, which will make it possible to re-use it for multiple bookmarks.