Skip to content

Python API

Scripting interface for Sim4Life

119 Topics 337 Posts
  • Export SAR to matlab for analysis

    6
    0 Votes
    6 Posts
    1k Views
    S

    @sayimgokyar
    Note to myself:
    Press right-click on fields on output window and "refresh" button after setting up everything.

  • How to put model entities into a group using Python API?

    5
    0 Votes
    5 Posts
    402 Views
    M

    Thanks @montanaro!

  • Exporting Simulation Results for Specific Tissues

    2
    0 Votes
    2 Posts
    192 Views
    No one has replied
  • This topic is deleted!

    1
    0 Votes
    1 Posts
    5 Views
    No one has replied
  • how to implement 'thicken-wire' in Modify menu of a spline?

    2
    0 Votes
    2 Posts
    271 Views
    S

    Hello Aiping,

    Bellow is a small example which might help you.

    import s4l_v1 as s4l import XCoreModeling import random radius = 0.1 points = list() for ii in range(20): points.append(s4l.Vec3(random.randrange(0,20), random.randrange(0,20), random.randrange(0,20))) spline = XCoreModeling.CreateSpline(points) wire = XCoreModeling.ThickenWire(spline, radius)

    Regards,

    Spuky

  • Change EMLF boundary condition with Python

    2
    0 Votes
    2 Posts
    164 Views
    M

    Easiest way is to right click on your simulation and click on 'To Python..'

    Run this to make sure it works. It should create a new simulation with the exact same parameters. You can then change whichever parameter you like and run it again

    Note: If I remember correctly, if you use 'To Python', a lot of the default settings won't show up in the code. if they don't show up (like the boundary condition),change them to some non-default value in your simulation before using 'To Python'.

  • How to suppress Voxelling info in console

    1
    0 Votes
    1 Posts
    126 Views
    No one has replied
  • FlexNet License Finder pop-up when trying to use Python API in Jupyter

    Unsolved
    3
    0 Votes
    3 Posts
    515 Views
    L

    @sylvain Thank you for the advice Sylvain! I have tried doing as you suggested and using the StartNotebook.bat does start a Jupyter Server. Unfortunately, if I start a new Notebook and try to import a Sim4Life module, I again get a pop-up called FlexNet License Finder wanting the location of either the license or the license server.
    a490c780-3a1d-41ad-a116-8b2c43ada34b-image.png
    Just to be sure I have tried doing so on different computers to try and rule out a faulty installation, however the issue persists.
    I can confirm that there are no problems with using Sim4Life’s GUI or using the integrated scripter/console. I did take a closer look at the Sim4Life console though and noticed that upon start up the following message is displayed:
    8493be54-bcd1-4c7e-ad7d-5abb95b186e3-image.png
    So perhaps this is a license issue after all?

  • Bend a spline along a body part or organ in phantom model

    1
    0 Votes
    1 Posts
    162 Views
    No one has replied
  • Sweep a spline along a body part or organ in phantom model

    1
    1 Votes
    1 Posts
    175 Views
    No one has replied
  • Importing file as a Label Field

    10
    0 Votes
    10 Posts
    762 Views
    A

    this is extremely useful! thanks a lot.

  • Blend faces function

    1
    0 Votes
    1 Posts
    126 Views
    No one has replied
  • Obtain material properties from material database

    3
    0 Votes
    3 Posts
    525 Views
    R

    Hi Haza,

    yes, i managed to get the corresponding material with :
    tissue_X_entity.MaterialName
    Each entity of the anatomical model has this attribute which is visible also through the GUI.
    thanks

  • This topic is deleted!

    1
    0 Votes
    1 Posts
    54 Views
    No one has replied
  • Clone As Static in API

    4
    0 Votes
    4 Posts
    328 Views
    SylvainS

    Hi Matthew, thanks for the additional information. If I understand correctly, there are mainly 3 steps at play here, each of which repeated a certain number of times:

    Posing the anatomical model to the desired posture Moving the model to the desired position inside the coil Running the simulation

    What I would do for a workflow like this is:

    a) Pose the model to the desired posture [in the GUI]
    b) "Clone As Static" the desired posture [in the GUI]
    c) Export the posed model to a .sab file [using a script in the GUI, but clicking buttons could also do] a) Starting from scratch, load the coil and load the posed model [using a script]
    b) Move the model to the desired position [using a script]
    c) Setup the simulation [using a script] Run the simulation [using a script]
    (4). Postprocess the simulation [using a script]

    So to answer your initial question: I still don't know how to Clone As Static from a script, but since I also don't know how to use the POSER from a script I would anyway still have to use the GUI to create each posture (and then the "Clone as static" is only one click away...).
    Let me know if I misunderstood your workflow, or if you find a better way to achieve it than what I suggested.

  • draw hemisphere

    3
    0 Votes
    3 Posts
    242 Views
    A

    thank you! It works 🙂
    I finally had to separate the two hemispheres because I wanted to impose a boundary condition on one sphere and a different boundary condition on the other, but if they were too close it didn't work.

    69ed604f-852c-43d3-b4df-4b4c43b5a472-image.png

  • "Scripter" troubles

    2
    0 Votes
    2 Posts
    254 Views
    S

    When starting and initializing Sim4Life, I do also get the error mentioned before in another thread "Error: too many positional options have been specified on the command line"

  • Plot Ellipsoid

    4
    0 Votes
    4 Posts
    417 Views
    A

    Thanks for the answer, it works!
    I hadn't seen the feature Stretch.

  • how to use python API

    1
    0 Votes
    1 Posts
    247 Views
    No one has replied
  • how to Create PolyLine using an array of points with 100 elements

    2
    0 Votes
    2 Posts
    275 Views
    E

    yes you can.
    Use the function CreatePolyLine from the module XCoreModeling
    This function takes a list of points as input. Points need to be Vec3 objects

    smth like:
    import XCoreModeling
    from s4l_v1.model import Vec3
    #points is your array of 100 points with spatial coordinates
    points = [Vec3(p) for p in points]
    XCoreModeling.CreatePolyline(points)