10 Replies Latest reply on Jun 12, 2016 1:04 PM by mickyhulse

    Translate radial gradient center point?

    mickyhulse Level 1

      Hello,

       

      Working from the great answer in this thread, I'm trying to move the center point of an object's gradient. Here's my test code:

       

      var idoc = app.activeDocument;
      var ipath =  idoc.selection[0];
      ipath.translate(
          100, // deltaX
          100, // deltaY
          false, // transformObjects
          false, // transformFillPatterns
          true, // transformFillGradents
          false // transformStrokePattern
      );
      

       

      Unfortunately, nothing I try actually works.

       

      Anyone know what the trick is to move the origin of a radial gradient?

       

      Thanks!

        • 1. Re: Translate radial gradient center point?
          CarlosCanto Adobe Community Professional & MVP

          why didn't you use the code in that thread's great answer?

           

          you left out a couple of vital lines

           

          // transform gradients findings 
          // select a path item with a gradient applied to it before running the script 
          
          var idoc = app.activeDocument; 
          var ipath =  idoc.selection[0]; 
          var fillcolor = ipath.fillColor; 
          
          ipath.filled = false; // remove previous gradient transformations, to be able to apply new ones ?? 
          
          ipath.fillColor = fillcolor; // re apply the same gradient color, without transformations. 
          ipath.fillOverprint = ipath.fillOverprint; // without this, the gradient won't move or scale, but it does rotate ?? 
          
          
          ipath.translate( 
              100, // deltaX 
              100, // deltaY 
              false, // transformObjects 
              false, // transformFillPatterns 
              true, // transformFillGradents 
              false // transformStrokePattern 
          );
          
          1 person found this helpful
          • 2. Re: Translate radial gradient center point?
            mickyhulse Level 1

            Hi Carlos!

             

            CarlosCanto wrote:

             

            why didn't you use the code in that thread's great answer?

             

            you left out a couple of vital lines

             

            Good question.

             

            I actually did use your code, which ended up working (the gradient I tested on was moved/skewed).

             

            When I tried just moving (not skewing/scaling) nothing seemed to change (I tried both .translate and .transform). Sorry that I did not specify this in my original question.

             

            Anyway, thanks so much for your reply and help! I will try your example code when I get home later today and let you know how it goes.

             

            I really appreciate your help!

             

            Cheers,

            Micky

            • 3. Re: Translate radial gradient center point?
              mickyhulse Level 1

              Hi Carlos!

               

              Not sure if I am doing something wrong, but I can't seem to get this code to work:

               

              #target illustrator
              #targetengine main
              
              
              var idoc = app.activeDocument;
              var ipath =  idoc.selection[0];
              var fillcolor = ipath.fillColor;
              
              ipath.filled = false; // remove previous gradient transformations, to be able to apply new ones ??
              
              ipath.fillColor = fillcolor; // re apply the same gradient color, without transformations.
              ipath.fillOverprint = ipath.fillOverprint; // without this, the gradient won't move or scale, but it does rotate ??
              
              
              ipath.translate(
                  100, // deltaX
                  100, // deltaY
                  false, // transformObjects
                  false, // transformFillPatterns
                  true, // transformFillGradents
                  false // transformStrokePattern
              );
              

               

              Here's the file I am working on:

               

              https://dl.dropboxusercontent.com/u/1277106/illy-gradient-offset.ai

               

              Can you tell if I am overlooking something?

               

              The original script you posted does work (transform/skew), but it seems like translate doesn't work by itself. What do you think?

               

              Thanks so much for your help, I greatly appreciate it.

               

              Micky

              • 4. Re: Translate radial gradient center point?
                CarlosCanto Adobe Community Professional & MVP

                are you bringing this shape from another application? it has some sort of appearance that is preventing the script from working. Use "Reduce to basic appearance" to clear it out, that will make the script work on your shape.

                1 person found this helpful
                • 5. Re: Translate radial gradient center point?
                  mickyhulse Level 1

                  CarlosCanto wrote:

                   

                  are you bringing this shape from another application? it has some sort of appearance that is preventing the script from working. Use "Reduce to basic appearance" to clear it out, that will make the script work on your shape.

                   

                  Ahhh, great catch! Thank you so much for catching that.

                   

                  I will try that tonight. Looks like copying all of the objects attributes, reducing appearance, re-applying gradient (like your script does) and then re-applying previous appearance is the direction I'll head.

                   

                  I'll post back my findings soon!

                   

                  Thanks so much Carlos! I really appreciate your help!

                  • 6. Re: Translate radial gradient center point?
                    mickyhulse Level 1

                    CarlosCanto wrote:

                     

                    are you bringing this shape from another application? it has some sort of appearance that is preventing the script from working. Use "Reduce to basic appearance" to clear it out, that will make the script work on your shape.

                    That did the trick! I'm not sure what the appearance thing was. At one point I had rasterize applied to the top layer ... Anyway, reducing appearance did the trick.

                     

                    Thanks a bunch for your help!!!!

                    • 7. Re: Translate radial gradient center point?
                      CarlosCanto Adobe Community Professional & MVP

                      you're welcome, glad to hear it worked

                      • 8. Re: Translate radial gradient center point?
                        mickyhulse Level 1

                        CarlosCanto wrote:

                         

                        you're welcome, glad to hear it worked

                        Definitely!

                         

                        In fact, here's the script that I created based on your original code:

                         

                        GitHub - mhulse/illy-nudge: Nudge gradient centerpoint.

                         

                        (Note: Only tested on my Mac)

                         

                        Thanks again for all of your help!!!!! I really appreciate it.

                        • 9. Re: Translate radial gradient center point?
                          CarlosCanto Adobe Community Professional & MVP

                          it works great on Win10, CC2015, thanks for sharing!!

                          • 10. Re: Translate radial gradient center point?
                            mickyhulse Level 1

                            CarlosCanto wrote:

                             

                            it works great on Win10, CC2015, thanks for sharing!!

                             

                            Oh, cool!! That's good news. I wasn't sure if there would be any OS-specific things to consider.

                             

                            Thanks for testing (and for all of your help too)!