Home › Forum › SOFA › Programming with SOFA › [SOLVED] How to Solve the Cutting Edge Problem
Tagged: 64_bits, edge_removal, SOFA_1706, Windows_10
- This topic has 18 replies, 6 voices, and was last updated 6 years, 3 months ago by Binesh.
-
AuthorPosts
-
12 March 2018 at 16:02 #10601redtreeBlocked
Hi
I am trying to build the thread cutting simulation. and i make the scene environment and plugin that remove the edge topology. However, when i run the code, the following problem occur
https://pasteboard.co/Hc65fKs.jpg
same with problem image, it seem to be that there is the problem that last edge point have the default position and detached from collision last point.
I want to solve this mapping dismatch problemunder code is the scene file of thread.
<Node name="beamsprings3_bending"> <Gravity name="R_Gravity" gravity="0 0 0" /> <EulerImplicitSolver rayleighStiffness="0.01" rayleighMass="0.01" /> <CGLinearSolver template="GraphScattered" iterations="20" threshold="1e-008" tolerance="1e-5" /> <MeshObjLoader name="Mesh" filename="knot_/PointLine50_Bend.obj" /> <Mesh src="@Mesh" /> <MechanicalObject template="Vec3d" name="DOFs" scale3d="1 1 1" src="@Mesh" translation="1.8 -5.0 -2.0" rotation="320 0 0" scale="2 2 2"/> <ModifiedFixedConstraint template="Vec3d" name="default6" indices="0" /> <FixedConstraint template="Vec3d" name="default6" indices="0" /> <UniformMass mass="1" /> <UncoupledConstraintCorrection /> <MeshSpringForceField name="Springs" stiffness="10000" damping="0.3" /> <Node name="Collision"> <EdgeSetTopologyContainer /> <EdgeSetTopologyModifier /> <EdgeSetTopologyAlgorithms name="TopoAlgo" template="Vec3d" /> <EdgeSetGeometryAlgorithms name="GeomAlgo" template="Vec3d" /> <Point group="1" tags="thread" /> <MechanicalObject template="Vec3d" name="splineMapped" /> <CatmullRomSplineMapping input="@../DOFs" output="@splineMapped" SplittingLevel="1" /> <Node name="Visu"> <OglModel template="ExtVec3f" name="VisualModel" src="@../../Mesh" lineWidth="6" lineSmooth="1"/> <IdentityMapping input="@.." output="@VisualModel" /> </Node> </Node> </Node>
under code is that the remove the edge topology
sofa::core::topology::TopologyModifier* topoMod; topo_curr->getContext()->get(topoMod); if (topoMod) { topoMod->removeItems(point_idx); topoMod->notifyEndingEvent(); topoMod->propagateTopologicalChanges(); topoMod->reinit(); return true; }
Thank you
15 March 2018 at 16:16 #10647HugoKeymasterHi @metheme !
Welcome to the SOFA community!
I am sorry but it seems you tried to updload an image but did not work. You can updload it on http://imgur.com (for instance) and link it in your post.Hmmm I guess @jnbrunet and @epernod this is the problem we already noticed on isolated vertices after a topological change right ?
We will try to get back to you on this @metheme.
If you carry investigating, you can join us on Gitter/GitHub to solve the problem together.Hugo
16 March 2018 at 16:16 #10669jnbrunetModeratorIt looks like it, but still hard to say. This remains a rather obscure part of sofa that could use some light 😉
27 March 2018 at 15:38 #10728epernodBlockedHi,
sorry for my speed to answer…
Could you resend the picture of the result you get, it would help me understand what is the problem.Could you also do a quick test, is your
point_idx
a list of several edge indices?
If yes could you do a loop to send destruction of the edges one by one:for (int i = 0; i < point_idx.size(); i++) { sofa::helper::vector<unsigned int> its; its.push_back(point_idx[i]); topoMod->removeItems(its); topoMod->notifyEndingEvent(); topoMod->propagateTopologicalChanges(); }
I think I saw a bug when there is too many elements removed at the same time.
No need to call reinit.Erik
18 April 2018 at 17:09 #10783BineshBlockedHi @redtree
first create a vector from removed edges
Then ::helper::vector<EdgeID> removedEdges; removedEdges.push_back(idx); topoMod->removeEdgesWarning(removedEdges); propagateTopologicalChanges(); topoMod->removeEdgesProcess(removedEdges,true);
Or you can use this Function ::
topoMod->removeEdges(removedEdges,true,true);
27 April 2018 at 15:35 #10841HugoKeymasterDear @metheme,
Did all these nice advices help you?
I would be glad to get a live demo/video of your cutting simulation on Youtube 😉Cheers,
Hugo
2 August 2018 at 09:50 #11629BEKBlockedHi all,
I got this problem from metheme. I applied the advice that @Binesh , @epernod said. sadly, it doesn’t work.I tried some experiments using simple point-line model (back to the basic…)
This is scn code that I tested:
<Node name="beamsprings"> <EulerImplicitSolver rayleighStiffness="0.01" rayleighMass="0.01" /> <CGLinearSolver template="GraphScattered" iterations="20" threshold="1e-008" tolerance="1e-5" /> <Mesh name="lines" points="0 0 0 1 0 0 2 0 0 3 0 0 4 0 0 5 0 0 6 0 0 7 0 0 8 0 0 9 0 0" lines="0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9" /> <MechanicalObject name="DOFs" template="Vec3d" translation="1 0 2" src="@lines" /> <UniformMass mass="1" /> <FixedConstraint name="FixedConstraint" indices="0 1" /> <MeshSpringForceField name="Springs" stiffness="100000" damping="0" /> <!-- <LineBendingSprings name="BS" stiffness="100" damping="0" />--> <UncoupledConstraintCorrection /> <EdgeSetTopologyContainer name="Container" src="@lines" tags=" " /> <EdgeSetTopologyModifier name="Modifier" /> <EdgeSetTopologyAlgorithms template="Vec3d" name="TopoAlgo" /> <EdgeSetGeometryAlgorithms template="Vec3d" name="GeomAlgo" drawEdges="1"/> <Line tags="thread" /> <Point /> <OglModel name="VisualModel" color="red" /> <IdentityMapping input="@." output="@VisualModel" /> </Node>
Number of Points: 10
Number of Edges: 9Removing edge code are almost same as above.
std::set< unsigned int > items; items.insert(8); //delete Edge index 9, which is last edge sofa::helper::vector<unsigned int> vitems; vitems.reserve(items.size()); vitems.insert(vitems.end(), items.rbegin(), items.rend()); sofa::component::topology::EdgeSetTopologyModifier* topoMod; topo_curr->getContext()->get(topoMod); if (topoMod) { topoMod->removeItems(vitems); //topoMod->removeEdges(vitems, true, true); topoMod->notifyEndingEvent(); topoMod->propagateTopologicalChanges(); return true; }
Firstly, I set a deleted edge 8, which is last index of edge.
https://www.dropbox.com/s/jxgnoihiki7e1eg/edge_remove.jpg?dl=0I got error message.
https://www.dropbox.com/s/19rvpg6ti3hssgs/edge_remove_error.jpg?dl=0I tried to debug code but I couldn’t understand exactly due to lack of knowledge.
I guess, This problem occurred in propagateTopologicalChanges(), EdgeSetTopologymodifier.cpp, in line 277.
As I understand, vertex linked the edges should be removed after edge removal but it doesn’t work due to interrupt propagateTopologicalChanges().
In propagateTopologicalChanges(), the problem is related ExecuteVisitor.Secondly, I set a deleted edge 6, which is middle edge index.
It works without error because any of point was not to set removed.
By the way, the spring is linked across the disconnected edge, it didn’t separate.
https://www.dropbox.com/s/wv9ts510xm9mlth/edge_remove2.jpg?dl=0I looked up “RemovePrimitivePerformer, InciseAlongPathPerformer”, but those are about the deleted triangle using TrianglesetTolopogyModifier.
Could you give some advice?
Thank you..Best wishes,
BEK2 August 2018 at 11:13 #11631epernodBlockedHi,
thank you for raising this issue up.
Regarding you scene, you have in the same node a Mesh and EdgeSet components.
I will add an issue on github regarding that because this should not be allowed.
This means you have 2 topologies in the same node so the other component like MechanicalObject and Spring don’t know which topology to rely on.Mesh Topology isn’t dynamic, this means it won’t handle the topological changes.
So to do more tests I suggest you change your scene like this:
<EdgeSetTopologyContainer name="Container" points="0 0 0 1 0 0 2 0 0 3 0 0 4 0 0 5 0 0 6 0 0 7 0 0 8 0 0 9 0 0" edges="0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9" /> <EdgeSetTopologyModifier name="Modifier" /> <EdgeSetTopologyAlgorithms template="Vec3d" name="TopoAlgo" /> <EdgeSetGeometryAlgorithms template="Vec3d" name="GeomAlgo" drawEdges="1"/> <MechanicalObject name="DOFs" template="Vec3d" translation="1 0 2" src="@Container" /> <UniformMass mass="1" /> <FixedConstraint name="FixedConstraint" indices="0 1" /> <MeshSpringForceField name="Springs" stiffness="100000" damping="0" /> <!-- <LineBendingSprings name="BS" stiffness="100" damping="0" />--> <UncoupledConstraintCorrection />
Then if it still breaks, could you do the same test without the UncoupledConstraintCorrection and then without the MeshSpringForceField. I’m not 100% sure those component handle topological changes.
thanks
Erik
3 August 2018 at 13:15 #11642BEKBlockedDear. Erik @epernod
Thank you for your comments.
I tried to test several ways. I think half was successful.1. Following your advice, I rewrite scn
<Node name="beamsprings-pointset"> <EulerImplicitSolver rayleighStiffness="0.01" rayleighMass="0.01" /> <CGLinearSolver template="GraphScattered" iterations="20" threshold="1e-008" tolerance="1e-5" /> <EdgeSetTopologyContainer name="Container" points="0 0 0 1 0 0 2 0 0 3 0 0 4 0 0 5 0 0 6 0 0 7 0 0 8 0 0 9 0 0" edges="0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9" /> <EdgeSetTopologyModifier name="Modifier" /> <EdgeSetTopologyAlgorithms template="Vec3d" name="TopoAlgo" /> <EdgeSetGeometryAlgorithms template="Vec3d" name="GeomAlgo" drawEdges="1"/> <MechanicalObject name="DOFs" template="Vec3d" translation="1 0 2" src="@Container" /> <UniformMass mass="1" /> <FixedConstraint name="FixedConstraint" indices="0 1" /> <!-- <MeshSpringForceField name="Springs" stiffness="100000" damping="0" /> --> <!-- <LineBendingSprings name="BS" stiffness="100" damping="0" /> --> <!-- <UncoupledConstraintCorrection /> --> <Line tags="thread GraspingSurface" /> <Point /> <OglModel name="VisualModel" color="red" /> --> <IdentityMapping input="@." output="@VisualModel" /> --> </Node>
However, the problem occurred the same as previous results.
It’s clear that the problem of topology visitor.
I also remove MeshSpringForceField and UncoupledConstraintCorrection on scn file
but, still has same problems.
I don’t know how to fix it, now..So, I look up the examples of sofa (in Components\topology\TopologicalModifiers)
and I think I need msh file for point-line model.
The structure to change topology looks like that three elements needed.
– MeshGmshLoader /with msh file
– EdgeSetTopology.xml src from name of MeshGmshLoader
– MechanicalObject src from name of MeshGmshLoaderSo I made msh file consist of 9 lines and 10 points (same as I made above) using Gmsh program.
2. Design new msh model using MeshGmshLoader
This is my new scn code:<Node name="beamsprings"> <EulerImplicitSolver rayleighStiffness="0.01" rayleighMass="0.01" /> <CGLinearSolver template="GraphScattered" iterations="20" threshold="1e-008" tolerance="1e-5" /> <MeshGmshLoader name="meshLoader" filename="knot_/PointLine10gmesh.msh" createSubelements="true" /> <include href="Objects/EdgeSetTopology.xml" src="@meshLoader" /> <MechanicalObject name=DOFs translation="1 0 2"/> <UniformMass mass="1" /> <FixedConstraint name="FixedConstraint" indices="0 1" /> <MeshSpringForceField name="Springs" stiffness="100000" damping="0" /> <UncoupledConstraintCorrection /> <Line tags="thread GraspingSurface" /> <Point /> <OglModel name="VisualModel" color="red" /> <IdentityMapping input="@." output="@VisualModel" /> <Node />
1) Deleting the last index
Without UncoupledConstraintCorrection, then it works. Yeah. lol
video. https://www.dropbox.com/s/86umn0zmxs7r1wf/180803_DeleteLastIndex.mp4?dl=0But as I know Uncoupledconstraintcorrection should be needed when I use Phantom Omni at the same scn.
So I solve the problem one and have another new problem (T.T)
How can I modify the Uncoupledconstraintcorrection to handle topolocial changes?2) Deleting middle index
Deleting middle of edge index is working with/without Uncoupledconstraintcorrection, MeshSpringForceField
But edge is removed but mesh spring forcefield isn’t (same as previous results). It linked across the edges.
video. https://www.dropbox.com/s/c66wbgo7ffs3kes/180803_DeleteMiddelIndex.mp4?dl=0Is that related Comp file? next, I will try this way.
Give me more advice to me!
Thanks!Best Wishes,
BEK4 August 2018 at 07:04 #11643BineshBlockedHello @eunkyungbae
UncoupledConstraintCorrection can handle topology change but that function implemented for points removed and points added So UncoupledConstraintCorrection has no problem with topology changeMy Idea is new scene with GmshLoader with all edgesettopology
1.GmshLoader
2.EdgeSetTopologyContainer
3.EdgeSetTopologyModifier
4.EdgeSetTopologyAlgorithms
5.EdgeSetGeometryAlgorithms
6.MechanicalObject
7.UnifornMassOR give us your scene with mesh to edit and test
24 August 2018 at 11:02 #11719epernodBlockedHi,
@Binesh I just give a quick look at UncoupledConstraintCorrection. I saw that:
, d_handleTopologyChange(initData(&d_handleTopologyChange, true, "handleTopologyChange", "Enable support of topological changes for compliance vector (disable if another component takes care of this)"))
Do you know in which case “another component takes care of this” ? I assume it is not the default pipeline.
Then in the scene of @eunkyungbae there is
<include href="Objects/EdgeSetTopology.xml" src="@meshLoader" />
it is a shortcut to put all the edgeSetTopology.
@eunkyungbae does the scene crash as soon as you remove the first element when you put the uncoupledConstraint?
Could you just try to put the uncoupledC. but not the FixedConstraint. Maybe there is a concurrency problem.Thank you for raising the issue of different behavior with and without gmsh file…
Erik
28 August 2018 at 05:36 #11734BEKBlockedThank you for comments
I can’t solve this problem yet.
As epernod mentioned, the problem happened only when I remove the first/last element with uncoupledConstraint.
I also deleted FixedConstraint but it has still same crash.I tired to look at uncoupledconstraintcorrection now (but difficult).
I attached my gmsh file -> https://www.dropbox.com/s/hr2imbxnpc3yfsp/PointLine10gmesh.msh?dl=0This is error message
Before Edge : 9 Before Point : 10 removeItemsFromLineModel2() [ERROR] [vector] in vector<double> cfc3ad80 size 0 : invalid index -1 61: sofa::helper::BackTrace::dump - 0x7ffa3b65896060: sofa::helper::vector_access_failure - 0x7ffa3b8fa35059: sofa::helper::vector<double,sofa::helper::CPUMemoryManager<double> >::operator[] - 0x7ffa135ef87058: sofa::component::constraintset::UncoupledConstraintCorrection<sofa::defaulttype::StdVectorTypes<sofa::defaulttype::Vec<3,double>,sofa::defaulttype::Vec<3,double>,double> >::handleTopologyChange - 0x7ffa1397b1a057: sofa::core::objectmodel::BaseObject::handleTopologyChange - 0x7ffa1b4138d056: sofa::simulation::TopologyChangeVisitor::processTopologyChange - 0x7ffa3dcd12e055: sofa::simulation::Visitor::for_each<sofa::simulation::TopologyChangeVisitor,sofa::simulation::Node,sofa::simulation::Node::Sequence<sofa::core::objectmodel::BaseObject,1>,sofa::core::objectmodel::BaseObject> - 0x7ffa3dcd1ca054: sofa::simulation::TopologyChangeVisitor::processNodeTopDown - 0x7ffa3dcd13f053: sofa::simulation::graph::DAGNode::executeVisitorTopDown - 0x7ffa5765a35052: sofa::simulation::graph::DAGNode::doExecuteVisitor - 0x7ffa57659b7051: sofa::simulation::Node::executeVisitor - 0x7ffa3dbc6e7050: sofa::component::topology::PointSetTopologyModifier::propagateTopologicalChanges - 0x7ffa10cf021049: sofa::component::topology::EdgeSetTopologyModifier::removeEdgesProcess - 0x7ffa10b24d1048: sofa::component::topology::EdgeSetTopologyModifier::removeEdges - 0x7ffa10b2732047: sofa::AsanManager::component::collision::CuttingTopologicalChangeManager::removeItemsFromLineModel2 - 0x7ffa35cc1b6046: sofa::AsanManager::component::collision::CuttingTopologicalChangeManager::removeItemsFromCollisionModel - 0x7ffa35cc0c7045: sofa::AsanManager::component::collision::CuttingTopologicalChangeManager::removeItemsFromCollisionModel - 0x7ffa35cc0bc044: sofa::AsanManager::component::collision::CuttingManager::doCut_test - 0x7ffa35c7c00043: sofa::AsanManager::component::collision::CuttingManager::handleEvent - 0x7ffa35c7a3a042: sofa::simulation::PropagateEventVisitor::processObject - 0x7ffa3dcbc39041: sofa::simulation::Visitor::for_each<sofa::simulation::PropagateEventVisitor,sofa::simulation::Node,sofa::simulation::Node::Sequence<sofa::core::objectmodel::BaseObject,1>,sofa::core::objectmodel::BaseObject> - 0x7ffa3dcbc46040: sofa::simulation::PropagateEventVisitor::processNodeTopDown - 0x7ffa3dcbc31039: sofa::simulation::graph::DAGNode::executeVisitorTopDown - 0x7ffa5765a35038: sofa::simulation::graph::DAGNode::doExecuteVisitor - 0x7ffa57659b7037: sofa::simulation::Node::executeVisitor - 0x7ffa3dbc6e7036: sofa::simulation::Node::propagateEvent - 0x7ffa3dbcb3a035: sofa::gui::qt::viewer::qgl::QtGLViewer::keyPressEvent - 0x7ffa18ccaa8034: QGestureEvent::~QGestureEvent - 0x7628328633: QGLFunctions::glUniform3iv - 0x505136cf32: QGestureEvent::~QGestureEvent - 0x7628328631: QGestureEvent::~QGestureEvent - 0x7628328630: QBitArray::size - 0x756ad92b29: QBitArray::size - 0x756ad92b28: QGestureEvent::~QGestureEvent - 0x7628328627: QGestureEvent::~QGestureEvent - 0x7628328626: QGestureEvent::~QGestureEvent - 0x7628328625: QGestureEvent::~QGestureEvent - 0x7628328624: QBitArray::size - 0x756ad92b23: QBitArray::size - 0x756ad92b22: QOpenGLFunctions_4_2_Core::glProgramUniform1d - 0x7ffa0ed63cd521: QOpenGLFunctions_4_2_Core::glProgramUniform1d - 0x7ffa0ed63cd520: QOpenGLFunctions_4_2_Core::glProgramUniform1d - 0x7ffa0ed63cd519: qt_plugin_query_metadata - 0x7ffa0e3366db18: QBitArray::size - 0x756ad92b17: CallWindowProcW - 0x7ffa7c3e680016: DispatchMessageW - 0x7ffa7c3e64c015: QBitArray::size - 0x756ad92b14: qt_plugin_query_metadata - 0x7ffa0e3366db13: QBitArray::size - 0x756ad92b12: QBitArray::size - 0x756ad92b11: QBitArray::size - 0x756ad92b10: QOpenGLFunctions_4_2_Core::glProgramUniform1d - 0x7ffa0ed63cd59: QGestureEvent::~QGestureEvent - 0x762832868: sofa::gui::qt::RealGUI::mainLoop - 0x7ffa188d81707: sofa::gui::GUIManager::MainLoop - 0x7ffa3f482a706: main - 0x7ff75b6e42205: invoke_main - 0x7ff75b70f8504: __scrt_common_main_seh - 0x7ff75b70f6203: __scrt_common_main - 0x7ff75b70f6002: mainCRTStartup - 0x7ff75b70f8a01: BaseThreadInitThunk - 0x7ffa7c8a30200: RtlUserThreadStart - 0x7ffa7cb61410Assertion failed: i < size, file D:\RMX\sofa\v17.06\src\SofaKernel\framework\sofa\helper\vector.cpp, line 45
Thank you.
Bae28 August 2018 at 06:17 #11736BineshBlockedHi @eunkyungbae
i saw the handleTopologyChanged() function for UncoupledConstraintCorrection class,
this run Time error is correct because the compliance Data size is zero in your scene and
when a point is removed , your last index set to -1 and it is out of array range
Now the size of compliance data should be as much as your mesh points OR disable handle topology change in UncoupledConstraintCorrectionBest Wishes,
Behnam Binesh28 August 2018 at 06:32 #11737BineshBlockedHi @epernod
I think FixedConstraint can handle topology changed for points but point per point in each sofa life cycle
what do you think?Thanks
Behnam Binesh28 August 2018 at 06:41 #11738BEKBlockedThank you @Binesh
I will check uncoupledConstraintcorrection.
Best,
Bae31 August 2018 at 03:54 #11773BEKBlockedI got some update. I solved one and got another problem.
As @Binesh said, the problems happened on handleTopologyChanged() for UncoupledConstraintCorrection.
I still not sure what is compliance Data (and why the size of compliance Data is zero when I remove points), so I blocked that part as a temporary measure.
Then, the first/last point is removed very well when I put the uncoupledConstraint.
Anyway, the problem was solved temporarily.Secondly, I put IdentityMapping on the thread for visual model mapping, it works little strange way.
This is video link: https://www.dropbox.com/s/3xko0gi9zl8ntzo/RemovingAdding%20Point_withMapping.mp4?dl=0This is changed thread scn:
<Node name="beamsprings"> <EulerImplicitSolver rayleighStiffness="0.01" rayleighMass="0.01" /> <CGLinearSolver template="GraphScattered" iterations="20" threshold="1e-008" tolerance="1e-5" /> <MeshGmshLoader name="meshLoader" filename="knot_/PointLine10gmesh.msh" createSubelements="true" /> <include href="Objects/EdgeSetTopology.xml" src="@meshLoader" /> <MechanicalObject translation="1 0 2"/> <UniformMass mass="1" /> <FixedConstraint name="FixedConstraint" indices="0 1" /> <UncoupledConstraintCorrection /> <MeshSpringForceField name="Springs" stiffness="100000" damping="0" /> <Line tags="thread GraspingSurface" /> <Point /> <Node name="Visual"> <OglModel name="VisualModel" src="@../meshLoader" lineWidth="6" lineSmooth="1"/> <IdentityMapping input="@.." output="@VisualModel" /> </Node> </Node>
It seems like the last index didn’t update.
Now, I will check handleTopologyChange() in IdentityMapping.inl.Give me advice.
Thank you all!Best Wishes,
Bae31 August 2018 at 10:29 #11774BineshBlockedHi @eunkyungbae
HandleTopologyChange in IdentityMapping is correct
1.Solution :: For Compliance Data, set default value for all nodes such as 1 Or ignore it
2.Solution :: For IdentityMapping Please Check This Scene
Mesh file address in mesh loader changed<?xml version="1.0"?> <Node name="Root" dt="0.02" > <Node name="beamsprings" > <EulerImplicitSolver name="eulerImplicitSolver1" rayleighStiffness="0.01" rayleighMass="0.01" /> <CGLinearSolver template="GraphScattered" name="cGLinearSolver1" iterations="20" tolerance="1e-05" threshold="1e-08" /> <MeshGmshLoader name="meshLoader" filename="data/mesh/PointLine10gmesh.msh" edgesGroups=" -1 0 1 -1 1 1 -1 2 1 -1 3 1 -1 4 1 -1 5 1 -1 6 1 -1 7 1 -1 8 1" createSubelements="1" /> <EdgeSetTopologyContainer name="Container" position="@meshLoader.position" edges="@meshLoader.edges" /> <EdgeSetTopologyModifier name="Modifier" /> <EdgeSetTopologyAlgorithms template="Vec3d" name="TopoAlgo" /> <EdgeSetGeometryAlgorithms template="Vec3d" name="GeomAlgo" /> <MechanicalObject template="Vec3d" name="mObject1" position="0 0 0" velocity="0 0 0" force="0 0 0" externalForce="0 0 0" translation="1 0 2" size="1" /> <UniformMass template="Vec3d" name="uniformMass1" mass="1" filename="unused" /> <FixedConstraint template="Vec3d" name="FixedConstraint" indices="0 1" /> <UncoupledConstraintCorrection template="Vec3d" name="uncoupledConstraintCorrection1" /> <TLineModel template="Vec3d" name="tLineModel1" tags="thread GraspingSurface" /> <TPointModel template="Vec3d" name="tPointModel1" /> <Node name="Visual" > <OglModel template="ExtVec3f" name="VisualModel" edges="@Container.edges" material="Default Diffuse 1 0.74902 0.74902 0.74902 1 Ambient 1 0.2 0.2 0.2 1 Specular 0 1 1 1 1 Emissive 0 0 0 0 0 Shininess 0 45 " lineWidth="6" lineSmooth="1" primitiveType="DEFAULT" blendEquation="GL_FUNC_ADD" sfactor="GL_SRC_ALPHA" dfactor="GL_ONE_MINUS_SRC_ALPHA" /> <IdentityMapping template="Vec3d,ExtVec3f" name="identityMap1" input="@.." output="@VisualModel" /> </Node> <MeshSpringForceField template="Vec3d" name="Springs" stiffness="100000" damping="0" linesStiffness="100000" linesDamping="0" trianglesStiffness="100000" trianglesDamping="0" quadsStiffness="100000" quadsDamping="0" tetrahedraStiffness="100000" tetrahedraDamping="0" cubesStiffness="100000" cubesDamping="0" object1="@./" object2="@./" /> </Node> </Node>
Best Wishes,
Behnam Binesh31 August 2018 at 10:57 #11777BEKBlockedHi @Binesh
Finally, it works perfectly!
Now I can close this topic.
Thank you!!Best,
Bae31 August 2018 at 12:40 #11782BineshBlocked -
AuthorPosts
- You must be logged in to reply to this topic.