<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    A little typo update:<br>
    in the text I wrote leftseg/rightseg:SetControlPoint1OffsetX, but it
    should of course be<br>
    leftseg/rightseg:SetEndpointOffsetX as I had written correctly in
    the function code below.<br>
    So it's about changing EndpointOffsets of the shape segments and
    CtrlPointOffsets of the ctrlpointadjust.<br>
    Jan<br>
    <br>
    <div class="moz-forward-container">
      <meta http-equiv="content-type" content="text/html;
        charset=ISO-8859-1">
      Jari,<br>
      <br>
      there may be a bug in JW Lua with changing endpoints of slur
      smartshapes.<br>
      Probably it has to do with FCSmartShapeSegment:SetCustomOffset().<br>
      <br>
      This is what happens:<br>
      When I have a smartshape slur with its original endpoint and
      control point offsets <br>
      (not custom-defined, but just the way Finale created the slur
      originally - see image 1 in screenshot)<br>
      Then in JW Lua I create the ctrlpoint and left/right segments of
      the smartshape slur<br>
      and change their offsets  (i.e. leftseg:<b>SetEndpointOffsetX</b>(...),

      rightseg:<b>SetEndpointOffsetX</b>(..),<br>
      ctrlpoint:SetControlPoint1OffsetX(...) etc.)<br>
      Then I add:<br>
      <br>
      ctrlpoint:SetCustomShaped(true)<br>
      leftseg:SetCustomOffset(false)  -- i.e. not rightside<br>
      rightseg:SetCustomOffset(true) -- i.e. rightside<br>
      smartshape:Save()<br>
      <br>
      The result is a slur with new controlpoints,<br>
      but not with new leftseg/rightseg endpoints (see image 2 in the
      screenshot).<br>
      <br>
      Then in comparison I do the following:<br>
      I go back to the original slur and change one of the endpoints
      (left or right)<br>
      by dragging it manually. So Finale internally sets the shape to
      "custom offset=true".<br>
      Then I remove the lines   leftseg:SetCustomOffset(false) and  
      rightseg:SetCustomOffset(true)<br>
      from the code and run the same function again.<br>
      Now the results are correct: both ctrlpoint and leftseg/rightseg
      endpoints have changed<br>
      according to the new values (see image 3 in screenshot).<br>
      So I guess there is a problem with the
      FCSmartShapeSegment:SetCustomOffset<br>
      function.<br>
      <br>
      Below you find the function to test.<br>
      <br>
      Jan<br>
      <br>
      <br>
      local marks = finale.FCSmartShapeMeasureMarks()<br>
      marks:LoadAllForRegion(finenv.Region(), true)<br>
      for mark in each(marks) do<br>
          local smartshape = mark:CreateSmartShape()<br>
          if (smartshape ~= nil) and smartshape:IsSlur() then<br>
              local leftseg=smartshape:GetTerminateSegmentLeft()<br>
              local rightseg=smartshape:GetTerminateSegmentRight()<br>
              local ctrlpoint=smartshape:GetCtrlPointAdjust()<br>
      <br>
              ctrlpoint:SetCustomShaped(true)<br>
              leftseg:SetCustomOffset(false) --i.e. left-side
      adjustment         --2nd time remove this line of code<br>
              rightseg:SetCustomOffset(false) --i.e. right-side
      adjustment   --2nd time remove this line of code<br>
      <br>
              ctrlpoint:SetControlPoint1OffsetX(0)<br>
              ctrlpoint:SetControlPoint1OffsetY(-100)<br>
              ctrlpoint:SetControlPoint2OffsetX(0)<br>
              ctrlpoint:SetControlPoint2OffsetY(-100)<br>
      <br>
              leftseg:SetEndpointOffsetX(50)<br>
              leftseg:SetEndpointOffsetY(-50)<br>
              rightseg:SetEndpointOffsetX(50)<br>
              rightseg:SetEndpointOffsetY(-50)<br>
      <br>
              smartshape:Save()<br>
          end<br>
      end<br>
      <br>
      <br>
    </div>
    <br>
  </body>
</html>