::SpiceGenTcl::Ltspice::SimulatorsTop, Main, Index
ClassesTop, Main, Index
Batch [::SpiceGenTcl::Ltspice::Simulators]Top, Main, Index
Method summary
constructor | Constructor for the class. |
clearLog | Clear saved log by unsetting Log variable. |
configure | Configure properties. |
getLog | See ::SpiceGenTcl::Simulator.getLog |
readData | Reads raw data file, create RawFile object and return it's reference name. |
readLog | Reads log file of last simulation and save it's content to Log variable. |
run | See ::SpiceGenTcl::Simulator.run |
runAndRead | Runs netlist circuit file. |
Properties
Readable: -Command
, -LastRunFileName
, -data
, -log
, -name
, -runlocation
Writable: -Command
, -LastRunFileName
, -data
, -log
, -name
, -runlocation
Superclasses
constructor [::SpiceGenTcl::Ltspice::Simulators::Batch]Batch, Top, Main, Index
Creates batch ngspice simulator that can be attached to top-level Circuit.
Batch create OBJNAME name ?runLocation?
Batch new name ?runLocation?
Batch new name ?runLocation?
Details
Parameters
name | Name of simulator object. |
runLocation | Location at which input netlist is stored and all output files will be saved, default is current directory. Optional, default . . |
method constructor {name {runLocation .}} { # Creates batch ngspice simulator that can be attached to top-level Circuit. # name - name of simulator object # runLocation - location at which input netlist is stored and all output files will be saved, # default is current directory my configure -name $name global tcl_platform global env if {[string match -nocase *linux* $tcl_platform(os)]} { my configure -Command [list wine "$env(LTSPICE_PREFIX)"] } elseif {[string match -nocase "*windows nt*" $tcl_platform(os)]} { my configure -Command LTspice } my configure -runlocation $runLocation }
clearLog [::SpiceGenTcl::Ltspice::Simulators::Batch]Batch, Top, Main, Index
Clear saved log by unsetting Log variable.
OBJECT clearLog
Details
method clearLog {} { # Clear saved log by unsetting Log variable. if {[info exists Log]} { unset log return } else { return -code error "Log does not exists for simulator '[my configure -name]'" } }
readData [::SpiceGenTcl::Ltspice::Simulators::Batch]Batch, Top, Main, Index
Reads raw data file, create RawFile object and return it's reference name.
OBJECT readData
Details
method readData {} { # Reads raw data file, create RawFile object and return it's reference name. my variable data set data [::SpiceGenTcl::RawFile new [file join [my configure -runlocation] [my configure -LastRunFileName].raw] * ltspice] return }
readLog [::SpiceGenTcl::Ltspice::Simulators::Batch]Batch, Top, Main, Index
Reads log file of last simulation and save it's content to Log variable.
OBJECT readLog
Details
method readLog {} { # Reads log file of last simulation and save it's content to Log variable. set logFile [open [file join [my configure -runlocation] [my configure -LastRunFileName].log] r+] set log [read $logFile] close $logFile return }
runAndRead [::SpiceGenTcl::Ltspice::Simulators::Batch]Batch, Top, Main, Index
Runs netlist circuit file.
OBJECT runAndRead circuitStr ?-nodelete?
Details
Parameters
circuitStr | Top-level netlist string. |
-nodelete | Flag to forbid simulation file deletion. |
method runAndRead {circuitStr args} { # Runs netlist circuit file. # circuitStr - top-level netlist string # -nodelete - flag to forbid simulation file deletion # Synopsis: circuitStr ?-nodelete? set arguments [argparse { -nodelete }] global tcl_platform set firstLine [@ [split $circuitStr \n] 0] set runLocation [my configure -runlocation] set cirFile [open [file join $runLocation ${firstLine}.cir] w+] puts $cirFile $circuitStr close $cirFile set rawFileName [file join $runLocation ${firstLine}.raw] set logFileName [file join $runLocation ${firstLine}.log] set cirFileName [file join $runLocation ${firstLine}.cir] if {[string match -nocase *linux* $tcl_platform(os)]} { catch {exec {*}[my configure -Command] -b $cirFileName} errorStr #puts $errorStr set falseError {wine: Read access denied for device L"\\??\\Z:\\", FS volume label and serial are not available.} if {$errorStr ni [list "$falseError\n$falseError\n$falseError" ""]} { error "LTspice failed with error '$errorStr'" } } elseif {[string match -nocase "*windows nt*" $tcl_platform(os)]} { exec {*}[list [my configure -Command] -b $cirFileName] } my configure -LastRunFileName $firstLine my readLog my readData if {![info exists nodelete]} { file delete $rawFileName file delete $logFileName file delete $cirFileName if {[file exists [file join $runLocation ${firstLine}.op.raw]]} { file delete [file join $runLocation ${firstLine}.op.raw] } } }