Skip to content

Python API

Scripting interface for Sim4Life

139 Topics 433 Posts
  • Export SAR to matlab for analysis

    6
    0 Votes
    6 Posts
    2k 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
    1k Views
    M
    Thanks @montanaro!
  • Exporting Simulation Results for Specific Tissues

    2
    0 Votes
    2 Posts
    510 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
    616 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
    512 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
    278 Views
    No one has replied
  • FlexNet License Finder pop-up when trying to use Python API in Jupyter

    Unsolved
    3
    0 Votes
    3 Posts
    1k 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. [image: 1635149028735-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: [image: 1635149042209-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
    345 Views
    No one has replied
  • Sweep a spline along a body part or organ in phantom model

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

    10
    0 Votes
    10 Posts
    2k Views
    A
    this is extremely useful! thanks a lot.
  • Blend faces function

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

    python api database material
    3
    0 Votes
    3 Posts
    1k 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
    944 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
    705 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. [image: 1619186169986-69ed604f-852c-43d3-b4df-4b4c43b5a472-image.png]
  • "Scripter" troubles

    2
    0 Votes
    2 Posts
    609 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
    1k 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
    422 Views
    No one has replied
  • how to Create PolyLine using an array of points with 100 elements

    2
    0 Votes
    2 Posts
    604 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)