Skip to content

Python API

Scripting interface for Sim4Life

137 Topics 428 Posts
  • Exporting Simulation Results for Specific Tissues

    2
    0 Votes
    2 Posts
    419 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
    496 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
    429 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
    234 Views
    No one has replied
  • FlexNet License Finder pop-up when trying to use Python API in Jupyter

    Unsolved
    3
    0 Votes
    3 Posts
    953 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
    285 Views
    No one has replied
  • Sweep a spline along a body part or organ in phantom model

    1
    1 Votes
    1 Posts
    294 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
    229 Views
    No one has replied
  • Obtain material properties from material database

    python api database material
    3
    0 Votes
    3 Posts
    981 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
    771 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
    569 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
    487 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
    856 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
    363 Views
    No one has replied
  • how to Create PolyLine using an array of points with 100 elements

    2
    0 Votes
    2 Posts
    515 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)
  • Python code does not work with S4L v.6.0

    2
    0 Votes
    2 Posts
    453 Views
    PeterStijnmanP
    It might be that they changed the sim4life python module between the two versions. You could check the functions you call from the sim4life module in the API browser. If that doesn't work, I would suggest posting the code (or a minimal working example) here so people can look more specifically.
  • This topic is deleted!

    1
    0 Votes
    1 Posts
    2 Views
    No one has replied