5 June 2021 at 20 h 51 min #19658
Hi, me again, I am trying to load the Pneunet tutorial (step1) but I an getting this message, I think that this has to be with the bbox values but i do not understand why is it wrong since it comes directly from the tutorial.
[ERROR] [SofaPython3::SceneLoader] RuntimeError: Unable to resize vector to match list size. Is the data type resizable ? At: step1-meshLoading.pyscn(10): createScene [INFO] [SceneCheckerVisitor] Validating node "root" with checks: [SceneCheckDuplicatedName, SceneCheckMissingRequiredPlugin, SceneCheckUsingAlias] [INFO] [SceneCheckerVisitor] Finished validating node "root". [WARNING] [RealGUI] Global Bounding Box seems very small; Your viewer settings (based on the bbox) are likely invalid, switching to default value of [-1,-1,-1,1,1,1].This is caused by using component which does not implement properly the updateBBox function.You can remove this warning by manually forcing a value in the parameter bbox="minX minY minZ maxX maxY maxZ" in your root node
the code is just this
import Sofa import os def createScene(rootNode): rootNode.addObject('RequiredPlugin', name='SoftRobots', pluginName='SoftRobots') rootNode.addObject('RequiredPlugin', name='SofaPython3', pluginName='SofaPython3') rootNode.addObject('RequiredPlugin', name='SofaLoader', pluginName='SofaLoader') rootNode.findData('bbox').value = ["-100", "-100", "-100", "100", "100", "100"] finger = rootNode.addChild('finger') finger.addObject('MeshVTKLoader', name='loader', filename='data/mesh/pneunetCutCoarse.vtk') finger.addObject('Mesh', src='@loader', name='container') finger.addObject('MechanicalObject', name='tetras', template='Vec3d', rx='0', dz='0')
The 10th line is the rootNode.findData(‘bbox’).value line, i have tried everything
[-100, -100, -100, 100, 100, 100]
[“-100”, “-100”, “-100”, “100”, “100”, “100”]
[“-100, -100, -100, 100, 100, 100”]
-100, -100, -100, 100, 100, 100
“-100 -100 -100 100 100 100”
but nothing seems to work9 June 2021 at 5 h 33 min #19666
HI, soooo, I was doing all the tutorial, step by step and I could realize that bbox is commented, there are some issues with the tutorials so I continued digging into the folder and I saw that there were files with the SofaPython3 plugin so I decided to try those, I tried them and they were alright, everything seemed to work but the key controller, whem I press Ctrl + the gripper does not move at all and idk why, how couls i fix that? Keep in mind that I am using SofaPython3
Two more questions:
– Can I load an cylindrical STL file using the Mesh stl loader?? I tried that in another version of SOFA and i could not.
– How could I map the pressure applied to the cavity? I see that there is a pneumatic sensor but I do not understand how to use it
Thanks in advance,16 June 2021 at 22 h 52 min #19740HugoKeymaster
- SOFA Consortium
Strange that the controller is not working. Did you click in the SOFA 3D view before pressing Ctrl + ?
Regarding your additional questions:
– STL format is supported in SOFA. You can design it in a dedicated software and then import it. If not, we would be curious to have the error.
– I am not sure to understand your question “How could I map the pressure applied to the cavity?“. Could you rephrase it for me?
Hugo17 June 2021 at 4 h 57 min #19742
1 Hi @Hugo, thanks for the response, I do not know where to find the SOFA 3D view, in the view option i just have QGLViewer and OpenGL, maybe i am missing one step.
2 I have my STL file already, it just just a simple cylinder, my code is just this
import Sofa import os def createScene(rootNode): rootNode.addObject('RequiredPlugin', name='SoftRobots') rootNode.addObject('RequiredPlugin', name='SofaLoader') #rootNode.addObject('RequiredPlugin', name='CGALPlugin') #rootNode.findData finger = rootNode.addChild('finger') finger.addObject('MeshSTLLoader', name='loader', filename='../data/mesh/actuador.stl') finger.addObject('MeshTopology', src='@loader', name='container') finger.addObject('MechanicalObject', name='tetras', template='Vec3d', showObject=True, showObjectScale=True)
When i do this, i just can see the borders of the top surface (the top of the cylinder) and the borders of the bottom surface (bottom of the cylinder), then when i try to do this code from the docs
node = rootNode.addChild('node') node.addObject('MeshSTLLoader', name='mesh', filename='../data/mesh/actuador.stl') node.addObject('MeshGenerationFromPolyhedron', name='gen', template='Vec3d', inputPointsfirstname.lastname@example.org', inputTrianglesemail@example.com', drawTetras='1', cellSize='10', facetAngle='30', facetSize='4', cellRatio='2', facegApproximation='1') node.addObject('Mesh', firstname.lastname@example.orgPoints', tetrahedra='gen.outputTetras') node.addObject('VTKExporter', filename='../data/mesh/actuador.stl', edges=0, tetras=1, exportAtBegin=1)
I get an error that says
[ERROR] [SofaPython3::SceneLoader] ValueError: Object type MeshGenerationFromPolyhedron<Vec3d> was not created The object is not in the factory.
So basically, in the first code i am just trying to follow the instructions from the tutorial and i just see dotted lines on the top and bottom surface, not the cylinder itself
3 yes i am sorry, i want to measure the pressure of the actuator when it starts to move, I have seen the fingerController.py file and i can see that the pressureValue comes from the SurfacePressureConstraint object attached to the cavity, i could even print the actual value ( if the finger could be movec with ctrl and +) and see its value, right? If my assumption is right, what would it be the unit? bar, mpa? pa?
- You must be logged in to reply to this topic.