Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


jdoran last won the day on August 25 2020

jdoran had the most liked content!

About jdoran


    Brisbane, QLD

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

jdoran's Achievements


Newbie (1/14)



  1. Nope, the 64bit version still will not open the model with a massive data table (at least not within the 5mins I was willing to wait for it). I left the model opening over night (via the 32bit client), and came in this morning to it opened. I have removed the datatable, and will have to explore using a database, etc.
  2. Nice pick-up. I had completely forgotten about that. Let's see if that works.
  3. Has anyone else experienced significant performance hits when dealing with large tables in their models? One of my tables has a bit over 230k rows. Since adding the table the model can take up to 30seconds to save (on a SSD), and since closing the model, it no longer seems to load. I can see that tables are added directly into the model xml data which does not seem to make much sense.
  4. So each wait step would require a state/property, a timer and two assign blocks. It's simpler than making the re-usable process with passed tokens, and probably more durable. Thanks. I'll have to go back and update my models, and keep it in mind in the future.
  5. This fixed the outstanding bug where writing in an experiment would dump all csv files in the simulation root directory, ignoring the relative directories you specify in the file path in the file element. The fix was trivial, and I am sure I have raised it several times both on this forum. I made the fix a few months ago, and have kept meaning to post it here (if indeed I have not already). The problem with unofficial fixes is that it is another moving part to update, keep track of, and adds to installation complexity. I have lost previous fixes twice (due to fresh re-installs). Essentially "fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(fileName);" was the culprit. I changed the "_writerFileName" directive from using the above variable to: _writerFileName = "fileName + "_" + simioScenarioName + "_Rep" + simioReplicationNumber + fileExtension;" I could do something neater (as the current output will have a ".csv" in the middle of the name), but did not spend any time on this. It would be appreciated if this was fixed and applied to the official write block (even if as a toggleable option), as due to the over-zealous licensing terms, the DLL will not load on an unlicensed client... meaning I have to choose between having the bug fixed and not dumping hundreds of thousands of CSV files in my simulation root... or causing clients considerable inconvenience by writing hundreds of thousands of CSV files into their simulation root. Here is the relevant code extract in the file element: if (String.IsNullOrEmpty(fileName) == false) { string fileRoot = null; string fileDirectoryName = null; string fileNameWithoutExtension = null; string fileExtension = null; try { fileRoot = System.IO.Path.GetPathRoot(fileName); fileDirectoryName = System.IO.Path.GetDirectoryName(fileName); fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(fileName); fileExtension = System.IO.Path.GetExtension(fileName); } catch (ArgumentException e) { data.ExecutionContext.ExecutionInformation.ReportError(String.Format("Failed to create runtime file element. Message: {0}", e.Message)); } string simioProjectFolder = _data.ExecutionContext.ExecutionInformation.ProjectFolder; string simioExperimentName = _data.ExecutionContext.ExecutionInformation.ExperimentName; string simioScenarioName = _data.ExecutionContext.ExecutionInformation.ScenarioName; string simioReplicationNumber = _data.ExecutionContext.ExecutionInformation.ReplicationNumber.ToString(); if (String.IsNullOrEmpty(fileDirectoryName) || String.IsNullOrEmpty(fileRoot)) { fileDirectoryName = simioProjectFolder; fileName = fileDirectoryName + "\\" + fileName; } _readerFileName = fileName; if (String.IsNullOrEmpty(simioExperimentName)) _writerFileName = fileName; else _writerFileName = fileName + "_" + simioScenarioName + "_Rep" + simioReplicationNumber + fileExtension; } Using relative file paths worked at one stage, and was later broken. Below are two threads with work around un-offical dlls that probably implement the fix nicer. 10/07/2012 - http://www.simio.com/forums/viewtopic.php?f=19&t=829 07/12/2012 - http://www.simio.com/forums/viewtopic.php?f=20&t=987 TextFileReadWrite_compiled.zip TextFileReadWrite_source.zip
  6. I dont recall making a variable timer being an easy thing to do. I believe they required their own state variable. It will make the code harder to read and debug too. I currently execute side processes with delays that fire events. This is even worse in some ways as it makes multiple tokens that then need to be handled.
  7. Is it possible to implement a wait step that either waits for a specified time, or for an event to be fired (which ever comes first). I hacked together a model where I execute a process before the wait step, that delays for the time and fires an event. I then simply listen for either event at the wait step. I don't think this is very neat. Is there a better way? I can see there are timer elements, but I don't see how you would invoke one simply to act as a countdown.
  8. I think the more pertinent question is what backup files are actually meant to do. I have found that when ever my model corrupts, the backup is _usually_ useless too. Why would you want to disable them anyway?
  9. Ah shucks Dave. Thanks for the call out. I enjoy using Simio, as it is one of the premier simulation tools, and I would like to see it become the standard "go-to" tool for general simulation purposes. I have a vested interest in steering development towards mining purposes, so at times I am sure that what I was requesting might have been a polar opposite to the direction you intended to take development for general purposes. That being said, out of the massive list of suggestions I have made over the last year, a good portion have been added. I trust Simio will continue to grow and mature, and I hope to play a small part in this happening... even if it is only to throw peanuts from the gallery.
  10. Dave recommends going back to the source, which is definitely going to be the easier option. However, if you really want to get at the embedded models, open the Simio project file (my_awesome_model.spfx) like a zip using 7-zip or some other archive managing tool. In the Simio Project file, there is a "\Data\Geometry\" folder. You will find all of the custom (user added) symbols here. They are in S3D format. As I have never had to use these directly, I never felt a need to find what tool can open those. As for the Simio ones, they are all ssfx files (another format I haven't had to play with yet). They can be found in the Simio folder in your documents. Something like: "C:\Users\Public\Documents\Simio\Symbols"
  11. I don't think you can dynamically create nodes while model is running, or at startup. So I think you would need to have a single input node, and output node, which you could then follow up with a single node that you could put all your pathing logic in. In that node, you could tell all of entity type A to go down path1, and all of B to go down 2, etc.
  12. Out of all of the codecs tried so far, xvid had the best balance of size vs. quality. I found myself a copy here: http://www.xvid.org/Downloads.15.0.html
  13. What codec are you guys using for recording your simulations. I only have a few installed, and they either are incompatible, or make 1gb+ movies out of 15secs of simulation.
  • Create New...