[pre_v2.0.0] Export models don't works
brothermechanic opened this issue · comments
Describe the bug
Export models don't works
To Reproduce
Steps to reproduce the behavior:
- Select objects for export
- Export model bpy.ops.phobos.export_model() ("Create Links")
- See error
Error: Python: Traceback (most recent call last):
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/blender/operators/io.py", line 141, in invoke
return self.execute(context)
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/blender/operators/io.py", line 254, in execute
self.exportModel(root, exportpath)
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/blender/operators/io.py", line 156, in exportModel
robot = deriveRobot(root)
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/blender/io/blender2phobos.py", line 700, in deriveRobot
xml_robot = xmlrobot.XMLRobot(
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/io/xmlrobot.py", line 75, in __init__
self.link_entities()
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/io/xmlrobot.py", line 102, in link_entities
entity.link_with_robot(self, check_linkage_later=True)
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/io/representation.py", line 1615, in link_with_robot
super(Joint, self).link_with_robot(robot, check_linkage_later=True)
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/io/base.py", line 130, in link_with_robot
self._attr_set_name(attribute, getattr(self, "_" + attribute), no_check=True)
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/io/base.py", line 89, in _attr_set_name
setattr(self, "_" + attribute, self._converter(attribute, new_value))
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/io/base.py", line 75, in _converter
raise AssertionError(f"{str(type(self))}, can not convert {new_value} to value type {vtype} for variable {varname}")
AssertionError: <class 'phobos.io.representation.Joint'>, can not convert grip_rotator_link_joint_motor to value type motors for variable motor
Expected behavior
In Phobos v1 it works
Desktop:
- OS: Gentoo
- Version: ~amd64
Thanks for the report, could you please post a screenshot that shows the joint in the link tree and the custom properties of grip_rotator_link
Please also test the commit bc5c524 ;)
Please also test the commit bc5c524 ;)
Error message has changed:
Python: Traceback (most recent call last):
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/blender/operators/io.py", line 141, in invoke
return self.execute(context)
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/blender/operators/io.py", line 254, in execute
self.exportModel(root, exportpath)
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/blender/operators/io.py", line 156, in exportModel
robot = deriveRobot(root)
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/blender/io/blender2phobos.py", line 704, in deriveRobot
links=[deriveLink(obj) for obj in objectlist if obj.phobostype == 'link'],
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/blender/io/blender2phobos.py", line 704, in <listcomp>
links=[deriveLink(obj) for obj in objectlist if obj.phobostype == 'link'],
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/blender/utils/validation.py", line 802, in validation_wrapper
return function(obj, *args, logging=logging, **kwargs)
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/blender/io/blender2phobos.py", line 360, in deriveLink
visuals.append(deriveVisual(part, logging=logging))
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/blender/io/blender2phobos.py", line 189, in deriveVisual
material = deriveMaterial(obj.active_material, logging=logging)
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/blender/io/blender2phobos.py", line 50, in deriveMaterial
if "No material defined." in errors:
TypeError: argument of type 'NoneType' is not iterable
Thank you I know where the error comes from and will tackle it tomorrow.
Sorry to bother again, but unfortunately I can't see the custom properties section at the end of the bottom right panel. I want to check what information is in there.
56d64f4 should take care of this:
Python: Traceback (most recent call last): ... File "/home/bm/.config/blender/3.5/scripts/addons/phobos/blender/io/blender2phobos.py", line 50, in deriveMaterial if "No material defined." in errors: TypeError: argument of type 'NoneType' is not iterable
@hwiedPro new error message
Error: Python: Traceback (most recent call last):
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/blender/operators/io.py", line 141, in invoke
return self.execute(context)
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/blender/operators/io.py", line 254, in execute
self.exportModel(root, exportpath)
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/blender/operators/io.py", line 156, in exportModel
robot = deriveRobot(root)
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/blender/io/blender2phobos.py", line 706, in deriveRobot
motors=[deriveMotor(obj) for obj in objectlist if obj.phobostype == 'link' and any([k.startswith("motor") for k in obj.keys()])],
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/blender/io/blender2phobos.py", line 706, in <listcomp>
motors=[deriveMotor(obj) for obj in objectlist if obj.phobostype == 'link' and any([k.startswith("motor") for k in obj.keys()])],
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/blender/io/blender2phobos.py", line 558, in deriveMotor
return representation.Motor(
TypeError: phobos.io.representation.Motor() got multiple values for keyword argument 'name'
Thanks for reporting I'll fix this asap.
Ok, please try again ;)
Python: Traceback (most recent call last):
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/blender/operators/io.py", line 141, in invoke
return self.execute(context)
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/blender/operators/io.py", line 254, in execute
self.exportModel(root, exportpath)
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/blender/operators/io.py", line 156, in exportModel
robot = deriveRobot(root)
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/blender/io/blender2phobos.py", line 707, in deriveRobot
links=[deriveLink(obj) for obj in objectlist if obj.phobostype == 'link'],
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/blender/io/blender2phobos.py", line 707, in <listcomp>
links=[deriveLink(obj) for obj in objectlist if obj.phobostype == 'link'],
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/blender/utils/validation.py", line 802, in validation_wrapper
return function(obj, *args, logging=logging, **kwargs)
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/blender/io/blender2phobos.py", line 383, in deriveLink
inertial = representation.Inertial(
File "/home/bm/.config/blender/3.5/scripts/addons/phobos/io/representation.py", line 1406, in __init__
assert self.origin.relative_to is not None
AssertionError
That's the same issue as in #281, see #281 (comment)
Let me know if this works for you now.
I consider this as solved, please reopen if not.