How to create and install your custom toolbox in Scilab 6.1.1?

This video shows steps to create your own toolbox and install it in Scilab 6.1.1 version. For the demo it creates a simple function called AddNumbers which adds 2 numbers and returns the value.

In this video it uses below page for reference: https://www.scilab.org/build-a-toolbox

I hope you like this video. For any questions, suggestions or appreciation please contact us at: https://programmerworld.co/contact/ or email at: programmerworld1990@gmail.com

Complete source code and other details:

\programmerWorldToolbox\etc\programmerWorldToolbox.quit -> Empty

\programmerWorldToolbox\etc\programmerWorldToolbox.start

function libtoolbox = startModule()
    TOOLBOX_NAME = "programmerWorldToolbox";
    TOOLBOX_TITLE = "Programmer World Toolbox";
    
    if isdef("libtoolbox") then
        warning("Programmer World Toolbox already loaded")
        return
    end
    
    absolutePath_toolbox = get_absolute_file_path("programmerWorldToolbox.start");
    shortpath_toolbox = getshortpathname(absolutePath_toolbox);
    root_toolbox = strncpy(shortpath_toolbox, length(shortpath_toolbox) - length("\etc\"));
    
    
    pathmacros = pathconvert(root_toolbox) + "macros" + filesep();
    libtoolbox = lib(pathmacros);
    
    
endfunction


libtoolbox = startModule();
clear startModule; // remove startModule on stack

\programmerWorldToolbox\macros\AddNumbers.sci

function  y = AddNumbers(a, b)
    y=a+b;
endfunction

\programmerWorldToolbox\macros\buildmacros.sce

function buildmacros()
    
    macros_path =  get_absolute_file_path("buildmacros.sce");
    tbx_build_macros(TOOLBOX_NAME, macros_path);
        
endfunction

buildmacros();
clear buildmacros;

\programmerWorldToolbox\builder.sce

TOOLBOX_NAME = "programmerWorldToolbox";
TOOLBOX_TITLE = "Programmer World Toolbox";


dir_toolbox = get_absolute_file_path("builder.sce");
tbx_build_macros(dir_toolbox);
tbx_build_loader(TOOLBOX_NAME, dir_toolbox);
tbx_build_cleaner(TOOLBOX_NAME, dir_toolbox);



\programmerWorldToolbox\DESCRIPTION

// Modify this file to provide a description of your toolbox.
// This file is used by Atoms GUI in scilab, to show information about the toolbox.
//
// Note that it will NOT be used when publishing your toolbox on http://atoms.scilab.org;
// the present file is only used if you distribute your toolbox yourself.
// On the http://atoms.scilab.org site, only the information you provide there is used.
//
//
// Lines starting with // are comments
// (you can remove all the comments designed to help you)
// Lines starting with a space are continuation of the previous field.
// Empty lines separate fields.


// Unique identifier for this toolbox.
// It must be alphanumeric, start with a letter and contain neither space
// nor special characters other than underscore or dash.
Toolbox: programmerWorldToolbox

// Human-friendly name for your toolbox
Title: Programmer World Toolbox

// One-line description for your toolbox
Summary: Sample Programmer World Toolbox

// Version number, in format 'major.minor.patch', or
// 'major.minor.patch', where all fields are numbers.
// If you are just starting your toolbox, you should use '0.1' or '0.1.0'.
// Use '1.0' or '1.0.0' for a tested, good quality first version.
Version: 1.1.0

// Name(s) of the author(s) of this toolbox.
// They are usually the original copyright holders
// (persons or entities)
Author: Programmer World
  Other Author

// Name(s) and email address(es) of the person(s) maintaining this toolbox
Maintainer: Programmer World <ProgrammerWorld990@gmail.com>
  Other Maintainer <othername@address.com>

// Categories that this toolbox belongs to.
// The toolbox will appear in the Scilab Atoms GUI
// under the categories that you select here.
Category: biology - Robotic_2
 CatB - SScat2
 biology - modelisation_III

// Name of the institution (company, university, lab...) who has developped the toolbox.
// If you developped the toolbox as an individual, then just enter "private individual"
Entity: Scilab Enterprises

// Optional website that has more information about this toolbox
WebSite: http://www.scilab.org

// License under which the toolbox will be published
License: GPL 2.0

// Version of Scilab supported by this toolbox,
// prefixed by =, >= ...
ScilabVersion: >= 6.0

// Other toolbox(es) that must be installed in order
// this toolboxes to work. Atoms will automatically ensure that
// the dependent toolboxes listed here are installed on the user's
// Scilab installation.
// Each toolbox dependency must be in format:
//    <operator> <toolbox name> <toolbox version|any>
// where operator can be: ~, >, <, >=, <=
// If multiple dependencies, put one per line (starting each line with a space)
Depends: 

// Creation date
Date: 2022-03-01

Description: Succinct presentation of this toolbox.

 It should cover:
 - What problem the toolbox solves,
 - If it requires any third-party software or hardware,
   and how to install them,
 - Some basics about how to use it, such as an example of use.
 but ensuring that each line starts with a space.


Folder Structure:

For installing the toolbox use:

atomsInstall('programmerWorldToolbox.zip')

Toolbox Installation folder:

Leave a Reply