MSPhysics 1.0.3 (16 October 2017)
-
@Anton_S cough cloth cough simulator clears throat
-
Hi, Juju! I started working on Drape a few weeks ago. I first wanted to use NewtonDynamics for cloth but then figured to write my own specific purpose physics engine instead. I already got the cloth working. All I need to do now is add contacts and the user interface. Adding the collision contacts is the hardest part, but I'm researching that.
-
Announcing MSPhysics 1.0.0!
This version comes with a significant amount of improvements and a few new features. Main feature is a custom automated transitioning of scenes, which can transition forward, backward, and loop. Here is a model demonstrating it:
Planned Steps.skp
A detailed list of other features and bug fixes can be found here: http://www.rubydoc.info/github/AntonSynytsia/MSPhysics/file/RubyExtension/MSPhysics/CHANGELOG.mdThis requires installing AMS Library version 3.5.0, which is referenced in first post. If you received development versions of AMS Library, you must upgrade to the latest one.
Also, you no longer have to bother removing original versions as the overwriting should work fine now.
I have removed geared joints feature until the next release, as it was the only thing that preventing me from releasing this version.
And one more thing, models creating with prior MSPhysics version might work differently/be incompatible with this version. Make sure to update your models' physics properties and scripts if necessary.
-
Hi Anton, thanks for the great improvements!
Keyboard navigation and scenes animation are great new features and work very well. It would be great if the scenes excluded from the SketchUp animation are also excluded from MSPhysics (e.g. EDIT scenes or the like).For rendering single images, I usually set 30 frames per second. All previous scripts, for example for programmed emitters, refer to this in terms of lifetime. What image rate does MSPhysics use for internal calculation and export, if I want to convert the previous lifetime settings in seconds?
Adjusting the settings and rewriting the scripts will probably take me a while longer. First small test example see at post "MSPhysics Tests and Questions".
-
How to convert a model created with MSPhysics 0.9.9 to 1.0.0.
-
Faust: I fixed it. Update to 1.0.1.
Ecati: It depends on a model. If your model is working properly, then there is nothing necessary to update; otherwise, adjust the properties of joints, body properties, like emitters, and scripts (if any). If you have trouble doing so, post a model in "MSPhysics Tests and Questions" thread if you need help.
-
Camera Follow Tool: Can I hide the highlighted selection?
The Camera Follow and Target tools work by right clicking the required entity as the target to follow during the simulation.
The selected item is highlighted in a blue box.
Is there any way to suppress the highlighting while the simulation is running?
-
Left-click on the sky/background to suppress the highlighting. You can't unfortunately hide the group from the menu though. I should've thought of adding this command.
-
thanks Anton, that works fine
MSPhysics is truly awesomei am keen to learn more about scripts
-
Is there a way to utilize multi core processors with msphysics?
-
@jb1016 said:
Is there a way to utilize multi core processors with msphysics?
Probably not. When I compiled Newton, I disabled multi-threading, due to issues encountered with it. I will try to enable multi-threading in the next release.
-
Is it possible to move or rotate a model with a joint connected to it?
Please click on the picture.
-
Making relative joints is easy if you know the concept. Here is how it's done: https://drive.google.com/open?id=0B3qg8f4WrNdHUDJrTUsybmU0NGs
-
Hello Anton,
What is to do to get faces (not in a Group), scripted during MSPhysics simulation, handled in MSPhysics Replay?
They are displayed during the simulation and disappear in replay and also in the animation export.
Thank you in advance. -
Faust, replay doesn't record transformation of vertices. There is nothing you can do with it yet, but is a good request.
-
I have an odd result with a test I've been trying to get to work:
I have two aluminium pieces, connected through two aluminium bars.
One aluminium piece is static with two hinge joints (each connected to one bar).
One of the hinge joints I have set up as an angular spring to dampen the fall.
The other aluminium piece is connected to two hinge joints, each on the end of the two bars.My problem is, the system starts to wobble after 10 seconds , and after 30 seconds it spins out of control .
what am I doing wrong?
attached is the SU15 model with MSPhysics 1.0.2 and AMS_lib 3.5.2SketchUp 2015 model of MSPhysics hinged test
edit: I wanted to attach a spring (instead of using the angular spring hinge) but I believe that springs are fixed and non-movable) and somehow I can't implement this idea.
-
@robibue said:
My problem is, the system starts to wobble after 10 seconds , and after 30 seconds it spins out of control .
what am I doing wrong?
If you set simulation solver model to iterative 64 passes and update timestep to 1/120, the wobbling should be significantly reduced.
@robibue said:
edit: I wanted to attach a spring (instead of using the angular spring hinge) but I believe that springs are fixed and non-movable) and somehow I can't implement this idea.
Don't do that. Spring joints are for linear motion, not for angular. Either use angular spring, or since you want to dampen the whole thing, simply change hinge mode to Angular Friction and increase the friction parameter, to say, 4000000.
-
@anton_s said:
If you set simulation solver model to iterative 64 passes and update timestep to 1/120, the wobbling should be significantly reduced.
Thank you very much Anton, this helped
@anton_s said:
Spring joints are for linear motion, not for angular. Either use angular spring, or since you want to dampen the whole thing, simply change hinge mode to Angular Friction and increase the friction parameter, to say, 4000000.
This worked great, although I think I found the solution I was somewhat looking for using servos with an angular limit
Here's what I was aiming for
SU15, MSPhysics 1.0.2, hinged test end product with servos and hinges -
I'm hoping for advice on how to improve a model that attempts to simulate a thin flat flexible cable that is coiled or wrapped within a hollow rotating drum. Despite hours and hours of experiments, I cannot avoid SketchUp crashing (bugsplat) after about 2 to 2.5 rotations of the drum. I'm using MSphysics 1.0.2 with SketchUp Pro 2017.3.
[Update on Wednesday morning: As an experiment I changed the collision shape of the cable strips (see below) from compound to box, and that often avoids the crash. Sometimes the simulation even lives long enough to run 7 rotations clockwise and then 7 rotations counter-clockwise. Gravity can be enabled at about 1/300 time steps and higher, even.]
Here is a copy of the model file:
Viking Lander for SSAA FCC Animation Bare.skpAnd an image of the general arrangement:
The model is scaled up 10x from some actual hardware I am trying to simulate (scaled in the hope of avoiding numerical issues in the simulation caused by the very thin cable). The cable (in the model) is about 30 inches wide and 0.1 inch thick. I have modeled the cable as a series of about 250 thin strips hinged to one another. One end of the cable is anchored to a hinge on a stationary hub (set to be static, tinted green in the above image) at the center of the drum. The other end of the cable is anchored to a hinge that is on the wall of the hollow gray drum. In its initial configuration the cable wraps three times around the stationary hub. The goal is to drive a motor to rotate the drum clockwise six or so full rotations. The flexible cable is intended to gradually unwrap from around the stationary hub, accumulate loosely around the inner face of the drum after three or so rotations, and then re-wrap about three times around the stationary hub in the opposite direction from the initial conditions. There is one motor controller - click it to the left (-1) to rotate the drum in the clockwise direction.
I am not very fussy about the hinge joints between the individual cable segments; the goal is to represent a lightweight cable that can flex a fair amount, with a mild tendency to straighten. I have tried friction and both types of spring hinges, with all sorts of parameter settings. Some hinge types make the model explode (which is comical to watch). Others seem to more-or-less behave OK except the cable is not as flexible as I would like. And of course the crash of the software; I'm not sure what aspect of the physics simulation is causing that - hinges or collisions or what. I have disabled gravity and friction for all active bodies. I have tried various settings of continuous-collision and Update-Timestep; the simulation usually survives longer (in simulated time) with higher time steps (e.g., 1/240, 1/480 etc.).
Both the cylindrical stationary hub and the hollow drum are modeled as a set of solid groups or components, with the individual pieces being convex. (The stationary hub's segments have some concavity due to two small raised flanges. I'm not sure if this is causing trouble. I used MSphysics feature to show collision wireframes, and what is rendered looks OK to me. I could delete those flanges.) There are also three thin curvy bend-guards to prevent the flexible cable from being bent too tightly at either end. Those guards are also modeled as a set of convex elements.
As a plus I would also like to eliminate the narrow visual gaps between adjacent cable strips (which seemed necessary to avoid corners of adjacent strips colliding and thus preventing joint bends). However, the main goal is to avoid the software from crashing as the simulation executes.
-
Hello TDahl,
First of all, very professional work here, in a sence of understanding how to use the plugin despite the lack of documentation on it. Great job!
I'm not sure what is causing the crash. I think that the physics engine has a limit on how much joints it can control at once. I will look into this bugsplat issue when I find the time.
Meanwhile, there are a couple of things you can do to improve behavior of cable and performance:
- Because you are relying on a small timestep (1/300), reducing solver model, to 4 iterations for example, would improve the performance by a good factor. Solver model basically controls the stability of joints. If your timestep is small, reducing solver model would alter the stability joints by an unnoticeable factor.
- Specificating the collision shape of "FCC Segment Instance" to Box should improve the performance as well. I assume you already did that for your the edited model, but in case you haven't, here is an easy way to do it for all of them: Because all your cable segments have the same name, you can assign a box shape to one of the segments and use the Assign Props to All with Name button, within the MSPhysics UI, to assign alike properties to all instances with the same name.
- Because all joints are flexible, you can simply rely on a Fixed joint, rather than Hinge. This would make the entire cable more stiff and of course improve performance.
I eddied your model, containing all the addressed suggestions and attached it below.
Also, if you change a joint within one of the wire segments, which also adds it to all other component instances, you can re-interconnect the segments with their joint by pasting this command into Ruby Console:
id = 646194 # Change this to desired joint ID. instance_name = 'FCC Segment Instance' # Change this to instance name ids = [id] Sketchup.active_model.start_operation('OP', true, false, false) Sketchup.active_model.entities.each { |e| if (e.is_a?(;;Sketchup;;ComponentInstance) || e.is_a?(Sketchup;;Group)) && e.name == instance_name e.set_attribute('MSPhysics Body', 'Connected Joints', ids) end } Sketchup.active_model.commit_operation
That's the code I used to interconnect the Fixed joints with their segments.
Once again, great work, TDahl!
Best regards,
Anton
Advertisement