Forum Replies Created
-
AuthorPosts
-
Hugo
KeymasterHugo
KeymasterDear @hkomninos
It has been a long time since our last chat. Is everything fine?
If the advices from Eleonora helped, feel free to update us or close the topic.Best wishes,
Hugo
Hugo
KeymasterHmm I see, I did not have the issue, since I guess my scissor was in (0,0,0).
I will check this again and get back to you.Hugo
Hugo
KeymasterHi @fayad
Did my previous tip not work properly ?
I enclose here a temporary link for finding my working case
Do you have a short video clip of the result ?Hugo
Hugo
KeymasterHi @avihs98
If you cannot press the ‘Generate’ button, it means you have some error at the Configure step. Can you give us the output of your configuration?
Best
Hugo
Hugo
KeymasterHi @zliu157
Are you using the v18.06 version of SOFA?
Did you try to load manually the CGALPlugin.dll from the Plugin Manager (in runSofa, in the Edit menu)?Best
Hugo
25 February 2019 at 18:22 in reply to: [SOLVED] What is the mechanism of BilateralInteractionConstraint? #13116Hugo
KeymasterDear @outtt
This thread is very old and a doc page is now available.
I close it.
Open a new one if you have further issue.Hugo
Hugo
KeymasterHi @fayad
Sorry for the delay, but I needed a bit of time to test your pb.
All you need is to make the moving part of your scissor, moving according to the base of the scissor (and not directly the Geomagic). The moving part would rely on a TransformEngine, while the base would rely on the GeomagicDriver.It would look like:
<Node name="base" > <EulerImplicitSolver name="ODE solver" rayleighStiffness="0.05" rayleighMass="1.0" /> <CGLinearSolver name="linear solver" iterations="25" tolerance="1e-10" threshold="10e-10" /> <MechanicalObject name="instrumentState" position="@GeomagicDevice.positionDevice" template="Rigid" /> ... </Node> <Node name="connector" > ... </Node> <Node name="right_tip" > <TransformEngine template="Rigid3d" name="TE" input_position="@../base/instrumentState.position" /> <!-- Solvers & Physics --> <EulerImplicitSolver name="ODE solver" rayleighStiffness="0.05" rayleighMass="1.0" /> <CGLinearSolver name="linear solver" iterations="25" tolerance="1e-10" threshold="10e-10" /> <MechanicalObject name="instrumentState" position="@TE.output_position" template="Rigid" showObject="1" showObjectScale="1" /> ... </Node>
Best
Hugo
Hugo
KeymasterHi @avihs98
The CMakeList is the one at the root of the src repository. It is the main CMakeLists.txt file.
Best
Hugo
Hugo
KeymasterHi @rubab
Not sure we will have a lot of Qt / GUI expert here. This is really a GUI-specific question more than a simulation issue. You can have a look at the code of the runSofa GUI in RealGUI.h.
Best
Hugo
19 February 2019 at 11:14 in reply to: How to constraint objects inside a closed mesh without using collision models? #13075Hugo
KeymasterHmm the component does not seem to work that well. I should push some attraction-repulsion forcefield that I have somewhere.
Note that it isn’t compulsory to use the Lagrange constraint approach if you want only performance, with low accuracy. You can also prefer penalty method (using the classic DefaultAnimationLoop), like in the scene examples/Components/collision/TriangleModel.scn
19 February 2019 at 11:06 in reply to: [SOLVED] How do i a map an omni button to a python function #13074Hugo
KeymasterThey should be, as any data.
Using something like:state_button1 = your_GeomagicDriver.findData('button_1').value
Hugo
19 February 2019 at 09:04 in reply to: How to constraint objects inside a closed mesh without using collision models? #13065Hugo
Keymasterhey @outtt
I never used it myself, but you could use RepulsiveSpringForceField. It will apply a repulsive force when approaching the points of your general polyhedral mesh.
Would this fit your expectation?Hugo
18 February 2019 at 18:26 in reply to: [SOLVED] Issues using the FEMLiver example from GEOMAGIC plugin #13061Hugo
KeymasterHi @fayad
You actually faced two different issues with your two meshes. Let’s explain them one by one:
- by using your volumetric mesh (prostate): the start of SOFA takes time. It’s normal, since this scene is using a PrecomputedConstraintCorrection for the Lagrange constraints. This approach needs (before starting a simulation) to precompute the compliance matrix, as described here in the doc. And this can take (a lot of) time if your mesh is fine. If you want this initialization to be quicker (just to test the loading part) you can replace this PrecomputedConstraintCorrection by a UncoupledConstraintCorrection but collision will be less acurate (even potentially unstable if the compliance value is not suitable).
- the bunny is a surface, therefore the simulation does not work properly since a tetrahedral topology (volumetric) is expected. However, crashes are not the best way to help users 😉
Hope it helps.
BestHugo
Hugo
KeymasterHugo
KeymasterDear @rubab
I am no expert in UI and QtUI but you could make it in cpp from a controller. A Controller listening to the SOFA event (stop of animation) and trigger your table. Others like @damien-marchaluniv-lille1-fr might help you better than I can.
Hugo
18 February 2019 at 18:12 in reply to: How to constraint objects inside a closed mesh without using collision models? #13058Hugo
KeymasterDear @outtt
you can use some planeforcefields. By using 6 PlaneForceField you can create a virtual cube and it would force your object to remain through spring forces instead of collision forces.
Best,
Hugo
18 February 2019 at 18:12 in reply to: [SOLVED] How do i a map an omni button to a python function #13057Hugo
KeymasterDear @fayad,
The GeomagicDriver defines several data. Among them the data “button_1” and “button_2” are boolean specifying the state (pressed = 1) of each button.
Best
Hugo
Hugo
KeymasterSee the Windows doc.
Cheers,Hugo
Hugo
KeymasterHey @himanshu
The output is actually giving you the steps to follow. You need to set the CMake variable : BOOST_ROOT to the location of Boost.
During the CMake configuration, you should have received a warning telling you to set this BOOST_ROOT.
Then, it will find it.Best,
Hugo
4 February 2019 at 17:21 in reply to: [SOLVED] Harmonic excitation with constantForceField (Python Controller) #12983Hugo
KeymasterHey @nassim,
I guess the force that you expect to apply is supposed to be change progressively while the simulation is running. Right ? If so, the force must depend on the current time.
The function onKeyPressed is called only when a key is pressed. But you could use instead the function onBeginAnimationStep which is called at each beginning of simulation step.
About the time, you can access this information in the root node:
rootNode.findData('time').value
I hope this helps
BestHugo
Hugo
KeymasterHi @rubab
Does this new topic : https://www.sofa-framework.org/community/forum/topic/get-signal-when-scene-file-is-closed-and-display-a-graph-qtablewidget/ closes this one ?
I would also be curious about your project @rubab? Could you tell us more about it?
Cheers,Hugo
Hugo
KeymasterHey @nassim
You’re welcome, the community is happy to help when possible!
In your case – IMO -, you want to attach different parts, the best approach would be to set bilateral constraints on your different objects. You can find an example in examples/Components/constraint/BilateralInteractionConstraint.scnYou can define a master node, containing childNode that would contain the different part of your robot.
Best
Hugo
-
AuthorPosts