Bug report: tooltip popups are not showing for linearMarkingMenu add-on commands
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
This might be related to:-
Fusion commands typically have helpful text which pops up when you hover your mouse:-
This is not working for add-on commands which we've added to the linearMarkingMenu.
This is also not working for any commands (native and add-on) inside the radialMarkingMenu)
Investigating the difference between my own commandDefinition and the system one, does not show any obvious difference: both of them correctly have the tooltip defined, however, only mine is not showing.
Inbuilt:
mnuctrl.controls[386].commandDefinition.tooltip
'<b>Current Status: Savable</b><br><br>Click to make the design temporarily read-only for you.<br>Other project members can reserve the design.<br>'
dir(mnuctrl.controls[386].commandDefinition.tooltip)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', ...]
special variables:
function variables:
00: '__add__'
01: '__class__'
02: '__contains__'
03: '__delattr__'
04: '__dir__'
05: '__doc__'
06: '__eq__'
07: '__format__'
08: '__ge__'
09: '__getattribute__'
10: '__getitem__'
11: '__getnewargs__'
12: '__getstate__'
13: '__gt__'
14: '__hash__'
15: '__init__'
16: '__init_subclass__'
17: '__iter__'
18: '__le__'
19: '__len__'
20: '__lt__'
21: '__mod__'
22: '__mul__'
23: '__ne__'
24: '__new__'
25: '__reduce__'
26: '__reduce_ex__'
27: '__repr__'
28: '__rmod__'
29: '__rmul__'
30: '__setattr__'
31: '__sizeof__'
32: '__str__'
33: '__subclasshook__'
34: 'capitalize'
35: 'casefold'
36: 'center'
37: 'count'
38: 'encode'
39: 'endswith'
40: 'expandtabs'
41: 'find'
42: 'format'
43: 'format_map'
44: 'index'
45: 'isalnum'
46: 'isalpha'
47: 'isascii'
48: 'isdecimal'
49: 'isdigit'
50: 'isidentifier'
51: 'islower'
52: 'isnumeric'
53: 'isprintable'
54: 'isspace'
55: 'istitle'
56: 'isupper'
57: 'join'
58: 'ljust'
59: 'lower'
60: 'lstrip'
61: 'maketrans'
62: 'partition'
63: 'removeprefix'
64: 'removesuffix'
65: 'replace'
66: 'rfind'
67: 'rindex'
68: 'rjust'
69: 'rpartition'
70: 'rsplit'
71: 'rstrip'
72: 'split'
73: 'splitlines'
74: 'startswith'
75: 'strip'
76: 'swapcase'
77: 'title'
78: 'translate'
79: 'upper'
80: 'zfill'
len(): 81
mnuctrl.controls[386].commandDefinition
<adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B5D10> >
special variables:
function variables:
commandCreated: <adsk.core.CommandCreatedEvent; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandCreatedEvent > *' at 0x0000025AE16B5D70> >
controlDefinition: <adsk.core.ButtonControlDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::ButtonControlDefinition > *' at 0x0000025AE16B5B60> >
id: 'EnableReadOnlyCmd'
isNative: True
isValid: True
name: 'Read-Only For Me'
objectType: 'adsk::core::CommandDefinition'
resourceFolder: 'C:/Users/cnd/AppData/Local/Autodesk/webdeploy/production/80334f1f1d9684bdf5e16fc8205e53367e0cee32/Neutron/UI/Commands/Resources/ReadOnly/UnlockReadOnly'
this: <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B5D10>
thisown: True
toolClipFilename: 'Traceback (most recent call last):\n File "C:\\Users\\cnd\\.vscode\\extensions\\ms-python.python-2024.4.1\\python_files\\lib\\python\\debugpy\\_vendored\\pydevd\\_pydevd_bundle\\pydevd_resolver.py", line 189, in _get_py_dictionary\n attr = getattr(var, name)\n ^^^^^^^^^^^^^^^^^^\n File "C:\\Users/cnd/AppData/Local/Autodesk/webdeploy/production/80334f1f1d9684bdf5e16fc8205e53367e0cee32/Api/Python/packages\\adsk\\core.py", line 6106, in _get_toolClipFilename\n return _core.CommandDefinition__get_toolClipFilename(self)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nRuntimeError: 2 : InternalValidationError : toolClip\n'
tooltip: '<b>Current Status: Savable</b><br><br>Click to make the design temporarily read-only for you.<br>Other project members can reserve the design.<br>'
_get_commandCreated: <bound method CommandDefinition._get_commandCreated of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B5D10> >>
_get_controlDefinition: <bound method CommandDefinition._get_controlDefinition of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B5D10> >>
_get_id: <bound method CommandDefinition._get_id of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B5D10> >>
_get_isNative: <bound method CommandDefinition._get_isNative of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B5D10> >>
_get_isValid: <bound method CommandDefinition._get_isValid of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B5D10> >>
_get_name: <bound method CommandDefinition._get_name of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B5D10> >>
_get_objectType: <bound method CommandDefinition._get_objectType of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B5D10> >>
_get_resourceFolder: <bound method CommandDefinition._get_resourceFolder of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B5D10> >>
_get_toolClipFilename: <bound method CommandDefinition._get_toolClipFilename of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B5D10> >>
_get_tooltip: <bound method CommandDefinition._get_tooltip of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B5D10> >>
_set_name: <bound method CommandDefinition._set_name of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B5D10> >>
_set_resourceFolder: <bound method CommandDefinition._set_resourceFolder of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B5D10> >>
_set_toolClipFilename: <bound method CommandDefinition._set_toolClipFilename of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B5D10> >>
_set_tooltip: <bound method CommandDefinition._set_tooltip of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B5D10> >>
Mine:
mycmd[mywhere].commandDefinition.tooltip
'tasty testing text tooltip'
dir(mycmd[mywhere].commandDefinition)
['__class__', '__delattr__', '__deref__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__swig_destroy__', '__weakref__', '_get_commandCreated', '_get_controlDefinition', '_get_id', '_get_isNative', '_get_isValid', '_get_name', '_get_objectType', '_get_resourceFolder', '_get_toolClipFilename', '_get_tooltip', '_set_name', '_set_resourceFolder', '_set_toolClipFilename', '_set_tooltip', 'cast', 'classType', 'commandCreated', 'controlDefinition', 'deleteMe', 'execute', 'id', 'isNative', 'isValid', 'name', 'objectType', 'resourceFolder', 'this', 'thisown', 'toolClipFilename', 'tooltip']
special variables:
function variables:
00: '__class__'
01: '__delattr__'
02: '__deref__'
03: '__dict__'
04: '__dir__'
05: '__doc__'
06: '__eq__'
07: '__format__'
08: '__ge__'
09: '__getattribute__'
10: '__getstate__'
11: '__gt__'
12: '__hash__'
13: '__init__'
14: '__init_subclass__'
15: '__le__'
16: '__lt__'
17: '__module__'
18: '__ne__'
19: '__new__'
20: '__reduce__'
21: '__reduce_ex__'
22: '__repr__'
23: '__setattr__'
24: '__sizeof__'
25: '__str__'
26: '__subclasshook__'
27: '__swig_destroy__'
28: '__weakref__'
29: '_get_commandCreated'
30: '_get_controlDefinition'
31: '_get_id'
32: '_get_isNative'
33: '_get_isValid'
34: '_get_name'
35: '_get_objectType'
36: '_get_resourceFolder'
37: '_get_toolClipFilename'
38: '_get_tooltip'
39: '_set_name'
40: '_set_resourceFolder'
41: '_set_toolClipFilename'
42: '_set_tooltip'
43: 'cast'
44: 'classType'
45: 'commandCreated'
46: 'controlDefinition'
47: 'deleteMe'
48: 'execute'
49: 'id'
50: 'isNative'
51: 'isValid'
52: 'name'
53: 'objectType'
54: 'resourceFolder'
55: 'this'
56: 'thisown'
57: 'toolClipFilename'
58: 'tooltip'
len(): 59
mycmd[mywhere].commandDefinition
<adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B70F0> >
special variables:
function variables:
commandCreated: <adsk.core.CommandCreatedEvent; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandCreatedEvent > *' at 0x0000025AE16B5AA0> >
controlDefinition: <adsk.core.ButtonControlDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::ButtonControlDefinition > *' at 0x0000025AE16B6E50> >
id: 'linearMarkingMenu_do_dxf_export_component_dxf'
isNative: False
isValid: True
name: 'Smart DXF export'
objectType: 'adsk::core::CommandDefinition'
resourceFolder: 'C:/Users/cnd/AppData/Roaming/Autodesk/Autodesk Fusion 360/API/AddIns/BetterDXF/resources/do_export_dxf'
this: <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B70F0>
thisown: True
toolClipFilename: 'C:/Users/cnd/AppData/Roaming/Autodesk/Autodesk Fusion 360/API/AddIns/BetterDXF/./resources/do_export_dxf/do_dxf_export_component_dxf.html'
tooltip: 'tasty testing text tooltip'
_get_commandCreated: <bound method CommandDefinition._get_commandCreated of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B70F0> >>
_get_controlDefinition: <bound method CommandDefinition._get_controlDefinition of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B70F0> >>
_get_id: <bound method CommandDefinition._get_id of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B70F0> >>
_get_isNative: <bound method CommandDefinition._get_isNative of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B70F0> >>
_get_isValid: <bound method CommandDefinition._get_isValid of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B70F0> >>
_get_name: <bound method CommandDefinition._get_name of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B70F0> >>
_get_objectType: <bound method CommandDefinition._get_objectType of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B70F0> >>
_get_resourceFolder: <bound method CommandDefinition._get_resourceFolder of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B70F0> >>
_get_toolClipFilename: <bound method CommandDefinition._get_toolClipFilename of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B70F0> >>
_get_tooltip: <bound method CommandDefinition._get_tooltip of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B70F0> >>
_set_name: <bound method CommandDefinition._set_name of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B70F0> >>
_set_resourceFolder: <bound method CommandDefinition._set_resourceFolder of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B70F0> >>
_set_toolClipFilename: <bound method CommandDefinition._set_toolClipFilename of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B70F0> >>
_set_tooltip: <bound method CommandDefinition._set_tooltip of <adsk.core.CommandDefinition; proxy of <Swig Object of type 'adsk::core::Ptr< adsk::core::CommandDefinition > *' at 0x0000025AE16B70F0> >>
Maybe the code has some kind of mistaken "skip" built in for commands which return isNative:False ?
Link copied