Tutorials¶
In the world of 3D printing, for better 3d printing experience, there will be an important step, which is the use of slicing software. For beginners, slicing software may be a little difficult to operate, but don't worry, there will be detailed steps here. This page details the process of preparing a file to print using the Dremel Digilab 3D Slicer. This software will allow you to quickly and easily slice your file to obtain a high quality print using your Dremel 3D printer. The software is pre-loaded on the USB stick included with your printer, and can also be downloaded from the Software Tab.
Check out these developer tutorials to get started with customizing and extending 3D Slicer using Python scripting or C++.
C++¶
Majority of Slicer core modules and all basic infrastructure are implemented in C++.Documentation of these classes are available at: http://apidocs.slicer.org/master/
- Check out these developer tutorials to get started with customizing and extending 3D Slicer using Python scripting or C. C ¶ Majority of Slicer core modules and all.
- This tutorial demonstrates features of SlicerIGT that you may use in your own application. You do not need background education in engineering or medicine to follow the tutorials. But it is recommended to get familiar with the basics of 3D Slicer application before starting this course. 3D Slicer tutorials.
Python¶
Native Python documentation¶
3d Slicer Tutorials
Python-style documentation is available for the following packages:
- slicer package
Doxygen-style documentation¶
Slicer core infrastructure is mostly implemented in C++ and it is made available in Python in the slicer
namespace.Documentation of these classes is available at: http://apidocs.slicer.org/master/
This documentation is generated using the Doxygen tool, which uses C++ syntax. The following rules can help in interpreting this documentation for Python:
Qt classes (class name starts with
q
): for example, qSlicerMarkupsPlaceWidgetVTK classes VTK classes (class name starts with
vtk
): for example, vtkMRMLModelDisplayNodePublic Types: most commonly used for specifying enumerated values (indicated by
enum
type).These values can be accessed asslicer.className.typeName
, for exampleslicer.qSlicerMarkupsPlaceWidget.HidePlaceMultipleMarkupsOption
Logic pro x cost.Properties: these are values that are accessible as object attributes in Python and can be read and written as
objectName.propertyName
. For example:Public slots: publicly available methods. Note that
setSomeProperty
methods show up in the documentation but in Python these methodsare not available and instead property values can be set usingsomeProperty=..
.Signals: signals that can be connected to Python methods
Public member functions: methods that have
Q_INVOKABLE
keyword next to them are available from Python.virtual
andoverride
specifiers can be ignored. What is a disk image.className
(for Qt classes): constructor, shows the arguments that can be passed when an object is createdNew
(for VTK classes): constructor, never needs an argument~className
: destructor, can be ignored, Python calls it automatically when neededSafeDownCast
(for VTK classes): not needed for Python, as type conversions are automatic
Static Public Member Functions: can be accessed as
slicer.className.memberFunctionName(arguments)
for example:slicer.vtkMRMLModelDisplayNode.GetSliceDisplayModeAsString(0)
Protected Slots, Member Functions, Attributes: for internal use only, not accessible in Python
Mapping commonly used data types from C++ documentation to Python:
void
-> Python: if the return value of a method is this type then it means that no value is returnedsomeClass*
(object pointer) -> Python: since Python takes care of reference counting, it can be simply interpreted in Python assomeClass
.The called method can modify the object.int
,char
,short
(with optionalsigned
orunsigned
prefix) -> Python:int
float
,double
-> Python:float
constchar*
,std::string
,QString
,constQString&
-> Python:str
bool
-> Python:bool
Introduction
This tutorial demonstrates features of SlicerIGT that you may use in your own application. You do not need background education in engineering or medicine to follow the tutorials. But it is recommended to get familiar with the basics of 3D Slicer application before starting this course. >> 3D Slicer tutorials
Note that this course will remain under constant development. If you notice any mistakes, or have any suggestions on how to improve it, please contact us.
Most tutorials use the SlicerIGT-Data folder. Access the folder through >>this link.
Python¶
Native Python documentation¶
3d Slicer Tutorials
Python-style documentation is available for the following packages:
- slicer package
Doxygen-style documentation¶
Slicer core infrastructure is mostly implemented in C++ and it is made available in Python in the slicer
namespace.Documentation of these classes is available at: http://apidocs.slicer.org/master/
This documentation is generated using the Doxygen tool, which uses C++ syntax. The following rules can help in interpreting this documentation for Python:
Qt classes (class name starts with
q
): for example, qSlicerMarkupsPlaceWidgetVTK classes VTK classes (class name starts with
vtk
): for example, vtkMRMLModelDisplayNodePublic Types: most commonly used for specifying enumerated values (indicated by
enum
type).These values can be accessed asslicer.className.typeName
, for exampleslicer.qSlicerMarkupsPlaceWidget.HidePlaceMultipleMarkupsOption
Logic pro x cost.Properties: these are values that are accessible as object attributes in Python and can be read and written as
objectName.propertyName
. For example:Public slots: publicly available methods. Note that
setSomeProperty
methods show up in the documentation but in Python these methodsare not available and instead property values can be set usingsomeProperty=..
.Signals: signals that can be connected to Python methods
Public member functions: methods that have
Q_INVOKABLE
keyword next to them are available from Python.virtual
andoverride
specifiers can be ignored. What is a disk image.className
(for Qt classes): constructor, shows the arguments that can be passed when an object is createdNew
(for VTK classes): constructor, never needs an argument~className
: destructor, can be ignored, Python calls it automatically when neededSafeDownCast
(for VTK classes): not needed for Python, as type conversions are automatic
Static Public Member Functions: can be accessed as
slicer.className.memberFunctionName(arguments)
for example:slicer.vtkMRMLModelDisplayNode.GetSliceDisplayModeAsString(0)
Protected Slots, Member Functions, Attributes: for internal use only, not accessible in Python
Mapping commonly used data types from C++ documentation to Python:
void
-> Python: if the return value of a method is this type then it means that no value is returnedsomeClass*
(object pointer) -> Python: since Python takes care of reference counting, it can be simply interpreted in Python assomeClass
.The called method can modify the object.int
,char
,short
(with optionalsigned
orunsigned
prefix) -> Python:int
float
,double
-> Python:float
constchar*
,std::string
,QString
,constQString&
-> Python:str
bool
-> Python:bool
Introduction
This tutorial demonstrates features of SlicerIGT that you may use in your own application. You do not need background education in engineering or medicine to follow the tutorials. But it is recommended to get familiar with the basics of 3D Slicer application before starting this course. >> 3D Slicer tutorials
Note that this course will remain under constant development. If you notice any mistakes, or have any suggestions on how to improve it, please contact us.
Most tutorials use the SlicerIGT-Data folder. Access the folder through >>this link.
You can download the whole SlicerIGT-Data folder as a zip package by clicking on the Download link at the top left of the online folder.
If a link in the table below is broken, please let us know, and you can always find all presentations in this shared folder:
>> Tutorial presentations Starcraft remastered compare.
Lesson | Title | Description | Prerequisites |
---|---|---|---|
U-01 | Software installation | Install all software that is needed for the rest of this tutorial. Download sample data to work on during the tutorial. | None |
U-02 | Replay recorded data | You do not need real hardware devices to try use cases. To replay them on your computer, load saved data in Slicer using the Sequences extension. Or run PLUS in simulation mode. | U-01 |
U-03 | Hardware connections | Learn how to connect to hardware devices by PLUS, and how to stream data to 3D Slicer for visualization | U-01 |
U-04 | Coordinate transformations | A practical approach to coordinate systems and transformations | U-01 |
U-05 | Command line interface | Introduction to the command line user interface. PLUS has many practical functions that are only accessible from this interface. | U-01 |
U-06 | Record data with fCal | Record live tracker and image data with a small application in PLUS. (No need to run 3D Slicer.) This is useful when you need to record data on a less powerful or 32-bit machine and don't want to run 3D Slicer. | U-01 |
U-07 | Record data using Slicer | Record live tracker and image data from the convenient GUI of 3D Slicer. | U-01 |
U-08 | Hardware prototyping | Best practices when building the hardware part of your navigation system. | None |
U-09 | Modeling tools | Tools are visualized using 3D model nodes. Some built-in shapes can be used for common tools. Learn visualization options for model nodes. | None |
3d Slicer Tutorial
Lesson | Title | Description | Prerequisites |
---|---|---|---|
U-11 | Pivot calibration | How to visualize a tracked pointer device, like a stylus or a needle in Slicer. | U-02, U-04, U-09 |
U-12 | Landmark registration | Most popular registration method based on two lists of landmarks | U-02, U-11 |
U-13 | Surface registration | Common registration method based on a list of surface points and a surface model | U-12 |
U-15 | Electromagnetic tracking | Specific skills and best practices to use electromagnetic position trackers. | U-11 |
U-16 | Optical tracking (MicronTracker) | Specific skills and best practices to use optical MicronTracker (Claron Technologies) position trackers. | U-03 |
U-17 | Optical tracking (Polaris) | Specific skills and best practices to use Polaris (NDI) optical position trackers. | U-03 |
U-18 | Multi-modality tracking | Fusion and synchronization of data streams from two different trackers. | U-12 |
U-19 | Distortion field analysis | Analyze the accuracy of a less accurate tracker using a more reliable tracker. E.g. check electromagnetic tracking field distortion using an optical tracker. | U-12 |
How To Use Bit Slicer
Lesson | Title | Description | Prerequisites |
---|---|---|---|
U-31 | Tracked ultrasound calibration | Compute the position of the ultrasound image relative to the transducer tracker. Synchronize the image and tracking data streams in time. | U-01, U-02 |
U-32 | Tracked ultrasound visualization in 3D Slicer | Show 2D ultrasound in one of Slicer's 2D image viewers. And add tracked ultrasound to the 3D viewers that moves in real time. | U-01, U-03 |
U-33 | Ultrasound volume reconstruction – offline | Convert tracked ultrasound data into a single 3D image that can be handled like CT or MRI data. | U-03, U-04 |
U-34 | Ultrasound volume reconstruction – real time | See the reconstructed ultrasound in 3D Slicer in real time as you are scanning. | U-01, U-02 |
U-37 | Brain surgery navigation | Build a complete brain surgery navigation system to overview many SlicerIGT functions in one application. | U-01, U-02 |