Script Region - Extends SMath Studio with a Script Region (c#, vb.net, python) - Mensajes
Script Region

C# and VB.Net:
Do not use directive "using". You just need to fill function body.
List of specified namespaces (c#, vn.net):
System
System.IO
System.Diagnostics
System.Xml
System.Linq
System.Text
System.Reflection
System.Collections.Generic
System.Globalization
System.Drawing
System.Drawing.Drawing2D
System.Drawing.Imaging
SMath.Manager
SMath.Controls
SMath.Math
SMath.Math.Numeric
List of specified namespaces (python (import * used)):
System
SMath.Manager
SMath.Controls
SMath.Math
SMath.Math.Numeric
Predefined variables available in script (c#, vn.net, python): Store store.
Links:
1. Fast Colored TextBox for Syntax Highlighting (Pavel Torgashov).
2. Runtime-генерирование .Net-кода для тех, кому некогда (Андрей Мартынов).
3. Scripting .NET Applications with IronPython (Jerome Terry).
4. SMath Studio Core documentation (CHM)
Examples:
Script. CurrentDirectory.sm (5,48 KiB) descargado 2075 vez(es).
Script. CurrentDirectory.pdf (51,49 KiB) descargado 1410 vez(es).
Script. Show time.sm (4,89 KiB) descargado 2004 vez(es).
Script. Show time.pdf (42,99 KiB) descargado 1324 vez(es).
Script. InOut.sm (8,24 KiB) descargado 2148 vez(es).
Script. InOut.pdf (30,57 KiB) descargado 1418 vez(es).

C# and VB.Net:
Do not use directive "using". You just need to fill function body.
List of specified namespaces (c#, vn.net):
System
System.IO
System.Diagnostics
System.Xml
System.Linq
System.Text
System.Reflection
System.Collections.Generic
System.Globalization
System.Drawing
System.Drawing.Drawing2D
System.Drawing.Imaging
SMath.Manager
SMath.Controls
SMath.Math
SMath.Math.Numeric
List of specified namespaces (python (import * used)):
System
SMath.Manager
SMath.Controls
SMath.Math
SMath.Math.Numeric
Predefined variables available in script (c#, vn.net, python): Store store.
Links:
1. Fast Colored TextBox for Syntax Highlighting (Pavel Torgashov).
2. Runtime-генерирование .Net-кода для тех, кому некогда (Андрей Мартынов).
3. Scripting .NET Applications with IronPython (Jerome Terry).
4. SMath Studio Core documentation (CHM)
Examples:
Script. CurrentDirectory.sm (5,48 KiB) descargado 2075 vez(es).
Script. CurrentDirectory.pdf (51,49 KiB) descargado 1410 vez(es).
Script. Show time.sm (4,89 KiB) descargado 2004 vez(es).
Script. Show time.pdf (42,99 KiB) descargado 1324 vez(es).
Script. InOut.sm (8,24 KiB) descargado 2148 vez(es).
Script. InOut.pdf (30,57 KiB) descargado 1418 vez(es).
Russia ☭ forever, Viacheslav N. Mezentsev
A 2 usuarios les gustó este mensaje
Updated. Small improvements.
EDIT:
Test (c#).

Script:
EDIT:
Test (c#).

Script:
var log = ( Action<string> ) ( ( text ) => store.TraceData(
String.Format( "{0} {1} [INFO ] {2}",
DateTime.Now.ToShortDateString(), DateTime.Now.ToLongTimeString(),text ) ) );
var defs = Enumerable.Range( 0, store.Count ).Select( n => store[n] ).ToList();
defs.ForEach( d => log( d.ToString() ) );
Russia ☭ forever, Viacheslav N. Mezentsev
The source code has been restored, updated and uploaded to svn. Something does not work yet (last example). The plugin is not available, because Release Manager can't build it (too complex I think).
Russia ☭ forever, Viacheslav N. Mezentsev
A 1 usuarios les gustó este mensaje
Davide Carpi 1/2/2016 14:39:00
Updated (svn). Now last example works and we are waiting when Andrey fix the Release Manager.
Russia ☭ forever, Viacheslav N. Mezentsev
A 1 usuarios les gustó este mensaje
Davide Carpi 2/2/2016 19:27:00
Updated. Now available.
Russia ☭ forever, Viacheslav N. Mezentsev
A 1 usuarios les gustó este mensaje
Davide Carpi 9/2/2016 16:36:00
Hi Uni. Admirable work, thanks a lot for this plugin. Just few questions:
- From where plugin's take c#, vb.net and python ¿(i.e. came when plugin is downloaded)?
- ¿Can call nympi or Sci python?
- ¿Can you show how to modify some SMtah's vector or matrix variable? In other words, ¿there are an output, avoiding handling files, to smath worksheet or only can view results in the trace window?
- Not related with your plugin, but ... easy asking you: SMath don't have maple's traperror or mathcad onerror functions?
Have a nice day.
Alvaro.
- From where plugin's take c#, vb.net and python ¿(i.e. came when plugin is downloaded)?
- ¿Can call nympi or Sci python?
- ¿Can you show how to modify some SMtah's vector or matrix variable? In other words, ¿there are an output, avoiding handling files, to smath worksheet or only can view results in the trace window?
- Not related with your plugin, but ... easy asking you: SMath don't have maple's traperror or mathcad onerror functions?
Have a nice day.
Alvaro.
Wrote- From where plugin's take c#, vb.net and python ¿(i.e. came when plugin is downloaded)?
- ¿Can call nympi or Sci python?
- ¿Can you show how to modify some SMtah's vector or matrix variable? In other words, ¿there are an output, avoiding handling files, to smath worksheet or only can view results in the trace window?
c#, vn.net from the .Net Framework which is already installed on your PC.
As for the python I used IronPython which is a part of the plugin.
Not shure about numpi and Sci. I think it is impossible use them now.
You can modify and add definitions to the worksheet dynamically (inside the script). It not so simple to show how you can use this, I need a time to make an example.
Russia ☭ forever, Viacheslav N. Mezentsev
Wrote
c#, vn.net from the .Net Framework which is already installed on your PC.
As for the python I used IronPython which is a part of the plugin.
Not shure about numpi and Sci. I think it is impossible use them now.
You can modify and add definitions to the worksheet dynamically (inside the script). It not so simple to show how you can use this, I need a time to make an example.
Examples (specially regarding Python) would be greatly appreciated!
Tinu
A 1 usuarios les gustó este mensaje
Davide Carpi 27/5/2016 8:16:00
Dear all,
I donwloaded @uni's #3 smath file. Tried to understand but it seems more explanation is needed for low level users like me
It would be really perfect having Python scripts running within Smath.
Is there any ongoing effort?
++Ahmet
I donwloaded @uni's #3 smath file. Tried to understand but it seems more explanation is needed for low level users like me
It would be really perfect having Python scripts running within Smath.
Is there any ongoing effort?
++Ahmet
A 1 usuarios les gustó este mensaje
frapuano 2/3/2017 9:44:00
Updated. Variable terms added. Some namespaces declared implicit.

Script:

Script:
try
{
string varname = terms[0].Text;
List<Definition> list = new List<Definition>();
for ( int n = 0; n < store.Count; n++ ) list.Add( store[ n ] );
// Функция условия для поиска определения.
Predicate< Definition > cond = delegate( Definition x )
{
// Если имя определения (переменной) равно varname.
return x.Name.Equals( varname );
};
// Метод Find ищет первый элемент, который удовлетворяет условию.
Definition def = list.Find( cond );
// Если элемент найден, то что-нибудь делаем.
store.TraceData( varname + ( def != null ? " " : " not " ) + "found" );
if ( def != null )
{
TMatrix m = new TMatrix( new TNumber[ 2, 3 ] );
m.unit.SetValue( ( TNumber ) new TDouble( "\"name\"" ), new long[] { 0, 0 } );
m.unit.SetValue( ( TNumber ) new TDouble( "\"descr\"" ), new long[] { 0, 1 } );
m.unit.SetValue( ( TNumber ) new TDouble( "\"value\"" ), new long[] { 0, 2 } );
m.unit.SetValue( ( TNumber ) new TDouble( "\"" + def.Name + "\"" ), new long[] { 1, 0 } );
m.unit.SetValue( ( TNumber ) new TDouble( "\"" + def.Description + "\"" ), new long[] { 1, 1 } );
TNumber val = SMath.Math.Numeric.Expression.Calculate( def.Result, store );
m.unit.SetValue( val, new long[] { 1, 2 } );
Definition res = new Definition( "out", m.ToTerms(), new Term[0] );
store.AddDefinition( res );
}
}
catch ( Exception ex )
{
store.TraceData( ex.Message );
}
Russia ☭ forever, Viacheslav N. Mezentsev
A 1 usuarios les gustó este mensaje
frapuano 2/3/2017 9:44:00
Updated. Fixed some issues related to vb compiler.
Russia ☭ forever, Viacheslav N. Mezentsev
A 1 usuarios les gustó este mensaje
frapuano 2/3/2017 19:32:00
Updated. Examples added.
Russia ☭ forever, Viacheslav N. Mezentsev
A 1 usuarios les gustó este mensaje
frapuano 4/3/2017 17:36:00
Updated. Now more magic available.
![2017-03-04 20-42-28 SMath Studio - [Script. Lambda. Linq.sm].png](/es-ES/files/Download/RLcvLY/2017-03-04-20-42-28-SMath-Studio---[Script.-Lambda.-Linq.sm].png)
Script:
![2017-03-04 20-42-28 SMath Studio - [Script. Lambda. Linq.sm].png](/es-ES/files/Download/RLcvLY/2017-03-04-20-42-28-SMath-Studio---[Script.-Lambda.-Linq.sm].png)
Script:
var args = Entry.Create( terms );
var entries = args.Items.ToList().Take(3).Select( x => Decision.Preprocessing( x, store ) ).ToList();
var nums = entries.Select( x => SMath.Math.Numeric.Expression.Calculate( x, store ).obj.ToDouble() ).ToList();
nums.ForEach( n => store.TraceData( n.ToString() ) );
Russia ☭ forever, Viacheslav N. Mezentsev
A 1 usuarios les gustó este mensaje
frapuano 4/3/2017 17:38:00
Updated. Another attempt to fix the problem related with the portable version. Martin, please try again. Now the tmp directory appears in the plugins directory and you need to remove it content manually periodically. Fix this later.
Russia ☭ forever, Viacheslav N. Mezentsev
A 1 usuarios les gustó este mensaje
Martin Kraska 6/3/2017 9:18:00
Now working with the portable version, thanks. With maxima, we had quite some issues with temp dirs (interference between multiple smath instances or documents...
Technische Mechanik mit SMath Studio: https://link.springer.com/book/10.1007/978-3-658-50592-9
Add definitions from list of strings. To get a textual representation we use [Ctrl+C], [Ctrl+V].
![2017-03-08 12-08-37 SMath Studio - [Script. Load definitions.sm ].png](/es-ES/files/Download/eEV8ed/2017-03-08-12-08-37-SMath-Studio---[Script.-Load-definitions.sm-].png)
Script:
![2017-03-08 12-08-37 SMath Studio - [Script. Load definitions.sm ].png](/es-ES/files/Download/eEV8ed/2017-03-08-12-08-37-SMath-Studio---[Script.-Load-definitions.sm-].png)
Script:
var defs = new List<string>( new[] { "E:m*c^2", "a:1", "b:2" } );
defs.ForEach( d =>
{
var tmp = SMath.Math.Symbolic.Converter.ToMItem(d).ToTerms();
Decision.SymbolicCalculation( Entry.Create( tmp ), store );
} );
Russia ☭ forever, Viacheslav N. Mezentsev
A 1 usuarios les gustó este mensaje
Davide Carpi 8/3/2017 6:06:00
String to matrix (c#).
![2017-03-08 21-31-34 SMath Studio - [Script. String to matrix.sm].png](/es-ES/files/Download/4eQA65/2017-03-08-21-31-34-SMath-Studio---[Script.-String-to-matrix.sm].png)
Script:
![2017-03-08 21-31-34 SMath Studio - [Script. String to matrix.sm].png](/es-ES/files/Download/4eQA65/2017-03-08-21-31-34-SMath-Studio---[Script.-String-to-matrix.sm].png)
Script:
// rows - 2, cols - 3.
var text =
@"
1, 1.2, 0.3,
2, 9.5, -12,
2, 3
";
var provider = new NumberFormatInfo() { NumberDecimalSeparator = "." };
var vals = text
.Split( ',' ).Select( s => s.Trim() )
.Select( x => new TDouble( double.Parse( x, provider ) ).ToTerms() )
.Select( x => Entry.Create(x) ).ToList();
var mat = new Entry( "mat", TermType.Function, vals.ToArray() );
store.AddDefinition( "out", new Term[0], mat );
Russia ☭ forever, Viacheslav N. Mezentsev
A 1 usuarios les gustó este mensaje
frapuano 9/3/2017 13:47:00
- Nuevos mensajes
- Sin mensajes nuevos
![2014-06-20 21-47-03 SMath Studio Desktop - [CS. Example 1.sm].png](/es-ES/files/Download/PbYqXe/2014-06-20-21-47-03-SMath-Studio-Desktop---[CS.-Example-1.sm].png)
![2014-06-21 11-47-14 SMath Studio Desktop - [Python. Example 1.sm ].png](/es-ES/files/Download/AGNqXo/2014-06-21-11-47-14-SMath-Studio-Desktop---[Python.-Example-1.sm-].png)
