Surface Cut and Fiducial Placement Issue

Hello,
My apologies if it was asked or discussed elsewhere: I went through the documentation but I did not see anything.
I discovered the software very recently (i’m working with Slicer 4.10.2 on Mac Catalina), I have already followed some tutorials, but I am currently facing a problem in “segment editor”, with the extension “segment editor extra effects”.
Indeed, trying to apply this video (https://www.youtube.com/watch?v=xZwyW6SaoM4) to one of my projects, it turns out that when I go on “surface cut” I can not then access “Fiducial Placement” (which remains grayed out).
I can not understand why …
Is it possible that this is Mac compatibility?
Anyone know how to enlighten me?
Thank you in advance and good day.

When you installed SegmentEditorExtraEffects extension, did you accept installing MarkupsToModel extension (which is required by Surface cut effect)?

If not, then install MarkupsToModel extension from the extension manager and retry.

If it still does not work then let us know if any error is logged (in menu: Help / Report a bug).

Thank you for your very quick answer.
I had the extension “MarkupsToModel” so unfortunately it does not come from there.
Do you want me to past the bug in this topic?

Yes, you can copy-paste the log here.

[DEBUG][Qt] 21.11.2019 15:51:38 [] (unknown:0) - Session start time …: 2019-11-21 15:51:38
[DEBUG][Qt] 21.11.2019 15:51:38 [] (unknown:0) - Slicer version …: 4.10.2 (revision 28257) macosx-amd64 - installed release
[DEBUG][Qt] 21.11.2019 15:51:38 [] (unknown:0) - Operating system …: Mac OS X / 10.15 / 19A583 - 64-bit
[DEBUG][Qt] 21.11.2019 15:51:38 [] (unknown:0) - Memory …: 16384 MB physical, 2048 MB virtual
[DEBUG][Qt] 21.11.2019 15:51:38 [] (unknown:0) - CPU …: GenuineIntel Intel® Core™ i5-7500 CPU @ 3.40GHz, 4 cores, 4 logical processors
[DEBUG][Qt] 21.11.2019 15:51:38 [] (unknown:0) - VTK configuration …: OpenGL2 rendering, Sequential threading
[DEBUG][Qt] 21.11.2019 15:51:38 [] (unknown:0) - Developer mode enabled …: no
[DEBUG][Qt] 21.11.2019 15:51:38 [] (unknown:0) - Prefer executable CLI …: yes
[DEBUG][Qt] 21.11.2019 15:51:38 [] (unknown:0) - Additional module paths …: /Volumes/Disque dur externe/marjorie champarou/Applications/Slicer.app/Contents/Extensions-28257/SegmentEditorExtraEffects/lib/Slicer-4.10/qt-scripted-modules
[DEBUG][Python] 21.11.2019 15:51:39 [Python] (/Volumes/Disque dur externe/marjorie champarou/Applications/Slicer.app/Contents/lib/Slicer-4.10/qt-scripted-modules/SubjectHierarchyPlugins/AbstractScriptedSubjectHierarchyPlugin.py:36) - Scripted subject hierarchy plugin registered: Annotations
[DEBUG][Python] 21.11.2019 15:51:41 [Python] (/Volumes/Disque dur externe/marjorie champarou/Applications/Slicer.app/Contents/lib/Slicer-4.10/qt-scripted-modules/SubjectHierarchyPlugins/AbstractScriptedSubjectHierarchyPlugin.py:36) - Scripted subject hierarchy plugin registered: SegmentEditor
[DEBUG][Python] 21.11.2019 15:51:41 [Python] (/Volumes/Disque dur externe/marjorie champarou/Applications/Slicer.app/Contents/lib/Slicer-4.10/qt-scripted-modules/SubjectHierarchyPlugins/AbstractScriptedSubjectHierarchyPlugin.py:36) - Scripted subject hierarchy plugin registered: SegmentStatistics
[DEBUG][Qt] 21.11.2019 15:51:41 [] (unknown:0) - Switch to module: “Welcome”
[CRITICAL][Stream] 21.11.2019 15:51:42 [] (unknown:0) - Traceback (most recent call last):
[CRITICAL][Stream] 21.11.2019 15:51:42 [] (unknown:0) - File “/Volumes/Disque dur externe/marjorie champarou/Applications/Slicer.app/Contents/Extensions-28257/SegmentEditorExtraEffects/lib/Slicer-4.10/qt-scripted-modules/SegmentEditorDrawTubeLib/SegmentEditorEffect.py”, line 14, in init
[CRITICAL][Stream] 21.11.2019 15:51:42 [] (unknown:0) - self.logic = DrawTubeLogic(scriptedEffect)
[CRITICAL][Stream] 21.11.2019 15:51:42 [] (unknown:0) - File “/Volumes/Disque dur externe/marjorie champarou/Applications/Slicer.app/Contents/Extensions-28257/SegmentEditorExtraEffects/lib/Slicer-4.10/qt-scripted-modules/SegmentEditorDrawTubeLib/SegmentEditorEffect.py”, line 407, in init
[CRITICAL][Stream] 21.11.2019 15:51:42 [] (unknown:0) - self.curveGenerator = slicer.vtkCurveGenerator()
[CRITICAL][Stream] 21.11.2019 15:51:42 [] (unknown:0) - AttributeError: ‘module’ object has no attribute ‘vtkCurveGenerator’
[CRITICAL][Qt] 21.11.2019 15:51:42 [] (unknown:0) - qSlicerPythonCppAPI::instantiateClass - [ “SegmentEditorEffect” ] - Failed to instantiate scripted pythonqt class “SegmentEditorEffect” 0x12e934c18
[CRITICAL][Stream] 21.11.2019 15:51:42 [] (unknown:0) - Traceback (most recent call last):
[CRITICAL][Stream] 21.11.2019 15:51:42 [] (unknown:0) - File “/Volumes/Disque dur externe/marjorie champarou/Applications/Slicer.app/Contents/Extensions-28257/SegmentEditorExtraEffects/lib/Slicer-4.10/qt-scripted-modules/SegmentEditorDrawTube.py”, line 27, in registerEditorEffect
[CRITICAL][Stream] 21.11.2019 15:51:42 [] (unknown:0) - instance.self().register()
[CRITICAL][Stream] 21.11.2019 15:51:42 [] (unknown:0) - AttributeError: ‘NoneType’ object has no attribute ‘register’
[INFO][Stream] 21.11.2019 15:51:47 [] (unknown:0) - Loading Slicer RC file [/Volumes/Disque dur externe/marjorie champarou/.slicerrc.py]
[DEBUG][Qt] 21.11.2019 15:51:59 [] (unknown:0) - Switch to module: “SegmentEditor”
[WARNING][Qt] 21.11.2019 15:51:59 [] (unknown:0) - QLayout::addChildLayout: layout “” already has a parent
[DEBUG][Qt] 21.11.2019 15:52:10 [] (unknown:0) - Switch to module: “DICOM”
[DEBUG][Python] 21.11.2019 15:52:19 [Python] (/Volumes/Disque dur externe/marjorie champarou/Applications/Slicer.app/Contents/lib/Slicer-4.10/qt-scripted-modules/MultiVolumeImporterPlugin.py:455) - MultiVolumeImportPlugin::examine
[DEBUG][Python] 21.11.2019 15:52:19 [Python] (/Volumes/Disque dur externe/marjorie champarou/Applications/Slicer.app/Contents/lib/Slicer-4.10/qt-scripted-modules/MultiVolumeImporterPlugin.py:495) - DICOMMultiVolumePlugin found 2 multivolumes!
[DEBUG][Python] 21.11.2019 15:52:20 [Python] (/Volumes/Disque dur externe/marjorie champarou/Applications/Slicer.app/Contents/lib/Slicer-4.10/qt-scripted-modules/MultiVolumeImporterPlugin.py:165) - MultiVolumeImportPlugin:examineMultiseries
[DEBUG][Python] 21.11.2019 15:52:20 [Python] (/Volumes/Disque dur externe/marjorie champarou/Applications/Slicer.app/Contents/lib/Slicer-4.10/qt-scripted-modules/MultiVolumeImporterPlugin.py:170) - DICOMMultiVolumePlugin found 1 multivolumes!
[INFO][Python] 21.11.2019 15:52:20 [Python] (/Volumes/Disque dur externe/marjorie champarou/Applications/Slicer.app/Contents/lib/Slicer-4.10/qt-scripted-modules/DICOMScalarVolumePlugin.py:303) - Loading with imageIOName: GDCM
[WARNING][Python] 21.11.2019 15:52:22 [Python] (/Volumes/Disque dur externe/marjorie champarou/Applications/Slicer.app/Contents/lib/Slicer-4.10/qt-scripted-modules/DICOMScalarVolumePlugin.py:706) - Irregular volume geometry detected, but maximum error non-zero but is within tolerance (maximum error of 0.000662231 mm, tolerance threshold is 0.001 mm).
[INFO][Stream] 21.11.2019 15:52:20 [] (unknown:0) - Loading with imageIOName: GDCM
[CRITICAL][Stream] 21.11.2019 15:52:22 [] (unknown:0) - Irregular volume geometry detected, but maximum error non-zero but is within tolerance (maximum error of 0.000662231 mm, tolerance threshold is 0.001 mm).
[DEBUG][Qt] 21.11.2019 15:52:27 [] (unknown:0) - Switch to module: “SegmentEditor”
[WARNING][Qt] 21.11.2019 15:52:34 [] (unknown:0) - ctkSliderWidget::setSingleStep() 0 is out of bounds. 0 100 1
[CRITICAL][Stream] 21.11.2019 15:52:37 [] (unknown:0) - Traceback (most recent call last):
[CRITICAL][Stream] 21.11.2019 15:52:37 [] (unknown:0) - File “/Volumes/Disque dur externe/marjorie champarou/Applications/Slicer.app/Contents/Extensions-28257/SegmentEditorExtraEffects/lib/Slicer-4.10/qt-scripted-modules/SegmentEditorSurfaceCutLib/SegmentEditorEffect.py”, line 130, in activate
[CRITICAL][Stream] 21.11.2019 15:52:37 [] (unknown:0) - self.createNewMarkupNode()
[CRITICAL][Stream] 21.11.2019 15:52:37 [] (unknown:0) - File “/Volumes/Disque dur externe/marjorie champarou/Applications/Slicer.app/Contents/Extensions-28257/SegmentEditorExtraEffects/lib/Slicer-4.10/qt-scripted-modules/SegmentEditorSurfaceCutLib/SegmentEditorEffect.py”, line 308, in createNewMarkupNode
[CRITICAL][Stream] 21.11.2019 15:52:37 [] (unknown:0) - self.setAndObserveSegmentMarkupNode(self.segmentMarkupNode)
[CRITICAL][Stream] 21.11.2019 15:52:37 [] (unknown:0) - File “/Volumes/Disque dur externe/marjorie champarou/Applications/Slicer.app/Contents/Extensions-28257/SegmentEditorExtraEffects/lib/Slicer-4.10/qt-scripted-modules/SegmentEditorSurfaceCutLib/SegmentEditorEffect.py”, line 333, in setAndObserveSegmentMarkupNode
[CRITICAL][Stream] 21.11.2019 15:52:37 [] (unknown:0) - self.updateModelFromSegmentMarkupNode()
[CRITICAL][Stream] 21.11.2019 15:52:37 [] (unknown:0) - File “/Volumes/Disque dur externe/marjorie champarou/Applications/Slicer.app/Contents/Extensions-28257/SegmentEditorExtraEffects/lib/Slicer-4.10/qt-scripted-modules/SegmentEditorSurfaceCutLib/SegmentEditorEffect.py”, line 368, in updateModelFromSegmentMarkupNode
[CRITICAL][Stream] 21.11.2019 15:52:37 [] (unknown:0) - self.logic.updateModelFromMarkup(self.segmentMarkupNode, self.segmentModel)
[CRITICAL][Stream] 21.11.2019 15:52:37 [] (unknown:0) - File “/Volumes/Disque dur externe/marjorie champarou/Applications/Slicer.app/Contents/Extensions-28257/SegmentEditorExtraEffects/lib/Slicer-4.10/qt-scripted-modules/SegmentEditorSurfaceCutLib/SegmentEditorEffect.py”, line 398, in updateModelFromMarkup
[CRITICAL][Stream] 21.11.2019 15:52:37 [] (unknown:0) - markupsToModel = slicer.modules.markupstomodel.logic()
[CRITICAL][Stream] 21.11.2019 15:52:37 [] (unknown:0) - AttributeError: ‘module’ object has no attribute ‘markupstomodel’

The log confirms that MarkupsToModel extension is not installed. If it shows up in the extension manager then uninstall it, then install it again.

Thank you very much!
Indeed “markupsToModel” was noted as installed but after uninstalling and reinstalling it, it works! :slight_smile:
Have a nice day !

1 Like

I’m glad it works.

Probably installation was incomplete (you might have closed the application before installation was completed).

Ok it’s good to know.
Thank you !