[JW Lua] JWLua Digest, Vol 34, Issue 11

Robert Wildling robertwildling at gmail.com
Wed May 11 17:35:11 CEST 2016


Jan, thanks so much!

I tried this script, it works without throwing an error - but also without
the expected result. Is there probably a Save() command I am not aware of?

----------------------
function plugindef()
    -- Requires the creation of a new category "ZZZ_NOT_USED";
    -- TODO: items (textExprDef) moved to that category could loose
    -- some aspects, if certain features of an item are available in the
cateory
   finaleplugin.CategoryTags = "Expression"
   return "CreateUnusedCategory", "undoCreateUnusedCategory", "Create a
category that will hold all unused elements"
end

-- Find category with name "ZZZ_NOT_USED"; needs to be created manually!
local catMoveToName = finale.FCString()
catMoveToName.LuaString = "ZZZ_NOT_USED"

-- Prepare the category, where unused elements will be moved to
-- (needs to be in the global namespace, not within a funcion! Therefore it
is defined here.)
local moveToCat = finale.FCCategoryDef()

-- To do so, load all categories and seach for the Name string of the
local catNotUsed = finale.FCCategoryDefs()
catNotUsed:LoadAll()

for cd in each(catNotUsed) do
    local catName = cd:CreateName()

    -- if a category with the name "ZZZ_NOT_USED" is found, get its ID and
load that very category
    if catName.LuaString == "ZZZ_NOT_USED" then
        local catID = cd:GetID()
        moveToCat:Load(catID)

        -- just for debugging purposes, get the name again and display it
in the console
        local moveToCatName = moveToCat:CreateName()
        print("NAME: ", moveToCatName.LuaString)

    end
end

--local catMoveToItemNo = catNotUsed:FindName(catMoveToName) -- returns an
object of type "userdata"

-- prepare some FCString variables
local tedName = finale.FCString()
local tedDescr = finale.FCString()

-- Now, get all textExpressionDefinitons
local textexpressiondefs = finale.FCTextExpressionDefs()
textexpressiondefs:LoadAll()

for ted in each(textexpressiondefs) do
    --get ItemNo of this txtExprDef
    local tedItemNo = ted:GetItemNo()

    -- get the Category ID to which this txtExprDef is assigned to
    local tedCatID = ted:GetCategoryID()

    -- based on the retrieved category ID, load that very category and
retrieve its name (for debug display)
    local cat = finale.FCCategoryDef();
    cat:Load(tedCatID)

    local catName = finale.FCString()
    cat:GetName(catName)

    -- Just as a test, get all textExpreDef from the category test and move
them to "ZZZ_NOT_USED"
    -- Later on there should be a check, whether any of these items it NOT
in use in the score - but how??? TODO
    if catName.LuaString == "TEST" then
        --ted.AssignToCategory(moveToCat) -- not working; the online
documentation says "FCCategoryDef expected", the error console
"'AssignToCategory' (FCTextExpressionDef expected, got __FCBase)"
           print(moveToCat:GetID())
        ted:SetCategoryID(moveToCat:GetID())

        local descr = finale.FCString()
        descr.LuaString = "Moved Item"
        ted:SetDescription(descr);
   end

end




*Robert Wildling*
Göllnergasse 19/30 || A-1030 Vienna
ph: +43 676 6089613
@: robertwildling at gmail.com

2016-05-11 15:39 GMT+02:00 <jwlua-request at jwmusic.nu>:

> Send JWLua mailing list submissions to
>         jwlua at jwmusic.nu
>
> To subscribe or unsubscribe via the World Wide Web, visit
>         http://jwmusic.nu/mailman/listinfo/jwlua_jwmusic.nu
> or, via email, send a message with subject or body 'help' to
>         jwlua-request at jwmusic.nu
>
> You can reach the person managing the list at
>         jwlua-owner at jwmusic.nu
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of JWLua digest..."
>
>
> Today's Topics:
>
>    1. Creating a new Expression Category (Robert Wildling)
>    2. Re: Creating a new Expression Category (Jan Angerm?ller)
>    3. Re: FCStaffStyleDef:Load(...) always returns true (Chris)
>    4. Re: Creating a new Expression Category (Robert Wildling)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Wed, 11 May 2016 13:56:18 +0200
> From: Robert Wildling <robertwildling at gmail.com>
> To: jwlua at jwmusic.nu
> Subject: [JW Lua] Creating a new Expression Category
> Message-ID:
>         <CAM9gVwSTQ8=DyuZotB6DmyYi-XQGO0-ZiWnz_02Z=NWwU=
> AJQQ at mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Hi,
>
> I am looking for a way to create a new Expression Category withe the name
> of "unused" (the intention is to move all unused textExprDefs and
> ShaeexprDefs to that category).
>
> Starting out, I thought, this can only be done via selecting a specific
> category and saving it using "SaveAs" and a new "ItemNo", like this:
>
> ``[lua]
> local dynCat = finale.FCCategoryDef()
> if dynCat:Load(2) then
>     -- get the category name
>     local catName = finale.FCString()
>     dynCat:GetName(catName)
>
>     -- save it anew
>     dynCat:SaveNew()
>
>      -- shows tha a new item number
>     -- was generated (65535 ??? looks like an error...)
>     print(dynCat:GetItemNo())
> end
> ``
>
> But even though the category is assigned a new number (is 65535 an
> indicator for an error here? look strange), no new category was created.
> And if the ItemNo of the original category was changed, a second
> run-through shouldn't work, since Load(2) shouldn't find anything at that
> position... but it does...
>
> I am very confused... any hints and/or help would be much appreciated!
> Thanks!
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> http://jwmusic.nu/pipermail/jwlua_jwmusic.nu/attachments/20160511/42fed95e/attachment-0001.html
> >
>
> ------------------------------
>
> Message: 2
> Date: Wed, 11 May 2016 14:12:12 +0200
> From: Jan Angerm?ller <jan at angermueller.com>
> To: "The JW Lua script plug-in." <jwlua at jwmusic.nu>
> Subject: Re: [JW Lua] Creating a new Expression Category
> Message-ID: <38d7462a-ddd4-cad8-5c30-7fb50fc2828c at angermueller.com>
> Content-Type: text/plain; charset="windows-1252"; Format="flowed"
>
>  From the documentation
> http://www.finaletips.nu/frameworkref/class_f_c_category_def.html:
>
> "Please note that Finale does not allow plug-ins to create or delete
> category definitions."
>
>
> Am 11.05.2016 um 13:56 schrieb Robert Wildling:
> > Hi,
> >
> > I am looking for a way to create a new Expression Category withe the
> > name of "unused" (the intention is to move all unused textExprDefs and
> > ShaeexprDefs to that category).
> >
> > Starting out, I thought, this can only be done via selecting a
> > specific category and saving it using "SaveAs" and a new "ItemNo",
> > like this:
> >
> > ``[lua]
> > local dynCat = finale.FCCategoryDef()
> > if dynCat:Load(2) then
> >     -- get the category name
> >     local catName = finale.FCString()
> >     dynCat:GetName(catName)
> >
> >     -- save it anew
> >     dynCat:SaveNew()
> >
> > -- shows tha a new item number
> > -- was generated (65535 ??? looks like an error...)
> >     print(dynCat:GetItemNo())
> > end
> > ``
> >
> > But even though the category is assigned a new number (is 65535 an
> > indicator for an error here? look strange), no new category was
> > created. And if the ItemNo of the original category was changed, a
> > second run-through shouldn't work, since Load(2) shouldn't find
> > anything at that position... but it does...
> >
> > I am very confused... any hints and/or help would be much appreciated!
> > Thanks!
> >
> >
> > _______________________________________________
> > JWLua mailing list
> > JWLua at jwmusic.nu
> > http://jwmusic.nu/mailman/listinfo/jwlua_jwmusic.nu
>
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> http://jwmusic.nu/pipermail/jwlua_jwmusic.nu/attachments/20160511/39d4b744/attachment-0001.html
> >
>
> ------------------------------
>
> Message: 3
> Date: Wed, 11 May 2016 15:37:46 +0200
> From: Chris <marcel.denio at gmail.com>
> To: jwlua at jwmusic.nu
> Subject: Re: [JW Lua] FCStaffStyleDef:Load(...) always returns true
> Message-ID: <57fc603d-4678-1507-c5e3-ea330daa3b16 at gmail.com>
> Content-Type: text/plain; charset="utf-8"; Format="flowed"
>
> Hello Jan
>
> The problem is that the list index (ItemNo) is broken:
> 1 2 3 4 5 6 7 8 9 10 .... 13 .... 20 ... 25 ......
> But why ???
>
> With this script, you retrieve the list  (66 is your last index) :
>
> ---------------------------------------------
> for i =1,66 do
>      local namestr=finale.FCString()
>      local s=finale.FCStaffStyleDef()
>      s:Load(i)
>      s:GetName(namestr)
>
>      if namestr.LuaString=="" then
>          local name = finale.FCString()
>          name.LuaString = "dummy " .. i
>          s:SetName(name)
>          s:Save()
>      end
> end
> ---------------------------------------------
>
> Best regards
>
> Chris
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> http://jwmusic.nu/pipermail/jwlua_jwmusic.nu/attachments/20160511/b214123e/attachment-0001.html
> >
>
> ------------------------------
>
> Message: 4
> Date: Wed, 11 May 2016 15:38:34 +0200
> From: Robert Wildling <robertwildling at gmail.com>
> To: jwlua at jwmusic.nu
> Subject: Re: [JW Lua] Creating a new Expression Category
> Message-ID:
>         <CAM9gVwQx+AjmT_j091qYX8PXm7HtKJcW9Jw3-sTQFFU=
> n8Mp_g at mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Thanks, Jan!
>
> (Why do I not receive an email, when you post your answer? hmmm...)
>
> Does this also mean that I cannot move around TextExpressionDefs from one
> Cat to another? Provided that I can check whether the item is used in the
> score or not (which I still didn't find the proper method for...)
>
> Best,
> Robert
>
> 2016-05-11 13:56 GMT+02:00 Robert Wildling <robertwildling at gmail.com>:
>
> > Hi,
> >
> > I am looking for a way to create a new Expression Category withe the name
> > of "unused" (the intention is to move all unused textExprDefs and
> > ShaeexprDefs to that category).
> >
> > Starting out, I thought, this can only be done via selecting a specific
> > category and saving it using "SaveAs" and a new "ItemNo", like this:
> >
> > ``[lua]
> > local dynCat = finale.FCCategoryDef()
> > if dynCat:Load(2) then
> >     -- get the category name
> >     local catName = finale.FCString()
> >     dynCat:GetName(catName)
> >
> >     -- save it anew
> >     dynCat:SaveNew()
> >
> >      -- shows tha a new item number
> >     -- was generated (65535 ??? looks like an error...)
> >     print(dynCat:GetItemNo())
> > end
> > ``
> >
> > But even though the category is assigned a new number (is 65535 an
> > indicator for an error here? look strange), no new category was created.
> > And if the ItemNo of the original category was changed, a second
> > run-through shouldn't work, since Load(2) shouldn't find anything at that
> > position... but it does...
> >
> > I am very confused... any hints and/or help would be much appreciated!
> > Thanks!
> >
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> http://jwmusic.nu/pipermail/jwlua_jwmusic.nu/attachments/20160511/0d4f4d61/attachment.html
> >
>
> ------------------------------
>
> Subject: Digest Footer
>
> _______________________________________________
> JWLua mailing list
> JWLua at jwmusic.nu
> http://jwmusic.nu/mailman/listinfo/jwlua_jwmusic.nu
>
>
> ------------------------------
>
> End of JWLua Digest, Vol 34, Issue 11
> *************************************
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://jwmusic.nu/pipermail/jwlua_jwmusic.nu/attachments/20160511/2e96bb43/attachment-0001.html>


More information about the JWLua mailing list