SSD to teddy with sofiplus

Hi

I have a shell model in sofiplus and usually you would work with this in SSD. I would prefer to work in “clean” teddy afterwards instead, but I’m struggling with getting the data out of SSD.

I managed to get it out using the expo function, but unfortunately I lose information when exporting, so I’m looking for an alternative method.

As a workaround I’ve tried to work from a copy of the cdb file using +SYS commands.
However, if I’m working in the output cdb file, I’m not able to overwrite the file when copying, and I have to close the output database in order to actually do a copy.
If I was working from the source cdb file without copying, sofistik would allow me to update the data inside the cdb file without having to close it between runs.

Is there a way to use one cdb file as input for your model and a separate file for output, without having to use copy? Or another solution perhaps?

Don’t know if this is what you want/mean:

  • It’s possible to start sofiplus without ssd
  • System initialization can be done in teddy or sofiplus

Using myproject.cdb as database:

  • Write a teddy file with things you want/need in sofiplus (cross sections, materials, etc) and run it
  • Start sofiplus from windows and save an empty myproject.dwg
  • Model in sofiplus and generate your model
  • continue working in teddy

The teddy file should either be myproject.dat or you use #Define project=myproject to point to the cdb

Can you show an example of how this would look?

I have a database called myproject.cdb:

#define project=myproject
+prog Aqua $ Materials
Head
NORM DS EN199X-200X
CONC no 1 c 40 ec 17000 gam 20
STEE no 2 b 500
SREC no 1 mno 1 h 300 b 900
end 

+apply ..\sofiplus_export.dat # This is where I would import the EXPO file, but I can't maintain the shell element numbering, so this wont work.

+prog sofimsha $ Apply bedding springs
SYST type 'rest'
CTRL rest 2
quad prop c 1234 ct 500
mod type quad from 1100001
...
end

+prog sofiload $ some loads
...
end

+prog ase $ analysis
...
end

Instead of the +Apply:

  • you start sofiplus via windows (search for it)
  • Save the dwg file the same as the project (myproject.dwg)
  • Do all your modelling and generate the sofiplus model.

So you still have the manual input of generating a model from sofiplus. I doubt there’s a command line call for generating a model from sofiplus (seems what you are after)

Edited:

The sofiplus model is already generated. I have myproject.cdb which is generated from myproject.dwg. I just don’t see a proper way to work with this file outside SSD.

As I’ve tried to explain in the original post I could copy the cdb file and work from the copy, but using that method, I’m not able to overwrite the copy when I run the file again. It would be something along the lines of this:

+sys copy myproject.cdb mynewproject.cdb
#define project=mynewproject.cdb

+prog sofimsha $ Apply bedding springs
SYST type 'rest'
CTRL rest 2
quad prop c 1234 ct 500
mod type quad from 1100001
...
end

I would need some function in the lines of this instead:

#define inputproject=myproject.cdb
#define outputproject=mynewproject.cdb

+prog sofimsha $ Apply bedding springs
SYST type 'rest'
CTRL rest 2
quad prop c 1234 ct 500
mod type quad from 1100001
...
end
1 Like

Sorry, misunderstood.

You’re code should work as long as ssd/wingraf/results/etc aren’t accessing.

Otherwise try +sys del mynewproject.cdb at the top.
This is how I normally manage to delete an entire database by accident :grin:

It does work. Somewhat at least.

The issue is that I the cdb file is quite volatile.

If I have mynewproject.cdb open in wingraf or animator and I overwrite it with +sys copy myproject.cdb mynewproject.cdb - half the time it works out and no harm is done. The other half it corrupts mynewproject.cdb and I need to close down everything before copying it. I would like an “output” option instead of having to copy the cdb file which seems a quite volatile method of working.

How about adding a copy at the end so you do your viewing in a separate cdb:
+sys copy mynewproject.cdb mynewproject_post.cdb

If you corrupt that one it’s a simple copy operation.
It’s not elegant, but you don’t have to wait for another run if the cdb is corrupted.

The only other option is to write your own copy-program with the interface.
E.g. a c++ program that creates a cdb and copies record for record.
The difference is that you access the cdb in a “sofistik manner”, i.e. you can set read/write locks just like their modules.
Don’t think it’s worth the effort though (especially since they’re updating versions at a crazy pace right now)

2 Likes

Thanks for asking this question. It will be really helpful for me in my upcoming project.

1 Like

I’ve been communicating with Sofistik support and they discourage using the sys copy function to work with databases. I’ve also found it too volatile myself, so I’ve gone back to working with the exported sofimshc files.

In order to get all information I need I’m using the following routine:

  1. Run Aqua + exported sofimshc
  2. Access new cdb and store data
  3. Access old cdb and store missing data
  4. Run rest of script