Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by jdoran

  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.
  14. Thanks Glen. I hope this thread is visible enough for someone who encounters this issue. It might also be worth packing it with future Simio releases and calling it something like ManualReturnRoamedLicense.exe ... or something.
  15. You could make two vehicle groups (in lists), and in your seize block reference a property that points to one of the lists. You could then run an experiment with multiple scenarios where you toggle between the two lists.
  16. @tulach I can understand where you come from completely, as I also experience the time pressures sometimes associated with projects (especially smaller ones). I initially started by jumping head-first into Simio when modelling, but as I have gained more experience with the tool, have been afforded a little extra time now to get a more complete idea of the model before starting. @equaglia Thanks for the share. I will definitely look more into this. It is always nice to look at problems from different angles, and I can definitely see the benefits of using those specific techniques to describe a simulation.
  17. I have always found that a natural part of the design process is to sit down and draw out (maybe in another tool that is better suited for conceptual work) the entire system and interactions you are planning to simulate, before you get cracking at the task in the actual simulation tool (in this case Simio). This allows me to decide which parts of the simulation need to be cut in or out of scope, and gives me a checklist to refer back to at the end to verify the model. For me, this has primarily been using UML-like diagrams in tools like Enterprise Architect (http://www.sparxsystems.com.au/). How do you guys do it? Do you jump straight in? And have any of you found any way (or made your own), for either bringing your conceptualizations into Simio, or back out to compare at the end? I suspect this will apply more to the academic uses of the tool, as there can be a lot of time pressure on simulation generation. I will be looking into this more in the near future, and would love to hear how my fellow Simio compatriots approach this issue in their projects. Of direct interest to this topic would be the Arena functionality to export models in UML. I believe there were also 3rd party plugins for importing too. Attached is a quick overview of this functionality. I believe it is related, as it would be nice to see this kind of functionality in the future in Simio (the next generation incarnation of Arena, that even possesses some of the creative genius/developers that made Arena). ExportToUML.pdf
  18. I often see that the recommended place to install UserExtensions (dlls) is in the the user's documents (i.e. C:\Users\\Documents\SimioUserExtensions), but I would just like to point out for network admins that installing it to the Simio installation directory works too, and can save having to copy files on login to user directories. Example path: C:\Program Files (x86)\Simio\UserExtensions
  19. I finally got around to testing this, and the immediate restriction I see is that you can only use states and not functions. I.e. TimeNow, or custom math statements.
  20. Great addition! If only this were here a few weeks ago, to save us creating our own... then again ours also auto generates a graph of the data.
  21. I call it cheating because you can't scale it properly. Attached is how I would rectify that (Check out the Parent_Model). Using an entity instead of a server is valid, as it posses functionality we can't get out of the server (heading etc.). While I agree with you about the technicality of the term sub-model, I disagree in your interpretation of its function. Any model that contains a logical flow and is made up of custom logic, that I use within another model, I just call sub-model (for better or worse). The rest I just consider to be part of the provided toolkit. "Sub-models" are incredibly useful, until you need to start to modify things inside them from the Parent model, or need to change their height within the sub-model (sub-models do not scale dimension wise at all, while retaining usefulness). 3DRotatingServer.spfx
  22. You cheated! It has to be a sub-model lol. I remember spending ages making an excavator sub-model, and now we have a travel step to make lives easier.
  23. Was this created in response to... http://www.simio.com/forums/viewtopic.php?f=6&t=1017 Thanks for the share though.
  • Create New...