hi,
I am trying to use the multicore module. After learning for several days,
every thing seems good. Then there are some new questions.
1. How can I add two different .obj files in one .cpp? I used the same
code to add two objs, but it seems that it will show the same objects, one
of them is not what I want to show and the other one is right. It shows the
first obj I called.
I compared it with many examples, it seems every step is taken into account.
I used the following code:
/***********************************************************************/
std::shared_ptr<ChBody> AddSampler(ChSystemMulticoreNSC* sys) {
auto object = std::shared_ptr<ChBody>(sys->NewBody());
sys->AddBody(object);
object->SetIdentifier(-202);
//object->SetName("object");
object->SetMass(2000); //14715
object->SetInertiaXX(40.0 * ChVector<>(1, 1, 0.2));
object->SetPos(ChVector<>(0, 0, 1.2+4.25));
object->SetPos_dt(init_vel); // Set the linear speed.
object->SetWvel_loc(init_omg); //Set the rotation speed from given
angular speed (expressed in local csys)
object->SetCollide(true);
object->SetBodyFixed(false);
auto object_mat = ChMaterialSurface::DefaultMaterial(contact_method);
object_mat->SetFriction(object_friction);
object_mat->SetRestitution(object_restitution);
std::string tire_mesh_file =
GetChronoDataFile("models/mixer/yyb(0.02-2).obj");
double sphere_r = 0.005;
auto trimesh =
geometry::ChTriangleMeshConnected::CreateFromWavefrontFile(tire_mesh_file);
object->GetCollisionModel()->ClearModel();
object->GetCollisionModel()->AddTriangleMesh(object_mat, trimesh,
false, false, ChVector<>(0),
ChMatrix33<>(1),
sphere_r); //Add a triangle mesh to this collision model.
object->GetCollisionModel()->SetFamily(3);
object->GetCollisionModel()->BuildModel();
auto trimesh_shape = chrono_types::make_shared<ChTriangleMeshShape>();
trimesh_shape->SetMesh(trimesh);
object->AddVisualShape(trimesh_shape);
return object;
}
std::shared_ptr<ChBody> AddSpoon(ChSystemMulticoreNSC* sys) {
auto object = std::shared_ptr<ChBody>(sys->NewBody());
object->SetIdentifier(-203);
//object->SetName("spoon");
object->SetMass(200);
object->SetInertiaXX(40.0 * ChVector<>(1, 1, 0.2));
object->SetPos(ChVector<>(2, 0, 1.2+4.25));
object->SetPos_dt(ChVector<>(0, 0, 0)); // Set the linear speed.
object->SetWvel_loc(ChVector<>(0, 0, 20)); //Set the rotation speed
from given angular speed (expressed in local csys)
object->SetCollide(true);
object->SetBodyFixed(false);
auto object_mat = ChMaterialSurface::DefaultMaterial(contact_method);
object_mat->SetFriction(object_friction);
object_mat->SetRestitution(object_restitution);
std::string tire_mesh_file =
GetChronoDataFile("models/mixer/spoon(0.02).obj");
double sphere_r = 0.005;
auto trimesh =
geometry::ChTriangleMeshConnected::CreateFromWavefrontFile(tire_mesh_file);
object->GetCollisionModel()->ClearModel();
object->GetCollisionModel()->AddTriangleMesh(object_mat, trimesh,
false, false, ChVector<>(0), ChMatrix33<>(1), sphere_r);
object->GetCollisionModel()->SetFamily(4);
object->GetCollisionModel()->BuildModel();
sys->AddBody(object);
auto trimesh_shape = chrono_types::make_shared<ChTriangleMeshShape>();
trimesh_shape->SetMesh(trimesh);
object->AddVisualShape(trimesh_shape);
return object;
}
/*********************************************************************************/
and when I call them in the main function, it shows two same objects as the
first obj I called.
I've been trying for days and still don't know what's going on.
2. The second question is that how to realize different movement with two
objects that have fixed relative position, such as one object rotate around
the z-axis, and this object also has translation with another object as a
whole.
For example, I can think of that giving them the same coordinate system,
set the same pos_dt and different wvel_loc. But, I am worried that if they
subject to force, there relative position will be broken.
I was wondering if there are ant demos regarding this or functions can set
relative position.
Thank you so much in advance.
yyb
--
You received this message because you are subscribed to the Google Groups
"ProjectChrono" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/projectchrono/bb06b62c-b7e5-49b9-8b86-86c00e9ef0c9n%40googlegroups.com.