<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>